From 5d34ee729d45e362d5644cfabf3cac6ed9ab8ed2 Mon Sep 17 00:00:00 2001 From: Benjamin Otte Date: Sat, 27 Feb 2016 14:23:06 +0100 Subject: [PATCH] win32: Implement fallback code for tabs This is naive code in that it doesn't do the rounded edges for the tab items yet. We can fix that later I guess. --- gtk/gtkwin32draw.c | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/gtk/gtkwin32draw.c b/gtk/gtkwin32draw.c index d5f7b0d5f8..9183877241 100644 --- a/gtk/gtkwin32draw.c +++ b/gtk/gtkwin32draw.c @@ -394,6 +394,34 @@ draw_window_button (cairo_t *cr, mask_icon (cr, icon, 1, 1, width - 2, height - 2); } +static void +draw_tab_item (cairo_t *cr, + int part, + int state, + int width, + int height) +{ + draw_edge (cr, EDGE_RAISED, 0, 0, width, height + 2); + + gtk_cairo_set_source_sys_color (cr, GTK_WIN32_SYS_COLOR_BTNFACE); + cairo_rectangle (cr, 2, 2, width - 4, height - 2); + cairo_fill (cr); +} + +static void +draw_tab_pane (cairo_t *cr, + int part, + int state, + int width, + int height) +{ + draw_edge (cr, EDGE_RAISED, 0, 0, width, height); + + gtk_cairo_set_source_sys_color (cr, GTK_WIN32_SYS_COLOR_BTNFACE); + cairo_rectangle (cr, 2, 2, width - 4, height - 4); + cairo_fill (cr); +} + static void draw_tooltip (cairo_t *cr, int part, @@ -436,6 +464,15 @@ static GtkWin32ThemePart theme_parts[] = { { "edit", 7, 0, { 0, 0, 0, 0 }, draw_edit }, { "edit", 8, 0, { 0, 0, 0, 0 }, draw_edit }, { "edit", 9, 0, { 0, 0, 0, 0 }, draw_edit }, + { "tab", 1, 0, { 0, 0, 0, 0 }, draw_tab_item }, + { "tab", 2, 0, { 0, 0, 0, 0 }, draw_tab_item }, + { "tab", 3, 0, { 0, 0, 0, 0 }, draw_tab_item }, + { "tab", 4, 0, { 0, 0, 0, 0 }, draw_tab_item }, + { "tab", 5, 0, { 0, 0, 0, 0 }, draw_tab_item }, + { "tab", 6, 0, { 0, 0, 0, 0 }, draw_tab_item }, + { "tab", 7, 0, { 0, 0, 0, 0 }, draw_tab_item }, + { "tab", 8, 0, { 0, 0, 0, 0 }, draw_tab_item }, + { "tab", 9, 0, { 0, 0, 0, 0 }, draw_tab_pane }, { "tooltip", 1, 0, { 0, 0, 0, 0 }, draw_tooltip }, { "window", 1, 0, { 0, 0, 0, 0 }, draw_window }, { "window", 7, 0, { 0, 0, 0, 0 }, draw_window_left },