diff options
Diffstat (limited to 'vendor/winapi/src/um/uxtheme.rs')
-rw-r--r-- | vendor/winapi/src/um/uxtheme.rs | 772 |
1 files changed, 0 insertions, 772 deletions
diff --git a/vendor/winapi/src/um/uxtheme.rs b/vendor/winapi/src/um/uxtheme.rs deleted file mode 100644 index 0e046a3..0000000 --- a/vendor/winapi/src/um/uxtheme.rs +++ /dev/null @@ -1,772 +0,0 @@ -// Licensed under the Apache License, Version 2.0 -// <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license -// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option. -// All files in the project carrying such notice may not be copied, modified, or distributed -// except according to those terms. -//! theming API -use ctypes::{c_float, c_int, c_void}; -use shared::minwindef::{BOOL, BYTE, DWORD, HINSTANCE, HRGN, LPARAM, UINT, ULONG, WORD}; -use shared::windef::{COLORREF, HBITMAP, HBRUSH, HDC, HWND, LPCRECT, LPRECT, POINT, RECT, SIZE}; -use um::commctrl::HIMAGELIST; -use um::wingdi::{BLENDFUNCTION, LOGFONTW, RGBQUAD, TEXTMETRICW}; -use um::winnt::{HANDLE, HRESULT, LONG, LPCWSTR, LPWSTR, PVOID, VOID}; -pub type HTHEME = HANDLE; -//pub const MAX_THEMECOLOR: u32 = 64; -//pub const MAX_THEMESIZE: u32 = 64; -extern "system" { - pub fn BeginPanningFeedback( - hwnd: HWND, - ) -> BOOL; - pub fn UpdatePanningFeedback( - hwnd: HWND, - lTotalOverpanOffsetX: LONG, - lTotalOverpanOffsetY: LONG, - fInInertia: BOOL, - ) -> BOOL; - pub fn EndPanningFeedback( - hwnd: HWND, - fAnimateBack: BOOL, - ) -> BOOL; -} -ENUM!{enum TA_PROPERTY { - TAP_FLAGS = 0, - TAP_TRANSFORMCOUNT = 1, - TAP_STAGGERDELAY = 2, - TAP_STAGGERDELAYCAP = 3, - TAP_STAGGERDELAYFACTOR = 4, - TAP_ZORDER = 5, -}} -ENUM!{enum TA_PROPERTY_FLAG { - TAPF_NONE = 0x0, - TAPF_HASSTAGGER = 0x1, - TAPF_ISRTLAWARE = 0x2, - TAPF_ALLOWCOLLECTION = 0x4, - TAPF_HASBACKGROUND = 0x8, - TAPF_HASPERSPECTIVE = 0x10, -}} -extern "system" { - pub fn GetThemeAnimationProperty( - hTheme: HTHEME, - iStoryboardId: c_int, - iTargetId: c_int, - eProperty: TA_PROPERTY, - pvProperty: *mut VOID, - cbSize: DWORD, - pcbSizeOut: *mut DWORD, - ) -> HRESULT; -} -ENUM!{enum TA_TRANSFORM_TYPE { - TATT_TRANSLATE_2D = 0, - TATT_SCALE_2D = 1, - TATT_OPACITY = 2, - TATT_CLIP = 3, -}} -ENUM!{enum TA_TRANSFORM_FLAG { - TATF_NONE = 0x0, - TATF_TARGETVALUES_USER = 0x1, - TATF_HASINITIALVALUES = 0x2, - TATF_HASORIGINVALUES = 0x4, -}} -STRUCT!{struct TA_TRANSFORM { - eTransformType: TA_TRANSFORM_TYPE, - dwTimingFunctionId: DWORD, - dwStartTime: DWORD, - dwDurationTime: DWORD, - eFlags: TA_TRANSFORM_FLAG, -}} -pub type PTA_TRANSFORM = *mut TA_TRANSFORM; -STRUCT!{struct TA_TRANSFORM_2D { - header: TA_TRANSFORM, - rX: c_float, - rY: c_float, - rInitialX: c_float, - rInitialY: c_float, - rOriginX: c_float, - rOriginY: c_float, -}} -pub type PTA_TRANSFORM_2D = *mut TA_TRANSFORM_2D; -STRUCT!{struct TA_TRANSFORM_OPACITY { - header: TA_TRANSFORM, - rOpacity: c_float, - rInitialOpacity: c_float, -}} -pub type PTA_TRANSFORM_OPACITY = *mut TA_TRANSFORM_OPACITY; -STRUCT!{struct TA_TRANSFORM_CLIP { - header: TA_TRANSFORM, - rLeft: c_float, - rTop: c_float, - rRight: c_float, - rBottom: c_float, - rInitialLeft: c_float, - rInitialTop: c_float, - rInitialRight: c_float, - rInitialBottom: c_float, -}} -pub type PTA_TRANSFORM_CLIP = *mut TA_TRANSFORM_CLIP; -extern "system" { - pub fn GetThemeAnimationTransform( - hTheme: HTHEME, - iStoryboardId: c_int, - iTargetId: c_int, - dwTransformIndex: DWORD, - pTransform: *mut TA_TRANSFORM, - cbSize: DWORD, - pcbSizeOut: *mut DWORD, - ) -> HRESULT; -} -ENUM!{enum TA_TIMINGFUNCTION_TYPE { - TTFT_UNDEFINED = 0, - TTFT_CUBIC_BEZIER = 1, -}} -STRUCT!{struct TA_TIMINGFUNCTION { - eTimingFunctionType: TA_TIMINGFUNCTION_TYPE, -}} -pub type PTA_TIMINGFUNCTION = *mut TA_TIMINGFUNCTION; -STRUCT!{struct TA_CUBIC_BEZIER { - header: TA_TIMINGFUNCTION, - rX0: c_float, - rY0: c_float, - rX1: c_float, - rY1: c_float, -}} -pub type PTA_CUBIC_BEZIER = *mut TA_CUBIC_BEZIER; -extern "system" { - pub fn GetThemeTimingFunction( - hTheme: HTHEME, - iTimingFunctionId: c_int, - pTimingFunction: *mut TA_TIMINGFUNCTION, - cbSize: DWORD, - pcbSizeOut: *mut DWORD, - ) -> HRESULT; - pub fn OpenThemeData( - hwnd: HWND, - pszClassList: LPCWSTR, - ) -> HTHEME; -} -pub const OTD_FORCE_RECT_SIZING: DWORD = 0x00000001; -pub const OTD_NONCLIENT: DWORD = 0x00000002; -pub const OTD_VALIDBITS: DWORD = OTD_FORCE_RECT_SIZING | OTD_NONCLIENT; -extern "system" { - pub fn OpenThemeDataForDpi( - hwnd: HWND, - pszClassList: LPCWSTR, - dpi: UINT, - ) -> HTHEME; - pub fn OpenThemeDataEx( - hwnd: HWND, - pszClassList: LPCWSTR, - dwFlags: DWORD, - ) -> HTHEME; - pub fn CloseThemeData( - hTheme: HTHEME, - ) -> HRESULT; - pub fn DrawThemeBackground( - hTheme: HTHEME, - hdc: HDC, - iPartId: c_int, - iStateId: c_int, - pRect: LPCRECT, - pClipRect: LPCRECT, - ) -> HRESULT; -} -pub const DTBG_CLIPRECT: DWORD = 0x00000001; -pub const DTBG_DRAWSOLID: DWORD = 0x00000002; -pub const DTBG_OMITBORDER: DWORD = 0x00000004; -pub const DTBG_OMITCONTENT: DWORD = 0x00000008; -pub const DTBG_COMPUTINGREGION: DWORD = 0x00000010; -pub const DTBG_MIRRORDC: DWORD = 0x00000020; -pub const DTBG_NOMIRROR: DWORD = 0x00000040; -pub const DTBG_VALIDBITS: DWORD = DTBG_CLIPRECT | DTBG_DRAWSOLID | DTBG_OMITBORDER - | DTBG_OMITCONTENT | DTBG_COMPUTINGREGION | DTBG_MIRRORDC | DTBG_NOMIRROR; -STRUCT!{struct DTBGOPTS { - dwSize: DWORD, - dwFlags: DWORD, - rcClip: RECT, -}} -pub type PDTBGOPTS = *mut DTBGOPTS; -extern "system" { - pub fn DrawThemeBackgroundEx( - hTheme: HTHEME, - hdc: HDC, - iPartId: c_int, - iStateId: c_int, - pRect: LPCRECT, - pOptions: *const DTBGOPTS, - ) -> HRESULT; -} -//pub const DTT_GRAYED: u32 = 0x00000001; -//pub const DTT_FLAGS2VALIDBITS: u32 = DTT_GRAYED; -extern "system" { - pub fn DrawThemeText( - hTheme: HTHEME, - hdc: HDC, - iPartId: c_int, - iStateId: c_int, - pszText: LPCWSTR, - cchText: c_int, - dwTextFlags: DWORD, - dwTextFlags2: DWORD, - pRect: LPCRECT, - ) -> HRESULT; - pub fn GetThemeBackgroundContentRect( - hTheme: HTHEME, - hdc: HDC, - iPartId: c_int, - iStateId: c_int, - pBoundingRect: LPCRECT, - pContentRect: LPRECT, - ) -> HRESULT; - pub fn GetThemeBackgroundExtent( - hTheme: HTHEME, - hdc: HDC, - iPartId: c_int, - iStateId: c_int, - pContentRect: LPCRECT, - pExtentRect: LPRECT, - ) -> HRESULT; - pub fn GetThemeBackgroundRegion( - hTheme: HTHEME, - hdc: HDC, - iPartId: c_int, - iStateId: c_int, - pRect: LPCRECT, - pRegion: *mut HRGN, - ) -> HRESULT; -} -ENUM!{enum THEMESIZE { - TS_MIN = 0, - TS_TRUE = 1, - TS_DRAW = 2, -}} -extern "system" { - pub fn GetThemePartSize( - hTheme: HTHEME, - hdc: HDC, - iPartId: c_int, - iStateId: c_int, - prc: LPCRECT, - eSize: THEMESIZE, - psz: *mut SIZE, - ) -> HRESULT; - pub fn GetThemeTextExtent( - hTheme: HTHEME, - hdc: HDC, - iPartId: c_int, - iStateId: c_int, - pszText: LPCWSTR, - cchCharCount: c_int, - dwTextFlags: DWORD, - pBoundingRect: LPCRECT, - pExtentRect: LPRECT, - ) -> HRESULT; - pub fn GetThemeTextMetrics( - hTheme: HTHEME, - hdc: HDC, - iPartId: c_int, - iStateId: c_int, - ptm: *mut TEXTMETRICW, - ) -> HRESULT; -} -pub const HTTB_BACKGROUNDSEG: DWORD = 0x00000000; -pub const HTTB_FIXEDBORDER: DWORD = 0x00000002; -pub const HTTB_CAPTION: DWORD = 0x00000004; -pub const HTTB_RESIZINGBORDER_LEFT: DWORD = 0x00000010; -pub const HTTB_RESIZINGBORDER_TOP: DWORD = 0x00000020; -pub const HTTB_RESIZINGBORDER_RIGHT: DWORD = 0x00000040; -pub const HTTB_RESIZINGBORDER_BOTTOM: DWORD = 0x00000080; -pub const HTTB_RESIZINGBORDER: DWORD = HTTB_RESIZINGBORDER_LEFT | HTTB_RESIZINGBORDER_TOP - | HTTB_RESIZINGBORDER_RIGHT | HTTB_RESIZINGBORDER_BOTTOM; -pub const HTTB_SIZINGTEMPLATE: DWORD = 0x00000100; -pub const HTTB_SYSTEMSIZINGMARGINS: DWORD = 0x00000200; -extern "system" { - pub fn HitTestThemeBackground( - hTheme: HTHEME, - hdc: HDC, - iPartId: c_int, - iStateId: c_int, - dwOptions: DWORD, - pRect: LPCRECT, - hrgn: HRGN, - ptTest: POINT, - pwHitTestCode: *mut WORD, - ) -> HRESULT; - pub fn DrawThemeEdge( - hTheme: HTHEME, - hdc: HDC, - iPartId: c_int, - iStateId: c_int, - pDestRect: LPCRECT, - uEdge: UINT, - uFlags: UINT, - pContentRect: LPRECT, - ) -> HRESULT; - pub fn DrawThemeIcon( - hTheme: HTHEME, - hdc: HDC, - iPartId: c_int, - iStateId: c_int, - pRect: LPCRECT, - himl: HIMAGELIST, - iImageIndex: c_int, - ) -> HRESULT; - pub fn IsThemePartDefined( - hTheme: HTHEME, - iPartId: c_int, - iStateId: c_int, - ) -> BOOL; - pub fn IsThemeBackgroundPartiallyTransparent( - hTheme: HTHEME, - iPartId: c_int, - iStateId: c_int, - ) -> BOOL; - pub fn GetThemeColor( - hTheme: HTHEME, - iPartId: c_int, - iStateId: c_int, - iPropId: c_int, - pColor: *mut COLORREF, - ) -> HRESULT; - pub fn GetThemeMetric( - hTheme: HTHEME, - hdc: HDC, - iPartId: c_int, - iStateId: c_int, - iPropId: c_int, - piVal: *mut c_int, - ) -> HRESULT; - pub fn GetThemeString( - hTheme: HTHEME, - iPartId: c_int, - iStateId: c_int, - iPropId: c_int, - pszBuff: LPWSTR, - cchMaxBuffChars: c_int, - ) -> HRESULT; - pub fn GetThemeBool( - hTheme: HTHEME, - iPartId: c_int, - iStateId: c_int, - iPropId: c_int, - pfVal: *mut BOOL, - ) -> HRESULT; - pub fn GetThemeInt( - hTheme: HTHEME, - iPartId: c_int, - iStateId: c_int, - iPropId: c_int, - piVal: *mut c_int, - ) -> HRESULT; - pub fn GetThemeEnumValue( - hTheme: HTHEME, - iPartId: c_int, - iStateId: c_int, - iPropId: c_int, - piVal: *mut c_int, - ) -> HRESULT; - pub fn GetThemePosition( - hTheme: HTHEME, - iPartId: c_int, - iStateId: c_int, - iPropId: c_int, - pPoint: *mut POINT, - ) -> HRESULT; - pub fn GetThemeFont( - hTheme: HTHEME, - hdc: HDC, - iPartId: c_int, - iStateId: c_int, - iPropId: c_int, - pFont: *mut LOGFONTW, - ) -> HRESULT; - pub fn GetThemeRect( - hTheme: HTHEME, - iPartId: c_int, - iStateId: c_int, - iPropId: c_int, - pRect: LPRECT, - ) -> HRESULT; -} -STRUCT!{struct MARGINS { - cxLeftWidth: c_int, - cxRightWidth: c_int, - cyTopHeight: c_int, - cyBottomHeight: c_int, -}} -pub type PMARGINS = *mut MARGINS; -extern "system" { - pub fn GetThemeMargins( - hTheme: HTHEME, - hdc: HDC, - iPartId: c_int, - iStateId: c_int, - iPropId: c_int, - prc: LPCRECT, - pMargins: *mut MARGINS, - ) -> HRESULT; -} -pub const MAX_INTLIST_COUNT: usize = 402; -STRUCT!{struct INTLIST { - iValueCount: c_int, - iValues: [c_int; MAX_INTLIST_COUNT], -}} -pub type PINTLIST = *mut INTLIST; -extern "system" { - pub fn GetThemeIntList( - hTheme: HTHEME, - iPartId: c_int, - iStateId: c_int, - iPropId: c_int, - pIntList: *mut INTLIST, - ) -> HRESULT; -} -ENUM!{enum PROPERTYORIGIN { - PO_STATE = 0, - PO_PART = 1, - PO_CLASS = 2, - PO_GLOBAL = 3, - PO_NOTFOUND = 4, -}} -extern "system" { - pub fn GetThemePropertyOrigin( - hTheme: HTHEME, - iPartId: c_int, - iStateId: c_int, - iPropId: c_int, - pOrigin: *mut PROPERTYORIGIN, - ) -> HRESULT; - pub fn SetWindowTheme( - hwnd: HWND, - pszSubAppName: LPCWSTR, - pszSubIdList: LPCWSTR, - ) -> HRESULT; - pub fn GetThemeFilename( - hTheme: HTHEME, - iPartId: c_int, - iStateId: c_int, - iPropId: c_int, - pszThemeFileName: LPWSTR, - cchMaxBuffChars: c_int, - ) -> HRESULT; - pub fn GetThemeSysColor( - hTheme: HTHEME, - iColorId: c_int, - ) -> COLORREF; - pub fn GetThemeSysColorBrush( - hTheme: HTHEME, - iColorId: c_int, - ) -> HBRUSH; - pub fn GetThemeSysBool( - hTheme: HTHEME, - iBoolId: c_int, - ) -> BOOL; - pub fn GetThemeSysSize( - hTheme: HTHEME, - iSizeId: c_int, - ) -> c_int; - pub fn GetThemeSysFont( - hTheme: HTHEME, - iFontId: c_int, - plf: *mut LOGFONTW, - ) -> HRESULT; - pub fn GetThemeSysString( - hTheme: HTHEME, - iStringId: c_int, - pszStringBuff: LPWSTR, - cchMaxStringChars: c_int, - ) -> HRESULT; - pub fn GetThemeSysInt( - hTheme: HTHEME, - iIntId: c_int, - piValue: *mut c_int, - ) -> HRESULT; - pub fn IsThemeActive() -> BOOL; - pub fn IsAppThemed() -> BOOL; - pub fn GetWindowTheme( - hwnd: HWND, - ) -> HTHEME; -} -pub const ETDT_DISABLE: DWORD = 0x00000001; -pub const ETDT_ENABLE: DWORD = 0x00000002; -pub const ETDT_USETABTEXTURE: DWORD = 0x00000004; -pub const ETDT_ENABLETAB: DWORD = ETDT_ENABLE | ETDT_USETABTEXTURE; -pub const ETDT_USEAEROWIZARDTABTEXTURE: DWORD = 0x00000008; -pub const ETDT_ENABLEAEROWIZARDTAB: DWORD = ETDT_ENABLE | ETDT_USEAEROWIZARDTABTEXTURE; -pub const ETDT_VALIDBITS: DWORD = ETDT_DISABLE | ETDT_ENABLE | ETDT_USETABTEXTURE - | ETDT_USEAEROWIZARDTABTEXTURE; -extern "system" { - pub fn EnableThemeDialogTexture( - hwnd: HWND, - dwFlags: DWORD, - ) -> HRESULT; - pub fn IsThemeDialogTextureEnabled( - hwnd: HWND, - ) -> BOOL; -} -pub const STAP_ALLOW_NONCLIENT: DWORD = 1 << 0; -pub const STAP_ALLOW_CONTROLS: DWORD = 1 << 1; -pub const STAP_ALLOW_WEBCONTENT: DWORD = 1 << 2; -pub const STAP_VALIDBITS: DWORD = STAP_ALLOW_NONCLIENT | STAP_ALLOW_CONTROLS - | STAP_ALLOW_WEBCONTENT; -extern "system" { - pub fn GetThemeAppProperties() -> DWORD; - pub fn SetThemeAppProperties( - dwFlags: DWORD, - ); - pub fn GetCurrentThemeName( - pszThemeFileName: LPWSTR, - cchMaxNameChars: c_int, - pszColorBuff: LPWSTR, - cchMaxColorChars: c_int, - pszSizeBuff: LPWSTR, - cchMaxSizeChars: c_int, - ) -> HRESULT; -} -pub const SZ_THDOCPROP_DISPLAYNAME: &'static str = "DisplayName"; -pub const SZ_THDOCPROP_CANONICALNAME: &'static str = "ThemeName"; -pub const SZ_THDOCPROP_TOOLTIP: &'static str = "ToolTip"; -pub const SZ_THDOCPROP_AUTHOR: &'static str = "author"; -extern "system" { - pub fn GetThemeDocumentationProperty( - pszThemeName: LPCWSTR, - pszPropertyName: LPCWSTR, - pszValueBuff: LPWSTR, - cchMaxValChars: c_int, - ) -> HRESULT; - pub fn DrawThemeParentBackground( - hwnd: HWND, - hdc: HDC, - prc: *const RECT, - ) -> HRESULT; - pub fn EnableTheming( - fEnable: BOOL, - ) -> HRESULT; -} -pub const GBF_DIRECT: ULONG = 0x00000001; -pub const GBF_COPY: ULONG = 0x00000002; -pub const GBF_VALIDBITS: ULONG = GBF_DIRECT | GBF_COPY; -pub const DTPB_WINDOWDC: DWORD = 0x00000001; -pub const DTPB_USECTLCOLORSTATIC: DWORD = 0x00000002; -pub const DTPB_USEERASEBKGND: DWORD = 0x00000004; -extern "system" { - pub fn DrawThemeParentBackgroundEx( - hwnd: HWND, - hdc: HDC, - dwFlags: DWORD, - prc: *const RECT, - ) -> HRESULT; -} -ENUM!{enum WINDOWTHEMEATTRIBUTETYPE { - WTA_NONCLIENT = 1, -}} -STRUCT!{struct WTA_OPTIONS { - dwFlags: DWORD, - dwMask: DWORD, -}} -pub type PWTA_OPTIONS = *mut WTA_OPTIONS; -pub const WTNCA_NODRAWCAPTION: DWORD = 0x00000001; -pub const WTNCA_NODRAWICON: DWORD = 0x00000002; -pub const WTNCA_NOSYSMENU: DWORD = 0x00000004; -pub const WTNCA_NOMIRRORHELP: DWORD = 0x00000008; -pub const WTNCA_VALIDBITS: DWORD = WTNCA_NODRAWCAPTION | WTNCA_NODRAWICON | WTNCA_NOSYSMENU - | WTNCA_NOMIRRORHELP; -extern "system" { - pub fn SetWindowThemeAttribute( - hwnd: HWND, - eAttribute: WINDOWTHEMEATTRIBUTETYPE, - pvAttribute: PVOID, - cbAttribute: DWORD, - ) -> HRESULT; -} -#[inline] -pub unsafe fn SetWindowThemeNonClientAttributes( - hwnd: HWND, - dwMask: DWORD, - dwAttributes: DWORD, -) -> HRESULT { - use core::mem::{size_of, zeroed}; - let mut wta: WTA_OPTIONS = zeroed(); - wta.dwFlags = dwAttributes; - wta.dwMask = dwMask; - SetWindowThemeAttribute( - hwnd, - WTA_NONCLIENT, - &mut wta as *mut WTA_OPTIONS as *mut c_void, - size_of::<WTA_OPTIONS>() as u32, - ) -} -FN!{stdcall DTT_CALLBACK_PROC( - hdc: HDC, - pszText: LPWSTR, - cchText: c_int, - prc: LPRECT, - dwFlags: UINT, - lParam: LPARAM, -) -> c_int} -pub const DTT_TEXTCOLOR: DWORD = 1 << 0; -pub const DTT_BORDERCOLOR: DWORD = 1 << 1; -pub const DTT_SHADOWCOLOR: DWORD = 1 << 2; -pub const DTT_SHADOWTYPE: DWORD = 1 << 3; -pub const DTT_SHADOWOFFSET: DWORD = 1 << 4; -pub const DTT_BORDERSIZE: DWORD = 1 << 5; -pub const DTT_FONTPROP: DWORD = 1 << 6; -pub const DTT_COLORPROP: DWORD = 1 << 7; -pub const DTT_STATEID: DWORD = 1 << 8; -pub const DTT_CALCRECT: DWORD = 1 << 9; -pub const DTT_APPLYOVERLAY: DWORD = 1 << 10; -pub const DTT_GLOWSIZE: DWORD = 1 << 11; -pub const DTT_CALLBACK: DWORD = 1 << 12; -pub const DTT_COMPOSITED: DWORD = 1 << 13; -pub const DTT_VALIDBITS: DWORD = DTT_TEXTCOLOR | DTT_BORDERCOLOR | DTT_SHADOWCOLOR - | DTT_SHADOWTYPE | DTT_SHADOWOFFSET | DTT_BORDERSIZE | DTT_FONTPROP | DTT_COLORPROP - | DTT_STATEID | DTT_CALCRECT | DTT_APPLYOVERLAY | DTT_GLOWSIZE | DTT_COMPOSITED; -STRUCT!{struct DTTOPTS { - dwSize: DWORD, - dwFlags: DWORD, - crText: COLORREF, - crBorder: COLORREF, - crShadow: COLORREF, - iTextShadowType: c_int, - ptShadowOffset: POINT, - iBorderSize: c_int, - iFontPropId: c_int, - iColorPropId: c_int, - iStateId: c_int, - fApplyOverlay: BOOL, - iGlowSize: c_int, - pfnDrawTextCallback: DTT_CALLBACK_PROC, - lParam: LPARAM, -}} -pub type PDTTOPTS = *mut DTTOPTS; -extern "system" { - pub fn DrawThemeTextEx( - hTheme: HTHEME, - hdc: HDC, - iPartId: c_int, - iStateId: c_int, - pszText: LPCWSTR, - cchText: c_int, - dwTextFlags: DWORD, - pRect: LPRECT, - pOptions: *const DTTOPTS, - ) -> HRESULT; - pub fn GetThemeBitmap( - hTheme: HTHEME, - iPartId: c_int, - iStateId: c_int, - iPropId: c_int, - dwFlags: ULONG, - phBitmap: *mut HBITMAP, - ) -> HRESULT; - pub fn GetThemeStream( - hTheme: HTHEME, - iPartId: c_int, - iStateId: c_int, - iPropId: c_int, - ppvStream: *mut *mut VOID, - pcbStream: *mut DWORD, - hInst: HINSTANCE, - ) -> HRESULT; - pub fn BufferedPaintInit() -> HRESULT; - pub fn BufferedPaintUnInit() -> HRESULT; -} -pub type HPAINTBUFFER = HANDLE; -ENUM!{enum BP_BUFFERFORMAT { - BPBF_COMPATIBLEBITMAP = 0, - BPBF_DIB = 1, - BPBF_TOPDOWNDIB = 2, - BPBF_TOPDOWNMONODIB = 3, -}} -pub const BPBF_COMPOSITED: BP_BUFFERFORMAT = BPBF_TOPDOWNDIB; -ENUM!{enum BP_ANIMATIONSTYLE { - BPAS_NONE = 0, - BPAS_LINEAR = 1, - BPAS_CUBIC = 2, - BPAS_SINE = 3, -}} -STRUCT!{struct BP_ANIMATIONPARAMS { - cbSize: DWORD, - dwFlags: DWORD, - style: BP_ANIMATIONSTYLE, - dwDuration: DWORD, -}} -pub type PBP_ANIMATIONPARAMS = *mut BP_ANIMATIONPARAMS; -pub const BPPF_ERASE: DWORD = 0x0001; -pub const BPPF_NOCLIP: DWORD = 0x0002; -pub const BPPF_NONCLIENT: DWORD = 0x0004; -STRUCT!{struct BP_PAINTPARAMS { - cbSize: DWORD, - dwFlags: DWORD, - prcExclude: *const RECT, - pBlendFunction: *const BLENDFUNCTION, -}} -pub type PBP_PAINTPARAMS = *mut BP_PAINTPARAMS; -extern "system" { - pub fn BeginBufferedPaint( - hdcTarget: HDC, - prcTarget: *const RECT, - dwFormat: BP_BUFFERFORMAT, - pPaintParams: *mut BP_PAINTPARAMS, - phdc: *mut HDC, - ) -> HPAINTBUFFER; - pub fn EndBufferedPaint( - hBufferedPaint: HPAINTBUFFER, - fUpdateTarget: BOOL, - ) -> HRESULT; - pub fn GetBufferedPaintTargetRect( - hBufferedPaint: HPAINTBUFFER, - prc: *mut RECT, - ) -> HRESULT; - pub fn GetBufferedPaintTargetDC( - hBufferedPaint: HPAINTBUFFER, - ) -> HDC; - pub fn GetBufferedPaintDC( - hBufferedPaint: HPAINTBUFFER, - ) -> HDC; - pub fn GetBufferedPaintBits( - hBufferedPaint: HPAINTBUFFER, - ppbBuffer: *mut *mut RGBQUAD, - pcxRow: *mut c_int, - ) -> HRESULT; - pub fn BufferedPaintClear( - hBufferedPaint: HPAINTBUFFER, - prc: *const RECT, - ) -> HRESULT; - pub fn BufferedPaintSetAlpha( - hBufferedPaint: HPAINTBUFFER, - prc: *const RECT, - alpha: BYTE, - ) -> HRESULT; - pub fn BufferedPaintStopAllAnimations( - hwnd: HWND, - ) -> HRESULT; -} -pub type HANIMATIONBUFFER = HANDLE; -extern "system" { - pub fn BeginBufferedAnimation( - hwnd: HWND, - hdcTarget: HDC, - prcTarget: *const RECT, - dwFormat: BP_BUFFERFORMAT, - pPaintParams: *mut BP_PAINTPARAMS, - pAnimationParams: *mut BP_ANIMATIONPARAMS, - phdcFrom: *mut HDC, - phdcTo: *mut HDC, - ) -> HANIMATIONBUFFER; - pub fn EndBufferedAnimation( - hbpAnimation: HANIMATIONBUFFER, - fUpdateTarget: BOOL, - ) -> HRESULT; - pub fn BufferedPaintRenderAnimation( - hwnd: HWND, - hdcTarget: HDC, - ) -> BOOL; - pub fn IsCompositionActive() -> BOOL; - pub fn GetThemeTransitionDuration( - hTheme: HTHEME, - iPartId: c_int, - iStateIdFrom: c_int, - iStateIdTo: c_int, - iPropId: c_int, - pdwDuration: *mut DWORD, - ) -> HRESULT; -} |