#include "wx/motif/private.h"
void wxCloseFrameCallback(Widget, XtPointer, XmAnyCallbackStruct *cbs);
-static void wxFrameFocusProc(Widget workArea, XtPointer clientData,
+void wxFrameFocusProc(Widget workArea, XtPointer clientData,
XmAnyCallbackStruct *cbs);
static void wxFrameMapProc(Widget frameShell, XtPointer clientData,
XCrossingEvent * event);
m_visibleStatus = TRUE;
m_title = "";
- SetBackgroundColour(wxSystemSettings::GetSystemColour(wxSYS_COLOUR_APPWORKSPACE));
+ m_backgroundColour = wxSystemSettings::GetSystemColour(wxSYS_COLOUR_APPWORKSPACE);
+ m_foregroundColour = *wxBLACK;
+ m_windowFont = wxSystemSettings::GetSystemFont(wxSYS_DEFAULT_GUI_FONT);
if ( id > -1 )
m_windowId = id;
m_mainWidget = m_frameWidget;
+ ChangeFont(FALSE);
+
// This patch comes from Torsten Liermann lier@lier1.muc.de
if (XmIsMotifWMRunning( (Widget) m_frameShell ))
{
#endif
#endif
+ ChangeBackgroundColour();
+
PreResize();
wxSizeEvent sizeEvent(wxSize(width, height), GetId());
XtDestroyWidget (statusLineWidget);
*/
- wxDeleteWindowFromTable((Widget) m_workArea);
+ if (m_workArea)
+ {
+ wxDeleteWindowFromTable((Widget) m_workArea);
- XtDestroyWidget ((Widget) m_workArea);
- XtDestroyWidget ((Widget) m_frameWidget);
+ XtDestroyWidget ((Widget) m_workArea);
+ }
- wxDeleteWindowFromTable((Widget) m_frameWidget);
+ if (m_frameWidget)
+ {
+ wxDeleteWindowFromTable((Widget) m_frameWidget);
+ XtDestroyWidget ((Widget) m_frameWidget);
+ }
- XtDestroyWidget ((Widget) m_frameShell);
+ if (m_frameShell)
+ XtDestroyWidget ((Widget) m_frameShell);
SetMainWidget((WXWidget) NULL);
if (!child->IsKindOf(CLASSINFO(wxFrame)) &&
!child->IsKindOf(CLASSINFO(wxDialog)))
{
-#if WXDEBUG > 1
- wxDebugMsg("wxFrame::OnActivate: about to set the child's focus.\n");
-#endif
child->SetFocus();
return;
}
return pt;
}
+void wxFrame::ScreenToClient(int *x, int *y) const
+{
+ wxWindow::ScreenToClient(x, y);
+
+ // We may be faking the client origin.
+ // So a window that's really at (0, 30) may appear
+ // (to wxWin apps) to be at (0, 0).
+ wxPoint pt(GetClientAreaOrigin());
+ *x -= pt.x;
+ *y -= pt.y;
+}
+
+void wxFrame::ClientToScreen(int *x, int *y) const
+{
+ // We may be faking the client origin.
+ // So a window that's really at (0, 30) may appear
+ // (to wxWin apps) to be at (0, 0).
+ wxPoint pt1(GetClientAreaOrigin());
+ *x += pt1.x;
+ *y += pt1.y;
+
+ wxWindow::ClientToScreen(x, y);
+}
+
wxToolBar* wxFrame::CreateToolBar(long style, wxWindowID id, const wxString& name)
{
wxCHECK_MSG( m_frameToolBar == NULL, FALSE,
wxToolBar *wxFrame::GetToolBar() const
{ return m_frameToolBar; }
-static void wxFrameFocusProc(Widget workArea, XtPointer clientData,
+void wxFrameFocusProc(Widget workArea, XtPointer clientData,
XmAnyCallbackStruct *cbs)
{
wxFrame *frame = (wxFrame *)clientData;
return m_clientArea;
}
+void wxFrame::ChangeFont(bool keepOriginalSize)
+{
+ // TODO
+}
+
+void wxFrame::ChangeBackgroundColour()
+{
+ // TODO
+}
+
+void wxFrame::ChangeForegroundColour()
+{
+ // TODO
+}
+
void wxCloseFrameCallback(Widget widget, XtPointer client_data, XmAnyCallbackStruct *cbs)
{
wxFrame *frame = (wxFrame *)client_data;
// May delete the frame (with delayed deletion)
frame->GetEventHandler()->ProcessEvent(closeEvent);
}
+