Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
View | Details | Raw Unified | Return to bug 284350 | Differences between
and this patch

Collapse All | Expand All

(-)scrotwm-orig-debian/scrotwm.c (-26 / +35 lines)
Lines 82-87 Link Here
82
#include <X11/Xproto.h>
82
#include <X11/Xproto.h>
83
#include <X11/Xutil.h>
83
#include <X11/Xutil.h>
84
#include <X11/extensions/Xrandr.h>
84
#include <X11/extensions/Xrandr.h>
85
#include <X11/Xft/Xft.h>
85
86
86
#if RANDR_MAJOR < 1
87
#if RANDR_MAJOR < 1
87
#  error XRandR versions less than 1.0 are not supported
88
#  error XRandR versions less than 1.0 are not supported
Lines 186-198 Link Here
186
GC			bar_gc;
187
GC			bar_gc;
187
XGCValues		bar_gcv;
188
XGCValues		bar_gcv;
188
int			bar_fidx = 0;
189
int			bar_fidx = 0;
189
XFontStruct		*bar_fs;
190
/* Things for XFT */
190
char			*bar_fonts[] = {
191
XftFont			*bar_fs;
191
			    "-*-terminus-medium-*-*-*-*-*-*-*-*-*-*-*",
192
XftDraw			*xftdraw;
192
			    "-*-times-medium-r-*-*-*-*-*-*-*-*-*-*",
193
char			*default_font="terminus-10";
193
			    NULL
194
char			*bar_font_color="#cccccc";
194
};
195
196
/* terminal + args */
195
/* terminal + args */
197
char			*spawn_term[] = { "xterm", NULL };
196
char			*spawn_term[] = { "xterm", NULL };
198
char			*spawn_screenshot[] = { "screenshot.sh", NULL, NULL };
197
char			*spawn_screenshot[] = { "screenshot.sh", NULL, NULL };
Lines 607-615 Link Here
607
			else if (!varmatch(var, "bar_color", &i))
606
			else if (!varmatch(var, "bar_color", &i))
608
				setscreencolor(val, i, SWM_S_COLOR_BAR);
607
				setscreencolor(val, i, SWM_S_COLOR_BAR);
609
			else if (!varmatch(var, "bar_font_color", &i))
608
			else if (!varmatch(var, "bar_font_color", &i))
610
				setscreencolor(val, i, SWM_S_COLOR_BAR_FONT);
609
				//setscreencolor(val, i, SWM_S_COLOR_BAR_FONT);
610
				asprintf(&bar_font_color, "#%s", val);
611
			else if (!strncmp(var, "bar_font", strlen("bar_font")))
611
			else if (!strncmp(var, "bar_font", strlen("bar_font")))
612
				asprintf(&bar_fonts[0], "%s", val);
612
				asprintf(&default_font, "%s", val);
613
			else if (!strncmp(var, "bar_action", strlen("bar_action")))
613
			else if (!strncmp(var, "bar_action", strlen("bar_action")))
614
				asprintf(&bar_argv[0], "%s", val);
614
				asprintf(&bar_argv[0], "%s", val);
615
			else if (!strncmp(var, "bar_delay", strlen("bar_delay")))
615
			else if (!strncmp(var, "bar_delay", strlen("bar_delay")))
