#endif // WX_PRECOMP
#include <gtk/gtk.h>
+#include "wx/gtk/private/gtk2-compat.h"
#if wxUSE_LIBHILDON
#include <hildon-widgets/hildon-window.h>
// menu bar
if (m_frameMenuBar && m_frameMenuBar->IsShown())
{
- GtkRequisition req;
- gtk_widget_size_request(m_frameMenuBar->m_widget, &req);
+ int h;
+ gtk_widget_get_preferred_height(m_frameMenuBar->m_widget, NULL, &h);
#if !wxUSE_LIBHILDON && !wxUSE_LIBHILDON2
- *height -= req.height;
+ *height -= h;
#endif
}
#endif // wxUSE_MENUS_NATIVE
// tool bar
if (m_frameToolBar && m_frameToolBar->IsShown())
{
- GtkRequisition req;
- gtk_widget_size_request(m_frameToolBar->m_widget, &req);
if (m_frameToolBar->IsVertical())
{
if (width)
- *width -= req.width;
+ {
+ int w;
+ gtk_widget_get_preferred_width(m_frameToolBar->m_widget, NULL, &w);
+ *width -= w;
+ }
}
else
{
if (height)
- *height -= req.height;
+ {
+ int h;
+ gtk_widget_get_preferred_height(m_frameToolBar->m_widget, NULL, &h);
+ *height -= h;
+ }
}
}
#endif // wxUSE_TOOLBAR
GTK_BOX(m_mainWidget), menuBar->m_widget, false, false, 0);
gtk_box_reorder_child(GTK_BOX(m_mainWidget), menuBar->m_widget, 0);
- // disconnect wxWindowGTK "size_request" handler,
- // it interferes with sizing of detached GtkHandleBox
- gulong handler_id = g_signal_handler_find(
- menuBar->m_widget,
- GSignalMatchType(G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_DATA),
- g_signal_lookup("size_request", GTK_TYPE_WIDGET),
- 0, NULL, NULL, menuBar);
- if (handler_id != 0)
- g_signal_handler_disconnect(menuBar->m_widget, handler_id);
-
// reset size request to allow native sizing to work
gtk_widget_set_size_request(menuBar->m_widget, -1, -1);
// Vertical toolbar and m_wxwindow go into an hbox, inside the
// vbox (m_mainWidget). hbox is created on demand.
GtkWidget* hbox = gtk_widget_get_parent(m_wxwindow);
- if (!GTK_IS_HBOX(hbox))
+ if (hbox == m_mainWidget)
{
- hbox = gtk_hbox_new(false, 0);
+ hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);
gtk_widget_show(hbox);
- gtk_container_add(GTK_CONTAINER(m_mainWidget), hbox);
+ gtk_box_pack_start(GTK_BOX(m_mainWidget), hbox, true, true, 0);
gtk_widget_reparent(m_wxwindow, hbox);
}
gtk_widget_reparent(toolbar->m_widget, hbox);
gtk_box_reorder_child(
GTK_BOX(m_mainWidget), toolbar->m_widget, pos);
}
-
- // disconnect wxWindowGTK "size_request" handler,
- // it interferes with sizing of detached GtkHandleBox
- gulong handler_id = g_signal_handler_find(
- toolbar->m_widget,
- GSignalMatchType(G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_DATA),
- g_signal_lookup("size_request", GTK_TYPE_WIDGET),
- 0, NULL, NULL, toolbar);
- if (handler_id != 0)
- g_signal_handler_disconnect(toolbar->m_widget, handler_id);
-
// reset size request to allow native sizing to work
gtk_widget_set_size_request(toolbar->m_widget, -1, -1);
}
statbar->m_widget, false, false, 0, GTK_PACK_END);
// make sure next size_allocate on statusbar causes a size event
statbar->m_oldClientWidth = 0;
+ int h = -1;
+ if (statbar->m_wxwindow)
+ {
+ // statusbar is not a native widget, need to set height request
+ h = statbar->m_height;
+ }
+ gtk_widget_set_size_request(statbar->m_widget, -1, h);
}
// make sure next size_allocate causes a wxSizeEvent
m_oldClientWidth = 0;