Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
Meego:Netbook
gtk-nodoka-engine
gtk-nodoka-engine-scale-trough.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File gtk-nodoka-engine-scale-trough.patch of Package gtk-nodoka-engine
diff -up gtk-nodoka-engine-0.7.2/src/GTKEngine/nodoka_draw.c.scale-trough gtk-nodoka-engine-0.7.2/src/GTKEngine/nodoka_draw.c --- gtk-nodoka-engine-0.7.2/src/GTKEngine/nodoka_draw.c.scale-trough 2008-11-02 09:30:13.000000000 +0100 +++ gtk-nodoka-engine-0.7.2/src/GTKEngine/nodoka_draw.c 2008-12-26 23:56:29.000000000 +0100 @@ -453,6 +453,7 @@ nodoka_draw_entry (cairo_t * cr, } } +#define TROUGH_SIZE 6 void nodoka_draw_scale_trough (cairo_t * cr, const NodokaColors * colors, @@ -460,77 +461,95 @@ nodoka_draw_scale_trough (cairo_t * cr, const SliderParameters * slider, int x, int y, int width, int height) { - int fill_x, fill_y, fill_width, fill_height; - int trough_width, trough_height; - double translate_x, translate_y; - int fill_size = slider->fill_size; - int TROUGH_SIZE = 6; + int trough_width, trough_height; + double translate_x, translate_y; + + cairo_save (cr); if (slider->horizontal) { - if (fill_size > width - 3) - fill_size = width - 3; - - fill_x = slider->inverted ? width - fill_size - 3 : 0; - fill_y = 0; - fill_width = fill_size; - fill_height = TROUGH_SIZE - 2; - - trough_width = width - 3; - trough_height = TROUGH_SIZE - 2; - - translate_x = x + 0.5; - translate_y = y + 0.5 + (height / 2) - (TROUGH_SIZE / 2); + trough_width = width; + trough_height = TROUGH_SIZE; + + translate_x = x; + translate_y = y + (height/2) - (TROUGH_SIZE/2); } else { - if (fill_size > height - 3) - fill_size = height - 3; - - fill_x = 0; - fill_y = slider->inverted ? height - fill_size - 3 : 0; - fill_width = TROUGH_SIZE - 2; - fill_height = fill_size; - - trough_width = TROUGH_SIZE - 2; - trough_height = height - 3; - - translate_x = x + 0.5 + (width / 2) - (TROUGH_SIZE / 2); - translate_y = y + 0.5; + trough_width = TROUGH_SIZE; + trough_height = height; + + translate_x = x + (width/2) - (TROUGH_SIZE/2); + translate_y = y; } cairo_set_line_width (cr, 1.0); cairo_translate (cr, translate_x, translate_y); - cairo_translate (cr, 1, 1); - - nodoka_scale_draw_gradient (cr, &colors->shade[3], - &colors->shade[5], - 0, 0, trough_width, trough_height, - TRUE, slider->horizontal); - - /* we want to draw the fill gradient using a direct gradient call */ - nodoka_set_gradient (cr, &colors->spot[1], DARK_BOTTOM_HILIGHT, - DARK_TOP_HILIGHT, GRADIENT_CENTER, - (slider->horizontal ? 0 : fill_width), - (slider->horizontal ? fill_height : 0), widget->gradients, FALSE, - 1.0); - cairo_rectangle (cr, fill_x + 0.5, fill_y + 0.5, fill_width - 1, - fill_height - 1); - cairo_fill (cr); - - /* Set the right border color */ - cairo_rectangle (cr, fill_x, fill_y, fill_width, fill_height); - cairo_set_source_rgba (cr, colors->spot[2].r, colors->spot[2].g, - colors->spot[2].b, 0.8); - cairo_stroke (cr); + /* Drawing Fill Level */ + if (slider->fill_level) + { + NodokaRGB *fill = (NodokaRGB *) & colors->spot[1]; + + cairo_rectangle (cr, 1.5, 1.5, trough_width - 3, trough_height - 3); + + nodoka_set_gradient (cr, fill, HOLLOW_BOTTOM_HILIGHT, + HOLLOW_TOP_HILIGHT, GRADIENT_CENTER, + (slider->horizontal ? 0 : trough_width), + (slider->horizontal ? trough_height : 0), + widget->gradients, TRUE, 0.35); + cairo_fill_preserve (cr); + + cairo_set_source_rgba (cr, colors->spot[2].r, colors->spot[2].g, + colors->spot[2].b, 0.28); + cairo_stroke (cr); + } + /* Drawing Fill */ + else if (slider->lower) + { + NodokaRGB *fill = (NodokaRGB *) & colors->spot[1]; + + cairo_rectangle (cr, 1.5, 1.5, trough_width - 3, trough_height - 3); + + nodoka_set_gradient (cr, fill, HOLLOW_BOTTOM_HILIGHT, + HOLLOW_TOP_HILIGHT, GRADIENT_CENTER, + (slider->horizontal ? 0 : trough_width), + (slider->horizontal ? trough_height : 0), + widget->gradients, FALSE, 1.0); + cairo_fill_preserve (cr); + + cairo_set_source_rgba (cr, colors->spot[2].r, colors->spot[2].g, + colors->spot[2].b, 0.8); + cairo_stroke (cr); + } + /* Drawing Trough */ + else + { + NodokaRGB *bg = (NodokaRGB *) & colors->shade[3]; + + cairo_rectangle (cr, 1.5, 1.5, trough_width - 3, trough_height - 3); + + nodoka_set_gradient (cr, bg, HOLLOW_BOTTOM_HILIGHT, + HOLLOW_TOP_HILIGHT, GRADIENT_CENTER, + (slider->horizontal ? 0 : trough_width), + (slider->horizontal ? trough_height : 0), + widget->gradients, FALSE, 1.0); + cairo_fill_preserve (cr); + + cairo_set_source_rgba (cr, colors->shade[5].r, colors->shade[5].g, + colors->shade[5].b, 0.8); + cairo_stroke (cr); + + + /* Draw shadow */ + cairo_move_to (cr, 2.5, trough_height - 2.5); + cairo_line_to (cr, 2.5, 2.5); + cairo_line_to (cr, trough_width - 2.5, 2.5); + cairo_set_source_rgba (cr, 0.2, 0.2, 0.2, 0.1); + cairo_stroke (cr); + } - /* Draw shadow */ - cairo_move_to (cr, 1, trough_height - 2); - cairo_line_to (cr, 1, 1); - cairo_line_to (cr, trough_width - 2, 1); - cairo_set_source_rgba (cr, 0.2, 0.2, 0.2, 0.1); - cairo_stroke (cr); + cairo_restore (cr); } void diff -up gtk-nodoka-engine-0.7.2/src/GTKEngine/nodoka_style.c.scale-trough gtk-nodoka-engine-0.7.2/src/GTKEngine/nodoka_style.c --- gtk-nodoka-engine-0.7.2/src/GTKEngine/nodoka_style.c.scale-trough 2008-11-02 09:26:58.000000000 +0100 +++ gtk-nodoka-engine-0.7.2/src/GTKEngine/nodoka_style.c 2008-12-26 23:56:21.000000000 +0100 @@ -728,37 +728,23 @@ nodoka_style_draw_box (DRAW_ARGS) } else if (DETAIL ("spinbutton")) { } - else if (DETAIL ("trough") && widget && GTK_IS_SCALE (widget)) + else if (detail && g_str_has_prefix (detail, "trough") && widget && GTK_IS_SCALE (widget)) { - GtkAdjustment *adjustment = - gtk_range_get_adjustment (GTK_RANGE (widget)); WidgetParameters params; SliderParameters slider; - gint slider_length; - gtk_widget_style_get (widget, "slider-length", &slider_length, NULL); nodoka_set_widget_parameters (widget, style, state_type, ¶ms); params.corners = NDK_CORNER_NONE; - slider.inverted = gtk_range_get_inverted (GTK_RANGE (widget)); + slider.lower = DETAIL ("trough-lower"); + slider.fill_level = DETAIL ("trough-fill-level") || DETAIL ("trough-fill-level-full"); + slider.horizontal = (GTK_RANGE (widget)->orientation == GTK_ORIENTATION_HORIZONTAL); - if ((adjustment->upper - adjustment->page_size - - adjustment->lower) != 0) - slider.fill_size = - ((slider.horizontal ? width : height) - - slider_length) * - ((adjustment->value - adjustment->lower) / - (adjustment->upper - adjustment->page_size - - adjustment->lower)) + slider_length / 2; - else - slider.fill_size = 0; - if (slider.horizontal) - slider.inverted = - slider.inverted != (nodoka_get_direction (widget) == - GTK_TEXT_DIR_RTL); + slider.focus.inner = nodoka_style->focus_inner; slider.focus.fill = nodoka_style->focus_fill; + nodoka_draw_scale_trough (cr, &nodoka_style->colors, ¶ms, &slider, x, y, width, height); } @@ -966,8 +952,8 @@ nodoka_style_draw_box (DRAW_ARGS) params.corners = NDK_CORNER_NONE; SliderParameters slider; - slider.inverted = FALSE; - slider.fill_size = 0; + //slider.inverted = FALSE; + //slider.fill_size = 0; slider.horizontal = horizontal; slider.focus.inner = nodoka_style->focus_inner; slider.focus.fill = nodoka_style->focus_fill; diff -up gtk-nodoka-engine-0.7.2/src/GTKEngine/nodoka_types.h.scale-trough gtk-nodoka-engine-0.7.2/src/GTKEngine/nodoka_types.h --- gtk-nodoka-engine-0.7.2/src/GTKEngine/nodoka_types.h.scale-trough 2008-11-01 11:29:33.000000000 +0100 +++ gtk-nodoka-engine-0.7.2/src/GTKEngine/nodoka_types.h 2008-12-26 23:56:21.000000000 +0100 @@ -188,9 +188,9 @@ typedef struct typedef struct { - boolean inverted; - int fill_size; + boolean lower; boolean horizontal; + boolean fill_level; FocusParameters focus; } SliderParameters; diff -up gtk-nodoka-engine-0.7.2/src/GTKThemes/Nodoka-Aqua/gtk-2.0/gtkrc.scale-trough gtk-nodoka-engine-0.7.2/src/GTKThemes/Nodoka-Aqua/gtk-2.0/gtkrc --- gtk-nodoka-engine-0.7.2/src/GTKThemes/Nodoka-Aqua/gtk-2.0/gtkrc.scale-trough 2008-11-01 11:29:33.000000000 +0100 +++ gtk-nodoka-engine-0.7.2/src/GTKThemes/Nodoka-Aqua/gtk-2.0/gtkrc 2008-12-26 23:56:21.000000000 +0100 @@ -21,6 +21,7 @@ style "fedora-default" GtkRange::stepper_spacing = 0 GtkScale::slider-length = 28 + GtkScale::trough-side-details = 1 GtkPaned::handle_size = 6 diff -up gtk-nodoka-engine-0.7.2/src/GTKThemes/Nodoka-Gilouche/gtk-2.0/gtkrc.scale-trough gtk-nodoka-engine-0.7.2/src/GTKThemes/Nodoka-Gilouche/gtk-2.0/gtkrc --- gtk-nodoka-engine-0.7.2/src/GTKThemes/Nodoka-Gilouche/gtk-2.0/gtkrc.scale-trough 2008-11-01 11:29:33.000000000 +0100 +++ gtk-nodoka-engine-0.7.2/src/GTKThemes/Nodoka-Gilouche/gtk-2.0/gtkrc 2008-12-26 23:56:21.000000000 +0100 @@ -21,6 +21,7 @@ style "fedora-default" GtkRange::stepper_spacing = 0 GtkScale::slider-length = 28 + GtkScale::trough-side-details = 1 GtkPaned::handle_size = 6 diff -up gtk-nodoka-engine-0.7.2/src/GTKThemes/Nodoka/gtk-2.0/gtkrc.scale-trough gtk-nodoka-engine-0.7.2/src/GTKThemes/Nodoka/gtk-2.0/gtkrc --- gtk-nodoka-engine-0.7.2/src/GTKThemes/Nodoka/gtk-2.0/gtkrc.scale-trough 2008-11-01 11:29:33.000000000 +0100 +++ gtk-nodoka-engine-0.7.2/src/GTKThemes/Nodoka/gtk-2.0/gtkrc 2008-12-26 23:56:21.000000000 +0100 @@ -21,6 +21,7 @@ style "fedora-default" GtkRange::stepper_spacing = 0 GtkScale::slider-length = 28 + GtkScale::trough-side-details = 1 GtkPaned::handle_size = 6 diff -up gtk-nodoka-engine-0.7.2/src/GTKThemes/Nodoka-Looks/gtk-2.0/gtkrc.scale-trough gtk-nodoka-engine-0.7.2/src/GTKThemes/Nodoka-Looks/gtk-2.0/gtkrc --- gtk-nodoka-engine-0.7.2/src/GTKThemes/Nodoka-Looks/gtk-2.0/gtkrc.scale-trough 2008-11-01 11:29:33.000000000 +0100 +++ gtk-nodoka-engine-0.7.2/src/GTKThemes/Nodoka-Looks/gtk-2.0/gtkrc 2008-12-26 23:56:21.000000000 +0100 @@ -21,6 +21,7 @@ style "fedora-default" GtkRange::stepper_spacing = 0 GtkScale::slider-length = 28 + GtkScale::trough-side-details = 1 GtkPaned::handle_size = 6 diff -up gtk-nodoka-engine-0.7.2/src/GTKThemes/Nodoka-Midnight/gtk-2.0/gtkrc.scale-trough gtk-nodoka-engine-0.7.2/src/GTKThemes/Nodoka-Midnight/gtk-2.0/gtkrc --- gtk-nodoka-engine-0.7.2/src/GTKThemes/Nodoka-Midnight/gtk-2.0/gtkrc.scale-trough 2008-11-01 11:29:33.000000000 +0100 +++ gtk-nodoka-engine-0.7.2/src/GTKThemes/Nodoka-Midnight/gtk-2.0/gtkrc 2008-12-26 23:56:21.000000000 +0100 @@ -21,6 +21,7 @@ style "fedora-default" GtkRange::stepper_spacing = 0 GtkScale::slider-length = 28 + GtkScale::trough-side-details = 1 GtkPaned::handle_size = 6 diff -up gtk-nodoka-engine-0.7.2/src/GTKThemes/Nodoka-Rounded/gtk-2.0/gtkrc.scale-trough gtk-nodoka-engine-0.7.2/src/GTKThemes/Nodoka-Rounded/gtk-2.0/gtkrc --- gtk-nodoka-engine-0.7.2/src/GTKThemes/Nodoka-Rounded/gtk-2.0/gtkrc.scale-trough 2008-11-01 11:29:33.000000000 +0100 +++ gtk-nodoka-engine-0.7.2/src/GTKThemes/Nodoka-Rounded/gtk-2.0/gtkrc 2008-12-26 23:56:21.000000000 +0100 @@ -21,6 +21,7 @@ style "fedora-default" GtkRange::stepper_spacing = 0 GtkScale::slider-length = 28 + GtkScale::trough-side-details = 1 GtkPaned::handle_size = 6 diff -up gtk-nodoka-engine-0.7.2/src/GTKThemes/Nodoka-Silver/gtk-2.0/gtkrc.scale-trough gtk-nodoka-engine-0.7.2/src/GTKThemes/Nodoka-Silver/gtk-2.0/gtkrc --- gtk-nodoka-engine-0.7.2/src/GTKThemes/Nodoka-Silver/gtk-2.0/gtkrc.scale-trough 2008-11-01 11:29:33.000000000 +0100 +++ gtk-nodoka-engine-0.7.2/src/GTKThemes/Nodoka-Silver/gtk-2.0/gtkrc 2008-12-26 23:56:21.000000000 +0100 @@ -21,6 +21,7 @@ style "fedora-default" GtkRange::stepper_spacing = 0 GtkScale::slider-length = 28 + GtkScale::trough-side-details = 1 GtkPaned::handle_size = 6 diff -up gtk-nodoka-engine-0.7.2/src/GTKThemes/Nodoka-Squared/gtk-2.0/gtkrc.scale-trough gtk-nodoka-engine-0.7.2/src/GTKThemes/Nodoka-Squared/gtk-2.0/gtkrc --- gtk-nodoka-engine-0.7.2/src/GTKThemes/Nodoka-Squared/gtk-2.0/gtkrc.scale-trough 2008-11-01 11:29:33.000000000 +0100 +++ gtk-nodoka-engine-0.7.2/src/GTKThemes/Nodoka-Squared/gtk-2.0/gtkrc 2008-12-26 23:56:21.000000000 +0100 @@ -21,6 +21,7 @@ style "fedora-default" GtkRange::stepper_spacing = 0 GtkScale::slider-length = 28 + GtkScale::trough-side-details = 1 GtkPaned::handle_size = 6
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor