diff options
| author | auric <104602845+ihateamongus@users.noreply.github.com> | 2025-09-08 23:22:30 -0500 |
|---|---|---|
| committer | auric <104602845+ihateamongus@users.noreply.github.com> | 2025-09-08 23:22:30 -0500 |
| commit | 1488b0cc488b919aa7e8f99c0ca1d49a40c8f15c (patch) | |
| tree | 13ce27df23dd1b3d2bc6ba70b1b91de75df44d70 /slogin/slogin.c | |
| parent | 98dc628eee06c8929e596eb3d4c60528b5ab6b3f (diff) | |
slogin: use accent system
Diffstat (limited to 'slogin/slogin.c')
| -rw-r--r-- | slogin/slogin.c | 59 |
1 files changed, 31 insertions, 28 deletions
diff --git a/slogin/slogin.c b/slogin/slogin.c index 856585b..205fd32 100644 --- a/slogin/slogin.c +++ b/slogin/slogin.c @@ -12,11 +12,14 @@ #include <string.h> #include <unistd.h> #include <crypt.h> -#include "../accent.h" +#include "../core/accent.h" #define WIDTH 400 #define HEIGHT 100 +static ColorShm *accentshm; +static char accentcol[8] = "#005577"; + static int auth(const char *user, const char *pass) { @@ -57,6 +60,17 @@ draw(Display *dpy, Window win, GC gc, const char *prompt, XFlush(dpy); } +static void +updateaccent(Display *dpy, Colormap cmap, GC gc, Window win) +{ + XColor col; + readaccent(&accentshm, accentcol); + XParseColor(dpy, cmap, accentcol, &col); + XAllocColor(dpy, cmap, &col); + XSetForeground(dpy, gc, col.pixel); + XSetWindowBorder(dpy, win, col.pixel); +} + int main(void) { @@ -66,30 +80,24 @@ main(void) GC gc; XFontStruct *font; int screen; - Colormap cmap; - XColor xcol; - ColorShm *blk = NULL; - char accent[8] = "#005577"; + Colormap cmap; if (!(dpy = XOpenDisplay(NULL))) { fprintf(stderr, "slogin: cannot open display\n"); return 1; } - readaccent(&blk, accent); - screen = DefaultScreen(dpy); - cmap = DefaultColormap(dpy, screen); - XParseColor(dpy, cmap, accent, &xcol); - XAllocColor(dpy, cmap, &xcol); - win = XCreateSimpleWindow(dpy, RootWindow(dpy, screen), - DisplayWidth(dpy, screen)/2 - WIDTH/2, - DisplayHeight(dpy, screen)/2 - HEIGHT/2, - WIDTH, HEIGHT, 2, xcol.pixel, BlackPixel(dpy, screen)); - XStoreName(dpy, win, "slogin"); - XSelectInput(dpy, win, ExposureMask | KeyPressMask); - XMapRaised(dpy, win); - gc = XCreateGC(dpy, win, 0, NULL); - XSetForeground(dpy, gc, xcol.pixel); - font = XLoadQueryFont(dpy, "fixed"); + screen = DefaultScreen(dpy); + cmap = DefaultColormap(dpy, screen); + win = XCreateSimpleWindow(dpy, RootWindow(dpy, screen), + DisplayWidth(dpy, screen)/2 - WIDTH/2, + DisplayHeight(dpy, screen)/2 - HEIGHT/2, + WIDTH, HEIGHT, 2, BlackPixel(dpy, screen), BlackPixel(dpy, screen)); + XStoreName(dpy, win, "slogin"); + XSelectInput(dpy, win, ExposureMask | KeyPressMask); + gc = XCreateGC(dpy, win, 0, NULL); + updateaccent(dpy, cmap, gc, win); + XMapRaised(dpy, win); + font = XLoadQueryFont(dpy, "fixed"); if (font) XSetFont(dpy, gc, font->fid); @@ -155,12 +163,7 @@ main(void) } } } - if (readaccent(&blk, accent)) { - XParseColor(dpy, cmap, accent, &xcol); - XAllocColor(dpy, cmap, &xcol); - XSetForeground(dpy, gc, xcol.pixel); - XSetWindowBorder(dpy, win, xcol.pixel); - } - usleep(20000); - } + updateaccent(dpy, cmap, gc, win); + usleep(20000); + } } |
