1 /* GTK - The GIMP Toolkit 2 * Copyright (C) 2016 Benjamin Otte <otte@gnome.org> 3 * 4 * This library is free software; you can redistribute it and/or 5 * modify it under the terms of the GNU Lesser General Public 6 * License as published by the Free Software Foundation; either 7 * version 2 of the License, or (at your option) any later version. 8 * 9 * This library is distributed in the hope that it will be useful, 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 * Lesser General Public License for more details. 13 * 14 * You should have received a copy of the GNU Lesser General Public 15 * License along with this library. If not, see <http://www.gnu.org/licenses/>. 16 */ 17 18 #ifndef __GTK_WIN32_DRAW_H__ 19 #define __GTK_WIN32_DRAW_H__ 20 21 #include <gdk/gdk.h> 22 #include <cairo.h> 23 24 #include <gtk/gtkborder.h> 25 26 G_BEGIN_DECLS 27 28 enum { 29 GTK_WIN32_SYS_COLOR_SCROLLBAR, 30 GTK_WIN32_SYS_COLOR_BACKGROUND, 31 GTK_WIN32_SYS_COLOR_ACTIVECAPTION, 32 GTK_WIN32_SYS_COLOR_INACTIVECAPTION, 33 GTK_WIN32_SYS_COLOR_MENU, 34 GTK_WIN32_SYS_COLOR_WINDOW, 35 GTK_WIN32_SYS_COLOR_WINDOWFRAME, 36 GTK_WIN32_SYS_COLOR_MENUTEXT, 37 GTK_WIN32_SYS_COLOR_WINDOWTEXT, 38 GTK_WIN32_SYS_COLOR_CAPTIONTEXT, 39 GTK_WIN32_SYS_COLOR_ACTIVEBORDER, 40 GTK_WIN32_SYS_COLOR_INACTIVEBORDER, 41 GTK_WIN32_SYS_COLOR_APPWORKSPACE, 42 GTK_WIN32_SYS_COLOR_HIGHLIGHT, 43 GTK_WIN32_SYS_COLOR_HIGHLIGHTTEXT, 44 GTK_WIN32_SYS_COLOR_BTNFACE, 45 GTK_WIN32_SYS_COLOR_BTNSHADOW, 46 GTK_WIN32_SYS_COLOR_GRAYTEXT, 47 GTK_WIN32_SYS_COLOR_BTNTEXT, 48 GTK_WIN32_SYS_COLOR_INACTIVECAPTIONTEXT, 49 GTK_WIN32_SYS_COLOR_BTNHIGHLIGHT, 50 GTK_WIN32_SYS_COLOR_3DDKSHADOW, 51 GTK_WIN32_SYS_COLOR_3DLIGHT, 52 GTK_WIN32_SYS_COLOR_INFOTEXT, 53 GTK_WIN32_SYS_COLOR_INFOBK, 54 GTK_WIN32_SYS_COLOR_ALTERNATEBTNFACE, 55 GTK_WIN32_SYS_COLOR_HOTLIGHT, 56 GTK_WIN32_SYS_COLOR_GRADIENTACTIVECAPTION, 57 GTK_WIN32_SYS_COLOR_GRADIENTINACTIVECAPTION, 58 GTK_WIN32_SYS_COLOR_MENUHILIGHT, 59 GTK_WIN32_SYS_COLOR_MENUBAR 60 }; 61 62 enum { 63 GTK_WIN32_SYS_METRIC_CXSCREEN = 0, 64 GTK_WIN32_SYS_METRIC_CYSCREEN = 1, 65 GTK_WIN32_SYS_METRIC_CXVSCROLL = 2, 66 GTK_WIN32_SYS_METRIC_CYHSCROLL = 3, 67 GTK_WIN32_SYS_METRIC_CYCAPTION = 4, 68 GTK_WIN32_SYS_METRIC_CXBORDER = 5, 69 GTK_WIN32_SYS_METRIC_CYBORDER = 6, 70 GTK_WIN32_SYS_METRIC_CXDLGFRAME = 7, 71 GTK_WIN32_SYS_METRIC_CYDLGFRAME = 8, 72 GTK_WIN32_SYS_METRIC_CYVTHUMB = 9, 73 GTK_WIN32_SYS_METRIC_CXHTHUMB = 10, 74 GTK_WIN32_SYS_METRIC_CXICON = 11, 75 GTK_WIN32_SYS_METRIC_CYICON = 12, 76 GTK_WIN32_SYS_METRIC_CXCURSOR = 13, 77 GTK_WIN32_SYS_METRIC_CYCURSOR = 14, 78 GTK_WIN32_SYS_METRIC_CYMENU = 15, 79 GTK_WIN32_SYS_METRIC_CXFULLSCREEN = 16, 80 GTK_WIN32_SYS_METRIC_CYFULLSCREEN = 17, 81 GTK_WIN32_SYS_METRIC_CYKANJIWINDOW = 18, 82 GTK_WIN32_SYS_METRIC_MOUSEPRESENT = 19, 83 GTK_WIN32_SYS_METRIC_CYVSCROLL = 20, 84 GTK_WIN32_SYS_METRIC_CXHSCROLL = 21, 85 GTK_WIN32_SYS_METRIC_DEBUG = 22, 86 GTK_WIN32_SYS_METRIC_SWAPBUTTON = 23, 87 GTK_WIN32_SYS_METRIC_RESERVED1 = 24, 88 GTK_WIN32_SYS_METRIC_RESERVED2 = 25, 89 GTK_WIN32_SYS_METRIC_RESERVED3 = 26, 90 GTK_WIN32_SYS_METRIC_RESERVED4 = 27, 91 GTK_WIN32_SYS_METRIC_CXMIN = 28, 92 GTK_WIN32_SYS_METRIC_CYMIN = 29, 93 GTK_WIN32_SYS_METRIC_CXSIZE = 30, 94 GTK_WIN32_SYS_METRIC_CYSIZE = 31, 95 GTK_WIN32_SYS_METRIC_CXFRAME = 32, 96 GTK_WIN32_SYS_METRIC_CYFRAME = 33, 97 GTK_WIN32_SYS_METRIC_CXMINTRACK = 34, 98 GTK_WIN32_SYS_METRIC_CYMINTRACK = 35, 99 GTK_WIN32_SYS_METRIC_CXDOUBLECLK = 36, 100 GTK_WIN32_SYS_METRIC_CYDOUBLECLK = 37, 101 GTK_WIN32_SYS_METRIC_CXICONSPACING = 38, 102 GTK_WIN32_SYS_METRIC_CYICONSPACING = 39, 103 GTK_WIN32_SYS_METRIC_MENUDROPALIGNMENT = 40, 104 GTK_WIN32_SYS_METRIC_PENWINDOWS = 41, 105 GTK_WIN32_SYS_METRIC_DBCSENABLED = 42, 106 GTK_WIN32_SYS_METRIC_CMOUSEBUTTONS = 43, 107 GTK_WIN32_SYS_METRIC_SECURE = 44, 108 GTK_WIN32_SYS_METRIC_CXEDGE = 45, 109 GTK_WIN32_SYS_METRIC_CYEDGE = 46, 110 GTK_WIN32_SYS_METRIC_CXMINSPACING = 47, 111 GTK_WIN32_SYS_METRIC_CYMINSPACING = 48, 112 GTK_WIN32_SYS_METRIC_CXSMICON = 49, 113 GTK_WIN32_SYS_METRIC_CYSMICON = 50, 114 GTK_WIN32_SYS_METRIC_CYSMCAPTION = 51, 115 GTK_WIN32_SYS_METRIC_CXSMSIZE = 52, 116 GTK_WIN32_SYS_METRIC_CYSMSIZE = 53, 117 GTK_WIN32_SYS_METRIC_CXMENUSIZE = 54, 118 GTK_WIN32_SYS_METRIC_CYMENUSIZE = 55, 119 GTK_WIN32_SYS_METRIC_ARRANGE = 56, 120 GTK_WIN32_SYS_METRIC_CXMINIMIZED = 57, 121 GTK_WIN32_SYS_METRIC_CYMINIMIZED = 58, 122 GTK_WIN32_SYS_METRIC_CXMAXTRACK = 59, 123 GTK_WIN32_SYS_METRIC_CYMAXTRACK = 60, 124 GTK_WIN32_SYS_METRIC_CXMAXIMIZED = 61, 125 GTK_WIN32_SYS_METRIC_CYMAXIMIZED = 62, 126 GTK_WIN32_SYS_METRIC_NETWORK = 63, 127 GTK_WIN32_SYS_METRIC_CLEANBOOT = 67, 128 GTK_WIN32_SYS_METRIC_CXDRAG = 68, 129 GTK_WIN32_SYS_METRIC_CYDRAG = 69, 130 GTK_WIN32_SYS_METRIC_SHOWSOUNDS = 70, 131 GTK_WIN32_SYS_METRIC_CXMENUCHECK = 71, 132 GTK_WIN32_SYS_METRIC_CYMENUCHECK = 72, 133 GTK_WIN32_SYS_METRIC_SLOWMACHINE = 73, 134 GTK_WIN32_SYS_METRIC_MIDEASTENABLED = 74, 135 GTK_WIN32_SYS_METRIC_MOUSEWHEELPRESENT = 75, 136 GTK_WIN32_SYS_METRIC_XVIRTUALSCREEN = 76, 137 GTK_WIN32_SYS_METRIC_YVIRTUALSCREEN = 77, 138 GTK_WIN32_SYS_METRIC_CXVIRTUALSCREEN = 78, 139 GTK_WIN32_SYS_METRIC_CYVIRTUALSCREEN = 79, 140 GTK_WIN32_SYS_METRIC_CMONITORS = 80, 141 GTK_WIN32_SYS_METRIC_SAMEDISPLAYFORMAT = 81, 142 GTK_WIN32_SYS_METRIC_IMMENABLED = 82, 143 GTK_WIN32_SYS_METRIC_CXFOCUSBORDER = 83, 144 GTK_WIN32_SYS_METRIC_CYFOCUSBORDER = 84, 145 GTK_WIN32_SYS_METRIC_TABLETPC = 86, 146 GTK_WIN32_SYS_METRIC_MEDIACENTER = 87, 147 GTK_WIN32_SYS_METRIC_STARTER = 88, 148 GTK_WIN32_SYS_METRIC_SERVERR2 = 89, 149 GTK_WIN32_SYS_METRIC_CMETRICS = 90, 150 GTK_WIN32_SYS_METRIC_MOUSEHORIZONTALWHEELPRESENT = 91, 151 GTK_WIN32_SYS_METRIC_CXPADDEDBORDER = 92 152 }; 153 154 void gtk_win32_draw_theme_background (cairo_t *cr, 155 const char *class_name, 156 int part, 157 int state, 158 int width, 159 int height); 160 void gtk_win32_get_theme_part_size (const char *class_name, 161 int part, 162 int state, 163 int *width, 164 int *height); 165 void gtk_win32_get_theme_margins (const char *class_name, 166 int part, 167 int state, 168 GtkBorder *out_margins); 169 170 const char * gtk_win32_get_sys_metric_name_for_id (gint id); 171 int gtk_win32_get_sys_metric_id_for_name (const char *name); 172 int gtk_win32_get_sys_metric (gint id); 173 174 const char * gtk_win32_get_sys_color_name_for_id (gint id); 175 int gtk_win32_get_sys_color_id_for_name (const char *name); 176 void gtk_win32_get_sys_color (gint id, 177 GdkRGBA *color); 178 179 G_END_DECLS 180 181 #endif /* __GTK_WIN32_DRAW_H__ */ 182