Example #1
0
void WdaMotif::action_inputfocus( Widget w, XmAnyCallbackStruct *data)
{
  Arg args[1];
  WdaMotif *wda;

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

  if ( !wda)
    return;

  if ( mrm_IsIconicState(w))
    return;

  if ( wda->set_focus_disabled)
    return;

  if ( flow_IsManaged( wda->cmd_scrolledinput))
    flow_SetInputFocus( wda->cmd_scrolledinput);
  else if ( flow_IsManaged( wda->cmd_input))
    flow_SetInputFocus( wda->cmd_input);
  else if ( wda->wdanav)
    ((WdaNav *)wda->wdanav)->set_inputfocus();

  disable_set_focus( wda, 400);

}
Example #2
0
void XAttOneMotif::action_inputfocus( Widget w, XmAnyCallbackStruct *data)
{
  Arg args[1];
  XAttOneMotif *xattone;

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

  if ( !xattone)
    return;

  if ( mrm_IsIconicState(w))
    return;

  if ( xattone->set_focus_disabled)
    return;

  if ( flow_IsManaged( xattone->cmd_scrolledinput))
    flow_SetInputFocus( xattone->cmd_scrolledinput);
  else if ( flow_IsManaged( xattone->cmd_input))
    flow_SetInputFocus( xattone->cmd_input);

  disable_set_focus( xattone, 400);

}
Example #3
0
static void attr_action_inputfocus(Widget w, XmAnyCallbackStruct* data)
{
  Arg args[1];
  AttrMotif* attr;

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

  if (!attr)
    return;

  if (flow_IsManaged(attr->cmd_scrolledinput))
    flow_SetInputFocus(attr->cmd_scrolledinput);
  else if (flow_IsManaged(attr->cmd_input))
    flow_SetInputFocus(attr->cmd_input);
  else if (attr->attrnav)
    ((AttrNav*)attr->attrnav)->set_inputfocus();
}
Example #4
0
void AttrMotif::change_value()
{
  int sts;
  Widget text_w;
  int multiline;
  char* value;
  int size;

  if (input_open) {
    XtUnmanageChild(cmd_input);
    set_prompt("");
    input_open = 0;
    return;
  }

  sts = ((AttrNav*)attrnav)->check_attr_value(&multiline, &size, &value);
  if (EVEN(sts)) {
    if (sts == GE__NOATTRSEL)
      message('E', "No attribute is selected");
    else
      message('E', "Attribute can't be modified");
    return;
  }

  if (multiline) {
    text_w = cmd_scrolledinput;
    XtManageChild(text_w);
    XtManageChild(cmd_scrolled_ok);
    XtManageChild(cmd_scrolled_ca);
  } else {
    text_w = cmd_input;
    XtManageChild(text_w);
  }

  message(' ', "");
  flow_SetInputFocus(text_w);
  //  XtSetKeyboardFocus( toplevel, text_w);
  //  XtCallAcceptFocus( text_w, CurrentTime);

  if (value) {
    XmTextSetString(text_w, value);
    if (!multiline) {
      XmTextSetInsertionPosition(text_w, strlen(value));
      XmTextSetSelection(text_w, 0, strlen(value), CurrentTime);
    }
  } else {
    XmTextSetString(cmd_input, (char*)"");
  }
  //  i = 0;
  //  XtSetArg(args[i],XmNeditMode, XmMULTI_LINE_EDIT); i++;
  //  XtSetValues( text_w, args, i);
  set_prompt("value >");
  input_open = 1;
}
Example #5
0
void WdaMotif::change_value( int set_focus)
{
  int		sts;
  Widget	text_w;
  int		multiline;
  char		*value;
  Arg 		args[5];
  int		input_size;

  if ( input_open) {
    XtUnmanageChild( cmd_input);
    set_prompt( "");
    input_open = 0;
    return;
  }

  sts = ((WdaNav *)wdanav)->check_attr( &multiline, &input_node, input_name,
		&value, &input_size);
  if ( EVEN(sts)) {
    if ( sts == WDA__NOATTRSEL)
      message( 'E', "No attribute is selected");
    else
      message( 'E', wnav_get_message( sts));
    return;
  }

  if ( multiline) {
    text_w = cmd_scrolledinput;
    XtManageChild( text_w);
    XtManageChild( cmd_scrolled_ok);
    XtManageChild( cmd_scrolled_ca);

    // XtSetArg(args[0], XmNpaneMaximum, 300);
    // XtSetValues( wdanav_form, args, 1);

    XtSetArg(args[0], XmNmaxLength, input_size-1);
    XtSetValues( text_w, args, 1);
    if ( value) {
      XmTextSetString( text_w, value);
//    XmTextSetInsertionPosition( text_w, strlen(value));
    }
    else
      XmTextSetString( text_w, (char*) "");

    input_multiline = 1;
  }
  else {
    text_w = cmd_input;
    XtManageChild( text_w);
    XtSetArg(args[0],XmNmaxLength, input_size-1);
    XtSetValues( text_w, args, 1);
    if ( value) {
      XmTextSetString( text_w, value);
      XmTextSetInsertionPosition( text_w, strlen(value));
    }
    else
      XmTextSetString( text_w, (char*) "");

    input_multiline = 0;
  }

  if ( value)
    free( value);

  message( ' ', "");
  if ( set_focus)
    flow_SetInputFocus( text_w);
  set_prompt( "value >");
  input_open = 1;
}
Example #6
0
int XAttOneMotif::change_value( int set_focus)
{
  int		sts;
  Widget	text_w;
  char		*value = 0;
  Arg 		args[5];
  int		input_size = 80;
  char		aval[1024];
  char 		buf[1024];
  int		len;

  sts = gdh_GetAttributeCharAttrref( &aref, &atype, &asize, &aoffs, &aelem);
  if ( EVEN(sts)) return sts;
  
  sts = gdh_GetObjectInfoAttrref( &aref, aval, sizeof(aval));
  if ( EVEN(sts)) return sts;

  XNav::attrvalue_to_string( atype, atype, &aval, buf, sizeof(buf), &len, NULL, 0);

  value = buf;

  if ( !access_rw) {
    XmString	cstr;

    cstr=XmStringCreateLtoR( aval, (char*) "ISO8859-1");
    XtSetArg(args[0],XmNlabelString, cstr);
    XtSetValues( cmd_label, args, 1);
    XmStringFree( cstr);
  }
  else {
    if ( atype == pwr_eType_Text) {
      input_multiline = 1;
      text_w = cmd_scrolledinput;
      XtUnmanageChild( cmd_input);
      XtManageChild( text_w);
      XtManageChild( cmd_scrolled_ok);
      XtManageChild( cmd_scrolled_ca);

      // XtSetArg(args[0], XmNpaneMaximum, 300);
      // XtSetValues( xattnav_form, args, 1);

      XtSetArg(args[0], XmNmaxLength, input_size-1);
      XtSetValues( text_w, args, 1);
      if ( value) {
	XmTextSetString( text_w, value);
	//    XmTextSetInsertionPosition( text_w, strlen(value));
      }
      else
	XmTextSetString( text_w, (char*) "");

      input_multiline = 1;
    }
    else {
      input_multiline = 0;
      text_w = cmd_input;
      XtSetArg(args[0],XmNmaxLength, input_size-1);
      XtSetValues( text_w, args, 1);
      if ( value) {
	XmTextSetString( text_w, value);
	XmTextSetInsertionPosition( text_w, strlen(value));
      }
      else
	XmTextSetString( text_w, (char*) "");

      input_multiline = 0;
    }
    message( ' ', "");
    if ( set_focus)
      flow_SetInputFocus( text_w);
    set_prompt( Lng::translate("value >"));
    input_open = 1;
  }
  return XATT__SUCCESS;
}