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-0.9.10/scrotwm.c (-7 / +57 lines)
Lines 83-88 static const char *cvstag = "$scrotwm: s Link Here
83
#include <X11/Xproto.h>
83
#include <X11/Xproto.h>
84
#include <X11/Xutil.h>
84
#include <X11/Xutil.h>
85
#include <X11/extensions/Xrandr.h>
85
#include <X11/extensions/Xrandr.h>
86
#include <X11/Xft/Xft.h>
86
87
87
#if RANDR_MAJOR < 1
88
#if RANDR_MAJOR < 1
88
#  error XRandR versions less than 1.0 are not supported
89
#  error XRandR versions less than 1.0 are not supported
Lines 200-205 XGCValues bar_gcv; Link Here
200
int			bar_fidx = 0;
201
int			bar_fidx = 0;
201
XFontStruct		*bar_fs;
202
XFontStruct		*bar_fs;
202
char			*bar_fonts[] = { NULL, NULL, NULL, NULL };/* XXX Make fully dynamic */
203
char			*bar_fonts[] = { NULL, NULL, NULL, NULL };/* XXX Make fully dynamic */
204
XftDraw		*xft_draw;
205
XftFont		*bar_xft_fs;
206
XftColor	xft_color;
207
int			xft_loaded = 0;
203
char			*spawn_term[] = { NULL, NULL };		/* XXX Make fully dynamic */
208
char			*spawn_term[] = { NULL, NULL };		/* XXX Make fully dynamic */
204
209
205
#define SWM_MENU_FN	(2)
210
#define SWM_MENU_FN	(2)
Lines 703-710 bar_print(struct swm_region *r, char *s) Link Here
703
{
708
{
704
	XClearWindow(display, r->bar_window);
709
	XClearWindow(display, r->bar_window);
705
	XSetForeground(display, bar_gc, r->s->c[SWM_S_COLOR_BAR_FONT].color);
710
	XSetForeground(display, bar_gc, r->s->c[SWM_S_COLOR_BAR_FONT].color);
706
	XDrawString(display, r->bar_window, bar_gc, 4, bar_fs->ascent, s,
711
	if (xft_loaded) {
707
	    strlen(s));
712
		xft_draw = XftDrawCreate(display,
713
			r->bar_window,
714
			DefaultVisual(display, DefaultScreen(display)),
715
			DefaultColormap(display, DefaultScreen(display)));
716
		XftDrawString8(xft_draw, &xft_color, bar_xft_fs, 4,
717
			bar_xft_fs->ascent, s, strlen(s));
718
	}
719
	else 
720
		XDrawString(display, r->bar_window, bar_gc, 4, bar_fs->ascent, s,
721
		    strlen(s));
708
}
722
}
709
723
710
void
724
void
Lines 889-916 bar_refresh(void) Link Here
889
	bar_update();
903
	bar_update();
