diff --git a/ChangeLog b/ChangeLog index 6fb5ff27a8..3b9f16617e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2005-11-25 Dom Lachowicz + + * modules/engines/ms-windows/*.[ch]: Merge with gtk-wimp's CVS. + Includes improved menu icon spacing, [+]/[-] expander drawing, + status-bar gippie drawing, and notebook tab drawing. + 2005-11-24 Michael Natterer * gtk/gtktoolbar.h (struct _GtkToolbar): changed two private guint diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10 index 6fb5ff27a8..3b9f16617e 100644 --- a/ChangeLog.pre-2-10 +++ b/ChangeLog.pre-2-10 @@ -1,3 +1,9 @@ +2005-11-25 Dom Lachowicz + + * modules/engines/ms-windows/*.[ch]: Merge with gtk-wimp's CVS. + Includes improved menu icon spacing, [+]/[-] expander drawing, + status-bar gippie drawing, and notebook tab drawing. + 2005-11-24 Michael Natterer * gtk/gtktoolbar.h (struct _GtkToolbar): changed two private guint diff --git a/modules/engines/ms-windows/msw_style.c b/modules/engines/ms-windows/msw_style.c index d8e9396aa6..cd637ffa83 100755 --- a/modules/engines/ms-windows/msw_style.c +++ b/modules/engines/ms-windows/msw_style.c @@ -23,9 +23,10 @@ /* * Useful resources: * - * http://lxr.mozilla.org/mozilla/source/gfx/src/windows/nsNativeThemeWin.cpp + * http://lxr.mozilla.org/seamonkey/source/widget/src/windows/nsNativeThemeWin.cpp * http://lxr.mozilla.org/seamonkey/source/widget/src/windows/nsLookAndFeel.cpp * http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/commctls/userex/functions/drawthemebackground.asp + * http://msdn.microsoft.com/library/default.asp?url=/library/en-us/gdi/pantdraw_4b3g.asp */ #include "msw_style.h" @@ -290,9 +291,9 @@ get_family_name (LOGFONT * lfp, HDC pango_win32_hdc) size_t i, l, nbytes; - /* If lfFaceName is ASCII, assume it is the common (English) name for the + /* If lfFaceName is ASCII, assume it is the common (English) name for the font. Is this valid? Do some TrueType fonts have different names in - French, German, etc, and does the system return these if the locale is + French, German, etc, and does the system return these if the locale is set to use French, German, etc? */ l = strlen (lfp->lfFaceName); for (i = 0; i < l; i++) @@ -329,7 +330,7 @@ get_family_name (LOGFONT * lfp, HDC pango_win32_hdc) if (record.platform_id == APPLE_UNICODE_PLATFORM_ID || record.platform_id == ISO_PLATFORM_ID) unicode_ix = i; - else if (record.platform_id == MACINTOSH_PLATFORM_ID && record.encoding_id == 0 && /* Roman + else if (record.platform_id == MACINTOSH_PLATFORM_ID && record.encoding_id == 0 && /* Roman */ record.language_id == 0) /* English */ mac_ix = i; @@ -560,7 +561,7 @@ msw_style_setup_system_settings (void) setup_menu_settings (settings); - /* + /* http://developer.gnome.org/doc/API/2.0/gtk/GtkSettings.html http://msdn.microsoft.com/library/default.asp?url=/library/en-us/sysinfo/base/systemparametersinfo.asp http://msdn.microsoft.com/library/default.asp?url=/library/en-us/sysinfo/base/getsystemmetrics.asp */ @@ -661,6 +662,7 @@ setup_msw_rc_style (void) font_buf, sizeof (font_buf)); g_snprintf (buf, sizeof (buf), "style \"msw-menu\" = \"msw-default\"\n" "{\n" + "GtkMenuItem::toggle-spacing = 8\n" "fg[PRELIGHT] = { %d, %d, %d }\n" "bg[PRELIGHT] = { %d, %d, %d }\n" "text[PRELIGHT] = { %d, %d, %d }\n" @@ -1057,7 +1059,7 @@ draw_expander (GtkStyle * style, gdk_draw_line (window, style->fg_gc[state], x + 2, y + expander_semi_size, - x + expander_size - 2, y + expander_semi_size); + x + expander_size - 3, y + expander_semi_size); switch (expander_style) { @@ -1066,7 +1068,7 @@ draw_expander (GtkStyle * style, gdk_draw_line (window, style->fg_gc[state], x + expander_semi_size, y + 2, x + expander_semi_size, - y + expander_size - 2); + y + expander_size - 3); break; default: @@ -1440,6 +1442,46 @@ is_toolbar_child (GtkWidget * wid) return FALSE; } +static HDC get_window_dc(GtkStyle * style, GdkWindow * window, GtkStateType state_type, gint x, gint y, gint width, gint height, RECT *rect) +{ + int xoff, yoff; + GdkDrawable *drawable; + + if (!GDK_IS_WINDOW (window)) + { + xoff = 0; + yoff = 0; + drawable = window; + } + else + { + gdk_window_get_internal_paint_info (window, &drawable, &xoff, &yoff); + } + + rect->left = x - xoff; + rect->top = y - yoff; + rect->right = rect->left + width; + rect->bottom = rect->top + height; + + return gdk_win32_hdc_get (drawable, style->dark_gc[state_type], 0); +} + +static void release_window_dc(GtkStyle * style, GdkWindow * window, GtkStateType state_type) +{ + GdkDrawable *drawable; + + if (!GDK_IS_WINDOW (window)) + { + drawable = window; + } + else + { + gdk_window_get_internal_paint_info (window, &drawable, NULL, NULL); + } + + gdk_win32_hdc_release (drawable, style->dark_gc[state_type], 0); +} + static void draw_box (GtkStyle * style, GdkWindow * window, @@ -1505,7 +1547,7 @@ draw_box (GtkStyle * style, GtkScrollbar *scrollbar = GTK_SCROLLBAR (widget); gboolean is_v = GTK_IS_VSCROLLBAR (widget); - if (xp_theme_draw (window, + if (xp_theme_draw (window, is_v ? XP_THEME_ELEMENT_SCROLLBAR_V : XP_THEME_ELEMENT_SCROLLBAR_H, @@ -1517,7 +1559,7 @@ draw_box (GtkStyle * style, XP_THEME_ELEMENT_SCROLLBAR_GRIPPER_H); /* Do not display grippers on tiny scroll bars, - the limit imposed is rather arbitrary, perhaps + the limit imposed is rather arbitrary, perhaps we can fetch the gripper geometry from somewhere and use that... */ if ((gripper == @@ -1699,14 +1741,6 @@ draw_box (GtkStyle * style, && (strcmp (detail, "vscrollbar") == 0 || strcmp (detail, "hscrollbar") == 0)) { - GtkScrollbar *scrollbar = GTK_SCROLLBAR (widget); - - if (shadow_type == GTK_SHADOW_IN) - shadow_type = GTK_SHADOW_ETCHED_IN; - if (scrollbar->range.adjustment->page_size >= - (scrollbar->range.adjustment->upper - - scrollbar->range.adjustment->lower)) - shadow_type = GTK_SHADOW_OUT; } else if (detail && (strcmp (detail, "handlebox_bin") == 0 @@ -1737,32 +1771,11 @@ draw_box (GtkStyle * style, else { HBRUSH brush; - gint xoff, yoff; - GdkDrawable *drawable; RECT rect; HDC hdc; - if (!GDK_IS_WINDOW (window)) - { - xoff = 0; - yoff = 0; - drawable = window; - } - else - { - gdk_window_get_internal_paint_info - (window, &drawable, &xoff, &yoff); - } + hdc = get_window_dc(style, window, state_type, x, y, width, height, &rect); - rect.left = x - xoff; - rect.top = y - yoff; - rect.right = rect.left + width; - rect.bottom = rect.top + height; - - hdc = - gdk_win32_hdc_get (window, - style->dark_gc[state_type], - 0); brush = GetSysColorBrush (COLOR_3DDKSHADOW); if (brush) FrameRect (hdc, &rect, brush); @@ -1770,6 +1783,8 @@ draw_box (GtkStyle * style, FillRect (hdc, &rect, (HBRUSH) (COLOR_INFOBK + 1)); + release_window_dc (style, window, state_type); + return; } @@ -1851,9 +1866,95 @@ draw_tab (GtkStyle * style, x, y, indicator_size.width, arrow_height); } -/* this is an undefined magic value that, according to the mozilla folks, - worked for all the various themes that they tried */ -#define XP_EDGE_SIZE 2 +/* Draw classic Windows tab - thanks Mozilla! + (no system API for this, but DrawEdge can draw all the parts of a tab) */ +static void DrawTab(HDC hdc, const RECT R, gint32 aPosition, gboolean aSelected, + gboolean aDrawLeft, gboolean aDrawRight) + { + gint32 leftFlag, topFlag, rightFlag, lightFlag, shadeFlag; + RECT topRect, sideRect, bottomRect, lightRect, shadeRect; + gint32 selectedOffset, lOffset, rOffset; + + selectedOffset = aSelected ? 1 : 0; + lOffset = aDrawLeft ? 2 : 0; + rOffset = aDrawRight ? 2 : 0; + + /* Get info for tab orientation/position (Left, Top, Right, Bottom) */ + switch (aPosition) { + case BF_LEFT: + leftFlag = BF_TOP; topFlag = BF_LEFT; + rightFlag = BF_BOTTOM; + lightFlag = BF_DIAGONAL_ENDTOPRIGHT; + shadeFlag = BF_DIAGONAL_ENDBOTTOMRIGHT; + + SetRect(&topRect, R.left, R.top+lOffset, R.right, R.bottom-rOffset); + SetRect(&sideRect, R.left+2, R.top, R.right-2+selectedOffset, R.bottom); + SetRect(&bottomRect, R.right-2, R.top, R.right, R.bottom); + SetRect(&lightRect, R.left, R.top, R.left+3, R.top+3); + SetRect(&shadeRect, R.left+1, R.bottom-2, R.left+2, R.bottom-1); + break; + case BF_TOP: + leftFlag = BF_LEFT; topFlag = BF_TOP; + rightFlag = BF_RIGHT; + lightFlag = BF_DIAGONAL_ENDTOPRIGHT; + shadeFlag = BF_DIAGONAL_ENDBOTTOMRIGHT; + + SetRect(&topRect, R.left+lOffset, R.top, R.right-rOffset, R.bottom); + SetRect(&sideRect, R.left, R.top+2, R.right, R.bottom-1+selectedOffset); + SetRect(&bottomRect, R.left, R.bottom-1, R.right, R.bottom); + SetRect(&lightRect, R.left, R.top, R.left+3, R.top+3); + SetRect(&shadeRect, R.right-2, R.top+1, R.right-1, R.top+2); + break; + case BF_RIGHT: + leftFlag = BF_TOP; topFlag = BF_RIGHT; + rightFlag = BF_BOTTOM; + lightFlag = BF_DIAGONAL_ENDTOPLEFT; + shadeFlag = BF_DIAGONAL_ENDBOTTOMLEFT; + + SetRect(&topRect, R.left, R.top+lOffset, R.right, R.bottom-rOffset); + SetRect(&sideRect, R.left+2-selectedOffset, R.top, R.right-2, R.bottom); + SetRect(&bottomRect, R.left, R.top, R.left+2, R.bottom); + SetRect(&lightRect, R.right-3, R.top, R.right-1, R.top+2); + SetRect(&shadeRect, R.right-2, R.bottom-3, R.right, R.bottom-1); + break; + case BF_BOTTOM: + leftFlag = BF_LEFT; topFlag = BF_BOTTOM; + rightFlag = BF_RIGHT; + lightFlag = BF_DIAGONAL_ENDTOPLEFT; + shadeFlag = BF_DIAGONAL_ENDBOTTOMLEFT; + + SetRect(&topRect, R.left+lOffset, R.top, R.right-rOffset, R.bottom); + SetRect(&sideRect, R.left, R.top+2-selectedOffset, R.right, R.bottom-2); + SetRect(&bottomRect, R.left, R.top, R.right, R.top+2); + SetRect(&lightRect, R.left, R.bottom-3, R.left+2, R.bottom-1); + SetRect(&shadeRect, R.right-2, R.bottom-3, R.right, R.bottom-1); + break; + } + + /* Background */ + FillRect(hdc, &R, (HBRUSH) (COLOR_3DFACE+1) ); + + /* Tab "Top" */ + DrawEdge(hdc, &topRect, EDGE_RAISED, BF_SOFT | topFlag); + + /* Tab "Bottom" */ + if (!aSelected) + DrawEdge(hdc, &bottomRect, EDGE_RAISED, BF_SOFT | topFlag); + + /* Tab "Sides" */ + if (!aDrawLeft) + leftFlag = 0; + if (!aDrawRight) + rightFlag = 0; + DrawEdge(hdc, &sideRect, EDGE_RAISED, BF_SOFT | leftFlag | rightFlag); + + /* Tab Diagonal Corners */ + if (aDrawLeft) + DrawEdge(hdc, &lightRect, EDGE_RAISED, BF_SOFT | lightFlag); + + if (aDrawRight) + DrawEdge(hdc, &shadeRect, EDGE_RAISED, BF_SOFT | shadeFlag); + } static void draw_extension (GtkStyle * style, @@ -1866,43 +1967,47 @@ draw_extension (GtkStyle * style, gint x, gint y, gint width, gint height, GtkPositionType gap_side) { - if (GTK_IS_NOTEBOOK (widget) && detail && !strcmp (detail, "tab")) + if (widget && GTK_IS_NOTEBOOK (widget) && detail && !strcmp (detail, "tab")) { GtkNotebook *notebook = GTK_NOTEBOOK (widget); gint x2, y2, w2, h2; + int tab_part = XP_THEME_ELEMENT_TAB_ITEM; + int real_gap_side = gtk_notebook_get_tab_pos (notebook); + /* why this differs from the above gap_side, i have no idea... */ x2 = x; y2 = y; w2 = width; h2 = height; - if (gap_side == GTK_POS_TOP && state_type == GTK_STATE_NORMAL) - { - /* h2 += XP_EDGE_SIZE; */ - } - else if (gap_side == GTK_POS_BOTTOM - && state_type == GTK_STATE_NORMAL) - { - /* h2 += XP_EDGE_SIZE; */ - } - else if (gap_side == GTK_POS_LEFT - && state_type == GTK_STATE_NORMAL) - { - x2 += 1; - w2 -= XP_EDGE_SIZE; - } - else if (gap_side == GTK_POS_RIGHT - && state_type == GTK_STATE_NORMAL) - { - w2 -= (XP_EDGE_SIZE + 1); - } - if (xp_theme_draw - (window, gtk_notebook_get_current_page (notebook) == 0 - ? XP_THEME_ELEMENT_TAB_ITEM_LEFT_EDGE - : XP_THEME_ELEMENT_TAB_ITEM, - style, x2, y2, w2, h2, state_type, area)) + if (xp_theme_draw (window, tab_part, + style, x2, y2, w2, h2, (real_gap_side == GTK_POS_TOP ? state_type : GTK_STATE_SELECTED), area)) { - return; + return; + } else if (real_gap_side == GTK_POS_TOP || real_gap_side == GTK_POS_BOTTOM) { + /* experimental tab-drawing code from mozilla */ + RECT rect; + HDC dc; + gint32 aPosition; + + dc = get_window_dc(style, window, state_type, x, y, width, height, &rect); + + if (real_gap_side == GTK_POS_TOP) + aPosition = BF_TOP; + else if (real_gap_side == GTK_POS_BOTTOM) + aPosition = BF_BOTTOM; + else if (real_gap_side == GTK_POS_LEFT) + aPosition = BF_LEFT; + else + aPosition = BF_RIGHT; + + if (area) + gdk_gc_set_clip_rectangle (style->dark_gc[state_type], area); + DrawTab (dc, rect, aPosition, state_type != GTK_STATE_PRELIGHT, (real_gap_side != GTK_POS_LEFT), (real_gap_side != GTK_POS_RIGHT)); + if (area) + gdk_gc_set_clip_rectangle (style->dark_gc[state_type], NULL); + + release_window_dc (style, window, state_type); } } parent_class->draw_extension @@ -1919,9 +2024,7 @@ draw_box_gap (GtkStyle * style, GdkWindow * window, GtkStateType state_type, { if (GTK_IS_NOTEBOOK (widget) && detail && !strcmp (detail, "notebook")) { - /* FIXME: pos != TOP to be implemented */ - if (gap_side == GTK_POS_TOP - && xp_theme_draw (window, XP_THEME_ELEMENT_TAB_PANE, style, x, + if (xp_theme_draw (window, XP_THEME_ELEMENT_TAB_PANE, style, x, y, width, height, state_type, area)) { return; @@ -2203,7 +2306,19 @@ draw_resize_grip (GtkStyle * style, if (xp_theme_draw (window, XP_THEME_ELEMENT_STATUS_GRIPPER, style, x, y, width, height, state_type, area)) - return; + return; + else { + RECT rect; + HDC dc = get_window_dc(style, window, state_type, x, y, width, height, &rect); + + if (area) + gdk_gc_set_clip_rectangle (style->dark_gc[state_type], area); + DrawFrameControl(dc, &rect, DFC_SCROLL, DFCS_SCROLLSIZEGRIP); + release_window_dc(style, window, state_type); + if (area) + gdk_gc_set_clip_rectangle (style->dark_gc[state_type], NULL); + return; + } } parent_class->draw_resize_grip (style, window, state_type, area, diff --git a/modules/engines/ms-windows/xp_theme.c b/modules/engines/ms-windows/xp_theme.c index 7d2d6483b3..43d59c477f 100755 --- a/modules/engines/ms-windows/xp_theme.c +++ b/modules/engines/ms-windows/xp_theme.c @@ -34,12 +34,7 @@ /* #include "gdk/gdkwin32.h" */ #include "gdk/win32/gdkwin32.h" -#ifdef HAVE_UXTHEME_H -#include -#include -#else #include "xp_theme_defs.h" -#endif #ifndef TMT_CAPTIONFONT @@ -86,7 +81,7 @@ static const LPCWSTR class_descriptors[] = { L"Button", /* XP_THEME_CLASS_BUTTON */ L"Header", /* XP_THEME_CLASS_HEADER */ L"ComboBox", /* XP_THEME_CLASS_COMBOBOX */ - L"Tab", /* XP_THEME_CLASS_TAB */ + L"Tab", /* XP_THEME_CLASS_TAB */ L"Edit", /* XP_THEME_CLASS_EDIT */ L"TreeView", /* XP_THEME_CLASS_TREEVIEW */ L"Spin", /* XP_THEME_CLASS_SPIN */ @@ -110,6 +105,7 @@ static const short element_part_map[] = { TABP_BODY, TABP_TABITEM, TABP_TABITEMLEFTEDGE, + TABP_TABITEMRIGHTEDGE, TABP_PANE, SBP_THUMBBTNHORZ, SBP_THUMBBTNVERT, @@ -365,6 +361,7 @@ xp_theme_get_handle_by_element (XpThemeElement element) case XP_THEME_ELEMENT_BODY: case XP_THEME_ELEMENT_TAB_ITEM: case XP_THEME_ELEMENT_TAB_ITEM_LEFT_EDGE: + case XP_THEME_ELEMENT_TAB_ITEM_RIGHT_EDGE: case XP_THEME_ELEMENT_TAB_PANE: klazz = XP_THEME_CLASS_TAB; break; @@ -486,6 +483,7 @@ xp_theme_map_gtk_state (XpThemeElement element, GtkStateType state) break; case XP_THEME_ELEMENT_TAB_ITEM_LEFT_EDGE: + case XP_THEME_ELEMENT_TAB_ITEM_RIGHT_EDGE: case XP_THEME_ELEMENT_TAB_ITEM: switch (state) { diff --git a/modules/engines/ms-windows/xp_theme.h b/modules/engines/ms-windows/xp_theme.h index 4627590e87..7c03565f1d 100755 --- a/modules/engines/ms-windows/xp_theme.h +++ b/modules/engines/ms-windows/xp_theme.h @@ -57,6 +57,7 @@ typedef enum XP_THEME_ELEMENT_BODY, XP_THEME_ELEMENT_TAB_ITEM, XP_THEME_ELEMENT_TAB_ITEM_LEFT_EDGE, + XP_THEME_ELEMENT_TAB_ITEM_RIGHT_EDGE, XP_THEME_ELEMENT_TAB_PANE, XP_THEME_ELEMENT_SCROLLBAR_H, XP_THEME_ELEMENT_SCROLLBAR_V, diff --git a/modules/engines/ms-windows/xp_theme_defs.h b/modules/engines/ms-windows/xp_theme_defs.h index 14376331e2..67dc147ed8 100644 --- a/modules/engines/ms-windows/xp_theme_defs.h +++ b/modules/engines/ms-windows/xp_theme_defs.h @@ -33,127 +33,226 @@ typedef HANDLE HTHEME; #define ETDT_USETABTEXTURE 0x00000004 #define ETDT_ENABLETAB (ETDT_ENABLE | ETDT_USETABTEXTURE) -#define BP_PUSHBUTTON 1 -#define BP_CHECKBOX 3 - -#define HP_HEADERITEM 1 - -#define CP_DROPDOWNBUTTON 1 - -#define TABP_TABITEM 1 -#define TABP_TABITEMLEFTEDGE 2 -#define TABP_PANE 9 -#define TABP_BODY 10 - -#define SBP_ARROWBTN 1 -#define SBP_THUMBBTNHORZ 2 -#define SBP_THUMBBTNVERT 3 -#define SBP_LOWERTRACKHORZ 4 -#define SBP_UPPERTRACKHORZ 5 -#define SBP_LOWERTRACKVERT 6 -#define SBP_UPPERTRACKVERT 7 -#define SBP_GRIPPERHORZ 8 -#define SBP_GRIPPERVERT 9 - -#define EP_EDITTEXT 1 - -#define SPNP_UP 1 -#define SPNP_DOWN 2 - -#define BP_RADIOBUTTON 2 - -#define TVP_GLYPH 2 - -#define PP_BAR 1 -#define PP_BARVERT 2 -#define PP_CHUNK 3 -#define PP_CHUNKVERT 4 - -#define TTP_STANDARD 1 - -#define RP_GRIPPER 1 -#define RP_GRIPPERVERT 2 -#define RP_BAND 3 -#define RP_CHEVRON 4 - -#define TP_BUTTON 1 -#define TS_NORMAL 1 -#define TS_HOT 2 -#define TS_PRESSED 3 -#define TS_DISABLED 4 - -#define TTSS_NORMAL 1 - -#define CHEVS_NORMAL 1 -#define CHEVS_HOT 2 -#define CHEVS_PRESSED 3 - -#define TIS_NORMAL 1 -#define TIS_HOT 2 -#define TIS_SELECTED 3 -#define TIS_DISABLED 4 - -#define ETS_NORMAL 1 -#define ETS_FOCUSED 5 -#define ETS_READONLY 6 - -#define SCRBS_NORMAL 1 -#define SCRBS_HOT 2 -#define SCRBS_PRESSED 3 -#define SCRBS_DISABLED 4 - -#define ABS_UPNORMAL 1 -#define ABS_UPHOT 2 -#define ABS_UPPRESSED 3 -#define ABS_UPDISABLED 4 -#define ABS_DOWNNORMAL 5 -#define ABS_DOWNHOT 6 -#define ABS_DOWNPRESSED 7 -#define ABS_DOWNDISABLED 8 -#define ABS_LEFTNORMAL 9 -#define ABS_LEFTHOT 10 -#define ABS_LEFTPRESSED 11 -#define ABS_LEFTDISABLED 12 -#define ABS_RIGHTNORMAL 13 -#define ABS_RIGHTHOT 14 -#define ABS_RIGHTPRESSED 15 -#define ABS_RIGHTDISABLED 16 - -#define CBS_UNCHECKEDNORMAL 1 -#define CBS_UNCHECKEDHOT 2 -#define CBS_UNCHECKEDPRESSED 3 -#define CBS_UNCHECKEDDISABLED 4 -#define CBS_CHECKEDNORMAL 5 -#define CBS_CHECKEDHOT 6 -#define CBS_CHECKEDPRESSED 7 -#define CBS_CHECKEDDISABLED 8 - -#define PBS_NORMAL 1 -#define PBS_HOT 2 -#define PBS_PRESSED 3 -#define PBS_DISABLED 4 -#define PBS_DEFAULTED 5 - -#define DNS_NORMAL 1 -#define DNS_HOT 2 -#define DNS_PRESSED 3 -#define DNS_DISABLED 4 - -#define UPS_NORMAL 1 -#define UPS_HOT 2 -#define UPS_PRESSED 3 -#define UPS_DISABLED 4 - -#define GLPS_CLOSED 1 -#define GLPS_OPENED 2 - -#define MP_MENUITEM 1 -#define MP_SEPARATOR 6 -#define MS_NORMAL 1 -#define MS_SELECTED 2 -#define MS_DEMOTED 3 - -#define SP_PANE 2 -#define SP_GRIPPER 3 +enum { + BP_PUSHBUTTON = 1, BP_RADIOBUTTON = 2, BP_CHECKBOX = 3, BP_GROUPBOX = 4, + BP_USERBUTTON = 5 +}; +enum { + CBS_UNCHECKEDNORMAL = 1, CBS_UNCHECKEDHOT = 2, CBS_UNCHECKEDPRESSED = 3, CBS_UNCHECKEDDISABLED = 4, + CBS_CHECKEDNORMAL = 5, CBS_CHECKEDHOT = 6, CBS_CHECKEDPRESSED = 7, CBS_CHECKEDDISABLED = 8, + CBS_MIXEDNORMAL = 9, CBS_MIXEDHOT = 10, CBS_MIXEDPRESSED = 11, CBS_MIXEDDISABLED = 12 +}; +enum { GBS_NORMAL = 1, GBS_DISABLED = 2 };; +enum { + PBS_NORMAL = 1, PBS_HOT = 2, PBS_PRESSED = 3, PBS_DISABLED = 4, + PBS_DEFAULTED = 5 +}; +enum { + RBS_UNCHECKEDNORMAL = 1, RBS_UNCHECKEDHOT = 2, RBS_UNCHECKEDPRESSED = 3, RBS_UNCHECKEDDISABLED = 4, + RBS_CHECKEDNORMAL = 5, RBS_CHECKEDHOT = 6, RBS_CHECKEDPRESSED = 7, RBS_CHECKEDDISABLED = 8 +}; +enum { CLP_TIME = 1 }; +enum { CLS_NORMAL = 1 }; +enum { CP_DROPDOWNBUTTON = 1 }; +enum { CBXS_NORMAL = 1, CBXS_HOT = 2, CBXS_PRESSED = 3, CBXS_DISABLED = 4 }; +enum { EP_EDITTEXT = 1, EP_CARET = 2 }; +enum { + ETS_NORMAL = 1, ETS_HOT = 2, ETS_SELECTED = 3, ETS_DISABLED = 4, + ETS_FOCUSED = 5, ETS_READONLY = 6, ETS_ASSIST = 7 +}; +enum { + EBP_HEADERBACKGROUND = 1, EBP_HEADERCLOSE = 2, EBP_HEADERPIN = 3, EBP_IEBARMENU = 4, + EBP_NORMALGROUPBACKGROUND = 5, EBP_NORMALGROUPCOLLAPSE = 6, EBP_NORMALGROUPEXPAND = 7, EBP_NORMALGROUPHEAD = 8, + EBP_SPECIALGROUPBACKGROUND = 9, EBP_SPECIALGROUPCOLLAPSE = 10, EBP_SPECIALGROUPEXPAND = 11, EBP_SPECIALGROUPHEAD = 12 +}; +enum { EBHC_NORMAL = 1, EBHC_HOT = 2, EBHC_PRESSED = 3 }; +enum { + EBHP_NORMAL = 1, EBHP_HOT = 2, EBHP_PRESSED = 3, EBHP_SELECTEDNORMAL = 4, + EBHP_SELECTEDHOT = 5, EBHP_SELECTEDPRESSED = 6 +}; +enum { EBM_NORMAL = 1, EBM_HOT = 2, EBM_PRESSED = 3 }; +enum { EBNGC_NORMAL = 1, EBNGC_HOT = 2, EBNGC_PRESSED = 3 }; +enum { EBNGE_NORMAL = 1, EBNGE_HOT = 2, EBNGE_PRESSED = 3 }; +enum { EBSGC_NORMAL = 1, EBSGC_HOT = 2, EBSGC_PRESSED = 3 }; +enum { EBSGE_NORMAL = 1, EBSGE_HOT = 2, EBSGE_PRESSED = 3 }; +enum { HP_HEADERITEM = 1, HP_HEADERITEMLEFT = 2, HP_HEADERITEMRIGHT = 3, HP_HEADERSORTARROW = 4 }; +enum { HIS_NORMAL = 1, HIS_HOT = 2, HIS_PRESSED = 3 }; +enum { HILS_NORMAL = 1, HILS_HOT = 2, HILS_PRESSED = 3 }; +enum { HIRS_NORMAL = 1, HIRS_HOT = 2, HIRS_PRESSED = 3 }; +enum { HSAS_SORTEDUP = 1, HSAS_SORTEDDOWN = 2 }; +enum { + LVP_LISTITEM = 1, LVP_LISTGROUP = 2, LVP_LISTDETAIL = 3, LVP_LISTSORTEDDETAIL = 4, + LVP_EMPTYTEXT = 5 +}; +enum { + LIS_NORMAL = 1, LIS_HOT = 2, LIS_SELECTED = 3, LIS_DISABLED = 4, + LIS_SELECTEDNOTFOCUS = 5 +}; +enum { + MP_MENUITEM = 1, MP_MENUDROPDOWN = 2, MP_MENUBARITEM = 3, MP_MENUBARDROPDOWN = 4, + MP_CHEVRON = 5, MP_SEPARATOR = 6 +}; +enum { MS_NORMAL = 1, MS_SELECTED = 2, MS_DEMOTED = 3 }; +enum { MDP_NEWAPPBUTTON = 1, MDP_SEPERATOR = 2 }; +enum { + MDS_NORMAL = 1, MDS_HOT = 2, MDS_PRESSED = 3, MDS_DISABLED = 4, + MDS_CHECKED = 5, MDS_HOTCHECKED = 6 +}; +enum { PGRP_UP = 1, PGRP_DOWN = 2, PGRP_UPHORZ = 3, PGRP_DOWNHORZ = 4 }; +enum { DNS_NORMAL = 1, DNS_HOT = 2, DNS_PRESSED = 3, DNS_DISABLED = 4 }; +enum { DNHZS_NORMAL = 1, DNHZS_HOT = 2, DNHZS_PRESSED = 3, DNHZS_DISABLED = 4 }; +enum { UPS_NORMAL = 1, UPS_HOT = 2, UPS_PRESSED = 3, UPS_DISABLED = 4 }; +enum { UPHZS_NORMAL = 1, UPHZS_HOT = 2, UPHZS_PRESSED = 3, UPHZS_DISABLED = 4 }; +enum { PP_BAR = 1, PP_BARVERT = 2, PP_CHUNK = 3, PP_CHUNKVERT = 4 }; +enum { + RP_GRIPPER = 1, RP_GRIPPERVERT = 2, RP_BAND = 3, RP_CHEVRON = 4, + RP_CHEVRONVERT = 5 +}; +enum { CHEVS_NORMAL = 1, CHEVS_HOT = 2, CHEVS_PRESSED = 3 }; +enum { + SBP_ARROWBTN = 1, SBP_THUMBBTNHORZ = 2, SBP_THUMBBTNVERT = 3, SBP_LOWERTRACKHORZ = 4, + SBP_UPPERTRACKHORZ = 5, SBP_LOWERTRACKVERT = 6, SBP_UPPERTRACKVERT = 7, SBP_GRIPPERHORZ = 8, + SBP_GRIPPERVERT = 9, SBP_SIZEBOX = 10 +}; +enum { + ABS_UPNORMAL = 1, ABS_UPHOT = 2, ABS_UPPRESSED = 3, ABS_UPDISABLED = 4, + ABS_DOWNNORMAL = 5, ABS_DOWNHOT = 6, ABS_DOWNPRESSED = 7, ABS_DOWNDISABLED = 8, + ABS_LEFTNORMAL = 9, ABS_LEFTHOT = 10, ABS_LEFTPRESSED = 11, ABS_LEFTDISABLED = 12, + ABS_RIGHTNORMAL = 13, ABS_RIGHTHOT = 14, ABS_RIGHTPRESSED = 15, ABS_RIGHTDISABLED = 16 +}; +enum { SCRBS_NORMAL = 1, SCRBS_HOT = 2, SCRBS_PRESSED = 3, SCRBS_DISABLED = 4 }; +enum { SZB_RIGHTALIGN = 1, SZB_LEFTALIGN = 2 }; +enum { SPNP_UP = 1, SPNP_DOWN = 2, SPNP_UPHORZ = 3, SPNP_DOWNHORZ = 4 }; +enum { + SPP_USERPANE = 1, SPP_MOREPROGRAMS = 2, SPP_MOREPROGRAMSARROW = 3, SPP_PROGLIST = 4, + SPP_PROGLISTSEPARATOR = 5, SPP_PLACESLIST = 6, SPP_PLACESLISTSEPARATOR = 7, SPP_LOGOFF = 8, + SPP_LOGOFFBUTTONS = 9, SPP_USERPICTURE = 10, SPP_PREVIEW = 11 +}; +enum { SPLS_NORMAL = 1, SPLS_HOT = 2, SPLS_PRESSED = 3 }; +enum { SPS_NORMAL = 1, SPS_HOT = 2, SPS_PRESSED = 3 }; +enum { SP_PANE = 1, SP_GRIPPERPANE = 2, SP_GRIPPER = 3 }; +enum { + TABP_TABITEM = 1, TABP_TABITEMLEFTEDGE = 2, TABP_TABITEMRIGHTEDGE = 3, TABP_TABITEMBOTHEDGE = 4, + TABP_TOPTABITEM = 5, TABP_TOPTABITEMLEFTEDGE = 6, TABP_TOPTABITEMRIGHTEDGE = 7, TABP_TOPTABITEMBOTHEDGE = 8, + TABP_PANE = 9, TABP_BODY = 10 +}; +enum { + TIS_NORMAL = 1, TIS_HOT = 2, TIS_SELECTED = 3, TIS_DISABLED = 4, + TIS_FOCUSED = 5 +}; +enum { + TIBES_NORMAL = 1, TIBES_HOT = 2, TIBES_SELECTED = 3, TIBES_DISABLED = 4, + TIBES_FOCUSED = 5 +}; +enum { + TILES_NORMAL = 1, TILES_HOT = 2, TILES_SELECTED = 3, TILES_DISABLED = 4, + TILES_FOCUSED = 5 +}; +enum { + TIRES_NORMAL = 1, TIRES_HOT = 2, TIRES_SELECTED = 3, TIRES_DISABLED = 4, + TIRES_FOCUSED = 5 +}; +enum { + TTIS_NORMAL = 1, TTIS_HOT = 2, TTIS_SELECTED = 3, TTIS_DISABLED = 4, + TTIS_FOCUSED = 5 +}; +enum { + TTIBES_NORMAL = 1, TTIBES_HOT = 2, TTIBES_SELECTED = 3, TTIBES_DISABLED = 4, + TTIBES_FOCUSED = 5 +}; +enum { + TTILES_NORMAL = 1, TTILES_HOT = 2, TTILES_SELECTED = 3, TTILES_DISABLED = 4, + TTILES_FOCUSED = 5 +}; +enum { + TTIRES_NORMAL = 1, TTIRES_HOT = 2, TTIRES_SELECTED = 3, TTIRES_DISABLED = 4, + TTIRES_FOCUSED = 5 +}; +enum { TDP_GROUPCOUNT = 1, TDP_FLASHBUTTON = 2, TDP_FLASHBUTTONGROUPMENU = 3 }; +enum { + TBP_BACKGROUNDBOTTOM = 1, TBP_BACKGROUNDRIGHT = 2, TBP_BACKGROUNDTOP = 3, TBP_BACKGROUNDLEFT = 4, + TBP_SIZINGBARBOTTOM = 5, TBP_SIZINGBARRIGHT = 6, TBP_SIZINGBARTOP = 7, TBP_SIZINGBARLEFT = 8 +}; +enum { + TP_BUTTON = 1, TP_DROPDOWNBUTTON = 2, TP_SPLITBUTTON = 3, TP_SPLITBUTTONDROPDOWN = 4, + TP_SEPARATOR = 5, TP_SEPARATORVERT = 6 +}; +enum { + TS_NORMAL = 1, TS_HOT = 2, TS_PRESSED = 3, TS_DISABLED = 4, + TS_CHECKED = 5, TS_HOTCHECKED = 6 +}; +enum { + TTP_STANDARD = 1, TTP_STANDARDTITLE = 2, TTP_BALLOON = 3, TTP_BALLOONTITLE = 4, + TTP_CLOSE = 5 +}; +enum { TTBS_NORMAL = 1, TTBS_LINK = 2 }; +enum { TTCS_NORMAL = 1, TTCS_HOT = 2, TTCS_PRESSED = 3 }; +enum { TTSS_NORMAL = 1, TTSS_LINK = 2 }; +enum { + TKP_TRACK = 1, TKP_TRACKVERT = 2, TKP_THUMB = 3, TKP_THUMBBOTTOM = 4, + TKP_THUMBTOP = 5, TKP_THUMBVERT = 6, TKP_THUMBLEFT = 7, TKP_THUMBRIGHT = 8, + TKP_TICS = 9, TKP_TICSVERT = 10 +}; +enum { + TUS_NORMAL = 1, TUS_HOT = 2, TUS_PRESSED = 3, TUS_FOCUSED = 4, + TUS_DISABLED = 5 +}; +enum { + TUBS_NORMAL = 1, TUBS_HOT = 2, TUBS_PRESSED = 3, TUBS_FOCUSED = 4, + TUBS_DISABLED = 5 +}; +enum { + TUVLS_NORMAL = 1, TUVLS_HOT = 2, TUVLS_PRESSED = 3, TUVLS_FOCUSED = 4, + TUVLS_DISABLED = 5 +}; +enum { + TUVRS_NORMAL = 1, TUVRS_HOT = 2, TUVRS_PRESSED = 3, TUVRS_FOCUSED = 4, + TUVRS_DISABLED = 5 +}; +enum { + TUTS_NORMAL = 1, TUTS_HOT = 2, TUTS_PRESSED = 3, TUTS_FOCUSED = 4, + TUTS_DISABLED = 5 +}; +enum { + TUVS_NORMAL = 1, TUVS_HOT = 2, TUVS_PRESSED = 3, TUVS_FOCUSED = 4, + TUVS_DISABLED = 5 +}; +enum { TSS_NORMAL = 1 }; +enum { TSVS_NORMAL = 1 }; +enum { TRS_NORMAL = 1 }; +enum { TRVS_NORMAL = 1 }; +enum { TNP_BACKGROUND = 1, TNP_ANIMBACKGROUND = 2 }; +enum { TVP_TREEITEM = 1, TVP_GLYPH = 2, TVP_BRANCH = 3 }; +enum { GLPS_CLOSED = 1, GLPS_OPENED = 2 }; +enum { + TREIS_NORMAL = 1, TREIS_HOT = 2, TREIS_SELECTED = 3, TREIS_DISABLED = 4, + TREIS_SELECTEDNOTFOCUS = 5 +}; +enum { + WP_CAPTION = 1, WP_SMALLCAPTION = 2, WP_MINCAPTION = 3, WP_SMALLMINCAPTION = 4, + WP_MAXCAPTION = 5, WP_SMALLMAXCAPTION = 6, WP_FRAMELEFT = 7, WP_FRAMERIGHT = 8, + WP_FRAMEBOTTOM = 9, WP_SMALLFRAMELEFT = 10, WP_SMALLFRAMERIGHT = 11, WP_SMALLFRAMEBOTTOM = 12, + WP_SYSBUTTON = 13, WP_MDISYSBUTTON = 14, WP_MINBUTTON = 15, WP_MDIMINBUTTON = 16, + WP_MAXBUTTON = 17, WP_CLOSEBUTTON = 18, WP_SMALLCLOSEBUTTON = 19, WP_MDICLOSEBUTTON = 20, + WP_RESTOREBUTTON = 21, WP_MDIRESTOREBUTTON = 22, WP_HELPBUTTON = 23, WP_MDIHELPBUTTON = 24, + WP_HORZSCROLL = 25, WP_HORZTHUMB = 26, WP_VERTSCROLL = 27, WP_VERTTHUMB = 28, + WP_DIALOG = 29, WP_CAPTIONSIZINGTEMPLATE = 30, WP_SMALLCAPTIONSIZINGTEMPLATE = 31, WP_FRAMELEFTSIZINGTEMPLATE = 32, + WP_SMALLFRAMELEFTSIZINGTEMPLATE = 33, WP_FRAMERIGHTSIZINGTEMPLATE = 34, WP_SMALLFRAMERIGHTSIZINGTEMPLATE = 35, WP_FRAMEBOTTOMSIZINGTEMPLATE = 36, + WP_SMALLFRAMEBOTTOMSIZINGTEMPLATE = 37 +}; +enum { CS_ACTIVE = 1, CS_INACTIVE = 2, CS_DISABLED = 3 }; +enum { CBS_NORMAL = 1, CBS_HOT = 2, CBS_PUSHED = 3, CBS_DISABLED = 4 }; +enum { FS_ACTIVE = 1, FS_INACTIVE = 2 }; +enum { HBS_NORMAL = 1, HBS_HOT = 2, HBS_PUSHED = 3, HBS_DISABLED = 4 }; +enum { HSS_NORMAL = 1, HSS_HOT = 2, HSS_PUSHED = 3, HSS_DISABLED = 4 }; +enum { HTS_NORMAL = 1, HTS_HOT = 2, HTS_PUSHED = 3, HTS_DISABLED = 4 }; +enum { MAXBS_NORMAL = 1, MAXBS_HOT = 2, MAXBS_PUSHED = 3, MAXBS_DISABLED = 4 }; +enum { MXCS_ACTIVE = 1, MXCS_INACTIVE = 2, MXCS_DISABLED = 3 }; +enum { MINBS_NORMAL = 1, MINBS_HOT = 2, MINBS_PUSHED = 3, MINBS_DISABLED = 4 }; +enum { RBS_NORMAL = 1, RBS_HOT = 2, RBS_PUSHED = 3, RBS_DISABLED = 4 }; +enum { SBS_NORMAL = 1, SBS_HOT = 2, SBS_PUSHED = 3, SBS_DISABLED = 4 }; +enum { MNCS_ACTIVE = 1, MNCS_INACTIVE = 2, MNCS_DISABLED = 3 }; +enum { VSS_NORMAL = 1, VSS_HOT = 2, VSS_PUSHED = 3, VSS_DISABLED = 4 }; +enum { VTS_NORMAL = 1, VTS_HOT = 2, VTS_PUSHED = 3, VTS_DISABLED = 4 }; #endif /* XP_THEME_DFNS_H */