X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/de6185e212ebc37ff11ff70278e3c4f68419b097..e68b7b364aff19665e2c6ee8c68266b6f3d56355:/src/motif/frame.cpp diff --git a/src/motif/frame.cpp b/src/motif/frame.cpp index 24c4eb0f9d..c4c3d3c952 100644 --- a/src/motif/frame.cpp +++ b/src/motif/frame.cpp @@ -20,26 +20,19 @@ // 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 #include "wx/log.h" #include "wx/app.h" #include "wx/utils.h" + #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" -#include "wx/menu.h" -#include "wx/settings.h" -#include "wx/icon.h" - #ifdef __VMS__ #pragma message disable nosimpint #endif @@ -88,7 +81,6 @@ static void wxFrameMapProc(Widget frameShell, XtPointer clientData, // ---------------------------------------------------------------------------- extern wxList wxModelessWindows; -extern wxList wxPendingDelete; // ---------------------------------------------------------------------------- // wxWin macros @@ -99,8 +91,6 @@ BEGIN_EVENT_TABLE(wxFrame, wxFrameBase) EVT_SYS_COLOUR_CHANGED(wxFrame::OnSysColourChanged) END_EVENT_TABLE() -IMPLEMENT_DYNAMIC_CLASS(wxFrame, wxTopLevelWindow) - // ============================================================================ // implementation // ============================================================================ @@ -132,11 +122,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; @@ -182,17 +167,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; } @@ -269,7 +251,7 @@ bool wxFrame::XmDoCreateTLW(wxWindow* WXUNUSED(parent), wxFrame::~wxFrame() { - m_isBeingDeleted = true; + SendDestroyEvent(); if (m_clientArea) { @@ -283,15 +265,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(); @@ -394,12 +371,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; @@ -456,8 +439,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 ); } @@ -466,7 +449,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, @@ -474,11 +457,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 ); @@ -523,7 +501,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) { @@ -545,7 +523,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 @@ -572,13 +550,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,