#include "wx/settings.h"
#include "wx/debug.h"
-
+#include "wx/module.h"
#include "wx/cmndata.h"
#include <gdk/gdk.h>
wxFont *g_systemFont = (wxFont *) NULL;
-void wxSystemSettings::Done()
+// ----------------------------------------------------------------------------
+// wxSystemSettingsModule
+// ----------------------------------------------------------------------------
+
+class wxSystemSettingsModule : public wxModule
{
-// delete g_systemWinColour;
- delete g_systemBtnFaceColour;
- delete g_systemBtnShadowColour;
- delete g_systemBtnHighlightColour;
- delete g_systemHighlightColour;
- delete g_systemHighlightTextColour;
- delete g_systemListBoxColour;
- delete g_systemFont;
- delete g_systemBtnTextColour;
-}
+public:
+ bool OnInit() { return TRUE; }
+ void OnExit()
+ {
+ //delete g_systemWinColour;
+ delete g_systemBtnFaceColour;
+ delete g_systemBtnShadowColour;
+ delete g_systemBtnHighlightColour;
+ delete g_systemHighlightColour;
+ delete g_systemHighlightTextColour;
+ delete g_systemListBoxColour;
+ delete g_systemFont;
+ delete g_systemBtnTextColour;
+ }
+ DECLARE_DYNAMIC_CLASS(wxSystemSettingsModule)
+};
+
+IMPLEMENT_DYNAMIC_CLASS(wxSystemSettingsModule, wxModule)
+
+// ----------------------------------------------------------------------------
+// wxSystemSettings implementation
+// ----------------------------------------------------------------------------
// kind of widget to use in GetColourFromGTKWidget
enum wxGtkWidgetType
wxGTK_BASE
};
-// wxSystemSettings::GetSystemColour() helper: get the colours from a GTK+
+// wxSystemSettings::GetColour() helper: get the colours from a GTK+
// widget style, return true if we did get them, false to use defaults
static bool GetColourFromGTKWidget(int& red, int& green, int& blue,
wxGtkWidgetType type = wxGTK_BUTTON,
return ok;
}
-wxColour wxSystemSettings::GetSystemColour( int index )
+wxColour wxSystemSettingsNative::GetColour( wxSystemColour index )
{
switch (index)
{
//case wxSYS_COLOUR_3DSHADOW:
if (!g_systemBtnShadowColour)
{
- wxColour faceColour(GetSystemColour(wxSYS_COLOUR_3DFACE));
+ wxColour faceColour(GetColour(wxSYS_COLOUR_3DFACE));
g_systemBtnShadowColour =
new wxColour((unsigned char) (faceColour.Red() * 0.666),
(unsigned char) (faceColour.Green() * 0.666),
case wxSYS_COLOUR_HIGHLIGHTTEXT:
if (!g_systemHighlightTextColour)
{
- wxColour hclr = GetSystemColour(wxSYS_COLOUR_HIGHLIGHT);
+ wxColour hclr = GetColour(wxSYS_COLOUR_HIGHLIGHT);
if (hclr.Red() > 200 && hclr.Green() > 200 && hclr.Blue() > 200)
g_systemHighlightTextColour = new wxColour(*wxBLACK);
else
return *wxWHITE;
}
-wxFont wxSystemSettings::GetSystemFont( int index )
+wxFont wxSystemSettingsNative::GetFont( wxSystemFont index )
{
switch (index)
{
}
return *g_systemFont;
}
- }
- return wxNullFont;
+ default:
+ return wxNullFont;
+ }
}
-int wxSystemSettings::GetSystemMetric( int index )
+int wxSystemSettingsNative::GetMetric( wxSystemMetric index )
{
switch (index)
{
case wxSYS_SCREEN_Y: return gdk_screen_height();
case wxSYS_HSCROLL_Y: return 15;
case wxSYS_VSCROLL_X: return 15;
+ default:
+ wxFAIL_MSG( wxT("wxSystemSettings::GetMetric not fully implemented") );
+ return 0;
}
+}
- wxCHECK_MSG( index, 0, wxT("wxSystemSettings::GetSystemMetric not fully implemented") );
-
- return 0;
+bool wxSystemSettingsNative::HasFeature(wxSystemFeature index)
+{
+ switch (index)
+ {
+ case wxSYS_CAN_ICONIZE_FRAME:
+ return FALSE;
+ break;
+ case wxSYS_CAN_DRAW_FRAME_DECORATIONS:
+ return TRUE;
+ break;
+ default:
+ return FALSE;
+ }
}