diff options
-rw-r--r-- | XLogo.ad | 6 | ||||
-rw-r--r-- | xlogo.c | 128 |
2 files changed, 43 insertions, 91 deletions
@@ -1,5 +1 @@ -XLogo*iconPixmap: xlogo32 -XLogo*iconMask: xlogo32 -XLogo*baseTranslations: #override \ -<Key>q,<Key>Escape: quit()\n\ -<Key>p: print() +XLogo.input: false @@ -1,5 +1,5 @@ /* - * $Xorg: xlogo.c,v 1.5 2004/05/09 02:05:54 gisburn Exp $ + * $Xorg: xlogo.c,v 1.4 2001/02/09 02:05:54 xorgcvs Exp $ * Copyright 1989, 1998 The Open Group @@ -27,22 +27,18 @@ in this Software without prior written authorization from The Open Group. /* $XFree86: xc/programs/xlogo/xlogo.c,v 3.7 2001/07/25 15:05:26 dawes Exp $ */ +#include <stdio.h> #include <X11/Intrinsic.h> #include <X11/Shell.h> -#include "xlogo.h" #include "Logo.h" -#include "print.h" +#include <X11/Xaw/Cardinals.h> #ifdef XKB #include <X11/extensions/XKBbells.h> #endif -#include <stdio.h> #include <stdlib.h> -/* Global vars*/ -const char *ProgramName; /* program name (from argv[0]) */ - -static void quit(Widget w, XEvent *event, String *params, Cardinal *num_params); -static void print(Widget w, XEvent *event, String *params, Cardinal *num_params); +static void quit(Widget w, XEvent *event, String *params, + Cardinal *num_params); static XrmOptionDescRec options[] = { { "-shape", "*shapeWindow", XrmoptionNoArg, (XPointer) "on" }, @@ -50,45 +46,25 @@ static XrmOptionDescRec options[] = { {"-render", "*render",XrmoptionNoArg, "TRUE"}, {"-sharp", "*sharp", XrmoptionNoArg, "TRUE"}, #endif -{"-v", "Verbose", XrmoptionNoArg, "TRUE"}, -{"-print", "Print", XrmoptionNoArg, "TRUE"}, -{"-printer", "printer", XrmoptionSepArg, NULL}, -{"-printfile", "printFile", XrmoptionSepArg, NULL}, }; static XtActionsRec actions[] = { - {"quit", quit }, - {"print", print} + {"quit", quit} }; static Atom wm_delete_window; -/* See xlogo.h */ -XLogoResourceData userOptions; - -#define Offset(field) XtOffsetOf(XLogoResourceData, field) - -XtResource resources[] = { - {"verbose", "Verbose", XtRBoolean, sizeof(Boolean), Offset(verbose), XtRImmediate, (XtPointer)False}, - {"print", "Print", XtRBoolean, sizeof(Boolean), Offset(printAndExit), XtRImmediate, (XtPointer)False}, - {"printer", "Printer", XtRString, sizeof(String), Offset(printername), XtRImmediate, (XtPointer)NULL}, - {"printFile", "PrintFile", XtRString, sizeof(String), Offset(printfile), XtRImmediate, (XtPointer)NULL} -}; - - String fallback_resources[] = { "*iconPixmap: xlogo32", "*iconMask: xlogo32", - "*baseTranslations: #override \\" - "\t<Key>q: quit()\\n\\" - "\t<Key>p: print()", NULL, }; static void die(Widget w, XtPointer client_data, XtPointer call_data) { - XtAppSetExitFlag(XtWidgetToApplicationContext(w)); + XCloseDisplay(XtDisplay(w)); + exit(0); } static void @@ -102,33 +78,34 @@ save(Widget w, XtPointer client_data, XtPointer call_data) */ static void -Syntax(Widget toplevel) +Syntax(Widget toplevel, char *call) { Arg arg; SmcConn connection; - String reasons[10]; - int i, n = 0; - - reasons[n++] = "Usage: "; - reasons[n++] = (String)ProgramName; - reasons[n++] = " [-fg <color>] [-bg <color>] [-rv] [-bw <pixels>] [-bd <color>]\n"; - reasons[n++] = " [-d [<host>]:[<vs>]]\n"; - reasons[n++] = " [-g [<width>][x<height>][<+-><xoff>[<+-><yoff>]]]\n"; - reasons[n++] = " [-print] [-printname <name>] [-printfile <file>]\n"; + String reasons[7]; + int i, num_reasons = 7; + + reasons[0] = "Usage: "; + reasons[1] = call; + reasons[2] = " [-fg <color>] [-bg <color>] [-rv] [-bw <pixels>] [-bd <color>]\n"; + reasons[3] = " [-d [<host>]:[<vs>]]\n"; + reasons[4] = " [-g [<width>][x<height>][<+-><xoff>[<+-><yoff>]]]\n"; #ifdef XRENDER - reasons[n++] = " [-render] [-sharp]\n"; -#endif /* XRENDER */ - reasons[n++] = " [-shape]\n\n"; + reasons[5] = " [-render] [-sharp]\n"; +#else + reasons[5] = ""; +#endif + reasons[6] = " [-shape]\n\n"; XtSetArg(arg, XtNconnection, &connection); XtGetValues(toplevel, &arg, (Cardinal)1); if (connection) - SmcCloseConnection(connection, n, reasons); + SmcCloseConnection(connection, num_reasons, reasons); else { - for (i=0; i < n; i++) + for (i=0; i < num_reasons; i++) printf(reasons[i]); } - exit(EXIT_FAILURE); + exit(1); } int @@ -137,40 +114,27 @@ main(int argc, char *argv[]) Widget toplevel; XtAppContext app_con; - ProgramName = argv[0]; - toplevel = XtOpenApplication(&app_con, "XLogo", options, XtNumber(options), &argc, argv, fallback_resources, sessionShellWidgetClass, NULL, ZERO); if (argc != 1) - Syntax(toplevel); - - XtGetApplicationResources(toplevel, (XtPointer)&userOptions, resources, - XtNumber(resources), NULL, 0); - - XtAppAddActions(app_con, actions, XtNumber(actions)); - - if (userOptions.printAndExit) { - XtCallActionProc(toplevel, "print", NULL, NULL, 0); - } - else - { - XtAddCallback(toplevel, XtNsaveCallback, save, NULL); - XtAddCallback(toplevel, XtNdieCallback, die, NULL); - XtOverrideTranslations - (toplevel, XtParseTranslationTable ("<Message>WM_PROTOCOLS: quit()")); - XtCreateManagedWidget("xlogo", logoWidgetClass, toplevel, NULL, ZERO); - XtRealizeWidget(toplevel); - wm_delete_window = XInternAtom(XtDisplay(toplevel), "WM_DELETE_WINDOW", - False); - (void) XSetWMProtocols (XtDisplay(toplevel), XtWindow(toplevel), - &wm_delete_window, 1); - } - + Syntax(toplevel, argv[0]); + + XtAddCallback(toplevel, XtNsaveCallback, save, NULL); + XtAddCallback(toplevel, XtNdieCallback, die, NULL); + XtAppAddActions + (XtWidgetToApplicationContext(toplevel), actions, XtNumber(actions)); + XtOverrideTranslations + (toplevel, XtParseTranslationTable ("<Message>WM_PROTOCOLS: quit()")); + XtCreateManagedWidget("xlogo", logoWidgetClass, toplevel, NULL, ZERO); + XtRealizeWidget(toplevel); + wm_delete_window = XInternAtom(XtDisplay(toplevel), "WM_DELETE_WINDOW", + False); + (void) XSetWMProtocols (XtDisplay(toplevel), XtWindow(toplevel), + &wm_delete_window, 1); XtAppMainLoop(app_con); - - return EXIT_SUCCESS; + exit(0); } /*ARGSUSED*/ @@ -178,9 +142,9 @@ static void quit(Widget w, XEvent *event, String *params, Cardinal *num_params) { Arg arg; - + if (event->type == ClientMessage && - (Atom)event->xclient.data.l[0] != wm_delete_window) { + event->xclient.data.l[0] != wm_delete_window) { #ifdef XKB XkbStdBell(XtDisplay(w), XtWindow(w), 0, XkbBI_BadValue); #else @@ -194,11 +158,3 @@ quit(Widget w, XEvent *event, String *params, Cardinal *num_params) } } -/*ARGSUSED*/ -static void -print(Widget w, XEvent *event, String *params, Cardinal *num_params) -{ - DoPrint(w, userOptions.printername, userOptions.printfile); -} - - |