gtk+ r19979 - in branches/gtk-2-12: . modules/engines/ms-windows modules/engines/ms-windows/Theme/gtk-2.0



Author: aruiz
Date: Mon Apr  7 23:36:17 2008
New Revision: 19979
URL: http://svn.gnome.org/viewvc/gtk+?rev=19979&view=rev

Log:

2008-04-07  Alberto Ruiz  <aruiz gnome org>

	Merged from trunk:

	* modules/engines/ms-windows/Theme/gtk-2.0/gtkrc:
	* modules/engines/ms-windows/msw_style.c (draw_box) (draw_arrow)
	(combo_box_draw_arrow) (setup_msw_rc_style): draw box does more intelligent
	separation for the xp theming engine and the classic theme while drawing the
	GtkComboBox button. combobox_draw_arrow is not used	anymore, commented.
	The style has been updated to fix border/thickness glitches in the combobox
	according to the fixes commited	regarding bug	#521442. (bug	#461805)



Modified:
   branches/gtk-2-12/ChangeLog
   branches/gtk-2-12/modules/engines/ms-windows/Theme/gtk-2.0/gtkrc
   branches/gtk-2-12/modules/engines/ms-windows/msw_style.c

Modified: branches/gtk-2-12/modules/engines/ms-windows/Theme/gtk-2.0/gtkrc
==============================================================================
--- branches/gtk-2-12/modules/engines/ms-windows/Theme/gtk-2.0/gtkrc	(original)
+++ branches/gtk-2-12/modules/engines/ms-windows/Theme/gtk-2.0/gtkrc	Mon Apr  7 23:36:17 2008
@@ -55,3 +55,13 @@
 }
 
 class "GtkTreeView" binding "ms-windows-tree-view"
+
+style "msw-combobox-thickness" = "msw-default"
+{
+  xthickness = 0 
+  ythickness = 0
+}
+
+widget_class "*TreeView*ComboBox*" style "msw-combobox-thickness"
+widget_class "*ComboBox*GtkFrame*" style "msw-combobox-thickness"
+

Modified: branches/gtk-2-12/modules/engines/ms-windows/msw_style.c
==============================================================================
--- branches/gtk-2-12/modules/engines/ms-windows/msw_style.c	(original)
+++ branches/gtk-2-12/modules/engines/ms-windows/msw_style.c	Mon Apr  7 23:36:17 2008
@@ -902,24 +902,25 @@
 	      "ythickness = %d\n"
 	      "}\n"
 	      "class \"GtkComboBox\" style \"msw-combobox\"\n",
-	      GetSystemMetrics (SM_CXEDGE), GetSystemMetrics (SM_CYEDGE));
+        xp_theme_is_active ()? 1 : GetSystemMetrics (SM_CXEDGE),
+        xp_theme_is_active ()? 1 : GetSystemMetrics (SM_CYEDGE));
   gtk_rc_parse_string (buf);
 
   /* size of tree view header */
   g_snprintf (buf, sizeof (buf),
 	      "style \"msw-header-button\" = \"msw-default\"\n"
 	      "{\n"
-	      "xthickness = 4\n"
-	      "ythickness = %d\n"
+	      "xthickness = 0\n"
+	      "ythickness = 0\n"
+	      "GtkWidget::draw-border = { 0, 0, 0, 0 }\n"
 	      "GtkButton::default-border = { 0, 0, 0, 0 }\n"
 	      "GtkButton::default-outside-border = { 0, 0, 0, 0 }\n"
-	      "GtkButton::child-displacement-x = 1\n"
-	      "GtkButton::child-displacement-y = 1\n"
+	      "GtkButton::child-displacement-x = 0\n"
+	      "GtkButton::child-displacement-y = 0\n"
 	      "GtkWidget::focus-padding = 0\n"
 	      "GtkWidget::focus-line-width = 0\n"
 	      "}\n"
-	      "widget_class \"*TreeView*Button*\" style \"msw-header-button\"\n",
-	      xp_theme_is_active ()? 2 : 0);
+	      "widget_class \"*TreeView*Button*\" style \"msw-header-button\"\n");
   gtk_rc_parse_string (buf);
 
   /* FIXME: This should be enabled once gtk+ support GtkNotebok::prelight-tab */
@@ -1078,7 +1079,8 @@
   return FALSE;
 }
 
-static gboolean
+/* This function is not needed anymore */
+/* static gboolean
 combo_box_draw_arrow (GtkStyle *style,
 		      GdkWindow *window,
 		      GtkStateType state,
@@ -1106,7 +1108,7 @@
     }
 
   return FALSE;
-}
+}*/
 
 static void
 draw_part (GdkDrawable *drawable,
@@ -1493,13 +1495,8 @@
 
   sanitize_size (window, &width, &height);
 
-  if (GTK_IS_ARROW (widget) && is_combo_box_child (widget))
-    {
-      if (combo_box_draw_arrow (style, window, state, area, widget))
-	{
-	  return;
-	}
-    }
+  if (GTK_IS_ARROW (widget) && is_combo_box_child (widget) && xp_theme_is_active ())
+    return;
 
   if (detail && strcmp (detail, "spinbutton") == 0)
     {
@@ -1970,23 +1967,29 @@
   if (is_combo_box_child (widget) && detail && !strcmp (detail, "button"))
     {
       RECT rect;
+      DWORD border;
       HDC dc;
       int cx;
 
-      dc = get_window_dc (style, window, state_type, x, y, width - cx, height, &rect);
-      FillRect (dc, &rect, GetSysColorBrush (COLOR_WINDOW));
-      release_window_dc (style, window, state_type);
+      border = (GTK_TOGGLE_BUTTON (widget)->active ? DFCS_PUSHED | DFCS_FLAT : 0);
 
-      cx = GetSystemMetrics(SM_CXVSCROLL);
-      x += width - cx;
-      width = cx;
+      dc = get_window_dc (style, window, state_type, x, y, width, height, &rect);
+      DrawFrameControl (dc, &rect, DFC_SCROLL, DFCS_SCROLLDOWN | border);
+      release_window_dc (style, window, state_type);
 
       if (xp_theme_is_active ()
-	  && xp_theme_draw (window, XP_THEME_ELEMENT_COMBOBUTTON, style, x, y,
-			    width, height, state_type, area))
-	{
-	  return;
-	}
+          && xp_theme_draw (window, XP_THEME_ELEMENT_COMBOBUTTON, style, x, y,
+          width, height, state_type, area))
+        {
+          cx = GetSystemMetrics(SM_CXVSCROLL);
+          x += width - cx;
+          width = cx;
+
+          dc = get_window_dc (style, window, state_type, x, y, width - cx, height, &rect);
+          FillRect (dc, &rect, GetSysColorBrush (COLOR_WINDOW));
+          release_window_dc (style, window, state_type);
+          return;
+	      }
     }
 
   if (detail &&
@@ -2937,12 +2940,13 @@
       HDC dc;
       RECT rect;
 
-      if (is_combo_box_child (widget))
-        return; 
-
       dc = get_window_dc (style, window, state_type, x, y, width, height, &rect);
 
-      if (is_popup_window_child (widget))
+      if (is_combo_box_child (widget))
+        {
+          FillRect (dc, &rect, GetSysColorBrush (COLOR_WINDOW));
+        }
+      else if (is_popup_window_child (widget))
 	{
 	  FrameRect (dc, &rect, GetSysColorBrush (COLOR_WINDOWFRAME));
 	}



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]