X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/e7445ff8ee26e39fab1e35455e1bef954bdf636f..6ba718d7aee2f519d9146b90424ccec9e2243479:/src/motif/frame.cpp diff --git a/src/motif/frame.cpp b/src/motif/frame.cpp index 6029bd7a32..be67bd55c9 100644 --- a/src/motif/frame.cpp +++ b/src/motif/frame.cpp @@ -4,7 +4,6 @@ // Author: Julian Smart // Modified by: // Created: 17/09/98 -// RCS-ID: $Id$ // Copyright: (c) Julian Smart // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// @@ -20,12 +19,6 @@ // For compilers that support precompilation, includes "wx.h". #include "wx/wxprec.h" -#ifdef __VMS -#define XtDisplay XTDISPLAY -#define XtWindow XTWINDOW -#define XtScreen XTSCREEN -#endif - #include "wx/frame.h" #ifndef WX_PRECOMP @@ -35,11 +28,10 @@ #include "wx/menu.h" #include "wx/icon.h" #include "wx/settings.h" + #include "wx/toolbar.h" + #include "wx/statusbr.h" #endif -#include "wx/statusbr.h" -#include "wx/toolbar.h" - #ifdef __VMS__ #pragma message disable nosimpint #endif @@ -98,8 +90,6 @@ BEGIN_EVENT_TABLE(wxFrame, wxFrameBase) EVT_SYS_COLOUR_CHANGED(wxFrame::OnSysColourChanged) END_EVENT_TABLE() -IMPLEMENT_DYNAMIC_CLASS(wxFrame, wxTopLevelWindow) - // ============================================================================ // implementation // ============================================================================ @@ -131,11 +121,6 @@ bool wxFrame::Create(wxWindow *parent, name ) ) return false; - m_backgroundColour = - wxSystemSettings::GetColour(wxSYS_COLOUR_APPWORKSPACE); - m_foregroundColour = *wxBLACK; - m_font = wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT); - int x = pos.x, y = pos.y; int width = size.x, height = size.y; @@ -181,17 +166,14 @@ bool wxFrame::Create(wxWindow *parent, if (height > -1) XtVaSetValues((Widget) m_frameShell, XmNheight, height, NULL); - ChangeFont(false); - - ChangeBackgroundColour(); - + PostCreation(); PreResize(); wxSize newSize(width, height); wxSizeEvent sizeEvent(newSize, GetId()); sizeEvent.SetEventObject(this); - GetEventHandler()->ProcessEvent(sizeEvent); + HandleWindowEvent(sizeEvent); return true; } @@ -268,7 +250,7 @@ bool wxFrame::XmDoCreateTLW(wxWindow* WXUNUSED(parent), wxFrame::~wxFrame() { - m_isBeingDeleted = true; + SendDestroyEvent(); if (m_clientArea) { @@ -282,15 +264,10 @@ wxFrame::~wxFrame() if (m_frameMenuBar) { m_frameMenuBar->DestroyMenuBar(); - delete m_frameMenuBar; - m_frameMenuBar = NULL; + wxDELETE(m_frameMenuBar); } - if (m_frameStatusBar) - { - delete m_frameStatusBar; - m_frameStatusBar = NULL; - } + wxDELETE(m_frameStatusBar); PreDestroy(); @@ -393,12 +370,18 @@ void wxFrame::DoSetClientSize(int width, int height) wxSizeEvent sizeEvent(newSize, GetId()); sizeEvent.SetEventObject(this); - GetEventHandler()->ProcessEvent(sizeEvent); + HandleWindowEvent(sizeEvent); } void wxFrame::DoGetSize(int *width, int *height) const { + if (!m_frameShell) + { + *width = -1; *height = -1; + return; + } + Dimension xx, yy; XtVaGetValues((Widget) m_frameShell, XmNwidth, &xx, XmNheight, &yy, NULL); *width = xx; *height = yy; @@ -455,8 +438,8 @@ void wxFrame::SetTitle(const wxString& title) if( !title.empty() ) XtVaSetValues( (Widget)m_frameShell, - XmNtitle, title.c_str(), - XmNiconName, title.c_str(), + XmNtitle, (const char*)title.mb_str(), + XmNiconName, (const char*)title.mb_str(), NULL ); } @@ -465,7 +448,7 @@ void wxFrame::DoSetIcon(const wxIcon& icon) if (!m_frameShell) return; - if (!icon.Ok() || !icon.GetDrawable()) + if (!icon.IsOk() || !icon.GetDrawable()) return; XtVaSetValues((Widget) m_frameShell, @@ -473,11 +456,6 @@ void wxFrame::DoSetIcon(const wxIcon& icon) NULL); } -void wxFrame::SetIcon(const wxIcon& icon) -{ - SetIcons( wxIconBundle( icon ) ); -} - void wxFrame::SetIcons(const wxIconBundle& icons) { wxFrameBase::SetIcons( icons ); @@ -522,7 +500,7 @@ void wxFrame::SetMenuBar(wxMenuBar *menuBar) } // Currently can't set it twice - // wxASSERT_MSG( (m_frameMenuBar == (wxMenuBar*) NULL), "Cannot set the menubar more than once"); + // wxASSERT_MSG( (m_frameMenuBar == NULL), "Cannot set the menubar more than once"); if (m_frameMenuBar) { @@ -544,7 +522,7 @@ void wxFrame::OnSysColourChanged(wxSysColourChangedEvent& event) { wxSysColourChangedEvent event2; event2.SetEventObject( m_frameStatusBar ); - m_frameStatusBar->ProcessEvent(event2); + m_frameStatusBar->HandleWindowEvent(event2); } // Propagate the event to the non-top-level children @@ -571,13 +549,6 @@ void wxFrame::OnActivate(wxActivateEvent& event) } } -void wxFrame::SendSizeEvent() -{ - wxSizeEvent event(GetSize(), GetId()); - event.SetEventObject(this); - GetEventHandler()->AddPendingEvent(event); -} - #if wxUSE_TOOLBAR wxToolBar* wxFrame::CreateToolBar(long style,