示例#1
0
void XttMotif::valchanged_cmd_input( Widget w, XEvent *event, XmAnyCallbackStruct *data)
{
  Xtt 	*xtt;
  int 	sts;
  char 	*text;
  Arg 	args[2];

  XtSetArg(args[0], XmNuserData, &xtt);
  XtGetValues(w, args, 1);

  if ( xtt->input_open)
    sts = mrm_TextInput( w, event, (char *)((XttMotif *)xtt)->value_recall, sizeof(((XttMotif *)xtt)->value_recall[0]),
	sizeof( ((XttMotif *)xtt)->value_recall)/sizeof(((XttMotif *)xtt)->value_recall[0]),
	&((XttMotif *)xtt)->value_current_recall);
  else
    sts = mrm_TextInput( w, event, (char *)((XttMotif *)xtt)->cmd_recall, sizeof(((XttMotif *)xtt)->cmd_recall[0]),
	sizeof( ((XttMotif *)xtt)->cmd_recall)/sizeof(((XttMotif *)xtt)->cmd_recall[0]),
	&((XttMotif *)xtt)->cmd_current_recall);
  if ( sts) {
    text = XmTextGetString( w);
    if ( xtt->input_open) {
      sts = xtt->xnav->set_attr_value( text);
      XtUnmanageChild( w);
      xtt->set_prompt( "");
      xtt->input_open = 0;
    }
    else if ( xtt->command_open) {
      sts = xtt->xnav->command( text);
      XtUnmanageChild( w);
      xtt->set_prompt( "");
      xtt->command_open = 0;
    }
  }
}
示例#2
0
void WdaMotif::valchanged_cmd_input( Widget w, XEvent *event)
{
  Wda 	*wda;
  int 	sts;
  char 	*text;
  Arg 	args[2];

  XtSetArg(args[0], XmNuserData, &wda);
  XtGetValues(w, args, 1);

  sts = mrm_TextInput( w, event, (char *)value_recall, sizeof(value_recall[0]),
	sizeof( value_recall)/sizeof(value_recall[0]),
	&((WdaMotif *)wda)->value_current_recall);
  if ( sts)
  {
    text = XmTextGetString( w);
    if ( wda->input_open)
    {
      sts = ((WdaNav *)wda->wdanav)->set_attr_value( wda->input_node, 
		wda->input_name, text);
      XtUnmanageChild( w);
      wda->set_prompt( "");
      wda->input_open = 0;
      if ( wda->redraw_cb)
        (wda->redraw_cb)( wda);

      ((WdaNav *)wda->wdanav)->set_inputfocus();
    }
  }
}
示例#3
0
static void attr_valchanged_cmd_input(Widget w, XEvent* event)
{
  AttrMotif* attr;
  int sts;
  char* text;
  Arg args[2];

  XtSetArg(args[0], XmNuserData, &attr);
  XtGetValues(w, args, 1);

  sts = mrm_TextInput(w, event, (char*)attr->value_recall,
      sizeof(attr->value_recall[0]),
      sizeof(attr->value_recall) / sizeof(attr->value_recall[0]),
      &attr->value_current_recall);
  if (sts) {
    text = XmTextGetString(w);
    if (attr->input_open) {
      sts = ((AttrNav*)attr->attrnav)->set_attr_value(text);
      XtUnmanageChild(w);
      attr->set_prompt("");
      attr->input_open = 0;
      if (attr->redraw_cb)
        (attr->redraw_cb)(attr);

      ((AttrNav*)attr->attrnav)->set_inputfocus();
    }
  }
}
示例#4
0
void WdaGtk::valchanged_cmd_input( GtkWidget *w, gpointer data)
{
  WdaGtk *wda = (Gtk *)data;
  int 	sts;
  char 	*text;

  sts = mrm_TextInput( w, event, (char *)Wda::value_recall, sizeof(Wda::value_recall[0]),
	sizeof( Wda::value_recall)/sizeof(Wda::value_recall[0]),
	&wda->value_current_recall);
  if ( sts)
  {
    text = XmTextGetString( w);
    if ( wda->input_open)
    {
      sts = ((WdaNav *)wda->wdanav)->set_attr_value( wda->input_node, 
		wda->input_name, text);
      XtUnmanageChild( w);
      wda->set_prompt( "");
      wda->input_open = 0;
      if ( wda->redraw_cb)
        (wda->redraw_cb)( wda);

      ((WdaNav *)wda->wdanav)->set_inputfocus();
    }
  }
}
示例#5
0
void XAttMotif::valchanged_cmd_input( Widget w, XEvent *event)
{
    XAttMotif 	*xatt;
    int 	sts;
    char 	*text;
    Arg 	args[2];

    XtSetArg(args[0], XmNuserData, &xatt);
    XtGetValues(w, args, 1);

    sts = mrm_TextInput( w, event, (char *)value_recall, sizeof(value_recall[0]),
                         sizeof(value_recall)/sizeof(value_recall[0]),
                         &xatt->value_current_recall);
    if ( sts)
    {
        text = XmTextGetString( w);
        if ( xatt->input_open)
        {
            sts = xatt->xattnav->set_attr_value( xatt->input_node,
                                                 xatt->input_name, text);
            XtUnmanageChild( w);
            xatt->set_prompt( "");
            xatt->input_open = 0;
            if ( xatt->redraw_cb)
                (xatt->redraw_cb)( xatt);

            xatt->xattnav->set_inputfocus();
        }
    }
}
示例#6
0
void XAttOneMotif::valchanged_cmd_input( Widget w, XEvent *event)
{
  XAttOneMotif 	*xattone;
  int 	sts;
  Arg 	args[2];

  XtSetArg(args[0], XmNuserData, &xattone);
  XtGetValues(w, args, 1);

  sts = mrm_TextInput( w, event, (char *)value_recall, sizeof(value_recall[0]),
	sizeof( value_recall)/sizeof(value_recall[0]),
	&xattone->value_current_recall);
  if ( sts) {
    sts = xattone->set_value();
    if ( ODD(sts)) {
      if ( xattone->close_cb)
	(xattone->close_cb)( xattone->parent_ctx, xattone);
      else
	delete xattone;
    }
  }
}