rpms/gtk-nodoka-engine/devel gtk-nodoka-engine-handle-selection.patch, NONE, 1.1 gtk-nodoka-engine-scale-trough.patch, NONE, 1.1 gtk-nodoka-engine.spec, 1.25, 1.26
Martin Sourada
mso at fedoraproject.org
Tue Dec 30 16:54:10 UTC 2008
Author: mso
Update of /cvs/extras/rpms/gtk-nodoka-engine/devel
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv15982
Modified Files:
gtk-nodoka-engine.spec
Added Files:
gtk-nodoka-engine-handle-selection.patch
gtk-nodoka-engine-scale-trough.patch
Log Message:
Add support for GtkScale trough-side-details and fill-level (rhbz #477941)
Support selection and hilight coloring for separator (rhbz #478443)
gtk-nodoka-engine-handle-selection.patch:
--- NEW FILE gtk-nodoka-engine-handle-selection.patch ---
diff -up gtk-nodoka-engine-0.7.2/src/GTKEngine/nodoka_draw.c.handle-selection gtk-nodoka-engine-0.7.2/src/GTKEngine/nodoka_draw.c
--- gtk-nodoka-engine-0.7.2/src/GTKEngine/nodoka_draw.c.handle-selection 2008-12-30 13:10:05.000000000 +0100
+++ gtk-nodoka-engine-0.7.2/src/GTKEngine/nodoka_draw.c 2008-12-30 13:09:16.000000000 +0100
@@ -1727,6 +1727,15 @@ nodoka_draw_handle (cairo_t * cr, const
int height)
{
NodokaRGB *dark = (NodokaRGB *) & colors->shade[3];
+
+ NodokaRGB *bg = (NodokaRGB *) & colors->bg[widget->state_type];
+
+ if (handle->type == NDK_HANDLE_SPLITTER)
+ {
+ cairo_set_source_rgb (cr, bg->r, bg->g, bg->b);
+ cairo_rectangle (cr, x, y, width, height);
+ cairo_fill (cr);
+ }
int bar_height;
int i;
gtk-nodoka-engine-scale-trough.patch:
--- NEW FILE gtk-nodoka-engine-scale-trough.patch ---
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
Index: gtk-nodoka-engine.spec
===================================================================
RCS file: /cvs/extras/rpms/gtk-nodoka-engine/devel/gtk-nodoka-engine.spec,v
retrieving revision 1.25
retrieving revision 1.26
diff -u -r1.25 -r1.26
--- gtk-nodoka-engine.spec 2 Nov 2008 11:01:10 -0000 1.25
+++ gtk-nodoka-engine.spec 30 Dec 2008 16:53:40 -0000 1.26
@@ -3,14 +3,15 @@
Name: gtk-nodoka-engine
Version: 0.7.2
-Release: 1%{?dist}
+Release: 2%{?dist}
Summary: The Nodoka GTK Theme Engine
Group: System Environment/Libraries
License: GPLv2+
URL: http://fedorahosted.org/nodoka
Source0: https://fedorahosted.org/releases/n/o/gtk-nodoka-engine-%{version}.tar.gz
-#Patch0: gtk-nodoka-engine-leak.patch
+Patch0: %{name}-scale-trough.patch
+Patch1: %{name}-handle-selection.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildRequires: gtk2-devel
@@ -36,7 +37,8 @@
%prep
%setup -q
-#%patch0 -p1 -b .leak
+%patch0 -p1 -b .scale-trough
+%patch1 -p1 -b .handle-selection
%build
%configure
@@ -68,6 +70,10 @@
%changelog
+* Tue Dec 30 2008 Martin Sourada <mso at fedoraproject.org> - 0.7.2-2
+- Add support for GtkScale trough-side-details and fill-level (rhbz #477941)
+- Support selection and hilight coloring for separator (rhbz #478443)
+
* Sun Nov 02 2008 Martin Sourada <mso at fedoraproject.org> - 0.7.2-1
- New upstream release, fix misrender in menus on some systems (rhbz #469398)
More information about the fedora-extras-commits
mailing list