win32: Split out fallback code into separate file
(1) Actual Windows users don't care about it (2) It's easier to get rid of
This commit is contained in:
		@ -564,6 +564,7 @@ gtk_private_h_sources =		\
 | 
			
		||||
	gtktreeprivate.h	\
 | 
			
		||||
	gtkwidgetprivate.h	\
 | 
			
		||||
	gtkwidgetpathprivate.h	\
 | 
			
		||||
	gtkwin32drawprivate.h	\
 | 
			
		||||
	gtkwin32themeprivate.h	\
 | 
			
		||||
	gtkwindowprivate.h	\
 | 
			
		||||
	gtktreemenu.h		\
 | 
			
		||||
@ -926,6 +927,7 @@ gtk_base_c_sources = 		\
 | 
			
		||||
	gtkwidgetpath.c		\
 | 
			
		||||
	gtkwindow.c		\
 | 
			
		||||
	gtkwindowgroup.c	\
 | 
			
		||||
	gtkwin32draw.c		\
 | 
			
		||||
	gtkwin32theme.c		\
 | 
			
		||||
	gdkpixbufutils.c
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										70
									
								
								gtk/gtkwin32draw.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										70
									
								
								gtk/gtkwin32draw.c
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,70 @@
 | 
			
		||||
/* GTK - The GIMP Toolkit
 | 
			
		||||
 * Copyright (C) 2016 Benjamin Otte <otte@gnome.org>
 | 
			
		||||
 *
 | 
			
		||||
 * 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, see <http://www.gnu.org/licenses/>.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#include <config.h>
 | 
			
		||||
 | 
			
		||||
#include "gtkwin32drawprivate.h"
 | 
			
		||||
 | 
			
		||||
struct {
 | 
			
		||||
  const char *name;
 | 
			
		||||
  GdkRGBA rgba;
 | 
			
		||||
} win32_default_colors[] = {
 | 
			
		||||
#define RGB(r, g, b) { (r)/255.0, (g)/255.0, (b)/255., 1.0 }
 | 
			
		||||
  { "scrollbar", RGB(212, 208, 200) },
 | 
			
		||||
  { "background", RGB(58, 110, 165) },
 | 
			
		||||
  { "activecaption", RGB(10, 36, 106) },
 | 
			
		||||
  { "inactivecaption", RGB(128, 128, 128) },
 | 
			
		||||
  { "menu", RGB(212, 208, 200) },
 | 
			
		||||
  { "window", RGB(255, 255, 255) },
 | 
			
		||||
  { "windowframe", RGB(0, 0, 0) },
 | 
			
		||||
  { "menutext", RGB(0, 0, 0) },
 | 
			
		||||
  { "windowtext", RGB(0, 0, 0) },
 | 
			
		||||
  { "captiontext", RGB(255, 255, 255) },
 | 
			
		||||
  { "activeborder", RGB(212, 208, 200) },
 | 
			
		||||
  { "inactiveborder", RGB(212, 208, 200) },
 | 
			
		||||
  { "appworkspace", RGB(128, 128, 128) },
 | 
			
		||||
  { "highlight", RGB(10, 36, 106) },
 | 
			
		||||
  { "highlighttext", RGB(255, 255, 255) },
 | 
			
		||||
  { "btnface", RGB(212, 208, 200) },
 | 
			
		||||
  { "btnshadow", RGB(128, 128, 128) },
 | 
			
		||||
  { "graytext", RGB(128, 128, 128) },
 | 
			
		||||
  { "btntext", RGB(0, 0, 0) },
 | 
			
		||||
  { "inactivecaptiontext", RGB(212, 208, 200) },
 | 
			
		||||
  { "btnhighlight", RGB(255, 255, 255) },
 | 
			
		||||
  { "3ddkshadow", RGB(64, 64, 64) },
 | 
			
		||||
  { "3dlight", RGB(212, 208, 200) },
 | 
			
		||||
  { "infotext", RGB(0, 0, 0) },
 | 
			
		||||
  { "infobk", RGB(255, 255, 225) },
 | 
			
		||||
  { "alternatebtnface", RGB(181, 181, 181) },
 | 
			
		||||
  { "hotlight", RGB(0, 0, 200) },
 | 
			
		||||
  { "gradientactivecaption", RGB(166, 202, 240) },
 | 
			
		||||
  { "gradientinactivecaption", RGB(192, 192, 192) },
 | 
			
		||||
  { "menuhilight", RGB(10, 36, 106) },
 | 
			
		||||
  { "menubar", RGB(212, 208, 200) }
 | 
			
		||||
#undef RGB
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
void
 | 
			
		||||
gtk_win32_get_sys_color (gint     id,
 | 
			
		||||
                         GdkRGBA *color)
 | 
			
		||||
{
 | 
			
		||||
  if (id < G_N_ELEMENTS (win32_default_colors))
 | 
			
		||||
    *color = win32_default_colors[id].rgba;
 | 
			
		||||
  else
 | 
			
		||||
    gdk_rgba_parse (color, "black");
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										64
									
								
								gtk/gtkwin32drawprivate.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										64
									
								
								gtk/gtkwin32drawprivate.h
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,64 @@
 | 
			
		||||
/* GTK - The GIMP Toolkit
 | 
			
		||||
 * Copyright (C) 2016 Benjamin Otte <otte@gnome.org>
 | 
			
		||||
 *
 | 
			
		||||
 * 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, see <http://www.gnu.org/licenses/>.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#ifndef __GTK_WIN32_DRAW_H__
 | 
			
		||||
#define __GTK_WIN32_DRAW_H__
 | 
			
		||||
 | 
			
		||||
#include <gdk/gdk.h>
 | 
			
		||||
 | 
			
		||||
G_BEGIN_DECLS
 | 
			
		||||
 | 
			
		||||
enum {
 | 
			
		||||
  GTK_WIN32_SYS_COLOR_SCROLLBAR,
 | 
			
		||||
  GTK_WIN32_SYS_COLOR_BACKGROUND,
 | 
			
		||||
  GTK_WIN32_SYS_COLOR_ACTIVECAPTION,
 | 
			
		||||
  GTK_WIN32_SYS_COLOR_INACTIVECAPTION,
 | 
			
		||||
  GTK_WIN32_SYS_COLOR_MENU,
 | 
			
		||||
  GTK_WIN32_SYS_COLOR_WINDOW,
 | 
			
		||||
  GTK_WIN32_SYS_COLOR_WINDOWFRAME,
 | 
			
		||||
  GTK_WIN32_SYS_COLOR_MENUTEXT,
 | 
			
		||||
  GTK_WIN32_SYS_COLOR_WINDOWTEXT,
 | 
			
		||||
  GTK_WIN32_SYS_COLOR_CAPTIONTEXT,
 | 
			
		||||
  GTK_WIN32_SYS_COLOR_ACTIVEBORDER,
 | 
			
		||||
  GTK_WIN32_SYS_COLOR_INACTIVEBORDER,
 | 
			
		||||
  GTK_WIN32_SYS_COLOR_APPWORKSPACE,
 | 
			
		||||
  GTK_WIN32_SYS_COLOR_HIGHLIGHT,
 | 
			
		||||
  GTK_WIN32_SYS_COLOR_HIGHLIGHTTEXT,
 | 
			
		||||
  GTK_WIN32_SYS_COLOR_BTNFACE,
 | 
			
		||||
  GTK_WIN32_SYS_COLOR_BTNSHADOW,
 | 
			
		||||
  GTK_WIN32_SYS_COLOR_GRAYTEXT,
 | 
			
		||||
  GTK_WIN32_SYS_COLOR_BTNTEXT,
 | 
			
		||||
  GTK_WIN32_SYS_COLOR_INACTIVECAPTIONTEXT,
 | 
			
		||||
  GTK_WIN32_SYS_COLOR_BTNHIGHLIGHT,
 | 
			
		||||
  GTK_WIN32_SYS_COLOR_3DDKSHADOW,
 | 
			
		||||
  GTK_WIN32_SYS_COLOR_3DLIGHT,
 | 
			
		||||
  GTK_WIN32_SYS_COLOR_INFOTEXT,
 | 
			
		||||
  GTK_WIN32_SYS_COLOR_INFOBK,
 | 
			
		||||
  GTK_WIN32_SYS_COLOR_ALTERNATEBTNFACE,
 | 
			
		||||
  GTK_WIN32_SYS_COLOR_HOTLIGHT,
 | 
			
		||||
  GTK_WIN32_SYS_COLOR_GRADIENTACTIVECAPTION,
 | 
			
		||||
  GTK_WIN32_SYS_COLOR_GRADIENTINACTIVECAPTION,
 | 
			
		||||
  GTK_WIN32_SYS_COLOR_MENUHILIGHT,
 | 
			
		||||
  GTK_WIN32_SYS_COLOR_MENUBAR
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
void                    gtk_win32_get_sys_color         (gint            id,
 | 
			
		||||
                                                         GdkRGBA        *color);
 | 
			
		||||
 | 
			
		||||
G_END_DECLS
 | 
			
		||||
 | 
			
		||||
#endif /* __GTK_WIN32_DRAW_H__ */
 | 
			
		||||
