* 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-25 Dom Lachowicz <cinamod@hotmail.com>
+
+ * 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 <mitch@imendio.com>
* gtk/gtktoolbar.h (struct _GtkToolbar): changed two private guint
+2005-11-25 Dom Lachowicz <cinamod@hotmail.com>
+
+ * 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 <mitch@imendio.com>
* gtk/gtktoolbar.h (struct _GtkToolbar): changed two private guint
/*
* 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"
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++)
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;
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 */
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"
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)
{
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:
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,
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,
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 ==
&& (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
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);
- }
-
- rect.left = x - xoff;
- rect.top = y - yoff;
- rect.right = rect.left + width;
- rect.bottom = rect.top + height;
+ hdc = get_window_dc(style, window, state_type, x, y, width, height, &rect);
- hdc =
- gdk_win32_hdc_get (window,
- style->dark_gc[state_type],
- 0);
brush = GetSysColorBrush (COLOR_3DDKSHADOW);
if (brush)
FrameRect (hdc, &rect, brush);
FillRect (hdc, &rect,
(HBRUSH) (COLOR_INFOBK + 1));
+ release_window_dc (style, window, state_type);
+
return;
}
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,
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
{
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;
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,
/* #include "gdk/gdkwin32.h" */
#include "gdk/win32/gdkwin32.h"
-#ifdef HAVE_UXTHEME_H
-#include <uxtheme.h>
-#include <tmschema.h>
-#else
#include "xp_theme_defs.h"
-#endif
#ifndef TMT_CAPTIONFONT
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 */
TABP_BODY,
TABP_TABITEM,
TABP_TABITEMLEFTEDGE,
+ TABP_TABITEMRIGHTEDGE,
TABP_PANE,
SBP_THUMBBTNHORZ,
SBP_THUMBBTNVERT,
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;
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)
{
XP_THEME_ELEMENT_BODY,\r
XP_THEME_ELEMENT_TAB_ITEM,\r
XP_THEME_ELEMENT_TAB_ITEM_LEFT_EDGE,\r
+ XP_THEME_ELEMENT_TAB_ITEM_RIGHT_EDGE,\r
XP_THEME_ELEMENT_TAB_PANE,\r
XP_THEME_ELEMENT_SCROLLBAR_H,\r
XP_THEME_ELEMENT_SCROLLBAR_V,\r
#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 */