static int motListSetClipboardAttrib(Ihandle *ih, const char *value) { Widget cbedit; if (!ih->data->has_editbox) return 0; XtVaGetValues(ih->handle, XmNtextField, &cbedit, NULL); if (iupStrEqualNoCase(value, "COPY")) { Ihandle* clipboard; char *str = XmTextFieldGetSelection(cbedit); if (!str) return 0; clipboard = IupClipboard(); IupSetAttribute(clipboard, "TEXT", str); IupDestroy(clipboard); XtFree(str); } else if (iupStrEqualNoCase(value, "CUT")) { Ihandle* clipboard; char *str = XmTextFieldGetSelection(cbedit); if (!str) return 0; clipboard = IupClipboard(); IupSetAttribute(clipboard, "TEXT", str); IupDestroy(clipboard); XtFree(str); /* disable callbacks */ iupAttribSet(ih, "_IUPMOT_DISABLE_TEXT_CB", "1"); XmTextFieldRemove(cbedit); iupAttribSet(ih, "_IUPMOT_DISABLE_TEXT_CB", NULL); } else if (iupStrEqualNoCase(value, "PASTE")) { Ihandle* clipboard; char *str; clipboard = IupClipboard(); str = IupGetAttribute(clipboard, "TEXT"); /* disable callbacks */ iupAttribSet(ih, "_IUPMOT_DISABLE_TEXT_CB", "1"); XmTextFieldRemove(cbedit); XmTextFieldInsert(cbedit, XmTextFieldGetInsertionPosition(cbedit), str); iupAttribSet(ih, "_IUPMOT_DISABLE_TEXT_CB", NULL); } else if (iupStrEqualNoCase(value, "CLEAR")) { /* disable callbacks */ iupAttribSet(ih, "_IUPMOT_DISABLE_TEXT_CB", "1"); XmTextFieldRemove(cbedit); iupAttribSet(ih, "_IUPMOT_DISABLE_TEXT_CB", NULL); } return 0; }
void CEdit::Clear(void) { // Deletes the currently selected text if (_xd_textwidget != NULL) { if (XmIsText(_xd_textwidget)) XmTextRemove(_xd_textwidget); else if (XmIsTextField(_xd_textwidget)) XmTextFieldRemove(_xd_rootwidget); } }
static int motListSetInsertAttrib(Ihandle* ih, const char* value) { if (!value) return 0; if (ih->data->has_editbox) { Widget cbedit; XtVaGetValues(ih->handle, XmNtextField, &cbedit, NULL); iupAttribSet(ih, "_IUPMOT_DISABLE_TEXT_CB", "1"); /* disable callbacks */ XmTextFieldRemove(cbedit); XmTextFieldInsert(cbedit, XmTextFieldGetInsertionPosition(cbedit), (char*)value); iupAttribSet(ih, "_IUPMOT_DISABLE_TEXT_CB", NULL); } return 0; }