- GtkWidget *close_button = gtk_button_new_with_label( "x" );
-
- gtk_myfixed_put( GTK_MYFIXED(m_mainWidget), close_button, 4, 4 );
- gtk_widget_set_usize( close_button, 12, 11 );
-
- gtk_widget_show( close_button );
-
- gtk_signal_connect( GTK_OBJECT(close_button), "clicked",
- GTK_SIGNAL_FUNC(gtk_button_clicked_callback), (gpointer*)this );
-
+ // borders and title are on a GtkFixed between m_widget and m_mainWidget
+ GtkWidget* fixed = gtk_fixed_new();
+ gtk_fixed_set_has_window((GtkFixed*)fixed, true);
+ gtk_widget_add_events(fixed,
+ GDK_POINTER_MOTION_MASK |
+ GDK_POINTER_MOTION_HINT_MASK |
+ GDK_BUTTON_MOTION_MASK |
+ GDK_BUTTON_PRESS_MASK |
+ GDK_BUTTON_RELEASE_MASK |
+ GDK_LEAVE_NOTIFY_MASK);
+ gtk_widget_show(fixed);
+ gtk_widget_reparent(m_mainWidget, fixed);
+ gtk_container_add((GtkContainer*)m_widget, fixed);
+ gtk_fixed_move((GtkFixed*)fixed, m_mainWidget, m_miniEdge, m_miniTitle + m_miniEdge);
+ g_signal_connect(fixed, "size_allocate", G_CALLBACK(size_allocate), this);
+
+ m_gdkDecor = 0;
+ m_gdkFunc = 0;
+ if (style & wxRESIZE_BORDER)
+ m_gdkFunc = GDK_FUNC_RESIZE;
+
+ if (m_parent && (GTK_IS_WINDOW(m_parent->m_widget)))
+ {
+ gtk_window_set_transient_for( GTK_WINDOW(m_widget), GTK_WINDOW(m_parent->m_widget) );
+ }
+
+ if ((style & wxCLOSE_BOX) &&
+ ((style & wxCAPTION) || (style & wxTINY_CAPTION_HORIZ) || (style & wxTINY_CAPTION_VERT)))
+ {
+ wxImage img = wxBitmap((const char*)close_bits, 16, 16).ConvertToImage();
+ img.Replace(0,0,0,123,123,123);
+ img.SetMaskColour(123,123,123);
+ m_closeButton = wxBitmap( img );
+ }
+