Skip to content

Commit

Permalink
Updates settings controls.
Browse files Browse the repository at this point in the history
  • Loading branch information
mntone committed Jan 26, 2023
1 parent e1d3db1 commit d86a462
Show file tree
Hide file tree
Showing 9 changed files with 119 additions and 123 deletions.
6 changes: 2 additions & 4 deletions src/Controls/SettingsCard.xaml
Original file line number Diff line number Diff line change
Expand Up @@ -160,7 +160,6 @@
Content="{TemplateBinding HeaderIcon}"
FontFamily="{StaticResource SymbolThemeFontFamily}"
FontSize="12"
Foreground="{TemplateBinding Foreground}"
HighContrastAdjustment="None"
IsTextScaleFactorEnabled="False" />
</Viewbox>
Expand All @@ -171,9 +170,9 @@
<ContentPresenter x:Name="Header"
AutomationProperties.AccessibilityView="Raw"
Content="{TemplateBinding Header}"
Foreground="{TemplateBinding Foreground}"
TextWrapping="Wrap" />
<ContentPresenter x:Name="Description"
<ContentPresenter x:DeferLoadStrategy="Lazy"
x:Name="Description"
AutomationProperties.AccessibilityView="Raw"
Content="{TemplateBinding Description}"
FontSize="{StaticResource SettingsCardDescriptionFontSize}"
Expand All @@ -194,7 +193,6 @@
CornerRadius="{StaticResource ControlCornerRadius}"
FontFamily="{StaticResource SymbolThemeFontFamily}"
FontSize="12"
Foreground="{TemplateBinding Foreground}"
Height="{StaticResource SettingsCardActionButtonHeight}"
HighContrastAdjustment="None"
HorizontalAlignment="Right"
Expand Down
91 changes: 45 additions & 46 deletions src/Controls/SettingsCard.xaml.h
Original file line number Diff line number Diff line change
Expand Up @@ -10,75 +10,74 @@ namespace winrt::Mntone::AngelUmbrella::Controls::implementation {
Microsoft::UI::Xaml::Automation::Peers::AutomationPeer OnCreateAutomationPeer() const;

// internal:
void OnPointerEntered(winrt::Microsoft::UI::Xaml::Input::PointerRoutedEventArgs const& args) const;
void OnPointerPressed(winrt::Microsoft::UI::Xaml::Input::PointerRoutedEventArgs const& args) const;
void OnPointerReleased(winrt::Microsoft::UI::Xaml::Input::PointerRoutedEventArgs const& args) const;
void OnPointerExited(winrt::Microsoft::UI::Xaml::Input::PointerRoutedEventArgs const& args) const;
void OnPointerEntered(Microsoft::UI::Xaml::Input::PointerRoutedEventArgs const& args) const;
void OnPointerPressed(Microsoft::UI::Xaml::Input::PointerRoutedEventArgs const& args) const;
void OnPointerReleased(Microsoft::UI::Xaml::Input::PointerRoutedEventArgs const& args) const;
void OnPointerExited(Microsoft::UI::Xaml::Input::PointerRoutedEventArgs const& args) const;

void OnKeyDown(winrt::Microsoft::UI::Xaml::Input::KeyRoutedEventArgs const& args) const;
void OnKeyUp(winrt::Microsoft::UI::Xaml::Input::KeyRoutedEventArgs const& args) const;
void OnKeyDown(Microsoft::UI::Xaml::Input::KeyRoutedEventArgs const& args) const;
void OnKeyUp(Microsoft::UI::Xaml::Input::KeyRoutedEventArgs const& args) const;

private:
static void OnIsEnabledChangedStatic(winrt::Windows::Foundation::IInspectable const& sender, winrt::Microsoft::UI::Xaml::DependencyPropertyChangedEventArgs const& args);
static void OnIsEnabledChangedStatic(Windows::Foundation::IInspectable const& sender, Microsoft::UI::Xaml::DependencyPropertyChangedEventArgs const& args);

inline void UpdateActionIcon(bool isClickEnabled) const;

public:
inline void OnDescriptionChanged(winrt::Windows::Foundation::IInspectable const& newValue) const;
inline void OnHeaderIconChanged(winrt::Microsoft::UI::Xaml::Controls::IconElement const& newValue) const;
inline void OnHeaderChanged(winrt::Windows::Foundation::IInspectable const& newValue) const;
private:
inline void OnDescriptionChanged(Windows::Foundation::IInspectable const& newValue) const;
inline void OnHeaderIconChanged(Microsoft::UI::Xaml::Controls::IconElement const& newValue) const;
inline void OnHeaderChanged(Windows::Foundation::IInspectable const& newValue) const;
inline void OnIsClickEnabledChanged(bool newValue, bool useTransitions = true) const;
inline void OnOrientationChanged(winrt::Microsoft::UI::Xaml::Controls::Orientation newValue) const;
inline void OnOrientationChanged(Microsoft::UI::Xaml::Controls::Orientation newValue) const;

private:
static void OnDescriptionChangedStatic(winrt::Microsoft::UI::Xaml::DependencyObject const& sender, winrt::Microsoft::UI::Xaml::DependencyPropertyChangedEventArgs const& args);
static void OnHeaderIconChangedStatic(winrt::Microsoft::UI::Xaml::DependencyObject const& sender, winrt::Microsoft::UI::Xaml::DependencyPropertyChangedEventArgs const& args);
static void OnHeaderChangedStatic(winrt::Microsoft::UI::Xaml::DependencyObject const& sender, winrt::Microsoft::UI::Xaml::DependencyPropertyChangedEventArgs const& args);
static void OnIsClickEnabledChangedStatic(winrt::Microsoft::UI::Xaml::DependencyObject const& sender, winrt::Microsoft::UI::Xaml::DependencyPropertyChangedEventArgs const& args);
static void OnOrientationChangedStatic(winrt::Microsoft::UI::Xaml::DependencyObject const& sender, winrt::Microsoft::UI::Xaml::DependencyPropertyChangedEventArgs const& args);
static void OnDescriptionChangedStatic(Microsoft::UI::Xaml::DependencyObject const& sender, Microsoft::UI::Xaml::DependencyPropertyChangedEventArgs const& args);
static void OnHeaderIconChangedStatic(Microsoft::UI::Xaml::DependencyObject const& sender, Microsoft::UI::Xaml::DependencyPropertyChangedEventArgs const& args);
static void OnHeaderChangedStatic(Microsoft::UI::Xaml::DependencyObject const& sender, Microsoft::UI::Xaml::DependencyPropertyChangedEventArgs const& args);
static void OnIsClickEnabledChangedStatic(Microsoft::UI::Xaml::DependencyObject const& sender, Microsoft::UI::Xaml::DependencyPropertyChangedEventArgs const& args);
static void OnOrientationChangedStatic(Microsoft::UI::Xaml::DependencyObject const& sender, Microsoft::UI::Xaml::DependencyPropertyChangedEventArgs const& args);

public: // - Properties
inline winrt::Microsoft::UI::Xaml::Controls::IconElement ActionIcon() const { return GetValue(props_.ActionIcon).as<winrt::Microsoft::UI::Xaml::Controls::IconElement>(); }
inline void ActionIcon(winrt::Microsoft::UI::Xaml::Controls::IconElement const& value) const { SetValue(props_.ActionIcon, value); }
inline Microsoft::UI::Xaml::Controls::IconElement ActionIcon() const { return GetValue(props_.ActionIcon).as<Microsoft::UI::Xaml::Controls::IconElement>(); }
inline void ActionIcon(Microsoft::UI::Xaml::Controls::IconElement const& value) const { SetValue(props_.ActionIcon, value); }

inline winrt::hstring ActionIconTooltip() const { return winrt::unbox_value<winrt::hstring>(GetValue(props_.ActionIconTooltip)); }
inline void ActionIconTooltip(winrt::param::hstring const& value) const { SetValue(props_.ActionIconTooltip, winrt::box_value(value)); }
inline hstring ActionIconTooltip() const { return unbox_value<hstring>(GetValue(props_.ActionIconTooltip)); }
inline void ActionIconTooltip(param::hstring const& value) const { SetValue(props_.ActionIconTooltip, box_value(value)); }

inline winrt::Windows::Foundation::IInspectable Description() const { return GetValue(props_.Description); }
inline void Description(winrt::Windows::Foundation::IInspectable const& value) const { SetValue(props_.Description, value); }
inline Windows::Foundation::IInspectable Description() const { return GetValue(props_.Description); }
inline void Description(Windows::Foundation::IInspectable const& value) const { SetValue(props_.Description, value); }

inline winrt::Microsoft::UI::Xaml::Controls::IconElement HeaderIcon() const { return GetValue(props_.HeaderIcon).as<winrt::Microsoft::UI::Xaml::Controls::IconElement>(); }
inline void HeaderIcon(winrt::Microsoft::UI::Xaml::Controls::IconElement const& value) const { SetValue(props_.HeaderIcon, value); }
inline Microsoft::UI::Xaml::Controls::IconElement HeaderIcon() const { return GetValue(props_.HeaderIcon).as<Microsoft::UI::Xaml::Controls::IconElement>(); }
inline void HeaderIcon(Microsoft::UI::Xaml::Controls::IconElement const& value) const { SetValue(props_.HeaderIcon, value); }

inline winrt::Windows::Foundation::IInspectable Header() const { return GetValue(props_.Header); }
inline void Header(winrt::Windows::Foundation::IInspectable const& value) const { SetValue(props_.Header, value); }
inline Windows::Foundation::IInspectable Header() const { return GetValue(props_.Header); }
inline void Header(Windows::Foundation::IInspectable const& value) const { SetValue(props_.Header, value); }

inline bool IsClickEnabled() const { return winrt::unbox_value<bool>(GetValue(props_.IsClickEnabled)); }
inline void IsClickEnabled(bool value) const { SetValue(props_.IsClickEnabled, winrt::box_value(value)); }
inline bool IsClickEnabled() const { return unbox_value<bool>(GetValue(props_.IsClickEnabled)); }
inline void IsClickEnabled(bool value) const { SetValue(props_.IsClickEnabled, box_value(value)); }

inline winrt::Microsoft::UI::Xaml::Controls::Orientation Orientation() const { return winrt::unbox_value<winrt::Microsoft::UI::Xaml::Controls::Orientation>(GetValue(props_.Orientation)); }
inline void Orientation(winrt::Microsoft::UI::Xaml::Controls::Orientation value) const { SetValue(props_.Orientation, winrt::box_value(value)); }
inline Microsoft::UI::Xaml::Controls::Orientation Orientation() const { return unbox_value<Microsoft::UI::Xaml::Controls::Orientation>(GetValue(props_.Orientation)); }
inline void Orientation(Microsoft::UI::Xaml::Controls::Orientation value) const { SetValue(props_.Orientation, box_value(value)); }

static winrt::Microsoft::UI::Xaml::DependencyProperty ActionIconProperty() noexcept { return props_.ActionIcon; }
static winrt::Microsoft::UI::Xaml::DependencyProperty ActionIconTooltipProperty() noexcept { return props_.ActionIconTooltip; }
static winrt::Microsoft::UI::Xaml::DependencyProperty DescriptionProperty() noexcept { return props_.Description; }
static winrt::Microsoft::UI::Xaml::DependencyProperty HeaderIconProperty() noexcept { return props_.HeaderIcon; }
static winrt::Microsoft::UI::Xaml::DependencyProperty HeaderProperty() noexcept { return props_.Header; }
static winrt::Microsoft::UI::Xaml::DependencyProperty IsClickEnabledProperty() noexcept { return props_.IsClickEnabled; }
static winrt::Microsoft::UI::Xaml::DependencyProperty OrientationProperty() noexcept { return props_.Orientation; }
inline static Microsoft::UI::Xaml::DependencyProperty ActionIconProperty() noexcept { return props_.ActionIcon; }
inline static Microsoft::UI::Xaml::DependencyProperty ActionIconTooltipProperty() noexcept { return props_.ActionIconTooltip; }
inline static Microsoft::UI::Xaml::DependencyProperty DescriptionProperty() noexcept { return props_.Description; }
inline static Microsoft::UI::Xaml::DependencyProperty HeaderIconProperty() noexcept { return props_.HeaderIcon; }
inline static Microsoft::UI::Xaml::DependencyProperty HeaderProperty() noexcept { return props_.Header; }
inline static Microsoft::UI::Xaml::DependencyProperty IsClickEnabledProperty() noexcept { return props_.IsClickEnabled; }
inline static Microsoft::UI::Xaml::DependencyProperty OrientationProperty() noexcept { return props_.Orientation; }

private: // - Variables
struct DependencyProperties final {
void DelayInitIfNeeded();

bool initialized_ { false };
winrt::Microsoft::UI::Xaml::DependencyProperty ActionIcon { nullptr };
winrt::Microsoft::UI::Xaml::DependencyProperty ActionIconTooltip { nullptr };
winrt::Microsoft::UI::Xaml::DependencyProperty Description { nullptr };
winrt::Microsoft::UI::Xaml::DependencyProperty HeaderIcon { nullptr };
winrt::Microsoft::UI::Xaml::DependencyProperty Header { nullptr };
winrt::Microsoft::UI::Xaml::DependencyProperty IsClickEnabled { nullptr };
winrt::Microsoft::UI::Xaml::DependencyProperty Orientation { nullptr };
Microsoft::UI::Xaml::DependencyProperty ActionIcon { nullptr };
Microsoft::UI::Xaml::DependencyProperty ActionIconTooltip { nullptr };
Microsoft::UI::Xaml::DependencyProperty Description { nullptr };
Microsoft::UI::Xaml::DependencyProperty HeaderIcon { nullptr };
Microsoft::UI::Xaml::DependencyProperty Header { nullptr };
Microsoft::UI::Xaml::DependencyProperty IsClickEnabled { nullptr };
Microsoft::UI::Xaml::DependencyProperty Orientation { nullptr };
};
static DependencyProperties props_;
};
Expand Down
18 changes: 9 additions & 9 deletions src/Controls/SettingsCard.xaml.properties.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -22,15 +22,15 @@ void SettingsCard::DependencyProperties::DelayInitIfNeeded() {

DEFINE_DP_METADATA(
ActionIcon,
winrt::Microsoft::UI::Xaml::Controls::IconElement,
Microsoft::UI::Xaml::Controls::IconElement,
SettingsCard,
winrt::PropertyMetadata(winrt::box_value(winrt::hstring(L"\ue974"))));
PropertyMetadata(box_value(hstring(L"\ue974"))));

