projects
/
wxWidgets.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Remove string conversion functions and use the wx provided ones.
[wxWidgets.git]
/
src
/
motif
/
frame.cpp
diff --git
a/src/motif/frame.cpp
b/src/motif/frame.cpp
index 22ec6184a32af87bc2785f70a58cd5a2fb01381c..c4c3d3c9521a7e235e3b13052a042cab06e31ed8 100644
(file)
--- a/
src/motif/frame.cpp
+++ b/
src/motif/frame.cpp
@@
-1,5
+1,5
@@
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
-// Name: motif/frame.cpp
+// Name:
src/
motif/frame.cpp
// Purpose: wxFrame
// Author: Julian Smart
// Modified by:
// Purpose: wxFrame
// Author: Julian Smart
// Modified by:
@@
-17,27
+17,22
@@
// headers
// ----------------------------------------------------------------------------
// 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"
+#include "wx/frame.h"
-#ifdef __VMS
-#define XtDisplay XTDISPLAY
-#define XtWindow XTWINDOW
-#define XtScreen XTSCREEN
+#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
#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"
-
#ifdef __VMS__
#pragma message disable nosimpint
#endif
#ifdef __VMS__
#pragma message disable nosimpint
#endif
@@
-86,7
+81,6
@@
static void wxFrameMapProc(Widget frameShell, XtPointer clientData,
// ----------------------------------------------------------------------------
extern wxList wxModelessWindows;
// ----------------------------------------------------------------------------
extern wxList wxModelessWindows;
-extern wxList wxPendingDelete;
// ----------------------------------------------------------------------------
// wxWin macros
// ----------------------------------------------------------------------------
// wxWin macros
@@
-97,8
+91,6
@@
BEGIN_EVENT_TABLE(wxFrame, wxFrameBase)
EVT_SYS_COLOUR_CHANGED(wxFrame::OnSysColourChanged)
END_EVENT_TABLE()
EVT_SYS_COLOUR_CHANGED(wxFrame::OnSysColourChanged)
END_EVENT_TABLE()
-IMPLEMENT_DYNAMIC_CLASS(wxFrame, wxTopLevelWindow)
-
// ============================================================================
// implementation
// ============================================================================
// ============================================================================
// implementation
// ============================================================================
@@
-109,13
+101,13
@@
IMPLEMENT_DYNAMIC_CLASS(wxFrame, wxTopLevelWindow)
void wxFrame::Init()
{
void wxFrame::Init()
{
- m_iconized =
FALSE
;
+ m_iconized =
false
;
//// Motif-specific
m_frameShell = (WXWidget) NULL;
//// Motif-specific
m_frameShell = (WXWidget) NULL;
- m_mainWidget = (WXWidget) NULL;
;
- m_workArea = (WXWidget) NULL;
;
- m_clientArea = (WXWidget) NULL;
;
+ m_mainWidget = (WXWidget) NULL;
+ m_workArea = (WXWidget) NULL;
+ m_clientArea = (WXWidget) NULL;
}
bool wxFrame::Create(wxWindow *parent,
}
bool wxFrame::Create(wxWindow *parent,
@@
-128,12
+120,7
@@
bool wxFrame::Create(wxWindow *parent,
{
if( !wxTopLevelWindow::Create( parent, id, title, pos, size, style,
name ) )
{
if( !wxTopLevelWindow::Create( parent, id, title, pos, size, style,
name ) )
- return FALSE;
-
- m_backgroundColour =
- wxSystemSettings::GetColour(wxSYS_COLOUR_APPWORKSPACE);
- m_foregroundColour = *wxBLACK;
- m_font = wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT);
+ return false;
int x = pos.x, y = pos.y;
int width = size.x, height = size.y;
int x = pos.x, y = pos.y;
int width = size.x, height = size.y;
@@
-168,7
+155,7
@@
bool wxFrame::Create(wxWindow *parent,
"Created frame (0x%p) with work area 0x%p and client "
"area 0x%p", m_mainWidget, m_workArea, m_clientArea);
"Created frame (0x%p) with work area 0x%p and client "
"area 0x%p", m_mainWidget, m_workArea, m_clientArea);
- XtAddEventHandler((Widget) m_clientArea, ExposureMask,F
ALSE
,
+ XtAddEventHandler((Widget) m_clientArea, ExposureMask,F
alse
,
wxUniversalRepaintProc, (XtPointer) this);
if (x > -1)
wxUniversalRepaintProc, (XtPointer) this);
if (x > -1)
@@
-180,26
+167,25
@@
bool wxFrame::Create(wxWindow *parent,
if (height > -1)
XtVaSetValues((Widget) m_frameShell, XmNheight, height, NULL);
if (height > -1)
XtVaSetValues((Widget) m_frameShell, XmNheight, height, NULL);
- ChangeFont(FALSE);
-
- ChangeBackgroundColour();
-
+ PostCreation();
PreResize();
PreResize();
- wxSizeEvent sizeEvent(wxSize(width, height), GetId());
+ wxSize newSize(width, height);
+ wxSizeEvent sizeEvent(newSize, GetId());
sizeEvent.SetEventObject(this);
sizeEvent.SetEventObject(this);
-
GetEventHandler()->Process
Event(sizeEvent);
+
HandleWindow
Event(sizeEvent);
- return
TRUE
;
+ return
true
;
}
}
-bool wxFrame::DoCreate( wxWindow* parent, wxWindowID id,
- const wxString& title,
- const wxPoint& pos,
- const wxSize& size,
- long style,
- const wxString& name )
+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)
{
Widget frameShell;
{
Widget frameShell;
@@
-212,7
+198,7
@@
bool wxFrame::DoCreate( wxWindow* parent, wxWindowID id,
XmNallowShellResize, True,
XmNdeleteResponse, XmDO_NOTHING,
XmNmappedWhenManaged, False,
XmNallowShellResize, True,
XmNdeleteResponse, XmDO_NOTHING,
XmNmappedWhenManaged, False,
- XmNiconic, (style & wxICONIZE) ? T
RUE : FALSE
,
+ XmNiconic, (style & wxICONIZE) ? T
rue : False
,
NULL);
m_frameShell = (WXWidget)frameShell;
NULL);
m_frameShell = (WXWidget)frameShell;
@@
-260,46
+246,32
@@
bool wxFrame::DoCreate( wxWindow* parent, wxWindowID id,
wxModelessWindows.Append( this );
wxModelessWindows.Append( this );
- return
TRUE
;
+ return
true
;
}
wxFrame::~wxFrame()
{
}
wxFrame::~wxFrame()
{
-
m_isBeingDeleted = TRUE
;
+
SendDestroyEvent()
;
if (m_clientArea)
{
if (m_clientArea)
{
- XtRemoveEventHandler((Widget) m_clientArea, ExposureMask, F
ALSE
,
+ XtRemoveEventHandler((Widget) m_clientArea, ExposureMask, F
alse
,
wxUniversalRepaintProc, (XtPointer) this);
}
if (GetMainWidget())
wxUniversalRepaintProc, (XtPointer) this);
}
if (GetMainWidget())
- Show(
FALSE
);
+ Show(
false
);
if (m_frameMenuBar)
{
m_frameMenuBar->DestroyMenuBar();
if (m_frameMenuBar)
{
m_frameMenuBar->DestroyMenuBar();
-
- // Hack to stop core dump on Ultrix, OSF, for some strange reason.
-#if MOTIF_MENUBAR_DELETE_FIX
- GetMenuBar()->SetMainWidget((WXWidget) NULL);
-#endif
- delete m_frameMenuBar;
- m_frameMenuBar = NULL;
+ wxDELETE(m_frameMenuBar);
}
}
- if (m_frameStatusBar)
- {
- delete m_frameStatusBar;
- m_frameStatusBar = NULL;
- }
+ wxDELETE(m_frameStatusBar);
PreDestroy();
PreDestroy();
- DoDestroy();
-}
-void wxFrame::DoDestroy()
-{
Widget frameShell = (Widget)GetShellWidget();
if( frameShell )
Widget frameShell = (Widget)GetShellWidget();
if( frameShell )
@@
-340,7
+312,7
@@
void wxFrame::DoGetClientSize(int *x, int *y) const
{
int sbw, sbh;
m_frameStatusBar->GetSize(& sbw, & sbh);
{
int sbw, sbh;
m_frameStatusBar->GetSize(& sbw, & sbh);
- yy
-= sbh
;
+ yy
= (Dimension)(yy - sbh)
;
}
#if wxUSE_TOOLBAR
if (m_frameToolBar)
}
#if wxUSE_TOOLBAR
if (m_frameToolBar)
@@
-348,16
+320,21
@@
void wxFrame::DoGetClientSize(int *x, int *y) const
int tbw, tbh;
m_frameToolBar->GetSize(& tbw, & tbh);
if (m_frameToolBar->GetWindowStyleFlag() & wxTB_VERTICAL)
int tbw, tbh;
m_frameToolBar->GetSize(& tbw, & tbh);
if (m_frameToolBar->GetWindowStyleFlag() & wxTB_VERTICAL)
- xx
-= tbw
;
+ xx
= (Dimension)(xx - tbw)
;
else
else
- yy
-= tbh
;
+ yy
= (Dimension)(yy - tbh)
;
}
#endif // wxUSE_TOOLBAR
}
#endif // wxUSE_TOOLBAR
- *x = xx; *y = yy;
+
+//CE found a call here with NULL y pointer
+ if (x)
+ *x = xx;
+ if (y)
+ *y = yy;
}
// Set the client size (i.e. leave the calculation of borders etc.
}
// Set the client size (i.e. leave the calculation of borders etc.
-// to wxWi
ndow
s)
+// to wxWi
dget
s)
void wxFrame::DoSetClientSize(int width, int height)
{
// Calculate how large the new main window should be
void wxFrame::DoSetClientSize(int width, int height)
{
// Calculate how large the new main window should be
@@
-390,15
+367,22
@@
void wxFrame::DoSetClientSize(int width, int height)
}
PreResize();
}
PreResize();
- wxSizeEvent sizeEvent(wxSize(width, height), GetId());
+ wxSize newSize(width, height);
+ wxSizeEvent sizeEvent(newSize, GetId());
sizeEvent.SetEventObject(this);
sizeEvent.SetEventObject(this);
-
GetEventHandler()->Process
Event(sizeEvent);
+
HandleWindow
Event(sizeEvent);
}
void wxFrame::DoGetSize(int *width, int *height) const
{
}
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;
Dimension xx, yy;
XtVaGetValues((Widget) m_frameShell, XmNwidth, &xx, XmNheight, &yy, NULL);
*width = xx; *height = yy;
@@
-423,8
+407,8
@@
void wxFrame::DoSetSize(int x, int y, int width, int height, int WXUNUSED(sizeFl
bool wxFrame::Show( bool show )
{
bool wxFrame::Show( bool show )
{
- if( !wx
TopLevelWindowMotif
::Show( show ) )
- return
FALSE
;
+ if( !wx
WindowBase
::Show( show ) )
+ return
false
;
m_isShown = show;
m_isShown = show;
@@
-435,15
+419,14
@@
bool wxFrame::Show( bool show )
SetVisibleStatus(show);
if (show)
{
SetVisibleStatus(show);
if (show)
{
- XtMapWidget (shell);
- XRaiseWindow (XtDisplay(shell), XtWindow(shell));
+ XtPopup(shell, XtGrabNone);
}
else
{
}
else
{
- Xt
UnmapWidget
(shell);
+ Xt
Popdown
(shell);
}
}
- return
TRUE
;
+ return
true
;
}
void wxFrame::SetTitle(const wxString& title)
}
void wxFrame::SetTitle(const wxString& title)
@@
-456,8
+439,8
@@
void wxFrame::SetTitle(const wxString& title)
if( !title.empty() )
XtVaSetValues( (Widget)m_frameShell,
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 );
}
@@
-466,7
+449,7
@@
void wxFrame::DoSetIcon(const wxIcon& icon)
if (!m_frameShell)
return;
if (!m_frameShell)
return;
- if (!icon.Ok() || !icon.GetDrawable())
+ if (!icon.
Is
Ok() || !icon.GetDrawable())
return;
XtVaSetValues((Widget) m_frameShell,
return;
XtVaSetValues((Widget) m_frameShell,
@@
-474,11
+457,6
@@
void wxFrame::DoSetIcon(const wxIcon& icon)
NULL);
}
NULL);
}
-void wxFrame::SetIcon(const wxIcon& icon)
-{
- SetIcons( wxIconBundle( icon ) );
-}
-
void wxFrame::SetIcons(const wxIconBundle& icons)
{
wxFrameBase::SetIcons( icons );
void wxFrame::SetIcons(const wxIconBundle& icons)
{
wxFrameBase::SetIcons( icons );
@@
-523,7
+501,7
@@
void wxFrame::SetMenuBar(wxMenuBar *menuBar)
}
// Currently can't set it twice
}
// 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)
{
if (m_frameMenuBar)
{
@@
-545,7
+523,7
@@
void wxFrame::OnSysColourChanged(wxSysColourChangedEvent& event)
{
wxSysColourChangedEvent event2;
event2.SetEventObject( m_frameStatusBar );
{
wxSysColourChangedEvent event2;
event2.SetEventObject( m_frameStatusBar );
- m_frameStatusBar->
Process
Event(event2);
+ m_frameStatusBar->
HandleWindow
Event(event2);
}
// Propagate the event to the non-top-level children
}
// 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,
#if wxUSE_TOOLBAR
wxToolBar* wxFrame::CreateToolBar(long style,
@@
-639,7
+610,7
@@
bool wxFrame::PreResize()
PositionStatusBar();
#endif // wxUSE_STATUSBAR
PositionStatusBar();
#endif // wxUSE_STATUSBAR
- return
TRUE
;
+ return
true
;
}
WXWidget wxFrame::GetClientWidget() const
}
WXWidget wxFrame::GetClientWidget() const