diff options
author | Benjamin Otte <otte@gnome.org> | 2016-02-15 06:50:22 +0100 |
---|---|---|
committer | Benjamin Otte <otte@redhat.com> | 2016-02-17 04:49:26 +0100 |
commit | 67b893c5f8be66c316189ed73692093accfb1e9a (patch) | |
tree | 2ab59660a9753ebc3e40e8d07bb6780826a310e1 /gtk/gtkcsswin32sizevalue.c | |
parent | a3998bce9d444657a70c8910075ebbab15702bcf (diff) | |
download | gtk+-67b893c5f8be66c316189ed73692093accfb1e9a.tar.gz |
win32 theme: Add a way to query border of theme parts
Diffstat (limited to 'gtk/gtkcsswin32sizevalue.c')
-rw-r--r-- | gtk/gtkcsswin32sizevalue.c | 41 |
1 files changed, 39 insertions, 2 deletions
diff --git a/gtk/gtkcsswin32sizevalue.c b/gtk/gtkcsswin32sizevalue.c index 7c35d37902..9497c9c7f5 100644 --- a/gtk/gtkcsswin32sizevalue.c +++ b/gtk/gtkcsswin32sizevalue.c @@ -24,13 +24,21 @@ typedef enum { GTK_WIN32_SIZE, GTK_WIN32_PART_WIDTH, - GTK_WIN32_PART_HEIGHT + GTK_WIN32_PART_HEIGHT, + GTK_WIN32_PART_BORDER_TOP, + GTK_WIN32_PART_BORDER_RIGHT, + GTK_WIN32_PART_BORDER_BOTTOM, + GTK_WIN32_PART_BORDER_LEFT } GtkWin32SizeType; static const char *css_value_names[] = { "-gtk-win32-size(", "-gtk-win32-part-width(", - "-gtk-win32-part-height(" + "-gtk-win32-part-height(", + "-gtk-win32-part-border-top(", + "-gtk-win32-part-border-right(", + "-gtk-win32-part-border-bottom(", + "-gtk-win32-part-border-left(" }; struct _GtkCssValue { @@ -63,6 +71,7 @@ gtk_css_value_win32_size_free (GtkCssValue *value) static int gtk_css_value_win32_compute_size (const GtkCssValue *value) { + GtkBorder border; int size; switch (value->type) @@ -78,6 +87,26 @@ gtk_css_value_win32_compute_size (const GtkCssValue *value) gtk_win32_theme_get_part_size (value->theme, value->val.part.part, value->val.part.state, NULL, &size); break; + case GTK_WIN32_PART_BORDER_TOP: + gtk_win32_theme_get_part_border (value->theme, value->val.part.part, value->val.part.state, &border); + size = border.top; + break; + + case GTK_WIN32_PART_BORDER_RIGHT: + gtk_win32_theme_get_part_border (value->theme, value->val.part.part, value->val.part.state, &border); + size = border.right; + break; + + case GTK_WIN32_PART_BORDER_BOTTOM: + gtk_win32_theme_get_part_border (value->theme, value->val.part.part, value->val.part.state, &border); + size = border.bottom; + break; + + case GTK_WIN32_PART_BORDER_LEFT: + gtk_win32_theme_get_part_border (value->theme, value->val.part.part, value->val.part.state, &border); + size = border.left; + break; + default: g_assert_not_reached (); return 0; @@ -139,6 +168,10 @@ gtk_css_value_win32_size_print (const GtkCssValue *value, case GTK_WIN32_PART_WIDTH: case GTK_WIN32_PART_HEIGHT: + case GTK_WIN32_PART_BORDER_TOP: + case GTK_WIN32_PART_BORDER_RIGHT: + case GTK_WIN32_PART_BORDER_BOTTOM: + case GTK_WIN32_PART_BORDER_LEFT: g_string_append_printf (string, ", %d, %d", value->val.part.part, value->val.part.state); break; @@ -317,6 +350,10 @@ gtk_css_win32_size_value_parse (GtkCssParser *parser, case GTK_WIN32_PART_WIDTH: case GTK_WIN32_PART_HEIGHT: + case GTK_WIN32_PART_BORDER_TOP: + case GTK_WIN32_PART_BORDER_RIGHT: + case GTK_WIN32_PART_BORDER_BOTTOM: + case GTK_WIN32_PART_BORDER_LEFT: result = gtk_css_win32_size_value_parse_part_size (result, parser); break; |