#include "wx/settings.h"
#ifndef WX_PRECOMP
- #include "wx/cmndata.h"
#include "wx/toplevel.h"
#endif
#include "wx/fontutil.h"
+#include "wx/fontenum.h"
#include <gtk/gtk.h>
#include "wx/gtk/private/win_gtk.h"
+#include "wx/gtk/private/gtk2-compat.h"
bool wxGetFrameExtents(GdkWindow* window, int* left, int* right, int* top, int* bottom);
gtk_widget_ensure_style(s_widget);
g_signal_connect(s_widget, "style_set", G_CALLBACK(style_set), NULL);
}
- return s_widget->style;
+ return gtk_widget_get_style(s_widget);
}
static const GtkStyle* ListStyle()
gtk_container_add(ContainerWidget(), s_widget);
gtk_widget_ensure_style(s_widget);
}
- return s_widget->style;
+ return gtk_widget_get_style(s_widget);
}
static const GtkStyle* TextCtrlStyle()
gtk_container_add(ContainerWidget(), s_widget);
gtk_widget_ensure_style(s_widget);
}
- return s_widget->style;
+ return gtk_widget_get_style(s_widget);
}
static const GtkStyle* MenuItemStyle()
gtk_container_add(ContainerWidget(), s_widget);
gtk_widget_ensure_style(s_widget);
}
- return s_widget->style;
+ return gtk_widget_get_style(s_widget);
}
static const GtkStyle* MenuBarStyle()
gtk_container_add(ContainerWidget(), s_widget);
gtk_widget_ensure_style(s_widget);
}
- return s_widget->style;
+ return gtk_widget_get_style(s_widget);
}
static const GtkStyle* ToolTipStyle()
gtk_widget_set_name(s_widget, name);
gtk_widget_ensure_style(s_widget);
}
- return s_widget->style;
+ return gtk_widget_get_style(s_widget);
}
wxColour wxSystemSettingsNative::GetColour( wxSystemColour index )
color = wxColor(ListStyle()->base[GTK_STATE_NORMAL]);
break;
+ case wxSYS_COLOUR_LISTBOXTEXT:
+ color = wxColor(ListStyle()->text[GTK_STATE_NORMAL]);
+ break;
+
+ case wxSYS_COLOUR_LISTBOXHIGHLIGHTTEXT:
+ // This is for the text in a list control (or tree) when the
+ // item is selected, but not focused
+ color = wxColor(ListStyle()->text[GTK_STATE_ACTIVE]);
+ break;
+
case wxSYS_COLOUR_MENUTEXT:
case wxSYS_COLOUR_WINDOWTEXT:
case wxSYS_COLOUR_CAPTIONTEXT:
case wxSYS_COLOUR_MAX:
default:
- wxFAIL_MSG( _T("unknown system colour index") );
+ wxFAIL_MSG( wxT("unknown system colour index") );
color = *wxWHITE;
break;
}
+ wxASSERT(color.IsOk());
return color;
}
case wxSYS_SYSTEM_FONT:
case wxSYS_DEVICE_DEFAULT_FONT:
case wxSYS_DEFAULT_GUI_FONT:
- if (!gs_fontSystem.Ok())
+ if (!gs_fontSystem.IsOk())
{
wxNativeFontInfo info;
info.description = ButtonStyle()->font_desc;
gs_fontSystem = wxFont(info);
+
+#if wxUSE_FONTENUM
+ // (try to) heal the default font (on some common systems e.g. Ubuntu
+ // it's "Sans Serif" but the real font is called "Sans"):
+ if (!wxFontEnumerator::IsValidFacename(gs_fontSystem.GetFaceName()) &&
+ gs_fontSystem.GetFaceName() == "Sans Serif")
+ gs_fontSystem.SetFaceName("Sans");
+#endif // wxUSE_FONTENUM
+
info.description = NULL;
}
font = gs_fontSystem;
default:
break;
}
+
+ wxASSERT( font.IsOk() );
+
return font;
}
int wxSystemSettingsNative::GetMetric( wxSystemMetric index, wxWindow* win )
{
GdkWindow *window = NULL;
- if(win && GTK_WIDGET_REALIZED(win->GetHandle()))
- window = win->GetHandle()->window;
+ if (win)
+ window = gtk_widget_get_window(win->GetHandle());
switch (index)
{