DEFINE_DP_METADATA(
ActionIconTooltip,
winrt::hstring,
hstring,
SettingsCard,
winrt::PropertyMetadata(winrt::box_value(winrt::hstring(L"More"))));
PropertyMetadata(box_value(hstring(L"More"))));

DEFINE_DP_CALLBACK(
Description,
Expand All @@ -40,7 +40,7 @@ void SettingsCard::DependencyProperties::DelayInitIfNeeded() {

DEFINE_DP_CALLBACK(
HeaderIcon,
winrt::Microsoft::UI::Xaml::Controls::IconElement,
Microsoft::UI::Xaml::Controls::IconElement,
SettingsCard,
&SettingsCard::OnHeaderIconChangedStatic);

Expand All @@ -58,11 +58,11 @@ void SettingsCard::DependencyProperties::DelayInitIfNeeded() {

DEFINE_DP_METADATA(
Orientation,
winrt::Microsoft::UI::Xaml::Controls::Orientation,
Microsoft::UI::Xaml::Controls::Orientation,
SettingsCard,
winrt::PropertyMetadata(
winrt::box_value(winrt::Microsoft::UI::Xaml::Controls::Orientation::Horizontal),
winrt::PropertyChangedCallback(&SettingsCard::OnOrientationChangedStatic)));
PropertyMetadata(
box_value(Microsoft::UI::Xaml::Controls::Orientation::Horizontal),
PropertyChangedCallback(&SettingsCard::OnOrientationChangedStatic)));

initialized_ = true;
}
3 changes: 2 additions & 1 deletion src/Controls/SettingsExpander.xaml
Original file line number Diff line number Diff line change
Expand Up @@ -379,7 +379,8 @@
Content="{TemplateBinding Header}"
Foreground="{TemplateBinding Foreground}"
TextWrapping="Wrap" />
<ContentPresenter x:Name="Description"
<ContentPresenter x:DeferLoadStrategy="Lazy"
x:Name="Description"
Content="{TemplateBinding Description}"
FontSize="{StaticResource SettingsCardDescriptionFontSize}"
Foreground="{ThemeResource TextFillColorSecondaryBrush}"
Expand Down
Loading

0 comments on commit d86a462

Please sign in to comment.