/*ARGSUSED*/ static void UpdateOption(Widget w, XtPointer user_data, XtPointer call_data) { /* xf86removeOption(options, option_str); AddOption(w, user_data, call_data); UpdateOptionList();*/ Arg args[1]; char *nam, *val; XF86OptionPtr option; XtSetArg(args[0], XtNstring, &nam); XtGetValues(name, args, 1); XtSetArg(args[0], XtNstring, &val); XtGetValues(value, args, 1); if ((option = xf86findOption(*options, option_str)) == NULL) return; XtFree(option->opt_name); option->opt_name = option_str = XtNewString(nam); XtFree(option->opt_val); if (val && strlen(val)) option->opt_val = XtNewString(val); else option->opt_val = NULL; UpdateOptionList(); XawListHighlight(list, option_index); XtSetArg(args[0], XtNstring, option->opt_name); XtSetValues(name, args, 1); XtSetArg(args[0], XtNstring, option->opt_val); XtSetValues(value, args, 1); XtSetSensitive(remov, True); XtSetSensitive(update, True); }
/*ARGSUSED*/ static void AddDriverOption(Widget w, XtPointer user_data, XtPointer call_data) { Arg args[1]; OptionInfoPtr opt = (OptionInfoPtr)user_data; XF86OptionPtr option; option_str = (char *)opt->name; XtSetArg(args[0], XtNstring, opt->name); XtSetValues(name, args, 1); if ((option = xf86findOption(*options, opt->name)) == NULL) XtSetArg(args[0], XtNstring, ""); else XtSetArg(args[0], XtNstring, option->opt_val); XtSetValues(value, args, 1); }
/*ARGSUSED*/ static void SelectOptionCallback(Widget w, XtPointer user_data, XtPointer call_data) { Arg args[1]; XF86OptionPtr option; XawListReturnStruct *info = (XawListReturnStruct *)call_data; option_str = info->string; option_index = info->list_index; if ((option = xf86findOption(*options, info->string)) != NULL) { XtSetArg(args[0], XtNstring, option->opt_name); XtSetValues(name, args, 1); XtSetArg(args[0], XtNstring, option->opt_val != NULL ? option->opt_val : ""); XtSetValues(value, args, 1); } XtSetSensitive(remov, True); XtSetSensitive(update, True); }
/*ARGSUSED*/ static void AddOption(Widget w, XtPointer user_data, XtPointer call_data) { Arg args[1]; char *nam, *val; XtSetArg(args[0], XtNstring, &nam); XtGetValues(name, args, 1); XtSetArg(args[0], XtNstring, &val); XtGetValues(value, args, 1); if (xf86findOption(*options, nam) != NULL || strlen(nam) == 0) /* XXX xf86addNewOption will trash the option linked list if * the options being added already exists. */ return; *options = xf86addNewOption(*options, XtNewString(nam), val && strlen(val) ? XtNewString(val) : NULL); UpdateOptionList(); }
/*ARGSUSED*/ XtPointer MouseConfig(XtPointer config) { XF86ConfInputPtr mouse = (XF86ConfInputPtr)config; XF86OptionPtr option; char mouse_name[32]; Arg args[1]; static char *Device = "Device", *Protocol = "Protocol", *Emulate3Buttons = "Emulate3Buttons", *Emulate3Timeout = "Emulate3Timeout"; current_input = mouse; if (mouse != NULL) { emulate = xf86findOption(mouse->inp_option_lst, Emulate3Buttons) != NULL; if ((option = xf86findOption(mouse->inp_option_lst, Device)) != NULL) device = option->opt_val; else device = NULL; if ((option = xf86findOption(mouse->inp_option_lst, Protocol)) != NULL) protocol = option->opt_val; else protocol = NULL; XtSetArg(args[0], XtNstring, mouse->inp_identifier); XtSetValues(ident_widget, args, 1); } else { XF86ConfInputPtr input = XF86Config->conf_input_lst; int nmouses = 0; while (input != NULL) { if (strcasecmp(input->inp_driver, "mouse") == 0) ++nmouses; input = (XF86ConfInputPtr)(input->list.next); } do { XmuSnprintf(mouse_name, sizeof(mouse_name), "Mouse%d", nmouses); ++nmouses; } while (xf86findInput(mouse_name, XF86Config->conf_input_lst)); XtSetArg(args[0], XtNstring, mouse_name); XtSetValues(ident_widget, args, 1); emulate = True; device = NULL; protocol = NULL; } xf86info.cur_list = MOUSE; XtSetSensitive(back, xf86info.lists[MOUSE].cur_function > 0); XtSetSensitive(next, xf86info.lists[MOUSE].cur_function < xf86info.lists[MOUSE].num_functions - 1); (xf86info.lists[MOUSE].functions[xf86info.lists[MOUSE].cur_function]) (&xf86info); if (ConfigLoop(MouseConfigCheck) == True) { XtSetArg(args[0], XtNstring, &device); XtGetValues(text, args, 1); if (mouse == NULL) { mouse = XtNew(XF86ConfInputRec); mouse->list.next = NULL; mouse->inp_identifier = XtNewString(ident_string); mouse->inp_driver = XtNewString("mouse"); mouse->inp_option_lst = xf86newOption(XtNewString(Device), XtNewString(device)); xf86addNewOption(mouse->inp_option_lst, XtNewString(Protocol), XtNewString(protocol)); if (emulate) { xf86addNewOption(mouse->inp_option_lst, XtNewString(Emulate3Buttons), NULL); xf86addNewOption(mouse->inp_option_lst, XtNewString(Emulate3Timeout), XtNewString("50")); } mouse->inp_comment = NULL; } else { if ((option = xf86findOption(mouse->inp_option_lst, Device)) != NULL) { XtFree(option->opt_val); option->opt_val = XtNewString(device); XtFree(option->opt_comment); } else { if (mouse->inp_option_lst == NULL) mouse->inp_option_lst = xf86newOption(XtNewString(Device), XtNewString(device)); else xf86addNewOption(mouse->inp_option_lst, XtNewString(Device), XtNewString(device)); } if ((option = xf86findOption(mouse->inp_option_lst, Protocol)) != NULL) { XtFree(option->opt_val); option->opt_val = XtNewString(protocol); XtFree(option->opt_comment); } else xf86addNewOption(mouse->inp_option_lst, XtNewString(Protocol), XtNewString(protocol)); if (emulate == False) { xf86removeOption(&(mouse->inp_option_lst), Emulate3Buttons); xf86removeOption(&(mouse->inp_option_lst), Emulate3Timeout); } else if (emulate) { xf86addNewOption(mouse->inp_option_lst, XtNewString(Emulate3Buttons), NULL); xf86addNewOption(mouse->inp_option_lst, XtNewString(Emulate3Timeout), XtNewString("50")); } } if (strcasecmp(mouse->inp_identifier, ident_string)) xf86renameInput(XF86Config, mouse, ident_string); return ((XtPointer)mouse); } return (NULL); }