? 1
? xp_theme_defs.h.NOPE
Index: msw_style.c
===================================================================
RCS file: /cvs/gnome/gtk+/modules/engines/ms-windows/msw_style.c,v
retrieving revision 1.16.2.1
diff -u -2 -r1.16.2.1 msw_style.c
--- msw_style.c	20 Mar 2005 22:40:58 -0000	1.16.2.1
+++ msw_style.c	6 Apr 2005 07:42:50 -0000
@@ -49,4 +49,5 @@
   CHECK_MID,
   CHECK_TEXT,
+  CHECK_INCONSISTENT,
   RADIO_BASE,
   RADIO_BLACK,
@@ -80,4 +81,7 @@
  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x03,0x88,0x03,0xd8,0x01,0xf8,
  0x00,0x70,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
+static const char check_inconsistent_bits[] = {
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf0,0x03,0xf0,
+ 0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 };
 static const char radio_base_bits[] = {
  0x00,0x00,0x00,0x00,0xf0,0x01,0xf8,0x03,0xfc,0x07,0xfc,0x07,0xfc,0x07,0xfc,
@@ -110,4 +114,5 @@
   { check_mid_bits, NULL },
   { check_text_bits, NULL },
+  { check_inconsistent_bits, NULL },
   { radio_base_bits, NULL },
   { radio_black_bits, NULL },
@@ -878,7 +883,17 @@
   else
     {
-      if (!xp_theme_draw(window, shadow == GTK_SHADOW_IN
-			 ? XP_THEME_ELEMENT_PRESSED_CHECKBOX
-			 : XP_THEME_ELEMENT_CHECKBOX,
+      XpThemeElement theme_elt = XP_THEME_ELEMENT_CHECKBOX;
+      switch (shadow)
+        {
+	case GTK_SHADOW_ETCHED_IN:
+	  theme_elt = XP_THEME_ELEMENT_INCONSISTENT_CHECKBOX;
+	  break;
+	case GTK_SHADOW_IN:
+	  theme_elt = XP_THEME_ELEMENT_PRESSED_CHECKBOX;
+	  break;
+	default:
+	  break;
+        }
+      if (!xp_theme_draw(window, theme_elt,
 			 style, x, y, width, height, state, area))
         {
@@ -893,4 +908,9 @@
               draw_part (window, style->text_gc[state], area, x, y, CHECK_TEXT);
               draw_part (window, style->text_aa_gc[state], area, x, y, CHECK_AA);
+            }
+          else if (shadow == GTK_SHADOW_ETCHED_IN)
+            {
+              draw_part (window, style->text_gc[state], area, x, y, CHECK_INCONSISTENT);
+              draw_part (window, style->text_aa_gc[state], area, x, y, CHECK_AA);                  
             }
         }
Index: xp_theme.c
===================================================================
RCS file: /cvs/gnome/gtk+/modules/engines/ms-windows/xp_theme.c,v
retrieving revision 1.34.2.1
diff -u -2 -r1.34.2.1 xp_theme.c
--- xp_theme.c	20 Mar 2005 22:40:58 -0000	1.34.2.1
+++ xp_theme.c	6 Apr 2005 07:42:51 -0000
@@ -72,4 +72,5 @@
   BP_CHECKBOX,
   BP_CHECKBOX,
+  BP_CHECKBOX,
   BP_PUSHBUTTON,
   HP_HEADERITEM,
@@ -255,4 +256,5 @@
 
     case XP_THEME_ELEMENT_PRESSED_CHECKBOX:
+    case XP_THEME_ELEMENT_INCONSISTENT_CHECKBOX:
     case XP_THEME_ELEMENT_CHECKBOX:
     case XP_THEME_ELEMENT_BUTTON:
@@ -328,4 +330,5 @@
   int ret;
 
+
   switch(element)
     {
@@ -522,4 +525,21 @@
         }
       break;
+      
+      case XP_THEME_ELEMENT_INCONSISTENT_CHECKBOX:
+      switch( state)
+      {
+        case GTK_STATE_SELECTED:
+         ret =  CBS_MIXEDPRESSED;
+         break;
+        case GTK_STATE_PRELIGHT:
+         ret =  CBS_MIXEDHOT;
+         break;
+        case GTK_STATE_INSENSITIVE:
+         ret =  CBS_MIXEDDISABLED;
+         break;
+        default:
+         ret =  CBS_MIXEDNORMAL;
+        }
+        break;
 
     case XP_THEME_ELEMENT_PRESSED_CHECKBOX:
Index: xp_theme.h
===================================================================
RCS file: /cvs/gnome/gtk+/modules/engines/ms-windows/xp_theme.h,v
retrieving revision 1.15
diff -u -2 -r1.15 xp_theme.h
--- xp_theme.h	30 Aug 2004 20:58:57 -0000	1.15
+++ xp_theme.h	6 Apr 2005 07:42:51 -0000
@@ -51,4 +51,5 @@
   XP_THEME_ELEMENT_PRESSED_CHECKBOX = 0,
   XP_THEME_ELEMENT_CHECKBOX,
+  XP_THEME_ELEMENT_INCONSISTENT_CHECKBOX,
   XP_THEME_ELEMENT_BUTTON,
   XP_THEME_ELEMENT_LIST_HEADER,
