#include "wx/debug.h"
#include "wx/module.h"
#include "wx/cmndata.h"
+#include "wx/fontutil.h"
#include <gdk/gdk.h>
#include <gdk/gdkprivate.h>
#include <gtk/gtk.h>
-extern GdkFont *GtkGetDefaultGuiFont();
-
-
-/*
-#define wxSYS_COLOUR_SCROLLBAR 0
-#define wxSYS_COLOUR_BACKGROUND 1
-#define wxSYS_COLOUR_ACTIVECAPTION 2
-#define wxSYS_COLOUR_INACTIVECAPTION 3
-#define wxSYS_COLOUR_MENU 4
-#define wxSYS_COLOUR_WINDOW 5
-#define wxSYS_COLOUR_WINDOWFRAME 6
-#define wxSYS_COLOUR_MENUTEXT 7
-#define wxSYS_COLOUR_WINDOWTEXT 8
-#define wxSYS_COLOUR_CAPTIONTEXT 9
-#define wxSYS_COLOUR_ACTIVEBORDER 10
-#define wxSYS_COLOUR_INACTIVEBORDER 11
-#define wxSYS_COLOUR_APPWORKSPACE 12
-#define wxSYS_COLOUR_HIGHLIGHT 13
-#define wxSYS_COLOUR_HIGHLIGHTTEXT 14
-#define wxSYS_COLOUR_BTNFACE 15
-#define wxSYS_COLOUR_BTNSHADOW 16
-#define wxSYS_COLOUR_GRAYTEXT 17
-#define wxSYS_COLOUR_BTNTEXT 18
-#define wxSYS_COLOUR_INACTIVECAPTIONTEXT 19
-#define wxSYS_COLOUR_BTNHIGHLIGHT 20
-
-#define wxSYS_COLOUR_3DDKSHADOW 21
-#define wxSYS_COLOUR_3DLIGHT 22
-#define wxSYS_COLOUR_INFOTEXT 23
-#define wxSYS_COLOUR_INFOBK 24
-
-#define wxSYS_COLOUR_DESKTOP wxSYS_COLOUR_BACKGROUND
-#define wxSYS_COLOUR_3DFACE wxSYS_COLOUR_BTNFACE
-#define wxSYS_COLOUR_3DSHADOW wxSYS_COLOUR_BTNSHADOW
-#define wxSYS_COLOUR_3DHIGHLIGHT wxSYS_COLOUR_BTNHIGHLIGHT
-#define wxSYS_COLOUR_3DHILIGHT wxSYS_COLOUR_BTNHIGHLIGHT
-#define wxSYS_COLOUR_BTNHILIGHT wxSYS_COLOUR_BTNHIGHLIGHT
-*/
-
#define SHIFT (8*(sizeof(short int)-sizeof(char)))
//wxColour *g_systemWinColour = (wxColour *) NULL;
case wxSYS_COLOUR_ACTIVEBORDER:
case wxSYS_COLOUR_INACTIVEBORDER:
case wxSYS_COLOUR_BTNFACE:
+ case wxSYS_COLOUR_MENUBAR:
case wxSYS_COLOUR_3DLIGHT:
if (!g_systemBtnFaceColour)
{
}
return *g_systemBtnTextColour;
+ // this (as well as wxSYS_COLOUR_INFOTEXT above) is used for
+ // tooltip windows - Robert, please change this code to use the
+ // real GTK tooltips when/if you can (TODO)
+ case wxSYS_COLOUR_INFOBK:
+ return wxColour(255, 255, 225);
+
case wxSYS_COLOUR_HIGHLIGHTTEXT:
if (!g_systemHighlightTextColour)
{
}
return *g_systemHighlightTextColour;
- case wxSYS_COLOUR_INFOBK:
case wxSYS_COLOUR_APPWORKSPACE:
return *wxWHITE; // ?
+
+ case wxSYS_COLOUR_HOTLIGHT:
+ case wxSYS_COLOUR_GRADIENTACTIVECAPTION:
+ case wxSYS_COLOUR_GRADIENTINACTIVECAPTION:
+ case wxSYS_COLOUR_MENUHILIGHT:
+ // TODO
+ return *wxBLACK;
+
+ case wxSYS_COLOUR_MAX:
+ default:
+ wxFAIL_MSG( _T("unknown system colour index") );
}
return *wxWHITE;
{
if (!g_systemFont)
{
-#if 0
- GdkFont *gdk_font = GtkGetDefaultGuiFont();
- if (gdk_font)
+#ifdef __WXGTK20__
+ GtkWidget *widget = gtk_button_new();
+ GtkStyle *def = gtk_rc_get_style( widget );
+ if (!def)
+ def = gtk_widget_get_default_style();
+ if (def)
{
- GSList *font_list = ((GdkFontPrivate*)gdk_font)->names;
- char *name = (char*)font_list->data;
- wxString font_string( name );
- wxFontData font_data;
- g_systemFont = new wxFont( font_string, font_data );
+ wxNativeFontInfo info;
+ info.description = def->font_desc;
+ g_systemFont = new wxFont(info);
+ }
+ else
+ {
+ g_systemFont = new wxFont( 12, wxSWISS, wxNORMAL, wxNORMAL );
}
gtk_widget_destroy( widget );
-#endif
-
+#else
g_systemFont = new wxFont( 12, wxSWISS, wxNORMAL, wxNORMAL );
-
+#endif
}
return *g_systemFont;
}
case wxSYS_SCREEN_Y: return gdk_screen_height();
case wxSYS_HSCROLL_Y: return 15;
case wxSYS_VSCROLL_X: return 15;
+
+ // VZ: is there any way to get the cursor size with GDK?
+ case wxSYS_CURSOR_X: return 16;
+ case wxSYS_CURSOR_Y: return 16;
+ // MBN: ditto for icons
+ case wxSYS_ICON_X: return 32;
+ case wxSYS_ICON_Y: return 32;
default:
wxFAIL_MSG( wxT("wxSystemSettings::GetMetric not fully implemented") );
return 0;