wdvi

network DVI viewer
Log | Files | Refs

commit d6599a6cb90a3c0ebdbf783c6e3f40ec4eaf82df
parent 8ee0ee3f72ce90f3989b0aeab4ba221bcbad7004
Author: Kyle Milz <krwmilz@gmail.com>
Date:   Thu,  9 Sep 2021 18:55:08 +0000

more cleanup of main

- move widget args closer to where they are used
- add more style(9)

Diffstat:
Mxdvi.c | 225++++++++++++++++++++++++++++++++++---------------------------------------------
1 file changed, 97 insertions(+), 128 deletions(-)

diff --git a/xdvi.c b/xdvi.c @@ -441,38 +441,6 @@ static WidgetClassRec drawingWidgetClass = { } }; -#define drawWidgetClass &drawingWidgetClass - -static Arg vport_args[] = { - {XtNborderWidth, (XtArgVal) 0}, - {XtNtop, (XtArgVal) XtChainTop}, - {XtNbottom, (XtArgVal) XtChainBottom}, - {XtNleft, (XtArgVal) XtChainLeft}, - {XtNright, (XtArgVal) XtChainRight}, - {XtNallowHoriz, (XtArgVal) True}, - {XtNallowVert, (XtArgVal) True}, -}; - -static Arg draw_args[] = { - {XtNwidth, (XtArgVal) 0}, - {XtNheight, (XtArgVal) 0}, - {XtNx, (XtArgVal) 0}, - {XtNy, (XtArgVal) 0}, - {XtNlabel, (XtArgVal) ""}, -}; - -static Arg addr_args[] = { - {XtNwidth, (XtArgVal) 0}, - {XtNfromVert, (XtArgVal) NULL}, - {XtNdataCompression, (XtArgVal) False}, - {XtNeditType, (XtArgVal) XawtextEdit}, - {XtNstring, (XtArgVal) addr_default}, -}; - -static Arg form_args[] = { - {XtNdefaultDistance, (XtArgVal) 0}, -}; - static void usage(const char *message, ...) { @@ -1152,7 +1120,7 @@ main(int argc, char **argv) init_font_open(); init_dvi_file(); if (resource.prescan) - prescan(); + prescan(); init_page(); /* @@ -1193,116 +1161,135 @@ main(int argc, char **argv) /* * Widget creation. */ - form_widget = XtCreateManagedWidget("form", formWidgetClass, - top_level, form_args, XtNumber(form_args)); -#define form_or_top form_widget /* for calls later on */ -#define form_or_vport form_widget + Arg form_args[] = { + { XtNdefaultDistance, 0 }, + }; + form_widget = XtCreateManagedWidget("form", formWidgetClass, + top_level, form_args, XtNumber(form_args)); + + Arg vport_args[] = { + { XtNborderWidth, 0 }, + { XtNtop, XtChainTop }, + { XtNbottom, XtChainBottom }, + { XtNleft, XtChainLeft }, + { XtNright, XtChainRight }, + { XtNallowHoriz, True }, + { XtNallowVert, True }, + }; vport_widget = XtCreateManagedWidget("vport", viewportWidgetClass, - form_or_top, vport_args, XtNumber(vport_args)); + form_widget, vport_args, XtNumber(vport_args)); clip_widget = XtNameToWidget(vport_widget, "clip"); - draw_args[0].value = (XtArgVal) page_w; - draw_args[1].value = (XtArgVal) page_h; - draw_widget = XtCreateManagedWidget("drawing", drawWidgetClass, - vport_widget, draw_args, XtNumber(draw_args)); - - addr_args[0].value = (XtArgVal) page_w; - addr_args[1].value = (XtArgVal) vport_widget; - if (url != NULL) - addr_args[4].value = (XtArgVal) url; + Arg draw_args[] = { + { XtNwidth, page_w }, + { XtNheight, page_h }, + { XtNx, 0 }, + { XtNy, 0 }, + { XtNlabel, (XtArgVal) "" }, + }; + draw_widget = XtCreateManagedWidget("drawing", &drawingWidgetClass, + vport_widget, draw_args, XtNumber(draw_args)); + + Arg addr_args[] = { + { XtNwidth, page_w }, + { XtNfromVert, (XtArgVal) vport_widget }, + { XtNdataCompression, False }, + { XtNeditType, XawtextEdit }, + { XtNstring, (XtArgVal) (url ? url : addr_default) }, + { XtNinsertPosition, strlen(addr_default) }, + }; addr_widget = XtCreateManagedWidget("address", asciiTextWidgetClass, - form_or_top, addr_args, XtNumber(addr_args)); + form_widget, addr_args, XtNumber(addr_args)); - XawTextSetInsertionPoint(addr_widget, strlen(addr_default)); - XtTranslations xlats = - XtParseTranslationTable("<Key>Return:addr-go()"); + XtTranslations xlats; + xlats = XtParseTranslationTable("<Key>Return:addr-go()"); XtOverrideTranslations(addr_widget, xlats); - XtOverrideTranslations(form_or_vport, XtParseTranslationTable("\ -\"0\":digit(0)\n\ -\"1\":digit(1)\n\ -\"2\":digit(2)\n\ -\"3\":digit(3)\n\ -\"4\":digit(4)\n\ -\"5\":digit(5)\n\ -\"6\":digit(6)\n\ -\"7\":digit(7)\n\ -\"8\":digit(8)\n\ -\"9\":digit(9)\n\ -\"-\":minus()\n\ -<Motion>:motion()\n\ -<BtnUp>:release()")); + xlats = XtParseTranslationTable( + "\"0\":digit(0)\n" + "\"1\":digit(1)\n" + "\"2\":digit(2)\n" + "\"3\":digit(3)\n" + "\"4\":digit(4)\n" + "\"5\":digit(5)\n" + "\"6\":digit(6)\n" + "\"7\":digit(7)\n" + "\"8\":digit(8)\n" + "\"9\":digit(9)\n" + "\"-\":minus()\n" + "<Motion>:motion()\n" + "<BtnUp>:release()"); + XtOverrideTranslations(form_widget, xlats); if (resource.wheel_unit != 0 && resource.wheel_translations != NULL) { - XtAugmentTranslations(form_or_vport, - XtParseTranslationTable("<BtnDown>:wheel-actions()")); + xlats = XtParseTranslationTable("<BtnDown>:wheel-actions()"); + XtAugmentTranslations(form_widget, xlats); - compile_wheel_actions(); + compile_wheel_actions(); } /* set background colors of the drawing and clip widgets */ - { - static Arg back_args = {XtNbackground, (XtArgVal) 0}; + static Arg back_args = {XtNbackground, (XtArgVal) 0}; - back_args.value = back_Pixel; - XtSetValues(draw_widget, &back_args, 1); - XtSetValues(clip_widget, &back_args, 1); - } + back_args.value = back_Pixel; + XtSetValues(draw_widget, &back_args, 1); + XtSetValues(clip_widget, &back_args, 1); /* determine default window size */ #define xtra_wid 0 - { - XtWidgetGeometry constraints; - XtWidgetGeometry reply; - - XtGetValues(top_level, &temp_args3, 1); /* get border width */ - screen_w = WidthOfScreen(SCRN) - 2 * bwidth - xtra_wid; - screen_h = HeightOfScreen(SCRN) - 2 * bwidth; - for (;;) { /* actually, at most two passes */ + XtWidgetGeometry constraints; + XtWidgetGeometry reply; + + XtGetValues(top_level, &temp_args3, 1); /* get border width */ + screen_w = WidthOfScreen(SCRN) - 2 * bwidth - xtra_wid; + screen_h = HeightOfScreen(SCRN) - 2 * bwidth; + + for (;;) { /* actually, at most two passes */ constraints.request_mode = reply.request_mode = 0; constraints.width = page_w; if (page_w > screen_w) { - constraints.request_mode = CWWidth; - constraints.width = screen_w; + constraints.request_mode = CWWidth; + constraints.width = screen_w; } constraints.height = page_h; if (page_h > screen_h) { - constraints.request_mode |= CWHeight; - constraints.height = screen_h; + constraints.request_mode |= CWHeight; + constraints.height = screen_h; } if (constraints.request_mode != 0 - && constraints.request_mode != (CWWidth | CWHeight)) - (void) XtQueryGeometry(vport_widget, &constraints, &reply); + && constraints.request_mode != (CWWidth | CWHeight)) + XtQueryGeometry(vport_widget, &constraints, &reply); if (!(reply.request_mode & CWWidth)) - reply.width = constraints.width; + reply.width = constraints.width; if (reply.width >= screen_w) - reply.width = screen_w; + reply.width = screen_w; if (!(reply.request_mode & CWHeight)) - reply.height = constraints.height; + reply.height = constraints.height; if (reply.height >= screen_h) - reply.height = screen_h; + reply.height = screen_h; /* now reply.{width,height} contain max. usable window size */ if (shrink_factor != 0) - break; + break; shrink_factor = ROUNDUP(unshrunk_page_w, reply.width - 2); i = ROUNDUP(unshrunk_page_h, reply.height - 2); - if (i >= shrink_factor) shrink_factor = i; - if (shrink_factor > 1) bak_shrink = shrink_factor; + if (i >= shrink_factor) + shrink_factor = i; + if (shrink_factor > 1) + bak_shrink = shrink_factor; mane.shrinkfactor = shrink_factor; init_page(); set_wh_args[0].value = (XtArgVal) page_w; set_wh_args[1].value = (XtArgVal) page_h; XtSetValues(draw_widget, set_wh_args, XtNumber(set_wh_args)); - } - set_wh_args[0].value = (XtArgVal) (reply.width + xtra_wid); - set_wh_args[1].value = (XtArgVal) reply.height; - XtSetValues(top_level, set_wh_args, XtNumber(set_wh_args)); } + set_wh_args[0].value = (XtArgVal) (reply.width + xtra_wid); + set_wh_args[1].value = (XtArgVal) reply.height; + XtSetValues(top_level, set_wh_args, XtNumber(set_wh_args)); /* @@ -1311,9 +1298,9 @@ main(int argc, char **argv) XtAddEventHandler(vport_widget, StructureNotifyMask, False, - handle_resize, (XtPointer) NULL); + handle_resize, (XtPointer) NULL); XtAddEventHandler(draw_widget, ExposureMask, False, handle_expose, - (XtPointer) &mane); + (XtPointer) &mane); XtRealizeWidget(top_level); XSetWMProtocols(DISP, XtWindow(top_level), &XA_WM_DELETE_WINDOW, 1); @@ -1321,13 +1308,9 @@ main(int argc, char **argv) currwin.win = mane.win = XtWindow(draw_widget); - { - XWindowAttributes attrs; - - (void) XGetWindowAttributes(DISP, mane.win, &attrs); - backing_store = attrs.backing_store; - } - + XWindowAttributes attrs; + (void) XGetWindowAttributes(DISP, mane.win, &attrs); + backing_store = attrs.backing_store; image = XCreateImage(DISP, visual, 1, XYBitmap, 0, (char *) NULL, 0, 0, BMBITS, 0); @@ -1337,10 +1320,8 @@ main(int argc, char **argv) #else image->bitmap_bit_order = LSBFirst; #endif - { - short endian = MSBFirst << 8 | LSBFirst; - image->byte_order = *((char *) &endian); - } + short endian = MSBFirst << 8 | LSBFirst; + image->byte_order = *((char *) &endian); /* * Step 6: Assign colors and GCs. @@ -1357,23 +1338,11 @@ main(int argc, char **argv) XCreateGC(DISP, XtWindow(top_level), \ GCFunction | GCForeground | GCBackground, &values)) + XGCValues values; - { - XGCValues values; - - /* Not affected by color changes. */ - copyGC = MakeGC(GXcopy, fore_Pixel, back_Pixel); - highGC = MakeGC(GXcopy, hl_Pixel, back_Pixel); - } - - /* - * There's a bug in the Xaw toolkit, in which it uses the - * DefaultGCOfScreen to do vertical scrolling in the Text widget. - * This leads to a BadMatch error if our visual is not the default one. - * The following kludge works around this. - */ - -// DefaultGCOfScreen(SCRN) = copyGC; + /* Not affected by color changes. */ + copyGC = MakeGC(GXcopy, fore_Pixel, back_Pixel); + highGC = MakeGC(GXcopy, hl_Pixel, back_Pixel); ready_cursor = XCreateFontCursor(DISP, XC_cross); redraw_cursor = XCreateFontCursor(DISP, XC_watch);