X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/239c2e9674c8c6b9f0fd3d6fb94e2381691651b5..9fd9e47a93dfcdd99c2722e288a0f28a51ce6f5f:/src/os2/textctrl.cpp diff --git a/src/os2/textctrl.cpp b/src/os2/textctrl.cpp index 0c762e5d8e..f375a38886 100644 --- a/src/os2/textctrl.cpp +++ b/src/os2/textctrl.cpp @@ -154,14 +154,6 @@ bool wxTextCtrl::Create( if (m_windowStyle & wxTE_PASSWORD) // hidden input lSstyle |= ES_UNREADABLE; } - // - // 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) { @@ -231,6 +223,7 @@ bool wxTextCtrl::Create( ,rSize.x ,rSize.y ); + delete pTextFont; return TRUE; } // end of wxTextCtrl::Create @@ -259,6 +252,58 @@ void wxTextCtrl::AdoptAttributesFromHWND() } } // end of wxTextCtrl::AdoptAttributesFromHWND +WXDWORD wxTextCtrl::OS2GetStyle( + long lStyle +, WXDWORD* pdwExstyle +) const +{ + // + // Default border for the text controls is the sunken one + // + if ((lStyle & wxBORDER_MASK) == wxBORDER_DEFAULT ) + { + lStyle |= wxBORDER_SUNKEN; + } + + long dwStyle = wxControl::OS2GetStyle( lStyle + ,pdwExstyle + ); + + dwStyle = WS_VISIBLE | WS_TABSTOP; + + // + // Single and multiline edit fields are two different controls in PM + // + if ( m_windowStyle & wxTE_MULTILINE ) + { + dwStyle |= MLS_BORDER | MLS_WORDWRAP; + if ((m_windowStyle & wxTE_NO_VSCROLL) == 0) + dwStyle |= MLS_VSCROLL; + if (m_windowStyle & wxHSCROLL) + dwStyle |= MLS_HSCROLL; + if (m_windowStyle & wxTE_READONLY) + dwStyle |= MLS_READONLY; + } + else + { + dwStyle |= ES_LEFT | ES_AUTOSCROLL | ES_MARGIN; + if (m_windowStyle & wxHSCROLL) + dwStyle |= ES_AUTOSCROLL; + if (m_windowStyle & wxTE_READONLY) + dwStyle |= ES_READONLY; + if (m_windowStyle & wxTE_PASSWORD) // hidden input + dwStyle |= ES_UNREADABLE; + } + return dwStyle; +} // end of wxTextCtrl::OS2GetStyle + +void wxTextCtrl::SetWindowStyleFlag( + long lStyle +) +{ + wxControl::SetWindowStyleFlag(lStyle); +} // end of wxTextCtrl::SetWindowStyleFlag + void wxTextCtrl::SetupColours() { wxColour vBkgndColour; @@ -320,7 +365,10 @@ void wxTextCtrl::WriteText( const wxString& rsValue ) { - ::WinSendMsg(GetHwnd(), MLM_INSERT, MPARAM((PCHAR)rsValue.c_str()), MPARAM(0)); + if (m_bIsMLE) + ::WinSendMsg(GetHwnd(), MLM_INSERT, MPARAM((PCHAR)rsValue.c_str()), MPARAM(0)); + else + ::WinSetWindowText(GetHwnd(), rsValue.c_str()); AdjustSpaceLimit(); } // end of wxTextCtrl::WriteText @@ -337,6 +385,14 @@ void wxTextCtrl::Clear() ::WinSetWindowText(GetHwnd(), ""); } // end of wxTextCtrl::Clear +bool wxTextCtrl::EmulateKeyPress( + const wxKeyEvent& rEvent +) +{ + SetFocus(); + return(wxTextCtrlBase::EmulateKeyPress(rEvent)); +} // end of wxTextCtrl::EmulateKeyPress + // ---------------------------------------------------------------------------- // Clipboard operations // ---------------------------------------------------------------------------- @@ -1010,6 +1066,15 @@ void wxTextCtrl::OnChar( rEvent.Skip(); } // end of wxTextCtrl::OnChar +void wxTextCtrl::SetFocus() +{ + wxTextCtrlBase::SetFocus(); + if ( !HasFlag(wxTE_MULTILINE) ) + { + SetSelection(-1, -1); + } +} // end of wxTextCtrl::SetFocus + bool wxTextCtrl::OS2Command( WXUINT uParam , WXWORD WXUNUSED(vId)