Add a GtkRC option to select for an LTR/RTL widget direction in the
pixbuf engine; this will allow the engine to apply different theming
assets according to the text direction, which is useful when theming
e.g. a spinbutton or a combobox entry.
But use the orientable interface instead. This has already proven
usefull for GtkVolumeButton widgets (see previous commit) so apply
the same logic all over the place.
The trough was being rendered horizontal for vertical
GtkVolumeButton widgets. Not relying on GTK_IS_VSCALE
but using the orientable interface instead fixes this.
Expanders are usually drawn as little triangles and unfortunately
do not support rotated drawing modes. So a hack is applied (see
gtk_tool_item_group_header_expose_event_cb for details) when
drawing a GtkToolItemGroup's header for horizontal GtkToolShells,
forcing the triangle to point in the right direction. Except we
don't draw expanders as triangles on Windows. Usually, expanders
are represented as "+" and "-". It sucks for "+" to become "-" and
the inverse when we don't want to, so reverse the hack here.
Active buttons have not had their contents (icon & label)
displaced ever since uxtheming became available in Windows XP.
We still care about this displacement for classic themes
though (even on Vista/7 where classic themes are used to
implement High Contrast support).
The cairo context was always created but only ever used
and destroyed(!) in the second if block (!GTK_IS_PANED (widget))
so moving around the gdk_cairo_create call would have
been the obvious fix.
However, said if block is not used at all, so clean
up draw_handle instead.
https://bugzilla.gnome.org/show_bug.cgi?id=663543
GDK_WINDOW_HWND() calls from outside gdk calls ensure_native_window,
but we really want the HWND of the impl window, so call
the new gdk_win32_window_get_impl_hwnd() instead.
The ms-windows engine incorrectly displays notebooks: the
tabs are not attached to the body, and look more like
regular buttons than actual notebook tabs. Also, the frame
around the notebooks is also incorrectly drawn.
https://bugzilla.gnome.org/show_bug.cgi?id=650300
Patch from bug #591186. It won't have any effect in this branch as the
whole XP-and-later theming code is broken and disabled, but when/if
that is fixed, then this patch should help.
Either g_type_register_static_simple (used by G_DEFINE_TYPE_EXTENDED)
and G_IMPLEMENT_INTERFACE use automatic variables for GTypeInfo and
GInterfaceInfo structs, while tutorials and source code often use
static variables. This commit consistently adopts the former method.
https://bugzilla.gnome.org/show_bug.cgi?id=600158
2009-03-21 Cody Russell <bratsche@gnome.org>
Bug 538840 – [Win32] GTK menu theming could be improved
* modules/engines/ms-windows/xp_theme.c
* modules/engines/ms-windows/msw_style.c: Use newer
menu styling API. This makes gtk+ look much better on
Windows Vista.
svn path=/trunk/; revision=22577
2009-01-16 Cody Russell <bratsche@gnome.org>
Bug 567944 – [Win32] Sorted treeview columns can be unreadable
* modules/engines/ms-windows/msw_style.c: Draw selected treeview
cells according to treeview focus, but ignore whether it is in
a sorted column or not. Otherwise the intersection of a selected
row and a sorted column looks very strange if the treeview does
not have focus.
svn path=/trunk/; revision=22126
2008-09-18 Dominic Lachowicz <domlachowicz@gmail.com>
* modules/engines/ms-windows/*: Revert most of previous patch, as it didn't work as expected;
Some work toward #531086 - the new GtkTooltip widget doesn't theme properly on win32. Now, at least
the background color seems okay
w
svn path=/trunk/; revision=21430