"Message box text", wxYES_NO|wxCANCEL);
dialog.ShowModal();
-#endif
+
::wxMessageBox("MsgBox with a really long long string",
"this is the text", wxYES_NO|wxICON_EXCLAMATION);
+
+#endif
+ ::wxMessageBox("Short",
+ "This is the text", wxYES_NO|wxICON_EXCLAMATION);
}
void MyFrame::TextEntry(wxCommandEvent& WXUNUSED(event) )
// Find the bounding box and set own size
int maxX = 0;
int maxY = 0;
+
wxNode *node = GetChildren().First();
while (node)
{
maxX = (x + width);
if ((y+height) > maxY)
maxY = (y + height);
+
node = node->Next();
}
SetSize(GetBorderX(), GetBorderY(), maxX, maxY);
-
+
// If this is the only sizer for the parent, size the parent to this sizer.
if ( m_sizerParent && (m_sizerParent->GetSizer() == this) )
m_sizerParent->SetClientSize(maxX + 2*GetBorderX(), maxY + 2*GetBorderY());
int currentY = borderY;
int maxX = currentX;
int maxY = currentY;
-
+
wxNode *node = GetChildren().First();
while (node)
{
wxSizer *topSizer = new wxSizer(this, wxSizerShrink);
topSizer->SetBorder(10, 10);
+ // message sizer at the top
wxRowColSizer *messageSizer = new wxRowColSizer(topSizer, wxSIZER_COLS, 100);
messageSizer->SetName(_T("messageSizer"));
wxList messageList;
wxSplitMessage2(message, &messageList, this, messageSizer);
- // Insert a spacer
+ // spacer size in the middle
wxSpacingSizer *spacingSizer = new wxSpacingSizer(topSizer, wxBelow, messageSizer, 20);
- wxRowColSizer *buttonSizer = new wxRowColSizer(topSizer, wxSIZER_ROWS);
+ // row size at the bottom
+ wxRowColSizer *buttonSizer = new wxRowColSizer(topSizer, wxSIZER_ROWS );
buttonSizer->SetName(_T("buttonSizer"));
buttonSizer->SetSpacing(12,0);
c->width.AsIs ();
c->height.AsIs ();
c->top.Below (spacingSizer);
- c->centreX.SameAs (spacingSizer, wxCentreX);
+ c->left.Absolute (10);
+// c->centreX.SameAs (spacingSizer, wxCentreX);
buttonSizer->SetConstraints(c);
-
+
wxButton *ok = (wxButton *) NULL;
wxButton *cancel = (wxButton *) NULL;
wxButton *yes = (wxButton *) NULL;
}
Layout();
+
Centre(wxBOTH);
wxEndBusyCursor();
return FALSE;
}
+//-----------------------------------------------------------------------------
+// "map" from m_widget
+//-----------------------------------------------------------------------------
+
+static gint
+gtk_dialog_map_callback( GtkWidget *widget, wxDialog *win )
+{
+ gtk_widget_set_uposition( widget, win->m_x, win->m_y );
+
+ return FALSE;
+}
+
//-----------------------------------------------------------------------------
// wxDialog
//-----------------------------------------------------------------------------
been realized, so we do this directly after realization */
gtk_signal_connect( GTK_OBJECT(m_widget), "realize",
GTK_SIGNAL_FUNC(gtk_dialog_realized_callback), (gpointer) this );
-
+
+ /* we set the position of the window after the map event. setting it
+ before has no effect (with KWM) */
+ gtk_signal_connect( GTK_OBJECT(m_widget), "map",
+ GTK_SIGNAL_FUNC(gtk_dialog_map_callback), (gpointer) this );
+
/* the user resized the frame by dragging etc. */
gtk_signal_connect( GTK_OBJECT(m_widget), "size_allocate",
GTK_SIGNAL_FUNC(gtk_dialog_size_callback), (gpointer)this );
{
if ((m_x != old_x) || (m_y != old_y))
{
- /* m_sizeSet = FALSE; */
+ /* we set the position here and when showing the dialog
+ for the first time in idle time */
gtk_widget_set_uposition( m_widget, m_x, m_y );
}
}
if ((m_width != old_width) || (m_height != old_height))
{
+ /* actual resizing is deferred to GtkOnSize in idle time and
+ when showing the dialog */
m_sizeSet = FALSE;
}
GtkOnSize( m_x, m_y, m_width, m_height );
}
- wxWindow::Show( show );
+ if (show != m_isShown)
+ {
+ if (show)
+ {
+ gtk_widget_show( m_widget );
+ }
+ else
+ gtk_widget_hide( m_widget );
+
+ m_isShown = show;
+ }
if (show) InitDialog();
win->SetIcon( icon );
}
- if (!win->m_sizeSet)
- {
- /* by calling GtkOnSize here, we don't have to call
- either after showing the frame, which would entail
- much ugly flicker or from within the size_allocate
- handler, because GTK 1.1.X forbids that. */
+ return FALSE;
+}
+
+//-----------------------------------------------------------------------------
+// "map" from m_widget
+//-----------------------------------------------------------------------------
- win->GtkOnSize( win->m_x, win->m_y, win->m_width, win->m_height );
- }
+static gint
+gtk_frame_map_callback( GtkWidget *widget, wxFrame *win )
+{
+ gtk_widget_set_uposition( widget, win->m_x, win->m_y );
return FALSE;
}
gtk_signal_connect( GTK_OBJECT(m_widget), "realize",
GTK_SIGNAL_FUNC(gtk_frame_realized_callback), (gpointer) this );
+ /* we set the position of the window after the map event. setting it
+ before has no effect (with KWM) */
+ gtk_signal_connect( GTK_OBJECT(m_widget), "map",
+ GTK_SIGNAL_FUNC(gtk_frame_map_callback), (gpointer) this );
+
/* the user resized the frame by dragging etc. */
gtk_signal_connect( GTK_OBJECT(m_widget), "size_allocate",
GTK_SIGNAL_FUNC(gtk_frame_size_callback), (gpointer)this );
{
wxASSERT_MSG( (m_widget != NULL), _T("invalid frame") );
-#if 0
if (show && !m_sizeSet)
{
/* by calling GtkOnSize here, we don't have to call
GtkOnSize( m_x, m_y, m_width, m_height );
}
-#endif
return wxWindow::Show( show );
}
{
if ((m_x != old_x) || (m_y != old_y))
{
- /* m_sizeSet = FALSE; */
- gtk_widget_set_uposition( m_widget, m_x, m_y );
+ /* we set the size here and in gtk_frame_map_callback */
+ gtk_widget_set_uposition( m_widget, m_x, m_y );
}
}
myfixed = GTK_MYFIXED (widget);
+ widget->allocation = *allocation;
#if (GTK_MINOR_VERSION > 0)
if (myfixed->shadow_type == GTK_SHADOW_NONE)
border = 0;
border = 0;
#endif
- widget->allocation = *allocation;
if (GTK_WIDGET_REALIZED (widget))
{
gdk_window_move_resize( widget->window,
return FALSE;
}
+//-----------------------------------------------------------------------------
+// "map" from m_widget
+//-----------------------------------------------------------------------------
+
+static gint
+gtk_dialog_map_callback( GtkWidget *widget, wxDialog *win )
+{
+ gtk_widget_set_uposition( widget, win->m_x, win->m_y );
+
+ return FALSE;
+}
+
//-----------------------------------------------------------------------------
// wxDialog
//-----------------------------------------------------------------------------
been realized, so we do this directly after realization */
gtk_signal_connect( GTK_OBJECT(m_widget), "realize",
GTK_SIGNAL_FUNC(gtk_dialog_realized_callback), (gpointer) this );
-
+
+ /* we set the position of the window after the map event. setting it
+ before has no effect (with KWM) */
+ gtk_signal_connect( GTK_OBJECT(m_widget), "map",
+ GTK_SIGNAL_FUNC(gtk_dialog_map_callback), (gpointer) this );
+
/* the user resized the frame by dragging etc. */
gtk_signal_connect( GTK_OBJECT(m_widget), "size_allocate",
GTK_SIGNAL_FUNC(gtk_dialog_size_callback), (gpointer)this );
{
if ((m_x != old_x) || (m_y != old_y))
{
- /* m_sizeSet = FALSE; */
+ /* we set the position here and when showing the dialog
+ for the first time in idle time */
gtk_widget_set_uposition( m_widget, m_x, m_y );
}
}
if ((m_width != old_width) || (m_height != old_height))
{
+ /* actual resizing is deferred to GtkOnSize in idle time and
+ when showing the dialog */
m_sizeSet = FALSE;
}
GtkOnSize( m_x, m_y, m_width, m_height );
}
- wxWindow::Show( show );
+ if (show != m_isShown)
+ {
+ if (show)
+ {
+ gtk_widget_show( m_widget );
+ }
+ else
+ gtk_widget_hide( m_widget );
+
+ m_isShown = show;
+ }
if (show) InitDialog();
win->SetIcon( icon );
}
- if (!win->m_sizeSet)
- {
- /* by calling GtkOnSize here, we don't have to call
- either after showing the frame, which would entail
- much ugly flicker or from within the size_allocate
- handler, because GTK 1.1.X forbids that. */
+ return FALSE;
+}
+
+//-----------------------------------------------------------------------------
+// "map" from m_widget
+//-----------------------------------------------------------------------------
- win->GtkOnSize( win->m_x, win->m_y, win->m_width, win->m_height );
- }
+static gint
+gtk_frame_map_callback( GtkWidget *widget, wxFrame *win )
+{
+ gtk_widget_set_uposition( widget, win->m_x, win->m_y );
return FALSE;
}
gtk_signal_connect( GTK_OBJECT(m_widget), "realize",
GTK_SIGNAL_FUNC(gtk_frame_realized_callback), (gpointer) this );
+ /* we set the position of the window after the map event. setting it
+ before has no effect (with KWM) */
+ gtk_signal_connect( GTK_OBJECT(m_widget), "map",
+ GTK_SIGNAL_FUNC(gtk_frame_map_callback), (gpointer) this );
+
/* the user resized the frame by dragging etc. */
gtk_signal_connect( GTK_OBJECT(m_widget), "size_allocate",
GTK_SIGNAL_FUNC(gtk_frame_size_callback), (gpointer)this );
{
wxASSERT_MSG( (m_widget != NULL), _T("invalid frame") );
-#if 0
if (show && !m_sizeSet)
{
/* by calling GtkOnSize here, we don't have to call
GtkOnSize( m_x, m_y, m_width, m_height );
}
-#endif
return wxWindow::Show( show );
}
{
if ((m_x != old_x) || (m_y != old_y))
{
- /* m_sizeSet = FALSE; */
- gtk_widget_set_uposition( m_widget, m_x, m_y );
+ /* we set the size here and in gtk_frame_map_callback */
+ gtk_widget_set_uposition( m_widget, m_x, m_y );
}
}
myfixed = GTK_MYFIXED (widget);
+ widget->allocation = *allocation;
#if (GTK_MINOR_VERSION > 0)
if (myfixed->shadow_type == GTK_SHADOW_NONE)
border = 0;
border = 0;
#endif
- widget->allocation = *allocation;
if (GTK_WIDGET_REALIZED (widget))
{
gdk_window_move_resize( widget->window,