X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/996994c7143b7a487f3db7a53780097dc5cf2ddd..4fe0156b18e2330be391b804da341e546164b85f:/src/motif/textctrl.cpp diff --git a/src/motif/textctrl.cpp b/src/motif/textctrl.cpp index f3c688fd4c..8213b6b8cd 100644 --- a/src/motif/textctrl.cpp +++ b/src/motif/textctrl.cpp @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////////// -// Name: textctrl.cpp +// Name: src/motif/textctrl.cpp // Purpose: wxTextCtrl // Author: Julian Smart // Modified by: @@ -17,10 +17,6 @@ // headers // ---------------------------------------------------------------------------- -#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) - #pragma implementation "textctrl.h" -#endif - // For compilers that support precompilation, includes "wx.h". #include "wx/wxprec.h" @@ -28,16 +24,18 @@ #define XtParent XTPARENT #endif -#include "wx/defs.h" - #include #include #include #include "wx/textctrl.h" -#include "wx/settings.h" + +#ifndef WX_PRECOMP + #include "wx/utils.h" + #include "wx/settings.h" +#endif + #include "wx/filefn.h" -#include "wx/utils.h" #ifdef __VMS__ #pragma message disable nosimpint @@ -65,9 +63,9 @@ static void wxTextWindowGainFocusProc(Widget w, XtPointer clientData, XmAnyCallb static void wxTextWindowLoseFocusProc(Widget w, XtPointer clientData, XmAnyCallbackStruct *cbs); static void wxTextWindowActivateProc(Widget w, XtPointer clientData, XmAnyCallbackStruct *ptr); - IMPLEMENT_DYNAMIC_CLASS(wxTextCtrl, wxControl) + IMPLEMENT_DYNAMIC_CLASS(wxTextCtrl, wxTextCtrlBase) - BEGIN_EVENT_TABLE(wxTextCtrl, wxControl) + BEGIN_EVENT_TABLE(wxTextCtrl, wxTextCtrlBase) EVT_DROP_FILES(wxTextCtrl::OnDropFiles) EVT_CHAR(wxTextCtrl::OnChar) @@ -140,7 +138,7 @@ bool wxTextCtrl::Create(wxWindow *parent, XtSetArg (args[count], (String) wxFont::GetFontTag(), m_font.GetFontType( XtDisplay(parentWidget) ) ); ++count; XtSetArg (args[count], XmNwordWrap, wantWordWrap); ++count; - XtSetArg (args[count], XmNvalue, value.c_str()); ++count; + XtSetArg (args[count], XmNvalue, value.c_str()); ++count; XtSetArg (args[count], XmNeditable, style & wxTE_READONLY ? False : True); ++count; XtSetArg (args[count], XmNeditMode, XmMULTI_LINE_EDIT ); ++count; @@ -169,8 +167,8 @@ bool wxTextCtrl::Create(wxWindow *parent, #if 0 // TODO: Is this relevant? What does it do? int noCols = 2; - if (!value.IsNull() && (value.Length() > (unsigned int) noCols)) - noCols = value.Length(); + if (!value.IsNull() && (value.length() > (unsigned int) noCols)) + noCols = value.length(); XtVaSetValues((Widget) m_mainWidget, XmNcolumns, noCols, NULL); @@ -242,7 +240,7 @@ wxString wxTextCtrl::GetValue() const return str; } -void wxTextCtrl::SetValue(const wxString& text) +void wxTextCtrl::DoSetValue(const wxString& text, int flags) { m_inSetValue = true; @@ -253,9 +251,12 @@ void wxTextCtrl::SetValue(const wxString& text) SetInsertionPoint(text.length()); XmTextShowPosition ((Widget) m_mainWidget, text.length()); - m_modified = TRUE; + m_modified = true; m_inSetValue = false; + + if ( flags & SetValue_SendEvent ) + SendTextUpdatedEvent(); } // Clipboard operations @@ -407,7 +408,7 @@ void wxTextCtrl::AppendText(const wxString& text) void wxTextCtrl::Clear() { - XmTextSetString ((Widget) m_mainWidget, ""); + XmTextSetString ((Widget) m_mainWidget, wxMOTIF_STR("")); m_modified = false; } @@ -492,7 +493,7 @@ void wxTextCtrl::ShowPosition(long pos) int wxTextCtrl::GetLineLength(long lineNo) const { wxString str = GetLineText (lineNo); - return (int) str.Length(); + return (int) str.length(); } wxString wxTextCtrl::GetLineText(long lineNo) const @@ -502,7 +503,7 @@ wxString wxTextCtrl::GetLineText(long lineNo) const if (s) { - wxString buf(""); + wxString buf; long i; int currentLine = 0; for (i = 0; currentLine != lineNo && s[i]; i++ ) @@ -553,7 +554,7 @@ void wxTextCtrl::OnChar(wxKeyEvent& event) textStruct->doit = True; if (isascii(event.m_keyCode) && (textStruct->text->length == 1)) { - textStruct->text->ptr[0] = ((event.m_keyCode == WXK_RETURN) ? 10 : event.m_keyCode); + textStruct->text->ptr[0] = (char)((event.m_keyCode == WXK_RETURN) ? 10 : event.m_keyCode); } } } @@ -661,12 +662,13 @@ wxSize wxDoGetSingleTextCtrlBestSize( Widget textWidget, NULL ); if( !value ) - value = "|"; + value = wxMOTIF_STR("|"); int x, y; window->GetTextExtent( value, &x, &y ); - if( x < 100 ) x = 100; + if( x < 100 ) + x = 100; return wxSize( x + 2 * xmargin + 2 * highlight + 2 * shadow, // MBN: +2 necessary: Lesstif bug or mine?