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 \
|
gtktreeprivate.h \
|
||||||
gtkwidgetprivate.h \
|
gtkwidgetprivate.h \
|
||||||
gtkwidgetpathprivate.h \
|
gtkwidgetpathprivate.h \
|
||||||
|
gtkwin32drawprivate.h \
|
||||||
gtkwin32themeprivate.h \
|
gtkwin32themeprivate.h \
|
||||||
gtkwindowprivate.h \
|
gtkwindowprivate.h \
|
||||||
gtktreemenu.h \
|
gtktreemenu.h \
|
||||||
@ -926,6 +927,7 @@ gtk_base_c_sources = \
|
|||||||
gtkwidgetpath.c \
|
gtkwidgetpath.c \
|
||||||
gtkwindow.c \
|
gtkwindow.c \
|
||||||
gtkwindowgroup.c \
|
gtkwindowgroup.c \
|
||||||
|
gtkwin32draw.c \
|
||||||
gtkwin32theme.c \
|
gtkwin32theme.c \
|
||||||
gdkpixbufutils.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 "gtkwin32themeprivate.h"
|
||||||
|
|
||||||
|
#include "gtkwin32drawprivate.h"
|
||||||
|
|
||||||
#ifdef G_OS_WIN32
|
#ifdef G_OS_WIN32
|
||||||
|
|
||||||
#include <windows.h>
|
#include <windows.h>
|
||||||
@ -455,45 +457,6 @@ gtk_win32_theme_get_size (GtkWin32Theme *theme,
|
|||||||
#endif
|
#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
|
void
|
||||||
gtk_win32_theme_get_color (GtkWin32Theme *theme,
|
gtk_win32_theme_get_color (GtkWin32Theme *theme,
|
||||||
gint id,
|
gint id,
|
||||||
@ -518,10 +481,7 @@ gtk_win32_theme_get_color (GtkWin32Theme *theme,
|
|||||||
color->green = GetGValue (dcolor) / 255.0;
|
color->green = GetGValue (dcolor) / 255.0;
|
||||||
color->blue = GetBValue (dcolor) / 255.0;
|
color->blue = GetBValue (dcolor) / 255.0;
|
||||||
#else
|
#else
|
||||||
if (id < G_N_ELEMENTS (win32_default_colors))
|
gtk_win32_get_sys_color (id, color);
|
||||||
*color = win32_default_colors[id].rgba;
|
|
||||||
else
|
|
||||||
gdk_rgba_parse (color, "black");
|
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user