Lots of OS/2 Updates mirroring msw updates

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@10377 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
David Webster
2001-05-29 18:59:17 +00:00
parent 30bc4a8fc0
commit 1ec46a5b35
10 changed files with 1101 additions and 242 deletions

View File

@@ -66,7 +66,6 @@ public:
// override some more virtuals // override some more virtuals
virtual bool Show(bool bShow = TRUE); virtual bool Show(bool bShow = TRUE);
virtual void RemoveChild(wxWindowBase* pChild);
// event handlers // event handlers
void OnActivate(wxActivateEvent& rEvent); void OnActivate(wxActivateEvent& rEvent);
@@ -141,6 +140,12 @@ public:
void SetToolTipCtrl(WXHWND hHwndTT) { m_hWndToolTip = hHwndTT; } void SetToolTipCtrl(WXHWND hHwndTT) { m_hWndToolTip = hHwndTT; }
#endif // tooltips #endif // tooltips
//
// Called by wxWindow whenever it gets focus
//
void SetLastFocus(wxWindow* pWin) { m_pWinLastFocused = pWin; }
wxWindow *GetLastFocus(void) const { return m_pWinLastFocused; }
void SetClient(WXHWND c_Hwnd); void SetClient(WXHWND c_Hwnd);
void SetClient(wxWindow* c_Window); void SetClient(wxWindow* c_Window);
wxWindow *GetClient(); wxWindow *GetClient();

View File

