X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/c085e333984dc079a001cd3f581aeb1f51a1f227..b82827dd43caa489eade15cc02edef7fb79e8c20:/src/msw/textctrl.cpp?ds=sidebyside diff --git a/src/msw/textctrl.cpp b/src/msw/textctrl.cpp index 65fe3eac81..614be2e193 100644 --- a/src/msw/textctrl.cpp +++ b/src/msw/textctrl.cpp @@ -23,6 +23,9 @@ #ifndef WX_PRECOMP #include "wx/textctrl.h" #include "wx/settings.h" +#include "wx/brush.h" +#include "wx/utils.h" +#include "wx/log.h" #endif #if wxUSE_CLIPBOARD @@ -45,7 +48,11 @@ #endif #include +#ifndef __MWERKS__ #include +#else +#include +#endif #if defined(__BORLANDC__) && !defined(__WIN32__) #include #else @@ -200,9 +207,9 @@ bool wxTextCtrl::Create(wxWindow *parent, wxWindowID id, SubclassWin(GetHWND()); - if ( parent->GetFont() && parent->GetFont()->Ok() ) + if ( parent->GetFont().Ok() && parent->GetFont().Ok() ) { - SetFont(* parent->GetFont()); + SetFont(parent->GetFont()); } else { @@ -328,7 +335,7 @@ void wxTextCtrl::SetSize(int x, int y, int width, int height, int sizeFlags) int cx; // button font dimensions int cy; - wxGetCharSize(GetHWND(), &cx, &cy,GetFont()); + wxGetCharSize(GetHWND(), &cx, &cy, & GetFont()); int control_width, control_height, control_x, control_y; @@ -510,7 +517,7 @@ void wxTextCtrl::SetSelection(long from, long to) bool wxTextCtrl::LoadFile(const wxString& file) { - if (!FileExists(WXSTRINGCAST file)) + if (!wxFileExists(WXSTRINGCAST file)) return FALSE; m_fileName = file; @@ -740,16 +747,20 @@ void wxTextCtrl::OnDropFiles(wxDropFilesEvent& event) // or when "endl" is output (Borland 4.5) //========================================================================= // Class declaration using multiple inheritance doesn't work properly for -// Borland. See note in wb_text.h. +// Borland. See note in textctrl.h. #ifndef NO_TEXT_WINDOW_STREAM int wxTextCtrl::overflow(int c) { // Make sure there is a holding area + // this is not needed in usage as it automagically allocates + // it, but does someone want to emulate it for safety's sake? +#if wxUSE_IOSTREAMH if ( allocate()==EOF ) { - wxError("Streambuf allocation failed","Internal error"); + wxLogError("Streambuf allocation failed"); return EOF; } +#endif // Verify that there are no characters in get area if ( gptr() && gptr() < egptr() ) @@ -766,7 +777,12 @@ int wxTextCtrl::overflow(int c) { /* This doesn't seem to be fatal so comment out error message */ // wxError("Put area not opened","Internal error"); - setp( base(), base() ); + +#if wxUSE_IOSTREAMH + setp( base(), base() ); +#else + setp( pbase(), pbase() ); +#endif } // Determine how many characters have been inserted but no consumed @@ -928,6 +944,22 @@ WXHBRUSH wxTextCtrl::OnCtlColor(WXHDC pDC, WXHWND pWnd, WXUINT nCtlColor, void wxTextCtrl::OnChar(wxKeyEvent& event) { + // Fix by Marcel Rasche to allow Alt-Ctrl insertion of special characters + switch(event.KeyCode()) + { + case '{': + case '}': + case '[': + case ']': + case '|': + case '~': + case '\\': + { + char c=(char)event.KeyCode(); + *this << c; + } + break; + } if ( (event.KeyCode() == WXK_RETURN) && (m_windowStyle & wxPROCESS_ENTER)) { wxCommandEvent event(wxEVT_COMMAND_TEXT_ENTER, m_windowId); @@ -951,10 +983,13 @@ void wxTextCtrl::OnChar(wxKeyEvent& event) long wxTextCtrl::MSWGetDlgCode() { long lRc = DLGC_WANTCHARS | DLGC_WANTARROWS; - if ( m_windowStyle & wxPROCESS_ENTER ) + if ( m_windowStyle & wxTE_PROCESS_ENTER ) lRc |= DLGC_WANTMESSAGE; else if ( m_windowStyle & wxTE_MULTILINE ) lRc |= DLGC_WANTMESSAGE; + // ?? + if ( m_windowStyle & wxTE_PROCESS_TAB ) + lRc |= DLGC_WANTTAB; return lRc; } @@ -1025,7 +1060,7 @@ bool wxTextCtrl::MSWCommand(WXUINT param, WXWORD WXUNUSED(id)) : wxEVT_SET_FOCUS, m_windowId); event.SetEventObject( this ); - ProcessEvent(event); + GetEventHandler()->ProcessEvent(event); } break; @@ -1074,7 +1109,7 @@ bool wxTextCtrl::MSWNotify(WXWPARAM wParam, WXLPARAM lParam) event.SetEventObject( this ); event.SetEventType(eventType); - if ( !ProcessEvent(event) ) + if ( !GetEventHandler()->ProcessEvent(event) ) return FALSE; return TRUE;