/* ARGSUSED */ void AddGpList_Callback ( Widget w, long which, XtPointer call ) /************************************************************************ * * Callback function of add group list. * * AddGpList_Callback ( W, which, CALL ) * ***********************************************************************/ { /*--------------------------------------------------------------------*/ switch( which ) { case 0: /* add to group list */ if ( get_group(w) ) { XmListDeselectAllItems(gframe_listW); XmTextSetString(group_nameW, ""); } break; case 1: /* add to group list and display */ if (get_group(w)) { MpanelMode = 0; SelectGroupNo = GroupNo; GroupLoadFlag = 1; XmListDeselectAllItems(gframe_listW); XmTextSetString(group_nameW, ""); XtUnmanageChild(group_panel_toplevel); load_group(GroupNo); } break; } }
/*=== hold_code_value_changed_cb ====================================================*/ void hold_code_value_changed_cb(Widget w, XtPointer client_data, XtPointer call_data) { #ifdef FT char *str; if (XmToggleButtonGetState (ci_none_btn)) { XmTextSetString (cmfj_origine_ret_txt, ""); XmTextSetString (cmfj_code_motif_txt, ""); set_editable_off (cmfj_origine_ret_txt); XtSetSensitive (cmfj_origine_ret_btn, FALSE); set_editable_off (cmfj_code_motif_txt); XtSetSensitive (cmfj_code_motif_btn, FALSE); } else { str = XmTextGetString (cmfj_origine_ret_txt); if (strlen (str) == 0) { XmTextSetString (cmfj_origine_ret_txt, origine_ret_list[cmfj_origine_ret_default].description); } set_editable_on (cmfj_origine_ret_txt); XtSetSensitive (cmfj_origine_ret_btn, TRUE); set_editable_on (cmfj_code_motif_txt); XtSetSensitive (cmfj_code_motif_btn, TRUE); } #endif }
static void qmonRQSSetText(Widget tw, lList *rqs_list, lList **alpp) { char *text = NULL; DENTER(GUI_LAYER, "qmonRQSSetText"); if (rqs_list != NULL) { const char *filename = NULL; filename = spool_flatfile_write_list(alpp, rqs_list, RQS_fields, &qconf_rqs_sfi, SP_DEST_TMP, SP_FORM_ASCII, filename, false); text = qmonReadText(filename, alpp); unlink(filename); sge_free(&filename); if (text != NULL) { XmTextSetString(tw, text); XtFree(text); } else { XmTextSetString(tw, ""); } } DEXIT; }
// // Display the options stored in the node. // void SelectionAttrDialog::updateDisplayedAttributes() { SelectionInstance *si = (SelectionInstance*)this->interactorInstance; int options,i; ASSERT(si); options = si->getOptionCount(); // // Now reload the list. // if (options != 0) { char **strings = new char* [options]; for (i=0 ; i<options ; i++) { char *value, *name; name = si->getOptionNameString(i+1); value = si->getOptionValueString(i+1); int len = STRLEN(name) + STRLEN(value) + STRLEN(VALUE_LABEL_SPRINTF_FORMAT) + 1; strings[i] = new char[len]; sprintf(strings[i], VALUE_LABEL_SPRINTF_FORMAT, value, name); delete value; delete name; } this->replaceListItems((const char**)strings, options); for (i=0 ; i<options ; i++) delete strings[i]; delete strings; } XmTextSetString(this->valueText, "0"); XmTextSetString(this->labelText, ""); }
extern "C" void ControlPanelGroupDialog_SelectCB(Widget widget, XtPointer clientData, XtPointer callData) { ControlPanelGroupDialog* pgd = (ControlPanelGroupDialog*)clientData; XmListCallbackStruct* cs = (XmListCallbackStruct*)callData; int callIndex = cs->item_position; if(callIndex == pgd->lastIndex) { pgd->lastIndex = 0; XmTextSetString(pgd->text, NULL); XtVaSetValues(pgd->changebtn, XmNsensitive, False, NULL); XtVaSetValues(pgd->deletebtn, XmNsensitive, False, NULL); pgd->setToggles(); } else { char *name = (char*)pgd->panelManager->getPanelGroup(callIndex, NULL); XmTextSetString(pgd->text, name); if(name) { XtVaSetValues(pgd->changebtn, XmNsensitive, True, NULL); XtVaSetValues(pgd->deletebtn, XmNsensitive, True, NULL); } pgd->lastIndex = callIndex; pgd->setToggles(); } }
void pp_add_package_cb(Widget w, XtPointer *call_data, XmAnyCallbackStruct *client_data) { char *today = NULL; /* create screen */ if (pp_provision_shell == NULL) { create_pp_provision_shell (product_packages_shell); create_ppp_confirm_shell (pp_provision_shell); XtAddEventHandler(ppp_start_date_txt,KeyPressMask,False, check_date,NULL); } /* erase the list */ XmListDeleteAllItems (ppp_prov_list); XmListDeselectAllItems(ppp_prov_list); gprov_new_package = 0; today = get_todays_date(); XmTextSetString (ppp_start_date_txt, today); XtFree (today); XmTextSetString (ppp_packageid_txt,""); /* display screen */ XtManageChild (pp_provision_form); XtPopup (pp_provision_shell, XtGrabNone); }
void display_notes_create_screen (Widget w, XtPointer client_data, XtPointer call_data) { /* Display the screen that lets the user enter a new note */ if (notes_create_shell == NULL) { create_notes_create_shell(notes_shell); notes_create_add_event_handlers(); get_user_note_duration(); } init_notes_create_screen (); /* Get account_no from global var */ XmTextSetString (nc_accountid_txt, gacct_external_id); XmTextSetString (nc_accountname_txt, gaccount_name); set_editable_off (nc_accountid_txt); set_editable_off (nc_accountname_txt); set_editable_off (notes_text_txt); XtManageChild(notes_create_form); XtPopup (notes_create_shell, XtGrabNone); /* Set global to indicate that this window is up */ notes_create_shell_up = TRUE; /* Position the cursor on the subscr_no field */ XmProcessTraversal (notes_equip_txt, XmTRAVERSE_CURRENT); }
void SetMacroNameDialog::manage() { Network *n = this->network; char *cat = (char *)n->getCategoryString(); if(cat) XmTextSetString(this->category, cat); else XmTextSetString(this->category, "Macros"); XmTextSetString(this->macroName, (char *)n->getNameString()); XmTextSetString(this->description, (char *)n->getDescriptionString()); boolean sens = (this->network == theDXApplication->network); Pixel color = sens ? theDXApplication->getForeground() : theDXApplication->getInsensitiveColor(); SetTextSensitive(this->macroName, sens, color); SetTextSensitive(this->category, sens, color); SetTextSensitive(this->description, sens, color); this->Dialog::manage(); if(sens) { XmProcessTraversal(this->description, XmTRAVERSE_CURRENT); XmProcessTraversal(this->description, XmTRAVERSE_CURRENT); } }
static void displayGroup(DMAN_GROUPNAMES * g) { if (g == NULL) return; XmTextSetString(wGroupTxt, g->GroupName); XmTextSetString(wApplicationTxt, g->Title); }
void WdaMotif::open_class_dialog( char *hierstr, char *classstr) { XmTextSetString( wdaclass_hiervalue, hierstr); XmTextSetString( wdaclass_classvalue, classstr); XmToggleButtonSetState( wdaclass_attrobjects, (Boolean) attrobjects, False); XtManageChild( wdaclass_dia); }
/*=== cor_reset_filter_cb =================================================== * Resets the Corridor screen's filter fields. */ void cor_reset_filter_cb(Widget w, XtPointer client_data, XtPointer call_data) { XmTextSetString(cor_filter_plan_txt, ""); XmTextSetString(cor_filter_origin_txt, ""); XmTextSetString(cor_filter_target_txt, ""); }
void display_notes_screen(Widget w, XtPointer client_data, XtPointer call_data) { /* Bring up the main notes screen that has filter/sort/browse. */ show_busy_cursor(custinfo_shell, ON); if (notes_shell == NULL) { create_notes_shell(custinfo_shell); XtAddEventHandler(notes_filter_from_txt, KeyPressMask,False, check_date, NULL); XtAddEventHandler(notes_filter_to_txt, KeyPressMask,False, check_date, NULL); /* Initialize the notes sort/filter structures */ init_sort_names(); init_db_names(); /* Set up data structs for each sort toggle button. These structures * are used to know what position the button is in and what ascending/ * descending toggle button is associated with it. */ equip_sort_data.position = EQUIP_NUM; equip_sort_data.asc_desc_btn = ¬es_equip_ad_tog; type_sort_data.position = NOTE_TYPE; type_sort_data.asc_desc_btn = ¬es_type_ad_tog; date_sort_data.position = DATE_TIME; date_sort_data.asc_desc_btn = ¬es_date_ad_tog; userid_sort_data.position = USER_ID; userid_sort_data.asc_desc_btn = ¬es_userid_ad_tog; populate_note_type_list(); } /* Set the account_no using the global variable, gacct_external_id */ XmTextSetString (notes_accountid_txt, gacct_external_id); XmTextSetString (notes_account_name_txt, gaccount_name); set_editable_off (notes_accountid_txt); set_editable_off (notes_account_name_txt); reset_notes_filter(NULL,NULL,NULL); reset_notes_sort(NULL, NULL, NULL); /* this is a callback */ get_notes (); XtPopup (notes_shell, XtGrabNone); XMapRaised (XtDisplay(notes_shell),XtWindow(notes_shell)); show_busy_cursor(custinfo_shell, OFF); XmProcessTraversal(notes_filter_type_txt, XmTRAVERSE_CURRENT); }
static void oneDHistListCB(Widget w, nTuBrowserInfo *nTuBrDummy, caddr_t call_data) { int i, idPos, *posList, count, id, l, jn, uid, ivar; float aa, bb; nTuBrowserInfo *nTuBr; nTuBroHs1D *nTuH1; XmListGetSelectedPos(OneDHistHistoListW, &posList, &count); if (count < 1) return; id = OneDHistListedIDs[((*posList) -1)]; uid = hs_uid(id); /* ** Select the variable associated with this histogram. */ nTuBr = oneDHistNTupleSource(id); if (nTuBr != CurrentNTupleBrowserSelected ) if (!mcfioC_SetSpecificNTupleBr(nTuBr)) return; for(i=0; i<CurrentNTupleBrowserSelected->sizeOfLists; i++) { nTuH1 = (nTuBroHs1D *) CurrentNTupleBrowserSelected->hsItemList[i]; if (nTuH1 == NULL) continue; if (nTuH1->id == id) break; } if (nTuH1 == NULL) { DialogF(DF_ERR, OneDHistShellW, 1, "Internal Error in oneDHistListCB\nPlease report", "Acknowledged"); return; } ivar = nTuH1->varNumber; XmListSelectPos(OneDHistVariableListW, (ivar+1), False); l = hs_title(id, BrowseUtil2htitle); XmTextSetString(OneDHistTitleW, BrowseUtil2htitle); l = hs_1d_hist_num_bins(id); SetIntText(OneDHistNumBinsW, l); hs_1d_hist_range(id, &aa, &bb); SetFloatText(OneDHistLowBinW, aa); SetFloatText(OneDHistHighBinW, bb); /* ** We now have to related this histogram to the associated Ntuple */ for (i=0; i<nTuBr->sizeOfLists; i++) { if (nTuBr->hsItemList[i] == NULL) continue; if (nTuBr->hsItemList[i]->id == id) { nTuH1 = (nTuBroHs1D *) nTuBr->hsItemList[i]; if (nTuH1->subBlock == -1) XmTextSetString(OneDHistMultW, "All"); else SetIntText(OneDHistMultW, nTuH1->subBlock); } break; } XtSetSensitive(OneDHistModifyW, True); XtSetSensitive(OneDHistDeleteW, True); }
static void displayFISAccess(DMAN_FISACCESS * f) { if (f == NULL) return; XmTextSetString(wTitleTxt, f->Title); XmTextSetString(wDatabaseKeyTxt, f->DbKey); XmTextSetString(wGroupTxt, f->GroupName); XmTextSetString(wCommentTxt, f->Comment); }
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; }
static void color_update(struct ida_coledit *me, struct ida_hist *h, int text) { struct op_map_parm param; char tmp[32]; if (me->lock) { if (&me->red != h) me->red.parm = h->parm; if (&me->green != h) me->green.parm = h->parm; if (&me->blue != h) me->blue.parm = h->parm; XClearArea(XtDisplay(me->red.hist), XtWindow(me->red.hist), 0,0,0,0, True); XClearArea(XtDisplay(me->red.map), XtWindow(me->red.map), 0,0,0,0, True); XClearArea(XtDisplay(me->green.hist), XtWindow(me->green.hist), 0,0,0,0, True); XClearArea(XtDisplay(me->green.map), XtWindow(me->green.map), 0,0,0,0, True); XClearArea(XtDisplay(me->blue.hist), XtWindow(me->blue.hist), 0,0,0,0, True); XClearArea(XtDisplay(me->blue.map), XtWindow(me->blue.map), 0,0,0,0, True); } else { XClearArea(XtDisplay(h->hist), XtWindow(h->hist), 0,0,0,0, True); XClearArea(XtDisplay(h->map), XtWindow(h->map), 0,0,0,0, True); } if ((me->lock || h == me->cur) && text >= 1) { /* mouse-click updateable values */ sprintf(tmp,"%d",h->parm.left); XmTextSetString(me->l,tmp); sprintf(tmp,"%d",h->parm.right); XmTextSetString(me->r,tmp); } if ((me->lock || h == me->cur) && text >= 2) { /* others */ sprintf(tmp,"%d",h->parm.bottom); XmTextSetString(me->b,tmp); sprintf(tmp,"%d",h->parm.top); XmTextSetString(me->t,tmp); sprintf(tmp,"%.2f",h->parm.gamma); XmTextSetString(me->g,tmp); } param.red = me->red.parm; param.green = me->green.parm; param.blue = me->blue.parm; viewer_start_preview(ida,&desc_map,¶m); }
static void update_axis_items(int gno) { tickmarks t; if (axis_frame) { get_graph_tickmarks(gno, &t, curaxis); sprintf(buf, "%.5g", t.offsx); XmTextSetString(offx, buf); sprintf(buf, "%.5g", t.offsy); XmTextSetString(offy, buf); } }
void GeCurveMotif::open_minmax( int idx) { char value_str[80]; sprintf( value_str, "%f", cd->min_value_axis[idx]); XmTextSetString( minmax_textmin_widget, value_str); sprintf( value_str, "%f", cd->max_value_axis[idx]); XmTextSetString( minmax_textmax_widget, value_str); minmax_idx = idx; XtManageChild( minmax_widget); }
void GeCurveMotif::activate_xlimits( Widget w, GeCurve *curve, XmAnyCallbackStruct *data) { char value_str[80]; sprintf( value_str, "%f", curve->cd->min_value_axis[0]); XmTextSetString( ((GeCurveMotif *)curve)->minmax_textmin_widget, value_str); sprintf( value_str, "%f", curve->cd->max_value_axis[0]); XmTextSetString( ((GeCurveMotif *)curve)->minmax_textmax_widget, value_str); curve->minmax_idx = 0; XtManageChild( ((GeCurveMotif *)curve)->minmax_widget); }
void reset_filter_ucr( Widget w, XtPointer client_data, XtPointer call_data) { /* Reset all the filter text fields to blank or non-selected for toggles */ XmTextSetString (ci_ucr_level_id_filter_txt, ""); XmTextSetString (ci_ucr_type_filter_txt, ""); XmToggleButtonSetState(ci_ucr_audit_tgl, False, False); memset(ucr_filter_str, '\0', sizeof(ucr_filter_str)); }
void update_ticks_items(int gno) { tickmarks t; if (ticks_frame) { SetChoice(editaxis, curaxis); get_graph_tickmarks(gno, &t, curaxis); XmToggleButtonSetState(tlonoff, t.tl_flag == TRUE, False); XmToggleButtonSetState(tonoff, t.t_flag == TRUE, False); XmToggleButtonSetState(baronoff, t.t_drawbar == TRUE, False); XmTextSetString(axislabel, t.label.s); if (islogx(gno) && (curaxis % 2 == 0)) { t.tmajor = (int) t.tmajor; if (t.tmajor == 0) { t.tmajor = 1; } sprintf(buf, "%.0f", t.tmajor); } else if (islogy(gno) && (curaxis % 2 == 1)) { t.tmajor = (int) t.tmajor; if (t.tmajor == 0) { t.tmajor = 1; } sprintf(buf, "%.0f", t.tmajor); } else if (t.tmajor > 0) { sprintf(buf, "%.5g", t.tmajor); } else { strcpy(buf, "UNDEFINED"); } XmTextSetString(tmajor, buf); if (islogx(gno) && (curaxis % 2 == 0)) { t.tminor = (int) t.tminor; if (t.tminor < 0 || t.tminor > 5) { t.tminor = 0; } sprintf(buf, "%.0f", t.tminor); } else if (islogy(gno) && (curaxis % 2 == 1)) { t.tminor = (int) t.tminor; if (t.tminor < 0 || t.tminor > 5) { t.tminor = 0; } sprintf(buf, "%.0f", t.tminor); } else if (t.tminor > 0) { sprintf(buf, "%.5g", t.tminor); } else { strcpy(buf, "UNDEFINED"); } XmTextSetString(tminor, buf); } }
void GUI_GeneralSlider(Widget w,XtPointer client,XtPointer call){ char text[20]; struct CSlider *cslider=(struct CSlider *)client; char *freqtext; double value; double slidervalue; XmScrollBarCallbackStruct *wx=(XmScrollBarCallbackStruct *)call; #ifdef USELESSTIF slidervalue=(double)(MAXSLIDERVAL-wx->value); #else slidervalue=(double)wx->value; #endif if(cslider->islog){ double s=slidervalue/MAXSLIDERVAL; value=pow(DASE,log(cslider->maxval)*(s-(s*cslider->logval)+cslider->logval)); }else{ value=(slidervalue*(cslider->maxval-cslider->minval)/MAXSLIDERVAL)+cslider->minval; } if(cslider->isdouble){ sprintf(text,"%.*f",cslider->resolution,value); GUI_CallCallBackDouble(cslider,value); }else{ sprintf(text,"%d",(int)value); GUI_CallCallBackInt(cslider,(int)value); } XtRemoveCallback(cslider->textwidget,XmNvalueChangedCallback,GUI_GeneralTextField,cslider); if(cslider->freqtextwidget!=NULL) XtRemoveCallback(cslider->freqtextwidget,XmNvalueChangedCallback,GUI_GeneralFreqTextField,cslider); XmTextSetString(cslider->textwidget,text); if(cslider->freqtextwidget!=NULL){ freqtext=GUI_freq2pitch(value); XmTextSetString(cslider->freqtextwidget,freqtext); free(freqtext); } XtAddCallback(cslider->textwidget,XmNvalueChangedCallback,GUI_GeneralTextField,cslider); if(cslider->freqtextwidget!=NULL) XtAddCallback(cslider->freqtextwidget,XmNvalueChangedCallback,GUI_GeneralFreqTextField,cslider); return; }
void init_notes_create_screen () { /* Clear out fields on notes create screen and reset toggle buttons * to default values. */ XmTextSetString (notes_equip_txt, ""); XmTextSetString (notes_type_txt, ""); if (user_note_duration == TEMP_NOTE) XmToggleButtonSetState (notes_temp_tog, TRUE, TRUE); else XmToggleButtonSetState (notes_perm_tog, TRUE, TRUE); XmToggleButtonSetState (notes_tickler_tog, FALSE, FALSE); XmTextSetString (notes_comment_txt, ""); XmTextSetString (notes_text_txt, ""); }
static void delete_function() { char *str = XmTextGetString(function_name); int warn = !!ison(glob_flags, WARNINGS); ask_item = function_name; turnon(glob_flags, WARNINGS); (void) cmd_line(zmVaStr("\\function -d %s", str), NULL_GRP); if (!warn) turnoff(glob_flags, WARNINGS); XtFree(str); XmTextSetString(function_name, NULL); XmTextSetString(script_input, NULL); }
// // Called by this->listCallback() when a new item is selected in the list. // This should update the the values displayed in the editor to match // the values selected (i.e. listItem). // void SelectionAttrDialog::updateValueEditor(const char *text) { char *label, *value; int len = STRLEN(text); label = new char [len+1]; value = new char [len+1]; ParseListItem(text,value,label); XmTextSetString(this->valueText,value); XmTextSetString(this->labelText,label); delete label; delete value; }
void display_emfpr_dr_data_on_screen (COMPONENT_ELEMENT_TYPE *data_record) { int lm; XmTextSetString (emfpr_dr_product_txt,data_record->text); XmTextSetString (emfpr_dr_disc_reason_txt,""); for (lm = 0; lm < num_cmf_disconnect_reason_codes; lm++) { if (data_record->disc_reason == cmf_disconnect_reason_list[lm].db_code) { XmTextSetString (emfpr_dr_disc_reason_txt,cmf_disconnect_reason_list[lm].description); } } }
// Update list of arguments static void update_arguments(Widget dialog, Widget arguments_w, StringArray& arguments, const string& last, bool& updated) { if (updated || dialog == 0) return; bool *selected = new bool[arguments.size()]; int pos = -1; for (int i = 0; i < arguments.size(); i++) { if (arguments[i] == last) pos = i; selected[i] = false; } if (pos >= 0) selected[pos] = true; setLabelList(arguments_w, arguments.values(), selected, arguments.size(), false, false); if (pos >= 0) XmListSelectPos(arguments_w, pos + 1, False); delete[] selected; Widget text_w = XmSelectionBoxGetChild(dialog, XmDIALOG_TEXT); XmTextSetString(text_w, XMST(last.chars())); updated = true; }
// // Callback from the menu. // void WFoeMotif::valchanged_textinput( Widget w, WFoeMotif *foe, XmAnyCallbackStruct *data) { char *value; int len, sts; if ( foe->widgets.textinput == 0) return; value = XmTextGetString( foe->widgets.textinput); if ( *value == 0) return; len = strlen( value); if ( *(value + len - 1) == 10) { /* Return */ *(value + len - 1) = 0; strcpy( foe->searchstring, value); foe->message( ""); XmTextSetString( foe->widgets.textinput, (char*) ""); XtUnmanageChild(foe->widgets.textinput); /* Call the specified function */ sts = (foe->textinput_func) (foe, value); foe->error_msg( sts); } XtFree((char *) value); }
// Make sure that every change in one filter is reflected in all others static void SyncFiltersCB(Widget dialog, XtPointer, XtPointer) { static bool entered = false; if (entered) return; entered = true; // std::clog << "widget = " << longName(text) << "\n"; while (dialog != 0 && !XmIsFileSelectionBox(dialog)) dialog = XtParent(dialog); // std::clog << "dialog = " << longName(dialog) << "\n"; Widget text = XmFileSelectionBoxGetChild(dialog, XmDIALOG_FILTER_TEXT); String _current_file_filter = XmTextGetString(text); current_file_filter = _current_file_filter; XtFree(_current_file_filter); for (int i = 0; i < file_filters.size(); i++) { if (file_dialogs[i] != dialog) { // std::clog << "other dialog = " << longName(file_dialogs[i]) << "\n"; XmTextSetString(file_filters[i], XMST(current_file_filter.chars())); } } entered = false; }
static int motTextSetSpinValueAttrib(Ihandle* ih, const char* value) { Widget spinbox = (Widget)iupAttribGet(ih, "_IUP_EXTRAPARENT"); if (spinbox && XmIsSpinBox(spinbox)) { int pos; if (iupStrToInt(value, &pos)) { char* value = NULL; int min, max; iupAttribSetStr(ih, "_IUPMOT_DISABLE_TEXT_CB", "1"); XtVaGetValues(ih->handle, XmNminimumValue, &min, XmNmaximumValue, &max, NULL); if (pos < min) pos = min; if (pos > max) pos = max; if (iupAttribGet(ih, "_IUPMOT_SPIN_NOAUTO")) value = XmTextGetString(ih->handle); XtVaSetValues(ih->handle, XmNposition, pos, NULL); if (value) { XmTextSetString(ih->handle, (char*)value); XtFree(value); } iupAttribSetStr(ih, "_IUPMOT_DISABLE_TEXT_CB", NULL); return 1; } } return 0; }