X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/6991087b08355e652866e97d3a8211103864ed8f..b5ec0c78b521cfa0f276e4d5d830f35b4fa26e91:/src/motif/textctrl.cpp?ds=sidebyside diff --git a/src/motif/textctrl.cpp b/src/motif/textctrl.cpp index 82624d53e8..03514e834d 100644 --- a/src/motif/textctrl.cpp +++ b/src/motif/textctrl.cpp @@ -20,10 +20,6 @@ // For compilers that support precompilation, includes "wx.h". #include "wx/wxprec.h" -#ifdef __VMS -#define XtParent XTPARENT -#endif - #include #include #include @@ -63,8 +59,6 @@ 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, wxTextCtrlBase) - BEGIN_EVENT_TABLE(wxTextCtrl, wxTextCtrlBase) EVT_DROP_FILES(wxTextCtrl::OnDropFiles) EVT_CHAR(wxTextCtrl::OnChar) @@ -94,7 +88,7 @@ static void wxTextWindowActivateProc(Widget w, XtPointer clientData, XmAnyCallba // Text item wxTextCtrl::wxTextCtrl() { - m_tempCallbackStruct = (void*) NULL; + m_tempCallbackStruct = NULL; m_modified = false; m_processedDefault = false; } @@ -112,7 +106,7 @@ bool wxTextCtrl::Create(wxWindow *parent, return false; PreCreation(); - m_tempCallbackStruct = (void*) NULL; + m_tempCallbackStruct = NULL; m_modified = false; m_processedDefault = false; @@ -167,7 +161,7 @@ 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)) + if (!value.empty() && (value.length() > (unsigned int) noCols)) noCols = value.length(); XtVaSetValues((Widget) m_mainWidget, XmNcolumns, noCols, @@ -219,14 +213,7 @@ wxString wxTextCtrl::GetValue() const } else { - // just get the string from Motif - char *s = XmTextGetString ((Widget) m_mainWidget); - if ( s ) - { - str = s; - XtFree (s); - } - //else: return empty string + str = wxTextEntry::GetValue(); if ( m_tempCallbackStruct ) { @@ -258,159 +245,6 @@ void wxTextCtrl::DoSetValue(const wxString& text, int flags) SendTextUpdatedEvent(); } -// Clipboard operations -void wxTextCtrl::Copy() -{ - XmTextCopy((Widget) m_mainWidget, CurrentTime); -} - -void wxTextCtrl::Cut() -{ - XmTextCut((Widget) m_mainWidget, CurrentTime); -} - -void wxTextCtrl::Paste() -{ - XmTextPaste((Widget) m_mainWidget); -} - -bool wxTextCtrl::CanCopy() const -{ - // Can copy if there's a selection - long from, to; - GetSelection(& from, & to); - return (from != to) ; -} - -bool wxTextCtrl::CanCut() const -{ - // Can cut if there's a selection - long from, to; - GetSelection(& from, & to); - return (from != to) && (IsEditable()); -} - -bool wxTextCtrl::CanPaste() const -{ - return IsEditable() ; -} - -// Undo/redo -void wxTextCtrl::Undo() -{ - // Not possible in Motif -} - -void wxTextCtrl::Redo() -{ - // Not possible in Motif -} - -bool wxTextCtrl::CanUndo() const -{ - // No Undo in Motif - return false; -} - -bool wxTextCtrl::CanRedo() const -{ - // No Redo in Motif - return false; -} - -// If the return values from and to are the same, there is no -// selection. -void wxTextCtrl::GetSelection(long* from, long* to) const -{ - XmTextPosition left, right; - - XmTextGetSelectionPosition((Widget) m_mainWidget, & left, & right); - - *from = (long) left; - *to = (long) right; -} - -bool wxTextCtrl::IsEditable() const -{ - return (XmTextGetEditable((Widget) m_mainWidget) != 0); -} - -void wxTextCtrl::SetEditable(bool editable) -{ - XmTextSetEditable((Widget) m_mainWidget, (Boolean) editable); -} - -void wxTextCtrl::SetInsertionPoint(long pos) -{ - XmTextSetInsertionPosition ((Widget) m_mainWidget, (XmTextPosition) pos); -} - -void wxTextCtrl::SetInsertionPointEnd() -{ - wxTextPos pos = GetLastPosition(); - SetInsertionPoint(pos); -} - -long wxTextCtrl::GetInsertionPoint() const -{ - return (long) XmTextGetInsertionPosition ((Widget) m_mainWidget); -} - -wxTextPos wxTextCtrl::GetLastPosition() const -{ - return (long) XmTextGetLastPosition ((Widget) m_mainWidget); -} - -void wxTextCtrl::Replace(long from, long to, const wxString& value) -{ - XmTextReplace ((Widget) m_mainWidget, (XmTextPosition) from, (XmTextPosition) to, - value.char_str()); -} - -void wxTextCtrl::Remove(long from, long to) -{ - XmTextSetSelection ((Widget) m_mainWidget, (XmTextPosition) from, (XmTextPosition) to, - (Time) 0); - XmTextRemove ((Widget) m_mainWidget); -} - -void wxTextCtrl::SetSelection(long from, long to) -{ - if( to == -1 ) - to = GetLastPosition(); - - XmTextSetSelection ((Widget) m_mainWidget, (XmTextPosition) from, (XmTextPosition) to, - (Time) 0); -} - -void wxTextCtrl::WriteText(const wxString& text) -{ - long textPosition = GetInsertionPoint() + text.length(); - XmTextInsert ((Widget) m_mainWidget, GetInsertionPoint(), - text.char_str()); - XtVaSetValues ((Widget) m_mainWidget, XmNcursorPosition, textPosition, NULL); - SetInsertionPoint(textPosition); - XmTextShowPosition ((Widget) m_mainWidget, textPosition); - m_modified = true; -} - -void wxTextCtrl::AppendText(const wxString& text) -{ - wxTextPos textPosition = GetLastPosition() + text.length(); - XmTextInsert ((Widget) m_mainWidget, GetLastPosition(), - text.char_str()); - XtVaSetValues ((Widget) m_mainWidget, XmNcursorPosition, textPosition, NULL); - SetInsertionPoint(textPosition); - XmTextShowPosition ((Widget) m_mainWidget, textPosition); - m_modified = true; -} - -void wxTextCtrl::Clear() -{ - XmTextSetString ((Widget) m_mainWidget, wxMOTIF_STR("")); - m_modified = false; -} - bool wxTextCtrl::IsModified() const { return m_modified; @@ -551,7 +385,7 @@ void wxTextCtrl::OnChar(wxKeyEvent& event) XmTextVerifyCallbackStruct *textStruct = (XmTextVerifyCallbackStruct *) m_tempCallbackStruct; textStruct->doit = True; - if (isascii(event.m_keyCode) && (textStruct->text->length == 1)) + if (wxIsascii(event.m_keyCode) && (textStruct->text->length == 1)) { textStruct->text->ptr[0] = (char)((event.m_keyCode == WXK_RETURN) ? 10 : event.m_keyCode); } @@ -631,12 +465,12 @@ void wxTextCtrl::DoSendEvents(void *wxcbs, long keycode) // the character passed through) cbs->doit = False; - GetEventHandler()->ProcessEvent(event); + HandleWindowEvent(event); if ( !InSetValue() && m_processedDefault ) { // Can generate a command - wxCommandEvent commandEvent(wxEVT_COMMAND_TEXT_UPDATED, GetId()); + wxCommandEvent commandEvent(wxEVT_TEXT, GetId()); commandEvent.SetEventObject(this); ProcessCommand(commandEvent); } @@ -827,7 +661,7 @@ wxTextWindowGainFocusProc (Widget w, XtPointer clientData, XmAnyCallbackStruct * wxTextCtrl *tw = (wxTextCtrl *) clientData; wxFocusEvent event(wxEVT_SET_FOCUS, tw->GetId()); event.SetEventObject(tw); - tw->GetEventHandler()->ProcessEvent(event); + tw->HandleWindowEvent(event); } static void @@ -839,7 +673,7 @@ wxTextWindowLoseFocusProc (Widget w, XtPointer clientData, XmAnyCallbackStruct * wxTextCtrl *tw = (wxTextCtrl *) clientData; wxFocusEvent event(wxEVT_KILL_FOCUS, tw->GetId()); event.SetEventObject(tw); - tw->GetEventHandler()->ProcessEvent(event); + tw->HandleWindowEvent(event); } static void wxTextWindowActivateProc(Widget w, XtPointer clientData, @@ -853,7 +687,7 @@ static void wxTextWindowActivateProc(Widget w, XtPointer clientData, if (tw->InSetValue()) return; - wxCommandEvent event(wxEVT_COMMAND_TEXT_ENTER); + wxCommandEvent event(wxEVT_TEXT_ENTER); event.SetId(tw->GetId()); event.SetEventObject(tw); tw->ProcessCommand(event);