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) int state)
{ {
wxVisualAttributes attr; 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(); GtkWidget* widget = widget_new();
gtk_container_add(GTK_CONTAINER(wnd), widget);
attr = GetDefaultAttributesFromGTKWidget(widget, useBase, state); attr = GetDefaultAttributesFromGTKWidget(widget, useBase, state);
gtk_widget_destroy(widget); gtk_widget_destroy(wnd);
return attr; return attr;
} }
@@ -249,9 +252,12 @@ wxControl::GetDefaultAttributesFromGTKWidget(GtkWidget* (*widget_new)(const gcha
int state) int state)
{ {
wxVisualAttributes attr; 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(""); GtkWidget* widget = widget_new("");
gtk_container_add(GTK_CONTAINER(wnd), widget);
attr = GetDefaultAttributesFromGTKWidget(widget, useBase, state); attr = GetDefaultAttributesFromGTKWidget(widget, useBase, state);
gtk_widget_destroy(widget); gtk_widget_destroy(wnd);
return attr; return attr;
} }
@@ -263,9 +269,12 @@ wxControl::GetDefaultAttributesFromGTKWidget(GtkWidget* (*widget_new)(GtkAdjustm
int state) int state)
{ {
wxVisualAttributes attr; 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); GtkWidget* widget = widget_new(NULL);
gtk_container_add(GTK_CONTAINER(wnd), widget);
attr = GetDefaultAttributesFromGTKWidget(widget, useBase, state); attr = GetDefaultAttributesFromGTKWidget(widget, useBase, state);
gtk_widget_destroy(widget); gtk_widget_destroy(wnd);
return attr; return attr;
} }

View File

@@ -236,9 +236,12 @@ wxControl::GetDefaultAttributesFromGTKWidget(GtkWidget* (*widget_new)(void),
int state) int state)
{ {
wxVisualAttributes attr; 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(); GtkWidget* widget = widget_new();
gtk_container_add(GTK_CONTAINER(wnd), widget);
attr = GetDefaultAttributesFromGTKWidget(widget, useBase, state); attr = GetDefaultAttributesFromGTKWidget(widget, useBase, state);
gtk_widget_destroy(widget); gtk_widget_destroy(wnd);
return attr; return attr;
} }
@@ -249,9 +252,12 @@ wxControl::GetDefaultAttributesFromGTKWidget(GtkWidget* (*widget_new)(const gcha
int state) int state)
{ {
wxVisualAttributes attr; 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(""); GtkWidget* widget = widget_new("");
gtk_container_add(GTK_CONTAINER(wnd), widget);
attr = GetDefaultAttributesFromGTKWidget(widget, useBase, state); attr = GetDefaultAttributesFromGTKWidget(widget, useBase, state);
gtk_widget_destroy(widget); gtk_widget_destroy(wnd);
return attr; return attr;
} }
@@ -263,9 +269,12 @@ wxControl::GetDefaultAttributesFromGTKWidget(GtkWidget* (*widget_new)(GtkAdjustm
int state) int state)
{ {
wxVisualAttributes attr; 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); GtkWidget* widget = widget_new(NULL);
gtk_container_add(GTK_CONTAINER(wnd), widget);
attr = GetDefaultAttributesFromGTKWidget(widget, useBase, state); attr = GetDefaultAttributesFromGTKWidget(widget, useBase, state);
gtk_widget_destroy(widget); gtk_widget_destroy(wnd);
return attr; return attr;
} }