X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/73c42ee86f161cecad7a63391873e87e2d736606..afab8b85c4bdeb11a248c57d13e9bcfa14149ef8:/src/gtk/private.cpp diff --git a/src/gtk/private.cpp b/src/gtk/private.cpp index 8fc53a6aa4..4cf519ee87 100644 --- a/src/gtk/private.cpp +++ b/src/gtk/private.cpp @@ -4,9 +4,8 @@ // Author: Marcin Malich // Modified by: // Created: 28.06.2008 -// RCS-ID: $Id$ // Copyright: (c) 2008 Marcin Malich -// License: wxWindows licence +// Licence: wxWindows licence /////////////////////////////////////////////////////////////////////////////// // ============================================================================ @@ -28,6 +27,7 @@ #include "wx/module.h" #endif +#include #include "wx/gtk/private.h" // ---------------------------------------------------------------------------- @@ -64,6 +64,20 @@ GtkWidget *GetButtonWidget() return s_button; } +GtkWidget *GetNotebookWidget() +{ + static GtkWidget *s_notebook = NULL; + + if ( !s_notebook ) + { + s_notebook = gtk_notebook_new(); + gtk_container_add(GetContainer(), s_notebook); + gtk_widget_realize(s_notebook); + } + + return s_notebook; +} + GtkWidget *GetCheckButtonWidget() { static GtkWidget *s_button = NULL; @@ -116,52 +130,59 @@ GtkWidget *GetEntryWidget() static GtkWidget *s_first_button = NULL; static GtkWidget *s_other_button = NULL; static GtkWidget *s_last_button = NULL; - -GtkWidget *GetHeaderButtonWidgetFirst() -{ - if ( !s_first_button ) - { +static void CreateHeaderButtons() +{ // Get the dummy tree widget, give it a column, and then use the // widget in the column header for the rendering code. GtkWidget* treewidget = GetTreeWidget(); - + GtkTreeViewColumn *column = gtk_tree_view_column_new(); gtk_tree_view_append_column(GTK_TREE_VIEW(treewidget), column); +#ifdef __WXGTK3__ + s_first_button = gtk_tree_view_column_get_button(column); +#else s_first_button = column->button; - +#endif + wxASSERT(s_first_button); + column = gtk_tree_view_column_new(); gtk_tree_view_append_column(GTK_TREE_VIEW(treewidget), column); +#ifdef __WXGTK3__ + s_other_button = gtk_tree_view_column_get_button(column); +#else s_other_button = column->button; - +#endif + column = gtk_tree_view_column_new(); gtk_tree_view_append_column(GTK_TREE_VIEW(treewidget), column); +#ifdef __WXGTK3__ + s_last_button = gtk_tree_view_column_get_button(column); +#else s_last_button = column->button; - } +#endif +} + +GtkWidget *GetHeaderButtonWidgetFirst() +{ + if (!s_first_button) + CreateHeaderButtons(); return s_first_button; } +GtkWidget *GetHeaderButtonWidgetLast() +{ + if (!s_last_button) + CreateHeaderButtons(); + + return s_last_button; +} + GtkWidget *GetHeaderButtonWidget() { - if ( !s_other_button ) - { - // Get the dummy tree widget, give it a column, and then use the - // widget in the column header for the rendering code. - GtkWidget* treewidget = GetTreeWidget(); - - GtkTreeViewColumn *column = gtk_tree_view_column_new(); - gtk_tree_view_append_column(GTK_TREE_VIEW(treewidget), column); - s_first_button = column->button; - - column = gtk_tree_view_column_new(); - gtk_tree_view_append_column(GTK_TREE_VIEW(treewidget), column); - s_other_button = column->button; - - column = gtk_tree_view_column_new(); - gtk_tree_view_append_column(GTK_TREE_VIEW(treewidget), column); - s_last_button = column->button; - } + if (!s_other_button) + CreateHeaderButtons(); return s_other_button; } @@ -183,13 +204,22 @@ GtkWidget * GetRadioButtonWidget() return s_button; } -GtkWidget* GetSplitterWidget() +GtkWidget* GetSplitterWidget(wxOrientation orient) { - static GtkWidget* widget; - + static GtkWidget* widgets[2]; + const GtkOrientation gtkOrient = + orient == wxHORIZONTAL ? GTK_ORIENTATION_HORIZONTAL : GTK_ORIENTATION_VERTICAL; + GtkWidget*& widget = widgets[gtkOrient]; if (widget == NULL) { - widget = gtk_vpaned_new(); +#ifdef __WXGTK3__ + widget = gtk_paned_new(gtkOrient); +#else + if (orient == wxHORIZONTAL) + widget = gtk_hpaned_new(); + else + widget = gtk_vpaned_new(); +#endif gtk_container_add(GetContainer(), widget); gtk_widget_realize(widget); } @@ -228,7 +258,6 @@ GtkWidget *GetTreeWidget() return s_tree; } - // Module for destroying created widgets class WidgetsCleanupModule : public wxModule {