if (m_parent) m_parent->AddChild( this );
PostCreation();
-
+
gtk_widget_realize( m_widget );
+ /* all this is for Motif Window Manager "hints" and is supposed to be
+ recognized by other WM as well. not tested. */
+ long decor = (long) GDK_DECOR_ALL;
+ long func = (long) GDK_FUNC_ALL;
+ if ((m_windowStyle & wxCAPTION) == 0)
+ decor |= GDK_DECOR_TITLE;
+/*
+ if ((m_windowStyle & wxMINIMIZE) == 0)
+ func |= GDK_FUNC_MINIMIZE;
+ if ((m_windowStyle & wxMAXIMIZE) == 0)
+ func |= GDK_FUNC_MAXIMIZE;
+*/
+ if ((m_windowStyle & wxSYSTEM_MENU) == 0)
+ decor |= GDK_DECOR_MENU;
+ if ((m_windowStyle & wxMINIMIZE_BOX) == 0)
+ decor |= GDK_DECOR_MINIMIZE;
+ if ((m_windowStyle & wxMAXIMIZE_BOX) == 0)
+ decor |= GDK_DECOR_MAXIMIZE;
+ if ((m_windowStyle & wxRESIZE_BORDER) == 0)
+ func |= GDK_FUNC_RESIZE;
+ gdk_window_set_decorations(m_widget->window, (GdkWMDecoration)decor);
+ gdk_window_set_functions(m_widget->window, (GdkWMFunction)func);
+
gtk_signal_connect( GTK_OBJECT(m_widget), "size_allocate",
GTK_SIGNAL_FUNC(gtk_dialog_size_callback), (gpointer)this );
void wxDialog::SetTitle( const wxString& title )
{
m_title = title;
- if (m_title.IsNull()) m_title = "";
- gtk_window_set_title( GTK_WINDOW(m_widget), m_title );
+ if (m_title.IsNull()) m_title = _T("");
+ gtk_window_set_title( GTK_WINDOW(m_widget), m_title.mbc_str() );
}
wxString wxDialog::GetTitle() const
// sure to destroy the dialog.
// The default OnCancel (above) simply ends a modal dialog, and hides a modeless dialog.
- static wxList closing;
+ static wxList s_closing;
- if (closing.Member(this))
+ if (s_closing.Member(this))
return; // no loops
- closing.Append(this);
+ s_closing.Append(this);
wxCommandEvent cancelEvent(wxEVT_COMMAND_BUTTON_CLICKED, wxID_CANCEL);
cancelEvent.SetEventObject( this );
GetEventHandler()->ProcessEvent(cancelEvent);
- closing.DeleteObject(this);
+ s_closing.DeleteObject(this);
}
bool wxDialog::Destroy()
void wxDialog::OnSize( wxSizeEvent &WXUNUSED(event) )
{
- wxASSERT_MSG( (m_widget != NULL), "invalid dialog" );
+ wxASSERT_MSG( (m_widget != NULL), _T("invalid dialog") );
if (GetAutoLayout())
{
void wxDialog::DoSetSize( int x, int y, int width, int height, int sizeFlags )
{
- wxASSERT_MSG( (m_widget != NULL), "invalid dialog" );
- wxASSERT_MSG( (m_wxwindow != NULL), "invalid dialog" );
+ wxASSERT_MSG( (m_widget != NULL), _T("invalid dialog") );
+ wxASSERT_MSG( (m_wxwindow != NULL), _T("invalid dialog") );
if (m_resizing) return; /* I don't like recursions */
m_resizing = TRUE;
if ((m_x != old_x) || (m_y != old_y))
{
/* m_sizeSet = FALSE; */
- gtk_widget_set_uposition( m_widget, m_x, m_y );
+ gtk_widget_set_uposition( m_widget, m_x, m_y );
}
}
void wxDialog::Centre( int direction )
{
- wxASSERT_MSG( (m_widget != NULL), "invalid dialog" );
+ wxASSERT_MSG( (m_widget != NULL), _T("invalid dialog") );
int x = 0;
int y = 0;
}
wxWindow::Show( show );
-
+
if (show) InitDialog();
return TRUE;
else
if (m_windowStyle & wxDIALOG_MODAL) m_windowStyle -= wxDIALOG_MODAL;
*/
- wxFAIL_MSG( "wxDialog:SetModal obsolete now" );
+ wxFAIL_MSG( _T("wxDialog:SetModal obsolete now") );
}
int wxDialog::ShowModal()
{
if (IsModal())
{
- wxFAIL_MSG( "wxDialog:ShowModal called twice" );
+ wxFAIL_MSG( _T("wxDialog:ShowModal called twice") );
return GetReturnCode();
}
-
+
Show( TRUE );
m_modalShowing = TRUE;
if (!IsModal())
{
- wxFAIL_MSG( "wxDialog:EndModal called twice" );
+ wxFAIL_MSG( _T("wxDialog:EndModal called twice") );
return;
}