예제 #1
0
파일: CEdit.C 프로젝트: dhaley/dcp
void CEdit::ReplaceSel(LPCSTR lpszNewText)
{
    // Inserts the given text to replace the current selection
    // or at the insert cursor position if there is no selection.
    Boolean        has_selection = False;
    XmTextPosition left          = (XmTextPosition) 0 ;
    XmTextPosition right         = (XmTextPosition) 0 ;

    if (_xd_textwidget!=NULL)
    {
	if (XmIsText(_xd_textwidget))
	{
	    has_selection = XmTextGetSelectionPosition(_xd_textwidget, &left, &right);

	    if (!has_selection)
		left = right = XmTextGetInsertionPosition(_xd_textwidget);

	    XmTextReplace(_xd_textwidget, left, right, (char *)lpszNewText);
	}
	else if (XmIsTextField(_xd_textwidget))
	{
	    has_selection = XmTextFieldGetSelectionPosition(_xd_textwidget, &left, &right);

	    if (!has_selection)
		left = right = XmTextFieldGetInsertionPosition(_xd_textwidget);

	    XmTextFieldReplace(_xd_textwidget, left, right, (char *)lpszNewText);
	}
    }

}
예제 #2
0
void insert_source_argAct(Widget w, XEvent*, String*, Cardinal*)
{
    clear_isearch();

    string arg = source_arg->get_string();
    if (XmIsText(w)) {
	if (XmTextGetEditable(w)) {
	    XmTextPosition pos = XmTextGetInsertionPosition(w);
	    XmTextReplace(w, pos, pos, XMST(arg.chars()));
	}
    }
    else if (XmIsTextField(w)) {
	if (XmTextFieldGetEditable(w)) {
	    XmTextPosition pos = XmTextFieldGetInsertionPosition(w);
	    XmTextFieldReplace(w, pos, pos, XMST(arg.chars()));
	}
    }
}
예제 #3
0
파일: iupmot_list.c 프로젝트: Vulcanior/IUP
static int motListSetSelectedTextAttrib(Ihandle* ih, const char* value)
{
  XmTextPosition start, end;
  Widget cbedit;
  if (!ih->data->has_editbox)
    return 0;

  if (!value)
    return 0;

  XtVaGetValues(ih->handle, XmNtextField, &cbedit, NULL);
  if (XmTextFieldGetSelectionPosition(cbedit, &start, &end) && start!=end)
  {
    iupAttribSet(ih, "_IUPMOT_DISABLE_TEXT_CB", "1"); /* disable callbacks */
    XmTextFieldReplace(cbedit, start, end, (char*)value);
    iupAttribSet(ih, "_IUPMOT_DISABLE_TEXT_CB", NULL);
  }

  return 0;
}