@ -23,6 +23,8 @@
 | 
			
		||||
 | 
			
		||||
#include "gtkwin32themeprivate.h"
 | 
			
		||||
 | 
			
		||||
#include "gtkwin32drawprivate.h"
 | 
			
		||||
 | 
			
		||||
#ifdef G_OS_WIN32
 | 
			
		||||
 | 
			
		||||
#include <windows.h>
 | 
			
		||||
@ -455,45 +457,6 @@ gtk_win32_theme_get_size (GtkWin32Theme *theme,
 | 
			
		||||
#endif
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
struct {
 | 
			
		||||
  const char *name;
 | 
			
		||||
  GdkRGBA rgba;
 | 
			
		||||
} win32_default_colors[] = {
 | 
			
		||||
#define RGB(r, g, b) { (r)/255.0, (g)/255.0, (b)/255., 1.0 }
 | 
			
		||||
  { "scrollbar", RGB(212, 208, 200) },
 | 
			
		||||
  { "background", RGB(58, 110, 165) },
 | 
			
		||||
  { "activecaption", RGB(10, 36, 106) },
 | 
			
		||||
  { "inactivecaption", RGB(128, 128, 128) },
 | 
			
		||||
  { "menu", RGB(212, 208, 200) },
 | 
			
		||||
  { "window", RGB(255, 255, 255) },
 | 
			
		||||
  { "windowframe", RGB(0, 0, 0) },
 | 
			
		||||
  { "menutext", RGB(0, 0, 0) },
 | 
			
		||||
  { "windowtext", RGB(0, 0, 0) },
 | 
			
		||||
  { "captiontext", RGB(255, 255, 255) },
 | 
			
		||||
  { "activeborder", RGB(212, 208, 200) },
 | 
			
		||||
  { "inactiveborder", RGB(212, 208, 200) },
 | 
			
		||||
  { "appworkspace", RGB(128, 128, 128) },
 | 
			
		||||
  { "highlight", RGB(10, 36, 106) },
 | 
			
		||||
  { "highlighttext", RGB(255, 255, 255) },
 | 
			
		||||
  { "btnface", RGB(212, 208, 200) },
 | 
			
		||||
  { "btnshadow", RGB(128, 128, 128) },
 | 
			
		||||
  { "graytext", RGB(128, 128, 128) },
 | 
			
		||||
  { "btntext", RGB(0, 0, 0) },
 | 
			
		||||
  { "inactivecaptiontext", RGB(212, 208, 200) },
 | 
			
		||||
  { "btnhighlight", RGB(255, 255, 255) },
 | 
			
		||||
  { "3ddkshadow", RGB(64, 64, 64) },
 | 
			
		||||
  { "3dlight", RGB(212, 208, 200) },
 | 
			
		||||
  { "infotext", RGB(0, 0, 0) },
 | 
			
		||||
  { "infobk", RGB(255, 255, 225) },
 | 
			
		||||
  { "alternatebtnface", RGB(181, 181, 181) },
 | 
			
		||||
  { "hotlight", RGB(0, 0, 200) },
 | 
			
		||||
  { "gradientactivecaption", RGB(166, 202, 240) },
 | 
			
		||||
  { "gradientinactivecaption", RGB(192, 192, 192) },
 | 
			
		||||
  { "menuhilight", RGB(10, 36, 106) },
 | 
			
		||||
  { "menubar", RGB(212, 208, 200) }
 | 
			
		||||
#undef RGB
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
void
 | 
			
		||||
gtk_win32_theme_get_color (GtkWin32Theme *theme,
 | 
			
		||||
                           gint           id,
 | 
			
		||||
@ -518,10 +481,7 @@ gtk_win32_theme_get_color (GtkWin32Theme *theme,
 | 
			
		||||
  color->green = GetGValue (dcolor) / 255.0;
 | 
			
		||||
  color->blue = GetBValue (dcolor) / 255.0;
 | 
			
		||||
#else
 | 
			
		||||
  if (id < G_N_ELEMENTS (win32_default_colors))
 | 
			
		||||
    *color = win32_default_colors[id].rgba;
 | 
			
		||||
  else
 | 
			
		||||
    gdk_rgba_parse (color, "black");
 | 
			
		||||
  gtk_win32_get_sys_color (id, color);
 | 
			
		||||
#endif
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user