890
}
904
}
891
905
906
int
907
is_xft(char *font, char *xft_result)
908
{
909
	int i, j;
910
911
	if (font == NULL)
912
		return (0);
913
914
	if (strncmp("xft:", font, 4) == 0)
915
		for (i = 0, j = 4; font[j] != '\0'; i++, j++)
916
			xft_result[i] = font[j];
917
	else
918
		return (0);
919
	
920
	return (1);
921
}
922
892
void
923
void
893
bar_setup(struct swm_region *r)
924
bar_setup(struct swm_region *r)
894
{
925
{
895
	int			i;
926
	int			i;
927
	char		xftfont[64];
896
928
897
	for (i = 0; bar_fonts[i] != NULL; i++) {
929
	for (i = 0; bar_fonts[i] != NULL; i++) {
898
		bar_fs = XLoadQueryFont(display, bar_fonts[i]);
930
		if (is_xft(bar_fonts[i], xftfont)) {
899
		if (bar_fs) {
931
			bar_xft_fs = XftFontOpenName(display,
932
				DefaultScreen(display), xftfont);
933
			XftColorAllocName(display,
934
				DefaultVisual(display, DefaultScreen(display)),
935
				DefaultColormap(display, DefaultScreen(display)),
936
				r->s->c[SWM_S_COLOR_BAR_FONT].name,
937
				&xft_color);
938
			xft_loaded = 1;
939
		}
940
		else {
941
			bar_fs = XLoadQueryFont(display, bar_fonts[i]);
942
			xft_loaded = 0;
943
		}
944
945
		if (bar_fs || bar_xft_fs) {
900
			bar_fidx = i;
946
			bar_fidx = i;
901
			break;
947
			break;
902
		}
948
		}
903
	}
949
	}
904
	if (bar_fonts[i] == NULL)
950
	if (bar_fonts[i] == NULL)
905
			errx(1, "couldn't load font");
951
			errx(1, "couldn't load font");
906
	bar_height = bar_fs->ascent + bar_fs->descent + 3;
952
	if (!xft_loaded) 
907
953
		bar_height = bar_fs->ascent + bar_fs->descent + 3;
954
	else
955
		bar_height = bar_xft_fs->ascent + bar_xft_fs->descent + 3;
956
		
908
	r->bar_window = XCreateSimpleWindow(display,
957
	r->bar_window = XCreateSimpleWindow(display,
909
	    r->s->root, X(r), Y(r), WIDTH(r) - 2, bar_height - 2,
958
	    r->s->root, X(r), Y(r), WIDTH(r) - 2, bar_height - 2,
910
	    1, r->s->c[SWM_S_COLOR_BAR_BORDER].color,
959
	    1, r->s->c[SWM_S_COLOR_BAR_BORDER].color,
911
	    r->s->c[SWM_S_COLOR_BAR].color);
960
	    r->s->c[SWM_S_COLOR_BAR].color);
912
	bar_gc = XCreateGC(display, r->bar_window, 0, &bar_gcv);
961
	bar_gc = XCreateGC(display, r->bar_window, 0, &bar_gcv);
913
	XSetFont(display, bar_gc, bar_fs->fid);
962
	if (!xft_loaded)
963
		XSetFont(display, bar_gc, bar_fs->fid);
914
	XSelectInput(display, r->bar_window, VisibilityChangeMask);
964
	XSelectInput(display, r->bar_window, VisibilityChangeMask);
915
	if (bar_enabled)
965
	if (bar_enabled)
916
		XMapRaised(display, r->bar_window);
966
		XMapRaised(display, r->bar_window);
(-)scrotwm-0.9.10/linux/Makefile (-2 / +2 lines)
Lines 1-8 Link Here
1
# $scrotwm: Makefile,v 1.3 2009/09/17 02:22:52 marco Exp $ 
1
# $scrotwm: Makefile,v 1.3 2009/09/17 02:22:52 marco Exp $ 
2
2
3
CFLAGS+= -Wall -ggdb -D_GNU_SOURCE -I.
3
CFLAGS+= -Wall -ggdb -D_GNU_SOURCE -I. -I/usr/include/freetype2
4
CFLAGS+= -DSWM_LIB=\"$(LIBDIR)/libswmhack.so.$(LVERS)\"
4
CFLAGS+= -DSWM_LIB=\"$(LIBDIR)/libswmhack.so.$(LVERS)\"
5
LDADD+= -lX11 -lXrandr
5
LDADD+= -lX11 -lXrandr -lXft
6
6
7
PREFIX?= /usr/local
7
PREFIX?= /usr/local
8
BINDIR?= $(PREFIX)/bin
8
BINDIR?= $(PREFIX)/bin
(-)scrotwm-0.9.10/scrotwm.1 (-1 / +1 lines)
Lines 95-101 Color of the status bar window in screen Link Here
95
Color of the font in status bar in screen
95
Color of the font in status bar in screen
96
.Ar x .
96
.Ar x .
97
.It Cm bar_font
97
.It Cm bar_font
98
Status bar font.
98
Status bar font. You can use an Xft font by prepending xft: to the font name (e.g. xft:terminus-9), otherwise will be used an X Core Font.
99
.It Cm bar_action
99
.It Cm bar_action
100
External script that populates additional information in the status bar,
100
External script that populates additional information in the status bar,
101
such as battery life.
101
such as battery life.

Return to bug 284350