X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/08f53168acef5006826b22c11fe562432193d854..eb83d250fcff394c282cc2f6b2bd98fe1b2e9f23:/src/gtk/window.cpp diff --git a/src/gtk/window.cpp b/src/gtk/window.cpp index 030666ca70..ff1855a547 100644 --- a/src/gtk/window.cpp +++ b/src/gtk/window.cpp @@ -39,14 +39,6 @@ #include -// FIXME: Due to a hack we use GtkCombo in here, which is deprecated since gtk2.3.0 -#include -#if defined(GTK_DISABLE_DEPRECATED) && GTK_CHECK_VERSION(2,3,0) - #undef GTK_DISABLE_DEPRECATED - #include - #define GTK_DISABLE_DEPRECATED -#endif - #include "wx/gtk/private.h" #include "wx/gtk/win_gtk.h" #include @@ -334,45 +326,6 @@ void wxgtk_window_size_request_callback(GtkWidget * WXUNUSED(widget), } } -#if wxUSE_COMBOBOX - -extern "C" { -static -void wxgtk_combo_size_request_callback(GtkWidget * WXUNUSED(widget), - GtkRequisition *requisition, - wxWindow* win) -{ - // This callback is actually hooked into the text entry - // of the combo box, not the GtkHBox. - - int w, h; - win->GetSize( &w, &h ); - if (w < 2) - w = 2; - if (h < 2) - h = 2; - - GtkCombo *gcombo = GTK_COMBO(win->m_widget); - - GtkRequisition entry_req; - entry_req.width = 2; - entry_req.height = 2; - (* GTK_WIDGET_CLASS( GTK_OBJECT_GET_CLASS(gcombo->entry) )->size_request ) - (gcombo->entry, &entry_req ); - - GtkRequisition button_req; - button_req.width = 2; - button_req.height = 2; - (* GTK_WIDGET_CLASS( GTK_OBJECT_GET_CLASS(gcombo->button) )->size_request ) - (gcombo->button, &button_req ); - - requisition->width = w - button_req.width; - requisition->height = entry_req.height; -} -} - -#endif // wxUSE_COMBOBOX - //----------------------------------------------------------------------------- // "expose_event" of m_wxwindow //----------------------------------------------------------------------------- @@ -385,9 +338,34 @@ gtk_window_expose_callback( GtkWidget *widget, { DEBUG_MAIN_THREAD + wxPizza *pizza = WX_PIZZA(widget); + GdkWindow *backing_window = pizza->m_backing_window; + + int w = widget->allocation.width; + int h = widget->allocation.height; + // if this event is for the border-only GdkWindow - if (gdk_event->window != widget->window) - return false; + if (backing_window && gdk_event->window == pizza->m_backing_window) + { + if (win->HasFlag(wxBORDER_SIMPLE)) + { + GdkGC* gc = gdk_gc_new(gdk_event->window); + gdk_gc_set_foreground(gc, &widget->style->black); + gdk_draw_rectangle(gdk_event->window, gc, false, 0, 0, w - 1, h - 1); + g_object_unref(gc); + } + else + { + GtkShadowType shadow = GTK_SHADOW_IN; + if (win->HasFlag(wxBORDER_RAISED)) + shadow = GTK_SHADOW_OUT; + gtk_paint_shadow( + widget->style, gdk_event->window, GTK_STATE_NORMAL, + shadow, NULL, widget, "viewport", 0, 0, w, h); + } + + return TRUE; + } #if 0 if (win->GetName()) @@ -427,7 +405,8 @@ gtk_window_expose_callback( GtkWidget *widget, // "expose_event" from m_widget, for drawing border //----------------------------------------------------------------------------- -#ifndef __WXUNIVERSAL__ +#if 0 +ndef __WXUNIVERSAL__ extern "C" { static gboolean expose_event_border(GtkWidget* widget, GdkEventExpose* event, wxWindow* win) @@ -461,7 +440,7 @@ expose_event_border(GtkWidget* widget, GdkEventExpose* event, wxWindow* win) shadow = GTK_SHADOW_OUT; gtk_paint_shadow( widget->style, event->window, GTK_STATE_NORMAL, - shadow, &event->area, widget, NULL, x, y, w, h); + shadow, &event->area, widget, "entry", x, y, w, h); } // no further painting is needed for border-only GdkWindow @@ -2460,7 +2439,8 @@ void wxWindowGTK::PostCreation() G_CALLBACK (gtk_wxwindow_commit_cb), this); // border drawing -#ifndef __WXUNIVERSAL__ +#if 0 +ndef __WXUNIVERSAL__ if (HasFlag(wxBORDER_SIMPLE | wxBORDER_RAISED | wxBORDER_SUNKEN)) { g_signal_connect(m_widget, "expose_event", @@ -2541,16 +2521,6 @@ void wxWindowGTK::PostCreation() #endif } -#if wxUSE_COMBOBOX - if (GTK_IS_COMBO(m_widget)) - { - GtkCombo *gcombo = GTK_COMBO(m_widget); - - g_signal_connect (gcombo->entry, "size_request", - G_CALLBACK (wxgtk_combo_size_request_callback), - this); - } else -#endif // wxUSE_COMBOBOX #ifdef GTK_IS_FILE_CHOOSER_BUTTON if (!gtk_check_version(2,6,0) && GTK_IS_FILE_CHOOSER_BUTTON(m_widget)) { @@ -3679,6 +3649,7 @@ void wxWindowGTK::GtkSendPaintEvents() } } +#if 0 if (GetThemeEnabled() && (GetBackgroundStyle() == wxBG_STYLE_SYSTEM)) { // find ancestor from which to steal background @@ -3728,10 +3699,14 @@ void wxWindowGTK::GtkSendPaintEvents() GetEventHandler()->ProcessEvent(erase_event); } - + wxNcPaintEvent nc_paint_event( GetId() ); nc_paint_event.SetEventObject( this ); GetEventHandler()->ProcessEvent( nc_paint_event ); +#endif + + if (GetName() == "MyMiniControl") + wxPrintf( "MyMini paint\n" ); wxPaintEvent paint_event( GetId() ); paint_event.SetEventObject( this );