]> git.saurik.com Git - wxWidgets.git/blobdiff - src/gtk1/minifram.cpp
Use gdk_window_invalidate instead of gtk_widget_queue_draw as the latter doesn't...
[wxWidgets.git] / src / gtk1 / minifram.cpp
index 139f1433c1bf0f984c59f2822f59d95834ddd9ae..7f24e602ee4c241764bbf1853e2ae99e78c8af0c 100644 (file)
@@ -1,5 +1,5 @@
 /////////////////////////////////////////////////////////////////////////////
-// Name:        minifram.cpp
+// Name:        src/gtk1/minifram.cpp
 // Purpose:
 // Author:      Robert Roebling
 // Id:          $Id$
@@ -7,22 +7,22 @@
 // Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
-#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
-    #pragma implementation "minifram.h"
-#endif
-
 // For compilers that support precompilation, includes "wx.h".
 #include "wx/wxprec.h"
 
-#include "wx/minifram.h"
-
 #if wxUSE_MINIFRAME
 
-#include "wx/dcscreen.h"
+#include "wx/minifram.h"
+
+#ifndef WX_PRECOMP
+    #include "wx/dcscreen.h"
+#endif
 
 #include "gtk/gtk.h"
-#include "wx/gtk/win_gtk.h"
-#include "wx/gtk/private.h"
+#include "wx/dcclient.h"
+#include "wx/gtk1/win_gtk.h"
+#include "wx/gtk1/private.h"
+#include "wx/gtk1/dcclient.h"
 
 #include <gdk/gdk.h>
 #include <gdk/gdkprivate.h>
@@ -86,7 +86,7 @@ static void gtk_window_own_expose_callback( GtkWidget *widget, GdkEventExpose *g
                      0, 0,
                      win->m_width, win->m_height );
 
