aboutsummaryrefslogtreecommitdiff
path: root/xorg-server/hw/xfree86/utils/xorgcfg/accessx.c
diff options
context:
space:
mode:
authormarha <marha@users.sourceforge.net>2009-07-25 20:12:58 +0000
committermarha <marha@users.sourceforge.net>2009-07-25 20:12:58 +0000
commit2553bdd7c359cd87525d367761c86932cec5adff (patch)
treeae71245933c98474a699d3e392de5820879b2018 /xorg-server/hw/xfree86/utils/xorgcfg/accessx.c
parente2c51f2ee7b0a3ea1a052fc49324057b4a4bbc78 (diff)
parent4a3dbb926ae3f5410198d7cc4f4ebe4f62eebf05 (diff)
downloadvcxsrv-2553bdd7c359cd87525d367761c86932cec5adff.tar.gz
vcxsrv-2553bdd7c359cd87525d367761c86932cec5adff.tar.bz2
vcxsrv-2553bdd7c359cd87525d367761c86932cec5adff.zip
svn merge file:///D:/svnrepos/vcxsrv/branches/released .
Diffstat (limited to 'xorg-server/hw/xfree86/utils/xorgcfg/accessx.c')
-rw-r--r--xorg-server/hw/xfree86/utils/xorgcfg/accessx.c681
1 files changed, 0 insertions, 681 deletions
diff --git a/xorg-server/hw/xfree86/utils/xorgcfg/accessx.c b/xorg-server/hw/xfree86/utils/xorgcfg/accessx.c
deleted file mode 100644
index 38bda383a..000000000
--- a/xorg-server/hw/xfree86/utils/xorgcfg/accessx.c
+++ /dev/null
@@ -1,681 +0,0 @@
-/*
- * Copyright (c) 2000 by Conectiva S.A. (http://www.conectiva.com)
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
- * CONECTIVA LINUX BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
- * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
- * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- *
- * Except as contained in this notice, the name of Conectiva Linux shall
- * not be used in advertising or otherwise to promote the sale, use or other
- * dealings in this Software without prior written authorization from
- * Conectiva Linux.
- *
- * Author: Paulo César Pereira de Andrade <pcpa@conectiva.com.br>
- *
- */
-
-#include "config.h"
-#include <sys/types.h>
-#include <sys/wait.h>
-#include <signal.h>
-#include <X11/XKBlib.h>
-#include <X11/Shell.h>
-#include <X11/Xaw/Command.h>
-#include <X11/Xaw/Form.h>
-#include <X11/Xaw/Label.h>
-#include <X11/Xaw/Scrollbar.h>
-#include <X11/Xaw/Toggle.h>
-#include "keyboard-cfg.h"
-
-#define MAX_TIMEOUT 20
-#define MAX_MOUSE_SPEED 500
-#define MAX_MOUSE_TIME 4
-#define MAX_MOUSE_DELAY 2.09
-#define MAX_REPEAT_RATE 8.04
-#define MAX_REPEAT_DELAY 6.04
-#define MAX_SLOW_TIME 4
-#define MAX_BOUNCE_TIME 4
-
-/*
- * Types
- */
-typedef struct {
- Widget label, number, scroller;
- double min, max, value, resolution;
- Bool integer;
-} Scale;
-
-/*
- * Initialization
- */
-static Widget shell, accessx, enable, timeoutToggle, form, apply;
-static Widget sticky, stickyAuto, stickyBeep;
-static Widget mouse;
-static Widget repeat;
-static Widget slowToggle, slowPressed, slowAccepted;
-static Widget bounceToggle;
-static Scale *timeout, *mouseSpeed, *mouseTime, *mouseDelay, *slow,
- *repeatRate, *repeatDelay, *bounce;
-extern Widget work;
-
-/*
- * Prototypes
- */
-static void CreateAccessXHelpDialog(void);
-static void EnableCallback(Widget, XtPointer, XtPointer);
-static void ScaleEnableCallback(Widget, XtPointer, XtPointer);
-static void ScaleJumpCallback(Widget, XtPointer, XtPointer);
-
-static void ApplyCallback(Widget, XtPointer, XtPointer);
-static void AccessXInitialize(void);
-
-void CloseAccessXAction(Widget, XEvent*, String*, Cardinal*);
-void AccessXConfigureStart(void);
-void AccessXConfigureEnd(void);
-
-/*
- * Implementation
- */
-void
-startaccessx(void)
-{
- InitializeKeyboard();
-
- if (xkb_info->xkb) {
- XkbGetControls(DPY, XkbAllControlsMask, xkb_info->xkb);
- if (xkb_info->xkb->ctrls == NULL)
- xkb_info->xkb->ctrls = (XkbControlsPtr)
- XtCalloc(1, sizeof(XkbControlsRec));
-
- xkb_info->xkb->ctrls->enabled_ctrls |= XkbMouseKeysMask |
- XkbMouseKeysAccelMask;
- xkb_info->xkb->ctrls->mk_delay = 40;
- xkb_info->xkb->ctrls->mk_interval = 10;
- xkb_info->xkb->ctrls->mk_time_to_max = 1000;
- xkb_info->xkb->ctrls->mk_max_speed = 500;
- xkb_info->xkb->ctrls->mk_curve = 0;
- XkbSetControls(DPY, XkbAllControlsMask, xkb_info->xkb);
- (void)UpdateKeyboard(True);
- CreateAccessXHelpDialog();
- }
-}
-
-void
-CreateAccessXHelpDialog()
-{
- Widget form;
-
- shell = XtVaCreatePopupShell("accessx", transientShellWidgetClass, toplevel,
- XtNx, toplevel->core.x + toplevel->core.width,
- XtNy, toplevel->core.y, NULL);
- form = XtCreateManagedWidget("form", formWidgetClass, shell, NULL, 0);
- XtCreateManagedWidget("label", labelWidgetClass, form, NULL, 0);
- XtCreateManagedWidget("lock", labelWidgetClass, form, NULL, 0);
- XtCreateManagedWidget("div", labelWidgetClass, form, NULL, 0);
- XtCreateManagedWidget("mul", labelWidgetClass, form, NULL, 0);
- XtCreateManagedWidget("minus", labelWidgetClass, form, NULL, 0);
- XtCreateManagedWidget("7", labelWidgetClass, form, NULL, 0);
- XtCreateManagedWidget("8", labelWidgetClass, form, NULL, 0);
- XtCreateManagedWidget("9", labelWidgetClass, form, NULL, 0);
- XtCreateManagedWidget("plus", labelWidgetClass, form, NULL, 0);
- XtCreateManagedWidget("4", labelWidgetClass, form, NULL, 0);
- XtCreateManagedWidget("5", labelWidgetClass, form, NULL, 0);
- XtCreateManagedWidget("6", labelWidgetClass, form, NULL, 0);
- XtCreateManagedWidget("1", labelWidgetClass, form, NULL, 0);
- XtCreateManagedWidget("2", labelWidgetClass, form, NULL, 0);
- XtCreateManagedWidget("3", labelWidgetClass, form, NULL, 0);
- XtCreateManagedWidget("enter", labelWidgetClass, form, NULL, 0);
- XtCreateManagedWidget("0", labelWidgetClass, form, NULL, 0);
- XtCreateManagedWidget("del", labelWidgetClass, form, NULL, 0);
-
- XtRealizeWidget(shell);
- XSetWMProtocols(DPY, XtWindow(shell), &wm_delete_window, 1);
- XtPopup(shell, XtGrabNone);
-}
-
-/*ARGSUSED*/
-void
-CloseAccessXAction(Widget w, XEvent *event, String *params, Cardinal *num_params)
-{
- XtPopdown(shell);
-}
-
-static void
-AccessXInitialize(void)
-{
- static int first = 1;
- Arg args[1];
- Boolean state;
- Widget stickyForm, mouseForm, repeatForm, slowForm, bounceForm;
- float val, tmp;
-
- if (!first)
- return;
- first = 0;
-
- InitializeKeyboard();
-
- XkbGetControls(DPY, XkbAllControlsMask, xkb_info->xkb);
- if (xkb_info->xkb->ctrls == NULL)
- xkb_info->xkb->ctrls = (XkbControlsPtr)
- XtCalloc(1, sizeof(XkbControlsRec));
-
- timeout = XtNew(Scale);
- accessx = XtCreateWidget("accessxForm", formWidgetClass, work, NULL, 0);
- enable = XtVaCreateManagedWidget("enable", toggleWidgetClass, accessx,
- XtNstate,
- (xkb_info->xkb->ctrls->enabled_ctrls &
- (XkbAccessXKeysMask | XkbStickyKeysMask |
- XkbSlowKeysMask | XkbBounceKeysMask)) != 0, NULL);
-
- apply = XtCreateManagedWidget("apply", commandWidgetClass, accessx, NULL, 0);
- XtAddCallback(apply, XtNcallback, ApplyCallback, NULL);
-
- form = XtCreateManagedWidget("Accessx", formWidgetClass, accessx, NULL, 0);
- timeoutToggle = XtVaCreateManagedWidget("timeoutToggle", toggleWidgetClass,
- form, XtNstate,
- xkb_info->xkb->ctrls->ax_timeout > 60
- && xkb_info->xkb->ctrls->ax_timeout
- < 30000, NULL);
- XtAddCallback(timeoutToggle, XtNcallback, ScaleEnableCallback,
- (XtPointer)timeout);
- timeout->label = XtCreateManagedWidget("timeoutLabel", labelWidgetClass,
- form, NULL, 0);
- timeout->number = XtCreateManagedWidget("timeoutNumber", labelWidgetClass,
- form, NULL, 0);
- timeout->scroller = XtCreateManagedWidget("timeoutScroller",
- scrollbarWidgetClass,
- form, NULL, 0);
- XtAddCallback(timeout->scroller, XtNjumpProc, ScaleJumpCallback,
- (XtPointer)timeout);
- timeout->min = 1;
- timeout->max = MAX_TIMEOUT;
- timeout->resolution = 1;
- timeout->integer = True;
-
- sticky = XtVaCreateManagedWidget("sticky", toggleWidgetClass, form,
- XtNstate,
- (xkb_info->xkb->ctrls->enabled_ctrls &
- XkbStickyKeysMask) != 0, NULL);
- stickyForm = XtCreateManagedWidget("stickyForm", formWidgetClass,
- form, NULL, 0);
- XtAddCallback(sticky, XtNcallback, EnableCallback, (XtPointer)stickyForm);
- stickyAuto = XtVaCreateManagedWidget("auto", toggleWidgetClass, stickyForm,
- XtNstate,
- (xkb_info->xkb->ctrls->ax_options &
- XkbAX_LatchToLockMask) == 0, NULL);
- stickyBeep = XtVaCreateManagedWidget("beep", toggleWidgetClass, stickyForm,
- XtNstate,
- (xkb_info->xkb->ctrls->ax_options &
- XkbAX_StickyKeysFBMask) != 0, NULL);
-
- mouse = XtVaCreateManagedWidget("mouseKeys", toggleWidgetClass, form,
- XtNstate,
- (xkb_info->xkb->ctrls->enabled_ctrls &
- (XkbMouseKeysMask | XkbMouseKeysAccelMask))
- != 0, NULL);
- mouseForm = XtCreateManagedWidget("mouseForm", formWidgetClass,
- form, NULL, 0);
- XtAddCallback(mouse, XtNcallback, EnableCallback, (XtPointer)mouseForm);
- mouseSpeed = XtNew(Scale);
- mouseSpeed->label = XtCreateManagedWidget("speedLabel", labelWidgetClass,
- mouseForm, NULL, 0);
- mouseSpeed->number = XtCreateManagedWidget("speedNumber", labelWidgetClass,
- mouseForm, NULL, 0);
- mouseSpeed->scroller = XtCreateManagedWidget("speedScroller",
- scrollbarWidgetClass,
- mouseForm, NULL, 0);
- XtAddCallback(mouseSpeed->scroller, XtNjumpProc, ScaleJumpCallback,
- (XtPointer)mouseSpeed);
- mouseSpeed->min = 10;
- mouseSpeed->max = MAX_MOUSE_SPEED;
- mouseSpeed->resolution = 10;
- mouseSpeed->integer = True;
- mouseTime = XtNew(Scale);
- mouseTime->label = XtCreateManagedWidget("timeLabel", labelWidgetClass,
- mouseForm, NULL, 0);
- mouseTime->number = XtCreateManagedWidget("timeNumber", labelWidgetClass,
- mouseForm, NULL, 0);
- mouseTime->scroller = XtCreateManagedWidget("timeScroller",
- scrollbarWidgetClass,
- mouseForm, NULL, 0);
- XtAddCallback(mouseTime->scroller, XtNjumpProc, ScaleJumpCallback,
- (XtPointer)mouseTime);
- mouseTime->min = .1;
- mouseTime->max = MAX_MOUSE_TIME;
- mouseTime->resolution = .1;
- mouseTime->integer = False;
- mouseDelay = XtNew(Scale);
- mouseDelay->label = XtCreateManagedWidget("delayLabel", labelWidgetClass,
- mouseForm, NULL, 0);
- mouseDelay->number = XtCreateManagedWidget("delayNumber", labelWidgetClass,
- mouseForm, NULL, 0);
- mouseDelay->scroller = XtCreateManagedWidget("delayScroller",
- scrollbarWidgetClass,
- mouseForm, NULL, 0);
- XtAddCallback(mouseDelay->scroller, XtNjumpProc, ScaleJumpCallback,
- (XtPointer)mouseDelay);
- mouseDelay->min = .1;
- mouseDelay->max = MAX_MOUSE_DELAY;
- mouseDelay->resolution = .1;
- mouseDelay->integer = False;
-
- repeat = XtVaCreateManagedWidget("repeatKeys", toggleWidgetClass, form,
- XtNstate,
- (xkb_info->xkb->ctrls->enabled_ctrls &
- XkbRepeatKeysMask) != 0, NULL);
- repeatForm = XtCreateManagedWidget("repeatForm", formWidgetClass,
- form, NULL, 0);
- XtAddCallback(repeat, XtNcallback, EnableCallback, (XtPointer)repeatForm);
- repeatRate = XtNew(Scale);
- repeatRate->label = XtCreateManagedWidget("rateLabel", labelWidgetClass,
- repeatForm, NULL, 0);
- repeatRate->number = XtCreateManagedWidget("rateNumber", labelWidgetClass,
- repeatForm, NULL, 0);
- repeatRate->scroller = XtCreateManagedWidget("rateScroller",
- scrollbarWidgetClass,
- repeatForm, NULL, 0);
- XtAddCallback(repeatRate->scroller, XtNjumpProc, ScaleJumpCallback,
- (XtPointer)repeatRate);
- repeatRate->min = .05;
- repeatRate->max = MAX_REPEAT_RATE;
- repeatRate->resolution = .05;
- repeatRate->integer = False;
- repeatDelay = XtNew(Scale);
- repeatDelay->label = XtCreateManagedWidget("delayLabel", labelWidgetClass,
- repeatForm, NULL, 0);
- repeatDelay->number = XtCreateManagedWidget("delayNumber", labelWidgetClass,
- repeatForm, NULL, 0);
- repeatDelay->scroller = XtCreateManagedWidget("delayScroller",
- scrollbarWidgetClass,
- repeatForm, NULL, 0);
- XtAddCallback(repeatDelay->scroller, XtNjumpProc, ScaleJumpCallback,
- (XtPointer)repeatDelay);
- repeatDelay->min = .05;
- repeatDelay->max = MAX_REPEAT_DELAY;
- repeatDelay->resolution = .05;
- repeatDelay->integer = False;
-
- slowToggle = XtVaCreateManagedWidget("slow", toggleWidgetClass,
- form, XtNstate,
- (xkb_info->xkb->ctrls->enabled_ctrls &
- XkbSlowKeysMask) != 0, NULL);
- slowForm = XtCreateManagedWidget("slowForm", formWidgetClass,
- form, NULL, 0);
- XtAddCallback(slowToggle, XtNcallback, EnableCallback, (XtPointer)slowForm);
- XtCreateManagedWidget("beep", labelWidgetClass, slowForm, NULL, 0);
- slowPressed = XtVaCreateManagedWidget("pressed", toggleWidgetClass,
- slowForm, XtNstate,
- (xkb_info->xkb->ctrls->ax_options &
- XkbAX_SKPressFBMask) != 0,
- NULL);
- slowAccepted = XtVaCreateManagedWidget("accepted", toggleWidgetClass,
- slowForm, XtNstate,
- (xkb_info->xkb->ctrls->ax_options &
- XkbAX_SKAcceptFBMask) != 0,
- NULL);
- slow = XtNew(Scale);
- slow->label = XtCreateManagedWidget("slowLabel", labelWidgetClass,
- slowForm, NULL, 0);
- slow->number = XtCreateManagedWidget("slowNumber", labelWidgetClass,
- slowForm, NULL, 0);
- slow->scroller = XtCreateManagedWidget("slowScroller",
- scrollbarWidgetClass,
- slowForm, NULL, 0);
- XtAddCallback(slow->scroller, XtNjumpProc, ScaleJumpCallback,
- (XtPointer)slow);
- slow->min = 0.1;
- slow->max = MAX_SLOW_TIME;
- slow->resolution = 0.1;
- slow->integer = False;
-
- bounceToggle = XtVaCreateManagedWidget("bounce", toggleWidgetClass,
- form, XtNstate,
- (xkb_info->xkb->ctrls->enabled_ctrls &
- XkbBounceKeysMask) != 0,
- NULL);
- bounceForm = XtCreateManagedWidget("bounceForm", formWidgetClass,
- form, NULL, 0);
- XtAddCallback(bounceToggle, XtNcallback, EnableCallback, (XtPointer)bounceForm);
- bounce = XtNew(Scale);
- bounce->label = XtCreateManagedWidget("bounceLabel", labelWidgetClass,
- bounceForm, NULL, 0);
- bounce->number = XtCreateManagedWidget("bounceNumber", labelWidgetClass,
- bounceForm, NULL, 0);
- bounce->scroller = XtCreateManagedWidget("bounceScroller",
- scrollbarWidgetClass,
- bounceForm, NULL, 0);
- XtAddCallback(bounce->scroller, XtNjumpProc, ScaleJumpCallback,
- (XtPointer)bounce);
- bounce->min = 0.1;
- bounce->max = MAX_BOUNCE_TIME;
- bounce->resolution = 0.1;
- bounce->integer = False;
-
- XtRealizeWidget(accessx);
-
- XtSetArg(args[0], XtNstate, &state);
- XtGetValues(timeoutToggle, args, 1);
- ScaleEnableCallback(enable, (XtPointer)timeout, (XtPointer)(long)state);
- if (xkb_info->xkb->ctrls->ax_timeout > 60)
- val = (float)(xkb_info->xkb->ctrls->ax_timeout - 60) /
- (float)(MAX_TIMEOUT * 60);
- else
- val = 0;
- ScaleJumpCallback(timeout->scroller, (XtPointer)timeout, (XtPointer)&val);
-
- XtSetArg(args[0], XtNstate, &state);
- XtGetValues(sticky, args, 1);
- EnableCallback(sticky, (XtPointer)stickyForm, (XtPointer)(long)state);
-
- XtSetArg(args[0], XtNstate, &state);
- XtGetValues(mouse, args, 1);
- EnableCallback(mouse, (XtPointer)mouseForm, (XtPointer)(long)state);
- if (xkb_info->xkb->ctrls->mk_time_to_max > 10)
- val = (float)((xkb_info->xkb->ctrls->mk_time_to_max * (40. / 10.))) /
- (float)(MAX_MOUSE_TIME * 100);
- else
- val = 10.0 / (float)(MAX_MOUSE_TIME * 100);
- ScaleJumpCallback(mouseTime->scroller, (XtPointer)mouseTime,
- (XtPointer)&val);
- tmp = mouseTime->value;
- if (xkb_info->xkb->ctrls->mk_max_speed != 0)
- val = (float)(xkb_info->xkb->ctrls->mk_max_speed / tmp - 10) /
- (float)MAX_MOUSE_SPEED;
- else
- val = 10.0 / (float)MAX_MOUSE_SPEED;
- ScaleJumpCallback(mouseSpeed->scroller, (XtPointer)mouseSpeed,
- (XtPointer)&val);
- if (xkb_info->xkb->ctrls->mk_delay > 10)
- val = (float)(xkb_info->xkb->ctrls->mk_delay - 10) /
- (float)(MAX_MOUSE_DELAY * 100);
- else
- val = 10.0 / (float)(MAX_MOUSE_DELAY * 100);
- ScaleJumpCallback(mouseDelay->scroller, (XtPointer)mouseDelay,
- (XtPointer)&val);
-
- XtSetArg(args[0], XtNstate, &state);
- XtGetValues(repeat, args, 1);
- EnableCallback(repeat, (XtPointer)repeatForm, (XtPointer)(long)state);
- if (xkb_info->xkb->ctrls->repeat_interval > 5)
- val = (float)(xkb_info->xkb->ctrls->repeat_interval - 5) /
- (float)(MAX_REPEAT_RATE * 1000);
- else
- val = 5.0 / (float)(MAX_REPEAT_RATE * 1000);
- ScaleJumpCallback(repeatRate->scroller, (XtPointer)repeatRate,
- (XtPointer)&val);
- if (xkb_info->xkb->ctrls->repeat_delay > 5)
- val = (float)(xkb_info->xkb->ctrls->repeat_delay - 5) /
- (float)(MAX_REPEAT_DELAY * 1000);
- else
- val = 5.0 / (float)(MAX_REPEAT_DELAY * 1000);
- ScaleJumpCallback(repeatDelay->scroller, (XtPointer)repeatDelay,
- (XtPointer)&val);
-
- XtSetArg(args[0], XtNstate, &state);
- XtGetValues(slowToggle, args, 1);
- EnableCallback(slowToggle, (XtPointer)slowForm, (XtPointer)(long)state);
- if (xkb_info->xkb->ctrls->slow_keys_delay > 10)
- val = (float)(xkb_info->xkb->ctrls->repeat_delay - 10) /
- (float)(MAX_SLOW_TIME * 1000);
- else
- val = 10.0 / (float)(MAX_SLOW_TIME * 1000);
- ScaleJumpCallback(slow->scroller, (XtPointer)slow, (XtPointer)&val);
-
- XtSetArg(args[0], XtNstate, &state);
- XtGetValues(bounceToggle, args, 1);
- EnableCallback(bounceToggle, (XtPointer)bounceForm, (XtPointer)(long)state);
- if (xkb_info->xkb->ctrls->debounce_delay > 10)
- val = (float)(xkb_info->xkb->ctrls->debounce_delay - 10) /
- (float)(MAX_BOUNCE_TIME * 1000);
- else
- val = 10.0 / (float)(MAX_BOUNCE_TIME * 1000);
- ScaleJumpCallback(bounce->scroller, (XtPointer)bounce, (XtPointer)&val);
-
- XtSetArg(args[0], XtNstate, &state);
- XtGetValues(enable, args, 1);
-}
-
-void
-AccessXConfigureStart(void)
-{
- AccessXInitialize();
-
- XtMapWidget(accessx);
-}
-
-void
-AccessXConfigureEnd(void)
-{
- XtUnmapWidget(accessx);
-}
-
-/*ARGSUSED*/
-static void
-EnableCallback(Widget w, XtPointer user_data, XtPointer call_data)
-{
- XtSetSensitive((Widget)user_data, (long)call_data);
-}
-
-/*ARGSUSED*/
-static void
-ScaleEnableCallback(Widget w, XtPointer user_data, XtPointer call_data)
-{
- Scale *scale = (Scale*)user_data;
-
- XtSetSensitive(scale->label, (long)call_data);
- XtSetSensitive(scale->number, (long)call_data);
- XtSetSensitive(scale->scroller, (long)call_data);
-}
-
-static void
-ScaleJumpCallback(Widget w, XtPointer user_data, XtPointer call_data)
-{
- Scale *scale = (Scale*)user_data;
- float percent = *(float *)call_data, timeout = percent * scale->max;
- int x;
- char str[8];
- Arg args[1];
-
- if (timeout >= scale->max - scale->min)
- timeout = scale->max - scale->min;
-
- if (scale->integer) {
- int tm = timeout + scale->min;
-
- tm -= tm % (int)scale->resolution;
- XmuSnprintf(str, sizeof(str), "%i", tm);
- scale->value = tm;
- }
- else {
- long tm = (timeout + scale->min) * 1e+6;
-
- tm -= tm % (long)(scale->resolution * 1e+6);
- scale->value = (double)tm / 1e+6;
- XmuSnprintf(str, sizeof(str), "%f", scale->value);
- }
-
- XtSetArg(args[0], XtNlabel, str);
- XtSetValues(scale->number, args, 1);
- x = w->core.x + w->core.border_width;
- x += ((double)(w->core.width - scale->number->core.width) / scale->max) * timeout;
- XtMoveWidget(scale->number, x, scale->number->core.y);
- XawScrollbarSetThumb(w, timeout / (scale->max - scale->min),
- scale->resolution / (scale->max - scale->min));
-}
-
-/*ARGSUSED*/
-static void
-ApplyCallback(Widget w, XtPointer user_data, XtPointer call_data)
-{
- Arg args[1];
- Boolean state;
-
- XkbGetControls(DPY, XkbAllControlsMask, xkb_info->xkb);
-
- /* Enable AccessX */
- XtSetArg(args[0], XtNstate, &state);
- XtGetValues(enable, args, 1);
- if (state) {
- xkb_info->config.initial_ctrls |= XkbAccessXKeysMask;
- xkb_info->xkb->ctrls->enabled_ctrls |= XkbAccessXKeysMask;
- }
- else {
- xkb_info->config.initial_ctrls &= ~XkbAccessXKeysMask;
- xkb_info->xkb->ctrls->enabled_ctrls &= ~XkbAccessXKeysMask;
- }
-
- /* Timeout */
- XtSetArg(args[0], XtNstate, &state);
- XtGetValues(timeoutToggle, args, 1);
- if (state)
- xkb_info->config.ax_timeout =
- xkb_info->xkb->ctrls->ax_timeout = timeout->value * 60;
- else
- xkb_info->config.ax_timeout =
- xkb_info->xkb->ctrls->ax_timeout = 65535;
-
- /* Enable StickyKeys */
- XtSetArg(args[0], XtNstate, &state);
- XtGetValues(sticky, args, 1);
- if (state) {
- xkb_info->config.initial_ctrls |= XkbStickyKeysMask;
- xkb_info->xkb->ctrls->enabled_ctrls |= XkbStickyKeysMask;
- }
- else {
- xkb_info->config.initial_ctrls &= ~XkbStickyKeysMask;
- xkb_info->xkb->ctrls->enabled_ctrls &= ~XkbStickyKeysMask;
- }
- XtSetArg(args[0], XtNstate, &state);
- XtGetValues(stickyAuto, args, 1);
- if (state) {
- xkb_info->config.initial_opts &= ~XkbAX_TwoKeysMask;
- xkb_info->config.initial_opts &= ~XkbAX_LatchToLockMask;
- xkb_info->xkb->ctrls->ax_options &= ~XkbAX_TwoKeysMask;
- xkb_info->xkb->ctrls->ax_options &= ~XkbAX_LatchToLockMask;
- }
- else {
- xkb_info->config.initial_opts &= ~XkbAX_TwoKeysMask;
- xkb_info->config.initial_opts |= XkbAX_LatchToLockMask;
- xkb_info->xkb->ctrls->ax_options &= ~XkbAX_TwoKeysMask;
- xkb_info->xkb->ctrls->ax_options |= XkbAX_LatchToLockMask;
- }
- XtSetArg(args[0], XtNstate, &state);
- XtGetValues(stickyBeep, args, 1);
- if (state) {
- xkb_info->config.initial_opts |= XkbAX_StickyKeysFBMask;
- xkb_info->xkb->ctrls->ax_options |= XkbAX_StickyKeysFBMask;
- }
- else {
- xkb_info->config.initial_opts &= ~XkbAX_StickyKeysFBMask;
- xkb_info->xkb->ctrls->ax_options &= ~XkbAX_StickyKeysFBMask;
- }
-
- /* Enable MouseKeys */
- XtSetArg(args[0], XtNstate, &state);
- XtGetValues(mouse, args, 1);
- if (state) {
- xkb_info->config.initial_ctrls |= XkbMouseKeysAccelMask;
- xkb_info->xkb->ctrls->enabled_ctrls |= XkbMouseKeysMask |
- XkbMouseKeysAccelMask;
- xkb_info->config.mk_delay =
- xkb_info->xkb->ctrls->mk_delay = mouseDelay->value * 100;
- xkb_info->config.mk_interval =
- xkb_info->xkb->ctrls->mk_interval = 40;
- xkb_info->config.mk_time_to_max =
- xkb_info->xkb->ctrls->mk_time_to_max =
- (mouseTime->value * 1000) / xkb_info->xkb->ctrls->mk_interval;
- xkb_info->config.mk_max_speed =
- xkb_info->xkb->ctrls->mk_max_speed =
- mouseSpeed->value * mouseTime->value;
- xkb_info->config.mk_curve = xkb_info->xkb->ctrls->mk_curve = 0;
- }
- else {
- xkb_info->config.initial_ctrls &= ~(XkbMouseKeysMask |
- XkbMouseKeysAccelMask);
- xkb_info->xkb->ctrls->enabled_ctrls &= ~(XkbMouseKeysMask |
- XkbMouseKeysAccelMask);
- }
-
- /* Enable RepeatKeys */
- XtSetArg(args[0], XtNstate, &state);
- XtGetValues(repeat, args, 1);
- if (state) {
- xkb_info->config.initial_ctrls |= XkbRepeatKeysMask;
- xkb_info->xkb->ctrls->enabled_ctrls |= XkbRepeatKeysMask;
- xkb_info->config.repeat_interval =
- xkb_info->xkb->ctrls->repeat_interval = repeatRate->value * 1000;
- xkb_info->config.repeat_delay =
- xkb_info->xkb->ctrls->repeat_delay = repeatDelay->value * 1000;
- }
- else {
- xkb_info->config.initial_ctrls &= ~XkbRepeatKeysMask;
- xkb_info->xkb->ctrls->enabled_ctrls &= ~XkbRepeatKeysMask;
- }
-
- /* Enable SlowKeys */
- XtSetArg(args[0], XtNstate, &state);
- XtGetValues(slowToggle, args, 1);
- if (state) {
- xkb_info->config.initial_ctrls |= XkbSlowKeysMask;
- xkb_info->xkb->ctrls->enabled_ctrls |= XkbSlowKeysMask;
- xkb_info->config.slow_keys_delay =
- xkb_info->xkb->ctrls->slow_keys_delay = slow->value * 1000;
- }
- else {
- xkb_info->config.initial_ctrls &= ~XkbSlowKeysMask;
- xkb_info->xkb->ctrls->enabled_ctrls &= ~XkbSlowKeysMask;
- }
- XtSetArg(args[0], XtNstate, &state);
- XtGetValues(slowPressed, args, 1);
- if (state) {
- xkb_info->config.initial_opts |= XkbAX_SKPressFBMask;
- xkb_info->xkb->ctrls->ax_options |= XkbAX_SKPressFBMask;
- }
- else {
- xkb_info->config.initial_opts &= ~XkbAX_SKPressFBMask;
- xkb_info->xkb->ctrls->ax_options &= ~XkbAX_SKPressFBMask;
- }
- XtSetArg(args[0], XtNstate, &state);
- XtGetValues(slowAccepted, args, 1);
- if (state) {
- xkb_info->config.initial_opts |= XkbAX_SKAcceptFBMask;
- xkb_info->xkb->ctrls->ax_options |= XkbAX_SKAcceptFBMask;
- }
- else {
- xkb_info->config.initial_opts &= ~XkbAX_SKAcceptFBMask;
- xkb_info->xkb->ctrls->ax_options &= ~XkbAX_SKAcceptFBMask;
- }
-
- /* Enable BounceKeys */
- XtSetArg(args[0], XtNstate, &state);
- XtGetValues(bounceToggle, args, 1);
- if (state) {
- xkb_info->config.initial_ctrls |= XkbBounceKeysMask;
- xkb_info->xkb->ctrls->enabled_ctrls |= XkbBounceKeysMask;
- xkb_info->config.debounce_delay =
- xkb_info->xkb->ctrls->debounce_delay = bounce->value * 1000;
- }
- else {
- xkb_info->config.initial_ctrls &= ~XkbBounceKeysMask;
- xkb_info->xkb->ctrls->enabled_ctrls &= ~XkbBounceKeysMask;
- }
-
- XkbSetControls(DPY, XkbAllControlsMask, xkb_info->xkb);
- XSync(DPY, False);
- (void)UpdateKeyboard(True);
-}