@@ -305,6 +305,9 @@
#define wxUSE_OWNER_DRAWN 1 #define wxUSE_OWNER_DRAWN 1
// Owner-drawn menus and listboxes // Owner-drawn menus and listboxes
#define wxUSE_NEW_GRID 1
// Define 1 to use the new drid classes
/* /*
* Any platform * Any platform
* *

View File

@@ -305,6 +305,8 @@
#define wxUSE_OWNER_DRAWN 1 #define wxUSE_OWNER_DRAWN 1
// Owner-drawn menus and listboxes // Owner-drawn menus and listboxes
#define wxUSE_NEW_GRID 1
// Define 1 to use the new drid classes
/* /*
* Any platform * Any platform
* *

View File

@@ -15,9 +15,6 @@
class WXDLLEXPORT wxTextCtrl : public wxTextCtrlBase class WXDLLEXPORT wxTextCtrl : public wxTextCtrlBase
{ {
public: public:
// creation
// --------
wxTextCtrl(); wxTextCtrl();
wxTextCtrl( wxWindow* pParent wxTextCtrl( wxWindow* pParent
,wxWindowID vId ,wxWindowID vId
@@ -46,9 +43,10 @@ public:
,const wxString& rsName = wxTextCtrlNameStr ,const wxString& rsName = wxTextCtrlNameStr
); );
// implement base class pure virtuals //
// Implement base class pure virtuals
// ---------------------------------- // ----------------------------------
//
virtual wxString GetValue(void) const; virtual wxString GetValue(void) const;
virtual void SetValue(const wxString& rsValue); virtual void SetValue(const wxString& rsValue);
@@ -59,15 +57,13 @@ public:
virtual bool IsModified(void) const; virtual bool IsModified(void) const;
virtual bool IsEditable(void) const; virtual bool IsEditable(void) const;
// If the return values from and to are the same, there is no selection.
virtual void GetSelection( long* pFrom virtual void GetSelection( long* pFrom
,long* pTo ,long* pTo
) const; ) const;
//
// operations // Operations
// ---------- // ----------
//
// editing
virtual void Clear(void); virtual void Clear(void);
virtual void Replace( long lFrom virtual void Replace( long lFrom
,long lTo ,long lTo
@@ -77,20 +73,17 @@ public:
,long lTo ,long lTo
); );
// load the controls contents from the file
virtual bool LoadFile(const wxString& rsFile); virtual bool LoadFile(const wxString& rsFile);
// clears the dirty flag
virtual void DiscardEdits(void); virtual void DiscardEdits(void);
// writing text inserts it at the current position, appending always
// inserts it at the end
virtual void WriteText(const wxString& rsText); virtual void WriteText(const wxString& rsText);
virtual void AppendText(const wxString& rsText); virtual void AppendText(const wxString& rsText);
// translate between the position (which is just an index in the text ctrl virtual bool SetStyle( long lStart
// considering all its contents as a single strings) and (x, y) coordinates ,long lEnd
// which represent column and line. ,const wxTextAttr& rStyle
);
virtual long XYToPosition( long lX virtual long XYToPosition( long lX
,long lY ,long lY
) const; ) const;
@@ -101,7 +94,6 @@ public:
virtual void ShowPosition(long lPos); virtual void ShowPosition(long lPos);
// Clipboard operations
virtual void Copy(void); virtual void Copy(void);
virtual void Cut(void); virtual void Cut(void);
virtual void Paste(void); virtual void Paste(void);
@@ -110,14 +102,12 @@ public:
virtual bool CanCut(void) const; virtual bool CanCut(void) const;
virtual bool CanPaste(void) const; virtual bool CanPaste(void) const;
// Undo/redo
virtual void Undo(void); virtual void Undo(void);
virtual void Redo(void); virtual void Redo(void);
virtual bool CanUndo(void) const; virtual bool CanUndo(void) const;
virtual bool CanRedo(void) const; virtual bool CanRedo(void) const;
// Insertion point
virtual void SetInsertionPoint(long lPos); virtual void SetInsertionPoint(long lPos);
virtual void SetInsertionPointEnd(void); virtual void SetInsertionPointEnd(void);
virtual long GetInsertionPoint(void) const; virtual long GetInsertionPoint(void) const;

View File

@@ -1109,15 +1109,6 @@ void wxFrame::OnActivate(
} }
} // end of wxFrame::OnActivate } // end of wxFrame::OnActivate
void wxFrame::RemoveChild(
wxWindowBase* pChild
)
{
if (pChild == m_pWinLastFocused)
m_pWinLastFocused = NULL;
wxFrameBase::RemoveChild(pChild);
} // end of wxFrame::RemoveChild
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
// wxFrame size management: we exclude the areas taken by menu/status/toolbars // wxFrame size management: we exclude the areas taken by menu/status/toolbars
// from the client area, so the client area is what's really available for the // from the client area, so the client area is what's really available for the

View File

@@ -105,6 +105,7 @@ GENERICOBJS= \
..\generic\$D\dragimgg.obj \ ..\generic\$D\dragimgg.obj \
..\generic\$D\fontdlgg.obj \ ..\generic\$D\fontdlgg.obj \
..\generic\$D\grid.obj \ ..\generic\$D\grid.obj \
..\generic\$D\gridctrl.obj \
..\generic\$D\gridsel.obj \ ..\generic\$D\gridsel.obj \
..\generic\$D\helpext.obj \ ..\generic\$D\helpext.obj \
..\generic\$D\helphtml.obj \ ..\generic\$D\helphtml.obj \
@@ -149,6 +150,7 @@ GENLIBOBJS= \
dragimgg.obj \ dragimgg.obj \
fontdlgg.obj \ fontdlgg.obj \
grid.obj \ grid.obj \
gridctrl.obj \
gridsel.obj \ gridsel.obj \
helpext.obj \ helpext.obj \
helphtml.obj \ helphtml.obj \
@@ -770,6 +772,7 @@ $(GENLIBOBJS):
copy ..\generic\$D\dirctrlg.obj copy ..\generic\$D\dirctrlg.obj
copy ..\generic\$D\fontdlgg.obj copy ..\generic\$D\fontdlgg.obj
copy ..\generic\$D\grid.obj copy ..\generic\$D\grid.obj
copy ..\generic\$D\gridctrl.obj
copy ..\generic\$D\gridsel.obj copy ..\generic\$D\gridsel.obj
copy ..\generic\$D\helpext.obj copy ..\generic\$D\helpext.obj
copy ..\generic\$D\helphtml.obj copy ..\generic\$D\helphtml.obj

View File

@@ -389,7 +389,7 @@ bool wxMenu::DoInsertOrAppend(
// //
// If we're already attached to the menubar, we must update it // If we're already attached to the menubar, we must update it
// //
if (IsAttached()) if (IsAttached() && m_menuBar->IsAttached())
{ {
m_menuBar->Refresh(); m_menuBar->Refresh();
} }
@@ -460,7 +460,7 @@ wxMenuItem* wxMenu::DoRemove(
,MPFROM2SHORT(pItem->GetId(), TRUE) ,MPFROM2SHORT(pItem->GetId(), TRUE)
,(MPARAM)0 ,(MPARAM)0
); );
if (IsAttached()) if (IsAttached() && m_menuBar->IsAttached())
{ {
// //
// Otherwise, the chane won't be visible // Otherwise, the chane won't be visible

View File

@@ -307,6 +307,19 @@ void wxTextCtrl::WriteText(
const wxString& rsValue const wxString& rsValue
) )
{ {
if (m_defaultStyle.HasFont() || m_defaultStyle.HasTextColour())
{
long lStart;
long lEnd;
GetSelection( &lStart
,&lEnd
);
SetStyle( lStart
,lEnd
,m_defaultStyle
);
}
::WinSetWindowText(GetHwnd(), rsValue.c_str()); ::WinSetWindowText(GetHwnd(), rsValue.c_str());
AdjustSpaceLimit(); AdjustSpaceLimit();
} // end of wxTextCtrl::WriteText } // end of wxTextCtrl::WriteText
@@ -605,6 +618,52 @@ void wxTextCtrl::SetSelection(
::WinSendMsg(hWnd, EM_SETSEL, MPFROM2SHORT((USHORT)lFromChar, (USHORT)lToChar), (MPARAM)0); ::WinSendMsg(hWnd, EM_SETSEL, MPFROM2SHORT((USHORT)lFromChar, (USHORT)lToChar), (MPARAM)0);
} // end of wxTextCtrl::SetSelection } // end of wxTextCtrl::SetSelection
bool wxTextCtrl::SetStyle(
long lStart
, long lEnd
, const wxTextAttr& rStyle
)
{
HWND hWnd = GetHwnd();
//
// Order the range if needed
//
if (lStart > lEnd)
{
long lTmp = lStart;
lStart = lEnd;
lEnd = lTmp;
}
//
// We can only change the format of the selection, so select the range we
// want and restore the old selection later
long lStartOld;
long lEndOld;
GetSelection( &lStartOld
,&lEndOld
);
//
// But do we really have to change the selection?
//
bool bChangeSel = lStart != lStartOld || lEnd != lEndOld;
if (bChangeSel)
{
if (m_bIsMLE)
::WinSendMsg(hWnd, MLM_SETSEL, MPFROM2SHORT((USHORT)lStart, (USHORT)lEnd), 0);
else
::WinSendMsg(hWnd, EM_SETSEL, MPFROM2SHORT((USHORT)lStart, (USHORT)lEnd), 0);
}
//
// TODO:: finish this by setting fonts and colors
//
return TRUE;
} // end of wxTextCtrl::SetStyle
bool wxTextCtrl::LoadFile( bool wxTextCtrl::LoadFile(
const wxString& rsFile const wxString& rsFile
) )

View File

@@ -306,6 +306,17 @@ wxWindow::~wxWindow()
m_isBeingDeleted = TRUE; m_isBeingDeleted = TRUE;
OS2DetachWindowMenu(); OS2DetachWindowMenu();
for (wxWindow* pWin = GetParent(); pWin; pWin = pWin->GetParent())
{
wxFrame* pFrame = wxDynamicCast(pWin, wxFrame);
if (pFrame)
{
if (pFrame->GetLastFocus() == this)
pFrame->SetLastFocus((wxWindow*)NULL);
break;
}
}
if (m_parent) if (m_parent)
m_parent->RemoveChild(this); m_parent->RemoveChild(this);
DestroyChildren(); DestroyChildren();

File diff suppressed because it is too large Load Diff