aboutsummaryrefslogtreecommitdiff
path: root/vendor/winapi/src/um/uxtheme.rs
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/winapi/src/um/uxtheme.rs')
-rw-r--r--vendor/winapi/src/um/uxtheme.rs772
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;
-}