Lines 724-733 Link Here
724
void
724
void
725
bar_print(struct swm_region *r, char *s)
725
bar_print(struct swm_region *r, char *s)
726
{
726
{
727
	int 		scr, len;
728
	XGlyphInfo 	ext;
729
	XftColor 	col;
730
	XftDraw		*xftdraw;
731
	/* how many chars in it? */
732
	scr = DefaultScreen(display);
733
	len = strlen(s);
734
	/* TODO: here we should check if the whole text 
735
	 * fits inside the bar */
736
	XftColorAllocName(display, DefaultVisual(display, scr),
737
				DefaultColormap(display, scr),
738
				bar_font_color,
739
				&col);
740
	/* now draw text */
727
	XClearWindow(display, r->bar_window);
741
	XClearWindow(display, r->bar_window);
728
	XSetForeground(display, bar_gc, r->s->c[SWM_S_COLOR_BAR_FONT].color);
742
	xftdraw = XftDrawCreate(display, r->bar_window,
729
	XDrawString(display, r->bar_window, bar_gc, 4, bar_fs->ascent, s,
743
		DefaultVisual(display, scr),
730
	    strlen(s));
744
		DefaultColormap(display, scr));
745
	XftTextExtents8 (display, bar_fs, s, strlen(s), &ext);
746
	XftDrawString8 (xftdraw, &col, bar_fs, 4, bar_fs->ascent, s, strlen(s));
731
}
747
}
732
748
733
void
749
void
Lines 878-902 Link Here
878
void
894
void
879
bar_setup(struct swm_region *r)
895
bar_setup(struct swm_region *r)
880
{
896
{
881
	int			i;
897
	int scr = DefaultScreen (display);
882
898
	bar_fs = XftFontOpenName(display, 0, default_font);
883
	for (i = 0; bar_fonts[i] != NULL; i++) {
884
		bar_fs = XLoadQueryFont(display, bar_fonts[i]);
885
		if (bar_fs) {
886
			bar_fidx = i;
887
			break;
888
		}
889
	}
890
	if (bar_fonts[i] == NULL)
891
			errx(1, "couldn't load font");
892
	bar_height = bar_fs->ascent + bar_fs->descent + 3;
899
	bar_height = bar_fs->ascent + bar_fs->descent + 3;
893
900
894
	r->bar_window = XCreateSimpleWindow(display, 
901
	r->bar_window = XCreateSimpleWindow(display, 
895
	    r->s->root, X(r), Y(r), WIDTH(r) - 2, bar_height - 2,
902
	    r->s->root, X(r), Y(r), WIDTH(r) - 2, bar_height - 2,
896
	    1, r->s->c[SWM_S_COLOR_BAR_BORDER].color,
903
	    1, r->s->c[SWM_S_COLOR_BAR_BORDER].color,
897
	    r->s->c[SWM_S_COLOR_BAR].color);
904
	    r->s->c[SWM_S_COLOR_BAR].color);
898
	bar_gc = XCreateGC(display, r->bar_window, 0, &bar_gcv);
905
	bar_gc = XCreateGC(display, r->bar_window, GCGraphicsExposures, &bar_gcv);
899
	XSetFont(display, bar_gc, bar_fs->fid);
900
	XSelectInput(display, r->bar_window, VisibilityChangeMask);
906
	XSelectInput(display, r->bar_window, VisibilityChangeMask);
901
	if (bar_enabled)
907
	if (bar_enabled)
902
		XMapRaised(display, r->bar_window);
908
		XMapRaised(display, r->bar_window);
Lines 904-909 Link Here
904
910
905
	if (signal(SIGALRM, bar_signal) == SIG_ERR)
911
	if (signal(SIGALRM, bar_signal) == SIG_ERR)
906
		err(1, "could not install bar_signal");
912
		err(1, "could not install bar_signal");
913
	xftdraw = XftDrawCreate (display,
914
		r->bar_window, DefaultVisual(display, scr),
915
		DefaultColormap(display, scr));
907
	bar_refresh();
916
	bar_refresh();
908
}
917
}
909
918
Lines 1140-1146 Link Here
1140
{
1149
{
1141
	DNPRINTF(SWM_D_MISC, "spawnmenu\n");
1150
	DNPRINTF(SWM_D_MISC, "spawnmenu\n");
1142
1151
1143
	spawn_menu[SWM_MENU_FN] = bar_fonts[bar_fidx];
1144
	spawn_menu[SWM_MENU_NB] = r->s->c[SWM_S_COLOR_BAR].name;
1152
	spawn_menu[SWM_MENU_NB] = r->s->c[SWM_S_COLOR_BAR].name;
1145
	spawn_menu[SWM_MENU_NF] = r->s->c[SWM_S_COLOR_BAR_FONT].name;
1153
	spawn_menu[SWM_MENU_NF] = r->s->c[SWM_S_COLOR_BAR_FONT].name;
1146
	spawn_menu[SWM_MENU_SB] = r->s->c[SWM_S_COLOR_BAR_BORDER].name;
1154
	spawn_menu[SWM_MENU_SB] = r->s->c[SWM_S_COLOR_BAR_BORDER].name;
Lines 3511-3516 Link Here
3511
	if (cfile)
3519
	if (cfile)
3512
		conf_load(cfile);
3520
		conf_load(cfile);
3513
3521
3522
	printf("Loaded conf file: %s\n", cfile);
3514
	/* setup all bars */
3523
	/* setup all bars */
3515
	for (i = 0; i < ScreenCount(display); i++)
3524
	for (i = 0; i < ScreenCount(display); i++)
3516
		TAILQ_FOREACH(r, &screens[i].rl, entry)
3525
		TAILQ_FOREACH(r, &screens[i].rl, entry)

Return to bug 284350