OS/2 scrolling support for controls
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@13430 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
parent
bdb2ce96bb
commit
5d44b24ee6
@ -70,6 +70,15 @@ bool wxButton::Create(
|
||||
//
|
||||
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
|
||||
|
@ -34,52 +34,90 @@ IMPLEMENT_DYNAMIC_CLASS(wxBitmapCheckBox, wxCheckBox)
|
||||
// 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;
|
||||
}
|
||||
} // end of wxCheckBox::OS2Command
|
||||
|
||||
// Single check box item
|
||||
bool wxCheckBox::Create(wxWindow *parent, wxWindowID id, const wxString& label,
|
||||
const wxPoint& pos,
|
||||
const wxSize& size, long style,
|
||||
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;
|
||||
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;
|
||||
long lSstyle = 0L;
|
||||
|
||||
// TODO: create checkbox
|
||||
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();
|
||||
@ -90,45 +128,73 @@ bool wxCheckBox::Create(wxWindow *parent, wxWindowID id, const wxString& label,
|
||||
,(PVOID)&lColor
|
||||
);
|
||||
|
||||
SetFont(parent->GetFont());
|
||||
SetFont(pParent->GetFont());
|
||||
|
||||
SetSize(x, y, width, height);
|
||||
SetSize( nX
|
||||
,nY
|
||||
,nWidth
|
||||
,nHeight
|
||||
);
|
||||
return TRUE;
|
||||
} // end of wxCheckBox::Create
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
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;
|
||||
|
||||
wxString str = wxGetWindowText(GetHWND());
|
||||
|
||||
if ( !str.IsEmpty() )
|
||||
if (!nCheckSize)
|
||||
{
|
||||
GetTextExtent(str, &wCheckbox, &hCheckbox);
|
||||
wCheckbox += RADIO_SIZE;
|
||||
wxScreenDC vDc;
|
||||
|
||||
if ( hCheckbox < RADIO_SIZE )
|
||||
hCheckbox = RADIO_SIZE;
|
||||
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();
|
||||
}
|
||||
|
||||
int nWidthCheckbox;
|
||||
int nHeightCheckbox;
|
||||
wxString sStr = wxGetWindowText(GetHWND());
|
||||
|
||||
if (!sStr.IsEmpty())
|
||||
{
|
||||
GetTextExtent( sStr
|
||||
,&nWidthCheckbox
|
||||
,&nHeightCheckbox
|
||||
);
|
||||
nWidthCheckbox += nCheckSize + GetCharWidth();
|
||||
|
||||
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
|
||||
@ -136,101 +202,82 @@ void wxCheckBox::SetValue(bool val)
|
||||
|
||||
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);
|
||||
//
|
||||
SubclassWin((WXHWND)hButton);
|
||||
|
||||
SetSize(x, y, width, height);
|
||||
|
||||
// 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
|
||||
|
||||
|
@ -50,8 +50,8 @@ bool wxChoice::Create(
|
||||
))
|
||||
return FALSE;
|
||||
lSstyle = CBS_DROPDOWNLIST |
|
||||
WS_TABSTOP |
|
||||
WS_VISIBLE;
|
||||
WS_TABSTOP |
|
||||
WS_VISIBLE;
|
||||
|
||||
if (lStyle & wxCLIP_SIBLINGS )
|
||||
lSstyle |= WS_CLIPSIBLINGS;
|
||||
|
@ -163,6 +163,7 @@ bool wxComboBox::Create(
|
||||
gfnWndprocEdit = (WXFARPROC)::WinSubclassWindow( (HWND)GetHwnd()
|
||||
,(PFNWP)wxComboEditWndProc
|
||||
);
|
||||
::WinSetWindowULong(GetHwnd(), QWL_USER, (ULONG)this);
|
||||
return TRUE;
|
||||
} // end of wxComboBox::Create
|
||||
|
||||
|
@ -113,6 +113,10 @@ bool wxControl::OS2CreateControl(
|
||||
, 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
|
||||
//
|
||||
@ -121,6 +125,42 @@ bool wxControl::OS2CreateControl(
|
||||
dwExstyle = GetExStyle(dwStyle);
|
||||
}
|
||||
|
||||
wxWindow* pParent = GetParent();
|
||||
PSZ zClass;
|
||||
|
||||
if (!pParent)
|
||||
return FALSE;
|
||||
|
||||
if ((strcmp(zClassname, "COMBOBOX")) == 0)
|
||||
zClass = WC_COMBOBOX;
|
||||
else if ((strcmp(zClassname, "STATIC")) == 0)
|
||||
zClass = WC_STATIC;
|
||||
dwStyle |= WS_VISIBLE;
|
||||
|
||||
//
|
||||
// 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__
|
||||
@ -129,29 +169,6 @@ bool wxControl::OS2CreateControl(
|
||||
|
||||
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
|
||||
);
|
||||
|
||||
//
|
||||
// Subclass again for purposes of dialog editing mode
|
||||
//
|
||||
@ -161,6 +178,8 @@ bool wxControl::OS2CreateControl(
|
||||
// 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
|
||||
|
||||
|
@ -31,23 +31,18 @@
|
||||
#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()
|
||||
{
|
||||
@ -76,64 +71,27 @@ bool wxDialog::Create(
|
||||
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);
|
||||
|
||||
//
|
||||
// Save focus before doing anything which can potentially change it
|
||||
//
|
||||
m_pOldFocus = FindFocus();
|
||||
|
||||
//
|
||||
// All dialogs should really have this style
|
||||
//
|
||||
m_windowStyle |= wxTAB_TRAVERSAL;
|
||||
lStyle |= wxTAB_TRAVERSAL;
|
||||
|
||||
//
|
||||
// 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)
|
||||
//
|
||||
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)
|
||||
{
|
||||
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
|
||||
@ -143,35 +101,21 @@ void wxDialog::SetModal(
|
||||
)
|
||||
{
|
||||
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
|
||||
|
||||
//
|
||||
@ -208,64 +152,9 @@ void wxDialog::OnCharHook(
|
||||
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
|
||||
{
|
||||
@ -407,7 +296,7 @@ bool wxDialog::Show(
|
||||
wxModalDialogs.DeleteObject(this);
|
||||
}
|
||||
}
|
||||
return FALSE;
|
||||
return TRUE;
|
||||
} // end of wxDialog::Show
|
||||
|
||||
//
|
||||
@ -431,6 +320,10 @@ void wxDialog::EndModal(
|
||||
Show(FALSE);
|
||||
} // end of wxDialog::EndModal
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// wxWin event handlers
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
void wxDialog::OnApply(
|
||||
wxCommandEvent& rEvent
|
||||
)
|
||||
@ -495,17 +388,6 @@ void wxDialog::OnCloseWindow(
|
||||
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
|
||||
)
|
||||
|
@ -52,7 +52,7 @@
|
||||
|
||||
extern wxWindowList wxModelessWindows;
|
||||
extern wxList WXDLLEXPORT wxPendingDelete;
|
||||
extern wxChar wxFrameClassName[];
|
||||
extern const wxChar* wxFrameClassName;
|
||||
|
||||
#if wxUSE_MENUS_NATIVE
|
||||
extern wxMenu *wxCurrentPopupMenu;
|
||||
@ -96,39 +96,33 @@ IMPLEMENT_DYNAMIC_CLASS(wxFrame, wxWindow)
|
||||
|
||||
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_hFrame = NULL;
|
||||
m_hTitleBar = NULL;
|
||||
m_hHScroll = NULL;
|
||||
m_hVScroll = NULL;
|
||||
|
||||
m_frameMenuBar = NULL;
|
||||
m_frameToolBar = NULL;
|
||||
m_frameStatusBar = 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(
|
||||
@ -137,153 +131,30 @@ 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.
|
||||
//
|
||||
@ -292,19 +163,15 @@ void wxFrame::DoGetClientSize(
|
||||
, 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
|
||||
|
||||
//
|
||||
@ -316,214 +183,48 @@ void wxFrame::DoSetClientSize(
|
||||
, int nHeight
|
||||
)
|
||||
{
|
||||
HWND hWnd = GetHwnd();
|
||||
RECTL vRect;
|
||||
RECTL vRect2;
|
||||
|
||||
::WinQueryWindowRect(GetHwnd(), &vRect);
|
||||
::WinQueryWindowRect(GetHwnd(), &vRect2);
|
||||
|
||||
//
|
||||
// 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!
|
||||
//
|
||||
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);
|
||||
//
|
||||
// Statusbars are not part of the OS/2 Client but parent frame
|
||||
// so no statusbar consideration
|
||||
//
|
||||
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)
|
||||
if (!m_bIconized)
|
||||
{
|
||||
nShowCmd = SWP_SHOW;
|
||||
RECTL vRect = wxGetWindowRect(GetHwnd());
|
||||
|
||||
(void)::WinPostMsg( m_hFrame
|
||||
,WM_SIZE
|
||||
,MPFROM2SHORT(vRect.xRight - vRect.xLeft, vRect.yTop - vRect.yBottom)
|
||||
,MPFROM2SHORT(vRect.xRight - vRect.xLeft, vRect.yTop - vRect.yBottom)
|
||||
);
|
||||
}
|
||||
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
|
||||
{
|
||||
//
|
||||
// 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);
|
||||
|
||||
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
|
||||
);
|
||||
}
|
||||
} // end of wxFrame::SetIcon
|
||||
}
|
||||
|
||||
#if wxUSE_STATUSBAR
|
||||
wxStatusBar* wxFrame::OnCreateStatusBar(
|
||||
@ -960,191 +661,6 @@ bool wxFrame::ShowFullScreen(
|
||||
//
|
||||
// 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.
|
||||
@ -1357,6 +873,11 @@ void wxFrame::IconizeChildFrames(
|
||||
}
|
||||
} // end of wxFrame::IconizeChildFrames
|
||||
|
||||
WXHICON wxFrame::GetDefaultIcon() const
|
||||
{
|
||||
return (WXHICON)(wxSTD_FRAME_ICON ? wxSTD_FRAME_ICON
|
||||
: wxDEFAULT_FRAME_ICON);
|
||||
}
|
||||
// ===========================================================================
|
||||
// message processing
|
||||
// ===========================================================================
|
||||
|
@ -155,7 +155,14 @@ bool wxGauge::Create(
|
||||
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
|
||||
|
@ -142,6 +142,15 @@ bool wxListBox::Create(
|
||||
//
|
||||
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
|
||||
@ -170,6 +179,29 @@ bool wxListBox::Create(
|
||||
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
|
||||
|
@ -526,6 +526,7 @@ OS2OBJS = \
|
||||
..\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 \
|
||||
@ -610,6 +611,7 @@ OS2LIBOBJS2 = \
|
||||
timer.obj \
|
||||
toolbar.obj \
|
||||
tooltip.obj \
|
||||
toplevel.obj \
|
||||
utils.obj \
|
||||
utilsexc.obj \
|
||||
wave.obj \
|
||||
@ -958,6 +960,7 @@ $(OS2LIBOBJS2):
|
||||
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
|
||||
|
@ -294,7 +294,11 @@ bool wxRadioBox::Create(
|
||||
|
||||
|
||||
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
|
||||
@ -341,11 +345,19 @@ bool wxRadioBox::Create(
|
||||
,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;
|
||||
@ -374,11 +386,19 @@ bool wxRadioBox::Create(
|
||||
,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
|
||||
|
@ -81,6 +81,15 @@ bool wxRadioButton::Create(
|
||||
|
||||
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()
|
||||
|
@ -200,6 +200,15 @@ bool wxSlider::Create(
|
||||
{
|
||||
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
|
||||
@ -219,6 +228,15 @@ bool wxSlider::Create(
|
||||
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
|
||||
@ -263,6 +281,15 @@ bool wxSlider::Create(
|
||||
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;
|
||||
@ -311,6 +338,15 @@ bool wxSlider::Create(
|
||||
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
|
||||
|
@ -102,6 +102,15 @@ bool wxSpinButton::Create(
|
||||
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);
|
||||
|
@ -151,6 +151,15 @@ bool wxSpinCtrl::Create(
|
||||
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);
|
||||
|
@ -66,6 +66,15 @@ bool wxStaticText::Create(
|
||||
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
|
||||
|
@ -117,37 +117,11 @@ bool wxTextCtrl::Create(
|
||||
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;
|
||||
@ -180,10 +154,15 @@ bool wxTextCtrl::Create(
|
||||
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
|
||||
@ -244,6 +223,13 @@ bool wxTextCtrl::Create(
|
||||
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
|
||||
|
@ -369,7 +369,6 @@ bool wxWindowOS2::Create(
|
||||
)
|
||||
{
|
||||
HWND hParent = NULLHANDLE;
|
||||
wxPoint vPos = rPos; // The OS/2 position
|
||||
ULONG ulCreateFlags = 0;
|
||||
WXDWORD dwExStyle = 0;
|
||||
|
||||
@ -442,23 +441,17 @@ bool wxWindowOS2::Create(
|
||||
}
|
||||
|
||||
//
|
||||
// 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);
|
||||
@ -1084,6 +1077,19 @@ void wxWindowOS2::UnsubclassWin()
|
||||
}
|
||||
} // 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
|
||||
//
|
||||
@ -1416,9 +1422,17 @@ void wxWindowOS2::DoGetSize(
|
||||
, 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)
|
||||
@ -1514,18 +1528,9 @@ void wxWindowOS2::DoGetClientSize(
|
||||
) 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)
|
||||
@ -1596,8 +1601,29 @@ void wxWindowOS2::DoSetSize(
|
||||
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;
|
||||
@ -2860,148 +2886,134 @@ bool wxWindowOS2::OS2GetCreateWindowCoords(
|
||||
} // 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;
|
||||
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);
|
||||
|
||||
//
|
||||
// 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;
|
||||
OS2GetCreateWindowCoords( rPos
|
||||
,rSize
|
||||
,nX
|
||||
,nY
|
||||
,nWidth
|
||||
,nHeight
|
||||
);
|
||||
|
||||
wxWndHook = this;
|
||||
|
||||
//
|
||||
// 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;
|
||||
}
|
||||
}
|
||||
|
||||
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
|
||||
//
|
||||
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 (bIsChild)
|
||||
{
|
||||
vError = ::WinGetLastError(vHabmain);
|
||||
sError = wxPMErrorToStr(vError);
|
||||
wxLogError("Can't create window of class %s!. Error: %s\n", zClass, sError);
|
||||
return FALSE;
|
||||
}
|
||||
m_dwExStyle = dwExStyle;
|
||||
::WinSetWindowULong(m_hWnd, QWL_USER, (ULONG) this);
|
||||
wxWndHook = NULL;
|
||||
|
||||
#ifdef __WXDEBUG__
|
||||
wxNode* pNode = wxWinHandleList->Member(this);
|
||||
|
||||
if (pNode)
|
||||
{
|
||||
HWND hWnd = (HWND)pNode->GetKeyInteger();
|
||||
|
||||
if (hWnd != (HWND)m_hWnd)
|
||||
|
||||
lControlId = GetId();
|
||||
if (GetWindowStyleFlag() & wxCLIP_SIBLINGS)
|
||||
{
|
||||
wxLogError("A second HWND association is being added for the same window!");
|
||||
dwStyle |= WS_CLIPSIBLINGS;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
wxAssociateWinWithHandle((HWND)m_hWnd
|
||||
,this
|
||||
);
|
||||
//
|
||||
// Now need to subclass window.
|
||||
// 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
|
||||
//
|
||||
if(!nNeedsubclass)
|
||||
if (GetWindowStyleFlag() & wxNO_FULL_REPAINT_ON_RESIZE)
|
||||
{
|
||||
wxAssociateWinWithHandle((HWND)m_hWnd,this);
|
||||
sClassName += wxT("NR");
|
||||
}
|
||||
|
||||
//
|
||||
// If the window being created is a Frame's Statusbar we need to use
|
||||
// the actual Frame's size, not its client
|
||||
//
|
||||
if (pParent)
|
||||
{
|
||||
if (IsKindOf(CLASSINFO(wxStatusBar)) &&
|
||||
pParent->IsKindOf(CLASSINFO(wxFrame)))
|
||||
{
|
||||
RECTL vRect;
|
||||
wxFrame* pFrame = wxDynamicCast(pParent, wxFrame);
|
||||
|
||||
::WinQueryWindowRect((HWND)pFrame->GetFrame(), &vRect);
|
||||
nY = vRect.yTop - (nY + nHeight);
|
||||
}
|
||||
else
|
||||
nY = pParent->GetSize().y - (nY + nHeight);
|
||||
}
|
||||
else
|
||||
{
|
||||
SubclassWin(GetHWND());
|
||||
RECTL vRect;
|
||||
|
||||
::WinQueryWindowRect(HWND_DESKTOP, &vRect);
|
||||
nY = vRect.yTop - (nY + nHeight);
|
||||
}
|
||||
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)
|
||||
{
|
||||
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
|
||||
|
193
src/os2/wx23.def
193
src/os2/wx23.def
@ -4,7 +4,7 @@ DATA MULTIPLE NONSHARED READWRITE LOADONCALL
|
||||
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
|
||||
@ -888,8 +888,29 @@ EXPORTS
|
||||
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
|
||||
@ -2018,6 +2039,8 @@ EXPORTS
|
||||
;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)
|
||||
@ -2166,16 +2189,26 @@ EXPORTS
|
||||
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
|
||||
@ -2186,19 +2219,47 @@ EXPORTS
|
||||
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()
|
||||
@ -5086,6 +5147,8 @@ EXPORTS
|
||||
Upper__8wxStringCFv
|
||||
;wxString::IsNumber() const
|
||||
IsNumber__8wxStringCFv
|
||||
;wxArrayString::GetStringArray() const
|
||||
GetStringArray__13wxArrayStringCFv
|
||||
;wxArrayString::Empty()
|
||||
Empty__13wxArrayStringFv
|
||||
;wxArrayString::Copy(const wxArrayString&)
|
||||
@ -5457,12 +5520,14 @@ EXPORTS
|
||||
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
|
||||
@ -5474,6 +5539,8 @@ EXPORTS
|
||||
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
|
||||
@ -11132,8 +11199,6 @@ EXPORTS
|
||||
;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
|
||||
@ -11142,8 +11207,6 @@ EXPORTS
|
||||
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
|
||||
@ -11815,10 +11878,6 @@ EXPORTS
|
||||
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&)
|
||||
@ -11832,8 +11891,6 @@ EXPORTS
|
||||
OnOK__8wxDialogFR14wxCommandEvent
|
||||
;wxDialog::OnCloseWindow(wxCloseEvent&)
|
||||
OnCloseWindow__8wxDialogFR12wxCloseEvent
|
||||
;wxDialog::DoSetClientSize(int,int)
|
||||
DoSetClientSize__8wxDialogFiT1
|
||||
;wxDialog::Init()
|
||||
Init__8wxDialogFv
|
||||
;wxDialog::ShowModal()
|
||||
@ -11847,10 +11904,6 @@ EXPORTS
|
||||
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&)
|
||||
@ -11865,7 +11918,6 @@ EXPORTS
|
||||
OS2WindowProc__8wxDialogFUiPvT2
|
||||
;wxDialog::GetEventTable() const
|
||||
GetEventTable__8wxDialogCFv
|
||||
wxModelessWindows
|
||||
;wxDialog::sm_eventTable
|
||||
sm_eventTable__8wxDialog
|
||||
;From object file: ..\os2\dir.cpp
|
||||
@ -12072,12 +12124,10 @@ EXPORTS
|
||||
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()
|
||||
@ -12093,14 +12143,8 @@ EXPORTS
|
||||
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*)
|
||||
@ -12111,28 +12155,20 @@ EXPORTS
|
||||
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()
|
||||
@ -12141,14 +12177,14 @@ EXPORTS
|
||||
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()
|
||||
@ -12159,8 +12195,6 @@ EXPORTS
|
||||
GetEventTable__7wxFrameCFv
|
||||
;wxFrame::DetachMenuBar()
|
||||
DetachMenuBar__7wxFrameFv
|
||||
;wxFrame::AlterChildPos()
|
||||
AlterChildPos__7wxFrameFv
|
||||
wxFrameMainWndProc
|
||||
wxFrameWndProc
|
||||
;wxFrame::SetClient(wxWindow*)
|
||||
@ -14036,6 +14070,49 @@ EXPORTS
|
||||
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
|
||||
@ -14178,6 +14255,10 @@ EXPORTS
|
||||
HandleMouseMove__8wxWindowFiT1Ui
|
||||
;wxWindow::Raise()
|
||||
Raise__8wxWindowFv
|
||||
;wxWindowCreationHook::~wxWindowCreationHook()
|
||||
__dt__20wxWindowCreationHookFv
|
||||
;wxWindow::Update()
|
||||
Update__8wxWindowFv
|
||||
;wxWindow::UnsubclassWin()
|
||||
UnsubclassWin__8wxWindowFv
|
||||
;wxWindow::Lower()
|
||||
@ -14186,6 +14267,8 @@ EXPORTS
|
||||
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*)
|
||||
@ -14196,6 +14279,8 @@ EXPORTS
|
||||
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*)
|
||||
@ -14228,6 +14313,8 @@ EXPORTS
|
||||
OS2OnMeasureItem__8wxWindowFiPPv
|
||||
;wxWindow::OS2DestroyWindow()
|
||||
OS2DestroyWindow__8wxWindowFv
|
||||
;wxWindow::IsMouseInWindow() const
|
||||
IsMouseInWindow__8wxWindowCFv
|
||||
;wxWindow::HandleKeyUp(unsigned long,void*)
|
||||
HandleKeyUp__8wxWindowFUlPv
|
||||
;wxWindow::HandleKeyDown(unsigned short,void*)
|
||||
@ -14241,6 +14328,8 @@ EXPORTS
|
||||
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
|
||||
@ -14293,6 +14382,8 @@ EXPORTS
|
||||
;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*)
|
||||
@ -14340,6 +14431,10 @@ EXPORTS
|
||||
__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**)
|
||||
@ -14374,8 +14469,6 @@ EXPORTS
|
||||
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)
|
||||
|
Loading…
Reference in New Issue
Block a user