From: Mohamad Al-Jaf mohamadaljaf@gmail.com
--- include/Makefile.in | 1 + include/windows.ui.viewmanagement.idl | 305 ++++++++++++++++++++++++++ 2 files changed, 306 insertions(+) create mode 100644 include/windows.ui.viewmanagement.idl
diff --git a/include/Makefile.in b/include/Makefile.in index 8602dd51e42..b9a357ef366 100644 --- a/include/Makefile.in +++ b/include/Makefile.in @@ -824,6 +824,7 @@ SOURCES = \ windows.system.threading.idl \ windows.system.userprofile.idl \ windows.ui.idl \ + windows.ui.viewmanagement.idl \ windowscontracts.idl \ windowsx.h \ wine/afd.h \ diff --git a/include/windows.ui.viewmanagement.idl b/include/windows.ui.viewmanagement.idl new file mode 100644 index 00000000000..a416635fd5b --- /dev/null +++ b/include/windows.ui.viewmanagement.idl @@ -0,0 +1,305 @@ +/* + * Copyright (C) 2023 Mohamad Al-Jaf + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ + +#ifdef __WIDL__ +#pragma winrt ns_prefix +#endif + +import "inspectable.idl"; +import "asyncinfo.idl"; +import "eventtoken.idl"; +import "windowscontracts.idl"; +import "windows.foundation.idl"; +import "windows.devices.enumeration.idl"; +/* import "windows.phone.idl"; */ +import "windows.ui.idl"; +/* import "windows.ui.core.idl"; */ +/* import "windows.ui.popups.idl"; */ +/* import "windows.ui.windowmanagement.idl"; */ + +namespace Windows.UI.ViewManagement +{ + typedef enum HandPreference HandPreference; + typedef enum UIColorType UIColorType; + typedef enum UIElementType UIElementType; + + interface IUISettings; + interface IUISettings2; + interface IUISettings3; + interface IUISettings4; + interface IUISettings5; + interface IUISettings6; + interface IUISettingsAnimationsEnabledChangedEventArgs; + interface IUISettingsAutoHideScrollBarsChangedEventArgs; + interface IUISettingsMessageDurationChangedEventArgs; + + runtimeclass UISettings; + runtimeclass UISettingsAnimationsEnabledChangedEventArgs; + runtimeclass UISettingsAutoHideScrollBarsChangedEventArgs; + runtimeclass UISettingsMessageDurationChangedEventArgs; + + declare { + interface Windows.Foundation.IReference<Windows.UI.ViewManagement.UIElementType>; + interface Windows.Foundation.TypedEventHandler<Windows.UI.ViewManagement.UISettings *, IInspectable *>; + interface Windows.Foundation.TypedEventHandler<Windows.UI.ViewManagement.UISettings *, Windows.UI.ViewManagement.UISettingsAnimationsEnabledChangedEventArgs *>; + interface Windows.Foundation.TypedEventHandler<Windows.UI.ViewManagement.UISettings *, Windows.UI.ViewManagement.UISettingsAutoHideScrollBarsChangedEventArgs *>; + interface Windows.Foundation.TypedEventHandler<Windows.UI.ViewManagement.UISettings *, Windows.UI.ViewManagement.UISettingsMessageDurationChangedEventArgs *>; + } + + [ + contract(Windows.Foundation.UniversalApiContract, 1.0) + ] + enum HandPreference + { + LeftHanded = 0, + RightHanded = 1, + }; + + [ + contract(Windows.Foundation.UniversalApiContract, 1.0) + ] + enum UIColorType + { + Background = 0, + Foreground = 1, + AccentDark3 = 2, + AccentDark2 = 3, + AccentDark1 = 4, + Accent = 5, + AccentLight1 = 6, + AccentLight2 = 7, + AccentLight3 = 8, + Complement = 9, + }; + + [ + contract(Windows.Foundation.UniversalApiContract, 1.0) + ] + enum UIElementType + { + ActiveCaption = 0, + Background = 1, + ButtonFace = 2, + ButtonText = 3, + CaptionText = 4, + GrayText = 5, + Highlight = 6, + HighlightText = 7, + Hotlight = 8, + InactiveCaption = 9, + InactiveCaptionText = 10, + Window = 11, + WindowText = 12, + [contract(Windows.Foundation.UniversalApiContract, 1.0)] + AccentColor = 1000, + [contract(Windows.Foundation.UniversalApiContract, 1.0)] + TextHigh = 1001, + [contract(Windows.Foundation.UniversalApiContract, 1.0)] + TextMedium = 1002, + [contract(Windows.Foundation.UniversalApiContract, 1.0)] + TextLow = 1003, + [contract(Windows.Foundation.UniversalApiContract, 1.0)] + TextContrastWithHigh = 1004, + [contract(Windows.Foundation.UniversalApiContract, 1.0)] + NonTextHigh = 1005, + [contract(Windows.Foundation.UniversalApiContract, 1.0)] + NonTextMediumHigh = 1006, + [contract(Windows.Foundation.UniversalApiContract, 1.0)] + NonTextMedium = 1007, + [contract(Windows.Foundation.UniversalApiContract, 1.0)] + NonTextMediumLow = 1008, + [contract(Windows.Foundation.UniversalApiContract, 1.0)] + NonTextLow = 1009, + [contract(Windows.Foundation.UniversalApiContract, 1.0)] + PageBackground = 1010, + [contract(Windows.Foundation.UniversalApiContract, 1.0)] + PopupBackground = 1011, + [contract(Windows.Foundation.UniversalApiContract, 1.0)] + OverlayOutsidePopup = 1012, + }; + + [ + contract(Windows.Foundation.UniversalApiContract, 1.0), + exclusiveto(Windows.UI.ViewManagement.UISettings), + uuid(85361600-1c63-4627-bcb1-3a89e0bc9c55) + ] + interface IUISettings : IInspectable + { + [propget] HRESULT HandPreference([out, retval] Windows.UI.ViewManagement.HandPreference *value); + [propget] HRESULT CursorSize([out, retval] Windows.Foundation.Size *value); + [propget] HRESULT ScrollBarSize([out, retval] Windows.Foundation.Size *value); + [propget] HRESULT ScrollBarArrowSize([out, retval] Windows.Foundation.Size *value); + [propget] HRESULT ScrollBarThumbBoxSize([out, retval] Windows.Foundation.Size *value); + [propget] HRESULT MessageDuration([out, retval] UINT32 *value); + [propget] HRESULT AnimationsEnabled([out, retval] boolean *value); + [propget] HRESULT CaretBrowsingEnabled([out, retval] boolean *value); + [propget] HRESULT CaretBlinkRate([out, retval] UINT32 *value); + [propget] HRESULT CaretWidth([out, retval] UINT32 *value); + [propget] HRESULT DoubleClickTime([out, retval] UINT32 *value); + [propget] HRESULT MouseHoverTime([out, retval] UINT32 *value); + HRESULT UIElementColor([in] Windows.UI.ViewManagement.UIElementType element, [out, retval] Windows.UI.Color *value); + } + + [ + contract(Windows.Foundation.UniversalApiContract, 1.0), + exclusiveto(Windows.UI.ViewManagement.UISettings), + uuid(bad82401-2721-44f9-bb91-2bb228be442f) + ] + interface IUISettings2 : IInspectable + { + [propget] HRESULT TextScaleFactor([out, retval] DOUBLE *value); + [eventadd] HRESULT TextScaleFactorChanged( + [in] Windows.Foundation.TypedEventHandler<Windows.UI.ViewManagement.UISettings *, IInspectable *> *handler, + [out, retval] EventRegistrationToken *cookie + ); + [eventremove] HRESULT TextScaleFactorChanged([in] EventRegistrationToken cookie); + } + + [ + contract(Windows.Foundation.UniversalApiContract, 1.0), + exclusiveto(Windows.UI.ViewManagement.UISettings), + uuid(03021be4-5254-4781-8194-5168f7d06d7b) + ] + interface IUISettings3 : IInspectable + { + HRESULT GetColorValue([in] Windows.UI.ViewManagement.UIColorType color, [out, retval] Windows.UI.Color *value); + [eventadd] HRESULT ColorValuesChanged( + [in] Windows.Foundation.TypedEventHandler<Windows.UI.ViewManagement.UISettings *, IInspectable *> *handler, + [out, retval] EventRegistrationToken *cookie + ); + [eventremove] HRESULT ColorValuesChanged([in] EventRegistrationToken cookie); + } + + [ + contract(Windows.Foundation.UniversalApiContract, 4.0), + exclusiveto(Windows.UI.ViewManagement.UISettings), + uuid(52bb3002-919b-4d6b-9b78-8dd66ff4b93b) + ] + interface IUISettings4 : IInspectable + { + [propget] HRESULT AdvancedEffectsEnabled([out, retval] boolean *value); + [eventadd] HRESULT AdvancedEffectsEnabledChanged( + [in] Windows.Foundation.TypedEventHandler<Windows.UI.ViewManagement.UISettings *, IInspectable *> *handler, + [out, retval] EventRegistrationToken *cookie + ); + [eventremove] HRESULT AdvancedEffectsEnabledChanged([in] EventRegistrationToken cookie); + } + + [ + contract(Windows.Foundation.UniversalApiContract, 8.0), + exclusiveto(Windows.UI.ViewManagement.UISettings), + uuid(5349d588-0cb5-5f05-bd34-706b3231f0bd) + ] + interface IUISettings5 : IInspectable + { + [propget] HRESULT AutoHideScrollBars([out, retval] boolean *value); + [eventadd] HRESULT AutoHideScrollBarsChanged( + [in] Windows.Foundation.TypedEventHandler<Windows.UI.ViewManagement.UISettings *,Windows.UI.ViewManagement.UISettingsAutoHideScrollBarsChangedEventArgs *> *handler, + [out, retval] EventRegistrationToken *token + ); + [eventremove] HRESULT AutoHideScrollBarsChanged([in] EventRegistrationToken token); + } + + [ + contract(Windows.Foundation.UniversalApiContract, 10.0), + exclusiveto(Windows.UI.ViewManagement.UISettings), + uuid(aef19bd7-fe31-5a04-ada4-469aaec6dfa9) + ] + interface IUISettings6 : IInspectable + { + [eventadd] HRESULT AnimationsEnabledChanged( + [in] Windows.Foundation.TypedEventHandler<Windows.UI.ViewManagement.UISettings *, Windows.UI.ViewManagement.UISettingsAnimationsEnabledChangedEventArgs *> *handler, + [out, retval] EventRegistrationToken *token + ); + [eventremove] HRESULT AnimationsEnabledChanged([in] EventRegistrationToken token); + [eventadd] HRESULT MessageDurationChanged( + [in] Windows.Foundation.TypedEventHandler<Windows.UI.ViewManagement.UISettings *, Windows.UI.ViewManagement.UISettingsMessageDurationChangedEventArgs *> *handler, + [out, retval] EventRegistrationToken *token + ); + [eventremove] HRESULT MessageDurationChanged([in] EventRegistrationToken token); + } + + [ + contract(Windows.Foundation.UniversalApiContract, 10.0), + exclusiveto(Windows.UI.ViewManagement.UISettingsAnimationsEnabledChangedEventArgs), + uuid(0c7b4b3d-2ea1-533e-894d-415bc5243c29) + ] + interface IUISettingsAnimationsEnabledChangedEventArgs : IInspectable + { + } + + [ + contract(Windows.Foundation.UniversalApiContract, 8.0), + exclusiveto(Windows.UI.ViewManagement.UISettingsAutoHideScrollBarsChangedEventArgs), + uuid(87afd4b2-9146-5f02-8f6b-06d454174c0f) + ] + interface IUISettingsAutoHideScrollBarsChangedEventArgs : IInspectable + { + } + + [ + contract(Windows.Foundation.UniversalApiContract, 10.0), + exclusiveto(Windows.UI.ViewManagement.UISettingsMessageDurationChangedEventArgs), + uuid(338aad52-4a5d-5b59-8002-d930f608fd6e) + ] + interface IUISettingsMessageDurationChangedEventArgs : IInspectable + { + } + + [ + activatable(Windows.Foundation.UniversalApiContract, 1.0), + contract(Windows.Foundation.UniversalApiContract, 1.0), + marshaling_behavior(agile) + ] + runtimeclass UISettings + { + [default] interface Windows.UI.ViewManagement.IUISettings; + [contract(Windows.Foundation.UniversalApiContract, 1.0)] interface Windows.UI.ViewManagement.IUISettings2; + [contract(Windows.Foundation.UniversalApiContract, 1.0)] interface Windows.UI.ViewManagement.IUISettings3; + [contract(Windows.Foundation.UniversalApiContract, 4.0)] interface Windows.UI.ViewManagement.IUISettings4; + [contract(Windows.Foundation.UniversalApiContract, 8.0)] interface Windows.UI.ViewManagement.IUISettings5; + [contract(Windows.Foundation.UniversalApiContract, 10.0)] interface Windows.UI.ViewManagement.IUISettings6; + } + + [ + contract(Windows.Foundation.UniversalApiContract, 10.0), + marshaling_behavior(agile) + ] + runtimeclass UISettingsAnimationsEnabledChangedEventArgs + { + [default] interface Windows.UI.ViewManagement.IUISettingsAnimationsEnabledChangedEventArgs; + } + + [ + contract(Windows.Foundation.UniversalApiContract, 8.0), + marshaling_behavior(agile) + ] + runtimeclass UISettingsAutoHideScrollBarsChangedEventArgs + { + [default] interface Windows.UI.ViewManagement.IUISettingsAutoHideScrollBarsChangedEventArgs; + } + + [ + contract(Windows.Foundation.UniversalApiContract, 10.0), + marshaling_behavior(agile) + ] + runtimeclass UISettingsMessageDurationChangedEventArgs + { + [default] interface Windows.UI.ViewManagement.IUISettingsMessageDurationChangedEventArgs; + } +}