style obtained from a widget not associated with screen may be wrong; we must create toplevel window and insert the widget into it to get correct style

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@28795 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Václav Slavík
2004-08-15 16:03:06 +00:00
parent 09d2369327
commit 66d8fe7712
2 changed files with 24 additions and 6 deletions

View File

@@ -236,9 +236,12 @@ wxControl::GetDefaultAttributesFromGTKWidget(GtkWidget* (*widget_new)(void),
int state)
{
wxVisualAttributes attr;
// NB: we need toplevel window so that GTK+ can find the right style
GtkWidget *wnd = gtk_window_new(GTK_WINDOW_TOPLEVEL);
GtkWidget* widget = widget_new();
gtk_container_add(GTK_CONTAINER(wnd), widget);
attr = GetDefaultAttributesFromGTKWidget(widget, useBase, state);
gtk_widget_destroy(widget);
gtk_widget_destroy(wnd);
return attr;
}
@@ -249,9 +252,12 @@ wxControl::GetDefaultAttributesFromGTKWidget(GtkWidget* (*widget_new)(const gcha
int state)
{
wxVisualAttributes attr;
// NB: we need toplevel window so that GTK+ can find the right style
GtkWidget *wnd = gtk_window_new(GTK_WINDOW_TOPLEVEL);
GtkWidget* widget = widget_new("");
gtk_container_add(GTK_CONTAINER(wnd), widget);
attr = GetDefaultAttributesFromGTKWidget(widget, useBase, state);
gtk_widget_destroy(widget);
gtk_widget_destroy(wnd);
return attr;
}
@@ -263,9 +269,12 @@ wxControl::GetDefaultAttributesFromGTKWidget(GtkWidget* (*widget_new)(GtkAdjustm
int state)
{
wxVisualAttributes attr;
// NB: we need toplevel window so that GTK+ can find the right style
GtkWidget *wnd = gtk_window_new(GTK_WINDOW_TOPLEVEL);
GtkWidget* widget = widget_new(NULL);
gtk_container_add(GTK_CONTAINER(wnd), widget);
attr = GetDefaultAttributesFromGTKWidget(widget, useBase, state);
gtk_widget_destroy(widget);
gtk_widget_destroy(wnd);
return attr;
}

View File

@@ -236,9 +236,12 @@ wxControl::GetDefaultAttributesFromGTKWidget(GtkWidget* (*widget_new)(void),
int state)
{
wxVisualAttributes attr;
// NB: we need toplevel window so that GTK+ can find the right style
GtkWidget *wnd = gtk_window_new(GTK_WINDOW_TOPLEVEL);
GtkWidget* widget = widget_new();
gtk_container_add(GTK_CONTAINER(wnd), widget);
attr = GetDefaultAttributesFromGTKWidget(widget, useBase, state);
gtk_widget_destroy(widget);
gtk_widget_destroy(wnd);
return attr;
}
@@ -249,9 +252,12 @@ wxControl::GetDefaultAttributesFromGTKWidget(GtkWidget* (*widget_new)(const gcha
int state)
{
wxVisualAttributes attr;
// NB: we need toplevel window so that GTK+ can find the right style
GtkWidget *wnd = gtk_window_new(GTK_WINDOW_TOPLEVEL);
GtkWidget* widget = widget_new("");
gtk_container_add(GTK_CONTAINER(wnd), widget);
attr = GetDefaultAttributesFromGTKWidget(widget, useBase, state);
gtk_widget_destroy(widget);
gtk_widget_destroy(wnd);
return attr;
}
@@ -263,9 +269,12 @@ wxControl::GetDefaultAttributesFromGTKWidget(GtkWidget* (*widget_new)(GtkAdjustm
int state)
{
wxVisualAttributes attr;
// NB: we need toplevel window so that GTK+ can find the right style
GtkWidget *wnd = gtk_window_new(GTK_WINDOW_TOPLEVEL);
GtkWidget* widget = widget_new(NULL);
gtk_container_add(GTK_CONTAINER(wnd), widget);
attr = GetDefaultAttributesFromGTKWidget(widget, useBase, state);
gtk_widget_destroy(widget);
gtk_widget_destroy(wnd);
return attr;
}