fixed offsets, updated eprint, cleaned up
[dmenu.git] / dinput.c
index 490380d..15f5e26 100644 (file)
--- a/dinput.c
+++ b/dinput.c
 static void cleanup(void);
 static void drawcursor(void);
 static void drawinput(void);
-static void eprint(const char *errstr, ...);
 static Bool grabkeyboard(void);
 static void kpress(XKeyEvent * e);
 static void run(void);
 static void setup(Bool topbar);
 
 #include "config.h"
+#include "draw.h"
 
 /* variables */
 static char *prompt = NULL;
 static char text[4096];
 static int promptw = 0;
 static int ret = 0;
-static int screen;
-static unsigned int mw, mh;
 static unsigned int cursor = 0;
 static unsigned int numlockmask = 0;
 static Bool running = True;
-static Display *dpy;
-static Window parent, win;
+static Window win;
 
-#include "draw.c"
+Display *dpy;
+DC dc;
+int screen;
+unsigned int mw, mh;
+Window parent;
 
 void
 cleanup(void) {
-       dccleanup();
+       drawcleanup();
        XDestroyWindow(dpy, win);
        XUngrabKeyboard(dpy, CurrentTime);
 }
@@ -86,16 +87,6 @@ drawinput(void)
        XFlush(dpy);
 }
 
-void
-eprint(const char *errstr, ...) {
-       va_list ap;
-
-       va_start(ap, errstr);
-       vfprintf(stderr, errstr, ap);
-       va_end(ap);
-       exit(EXIT_FAILURE);
-}
-
 Bool
 grabkeyboard(void) {
        unsigned int len;
@@ -173,7 +164,7 @@ kpress(XKeyEvent * e) {
                                FILE *fp;
                                char *s;
                                if(!(fp = popen("sselp", "r")))
-                                       eprint("dinput: cannot popen sselp\n");
+                                       eprint("cannot popen sselp\n");
                                s = fgets(buf, sizeof buf, fp);
                                pclose(fp);
                                if(s == NULL)
@@ -278,11 +269,6 @@ setup(Bool topbar) {
                }
        XFreeModifiermap(modmap);
 
-       /* style */
-       dc.norm[ColBG] = getcolor(normbgcolor);
-       dc.norm[ColFG] = getcolor(normfgcolor);
-       dc.sel[ColBG] = getcolor(selbgcolor);
-       dc.sel[ColFG] = getcolor(selfgcolor);
        initfont(font);
 
        /* menu window */
@@ -323,8 +309,7 @@ setup(Bool topbar) {
                        DefaultVisual(dpy, screen),
                        CWOverrideRedirect | CWBackPixmap | CWEventMask, &wa);
 
-       /* pixmap */
-       dcsetup();
+       drawsetup();
        if(prompt)
                promptw = MIN(textw(prompt), mw / 5);
        cursor = strlen(text);
@@ -337,6 +322,7 @@ main(int argc, char *argv[]) {
        Bool topbar = True;
 
        /* command line args */
+       progname = argv[0];
        for(i = 1; i < argc; i++)
                if(!strcmp(argv[i], "-b"))
                        topbar = False;
@@ -371,7 +357,7 @@ main(int argc, char *argv[]) {
        if(!setlocale(LC_CTYPE, "") || !XSupportsLocale())
                fprintf(stderr, "dinput: warning: no locale support\n");
        if(!(dpy = XOpenDisplay(NULL)))
-               eprint("dinput: cannot open display\n");
+               eprint("cannot open display\n");
        screen = DefaultScreen(dpy);
        if(!parent)
                parent = RootWindow(dpy, screen);