-bool wxMiniFrame::Create( wxWindow *parent, wxWindowID id, const wxString &title,
- const wxPoint &pos, const wxSize &size,
- long style, const wxString &name )
+ GtkPizza *pizza = GTK_PIZZA(widget);
+ if (gdk_event->window != pizza->bin_window) return TRUE;
+
+ int style = win->GetWindowStyle();
+
+ int y = (int)gdk_event->y;
+ int x = (int)gdk_event->x;
+
+ if ((style & wxRESIZE_BORDER) &&
+ (x > win->m_width-14) && (y > win->m_height-14))
+ {
+ GtkWidget *ancestor = gtk_widget_get_toplevel( widget );
+
+ GdkWindow *source = GTK_PIZZA(widget)->bin_window;
+
+ int org_x = 0;
+ int org_y = 0;
+ gdk_window_get_origin( source, &org_x, &org_y );
+
+ gtk_window_begin_resize_drag (GTK_WINDOW (ancestor),
+ GDK_WINDOW_EDGE_SOUTH_EAST,
+ 1,
+ org_x + x,
+ org_y + y,
+ 0);
+
+ return TRUE;
+ }
+
+ if ((style & wxCLOSE_BOX) &&
+ ((style & wxCAPTION) || (style & wxTINY_CAPTION_HORIZ) || (style & wxTINY_CAPTION_VERT)))
+ {
+ if ((y > 3) && (y < 19) && (x > win->m_width-19) && (x < win->m_width-3))
+ {
+ win->Close();
+ return TRUE;
+ }
+ }
+
+ wxClientDC dc(win);
+ dc.SetFont( *wxSMALL_FONT );
+ int height = dc.GetCharHeight() + 1;
+
+
+ if (y > height) return TRUE;
+
+ gdk_window_raise( win->m_widget->window );
+
+ gdk_pointer_grab( widget->window, FALSE,
+ (GdkEventMask)
+ (GDK_BUTTON_PRESS_MASK |
+ GDK_BUTTON_RELEASE_MASK |
+ GDK_POINTER_MOTION_MASK |
+ GDK_POINTER_MOTION_HINT_MASK |
+ GDK_BUTTON_MOTION_MASK |
+ GDK_BUTTON1_MOTION_MASK),
+ (GdkWindow *) NULL,
+ (GdkCursor *) NULL,
+ (unsigned int) GDK_CURRENT_TIME );
+
+ win->m_diffX = x;
+ win->m_diffY = y;
+ win->m_oldX = 0;
+ win->m_oldY = 0;
+
+ win->m_isDragging = true;
+
+ return TRUE;
+}
+}
+
+//-----------------------------------------------------------------------------
+// "button_release_event" of m_mainWidget
+//-----------------------------------------------------------------------------
+
+extern "C" {
+static gint gtk_window_button_release_callback( GtkWidget *widget, GdkEventButton *gdk_event, wxMiniFrame *win )