-    if (!win->GetTitle().IsEmpty() &&
+    if (!win->GetTitle().empty() &&
         ((win->GetWindowStyle() & wxCAPTION) ||
          (win->GetWindowStyle() & wxTINY_CAPTION_HORIZ) ||
          (win->GetWindowStyle() & wxTINY_CAPTION_VERT)))
@@ -94,7 +94,7 @@ static void gtk_window_own_expose_callback( GtkWidget *widget, GdkEventExpose *g
         wxClientDC dc(win);
         dc.SetFont( *wxSMALL_FONT );
         int height = dc.GetCharHeight();
-        
+
         GdkGC *gc = gdk_gc_new( pizza->bin_window );
         gdk_gc_set_foreground( gc, &widget->style->bg[GTK_STATE_SELECTED] );
         gdk_draw_rectangle( pizza->bin_window, gc, TRUE,
@@ -105,7 +105,7 @@ static void gtk_window_own_expose_callback( GtkWidget *widget, GdkEventExpose *g
         gdk_gc_unref( gc );
 
         // Hack alert
-        dc.m_window = pizza->bin_window;
+        static_cast<wxClientDCImpl *>(dc.GetImpl())->m_window = pizza->bin_window;
         dc.SetTextForeground( *wxWHITE );
         dc.DrawText( win->GetTitle(), 6, 3 );
     }
@@ -116,7 +116,6 @@ static void gtk_window_own_expose_callback( GtkWidget *widget, GdkEventExpose *g
 // "draw" of m_mainWidget
 //-----------------------------------------------------------------------------
 
-#ifndef __WXGTK20__
 extern "C" {
 static void gtk_window_own_draw_callback( GtkWidget *widget, GdkRectangle *WXUNUSED(rect), wxFrame *win )
 {
@@ -133,7 +132,7 @@ static void gtk_window_own_draw_callback( GtkWidget *widget, GdkRectangle *WXUNU
                      0, 0,
                      win->m_width, win->m_height );
 
-    if (!win->m_title.IsEmpty() &&
+    if (!win->GetTitle().empty() &&
         ((win->GetWindowStyle() & wxCAPTION) ||
          (win->GetWindowStyle() & wxTINY_CAPTION_HORIZ) ||
          (win->GetWindowStyle() & wxTINY_CAPTION_VERT)))
@@ -141,7 +140,7 @@ static void gtk_window_own_draw_callback( GtkWidget *widget, GdkRectangle *WXUNU
         wxClientDC dc(win);
         dc.SetFont( *wxSMALL_FONT );
         int height = dc.GetCharHeight();
-        
+
         GdkGC *gc = gdk_gc_new( pizza->bin_window );
         gdk_gc_set_foreground( gc, &widget->style->bg[GTK_STATE_SELECTED] );
         gdk_draw_rectangle( pizza->bin_window, gc, TRUE,
@@ -152,13 +151,12 @@ static void gtk_window_own_draw_callback( GtkWidget *widget, GdkRectangle *WXUNU
         gdk_gc_unref( gc );
 
         // Hack alert
-        dc.m_window = pizza->bin_window;
+        static_cast<wxClientDCImpl *>(dc.GetImpl())->m_window = pizza->bin_window;
         dc.SetTextForeground( *wxWHITE );
         dc.DrawText( win->GetTitle(), 6, 3 );
     }
 }
 }
-#endif
 
 //-----------------------------------------------------------------------------
 // "button_press_event" of m_mainWidget
@@ -181,9 +179,9 @@ static gint gtk_window_button_press_callback( GtkWidget *widget, GdkEventButton
     wxClientDC dc(win);
     dc.SetFont( *wxSMALL_FONT );
     int height = dc.GetCharHeight() + 1;
-    
+
     if (gdk_event->y > height) return TRUE;
-        
+
     gdk_window_raise( win->m_widget->window );
 
     gdk_pointer_grab( widget->window, FALSE,
@@ -194,8 +192,8 @@ static gint gtk_window_button_press_callback( GtkWidget *widget, GdkEventButton
                           GDK_POINTER_MOTION_HINT_MASK  |
                           GDK_BUTTON_MOTION_MASK        |
                           GDK_BUTTON1_MOTION_MASK),
-                      (GdkWindow *) NULL,
-                      (GdkCursor *) NULL,
+                      NULL,
+                      NULL,
                       (unsigned int) GDK_CURRENT_TIME );
 
     win->m_diffX = (int)gdk_event->x;
@@ -204,7 +202,7 @@ static gint gtk_window_button_press_callback( GtkWidget *widget, GdkEventButton
     win->m_oldX = 0;
     win->m_oldY = 0;
 
-    win->m_isDragging = TRUE;
+    win->m_isDragging = true;
 
     return TRUE;
 }
@@ -225,7 +223,7 @@ static gint gtk_window_button_release_callback( GtkWidget *widget, GdkEventButto
 
     if (!win->m_isDragging) return TRUE;
 
-    win->m_isDragging = FALSE;
+    win->m_isDragging = false;
 
     int x = (int)gdk_event->x;
     int y = (int)gdk_event->y;
@@ -336,7 +334,7 @@ bool wxMiniFrame::Create( wxWindow *parent, wxWindowID id, const wxString &title
         m_miniTitle = 13;
 
     m_miniEdge = 3;
-    m_isDragging = FALSE;
+    m_isDragging = false;
     m_oldX = -1;
     m_oldY = -1;
     m_diffX = 0;
@@ -348,11 +346,11 @@ bool wxMiniFrame::Create( wxWindow *parent, wxWindowID id, const wxString &title
     {
         gtk_window_set_transient_for( GTK_WINDOW(m_widget), GTK_WINDOW(m_parent->m_widget) );
     }
-    
+
     if ((style & wxSYSTEM_MENU) &&
         ((style & wxCAPTION) || (style & wxTINY_CAPTION_HORIZ) || (style & wxTINY_CAPTION_VERT)))
     {
-        GdkBitmap *mask = (GdkBitmap*) NULL;
+        GdkBitmap *mask = NULL;
         GdkPixmap *pixmap = gdk_pixmap_create_from_xpm_d
                             (
                                 wxGetRootWindow()->window,
@@ -383,10 +381,8 @@ bool wxMiniFrame::Create( wxWindow *parent, wxWindowID id, const wxString &title
     gtk_signal_connect( GTK_OBJECT(m_mainWidget), "expose_event",
         GTK_SIGNAL_FUNC(gtk_window_own_expose_callback), (gpointer)this );
 
-#ifndef __WXGTK20__
     gtk_signal_connect( GTK_OBJECT(m_mainWidget), "draw",
        GTK_SIGNAL_FUNC(gtk_window_own_draw_callback), (gpointer)this );
-#endif
 
     /* these are required for dragging the mini frame around */
     gtk_signal_connect( GTK_OBJECT(m_mainWidget), "button_press_event",
@@ -398,18 +394,14 @@ bool wxMiniFrame::Create( wxWindow *parent, wxWindowID id, const wxString &title
     gtk_signal_connect( GTK_OBJECT(m_mainWidget), "motion_notify_event",
       GTK_SIGNAL_FUNC(gtk_window_motion_notify_callback), (gpointer)this );
 
-    return TRUE;
+    return true;
 }
 
 void wxMiniFrame::SetTitle( const wxString &title )
 {
     wxFrame::SetTitle( title );
-    
-#ifdef __WXGTK20__
-    gdk_window_invalidate_rect( GTK_PIZZA(m_mainWidget)->bin_window, NULL, true );
-#else
-    gtk_widget_draw( m_mainWidget, (GdkRectangle*) NULL );
-#endif
+
+    gtk_widget_draw( m_mainWidget, NULL );
 }
 
-#endif
+#endif // wxUSE_MINIFRAME