//
if (m_windowStyle & wxCLIP_SIBLINGS )
lStyle |= WS_CLIPSIBLINGS;
+ //
+ // If the parent is a scrolled window the controls must
+ // have this style or they will overlap the scrollbars
+ //
+ if (pParent)
+ if (pParent->IsKindOf(CLASSINFO(wxScrolledWindow)) ||
+ pParent->IsKindOf(CLASSINFO(wxGenericScrolledWindow)))
+ lStyle |= WS_CLIPSIBLINGS;
+
m_hWnd = (WXHWND)::WinCreateWindow( GetHwndOf(pParent) // Parent handle
,WC_BUTTON // A Button class window
,(PSZ)rsLabel.c_str() // Button text
// wxCheckBox
// ----------------------------------------------------------------------------
-bool wxCheckBox::OS2Command(WXUINT WXUNUSED(param), WXWORD WXUNUSED(id))
+bool wxCheckBox::OS2Command(
+ WXUINT WXUNUSED(uParam)
+, WXWORD WXUNUSED(wId)
+)
{
- wxCommandEvent event(wxEVT_COMMAND_CHECKBOX_CLICKED, m_windowId);
- event.SetInt(GetValue());
- event.SetEventObject(this);
- ProcessCommand(event);
+ wxCommandEvent rEvent( wxEVT_COMMAND_CHECKBOX_CLICKED
+ ,m_windowId
+ );
+ rEvent.SetInt(GetValue());
+ rEvent.SetEventObject(this);
+ ProcessCommand(rEvent);
return TRUE;
-}
-
-// Single check box item
-bool wxCheckBox::Create(wxWindow *parent, wxWindowID id, const wxString& label,
- const wxPoint& pos,
- const wxSize& size, long style,
+} // end of wxCheckBox::OS2Command
+
+bool wxCheckBox::Create(
+ wxWindow* pParent
+, wxWindowID vId
+, const wxString& rsLabel
+, const wxPoint& rPos
+, const wxSize& rSize
+, long lStyle
#if wxUSE_VALIDATORS
- const wxValidator& validator,
+, const wxValidator& rValidator
#endif
- const wxString& name)
+, const wxString& rsName
+)
{
- SetName(name);
+ SetName(rsName);
#if wxUSE_VALIDATORS
- SetValidator(validator);
+ SetValidator(rValidator);
#endif
- if (parent) parent->AddChild(this);
+ if (pParent)
+ pParent->AddChild(this);
- SetBackgroundColour(parent->GetBackgroundColour()) ;
- SetForegroundColour(parent->GetForegroundColour()) ;
+ SetBackgroundColour(pParent->GetBackgroundColour());
+ SetForegroundColour(pParent->GetForegroundColour());
+ m_windowStyle = lStyle;
- m_windowStyle = style;
+ wxString sLabel = rsLabel;
- wxString Label = label;
- if (Label == wxT(""))
- Label = wxT(" "); // Apparently needed or checkbox won't show
+ if (sLabel == wxT(""))
+ sLabel = wxT(" "); // Apparently needed or checkbox won't show
- if ( id == -1 )
+ if (vId == -1 )
m_windowId = NewControlId();
else
- m_windowId = id;
-
- int x = pos.x;
- int y = pos.y;
- int width = size.x;
- int height = size.y;
-
- // TODO: create checkbox
-
+ m_windowId = vId;
+
+ int nX = rPos.x;
+ int nY = rPos.y;
+ int nWidth = rSize.x;
+ int nHeight = rSize.y;
+ long lSstyle = 0L;
+
+ lSstyle = BS_AUTOCHECKBOX |
+ WS_TABSTOP |
+ WS_VISIBLE;
+ if (lStyle & wxCLIP_SIBLINGS )
+ lSstyle |= WS_CLIPSIBLINGS;
+
+ //
+ // If the parent is a scrolled window the controls must
+ // have this style or they will overlap the scrollbars
+ //
+ if (pParent)
+ if (pParent->IsKindOf(CLASSINFO(wxScrolledWindow)) ||
+ pParent->IsKindOf(CLASSINFO(wxGenericScrolledWindow)))
+ lSstyle |= WS_CLIPSIBLINGS;
+
+ m_hWnd = (WXHWND)::WinCreateWindow ( GetHwndOf(pParent)
+ ,WC_BUTTON
+ ,rsLabel.c_str()
+ ,lSstyle
+ ,0, 0, 0, 0
+ ,GetWinHwnd(pParent)
+ ,HWND_TOP
+ ,(HMENU)m_windowId
+ ,NULL
+ ,NULL
+ );
+
+ //
// Subclass again for purposes of dialog editing mode
+ //
SubclassWin(m_hWnd);
LONG lColor = (LONG)m_backgroundColour.GetPixel();
,(PVOID)&lColor
);
- SetFont(parent->GetFont());
-
- SetSize(x, y, width, height);
+ SetFont(pParent->GetFont());
- return FALSE;
-}
+ SetSize( nX
+ ,nY
+ ,nWidth
+ ,nHeight
+ );
+ return TRUE;
+} // end of wxCheckBox::Create
-void wxCheckBox::SetLabel(const wxString& label)
+void wxCheckBox::SetLabel(
+ const wxString& rsLabel
+)
{
- // TODO
-}
+ ::WinSetWindowText(GetHwnd(), rsLabel.c_str());
+} // end of wxCheckBox::SetLabel
wxSize wxCheckBox::DoGetBestSize() const
{
- int wCheckbox, hCheckbox;
+ static int nCheckSize = 0;
+
+ if (!nCheckSize)
+ {
+ wxScreenDC vDc;
+
+ vDc.SetFont(wxSystemSettings::GetSystemFont(wxSYS_DEFAULT_GUI_FONT));
+
+ //
+ // The height of a standard button in the dialog units is 8,
+ // translate this to pixels (as one dialog unit is precisely equal to
+ // 8 character heights, it's just the char height)
+ //
+ nCheckSize = vDc.GetCharHeight();
+ }
- wxString str = wxGetWindowText(GetHWND());
+ int nWidthCheckbox;
+ int nHeightCheckbox;
+ wxString sStr = wxGetWindowText(GetHWND());
- if ( !str.IsEmpty() )
+ if (!sStr.IsEmpty())
{
- GetTextExtent(str, &wCheckbox, &hCheckbox);
- wCheckbox += RADIO_SIZE;
+ GetTextExtent( sStr
+ ,&nWidthCheckbox
+ ,&nHeightCheckbox
+ );
+ nWidthCheckbox += nCheckSize + GetCharWidth();
- if ( hCheckbox < RADIO_SIZE )
- hCheckbox = RADIO_SIZE;
+ if (nHeightCheckbox < nCheckSize)
+ nHeightCheckbox = nCheckSize;
}
else
{
- wCheckbox = RADIO_SIZE;
- hCheckbox = RADIO_SIZE;
+ nWidthCheckbox = nCheckSize;
+ nHeightCheckbox = nCheckSize;
}
- return wxSize(wCheckbox, hCheckbox);
-}
+ return wxSize( nWidthCheckbox
+ ,nHeightCheckbox
+ );
+} // end of wxCheckBox::DoGetBestSize
-void wxCheckBox::SetValue(bool val)
+void wxCheckBox::SetValue(
+ bool bValue
+)
{
- // TODO
-}
+ ::WinSendMsg(GetHwnd(), BM_SETCHECK, (MPARAM)bValue, 0);
+} // end of wxCheckBox::SetValue
#ifndef BST_CHECKED
#define BST_CHECKED 0x0001
bool wxCheckBox::GetValue() const
{
- // TODO
- return FALSE;
-}
+ return((LONGFROMMR(::WinSendMsg(GetHwnd(), BM_QUERYCHECK, (MPARAM)0, (MPARAM)0)) == 1L));
+} // end of wxCheckBox::GetValue
-WXHBRUSH wxCheckBox::OnCtlColor(WXHDC pDC, WXHWND pWnd, WXUINT nCtlColor,
- WXUINT message, WXWPARAM wParam, WXLPARAM lParam)
+void wxCheckBox::Command (
+ wxCommandEvent& rEvent
+)
{
- // TODO:
- /*
-#if wxUSE_CTL3D
- if ( m_useCtl3D )
- {
- HBRUSH hbrush = Ctl3dCtlColorEx(message, wParam, lParam);
-
- return (WXHBRUSH) hbrush;
- }
-#endif
-
- if (GetParent()->GetTransparentBackground())
- SetBkMode((HDC) pDC, TRANSPARENT);
- else
- SetBkMode((HDC) pDC, OPAQUE);
-
- ::SetBkColor((HDC) pDC, RGB(GetBackgroundColour().Red(), GetBackgroundColour().Green(), GetBackgroundColour().Blue()));
- ::SetTextColor((HDC) pDC, RGB(GetForegroundColour().Red(), GetForegroundColour().Green(), GetForegroundColour().Blue()));
-
-*/
-
- wxBrush *backgroundBrush = wxTheBrushList->FindOrCreateBrush(GetBackgroundColour(), wxSOLID);
-
-
- // Note that this will be cleaned up in wxApp::OnIdle, if backgroundBrush
- // has a zero usage count.
-// backgroundBrush->RealizeResource();
- return (WXHBRUSH) backgroundBrush->GetResourceHandle();
-}
-
-void wxCheckBox::Command (wxCommandEvent & event)
-{
- SetValue ((event.GetInt() != 0));
- ProcessCommand (event);
-}
+ SetValue((rEvent.GetInt() != 0));
+ ProcessCommand(rEvent);
+} // end of wxCheckBox:: Command
// ----------------------------------------------------------------------------
// wxBitmapCheckBox
// ----------------------------------------------------------------------------
-bool wxBitmapCheckBox::Create(wxWindow *parent, wxWindowID id, const wxBitmap *label,
- const wxPoint& pos,
- const wxSize& size, long style,
+bool wxBitmapCheckBox::Create(
+ wxWindow* pParent
+, wxWindowID vId
+, const wxBitmap* pLabel
+, const wxPoint& rPos
+, const wxSize& rSize
+, long lStyle
#if wxUSE_VALIDATORS
- const wxValidator& validator,
+, const wxValidator& rValidator
#endif
- const wxString& name)
+, const wxString& rsName
+)
{
- SetName(name);
+ SetName(rsName);
#if wxUSE_VALIDATORS
- SetValidator(validator);
+ SetValidator(rValidator);
#endif
- if (parent) parent->AddChild(this);
+ if (pParent)
+ pParent->AddChild(this);
- SetBackgroundColour(parent->GetBackgroundColour()) ;
- SetForegroundColour(parent->GetForegroundColour()) ;
- m_windowStyle = style;
+ SetBackgroundColour(pParent->GetBackgroundColour()) ;
+ SetForegroundColour(pParent->GetForegroundColour()) ;
+ m_windowStyle = lStyle;
- if ( id == -1 )
+ if (vId == -1)
m_windowId = NewControlId();
else
- m_windowId = id;
+ m_windowId = vId;
- int x = pos.x;
- int y = pos.y;
- int width = size.x;
- int height = size.y;
+ int nX = rPos.x;
+ int nY = rPos.y;
+ int nWidth = rSize.x;
+ int nHeight = rSize.y;
- checkWidth = -1 ;
- checkHeight = -1 ;
+ m_nCheckWidth = -1 ;
+ m_nCheckHeight = -1 ;
// long msStyle = CHECK_FLAGS;
- HWND wx_button = 0; // TODO: Create the bitmap checkbox
+ HWND hButton = 0; // TODO: Create the bitmap checkbox
- m_hWnd = (WXHWND)wx_button;
+ m_hWnd = (WXHWND)hButton;
+ //
// Subclass again for purposes of dialog editing mode
- SubclassWin((WXHWND)wx_button);
-
- SetSize(x, y, width, height);
+ //
+ SubclassWin((WXHWND)hButton);
-// TODO: ShowWindow(wx_button, SW_SHOW);
+ SetSize( nX
+ ,nY
+ ,nWidth
+ ,nHeight
+ );
+ ::WinShowWindow(hButton, TRUE);
return TRUE;
-}
+} // end of wxBitmapCheckBox::Create
-void wxBitmapCheckBox::SetLabel(const wxBitmap& bitmap)
+void wxBitmapCheckBox::SetLabel(
+ const wxBitmap& rBitmap
+)
{
wxFAIL_MSG(wxT("not implemented"));
-}
+} // end of wxBitmapCheckBox::SetLabel
))
return FALSE;
lSstyle = CBS_DROPDOWNLIST |
- WS_TABSTOP |
- WS_VISIBLE;
+ WS_TABSTOP |
+ WS_VISIBLE;
if (lStyle & wxCLIP_SIBLINGS )
lSstyle |= WS_CLIPSIBLINGS;
gfnWndprocEdit = (WXFARPROC)::WinSubclassWindow( (HWND)GetHwnd()
,(PFNWP)wxComboEditWndProc
);
+ ::WinSetWindowULong(GetHwnd(), QWL_USER, (ULONG)this);
return TRUE;
} // end of wxComboBox::Create
, WXDWORD dwExstyle
)
{
+ int nX = rPos.x == -1 ? 0 : rPos.x;
+ int nY = rPos.y == -1 ? 0 : rPos.y;
+ int nW = rSize.x == -1 ? 0 : rSize.x;
+ int nH = rSize.y == -1 ? 0 : rSize.y;
//
// Doesn't do anything at all under OS/2
//
dwExstyle = GetExStyle(dwStyle);
}
- if ( !m_hWnd )
- {
-#ifdef __WXDEBUG__
- wxLogError(wxT("Failed to create a control of class '%s'"), zClassname);
-#endif // DEBUG
+ wxWindow* pParent = GetParent();
+ PSZ zClass;
+ if (!pParent)
return FALSE;
- }
-
- PSZ zClass;
if ((strcmp(zClassname, "COMBOBOX")) == 0)
zClass = WC_COMBOBOX;
else if ((strcmp(zClassname, "STATIC")) == 0)
zClass = WC_STATIC;
dwStyle |= WS_VISIBLE;
- m_hWnd = (WXHWND)::WinCreateWindow( (HWND)GetHwndOf(GetParent()) // Parent window handle
- ,(PSZ)zClassname // Window class
- ,(PSZ)rsLabel.c_str() // Initial Text
- ,(ULONG)dwStyle // Style flags
- ,(LONG)0 // X pos of origin
- ,(LONG)0 // Y pos of origin
- ,(LONG)0 // control width
- ,(LONG)0 // control height
- ,(HWND)GetHwndOf(GetParent()) // owner window handle (same as parent
- ,HWND_TOP // initial z position
- ,(ULONG)GetId() // Window identifier
- ,NULL // no control data
- ,NULL // no Presentation parameters
+
+ //
+ // If the parent is a scrolled window the controls must
+ // have this style or they will overlap the scrollbars
+ //
+ if (pParent)
+ if (pParent->IsKindOf(CLASSINFO(wxScrolledWindow)) ||
+ pParent->IsKindOf(CLASSINFO(wxGenericScrolledWindow)))
+ dwStyle |= WS_CLIPSIBLINGS;
+
+ m_hWnd = (WXHWND)::WinCreateWindow( (HWND)GetHwndOf(pParent) // Parent window handle
+ ,(PSZ)zClass // Window class
+ ,(PSZ)rsLabel.c_str() // Initial Text
+ ,(ULONG)dwStyle // Style flags
+ ,(LONG)0 // X pos of origin
+ ,(LONG)0 // Y pos of origin
+ ,(LONG)0 // control width
+ ,(LONG)0 // control height
+ ,(HWND)GetHwndOf(pParent) // owner window handle (same as parent
+ ,HWND_TOP // initial z position
+ ,(ULONG)GetId() // Window identifier
+ ,NULL // no control data
+ ,NULL // no Presentation parameters
);
+ if ( !m_hWnd )
+ {
+#ifdef __WXDEBUG__
+ wxLogError(wxT("Failed to create a control of class '%s'"), zClassname);
+#endif // DEBUG
+
+ return FALSE;
+ }
//
// Subclass again for purposes of dialog editing mode
//
// Controls use the same font and colours as their parent dialog by default
//
InheritAttributes();
+ if (nW == 0 || nH == 0)
+ SetBestSize(rSize);
return TRUE;
} // end of wxControl::OS2CreateControl
#define wxDIALOG_DEFAULT_WIDTH 500
#define wxDIALOG_DEFAULT_HEIGHT 500
-// Lists to keep track of windows, so we can disable/enable them
-// for modal dialogs
wxWindowList wxModalDialogs;
-wxWindowList wxModelessWindows; // Frames and modeless dialogs
-extern wxList WXDLLEXPORT wxPendingDelete;
- IMPLEMENT_DYNAMIC_CLASS(wxDialog, wxPanel)
+IMPLEMENT_DYNAMIC_CLASS(wxDialog, wxTopLevelWindow)
- BEGIN_EVENT_TABLE(wxDialog, wxPanel)
- EVT_SIZE(wxDialog::OnSize)
- EVT_BUTTON(wxID_OK, wxDialog::OnOK)
- EVT_BUTTON(wxID_APPLY, wxDialog::OnApply)
- EVT_BUTTON(wxID_CANCEL, wxDialog::OnCancel)
- EVT_CHAR_HOOK(wxDialog::OnCharHook)
- EVT_SYS_COLOUR_CHANGED(wxDialog::OnSysColourChanged)
- EVT_CLOSE(wxDialog::OnCloseWindow)
- END_EVENT_TABLE()
+BEGIN_EVENT_TABLE(wxDialog, wxTopLevelWindow)
+ EVT_BUTTON(wxID_OK, wxDialog::OnOK)
+ EVT_BUTTON(wxID_APPLY, wxDialog::OnApply)
+ EVT_BUTTON(wxID_CANCEL, wxDialog::OnCancel)
+ EVT_CHAR_HOOK(wxDialog::OnCharHook)
+ EVT_SYS_COLOUR_CHANGED(wxDialog::OnSysColourChanged)
+ EVT_CLOSE(wxDialog::OnCloseWindow)
+END_EVENT_TABLE()
void wxDialog::Init()
{
HWND hWnd;
Init();
- m_pOldFocus = (wxWindow*)FindFocus();
- SetName(rsName);
- wxTopLevelWindows.Append(this);
- if (pParent)
- pParent->AddChild(this);
- if (vId == -1)
- m_windowId = NewControlId();
- else
- m_windowId = vId;
- if (lX < 0)
- lX = wxDIALOG_DEFAULT_X;
- if (lY < 0)
- lY = wxDIALOG_DEFAULT_Y;
- m_windowStyle = lStyle;
- if (lWidth < 0)
- lWidth = wxDIALOG_DEFAULT_WIDTH;
- if (lHeight < 0)
- lHeight = wxDIALOG_DEFAULT_HEIGHT;
+ SetExtraStyle(GetExtraStyle() | wxTOPLEVEL_EX_DIALOG);
//
- // All dialogs should really have this style
+ // Save focus before doing anything which can potentially change it
//
- m_windowStyle |= wxTAB_TRAVERSAL;
+ m_pOldFocus = FindFocus();
//
- // Allows creation of dialogs with & without captions under MSWindows,
- // resizeable or not (but a resizeable dialog always has caption -
- // otherwise it would look too strange)
+ // All dialogs should really have this style
//
- if (lStyle & wxRESIZE_BORDER )
- zDlg = "wxResizeableDialog";
- else if (lStyle & wxCAPTION )
- zDlg = "wxCaptionDialog";
- else
- zDlg = "wxNoCaptionDialog";
- OS2Create( GetWinHwnd(pParent)
- ,NULL
- ,rsTitle.c_str()
- ,0L
- ,lX
- ,lY
- ,lWidth
- ,lHeight
- ,GetWinHwnd(pParent)
- ,HWND_TOP
- ,(long)m_windowId
- ,NULL
- ,NULL
- );
- hWnd = (HWND)GetHWND();
- if (!hWnd)
- {
+ lStyle |= wxTAB_TRAVERSAL;
+
+ if (!wxTopLevelWindow::Create( pParent
+ ,vId
+ ,rsTitle
+ ,rPos
+ ,rSize
+ ,lStyle
+ ,rsName
+ ))
return FALSE;
- }
- SubclassWin(GetHWND());
- ::WinSetWindowText( hWnd
- ,(PSZ)rsTitle.c_str()
- );
SetFont(wxSystemSettings::GetSystemFont(wxSYS_DEFAULT_GUI_FONT));
return TRUE;
} // end of wxDialog::Create
)
{
if (bFlag)
+ {
m_windowStyle |= wxDIALOG_MODAL ;
- else if ( m_windowStyle & wxDIALOG_MODAL )
- m_windowStyle -= wxDIALOG_MODAL ;
-
- wxModelessWindows.DeleteObject(this);
- if (!bFlag)
- wxModelessWindows.Append(this);
+ wxModelessWindows.DeleteObject(this);
+ }
+ else
+ {
+ m_windowStyle &= ~wxDIALOG_MODAL ;
+ wxModelessWindows.Append(this);
+ }
} // end of wxDialog::SetModal
wxDialog::~wxDialog()
{
m_isBeingDeleted = TRUE;
- wxTopLevelWindows.DeleteObject(this);
Show(FALSE);
- if (!IsModal())
- wxModelessWindows.DeleteObject(this);
-
- //
- // If this is the last top-level window, exit.
- //
- if (wxTheApp && (wxTopLevelWindows.Number() == 0))
- {
- wxTheApp->SetTopWindow(NULL);
-
- if (wxTheApp->GetExitOnFrameDelete())
- {
- ::WinPostMsg(GetHwnd(), WM_QUIT, 0, 0);
- }
- }
} // end of wxDialog::~wxDialog
//
rEvent.Skip();
}
-void wxDialog::Iconize(
- bool WXUNUSED(bIconize)
-)
-{
-} // end of wxDialog::Iconize
-
-bool wxDialog::IsIconized() const
-{
- return FALSE;
-} // end of wxDialog::IsIconized
-
-void wxDialog::DoSetClientSize(
- int nWidth
-, int nHeight
-)
-{
- HWND hWnd = (HWND) GetHWND();
- RECTL vRect;
- RECTL vRect2;
-
- ::WinQueryWindowRect(hWnd, &vRect);
- ::WinQueryWindowRect(hWnd, &vRect2);
-
- LONG lActualWidth = vRect2.xRight - vRect2.xLeft - vRect.xRight + nWidth;
- LONG lActualHeight = vRect2.yTop + vRect2.yTop - vRect.yTop + nHeight;
-
- ::WinSetWindowPos( GetHwnd()
- ,HWND_TOP
- ,(LONG)vRect2.xLeft
- ,(LONG)vRect2.yTop
- ,(LONG)lActualWidth
- ,(LONG)lActualHeight
- ,SWP_SIZE | SWP_MOVE
- );
-
- wxSizeEvent vEvent( wxSize( lActualWidth
- ,lActualHeight
- )
- ,m_windowId
- );
-
- vEvent.SetEventObject( this );
- GetEventHandler()->ProcessEvent(vEvent);
-} // end of wxDialog::DoSetClientSize
-
-void wxDialog::DoGetPosition(
- int* pnX
-, int* pnY
-) const
-{
- RECTL vRect;
-
- ::WinQueryWindowRect(GetHwnd(), &vRect);
- if (pnX)
- *pnX = vRect.xLeft;
- if (pnY)
- *pnY = vRect.yBottom; // OS/2's bottom is windows' top???
-} // end of wxDialog::DoGetPosition
+// ----------------------------------------------------------------------------
+// showing the dialogs
+// ----------------------------------------------------------------------------
bool wxDialog::IsModal() const
{
wxModalDialogs.DeleteObject(this);
}
}
- return FALSE;
+ return TRUE;
} // end of wxDialog::Show
//
Show(FALSE);
} // end of wxDialog::EndModal
+// ----------------------------------------------------------------------------
+// wxWin event handlers
+// ----------------------------------------------------------------------------
+
void wxDialog::OnApply(
wxCommandEvent& rEvent
)
closing.DeleteObject(this);
} // end of wxDialog::OnCloseWindow
-//
-// Destroy the window (delayed, if a managed window)
-//
-bool wxDialog::Destroy()
-{
- wxCHECK_MSG( !wxPendingDelete.Member(this), FALSE,
- _T("wxDialog destroyed twice") );
- wxPendingDelete.Append(this);
- return TRUE;
-} // end of wxDialog::Destroy
-
void wxDialog::OnSysColourChanged(
wxSysColourChangedEvent& rEvent
)
extern wxWindowList wxModelessWindows;
extern wxList WXDLLEXPORT wxPendingDelete;
-extern wxChar wxFrameClassName[];
+extern const wxChar* wxFrameClassName;
#if wxUSE_MENUS_NATIVE
extern wxMenu *wxCurrentPopupMenu;
void wxFrame::Init()
{
- m_bIconized = FALSE;
-
-#if wxUSE_TOOLTIPS
- m_hWndToolTip = 0;
-#endif
- // Data to save/restore when calling ShowFullScreen
- m_lFsStyle = 0L;
- m_lFsOldWindowStyle = 0L;
m_nFsStatusBarFields = 0;
m_nFsStatusBarHeight = 0;
m_nFsToolBarHeight = 0;
- m_bFsIsMaximized = FALSE;
+ m_hWndToolTip = 0L;
m_bWasMinimized = FALSE;
- m_bFsIsShowing = FALSE;
- m_bIsShown = FALSE;
- m_pWinLastFocused = (wxWindow *)NULL;
+ m_pWinLastFocused = NULL;
+
+
+ m_frameMenuBar = NULL;
+ m_frameToolBar = NULL;
+ m_frameStatusBar = NULL;
- m_hFrame = NULL;
- m_hTitleBar = NULL;
- m_hHScroll = NULL;
- m_hVScroll = NULL;
+ m_hTitleBar = NULLHANDLE;
+ m_hHScroll = NULLHANDLE;
+ m_hVScroll = NULLHANDLE;
//
// Initialize SWP's
//
- memset(&m_vSwp, 0, sizeof(SWP));
- memset(&m_vSwpClient, 0, sizeof(SWP));
memset(&m_vSwpTitleBar, 0, sizeof(SWP));
memset(&m_vSwpMenuBar, 0, sizeof(SWP));
memset(&m_vSwpHScroll, 0, sizeof(SWP));
memset(&m_vSwpVScroll, 0, sizeof(SWP));
memset(&m_vSwpStatusBar, 0, sizeof(SWP));
memset(&m_vSwpToolBar, 0, sizeof(SWP));
+ m_bIconized = FALSE;
+
} // end of wxFrame::Init
bool wxFrame::Create(
, const wxString& rsTitle
, const wxPoint& rPos
, const wxSize& rSize
-, long lulStyle
+, long lStyle
, const wxString& rsName
)
{
- int nX = rPos.x;
- int nY = rPos.y;
- int nWidth = rSize.x;
- int nHeight = rSize.y;
- bool bOk = FALSE;
-
- SetName(rsName);
- m_windowStyle = lulStyle;
- m_frameMenuBar = NULL;
-#if wxUSE_TOOLBAR
- m_frameToolBar = NULL;
-#endif //wxUSE_TOOLBAR
-
-#if wxUSE_STATUSBAR
- m_frameStatusBar = NULL;
-#endif //wxUSE_STATUSBAR
-
+ if (!wxTopLevelWindow::Create( pParent
+ ,vId
+ ,rsTitle
+ ,rPos
+ ,rSize
+ ,lStyle
+ ,rsName
+ ))
+ return FALSE;
SetBackgroundColour(wxSystemSettings::GetSystemColour(wxSYS_COLOUR_APPWORKSPACE));
-
- if (vId > -1 )
- m_windowId = vId;
- else
- m_windowId = (int)NewControlId();
-
- if (pParent)
- pParent->AddChild(this);
-
- m_bIconized = FALSE;
-
- if ((m_windowStyle & wxFRAME_FLOAT_ON_PARENT) == 0)
- pParent = NULL;
-
- bOk = OS2Create( m_windowId
- ,pParent
- ,wxFrameClassName
- ,this
- ,rsTitle
- ,nX
- ,nY
- ,nWidth
- ,nHeight
- ,lulStyle
- );
- if (bOk)
- {
- if (!pParent)
- wxTopLevelWindows.Append(this);
- wxModelessWindows.Append(this);
- }
- return(bOk);
+ wxModelessWindows.Append(this);
+ return TRUE;
} // end of wxFrame::Create
wxFrame::~wxFrame()
{
m_isBeingDeleted = TRUE;
-
- wxTopLevelWindows.DeleteObject(this);
-
DeleteAllBars();
-
- if (wxTheApp && (wxTopLevelWindows.Number() == 0))
- {
- wxTheApp->SetTopWindow(NULL);
-
- if (wxTheApp->GetExitOnFrameDelete())
- {
- ::WinPostMsg(NULL, WM_QUIT, 0, 0);
- }
- }
-
- wxModelessWindows.DeleteObject(this);
-
- //
- // For some reason, wxWindows can activate another task altogether
- // when a frame is destroyed after a modal dialog has been invoked.
- // Try to bring the parent to the top.
- //
- // MT:Only do this if this frame is currently the active window, else weird
- // things start to happen.
- //
- if (wxGetActiveWindow() == this)
- {
- if (GetParent() && GetParent()->GetHWND())
- {
- ::WinSetWindowPos( (HWND) GetParent()->GetHWND()
- ,HWND_TOP
- ,0
- ,0
- ,0
- ,0
- ,SWP_ZORDER
- );
- }
- }
} // end of wxFrame::~wxFrame
-//
-// IF we have child controls in the Frame's client we need to alter
-// the y position, because, OS/2 controls are positioned relative to
-// wxWindows orgin (top left) not the OS/2 origin (bottom left)
-void wxFrame::AlterChildPos()
-{
- //
- // OS/2 is the only OS concerned about this
- //
- wxWindow* pChild = NULL;
- wxControl* pCtrl = NULL;
- RECTL vRect;
- SWP vSwp;
-
- ::WinQueryWindowRect(GetHwnd(), &vRect);
- for (wxWindowList::Node* pNode = GetChildren().GetFirst();
- pNode;
- pNode = pNode->GetNext())
- {
- wxWindow* pChild = pNode->GetData();
-
- ::WinQueryWindowPos(pChild->GetHWND(), &vSwp);
- vSwp.y += (vRect.yTop - m_vSwpClient.cy);
- if (pChild->IsKindOf(CLASSINFO(wxControl)))
- {
- pCtrl = wxDynamicCast(pChild, wxControl);
- //
- // Must deal with controls that have margins like ENTRYFIELD. The SWP
- // struct of such a control will have and origin offset from its intended
- // position by the width of the margins.
- //
- vSwp.y -= pCtrl->GetYComp();
- vSwp.x -= pCtrl->GetXComp();
- }
- ::WinSetWindowPos( pChild->GetHWND()
- ,HWND_TOP
- ,vSwp.x
- ,vSwp.y
- ,vSwp.cx
- ,vSwp.cy
- ,SWP_MOVE
- );
- ::WinQueryWindowPos(pChild->GetHWND(), &vSwp);
- pChild = NULL;
- }
-} // end of wxFrame::AlterChildPos
-
//
// Get size *available for subwindows* i.e. excluding menu bar, toolbar etc.
//
, int* pY
) const
{
- RECTL vRect;
- ::WinQueryWindowRect(GetHwnd(), &vRect);
-
+ wxTopLevelWindow::DoGetClientSize( pX
+ ,pY
+ );
//
// No need to use statusbar code as in WIN32 as the FORMATFRAME
// window procedure ensures PM knows about the new frame client
- // size internally. A ::WinQueryWindowRect is all that is needed!
+ // size internally. A ::WinQueryWindowRect (that is called in
+ // wxWindow's GetClient size from above) is all that is needed!
//
-
- if (pX)
- *pX = vRect.xRight - vRect.xLeft;
- if (pY)
- *pY = vRect.yTop - vRect.yBottom;
} // end of wxFrame::DoGetClientSize
//
, int nHeight
)
{
- HWND hWnd = GetHwnd();
- RECTL vRect;
- RECTL vRect2;
-
- ::WinQueryWindowRect(GetHwnd(), &vRect);
- ::WinQueryWindowRect(GetHwnd(), &vRect2);
+ wxStatusBar* pStatusBar = GetStatusBar();
//
- // Find the difference between the entire window (title bar and all)
- // and the client area; add this to the new client size to move the
- // window. Remember OS/2's backwards y coord system!
+ // Statusbars are not part of the OS/2 Client but parent frame
+ // so no statusbar consideration
//
- int nActualWidth = vRect2.xRight - vRect2.xLeft - vRect.xRight;
- int nActualHeight = vRect2.yTop + vRect2.yTop - vRect.yTop;
-
-#if wxUSE_STATUSBAR
- wxStatusBar* pStatusBar = GetStatusBar();
-
- if (pStatusBar && pStatusBar->IsShown())
- {
- nActualHeight += pStatusBar->GetSize().y;
- }
-
-#endif // wxUSE_STATUSBAR
-
- wxPoint vPoint(GetClientAreaOrigin());
-
- nActualWidth += vPoint.x;
- nActualHeight += vPoint.y;
-
- POINTL vPointl;
-
- vPointl.x = vRect2.xLeft;
- vPointl.y = vRect2.yTop;
-
- ::WinSetWindowPos( hWnd
- ,HWND_TOP
- ,vPointl.x
- ,vPointl.y
- ,nActualWidth
- ,nActualHeight
- ,SWP_MOVE | SWP_SIZE | SWP_SHOW
- );
-
- wxSizeEvent vEvent( wxSize( nWidth
- ,nHeight
- )
- ,m_windowId
- );
- vEvent.SetEventObject(this);
- GetEventHandler()->ProcessEvent(vEvent);
+ wxTopLevelWindow::DoSetClientSize( nWidth
+ ,nHeight
+ );
} // end of wxFrame::DoSetClientSize
-void wxFrame::DoGetSize(
- int* pWidth
-, int* pHeight
-) const
-{
- RECTL vRect;
-
- ::WinQueryWindowRect(m_hFrame, &vRect);
- *pWidth = vRect.xRight - vRect.xLeft;
- *pHeight = vRect.yTop - vRect.yBottom;
-} // end of wxFrame::DoGetSize
-
-void wxFrame::DoGetPosition(
- int* pX
-, int* pY
-) const
-{
- RECTL vRect;
- POINTL vPoint;
-
- ::WinQueryWindowRect(m_hFrame, &vRect);
-
- *pX = vRect.xRight - vRect.xLeft;
- *pY = vRect.yTop - vRect.yBottom;
-} // end of wxFrame::DoGetPosition
-
// ----------------------------------------------------------------------------
-// variations around ::ShowWindow()
+// wxFrame: various geometry-related functions
// ----------------------------------------------------------------------------
-void wxFrame::DoShowWindow(
- int bShowCmd
-)
+void wxFrame::Raise()
{
- ::WinShowWindow(m_hFrame, (BOOL)bShowCmd);
- m_bIconized = bShowCmd == SWP_MINIMIZE;
-} // end of wxFrame::DoShowWindow
+ wxFrameBase::Raise();
+ ::WinSetWindowPos( (HWND) GetParent()->GetHWND()
+ ,HWND_TOP
+ ,0
+ ,0
+ ,0
+ ,0
+ ,SWP_ZORDER
+ );
+}
-bool wxFrame::Show(
- bool bShow
-)
+// generate an artificial resize event
+void wxFrame::SendSizeEvent()
{
- int nShowCmd;
- SWP vSwp;
-
- if (bShow)
- {
- nShowCmd = SWP_SHOW;
- }
- else // hide
- {
- nShowCmd = SWP_HIDE;
- }
-
- DoShowWindow(nShowCmd);
-
- if (bShow)
- {
- wxActivateEvent vEvent(wxEVT_ACTIVATE, TRUE, m_windowId);
-
- ::WinQueryWindowPos(m_hFrame, &vSwp);
- m_bIconized = vSwp.fl & SWP_MINIMIZE;
- ::WinQueryWindowPos(m_hWnd, &m_vSwpClient);
- ::WinSendMsg(m_hFrame, WM_UPDATEFRAME, (MPARAM)~0, 0);
- ::WinEnableWindow(m_hFrame, TRUE);
- vEvent.SetEventObject(this);
- GetEventHandler()->ProcessEvent(vEvent);
- }
- else
+ if (!m_bIconized)
{
- //
- // Try to highlight the correct window (the parent)
- //
- if (GetParent())
- {
- HWND hWndParent = GetHwndOf(GetParent());
-
- ::WinQueryWindowPos(hWndParent, &vSwp);
- m_bIconized = vSwp.fl & SWP_MINIMIZE;
- if (hWndParent)
- ::WinSetWindowPos( hWndParent
- ,HWND_TOP
- ,vSwp.x
- ,vSwp.y
- ,vSwp.cx
- ,vSwp.cy
- ,SWP_ZORDER | SWP_ACTIVATE | SWP_SHOW | SWP_MOVE
- );
- ::WinEnableWindow(hWndParent, TRUE);
- }
- }
- return TRUE;
-} // end of wxFrame::Show
-
-void wxFrame::Iconize(
- bool bIconize
-)
-{
- DoShowWindow(bIconize ? SWP_MINIMIZE : SWP_RESTORE);
-} // end of wxFrame::Iconize
-
-void wxFrame::Maximize(
- bool bMaximize)
-{
- DoShowWindow(bMaximize ? SWP_MAXIMIZE : SWP_RESTORE);
-} // end of wxFrame::Maximize
-
-void wxFrame::Restore()
-{
- DoShowWindow(SWP_RESTORE);
-} // end of wxFrame::Restore
-
-bool wxFrame::IsIconized() const
-{
- SWP vSwp;
-
- ::WinQueryWindowPos(m_hFrame, &vSwp);
-
- if (vSwp.fl & SWP_MINIMIZE)
- ((wxFrame*)this)->m_bIconized = TRUE;
- else
- ((wxFrame*)this)->m_bIconized = FALSE;
- return m_bIconized;
-} // end of wxFrame::IsIconized
-
-// Is it maximized?
-bool wxFrame::IsMaximized() const
-{
- SWP vSwp;
- bool bIconic;
-
- ::WinQueryWindowPos(m_hFrame, &vSwp);
- return (vSwp.fl & SWP_MAXIMIZE);
-} // end of wxFrame::IsMaximized
-
-void wxFrame::SetIcon(
- const wxIcon& rIcon
-)
-{
- wxFrameBase::SetIcon(rIcon);
+ RECTL vRect = wxGetWindowRect(GetHwnd());
- if ((m_icon.GetHICON()) != NULLHANDLE)
- {
- ::WinSendMsg( m_hFrame
- ,WM_SETICON
- ,(MPARAM)((HPOINTER)m_icon.GetHICON())
- ,NULL
- );
- ::WinSendMsg( m_hFrame
- ,WM_UPDATEFRAME
- ,(MPARAM)FCF_ICON
- ,(MPARAM)0
- );
+ (void)::WinPostMsg( m_hFrame
+ ,WM_SIZE
+ ,MPFROM2SHORT(vRect.xRight - vRect.xLeft, vRect.yTop - vRect.yBottom)
+ ,MPFROM2SHORT(vRect.xRight - vRect.xLeft, vRect.yTop - vRect.yBottom)
+ );
}
-} // end of wxFrame::SetIcon
+}
#if wxUSE_STATUSBAR
wxStatusBar* wxFrame::OnCreateStatusBar(
//
// Frame window
//
-bool wxFrame::OS2Create(
- int nId
-, wxWindow* pParent
-, const wxChar* zWclass
-, wxWindow* pWxWin
-, const wxChar* zTitle
-, int nX
-, int nY
-, int nWidth
-, int nHeight
-, long ulStyle
-)
-{
- ULONG ulCreateFlags = 0L;
- ULONG ulStyleFlags = 0L;
- ULONG ulExtraFlags = 0L;
- FRAMECDATA vFrameCtlData;
- HWND hParent = NULLHANDLE;
- HWND hTitlebar = NULLHANDLE;
- HWND hHScroll = NULLHANDLE;
- HWND hVScroll = NULLHANDLE;
- HWND hFrame = NULLHANDLE;
- HWND hClient = NULLHANDLE;
- SWP vSwp[10];
- RECTL vRect[10];
- USHORT uCtlCount;
- ERRORID vError;
- wxString sError;
-
- m_hDefaultIcon = (WXHICON) (wxSTD_FRAME_ICON ? wxSTD_FRAME_ICON : wxDEFAULT_FRAME_ICON);
-
- if (pParent)
- hParent = GetWinHwnd(pParent);
- else
- hParent = HWND_DESKTOP;
-
- if (ulStyle == wxDEFAULT_FRAME_STYLE)
- ulCreateFlags = FCF_SIZEBORDER | FCF_TITLEBAR | FCF_SYSMENU |
- FCF_MINMAX | FCF_TASKLIST;
- else
- {
- if ((ulStyle & wxCAPTION) == wxCAPTION)
- ulCreateFlags = FCF_TASKLIST;
- else
- ulCreateFlags = FCF_NOMOVEWITHOWNER;
-
- if ((ulStyle & wxVSCROLL) == wxVSCROLL)
- ulCreateFlags |= FCF_VERTSCROLL;
- if ((ulStyle & wxHSCROLL) == wxHSCROLL)
- ulCreateFlags |= FCF_HORZSCROLL;
- if (ulStyle & wxMINIMIZE_BOX)
- ulCreateFlags |= FCF_MINBUTTON;
- if (ulStyle & wxMAXIMIZE_BOX)
- ulCreateFlags |= FCF_MAXBUTTON;
- if (ulStyle & wxTHICK_FRAME)
- ulCreateFlags |= FCF_DLGBORDER;
- if (ulStyle & wxSYSTEM_MENU)
- ulCreateFlags |= FCF_SYSMENU;
- if (ulStyle & wxCAPTION)
- ulCreateFlags |= FCF_TASKLIST;
- if (ulStyle & wxCLIP_CHILDREN)
- {
- // Invalid for frame windows under PM
- }
-
- if (ulStyle & wxTINY_CAPTION_VERT)
- ulCreateFlags |= FCF_TASKLIST;
- if (ulStyle & wxTINY_CAPTION_HORIZ)
- ulCreateFlags |= FCF_TASKLIST;
-
- if ((ulStyle & wxTHICK_FRAME) == 0)
- ulCreateFlags |= FCF_BORDER;
- if (ulStyle & wxFRAME_TOOL_WINDOW)
- ulExtraFlags = kFrameToolWindow;
-
- if (ulStyle & wxSTAY_ON_TOP)
- ulCreateFlags |= FCF_SYSMODAL;
- }
- if ((ulStyle & wxMINIMIZE) || (ulStyle & wxICONIZE))
- ulStyleFlags |= WS_MINIMIZED;
- if (ulStyle & wxMAXIMIZE)
- ulStyleFlags |= WS_MAXIMIZED;
-
- //
- // Clear the visible flag, we always call show
- //
- ulStyleFlags &= (unsigned long)~WS_VISIBLE;
- m_bIconized = FALSE;
-
- //
- // Set the frame control block
- //
- vFrameCtlData.cb = sizeof(vFrameCtlData);
- vFrameCtlData.flCreateFlags = ulCreateFlags;
- vFrameCtlData.hmodResources = 0L;
- vFrameCtlData.idResources = 0;
-
- //
- // Create the frame window: We break ranks with other ports now
- // and instead of calling down into the base wxWindow class' OS2Create
- // we do all our own stuff here. We will set the needed pieces
- // of wxWindow manually, here.
- //
-
- hFrame = ::WinCreateStdWindow( hParent
- ,ulStyleFlags // frame-window style
- ,&ulCreateFlags // window style
- ,(PSZ)zWclass // class name
- ,(PSZ)zTitle // window title
- ,0L // default client style
- ,NULLHANDLE // resource in executable file
- ,0 // resource id
- ,&hClient // receives client window handle
- );
- if (!hFrame)
- {
- vError = ::WinGetLastError(vHabmain);
- sError = wxPMErrorToStr(vError);
- wxLogError("Error creating frame. Error: %s\n", sError);
- return FALSE;
- }
-
- //
- // wxWindow class' m_hWnd set here and needed associations
- //
- m_hFrame = hFrame;
- m_hWnd = hClient;
- wxAssociateWinWithHandle(m_hWnd, this);
- wxAssociateWinWithHandle(m_hFrame, this);
-
- m_backgroundColour.Set(wxString("GREY"));
-
- LONG lColor = (LONG)m_backgroundColour.GetPixel();
-
- if (!::WinSetPresParam( m_hWnd
- ,PP_BACKGROUNDCOLOR
- ,sizeof(LONG)
- ,(PVOID)&lColor
- ))
- {
- vError = ::WinGetLastError(vHabmain);
- sError = wxPMErrorToStr(vError);
- wxLogError("Error creating frame. Error: %s\n", sError);
- return FALSE;
- }
-
- //
- // Now need to subclass window. Instead of calling the SubClassWin in wxWindow
- // we manually subclass here because we don't want to use the main wxWndProc
- // by default
- //
- m_fnOldWndProc = (WXFARPROC) ::WinSubclassWindow(m_hFrame, (PFNWP)wxFrameMainWndProc);
-
- //
- // Now size everything. If adding a menu the client will need to be resized.
- //
-
- if (pParent)
- {
- nY = pParent->GetSize().y - (nY + nHeight);
- }
- else
- {
- RECTL vRect;
-
- ::WinQueryWindowRect(HWND_DESKTOP, &vRect);
- nY = vRect.yTop - (nY + nHeight);
- }
- if (!::WinSetWindowPos( m_hFrame
- ,HWND_TOP
- ,nX
- ,nY
- ,nWidth
- ,nHeight
- ,SWP_SIZE | SWP_MOVE | SWP_ACTIVATE | SWP_ZORDER
- ))
- {
- vError = ::WinGetLastError(vHabmain);
- sError = wxPMErrorToStr(vError);
- wxLogError("Error sizing frame. Error: %s\n", sError);
- return FALSE;
- }
- return TRUE;
-} // end of wxFrame::OS2Create
-
//
// Default activation behaviour - set the focus for the first child
// subwindow found.
}
} // end of wxFrame::IconizeChildFrames
+WXHICON wxFrame::GetDefaultIcon() const
+{
+ return (WXHICON)(wxSTD_FRAME_ICON ? wxSTD_FRAME_ICON
+ : wxDEFAULT_FRAME_ICON);
+}
// ===========================================================================
// message processing
// ===========================================================================
if (m_windowStyle & wxCLIP_SIBLINGS)
lMsStyle |= WS_CLIPSIBLINGS;
-
+ //
+ // If the parent is a scrolled window the controls must
+ // have this style or they will overlap the scrollbars
+ //
+ if (pParent)
+ if (pParent->IsKindOf(CLASSINFO(wxScrolledWindow)) ||
+ pParent->IsKindOf(CLASSINFO(wxGenericScrolledWindow)))
+ lMsStyle |= WS_CLIPSIBLINGS;
m_hWnd = (WXHWND)::WinCreateWindow( (HWND)GetHwndOf(pParent) // Parent window handle
,WC_ENTRYFIELD // Window class
//
lStyle |= LS_NOADJUSTPOS;
+ //
+ // If the parent is a scrolled window the controls must
+ // have this style or they will overlap the scrollbars
+ //
+ if (pParent)
+ if (pParent->IsKindOf(CLASSINFO(wxScrolledWindow)) ||
+ pParent->IsKindOf(CLASSINFO(wxGenericScrolledWindow)))
+ lStyle |= WS_CLIPSIBLINGS;
+
m_hWnd = (WXHWND)::WinCreateWindow( GetWinHwnd(pParent) // Parent
,WC_LISTBOX // Default Listbox class
,"LISTBOX" // Control's name
Append(asChoices[lUi]);
}
SetFont(pParent->GetFont());
+
+ //
+ // Set standard wxWindows colors for Listbox items and highlighting
+ //
+ wxColour vColour;
+
+ vColour.Set(wxString("WHITE"));
+
+ LONG lColor = (LONG)vColour.GetPixel();
+
+ ::WinSetPresParam( m_hWnd
+ ,PP_HILITEFOREGROUNDCOLOR
+ ,sizeof(LONG)
+ ,(PVOID)&lColor
+ );
+ vColour.Set(wxString("NAVY"));
+ lColor = (LONG)vColour.GetPixel();
+ ::WinSetPresParam( m_hWnd
+ ,PP_HILITEBACKGROUNDCOLOR
+ ,sizeof(LONG)
+ ,(PVOID)&lColor
+ );
+
SetSize( nX
,nY
,nWidth
..\os2\$D\timer.obj \
..\os2\$D\toolbar.obj \
..\os2\$D\tooltip.obj \
+ ..\os2\$D\toplevel.obj \
..\os2\$D\utils.obj \
..\os2\$D\utilsexc.obj \
..\os2\$D\wave.obj \
timer.obj \
toolbar.obj \
tooltip.obj \
+ toplevel.obj \
utils.obj \
utilsexc.obj \
wave.obj \
copy ..\os2\$D\timer.obj
copy ..\os2\$D\toolbar.obj
copy ..\os2\$D\tooltip.obj
+ copy ..\os2\$D\toplevel.obj
copy ..\os2\$D\utils.obj
copy ..\os2\$D\utilsexc.obj
copy ..\os2\$D\wave.obj
if (!OS2CreateControl( "STATIC"
- ,SS_GROUPBOX | WS_GROUP
+#if RADIOBTN_PARENT_IS_RADIOBOX
+ ,SS_GROUPBOX | WS_GROUP | WS_CLIPCHILDREN
+#else
+ ,SS_GROUPBOX | WS_GROUP | WS_CLIPSIBLINGS
+#endif
,rPos
,rSize
,rsTitle
,NULL
,NULL
);
+ lColor = (LONG)vColour.GetPixel();
::WinSetPresParam( hWndBtn
,PP_FOREGROUNDCOLOR
,sizeof(LONG)
,(PVOID)&lColor
);
+ lColor = (LONG)m_backgroundColour.GetPixel();
+
+ ::WinSetPresParam( hWndBtn
+ ,PP_BACKGROUNDCOLOR
+ ,sizeof(LONG)
+ ,(PVOID)&lColor
+ );
if (!hWndBtn)
{
return FALSE;
,NULL
);
SetFont(*wxSMALL_FONT);
+ lColor = (LONG)vColour.GetPixel();
::WinSetPresParam( m_hWnd
,PP_FOREGROUNDCOLOR
,sizeof(LONG)
,(PVOID)&lColor
);
+ lColor = (LONG)m_backgroundColour.GetPixel();
+
+ ::WinSetPresParam( m_hWnd
+ ,PP_BACKGROUNDCOLOR
+ ,sizeof(LONG)
+ ,(PVOID)&lColor
+ );
SetSelection(0);
SetSize( rPos.x
,rPos.y
if (m_windowStyle & wxCLIP_SIBLINGS )
lsStyle |= WS_CLIPSIBLINGS;
+ //
+ // If the parent is a scrolled window the controls must
+ // have this style or they will overlap the scrollbars
+ //
+ if (pParent)
+ if (pParent->IsKindOf(CLASSINFO(wxScrolledWindow)) ||
+ pParent->IsKindOf(CLASSINFO(wxGenericScrolledWindow)))
+ lsStyle |= WS_CLIPSIBLINGS;
+
m_hWnd = (WXHWND)::WinCreateWindow ( GetHwndOf(pParent)
,WC_BUTTON
,rsLabel.c_str()
{
lMsStyle |= WS_VISIBLE | SS_TEXT | DT_VCENTER;
+ //
+ // If the parent is a scrolled window the controls must
+ // have this style or they will overlap the scrollbars
+ //
+ if (pParent)
+ if (pParent->IsKindOf(CLASSINFO(wxScrolledWindow)) ||
+ pParent->IsKindOf(CLASSINFO(wxGenericScrolledWindow)))
+ lMsStyle |= WS_CLIPSIBLINGS;
+
m_hStaticValue = (WXHWND)::WinCreateWindow( (HWND)GetHwndOf(pParent) // Parent window handle
,WC_STATIC // Window class
,(PSZ)NULL // Initial Text
lWstyle = SS_TEXT|DT_LEFT|WS_VISIBLE;
if (m_windowStyle & wxCLIP_SIBLINGS)
lWstyle |= WS_CLIPSIBLINGS;
+ //
+ // If the parent is a scrolled window the controls must
+ // have this style or they will overlap the scrollbars
+ //
+ if (pParent)
+ if (pParent->IsKindOf(CLASSINFO(wxScrolledWindow)) ||
+ pParent->IsKindOf(CLASSINFO(wxGenericScrolledWindow)))
+ lWstyle |= WS_CLIPSIBLINGS;
+
m_hStaticMin = (WXHWND)::WinCreateWindow( (HWND)GetHwndOf(pParent) // Parent window handle
,WC_STATIC // Window class
,(PSZ)wxBuffer // Initial Text
else
lMsStyle |= SLS_PRIMARYSCALE2;
+ //
+ // If the parent is a scrolled window the controls must
+ // have this style or they will overlap the scrollbars
+ //
+ if (pParent)
+ if (pParent->IsKindOf(CLASSINFO(wxScrolledWindow)) ||
+ pParent->IsKindOf(CLASSINFO(wxGenericScrolledWindow)))
+ lMsStyle |= WS_CLIPSIBLINGS;
+
m_nPageSize = ((nMaxValue - nMinValue)/10);
vSlData.usScale1Increments = m_nPageSize;
vSlData.usScale2Increments = m_nPageSize;
lWstyle = SS_TEXT|DT_LEFT|WS_VISIBLE;
if (m_windowStyle & wxCLIP_SIBLINGS)
lMsStyle |= WS_CLIPSIBLINGS;
+ //
+ // If the parent is a scrolled window the controls must
+ // have this style or they will overlap the scrollbars
+ //
+ if (pParent)
+ if (pParent->IsKindOf(CLASSINFO(wxScrolledWindow)) ||
+ pParent->IsKindOf(CLASSINFO(wxGenericScrolledWindow)))
+ lWstyle |= WS_CLIPSIBLINGS;
+
m_hStaticMax = (WXHWND)::WinCreateWindow( (HWND)GetHwndOf(pParent) // Parent window handle
,WC_STATIC // Window class
,(PSZ)wxBuffer // Initial Text
if (m_windowStyle & wxCLIP_SIBLINGS )
lSstyle |= WS_CLIPSIBLINGS;
+ //
+ // If the parent is a scrolled window the controls must
+ // have this style or they will overlap the scrollbars
+ //
+ if (pParent)
+ if (pParent->IsKindOf(CLASSINFO(wxScrolledWindow)) ||
+ pParent->IsKindOf(CLASSINFO(wxGenericScrolledWindow)))
+ lSstyle |= WS_CLIPSIBLINGS;
+
SPBCDATA vCtrlData;
vCtrlData.cbSize = sizeof(SPBCDATA);
if (m_windowStyle & wxCLIP_SIBLINGS )
lSstyle |= WS_CLIPSIBLINGS;
+ //
+ // If the parent is a scrolled window the controls must
+ // have this style or they will overlap the scrollbars
+ //
+ if (pParent)
+ if (pParent->IsKindOf(CLASSINFO(wxScrolledWindow)) ||
+ pParent->IsKindOf(CLASSINFO(wxGenericScrolledWindow)))
+ lSstyle |= WS_CLIPSIBLINGS;
+
SPBCDATA vCtrlData;
vCtrlData.cbSize = sizeof(SPBCDATA);
lSstyle |= DT_RIGHT;
else
lSstyle |= DT_LEFT;
+ //
+ // If the parent is a scrolled window the controls must
+ // have this style or they will overlap the scrollbars
+ //
+ if (pParent)
+ if (pParent->IsKindOf(CLASSINFO(wxScrolledWindow)) ||
+ pParent->IsKindOf(CLASSINFO(wxGenericScrolledWindow)))
+ lSstyle |= WS_CLIPSIBLINGS;
+
m_hWnd = (WXHWND)::WinCreateWindow( (HWND)GetHwndOf(pParent) // Parent window handle
,WC_STATIC // Window class
,(PSZ)rsLabel.c_str() // Initial Text
return FALSE;
wxPoint vPos = rPos; // The OS/2 position
+ SWP vSwp;
if (pParent )
{
pParent->AddChild(this);
- hParent = GetWinHwnd(pParent);
- //
- // OS2 uses normal coordinates, no bassackwards Windows ones
- //
- if (pParent->IsKindOf(CLASSINFO(wxGenericScrolledWindow)) ||
- pParent->IsKindOf(CLASSINFO(wxScrolledWindow))
- )
- {
- wxWindow* pGrandParent = NULL;
-
- pGrandParent = pParent->GetParent();
- if (pGrandParent)
- nTempy = pGrandParent->GetSize().y - (vPos.y + rSize.y);
- else
- nTempy = pParent->GetSize().y - (vPos.y + rSize.y);
- }
- else
- nTempy = pParent->GetSize().y - (vPos.y + rSize.y);
- vPos.y = nTempy;
- }
- else
- {
- RECTL vRect;
-
- ::WinQueryWindowRect(HWND_DESKTOP, &vRect);
- hParent = HWND_DESKTOP;
- vPos.y = vRect.yTop - (vPos.y + rSize.y);
}
m_windowStyle = lStyle;
if (m_windowStyle & wxTE_PASSWORD) // hidden input
lSstyle |= ES_UNREADABLE;
}
- if ( pParent->IsKindOf(CLASSINFO(wxGenericScrolledWindow)) ||
- pParent->IsKindOf(CLASSINFO(wxScrolledWindow))
- )
- lSstyle |= WS_CLIPSIBLINGS;
+ //
+ // If the parent is a scrolled window the controls must
+ // have this style or they will overlap the scrollbars
+ //
+ if (pParent)
+ if (pParent->IsKindOf(CLASSINFO(wxScrolledWindow)) ||
+ pParent->IsKindOf(CLASSINFO(wxGenericScrolledWindow)))
+ lSstyle |= WS_CLIPSIBLINGS;
+
if (m_bIsMLE)
{
m_hWnd = (WXHWND)::WinCreateWindow( (HWND)GetHwndOf(pParent) // Parent window handle
SetValue(rsValue);
}
SetupColours();
+ //
+ // If X and/or Y are not zero the difference is the compensation value
+ // for margins for OS/2 controls.
+ //
+ ::WinQueryWindowPos(m_hWnd, &vSwp);
+ SetXComp(vSwp.x);
+ SetYComp(vSwp.y);
SetSize( vPos.x
,vPos.y
,rSize.x
)
{
HWND hParent = NULLHANDLE;
- wxPoint vPos = rPos; // The OS/2 position
ULONG ulCreateFlags = 0;
WXDWORD dwExStyle = 0;
}
//
- // Generic OS/2 Windows are created with no owner, no Z Order, no Control data,
- // and no presentation parameters
+ // Generic OS/2 Windows have no Control Data but other classes
+ // that call OS2Create may have some.
//
- OS2Create( hParent
- ,(PSZ)wxCanvasClassName
+ OS2Create( (PSZ)wxCanvasClassName
,rName.c_str()
,ulCreateFlags
- ,vPos.x
- ,vPos.y
- ,WidthDefault(rSize.x)
- ,HeightDefault(rSize.y)
- ,NULLHANDLE
- ,NULLHANDLE
- ,m_windowId
- ,NULL
- ,NULL
+ ,rPos
+ ,rSize
+ ,NULL // Control Data
,dwExStyle
+ ,TRUE // Child
);
return(TRUE);
}
} // end of wxWindowOS2::UnsubclassWin
+bool wxCheckWindowWndProc(
+ WXHWND hWnd
+, WXFARPROC fnWndProc
+)
+{
+ static char zBuffer[512];
+ CLASSINFO vCls;
+
+ ::WinQueryClassName((HWND)hWnd, (LONG)512, (PCH)zBuffer);
+ ::WinQueryClassInfo(wxGetInstance(), (PSZ)zBuffer, &vCls);
+ return(fnWndProc == (WXFARPROC)vCls.pfnWindowProc);
+} // end of WinGuiBase_CheckWindowWndProc
+
//
// Make a Windows extended style from the given wxWindows window style
//
, int* pHeight
) const
{
- HWND hWnd = GetHwnd();
+ HWND hWnd;
RECTL vRect;
+ if (IsKindOf(CLASSINFO(wxFrame)))
+ {
+ wxFrame* pFrame = wxDynamicCast(this, wxFrame);
+ hWnd = pFrame->GetFrame();
+ }
+ else
+ hWnd = GetHwnd();
+
::WinQueryWindowRect(hWnd, &vRect);
if (pWidth)
) const
{
HWND hWnd = GetHwnd();
- HWND hWndClient;
RECTL vRect;
- if (IsKindOf(CLASSINFO(wxFrame)))
- hWndClient = ::WinWindowFromID(GetHwnd(), FID_CLIENT);
- else
- hWndClient = NULLHANDLE;
- if( hWndClient == NULLHANDLE)
- ::WinQueryWindowRect(GetHwnd(), &vRect);
- else
- ::WinQueryWindowRect(hWndClient, &vRect);
-
+ ::WinQueryWindowRect(hWnd, &vRect);
if (pWidth)
*pWidth = vRect.xRight;
if (pHeight)
GetPosition(&nCurrentX, &nCurrentY);
GetSize(&nCurrentWidth, &nCurrentHeight);
+ //
// ... and don't do anything (avoiding flicker) if it's already ok
- if (nX == nCurrentX && nY == nCurrentY &&
+ //
+ //
+ // Must convert Y coords to test for equality under OS/2
+ //
+ int nY2 = nY;
+ wxWindow* pParent = (wxWindow*)GetParent();
+
+ if (pParent)
+ {
+ int nOS2Height = GetOS2ParentHeight(pParent);
+
+ nY2 = nOS2Height - (nY2 + nHeight);
+ }
+ else
+ {
+ RECTL vRect;
+
+ ::WinQueryWindowRect(HWND_DESKTOP, &vRect);
+ nY2 = vRect.yTop - (nY2 + nHeight);
+ }
+ if (nX == nCurrentX && nY2 == nCurrentY &&
nWidth == nCurrentWidth && nHeight == nCurrentHeight)
{
return;
} // end of wxWindowOS2::OS2GetCreateWindowCoords
bool wxWindowOS2::OS2Create(
- WXHWND hParent
-, PSZ zClass
-, const wxChar* zTitle
+ PSZ zClass
+, const char* zTitle
, WXDWORD dwStyle
-, long lX
-, long lY
-, long lWidth
-, long lHeight
-, WXHWND hOwner
-, WXHWND WXUNUSED(hZOrder)
-, unsigned long ulId
+, const wxPoint& rPos
+, const wxSize& rSize
, void* pCtlData
-, void* pPresParams
, WXDWORD dwExStyle
+, bool bIsChild
)
{
ERRORID vError;
wxString sError;
- long lX1 = 0L;
- long lY1 = 0L;
- long lWidth1 = 20L;
- long lHeight1 = 20L;
- int nControlId = 0;
- int nNeedsubclass = 0;
- PCSZ pszClass = zClass;
-
- //
- // Find parent's size, if it exists, to set up a possible default
- // panel size the size of the parent window
- //
- lX1 = lX;
- lY1 = lY;
- if (lWidth > -1L)
- lWidth1 = lWidth;
- if (lHeight > -1L)
- lHeight1 = lHeight;
-
- wxWndHook = this;
+ int nX = 0L;
+ int nY = 0L;
+ int nWidth = 0L;
+ int nHeight = 0L;
+ wxWindow* pParent = GetParent();
+ HWND hWnd = NULLHANDLE;
+ HWND hParent;
+ long lControlId = 0L;
+ wxWindowCreationHook vHook(this);
+ wxString sClassName((wxChar*)zClass);
+
+ OS2GetCreateWindowCoords( rPos
+ ,rSize
+ ,nX
+ ,nY
+ ,nWidth
+ ,nHeight
+ );
- //
- // check to see if the new window is a standard control
- //
- if ((ULONG)zClass == (ULONG)WC_BUTTON ||
- (ULONG)zClass == (ULONG)WC_COMBOBOX ||
- (ULONG)zClass == (ULONG)WC_CONTAINER ||
- (ULONG)zClass == (ULONG)WC_ENTRYFIELD ||
- (ULONG)zClass == (ULONG)WC_FRAME ||
- (ULONG)zClass == (ULONG)WC_LISTBOX ||
- (ULONG)zClass == (ULONG)WC_MENU ||
- (ULONG)zClass == (ULONG)WC_NOTEBOOK ||
- (ULONG)zClass == (ULONG)WC_SCROLLBAR ||
- (ULONG)zClass == (ULONG)WC_SPINBUTTON ||
- (ULONG)zClass == (ULONG)WC_STATIC ||
- (ULONG)zClass == (ULONG)WC_TITLEBAR ||
- (ULONG)zClass == (ULONG)WC_VALUESET
- )
- {
- nControlId = ulId;
- }
+ if (GetWindowStyleFlag() & wxPOPUP_WINDOW)
+ hParent = HWND_DESKTOP;
else
{
- // no standard controls
- if(wxString (wxT("wxFrameClass")) == wxString(zClass) )
+ if ((bIsChild || HasFlag(wxFRAME_TOOL_WINDOW)) && pParent )
{
- pszClass = WC_FRAME;
- nNeedsubclass = 1;
+ //
+ // This is either a normal child window or a top level window with
+ // wxFRAME_TOOL_WINDOW style (see below)
+ //
+ hParent = GetHwndOf(pParent);
}
else
{
- nControlId = ulId;
- if(nControlId < 0)
- nControlId = FID_CLIENT;
+ //
+ // This is either a window for which no parent was specified (not
+ // much we can do then) or a frame without wxFRAME_TOOL_WINDOW
+ // style: we should use NULL parent HWND for it or it would be
+ // always on top of its parent which is not what we usually want
+ // (in fact, we only want it for frames with the special
+ // wxFRAME_TOOL_WINDOW as above)
+ //
+ hParent = NULL;
+ }
+ }
+ if (bIsChild)
+ {
+ lControlId = GetId();
+ if (GetWindowStyleFlag() & wxCLIP_SIBLINGS)
+ {
+ dwStyle |= WS_CLIPSIBLINGS;
}
}
-
- HWND parent;
- if ( GetWindowStyleFlag() & wxPOPUP_WINDOW )
- {
- // popup windows should have desktop as parent because they shouldn't
- // be limited to the parents client area as child windows usually are
- parent = HWND_DESKTOP;
- }
- else if ( hParent )
- {
- parent = hParent;
- }
- else
- {
- // top level window
- parent = NULL;
- }
-
//
- // We will either have a registered class via string name or a standard PM Class via a long
+ // For each class "Foo" we have we also have "FooNR" ("no repaint") class
+ // which is the same but without CS_[HV]REDRAW class styles so using it
+ // ensures that the window is not fully repainted on each resize
//
- m_hWnd = (WXHWND)::WinCreateWindow(parent, zClass,
- (PSZ)zTitle ? zTitle : wxT(""),
- dwStyle, lX1, lY1, lWidth, lHeight,
- hOwner, HWND_TOP, (ULONG)nControlId,
- pCtlData, pPresParams);
-
- if (!m_hWnd)
+ if (GetWindowStyleFlag() & wxNO_FULL_REPAINT_ON_RESIZE)
{
- vError = ::WinGetLastError(vHabmain);
- sError = wxPMErrorToStr(vError);
- wxLogError("Can't create window of class %s!. Error: %s\n", zClass, sError);
- return FALSE;
+ sClassName += wxT("NR");
}
- m_dwExStyle = dwExStyle;
- ::WinSetWindowULong(m_hWnd, QWL_USER, (ULONG) this);
- wxWndHook = NULL;
-#ifdef __WXDEBUG__
- wxNode* pNode = wxWinHandleList->Member(this);
-
- if (pNode)
+ //
+ // If the window being created is a Frame's Statusbar we need to use
+ // the actual Frame's size, not its client
+ //
+ if (pParent)
{
- HWND hWnd = (HWND)pNode->GetKeyInteger();
-
- if (hWnd != (HWND)m_hWnd)
-
+ if (IsKindOf(CLASSINFO(wxStatusBar)) &&
+ pParent->IsKindOf(CLASSINFO(wxFrame)))
{
- wxLogError("A second HWND association is being added for the same window!");
+ RECTL vRect;
+ wxFrame* pFrame = wxDynamicCast(pParent, wxFrame);
+
+ ::WinQueryWindowRect((HWND)pFrame->GetFrame(), &vRect);
+ nY = vRect.yTop - (nY + nHeight);
}
+ else
+ nY = pParent->GetSize().y - (nY + nHeight);
}
-#endif
- wxAssociateWinWithHandle((HWND)m_hWnd
- ,this
- );
- //
- // Now need to subclass window.
- //
- if(!nNeedsubclass)
+ else
{
- wxAssociateWinWithHandle((HWND)m_hWnd,this);
+ RECTL vRect;
+
+ ::WinQueryWindowRect(HWND_DESKTOP, &vRect);
+ nY = vRect.yTop - (nY + nHeight);
}
- else
+ m_hWnd = (WXHWND)::WinCreateWindow( (HWND)hParent
+ ,(PSZ)sClassName.c_str()
+ ,(PSZ)zTitle ? zTitle : ""
+ ,(ULONG)dwStyle
+ ,(LONG)0L
+ ,(LONG)0L
+ ,(LONG)0L
+ ,(LONG)0L
+ ,NULLHANDLE
+ ,HWND_TOP
+ ,(ULONG)lControlId
+ ,pCtlData
+ ,NULL
+ );
+ if (!m_hWnd)
{
- SubclassWin(GetHWND());
+ vError = ::WinGetLastError(wxGetInstance());
+ sError = wxPMErrorToStr(vError);
+ return FALSE;
}
+ SubclassWin(m_hWnd);
+ SetFont(wxSystemSettings::GetSystemFont(wxSYS_DEFAULT_GUI_FONT));
+ SetSize( nX
+ ,nY
+ ,nWidth
+ ,nHeight
+ );
return TRUE;
-} // end of wxWindowOS2::OS2Create
+} // end of WinGuiBase_Window::OS2Create
// ===========================================================================
// OS2 PM message handlers
CODE LOADONCALL
EXPORTS
-;From library: F:\DEV\WX2\WXWINDOWS\LIB\WX.lib
+;From library: F:\DEV\WX2\WXWINDOWS\LIB\wx.lib
;From object file: dummy.cpp
;PUBDEFs (Symbols available from object file):
wxDummyChar
CreateButtonSizer__12wxDialogBaseFl
;wxDialogBase::Init()
Init__12wxDialogBaseFv
+ ;wxDialogBase::GetDefaultItem() const
+ GetDefaultItem__12wxDialogBaseCFv
+ ;wxDialogBase::SetDefaultItem(wxWindow*)
+ SetDefaultItem__12wxDialogBaseFP8wxWindow
;wxDialogBase::CreateTextSizer(const wxString&)
CreateTextSizer__12wxDialogBaseFRC8wxString
+ ;wxDialogBase::OnFocus(wxFocusEvent&)
+ OnFocus__12wxDialogBaseFR12wxFocusEvent
+ ;wxDialogBase::sm_eventTableEntries
+ sm_eventTableEntries__12wxDialogBase
+ ;wxDialogBase::SetFocus()
+ SetFocus__12wxDialogBaseFv
+ ;wxDialogBase::OnChildFocus(wxChildFocusEvent&)
+ OnChildFocus__12wxDialogBaseFR17wxChildFocusEvent
+ __vft12wxDialogBase8wxObject
+ ;wxDialogBase::sm_eventTable
+ sm_eventTable__12wxDialogBase
+ ;wxDialogBase::OnNavigationKey(wxNavigationKeyEvent&)
+ OnNavigationKey__12wxDialogBaseFR20wxNavigationKeyEvent
+ ;wxDialogBase::RemoveChild(wxWindowBase*)
+ RemoveChild__12wxDialogBaseFP12wxWindowBase
+ ;wxDialogBase::GetEventTable() const
+ GetEventTable__12wxDialogBaseCFv
;From object file: ..\common\dobjcmn.cpp
;PUBDEFs (Symbols available from object file):
;wxDataObjectComposite::GetDataSize(const wxDataFormat&) const
;PUBDEFs (Symbols available from object file):
;wxFileName::Assign(const wxString&,wxPathFormat)
Assign__10wxFileNameFRC8wxString12wxPathFormat
+ ;wxFileName::SetPath(const wxString&,wxPathFormat)
+ SetPath__10wxFileNameFRC8wxString12wxPathFormat
;wxFileName::Normalize(wxPathNormalize,const wxString&,wxPathFormat)
Normalize__10wxFileNameF15wxPathNormalizeRC8wxString12wxPathFormat
;wxFileName::IsWild(wxPathFormat)
OpenFile__12wxFileSystemFRC8wxString
;From object file: ..\common\fontcmn.cpp
;PUBDEFs (Symbols available from object file):
+ ;wxNativeFontInfo::SetUnderlined(unsigned long)
+ SetUnderlined__16wxNativeFontInfoFUl
;wxFontBase::GetNativeFontInfo() const
GetNativeFontInfo__10wxFontBaseCFv
+ ;wxNativeFontInfo::GetUnderlined() const
+ GetUnderlined__16wxNativeFontInfoCFv
;wxFontBase::New(const wxNativeFontInfo&)
New__10wxFontBaseFRC16wxNativeFontInfo
;wxFontBase::New(const wxString&)
New__10wxFontBaseFRC8wxString
+ ;wxNativeFontInfo::FromString(const wxString&)
+ FromString__16wxNativeFontInfoFRC8wxString
;wxFont::operator=(const wxFont&)
__as__6wxFontFRC6wxFont
+ ;wxNativeFontInfo::SetFamily(wxFontFamily)
+ SetFamily__16wxNativeFontInfoF12wxFontFamily
;wxFontBase::GetNativeFontInfoDesc() const
GetNativeFontInfoDesc__10wxFontBaseCFv
+ ;wxNativeFontInfo::ToUserString() const
+ ToUserString__16wxNativeFontInfoCFv
;wxFontBase::GetWeightString() const
GetWeightString__10wxFontBaseCFv
;wxFontBase::GetStyleString() const
SetNativeFontInfo__10wxFontBaseFRC16wxNativeFontInfo
;wxFontBase::SetNativeFontInfoUserDesc(const wxString&)
SetNativeFontInfoUserDesc__10wxFontBaseFRC8wxString
+ ;wxNativeFontInfo::SetStyle(wxFontStyle)
+ SetStyle__16wxNativeFontInfoF11wxFontStyle
;wxFontBase::ms_encodingDefault
ms_encodingDefault__10wxFontBase
+ ;wxNativeFontInfo::GetPointSize() const
+ GetPointSize__16wxNativeFontInfoCFv
+ ;wxNativeFontInfo::GetStyle() const
+ GetStyle__16wxNativeFontInfoCFv
+ ;wxNativeFontInfo::GetFamily() const
+ GetFamily__16wxNativeFontInfoCFv
+ ;wxNativeFontInfo::GetFaceName() const
+ GetFaceName__16wxNativeFontInfoCFv
+ ;wxNativeFontInfo::SetEncoding(wxFontEncoding)
+ SetEncoding__16wxNativeFontInfoF14wxFontEncoding
;wxFontBase::SetNativeFontInfo(const wxString&)
SetNativeFontInfo__10wxFontBaseFRC8wxString
- ;wxFontBase::operator==(const wxFont&) const
- __eq__10wxFontBaseCFRC6wxFont
+ ;wxNativeFontInfo::SetWeight(wxFontWeight)
+ SetWeight__16wxNativeFontInfoF12wxFontWeight
__vft10wxFontBase8wxObject
;wxFontBase::operator!=(const wxFont&) const
__ne__10wxFontBaseCFRC6wxFont
+ ;wxFontBase::operator==(const wxFont&) const
+ __eq__10wxFontBaseCFRC6wxFont
+ ;wxNativeFontInfo::SetPointSize(int)
+ SetPointSize__16wxNativeFontInfoFi
+ ;wxNativeFontInfo::ToString() const
+ ToString__16wxNativeFontInfoCFv
;wxFontBase::GetFamilyString() const
GetFamilyString__10wxFontBaseCFv
+ ;wxNativeFontInfo::GetEncoding() const
+ GetEncoding__16wxNativeFontInfoCFv
+ ;wxNativeFontInfo::Init()
+ Init__16wxNativeFontInfoFv
+ ;wxNativeFontInfo::GetWeight() const
+ GetWeight__16wxNativeFontInfoCFv
;wxFontBase::New(int,int,int,int,unsigned long,const wxString&,wxFontEncoding)
New__10wxFontBaseFiN31UlRC8wxString14wxFontEncoding
+ ;wxNativeFontInfo::SetFaceName(wxString)
+ SetFaceName__16wxNativeFontInfoF8wxString
+ ;wxNativeFontInfo::FromUserString(const wxString&)
+ FromUserString__16wxNativeFontInfoFRC8wxString
;From object file: ..\common\fontmap.cpp
;PUBDEFs (Symbols available from object file):
;wxFontMapper::GetConfig()
Upper__8wxStringCFv
;wxString::IsNumber() const
IsNumber__8wxStringCFv
+ ;wxArrayString::GetStringArray() const
+ GetStringArray__13wxArrayStringCFv
;wxArrayString::Empty()
Empty__13wxArrayStringFv
;wxArrayString::Copy(const wxArrayString&)
SendIconizeEvent__20wxTopLevelWindowBaseFUl
;wxTopLevelWindowBase::sm_eventTable
sm_eventTable__20wxTopLevelWindowBase
+ ;wxConstructorForwxTopLevelWindow()
+ wxConstructorForwxTopLevelWindow__Fv
;wxTopLevelWindowBase::DoClientToScreen(int*,int*) const
DoClientToScreen__20wxTopLevelWindowBaseCFPiT1
- ;wxTopLevelWindowBase::GetEventTable() const
- GetEventTable__20wxTopLevelWindowBaseCFv
;wxTopLevelWindowBase::wxTopLevelWindowBase()
__ct__20wxTopLevelWindowBaseFv
+ ;wxTopLevelWindowBase::GetEventTable() const
+ GetEventTable__20wxTopLevelWindowBaseCFv
;wxTopLevelWindowBase::OnSize(wxSizeEvent&)
OnSize__20wxTopLevelWindowBaseFR11wxSizeEvent
__vft20wxTopLevelWindowBase8wxObject
DoScreenToClient__20wxTopLevelWindowBaseCFPiT1
;wxTopLevelWindowBase::Destroy()
Destroy__20wxTopLevelWindowBaseFv
+ ;wxTopLevelWindow::sm_classwxTopLevelWindow
+ sm_classwxTopLevelWindow__16wxTopLevelWindow
;From object file: ..\common\treebase.cpp
;PUBDEFs (Symbols available from object file):
wxEVT_COMMAND_TREE_BEGIN_LABEL_EDIT
;wxCheckBox::SetValue(unsigned long)
SetValue__10wxCheckBoxFUl
__vft16wxBitmapCheckBox8wxObject
- ;wxCheckBox::OnCtlColor(unsigned long,unsigned long,unsigned int,unsigned int,void*,void*)
- OnCtlColor__10wxCheckBoxFUlT1UiT3PvT5
;wxCheckBox::DoGetBestSize() const
DoGetBestSize__10wxCheckBoxCFv
;wxCheckBox::GetValue() const
Create__16wxBitmapCheckBoxFP8wxWindowiPC8wxBitmapRC7wxPointRC6wxSizelRC11wxValidatorRC8wxString
;wxCheckBox::SetLabel(const wxString&)
SetLabel__10wxCheckBoxFRC8wxString
- ;wxCheckBox::Command(wxCommandEvent&)
- Command__10wxCheckBoxFR14wxCommandEvent
;wxBitmapCheckBox::sm_classwxBitmapCheckBox
sm_classwxBitmapCheckBox__16wxBitmapCheckBox
;From object file: ..\os2\checklst.cpp
SetModal__8wxDialogFUl
;wxDialog::OnCancel(wxCommandEvent&)
OnCancel__8wxDialogFR14wxCommandEvent
- ;wxDialog::DoGetPosition(int*,int*) const
- DoGetPosition__8wxDialogCFPiT1
- ;wxDialog::IsIconized() const
- IsIconized__8wxDialogCFv
;wxDialog::IsModal() const
IsModal__8wxDialogCFv
;wxDialog::Create(wxWindow*,int,const wxString&,const wxPoint&,const wxSize&,long,const wxString&)
OnOK__8wxDialogFR14wxCommandEvent
;wxDialog::OnCloseWindow(wxCloseEvent&)
OnCloseWindow__8wxDialogFR12wxCloseEvent
- ;wxDialog::DoSetClientSize(int,int)
- DoSetClientSize__8wxDialogFiT1
;wxDialog::Init()
Init__8wxDialogFv
;wxDialog::ShowModal()
OnSysColourChanged__8wxDialogFR23wxSysColourChangedEvent
;wxDialog::DoShowModal()
DoShowModal__8wxDialogFv
- ;wxDialog::Destroy()
- Destroy__8wxDialogFv
- ;wxDialog::Iconize(unsigned long)
- Iconize__8wxDialogFUl
;wxDialog::Show(unsigned long)
Show__8wxDialogFUl
;wxDialog::OnApply(wxCommandEvent&)
OS2WindowProc__8wxDialogFUiPvT2
;wxDialog::GetEventTable() const
GetEventTable__8wxDialogCFv
- wxModelessWindows
;wxDialog::sm_eventTable
sm_eventTable__8wxDialog
;From object file: ..\os2\dir.cpp
FromString__20wxNativeEncodingInfoFRC8wxString
;From object file: ..\os2\frame.cpp
;PUBDEFs (Symbols available from object file):
- ;wxFrame::Show(unsigned long)
- Show__7wxFrameFUl
- ;wxFrame::Iconize(unsigned long)
- Iconize__7wxFrameFUl
;wxFrame::HandleMenuSelect(unsigned short,unsigned short,unsigned long)
HandleMenuSelect__7wxFrameFUsT1Ul
+ ;wxFrame::SendSizeEvent()
+ SendSizeEvent__7wxFrameFv
;wxFrame::OS2TranslateMessage(void**)
OS2TranslateMessage__7wxFrameFPPv
;wxFrame::HandlePaint()
HandleSize__7wxFrameFiT1Ui
;wxConstructorForwxFrame()
wxConstructorForwxFrame__Fv
- ;wxFrame::SetIcon(const wxIcon&)
- SetIcon__7wxFrameFRC6wxIcon
- ;wxFrame::Restore()
- Restore__7wxFrameFv
- ;wxFrame::IsMaximized() const
- IsMaximized__7wxFrameCFv
- ;wxFrame::IsIconized() const
- IsIconized__7wxFrameCFv
+ ;wxFrame::Raise()
+ Raise__7wxFrameFv
;wxFrame::GetClientAreaOrigin() const
GetClientAreaOrigin__7wxFrameCFv
;wxFrame::AttachMenuBar(wxMenuBar*)
OnSysColourChanged__7wxFrameFR23wxSysColourChangedEvent
;wxFrame::ShowFullScreen(unsigned long,long)
ShowFullScreen__7wxFrameFUll
- ;wxFrame::DoShowWindow(int)
- DoShowWindow__7wxFrameFi
+ ;wxFrame::m_bUseNativeStatusBar
+ m_bUseNativeStatusBar__7wxFrame
;wxFrame::sm_eventTable
sm_eventTable__7wxFrame
;wxFrame::sm_eventTableEntries
sm_eventTableEntries__7wxFrame
;wxFrame::sm_classwxFrame
sm_classwxFrame__7wxFrame
- ;wxFrame::m_bUseNativeStatusBar
- m_bUseNativeStatusBar__7wxFrame
;wxFrame::~wxFrame()
__dt__7wxFrameFv
;wxFrame::GetClient()
GetClient__7wxFrameFv
- ;wxFrame::OS2Create(int,wxWindow*,const char*,wxWindow*,const char*,int,int,int,int,long)
- OS2Create__7wxFrameFiP8wxWindowPCcT2T3N41l
;wxFrame::HandleCommand(unsigned short,unsigned short,unsigned long)
HandleCommand__7wxFrameFUsT1Ul
- ;wxFrame::DoGetSize(int*,int*) const
- DoGetSize__7wxFrameCFPiT1
- ;wxFrame::DoGetPosition(int*,int*) const
- DoGetPosition__7wxFrameCFPiT1
;wxFrame::PositionStatusBar()
PositionStatusBar__7wxFrameFv
;wxFrame::PositionToolBar()
OS2WindowProc__7wxFrameFUiPvT2
;wxFrame::InternalSetMenuBar()
InternalSetMenuBar__7wxFrameFv
+ ;wxFrame::GetDefaultIcon() const
+ GetDefaultIcon__7wxFrameCFv
;wxFrame::CreateToolBar(long,int,const wxString&)
CreateToolBar__7wxFrameFliRC8wxString
- ;wxFrame::Maximize(unsigned long)
- Maximize__7wxFrameFUl
- ;wxFrame::SetClient(unsigned long)
- SetClient__7wxFrameFUl
;wxFrame::IconizeChildFrames(unsigned long)
IconizeChildFrames__7wxFrameFUl
+ ;wxFrame::SetClient(unsigned long)
+ SetClient__7wxFrameFUl
;wxFrame::DoGetClientSize(int*,int*) const
DoGetClientSize__7wxFrameCFPiT1
;wxFrame::Init()
GetEventTable__7wxFrameCFv
;wxFrame::DetachMenuBar()
DetachMenuBar__7wxFrameFv
- ;wxFrame::AlterChildPos()
- AlterChildPos__7wxFrameFv
wxFrameMainWndProc
wxFrameWndProc
;wxFrame::SetClient(wxWindow*)
Remove__9wxToolTipFv
;wxToolTip::hwndTT
hwndTT__9wxToolTip
+ ;From object file: ..\os2\toplevel.cpp
+ ;PUBDEFs (Symbols available from object file):
+ __vft19wxTopLevelWindowOS28wxObject
+ ;wxTopLevelWindowOS2::CreateFrame(const wxString&,const wxPoint&,const wxSize&)
+ CreateFrame__19wxTopLevelWindowOS2FRC8wxStringRC7wxPointRC6wxSize
+ ;wxTopLevelWindowOS2::~wxTopLevelWindowOS2()
+ __dt__19wxTopLevelWindowOS2Fv
+ ;wxTopLevelWindowOS2::ShowFullScreen(unsigned long,long)
+ ShowFullScreen__19wxTopLevelWindowOS2FUll
+ ;wxTopLevelWindowOS2::CreateDialog(unsigned long,const wxString&,const wxPoint&,const wxSize&)
+ CreateDialog__19wxTopLevelWindowOS2FUlRC8wxStringRC7wxPointRC6wxSize
+ ;wxTopLevelWindowOS2::DoShowWindow(int)
+ DoShowWindow__19wxTopLevelWindowOS2Fi
+ ;wxTopLevelWindowOS2::Init()
+ Init__19wxTopLevelWindowOS2Fv
+ ;wxTopLevelWindowOS2::OS2GetCreateWindowFlags(long*) const
+ OS2GetCreateWindowFlags__19wxTopLevelWindowOS2CFPl
+ ;wxTopLevelWindowOS2::Iconize(unsigned long)
+ Iconize__19wxTopLevelWindowOS2FUl
+ ;wxTopLevelWindowOS2::DoSetClientSize(int,int)
+ DoSetClientSize__19wxTopLevelWindowOS2FiT1
+ ;wxTopLevelWindowOS2::AlterChildPos()
+ AlterChildPos__19wxTopLevelWindowOS2Fv
+ ;wxTopLevelWindowOS2::SetIcon(const wxIcon&)
+ SetIcon__19wxTopLevelWindowOS2FRC6wxIcon
+ ;wxTopLevelWindowOS2::Restore()
+ Restore__19wxTopLevelWindowOS2Fv
+ ;wxTopLevelWindowOS2::IsMaximized() const
+ IsMaximized__19wxTopLevelWindowOS2CFv
+ ;wxTopLevelWindowOS2::Maximize(unsigned long)
+ Maximize__19wxTopLevelWindowOS2FUl
+ ;wxTopLevelWindowOS2::EnableCloseButton(unsigned long)
+ EnableCloseButton__19wxTopLevelWindowOS2FUl
+ ;wxTopLevelWindowOS2::DoGetClientSize(int*,int*) const
+ DoGetClientSize__19wxTopLevelWindowOS2CFPiT1
+ ;wxTopLevelWindowOS2::Create(wxWindow*,int,const wxString&,const wxPoint&,const wxSize&,long,const wxString&)
+ Create__19wxTopLevelWindowOS2FP8wxWindowiRC8wxStringRC7wxPointRC6wxSizelT3
+ ;wxTopLevelWindowOS2::Show(unsigned long)
+ Show__19wxTopLevelWindowOS2FUl
+ ;wxTopLevelWindowOS2::IsIconized() const
+ IsIconized__19wxTopLevelWindowOS2CFv
+ wxDlgProc
+ wxModelessWindows
;From object file: ..\os2\utils.cpp
;PUBDEFs (Symbols available from object file):
gs_wxBusyCursorOld
HandleMouseMove__8wxWindowFiT1Ui
;wxWindow::Raise()
Raise__8wxWindowFv
+ ;wxWindowCreationHook::~wxWindowCreationHook()
+ __dt__20wxWindowCreationHookFv
+ ;wxWindow::Update()
+ Update__8wxWindowFv
;wxWindow::UnsubclassWin()
UnsubclassWin__8wxWindowFv
;wxWindow::Lower()
HandleMaximize__8wxWindowFv
;wxWindow::HandleDestroy()
HandleDestroy__8wxWindowFv
+ ;wxWindow::Freeze()
+ Freeze__8wxWindowFv
;wxWindow::DoPopupMenu(wxMenu*,int,int)
DoPopupMenu__8wxWindowFP6wxMenuiT2
;wxWindow::UnpackCommand(void*,void*,unsigned short*,unsigned long*,unsigned short*)
sm_eventTable__8wxWindow
;wxWindow::sm_classwxWindow
sm_classwxWindow__8wxWindow
+ ;wxWindowCreationHook::wxWindowCreationHook(wxWindow*)
+ __ct__20wxWindowCreationHookFP8wxWindow
;wxWindow::SetScrollPos(int,int,unsigned long)
SetScrollPos__8wxWindowFiT1Ul
;wxCharCodeWXToOS2(int,unsigned long*)
OS2OnMeasureItem__8wxWindowFiPPv
;wxWindow::OS2DestroyWindow()
OS2DestroyWindow__8wxWindowFv
+ ;wxWindow::IsMouseInWindow() const
+ IsMouseInWindow__8wxWindowCFv
;wxWindow::HandleKeyUp(unsigned long,void*)
HandleKeyUp__8wxWindowFUlPv
;wxWindow::HandleKeyDown(unsigned short,void*)
wxWndHook
;wxWindow::Reparent(wxWindow*)
Reparent__8wxWindowFP8wxWindow
+ ;wxWindow::OS2GetCreateWindowCoords(const wxPoint&,const wxSize&,int&,int&,int&,int&) const
+ OS2GetCreateWindowCoords__8wxWindowCFRC7wxPointRC6wxSizeRiN33
;wxWindow::Enable(unsigned long)
Enable__8wxWindowFUl
wxWinHandleList
;wxAssociateWinWithHandle(unsigned long,wxWindow*)
wxAssociateWinWithHandle__FUlP8wxWindow
s_currentMsg
+ ;wxWindow::OS2Create(char*,const char*,unsigned long,const wxPoint&,const wxSize&,void*,unsigned long,unsigned long)
+ OS2Create__8wxWindowFPcPCcUlRC7wxPointRC6wxSizePvN23
;wxWindow::GetOS2ParentHeight(wxWindow*)
GetOS2ParentHeight__8wxWindowFP8wxWindow
;wxWindow::Refresh(unsigned long,const wxRect*)
__dt__8wxWindowFv
;wxGetActiveWindow()
wxGetActiveWindow__Fv
+ ;wxCheckWindowWndProc(unsigned long,void*(*)(unsigned long,unsigned long,void*,void*))
+ wxCheckWindowWndProc__FUlPFUlT1PvT3_Pv
+ ;wxWindow::Thaw()
+ Thaw__8wxWindowFv
;wxWindow::OS2WindowProc(unsigned int,void*,void*)
OS2WindowProc__8wxWindowFUiPvT2
;wxWindow::OS2TranslateMessage(void**)
HandleActivate__8wxWindowFiUl
;wxWindow::FindItemByHWND(unsigned long,unsigned long) const
FindItemByHWND__8wxWindowCFUlT1
- ;wxWindow::OS2Create(unsigned long,char*,const char*,unsigned long,long,long,long,long,unsigned long,unsigned long,unsigned long,void*,void*,unsigned long)
- OS2Create__8wxWindowFUlPcPCcT1lN35N31PvT12_T1
;wxWindow::HandleChar(unsigned long,void*,unsigned long)
HandleChar__8wxWindowFUlPvT1
;wxWindow::DoMoveWindow(int,int,int,int)