1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
|
/* The TdeGtk Theming Engine for Gtk+.
* Copyright (C) 2011 Canonical Ltd
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free
* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
* MA 02110-1301, USA.
*
* Authored by Andrea Cimitan <andrea.cimitan@canonical.com>
*
*/
#include <gtk/gtk.h>
#include "tdegtk-engine.h"
#include "tdegtk-support.h"
#include "tdegtk-types.h"
gboolean
tdegtk_gdk_rgba_is_default (GdkRGBA *color)
{
GdkRGBA default_color;
/* pink is default GdkRGBA color set in gtk/gtkstyleproperty.c */
gdk_rgba_parse (&default_color, "pink");
return gdk_rgba_equal (&default_color, color);
}
void
tdegtk_get_line_width (GtkThemingEngine *engine,
gdouble *line_width)
{
GtkBorder border;
GtkStateFlags state;
state = gtk_theming_engine_get_state (engine);
gtk_theming_engine_get_border (engine, state, &border);
*line_width = MIN (MIN (border.top, border.bottom),
MIN (border.left, border.right));
}
gboolean
tdegtk_gtk_border_is_zero (GtkBorder *border)
{
return (border->top == 0) && (border->bottom == 0) && (border->left == 0) && (border->right == 0);
}
void
tdegtk_lookup_functions (TdeGtkEngine *engine,
TdeGtkStyleFunctions **functions)
{
/* only one style is defined now,
* add here a check for a theming engine css property,
* for example -tdegtk-style, and assign new styles */
if (functions)
*functions = &engine->style_functions[TDEGTK_STYLE_DEFAULT];
}
void
tdegtk_trim_scale_allocation (GtkThemingEngine *engine,
gdouble *x,
gdouble *y,
gdouble *width,
gdouble *height)
{
if (!gtk_theming_engine_has_class (engine, GTK_STYLE_CLASS_VERTICAL))
{
*y += (gint) (*height / 2.0) - 2.0;
*height = 5;
}
else
{
*x += (gint) (*width / 2.0) - 2.0;
*width = 5;
}
}
|