/////////////////////////////////////////////////////////////////////////////
-// Name: motif/frame.cpp
+// Name: src/motif/frame.cpp
// Purpose: wxFrame
// Author: Julian Smart
// Modified by:
// headers
// ----------------------------------------------------------------------------
-#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
- #pragma implementation "frame.h"
-#endif
-
// 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"
-#include "wx/statusbr.h"
-#include "wx/toolbar.h"
-#include "wx/menu.h"
-#include "wx/settings.h"
-#include "wx/utils.h"
-#include "wx/log.h"
-#include "wx/app.h"
-#include "wx/icon.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
#ifdef __VMS__
#pragma message disable nosimpint
// ----------------------------------------------------------------------------
extern wxList wxModelessWindows;
-extern wxList wxPendingDelete;
// ----------------------------------------------------------------------------
// wxWin macros
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;
if (height > -1)
XtVaSetValues((Widget) m_frameShell, XmNheight, height, NULL);
- ChangeFont(false);
-
- ChangeBackgroundColour();
-
+ PostCreation();
PreResize();
- wxSizeEvent sizeEvent(wxSize(width, height), GetId());
+ wxSize newSize(width, height);
+ wxSizeEvent sizeEvent(newSize, GetId());
sizeEvent.SetEventObject(this);
- GetEventHandler()->ProcessEvent(sizeEvent);
+ HandleWindowEvent(sizeEvent);
return true;
}
-bool wxFrame::DoCreate(wxWindow* parent,
- wxWindowID id,
- const wxString& title,
- const wxPoint& pos,
- const wxSize& size,
+bool wxFrame::XmDoCreateTLW(wxWindow* WXUNUSED(parent),
+ wxWindowID WXUNUSED(id),
+ const wxString& WXUNUSED(title),
+ const wxPoint& WXUNUSED(pos),
+ const wxSize& WXUNUSED(size),
long style,
const wxString& name)
{
wxFrame::~wxFrame()
{
- m_isBeingDeleted = true;
+ SendDestroyEvent();
if (m_clientArea)
{
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();
{
int sbw, sbh;
m_frameStatusBar->GetSize(& sbw, & sbh);
- yy -= sbh;
+ yy = (Dimension)(yy - sbh);
}
#if wxUSE_TOOLBAR
if (m_frameToolBar)
int tbw, tbh;
m_frameToolBar->GetSize(& tbw, & tbh);
if (m_frameToolBar->GetWindowStyleFlag() & wxTB_VERTICAL)
- xx -= tbw;
+ xx = (Dimension)(xx - tbw);
else
- yy -= tbh;
+ yy = (Dimension)(yy - tbh);
}
#endif // wxUSE_TOOLBAR
}
PreResize();
- wxSizeEvent sizeEvent(wxSize(width, height), GetId());
+ wxSize newSize(width, 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;
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 );
}
NULL);
}
-void wxFrame::SetIcon(const wxIcon& icon)
-{
- SetIcons( wxIconBundle( icon ) );
-}
-
void wxFrame::SetIcons(const wxIconBundle& icons)
{
wxFrameBase::SetIcons( icons );
}
// 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)
{
{
wxSysColourChangedEvent event2;
event2.SetEventObject( m_frameStatusBar );
- m_frameStatusBar->ProcessEvent(event2);
+ m_frameStatusBar->HandleWindowEvent(event2);
}
// Propagate the event to the non-top-level children
}
}
-void wxFrame::SendSizeEvent()
-{
- wxSizeEvent event(GetSize(), GetId());
- event.SetEventObject(this);
- GetEventHandler()->AddPendingEvent(event);
-}
-
#if wxUSE_TOOLBAR
wxToolBar* wxFrame::CreateToolBar(long style,