vcl/inc/unx/gtk/gtkgdi.hxx | 3 +- vcl/unx/gtk3/gdi/gtk3salnativewidgets-gtk.cxx | 38 +++++++++++++++++++------- 2 files changed, 31 insertions(+), 10 deletions(-)
New commits: commit db377e02c309c20419aef1360409be09fe50fc42 Author: Ivan Timofeev <timofeev....@gmail.com> Date: Tue Jul 2 12:23:38 2013 +0400 gtk3: Clearlooks theme paints scrollbar buttons depending on the style class Change-Id: I8e464e4b71671eccb2c0467d74542e6ddda0f5a6 diff --git a/vcl/unx/gtk3/gdi/gtk3salnativewidgets-gtk.cxx b/vcl/unx/gtk3/gdi/gtk3salnativewidgets-gtk.cxx index fd4282f..98da944 100644 --- a/vcl/unx/gtk3/gdi/gtk3salnativewidgets-gtk.cxx +++ b/vcl/unx/gtk3/gdi/gtk3salnativewidgets-gtk.cxx @@ -266,6 +266,8 @@ void GtkSalGraphics::PaintScrollbar(GtkStyleContext *context, gdouble arrow1Angle; // backward gdouble arrow2Angle; // forward Rectangle arrowRect; + const gchar* button1StyleClass = NULL; + const gchar* button2StyleClass = NULL; gint slider_width = 0; gint stepper_size = 0; gint stepper_spacing = 0; @@ -319,6 +321,8 @@ void GtkSalGraphics::PaintScrollbar(GtkStyleContext *context, scrollbarOrientation = GTK_ORIENTATION_HORIZONTAL; arrow1Angle = G_PI * 3 / 2; arrow2Angle = G_PI / 2; + button1StyleClass = GTK_STYLE_CLASS_LEFT; + button2StyleClass = GTK_STYLE_CLASS_RIGHT; if ( has_backward ) { @@ -359,6 +363,8 @@ void GtkSalGraphics::PaintScrollbar(GtkStyleContext *context, scrollbarOrientation = GTK_ORIENTATION_VERTICAL; arrow1Angle = 0; arrow2Angle = G_PI; + button1StyleClass = GTK_STYLE_CLASS_TOP; + button2StyleClass = GTK_STYLE_CLASS_BOTTOM; if ( has_backward ) { @@ -434,6 +440,7 @@ void GtkSalGraphics::PaintScrollbar(GtkStyleContext *context, gtk_style_context_save(context); gtk_style_context_set_state(context, stateFlags); gtk_style_context_add_class(context, GTK_STYLE_CLASS_BUTTON); + gtk_style_context_add_class(context, button1StyleClass); gtk_render_background(context, cr, button11BoundRect.Left(), button11BoundRect.Top(), @@ -460,6 +467,7 @@ void GtkSalGraphics::PaintScrollbar(GtkStyleContext *context, gtk_style_context_save(context); gtk_style_context_set_state(context, stateFlags); gtk_style_context_add_class(context, GTK_STYLE_CLASS_BUTTON); + gtk_style_context_add_class(context, button1StyleClass); gtk_render_background(context, cr, button12BoundRect.Left(), button12BoundRect.Top(), @@ -487,6 +495,7 @@ void GtkSalGraphics::PaintScrollbar(GtkStyleContext *context, gtk_style_context_save(context); gtk_style_context_set_state(context, stateFlags); gtk_style_context_add_class(context, GTK_STYLE_CLASS_BUTTON); + gtk_style_context_add_class(context, button2StyleClass); gtk_render_background(context, cr, button21BoundRect.Left(), button21BoundRect.Top(), @@ -513,6 +522,7 @@ void GtkSalGraphics::PaintScrollbar(GtkStyleContext *context, gtk_style_context_save(context); gtk_style_context_set_state(context, stateFlags); gtk_style_context_add_class(context, GTK_STYLE_CLASS_BUTTON); + gtk_style_context_add_class(context, button2StyleClass); gtk_render_background(context, cr, button22BoundRect.Left(), button22BoundRect.Top(), commit 010391b647f15efbeeba4e1a8158ab6dd550aa6b Author: Ivan Timofeev <timofeev....@gmail.com> Date: Tue Jul 2 12:06:13 2013 +0400 gtk3: gtk_vscrollbar_new is deprecated, use gtk_scrollbar_new Change-Id: Iea6b6cd0147e42eab9889ea9a45aaf98c77cfaab diff --git a/vcl/inc/unx/gtk/gtkgdi.hxx b/vcl/inc/unx/gtk/gtkgdi.hxx index 912e27e..d75e9dc 100644 --- a/vcl/inc/unx/gtk/gtkgdi.hxx +++ b/vcl/inc/unx/gtk/gtkgdi.hxx @@ -61,7 +61,8 @@ private: GtkWidget *mpWindow; static GtkStyleContext *mpButtonStyle; static GtkStyleContext *mpEntryStyle; - static GtkStyleContext *mpScrollbarStyle; + static GtkStyleContext *mpVScrollbarStyle; + static GtkStyleContext *mpHScrollbarStyle; static GtkStyleContext *mpToolbarStyle; static GtkStyleContext *mpToolButtonStyle; static GtkStyleContext *mpCheckButtonStyle; diff --git a/vcl/unx/gtk3/gdi/gtk3salnativewidgets-gtk.cxx b/vcl/unx/gtk3/gdi/gtk3salnativewidgets-gtk.cxx index 350d1e9..fd4282f 100644 --- a/vcl/unx/gtk3/gdi/gtk3salnativewidgets-gtk.cxx +++ b/vcl/unx/gtk3/gdi/gtk3salnativewidgets-gtk.cxx @@ -18,7 +18,8 @@ GtkStyleContext* GtkSalGraphics::mpButtonStyle = NULL; GtkStyleContext* GtkSalGraphics::mpEntryStyle = NULL; -GtkStyleContext* GtkSalGraphics::mpScrollbarStyle = NULL; +GtkStyleContext* GtkSalGraphics::mpVScrollbarStyle = NULL; +GtkStyleContext* GtkSalGraphics::mpHScrollbarStyle = NULL; GtkStyleContext* GtkSalGraphics::mpToolbarStyle = NULL; GtkStyleContext* GtkSalGraphics::mpToolButtonStyle = NULL; GtkStyleContext* GtkSalGraphics::mpCheckButtonStyle = NULL; @@ -160,13 +161,19 @@ Rectangle GtkSalGraphics::NWGetSpinButtonRect( ControlPart nPart, Rectangle aAre Rectangle GtkSalGraphics::NWGetScrollButtonRect( ControlPart nPart, Rectangle aAreaRect ) { + GtkStyleContext* pScrollbarStyle = NULL; + if ((nPart == PART_BUTTON_LEFT) || (nPart == PART_BUTTON_RIGHT)) + pScrollbarStyle = mpHScrollbarStyle; + else // (nPart == PART_BUTTON_UP) || (nPart == PART_BUTTON_DOWN) + pScrollbarStyle = mpVScrollbarStyle; + gint slider_width; gint stepper_size; gint stepper_spacing; gint trough_border; // Grab some button style attributes - gtk_style_context_get_style( mpScrollbarStyle, + gtk_style_context_get_style( pScrollbarStyle, "slider-width", &slider_width, "stepper-size", &stepper_size, "trough-border", &trough_border, @@ -177,7 +184,7 @@ Rectangle GtkSalGraphics::NWGetScrollButtonRect( ControlPart nPart, Rectangle aA gboolean has_backward; gboolean has_backward2; - gtk_style_context_get_style( mpScrollbarStyle, + gtk_style_context_get_style( pScrollbarStyle, "has-forward-stepper", &has_forward, "has-secondary-forward-stepper", &has_forward2, "has-backward-stepper", &has_backward, @@ -281,7 +288,7 @@ void GtkSalGraphics::PaintScrollbar(GtkStyleContext *context, return; // Grab some button style attributes - gtk_style_context_get_style( mpScrollbarStyle, + gtk_style_context_get_style( context, "slider_width", &slider_width, "stepper_size", &stepper_size, "trough_border", &trough_border, @@ -292,7 +299,7 @@ void GtkSalGraphics::PaintScrollbar(GtkStyleContext *context, gboolean has_backward; gboolean has_backward2; - gtk_style_context_get_style( mpScrollbarStyle, + gtk_style_context_get_style( context, "has-forward-stepper", &has_forward, "has-secondary-forward-stepper", &has_forward2, "has-backward-stepper", &has_backward, @@ -875,7 +882,8 @@ sal_Bool GtkSalGraphics::drawNativeControl( ControlType nType, ControlPart nPart { case PART_DRAW_BACKGROUND_VERT: case PART_DRAW_BACKGROUND_HORZ: - context = mpScrollbarStyle; + context = (nPart == PART_DRAW_BACKGROUND_VERT) + ? mpVScrollbarStyle : mpHScrollbarStyle; renderType = RENDER_SCROLLBAR; break; } @@ -1388,7 +1396,7 @@ void GtkSalGraphics::updateSettings( AllSettings& rSettings ) gint min_slider_length = 21; // Grab some button style attributes - gtk_style_context_get_style( mpScrollbarStyle, + gtk_style_context_get_style( mpVScrollbarStyle, "slider-width", &slider_width, "trough-border", &trough_border, "min-slider-length", &min_slider_length, @@ -1499,8 +1507,10 @@ GtkSalGraphics::GtkSalGraphics( GtkSalFrame *pFrame, GtkWidget *pWindow ) gtk_style_context_set_path(mpToolButtonStyle, path); gtk_widget_path_free (path); - getStyleContext(&mpScrollbarStyle, gtk_vscrollbar_new(NULL)); - gtk_style_context_add_class(mpScrollbarStyle, GTK_STYLE_CLASS_SCROLLBAR); + getStyleContext(&mpVScrollbarStyle, gtk_scrollbar_new(GTK_ORIENTATION_VERTICAL, NULL)); + gtk_style_context_add_class(mpVScrollbarStyle, GTK_STYLE_CLASS_SCROLLBAR); + getStyleContext(&mpHScrollbarStyle, gtk_scrollbar_new(GTK_ORIENTATION_HORIZONTAL, NULL)); + gtk_style_context_add_class(mpHScrollbarStyle, GTK_STYLE_CLASS_SCROLLBAR); getStyleContext(&mpCheckButtonStyle, gtk_check_button_new()); _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits