diff options
Diffstat (limited to 'Build/source/texk/xdvik/gui/xm_prefs_page.c')
-rw-r--r-- | Build/source/texk/xdvik/gui/xm_prefs_page.c | 691 |
1 files changed, 0 insertions, 691 deletions
diff --git a/Build/source/texk/xdvik/gui/xm_prefs_page.c b/Build/source/texk/xdvik/gui/xm_prefs_page.c deleted file mode 100644 index f18eeacbfb8..00000000000 --- a/Build/source/texk/xdvik/gui/xm_prefs_page.c +++ /dev/null @@ -1,691 +0,0 @@ -/* - * Copyright (c) 2004 Stefan Ulrich - * - * 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 - * PAUL VOJTA OR ANY OTHER AUTHOR OF THIS SOFTWARE 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. - * - */ - -/* - * Panel 4 (Paper size) for xdvik preferences dialog. - */ - -#include "xdvi-config.h" -#include "xdvi.h" - -#include "x_util.h" -#include "xm_colorsel.h" -#include "topic-window.h" -#include "util.h" -#include "events.h" -#include "statusline.h" - -#include "xm_prefsP.h" -#include "xm_prefs_page.h" -#include "my-snprintf.h" - -#ifdef MOTIF /* entire file */ - -#include <X11/Xatom.h> - -#include <Xm/Xm.h> -#include <Xm/Protocols.h> -#include <Xm/DialogS.h> -#include <Xm/LabelG.h> -#include <Xm/PushB.h> -#include <Xm/PushBG.h> -#include <Xm/Form.h> -#include <Xm/Frame.h> -#include <Xm/PanedW.h> -#include <Xm/DrawnB.h> -#include <Xm/RowColumn.h> -#include <Xm/Scale.h> -#include <Xm/ToggleBG.h> -#include <Xm/Text.h> -#include <Xm/TextF.h> -#include <Xm/CascadeBG.h> - -#if USE_SPINBOX -#include <Xm/SpinB.h> -#endif - -/* - * Handy defaults - */ -static Arg one_of_many = { XmNindicatorType, XmONE_OF_MANY }; -static Arg n_of_many = { XmNindicatorType, XmN_OF_MANY }; -static Arg frame_title = { XmNchildType, XmFRAME_TITLE_CHILD }; -static Arg one_col[] = { - { XmNpacking, XmPACK_TIGHT }, - { XmNnumColumns, 1 }, - { XmNorientation, XmVERTICAL } -}; - - -/* this is a small selection from the paper types in xdvi.c - * (only the more frequenlty used ones) - */ -static struct paper_info { - const char *format; - const char *resource_format; - const char *size; - const char *landscape_size; -} papersizes[] = { - { "US (Letter)", "us", "8.5x11in", "11x8.5in" }, - { "Tabloid", "tabloid", "11x17in", "17x11in" }, /* dvips compatibility */ - { "Legal", "legal", "8.5x14in", "14x8.5in" }, - { "A0", "a0", "841x1189mm", "1189x841mm" }, - { "A1", "a1", "594x841mm", "841x594mm" }, - { "A2", "a2", "420x594mm", "594x420mm" }, - { "A3", "a3", "297x420mm", "420x297mm" }, - { "A4", "a4", "210x297mm", "297x210mm" }, - { "A5", "a5", "148x210mm", "210x148mm" }, - { "B5", "b5", "176x250mm", "250x176mm" }, - { "B6", "b6", "125x176mm", "176x125mm" }, - { "B7", "b7", "88x125mm", "125x88mm" }, - { NULL, NULL, NULL, NULL } /* terminate */ -}; - -void update_preferences_windowsize(void) -{ - Widget shell, button; - - /* it's not an error if the prefs dialog doesn't exist yet */ - if (get_widget_by_name(&shell, globals.widgets.top_level, Xdvi_PREFS_DIALOG_NAME, False) - && get_widget_by_name(&button, shell, Xdvi_REMEMBER_WINDOWSIZE_STR, True)) { - XmToggleButtonGadgetSetState(button, resource.remember_windowsize, False); - } -} - -void update_preferences_shrink(void) -{ - Widget shell, text; - - if (get_widget_by_name(&shell, globals.widgets.top_level, Xdvi_PREFS_DIALOG_NAME, False) - && get_widget_by_name(&text, shell, Xdvi_SHRINK_TEXT, True)) { - char buf[LENGTH_OF_INT]; - SNPRINTF(buf, LENGTH_OF_INT, "%d", resource.shrinkfactor); -#if USE_SPINBOX - XmTextFieldSetString(text, buf); - XtVaSetValues(text, XmNposition, resource.shrinkfactor, NULL); -#else - XtVaSetValues(text, XmNvalue, buf, NULL); -#endif - } -} - -static void -landscape_cb(Widget w, XtPointer client_data, XtPointer call_data) -{ - struct topic_info *tinfo = (struct topic_info *)client_data; - struct prefs_choice *prefs = (struct prefs_choice *)tinfo->data; - Widget portrait_b, landscape_b; - Boolean landscape = False, is_set; - static char *paper_option = NULL; - Boolean match = False; - int i; - - UNUSED(call_data); - - for (i = 0; papersizes[i].format != NULL; i++) { - /* ignore final `r' when comparing */ - if (strncmp(resource.paper, - papersizes[i].resource_format, - strlen(papersizes[i].resource_format)) == 0) { - const char *ptr; - match = True; - if (strcmp(resource.paper, "letter") == 0) /* special case */ - ptr = "us"; - else - ptr = papersizes[i].resource_format; - free(paper_option); - paper_option = xstrdup(ptr); - break; - } - } - - if (!match) { - XDVI_ERROR((stderr, "paper resource `%s' not found in list!\n", resource.paper)); - return; - } - - if (get_widget_by_name(&portrait_b, tinfo->shell, Xdvi_PAPER_PORTRAIT_STR, True) - && get_widget_by_name(&landscape_b, tinfo->shell, Xdvi_PAPER_LANDSCAPE_STR, True)) { - - if (w == portrait_b) { - XtVaGetValues(portrait_b, XmNset, &is_set, NULL); - landscape = !is_set; - } - else { - XtVaGetValues(landscape_b, XmNset, &is_set, NULL); - landscape = is_set; - } - - /* fprintf(stderr, "++++++++ CALLBACK: setting portrait to %s, landscape to %s\n", */ - /* landscape ? "False" : "True", */ - /* landscape ? "True" : "False"); */ - - XmToggleButtonGadgetSetState(portrait_b, !landscape, False); - XmToggleButtonGadgetSetState(landscape_b, landscape, False); - } - - if (landscape) { - paper_option = xstrcat(paper_option, "r"); - } - - resource.paper = paper_option; - store_preference(&(prefs->db), "paper", "%s", paper_option); -} - -static void -select_cb(Widget w, XtPointer client_data, XtPointer call_data) -{ - struct topic_info *tinfo = (struct topic_info *)client_data; - struct prefs_choice *prefs = (struct prefs_choice *)tinfo->data; - - XmString str; - char *choice; - int i; - static char *curr_choice= NULL; - Boolean landscape = False; - - UNUSED(call_data); - - XtVaGetValues(w, XmNlabelString, &str, NULL); - XmStringGetLtoR(str, G_charset, &choice); - - if (strlen(resource.paper) > 0 && - strcmp(resource.paper, "letter") != 0 && - resource.paper[strlen(resource.paper) - 1] == 'r') - landscape = True; - - free(curr_choice); - curr_choice = NULL; - for (i = 0; papersizes[i].format != NULL; i++) { - if (strcmp(choice, papersizes[i].format) == 0) { - curr_choice = xstrdup(papersizes[i].resource_format); - } - } - if (curr_choice == NULL) { - XDVI_ERROR((stderr, "choice`%s' not found in list!\n", choice)); - return; - } - - if (landscape) { - curr_choice = xstrcat(curr_choice, "r"); - } - - resource.paper = curr_choice; - store_preference(&(prefs->db), "paper", "%s", curr_choice); -} - -void -update_preferences_paper(void) -{ - Widget shell, portrait_button, landscape_button, sizes_menu, sizes_cascade; - Boolean landscape = False; - - /* it's not an error if the prefs dialog doesn't exist yet */ - if (get_widget_by_name(&shell, globals.widgets.top_level, Xdvi_PREFS_DIALOG_NAME, False) - && get_widget_by_name(&portrait_button, shell, Xdvi_PAPER_PORTRAIT_STR, True) - && get_widget_by_name(&landscape_button, shell, Xdvi_PAPER_LANDSCAPE_STR, True) - && get_widget_by_name(&sizes_menu, shell, Xdvi_PAPER_MENU, True) - && get_widget_by_name(&sizes_cascade, shell, Xdvi_PAPER_CASCADE, True)) { - - int i; - Widget sizes_button; - - if (strlen(resource.paper) > 0 && - strcmp(resource.paper, "letter") != 0 && - resource.paper[strlen(resource.paper) - 1] == 'r') { - - landscape = True; - } - -#if 0 - XtVaGetValues(portrait_button, XmNset, &test1, NULL); - XtVaGetValues(landscape_button, XmNset, &test2, NULL); - - fprintf(stderr, "+++++++ old state of portrait: %d, landscape: %d\n", - test1, test2); - - fprintf(stderr, "+++++++ setting portrait to %s, landscape to %s\n", - landscape ? "False" : "True", - landscape ? "True" : "False"); -#endif /* 0 */ - - /* - Apparently there's a bug in Motif (OpenMotif 2.1) in that the button - is not properly updated in all cases. - - To reproduce: - - Open Preferences dialog, change `landscape' option, click - `OK'. Now open the dialog again, change the option again, - but click `Cancel'. This correctly reverts the visible - state of the buttons, but when opening the dialog again, - the button's internal state is not consistent with the - visual appearance: when clicking on the unset button, its - ValueChanged callback is not invoked, so nothing happens; - but after clicking on another(!) button in the preferences - dialog, it works again. - - As a workaround, we destroy the buttons and re-create them from scratch - yuck! - */ - { - Widget form = XtParent(portrait_button); - Widget cascade; - struct topic_info *info; - - XtVaGetValues(portrait_button, - XmNleftWidget, &cascade, - XmNuserData, &info, - NULL); - XtDestroyWidget(portrait_button); - XtDestroyWidget(landscape_button); - - portrait_button = XmCreateToggleButtonGadget(form, Xdvi_PAPER_PORTRAIT_STR, &one_of_many, 1); - XmToggleButtonGadgetSetState(portrait_button, !landscape, False); - XtVaSetValues(portrait_button, - XmNtopAttachment, XmATTACH_FORM, - XmNbottomAttachment, XmATTACH_FORM, - XmNleftAttachment, XmATTACH_WIDGET, - XmNleftWidget, cascade, - XmNleftOffset, 10, - XmNuserData, (XtPointer)info, - NULL); - landscape_button = XmCreateToggleButtonGadget(form, Xdvi_PAPER_LANDSCAPE_STR, &one_of_many, 1); - XmToggleButtonGadgetSetState(landscape_button, landscape, False); - XtVaSetValues(landscape_button, - XmNtopAttachment, XmATTACH_FORM, - XmNbottomAttachment, XmATTACH_FORM, - XmNleftAttachment, XmATTACH_WIDGET, - XmNleftWidget, portrait_button, - XmNleftOffset, 10, - XmNuserData, (XtPointer)info, - NULL); - XtManageChild(portrait_button); - XtManageChild(landscape_button); - XtAddCallback(portrait_button, XmNvalueChangedCallback, landscape_cb, (XtPointer)info); - XtAddCallback(landscape_button, XmNvalueChangedCallback, landscape_cb, (XtPointer)info); - } -#if 0 - XtVaGetValues(portrait_button, XmNset, &test1, NULL); - XtVaGetValues(landscape_button, XmNset, &test2, NULL); - - fprintf(stderr, "+++++++ new state of portrait: %d, landscape: %d\n", - test1, test2); -#endif /* 0 */ - - for (i = 0; papersizes[i].format != NULL; i++) { - if (strncmp(resource.paper, - papersizes[i].resource_format, - strlen(papersizes[i].resource_format)) == 0 - && get_widget_by_name(&sizes_button, sizes_menu, papersizes[i].format, True)) { - - XtVaSetValues(sizes_cascade, XmNmenuHistory, sizes_button, NULL); - } - } - } -} - -#if 0 /* currently unused */ -static void -shrinkfactor_spinbox_cb(Widget w, XtPointer client_data, XtPointer call_data) -{ - int val; - /* static Boolean first_time = True; */ - struct topic_info *info = (struct topic_info *)client_data; - struct prefs_choice *prefs = (struct prefs_choice *)(info->data); - UNUSED(call_data); - - XtVaGetValues(w, XmNposition, &val, NULL); - - /* return if value not changed yet; else the first invocation of the - window may actually reset the shrink factor to the default. - */ - /* if (val != resource.shrinkfactor) { */ - /* first_time = False; */ - /* } */ - - if (XtIsRealized(w)) { - /* don't set the resource.shrinkfactor here so that we can revert it from there if needed */ - do_set_shrinkfactor(val, False); - store_preference(&(prefs->db), "shrinkFactor", "%d", val); - } -} -#endif /* currently unused */ - -static void -set_shrinkfactor_cb(Widget w, XtPointer client_data, XtPointer call_data) -{ - char *text; - int val; - struct topic_info *info = (struct topic_info *)client_data; - struct prefs_choice *prefs = (struct prefs_choice *)(info->data); - -#if USE_SPINBOX - XmTextPosition pos; - UNUSED(call_data); - text = XmTextFieldGetString(w); - val = strtol(text, (char **)NULL, 10); -#else - Widget text_field; - UNUSED(call_data); - XtVaGetValues(w, XmNuserData, &text_field, NULL); - ASSERT(text_field != 0, "Expected text field in XmNuserData, set_shrinkfactor_cb()"); - XtVaGetValues(text_field, XmNvalue, &text, NULL); - val = strtol(text, (char **)NULL, 10); - /* fprintf(stderr, "spinbox value: |%s|\n", text); */ -#endif - - if (!XtIsRealized(w)) - return; - - /* verify values in case of direct text input */ - if (val > 100 || val <= 0) { - if (val > 100) - statusline_info(STATUS_MEDIUM, "Shrink factor larger than maximum 100"); - else if (val <= 0) - statusline_info(STATUS_MEDIUM, "Shrink factor smaller than minimum 1"); - return; - } -#if USE_SPINBOX - /* synchronize internal spinbox value */ - pos = XmTextFieldGetInsertionPosition(w); - XtVaSetValues(w, XmNposition, val, NULL); - XmTextFieldSetInsertionPosition(w, pos); -#endif - /* don't set the resource.shrinkfactor here so that we can revert it from there if needed */ - do_set_shrinkfactor(val, False); - store_preference(&(prefs->db), "shrinkFactor", "%d", val); - - XtFree(text); -} - -static Widget -h_create_shrink_frame(Widget top, struct topic_info *info) -{ - Widget shrink_form, shrink_label; - - UNUSED(info); - - shrink_form = XmCreateForm(top, "shrink_form", NULL, 0); - XtVaSetValues(shrink_form, - /* XmNverticalSpacing, 10, */ - /* XmNhorizontalSpacing, 10, */ - NULL); - - - shrink_label = XmCreateLabelGadget(shrink_form, "Default Shrink Factor: ", NULL, 0); - XtVaSetValues(shrink_label, - XmNtopAttachment, XmATTACH_FORM, - XmNleftAttachment, XmATTACH_FORM, - XmNbottomAttachment, XmATTACH_FORM, - /* TODO XmNleftOffset, 10, */ - NULL); - XtManageChild(shrink_label); - { - Widget shrink_text; -#if USE_SPINBOX - Widget shrink_spinbox = - XtVaCreateManagedWidget(Xdvi_SHRINK_SPINBOX, xmSpinBoxWidgetClass, shrink_form, - XmNtopAttachment, XmATTACH_FORM, - XmNleftAttachment, XmATTACH_WIDGET, - XmNleftWidget, shrink_label, - XmNinitialDelay, 200, - XmNrepeatDelay, 50, - NULL); - shrink_text = - XtVaCreateManagedWidget(Xdvi_SHRINK_TEXT, xmTextFieldWidgetClass, shrink_spinbox, - XmNspinBoxChildType, XmNUMERIC, - XmNminimumValue, 1, - XmNmaximumValue, 100, - XmNeditable, True, - XmNcolumns, 3, - XmNincrementValue, 1, - XmNwrap, False, /* too confusing */ - /* NOTE: use resource.shrinkfactor here, not current setting, - otherwise the current setting will sneak into ~/.xdvirc */ - XmNposition, (int)(resource.shrinkfactor), - NULL); - - XtAddCallback(shrink_text, XmNactivateCallback, set_shrinkfactor_cb, (XtPointer)info); - XtAddCallback(shrink_text, XmNvalueChangedCallback, set_shrinkfactor_cb, (XtPointer)info); - - adjust_heights(shrink_spinbox, shrink_text, shrink_label, NULL); - -#else - char buf[LENGTH_OF_INT]; - Widget shrink_button; - shrink_text = XmCreateTextField(shrink_form, Xdvi_SHRINK_TEXT, NULL, 0); - SNPRINTF(buf, LENGTH_OF_INT, "%d", resource.shrinkfactor); - XtVaSetValues(shrink_text, - XmNtopAttachment, XmATTACH_FORM, - XmNleftAttachment, XmATTACH_WIDGET, - XmNleftWidget, shrink_label, - XmNcolumns, 4, - XmNvalue, buf, - XmNuserData, shrink_text, - NULL); - XtOverrideTranslations(shrink_text, XtParseTranslationTable("<Key>Return:activate()")); - XtAddCallback(shrink_text, XmNactivateCallback, set_shrinkfactor_cb, (XtPointer)info); - - shrink_button = XmCreatePushButton(shrink_form, Xdvi_APPLY_STR, NULL, 0); - XtVaSetValues(shrink_button, - XmNtopAttachment, XmATTACH_FORM, - XmNleftAttachment, XmATTACH_WIDGET, - XmNleftOffset, 10, - XmNleftWidget, shrink_text, - XmNuserData, shrink_text, - NULL); - XtAddCallback(shrink_button, XmNactivateCallback, set_shrinkfactor_cb, (XtPointer)info); - - adjust_heights(shrink_label, shrink_text, shrink_button, NULL); - XtManageChild(shrink_text); - XtManageChild(shrink_button); -#endif - } - - /* XtManageChild(shrink_form); */ - - return shrink_form; -} - -static void -remember_windowsize_cb(Widget w, XtPointer client_data, XtPointer call_data) -{ - struct topic_info *info = (struct topic_info *)client_data; - struct prefs_choice *prefs = (struct prefs_choice *)(info->data); - - UNUSED(w); - UNUSED(call_data); - - resource.remember_windowsize = !resource.remember_windowsize; - - store_preference(&(prefs->db), "rememberWindowSize", "%s", resource.remember_windowsize ? "True" : "False"); -} - - - -static Widget -h_create_papersize_form(Widget parent, struct topic_info *info) -{ - Widget form, menu, cascade, portrait_option, landscape_option; - XmString str; - Arg args[8]; - int n; - size_t i; - Boolean landscape = False; - - form = XmCreateForm(parent, "paper_form", NULL, 0); - - menu = XmCreatePulldownMenu(form, Xdvi_PAPER_MENU, NULL, 0); - - if (strcmp(resource.paper, "letter") != 0 && /* exceptions: these have no landscape format */ - strcmp(resource.paper, "ledger") != 0 && - strlen(resource.paper) > 0 && - resource.paper[strlen(resource.paper) - 1] == 'r') { /* landscape format */ - landscape = True; - } - - str = XmStringCreateLocalized("Paper Size:"); - - n = 0; - XtSetArg(args[n], XmNsubMenuId, menu); n++; - XtSetArg(args[n], XmNlabelString, str); n++; - XtSetArg(args[n], XmNtopAttachment, XmATTACH_FORM); n++; - XtSetArg(args[n], XmNleftAttachment, XmATTACH_FORM); n++; - XtSetArg(args[n], XmNbottomAttachment, XmATTACH_FORM); n++; - - cascade = XmCreateOptionMenu(form, Xdvi_PAPER_CASCADE, args, n); - XmStringFree(str); - - portrait_option = XmCreateToggleButtonGadget(form, Xdvi_PAPER_PORTRAIT_STR, &one_of_many, 1); - XmToggleButtonGadgetSetState(portrait_option, !landscape, False); - XtVaSetValues(portrait_option, - XmNtopAttachment, XmATTACH_FORM, - XmNbottomAttachment, XmATTACH_FORM, - XmNleftAttachment, XmATTACH_WIDGET, - XmNleftWidget, cascade, - XmNleftOffset, 10, - XmNuserData, (XtPointer)info, - NULL); - - landscape_option = XmCreateToggleButtonGadget(form, Xdvi_PAPER_LANDSCAPE_STR, &one_of_many, 1); - XmToggleButtonGadgetSetState(landscape_option, landscape, False); - XtVaSetValues(landscape_option, - XmNtopAttachment, XmATTACH_FORM, - XmNbottomAttachment, XmATTACH_FORM, - XmNleftAttachment, XmATTACH_WIDGET, - XmNleftWidget, portrait_option, - XmNleftOffset, 10, - XmNuserData, (XtPointer)info, - NULL); - /* adjust_heights(landscape_option, menu, cascade, NULL); */ - XtAddCallback(portrait_option, XmNvalueChangedCallback, landscape_cb, (XtPointer)info); - XtAddCallback(landscape_option, XmNvalueChangedCallback, landscape_cb, (XtPointer)info); - /* XtAddCallback(portrait_option, XmNarmCallback, test_cb, (XtPointer)info); */ - /* XtAddCallback(landscape_option, XmNarmCallback, test_cb, (XtPointer)info); */ - - XtManageChild(portrait_option); - XtManageChild(landscape_option); - - for (i = 0; papersizes[i].format != NULL; i++) { - Widget w = XtVaCreateManagedWidget(papersizes[i].format, xmPushButtonGadgetClass, menu, - XmNuserData, landscape_option, - NULL); - /* fprintf(stderr, "Created button: %p for %s\n", w, papersizes[i].format); */ - - /* select default value */ - if (strncmp(resource.paper, - papersizes[i].resource_format, - strlen(papersizes[i].resource_format)) == 0) { - XtVaSetValues(cascade, XmNmenuHistory, w, NULL); - } - XtAddCallback(w, XmNactivateCallback, select_cb, (XtPointer)info); - } - XtManageChild(cascade); - - return form; -} - -Widget -prefs_paper(struct topic_info *info) -{ - Widget form; - Widget geometry_frame, geometry_label, geometry_rowcol, shrink_frame, geometry_button; - Widget paper_frame, paper_label; - Arg args[10]; - int n = 0; - Widget rowcol; -#if !defined(LESSTIF_VERSION) - Widget paper_text; -#endif - Widget paper_size_form; - - form = XtVaCreateWidget("form", xmFormWidgetClass, - info->right_form, - XmNtopAttachment, XmATTACH_FORM, - XmNleftAttachment, XmATTACH_FORM, - XmNrightAttachment, XmATTACH_FORM, - XmNbottomAttachment, XmATTACH_FORM, - NULL); - - n = 0; - XtSetArg(args[n], XmNmarginWidth, 8); n++; - XtSetArg(args[n], XmNmarginHeight, 4); n++; - geometry_frame = XmCreateFrame(form, "geometry_frame", args, n); - h_attach_below(geometry_frame, NULL); - - geometry_label = XmCreateLabelGadget(geometry_frame, "Window Size and Shrink Factor", &frame_title, 1); - XtManageChild(geometry_label); - - geometry_rowcol = XmCreateRowColumn(geometry_frame, "geometry_rowcol", one_col, XtNumber(one_col)); - - geometry_button = XmCreateToggleButtonGadget(geometry_rowcol, Xdvi_REMEMBER_WINDOWSIZE_STR, &n_of_many, 1); - XmToggleButtonGadgetSetState(geometry_button, resource.remember_windowsize, False); - XtAddCallback(geometry_button, XmNvalueChangedCallback, remember_windowsize_cb, (XtPointer)info); - XtManageChild(geometry_button); - - shrink_frame = h_create_shrink_frame(geometry_rowcol, info); - XtManageChild(shrink_frame); - - XtManageChild(geometry_rowcol); - - n = 0; - XtSetArg(args[n], XmNmarginWidth, 8); n++; - XtSetArg(args[n], XmNmarginHeight, 4); n++; - XtSetArg(args[n], XmNtopOffset, 10); n++; - paper_frame = XmCreateFrame(form, "paper_frame", args, n); - h_attach_below(paper_frame, geometry_frame); - - paper_label = XmCreateLabelGadget(paper_frame, "Default Paper Size", &frame_title, 1); - XtManageChild(paper_label); - - rowcol = XmCreateRowColumn(paper_frame, "papersize_rowcol", NULL, 0); - -#if !defined(LESSTIF_VERSION) /* stupid LessTif doesn't wrap Labels at '\n' */ - paper_text = XmCreateLabelGadget(rowcol, - "Used if the DVI file does not specify the paper size, e.g. via\n" - "\\usepackage[dvips]{geometry}. This setting will only take effect\n" - "after restarting xdvi.", NULL, 0); - XtVaSetValues(paper_text, - XmNalignment, XmALIGNMENT_BEGINNING, - NULL); - XtManageChild(paper_text); -#endif - - paper_size_form = h_create_papersize_form(rowcol, info); - XtManageChild(paper_size_form); - - XtManageChild(rowcol); - - XtManageChild(geometry_frame); - XtManageChild(paper_frame); - - XtManageChild(form); - - return form; -} - -#else -/* silence `empty compilation unit' warnings */ -static void bar(void); static void foo(void) { bar(); } static void bar(void) { foo(); } -#endif /* MOTIF */ - |