X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/99529b9c4b711a81b85f80f556407cc9dbd055f7..9d5507f7a2701395e1d5c121bd877bb9066ee6ea:/src/gtk/win_gtk.cpp?ds=sidebyside diff --git a/src/gtk/win_gtk.cpp b/src/gtk/win_gtk.cpp index 12b5be9290..d8d901817c 100644 --- a/src/gtk/win_gtk.cpp +++ b/src/gtk/win_gtk.cpp @@ -9,6 +9,7 @@ #include "wx/defs.h" #include "wx/gtk/win_gtk.h" +#include "gtk/gtk.h" /* wxPizza is a custom GTK+ widget derived from GtkFixed. A custom widget @@ -166,6 +167,9 @@ static void realize(GtkWidget* widget) else gdk_window_reparent(widget->window, pizza->m_backing_window, border_x, border_y); gdk_window_resize(widget->window, w, h); + + widget->style = gtk_style_attach (widget->style, pizza->m_backing_window); + gtk_style_set_background (widget->style, pizza->m_backing_window, GTK_STATE_NORMAL); } } @@ -298,8 +302,8 @@ GtkWidget* wxPizza::New(long windowStyle) pizza->m_scroll_x = 0; pizza->m_scroll_y = 0; pizza->m_is_scrollable = (windowStyle & (wxHSCROLL | wxVSCROLL)) != 0; - pizza->m_border_style = - int(windowStyle & (wxBORDER_SIMPLE | wxBORDER_RAISED | wxBORDER_SUNKEN)); + // mask off border styles not useable with wxPizza + pizza->m_border_style = int(windowStyle & BORDER_STYLES); gtk_fixed_set_has_window(GTK_FIXED(widget), true); gtk_widget_add_events(widget, GDK_EXPOSURE_MASK | @@ -317,7 +321,6 @@ GtkWidget* wxPizza::New(long windowStyle) GDK_ENTER_NOTIFY_MASK | GDK_LEAVE_NOTIFY_MASK | GDK_FOCUS_CHANGE_MASK); - gtk_container_set_resize_mode(GTK_CONTAINER(widget), GTK_RESIZE_QUEUE); return widget; } @@ -356,6 +359,8 @@ void wxPizza::scroll(int dx, int dy) } } +extern GtkWidget *GetEntryWidget(); + void wxPizza::get_border_widths(int& x, int& y) { x = y = 0; @@ -363,13 +368,11 @@ void wxPizza::get_border_widths(int& x, int& y) x = y = 1; else if (m_border_style) { - GtkWidget* widget = GTK_WIDGET(this); - if (widget->style) + GtkWidget *entry_widget = GetEntryWidget(); + if (entry_widget->style) { - x = widget->style->xthickness; - y = widget->style->ythickness; - x = 1; - y = 1; + x = entry_widget->style->xthickness; + y = entry_widget->style->ythickness; } } }