Skip to content

Commit

Permalink
[NUI] Add SystemFontSizeChangedManager class
Browse files Browse the repository at this point in the history
SystemFontSizeChangedManager is a static class which adds user handlers
to the SystemSettings.FontSizeChanged event.

It is similar to SystemFontSizeChanged class but it is a static class
and it also provides Finished event handler invoked last after all
handlers added to the SystemSettings.FontSizeChanged event are invoked.
  • Loading branch information
Jaehyun-Cho authored and hinohie committed Sep 5, 2023
1 parent 0edae08 commit 4154ae2
Show file tree
Hide file tree
Showing 4 changed files with 73 additions and 9 deletions.
67 changes: 67 additions & 0 deletions src/Tizen.NUI/src/internal/Common/SystemFontSizeChangedManager.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
/*
* Copyright (c) 2023 Samsung Electronics Co., Ltd.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
*/

extern alias TizenSystemSettings;
using TizenSystemSettings.Tizen.System;

using System;

namespace Tizen.NUI
{
/// <summary>
/// A static class which adds user handler to the SystemSettings.FontSizeChanged event.
/// This class also adds user handler to the last of the SystemSettings.FontSizeChanged event.
/// </summary>
internal static class SystemFontSizeChangedManager
{
static SystemFontSizeChangedManager()
{
SystemSettings.FontSizeChanged += SystemFontSizeChanged;
}

/// <summary>
/// The handler invoked last after all handlers added to the SystemSettings.FontSizeChanged event are invoked.
/// </summary>
public static event EventHandler<FontSizeChangedEventArgs> Finished;

/// <summary>
/// Adds the given handler to the SystemSettings.FontSizeChanged event.
/// </summary>
/// <param name="handler">A handler to be added to the event</param>
public static void Add(EventHandler<FontSizeChangedEventArgs> handler)
{
proxy.Add(handler);
}

/// <summary>
/// Removes the given handler from the SystemSettings.FontSizeChanged event.
/// </summary>
/// <param name="handler">A handler to be added to the event</param>
public static void Remove(EventHandler<FontSizeChangedEventArgs> handler)
{
proxy.Remove(handler);
}

private static void SystemFontSizeChanged(object sender, FontSizeChangedEventArgs args)
{
proxy.Invoke(sender, args);
Finished?.Invoke(sender, args);
}

private static WeakEvent<EventHandler<FontSizeChangedEventArgs>> proxy = new WeakEvent<EventHandler<FontSizeChangedEventArgs>>();
}
}
5 changes: 2 additions & 3 deletions src/Tizen.NUI/src/public/BaseComponents/TextEditor.cs
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,6 @@ public partial class TextEditor : View
static private string defaultStyleName = "Tizen.NUI.BaseComponents.TextEditor";
static private string defaultFontFamily = "TizenSans";
private static SystemFontTypeChanged systemFontTypeChanged = new SystemFontTypeChanged();
private static SystemFontSizeChanged systemFontSizeChanged = new SystemFontSizeChanged();
private static SystemLocaleLanguageChanged systemLocaleLanguageChanged = new SystemLocaleLanguageChanged();
private string textEditorTextSid = null;
private string textEditorPlaceHolderTextSid = null;
Expand Down Expand Up @@ -2615,7 +2614,7 @@ private void AddSystemSettingsFontSizeChanged()
{
try
{
systemFontSizeChanged.Add(SystemSettingsFontSizeChanged);
SystemFontSizeChangedManager.Add(SystemSettingsFontSizeChanged);
hasSystemFontSizeChanged = true;
}
catch (Exception e)
Expand All @@ -2632,7 +2631,7 @@ private void RemoveSystemSettingsFontSizeChanged()
{
try
{
systemFontSizeChanged.Remove(SystemSettingsFontSizeChanged);
SystemFontSizeChangedManager.Remove(SystemSettingsFontSizeChanged);
hasSystemFontSizeChanged = false;
}
catch (Exception e)
Expand Down
5 changes: 2 additions & 3 deletions src/Tizen.NUI/src/public/BaseComponents/TextField.cs
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,6 @@ public partial class TextField : View
static private string defaultStyleName = "Tizen.NUI.BaseComponents.TextField";
static private string defaultFontFamily = "TizenSans";
private static SystemFontTypeChanged systemFontTypeChanged = new SystemFontTypeChanged();
private static SystemFontSizeChanged systemFontSizeChanged = new SystemFontSizeChanged();
private static SystemLocaleLanguageChanged systemLocaleLanguageChanged = new SystemLocaleLanguageChanged();
private string textFieldTextSid = null;
private string textFieldPlaceHolderTextSid = null;
Expand Down Expand Up @@ -2623,7 +2622,7 @@ private void AddSystemSettingsFontSizeChanged()
{
try
{
systemFontSizeChanged.Add(SystemSettingsFontSizeChanged);
SystemFontSizeChangedManager.Add(SystemSettingsFontSizeChanged);
hasSystemFontSizeChanged = true;
}
catch (Exception e)
Expand All @@ -2640,7 +2639,7 @@ private void RemoveSystemSettingsFontSizeChanged()
{
try
{
systemFontSizeChanged.Remove(SystemSettingsFontSizeChanged);
SystemFontSizeChangedManager.Remove(SystemSettingsFontSizeChanged);
hasSystemFontSizeChanged = false;
}
catch (Exception e)
Expand Down
5 changes: 2 additions & 3 deletions src/Tizen.NUI/src/public/BaseComponents/TextLabel.cs
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,6 @@ protected override void OnMeasure(MeasureSpecification widthMeasureSpec, Measure
static TextLabel() { }

private static SystemFontTypeChanged systemFontTypeChanged = new SystemFontTypeChanged();
private static SystemFontSizeChanged systemFontSizeChanged = new SystemFontSizeChanged();
private static SystemLocaleLanguageChanged systemLocaleLanguageChanged = new SystemLocaleLanguageChanged();
static private string defaultStyleName = "Tizen.NUI.BaseComponents.TextLabel";
static private string defaultFontFamily = "BreezeSans";
Expand Down Expand Up @@ -1640,7 +1639,7 @@ private void AddSystemSettingsFontSizeChanged()
{
try
{
systemFontSizeChanged.Add(SystemSettingsFontSizeChanged);
SystemFontSizeChangedManager.Add(SystemSettingsFontSizeChanged);
hasSystemFontSizeChanged = true;
}
catch (Exception e)
Expand All @@ -1657,7 +1656,7 @@ private void RemoveSystemSettingsFontSizeChanged()
{
try
{
systemFontSizeChanged.Remove(SystemSettingsFontSizeChanged);
SystemFontSizeChangedManager.Remove(SystemSettingsFontSizeChanged);
hasSystemFontSizeChanged = false;
}
catch (Exception e)
Expand Down

0 comments on commit 4154ae2

Please sign in to comment.