Introduction
Introduction Statistics Contact Development Disclaimer Help
Add angry fruit salad support. - sam - An updated version of the sam text edito…
git clone git://vernunftzentrum.de/sam.git
Log
Files
Refs
LICENSE
---
commit 6ab6db97916898603a66936b27b3b701ee90da29
parent ad609ad95a9b0408aa61806d3621601794d8ed6a
Author: Rob King <[email protected]>
Date: Mon, 15 Aug 2016 00:18:53 -0500
Add angry fruit salad support.
Diffstat:
include/libg.h | 1 +
libXg/xtbinit.c | 89 +++++++++++++++++++++++--------
samterm/main.c | 5 +++--
samterm/menu.c | 2 +-
4 files changed, 71 insertions(+), 26 deletions(-)
---
diff --git a/include/libg.h b/include/libg.h
@@ -187,6 +187,7 @@ extern void bflush(void);
extern int clipline(Rectangle, Point*, Point*);
extern int clipr(Bitmap*, Rectangle);
extern int scrpix(int*,int*);
+extern unsigned long getbg(void);
extern void einit(unsigned long);
extern unsigned long estart(unsigned long, int, int);
diff --git a/libXg/xtbinit.c b/libXg/xtbinit.c
@@ -3,7 +3,9 @@
#include <libc.h>
#include <libg.h>
#include <stdio.h>
+#include <string.h>
#include "libgint.h"
+#include "../config.h"
#define COMPRESSMOUSE
@@ -31,18 +33,50 @@
#undef Font
#undef Event
+/* default colors */
+#ifndef MAX_BACKGROUNDS
+ #define MAX_BACKGROUNDS 11
+#endif
+
+#ifndef DEFAULT_FOREGROUND
+ #define DEFAULT_FOREGROUND "#000000"
+#endif
+
+#ifndef DEFAULT_BACKGROUND
+ #define DEFAULT_BACKGROUND "#ffffff"
+#endif
+
+#ifndef DEFAULT_BORDER
+ #define DEFAULT_BORDER "#000000"
+#endif
+
+#ifndef ANGRY_FRUIT_SALAD
+ #ifndef DEFAULT_BACKGROUND
+ #define DEFAULT_BACKGROUND "#ffffff"
+ #endif
+#else
+ #undef DEFAULT_FOREGROUND
+ #undef DEFAULT_BACKGROUND
+ #undef DEFAULT_BORDER
+
+ #define DEFAULT_FOREGROUND "#000000"
+ #define DEFAULT_BACKGROUND "white:powderblue:oldlace:lightcyan:gainsboro:l…
+ #define DEFAULT_BORDER "#000000"
+#endif
+
/* libg globals */
Bitmap screen;
XftFont *font;
XftColor fontcolor;
-XftColor bgcolor;
/* implementation globals */
extern char *machine;
Display *_dpy;
Widget _toplevel;
-unsigned long _fgpixel, _bgpixel, _cmdbgpixel, _borderpixel;
-XColor _fgcolor, _bgcolor, _cmdbgcolor, _bordercolor;
+unsigned long _bgpixels[MAX_BACKGROUNDS];
+int _nbgs;
+unsigned long _fgpixel, _bgpixel, _borderpixel;
+XColor _fgcolor, _bgcolor, _bordercolor;
int _ld2d[6] = { 1, 2, 4, 8, 16, 24 };
unsigned long _ld2dmask[6] = { 0x1, 0x3, 0xF, 0xFF, 0xFFFF, 0x00FFFFFF …
Colormap _libg_cmap;
@@ -117,8 +151,6 @@ static XrmOptionDescRec optable[] = {
};
-
-
void
xtbinit(Errfunc f, char *class, int *pargc, char **argv, char **fallbacks)
{
@@ -162,18 +194,24 @@ xtbinit(Errfunc f, char *class, int *pargc, char **argv, …
XtSetArg(args[n], XtNgotmouse, gotmouse); n++;
widg = XtCreateManagedWidget("gwin", gwinWidgetClass, _toplevel, args, n);
- char bgspec[512] = {0};
- strncpy(bgspec, getenv("BACKGROUND") ? getenv("BACKGROUND") : "#ffffff", s…
-
- char tbg[512], cbg[512];
- if (sscanf(bgspec, "%511[^:]:%s", &tbg, &cbg) == 1)
- strncpy(cbg, tbg, sizeof(cbg) - 1);
-
_dpy = XtDisplay(widg);
- XAllocNamedColor(_dpy, DefaultColormap(_dpy, DefaultScreen(_dpy)), getenv(…
- XAllocNamedColor(_dpy, DefaultColormap(_dpy, DefaultScreen(_dpy)), tbg, &_…
- XAllocNamedColor(_dpy, DefaultColormap(_dpy, DefaultScreen(_dpy)), cbg, &_…
- XAllocNamedColor(_dpy, DefaultColormap(_dpy, DefaultScreen(_dpy)), getenv(…
+ XAllocNamedColor(_dpy, DefaultColormap(_dpy, DefaultScreen(_dpy)), getenv(…
+ XAllocNamedColor(_dpy, DefaultColormap(_dpy, DefaultScreen(_dpy)), getenv(…
+
+ char bgspec[1024] = {0};
+ strncpy(bgspec, getenv("BACKGROUND") ? getenv("BACKGROUND") : DEFAULT_BACK…
+
+ char *bgc = NULL;
+ for (bgc = strtok(bgspec, ":"); bgc != NULL && _nbgs < MAX_BACKGROUNDS; bg…
+ XColor xc = {0};
+ if (XAllocNamedColor(_dpy, DefaultColormap(_dpy, DefaultScreen(_dpy)),…
+ _bgpixels[_nbgs++] = xc.pixel;
+ }
+
+ if (_nbgs == 0)
+ _bgpixels[_nbgs++] = ~_fgcolor.pixel;
+
+ _bgpixel = _bgpixels[0];
n = 0;
XtSetArg(args[n], XtNdepth, &depth); n++;
@@ -194,8 +232,6 @@ xtbinit(Errfunc f, char *class, int *pargc, char **argv, ch…
XChangeProperty(_dpy, XtWindow(_toplevel), XInternAtom(_dpy, "_NET_WM_PID"…
_fgpixel = _fgcolor.pixel;
- _bgpixel = _bgcolor.pixel;
- _cmdbgpixel = _cmdbgcolor.pixel;
_borderpixel = _bordercolor.pixel;
XRenderColor xrcolor = {0};
@@ -205,11 +241,6 @@ xtbinit(Errfunc f, char *class, int *pargc, char **argv, c…
xrcolor.alpha = 65535;
XftColorAllocValue(_dpy, DefaultVisual(_dpy, DefaultScreen(_dpy)), Default…
- xrcolor.red = _bgcolor.red;
- xrcolor.green = _bgcolor.green;
- xrcolor.blue = _bgcolor.blue;
- XftColorAllocValue(_dpy, DefaultVisual(_dpy, DefaultScreen(_dpy)), Default…
-
screen.id = (int) XtWindow(widg);
screen.ldepth = ilog2(depth);
screen.flag = SCR;
@@ -897,3 +928,15 @@ raisewindow(void)
XFlush(_dpy);
}
+
+unsigned long
+getbg(void)
+{
+ static int i = 0;
+
+ if (i >= _nbgs)
+ i = 0;
+
+ return _bgpixels[i++];
+}
+
diff --git a/samterm/main.c b/samterm/main.c
@@ -8,7 +8,8 @@
#include "samterm.h"
#include <commands.h>
-extern unsigned long _bgpixel, _cmdbgpixel;
+extern unsigned long _bgpixel;
+
Text cmd;
Rune *scratch;
long nscralloc;
@@ -66,7 +67,7 @@ main(int argc, char *argv[])
flstart(screen.clipr);
rinit(&cmd.rasp);
flnew(&cmd.l[0], stgettext, 1, &cmd);
- cmd.l[0].bg = _cmdbgpixel;
+ cmd.l[0].bg = getbg();
flinit(&cmd.l[0], r, font, cmd.l[0].bg);
cmd.nwin = 1;
which = &cmd.l[0];
diff --git a/samterm/menu.c b/samterm/menu.c
@@ -198,7 +198,7 @@ sweeptext(int new, int tag)
memset((void*)t, 0, sizeof(Text));
current((Flayer *)0);
flnew(&t->l[0], stgettext, 0, (char *)t);
- flinit(&t->l[0], r, font, _bgpixel); /*bnl*/
+ flinit(&t->l[0], r, font, getbg()); /*bnl*/
t->nwin = 1;
rinit(&t->rasp);
if(new)
You are viewing proxied material from vernunftzentrum.de. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.