fixed issue and test svn
git-svn-id: http://tint2.googlecode.com/svn/trunk@14 121b4492-b84c-0410-8b4c-0d4edfb3f3cc
This commit is contained in:
parent
420dd5d1e2
commit
c9dc168587
13 changed files with 130 additions and 136 deletions
10
AUTHORS
10
AUTHORS
|
@ -4,6 +4,10 @@ Developed by:
|
|||
|
||||
|
||||
Contributors:
|
||||
Daniel Moerner <dmoerner@gmail.com>, man page
|
||||
|
||||
|
||||
Daniel Moerner <dmoerner@gmail.com> : man page and debian package
|
||||
Doug Barton : freebsd package
|
||||
James Buren <ryuo@frugalware.org> : Frugalware package
|
||||
Pierre-Emmanuel Andre <pea@raveland.org> : openbsd port
|
||||
Redroar : arch package
|
||||
|
||||
|
||||
|
|
|
@ -1,9 +1,7 @@
|
|||
|
||||
|
||||
2008-09-30
|
||||
- change tintrc format
|
||||
background and border can use linear gradiant
|
||||
- update documentation
|
||||
2008-10-28
|
||||
- fixed issue : "untitled task", "task button did not update", "window don't shade",
|
||||
"error if I don't do 'make install", "Makefile error"
|
||||
|
||||
2008-09-24
|
||||
- change tintrc format
|
||||
|
|
1
README
1
README
|
@ -16,3 +16,4 @@ check http://code.google.com/p/tint2/
|
|||
for latest release, documentation and sample config file.
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -7,13 +7,16 @@ ifndef DESTDIR
|
|||
ifndef PREFIX
|
||||
BINDIR=/usr/bin
|
||||
XDG_CONFIG_DIR=/etc/xdg
|
||||
MAN_DIR=/usr/share/man
|
||||
else
|
||||
BINDIR=$(PREFIX)/bin
|
||||
XDG_CONFIG_DIR=/etc/xdg
|
||||
MAN_DIR=/usr/share/man
|
||||
endif
|
||||
else
|
||||
BINDIR=$(DESTDIR)/usr/bin
|
||||
XDG_CONFIG_DIR=$(DESTDIR)/etc/xdg
|
||||
MAN_DIR=$(DESTDIR)/usr/share/man
|
||||
endif
|
||||
|
||||
|
||||
|
@ -24,13 +27,17 @@ $(PROGNAME): $(FILES) $(SYSTRAYOBJ)
|
|||
install:
|
||||
mkdir -p $(BINDIR)
|
||||
mkdir -p $(XDG_CONFIG_DIR)/tint2
|
||||
mkdir -p $(MANDIR)
|
||||
mkdir -p $(MANDIR)/man1
|
||||
install $(PROGNAME) $(BINDIR)
|
||||
cp -f ../tintrc06 $(XDG_CONFIG_DIR)/tint2/tint2rc
|
||||
cp -f ../doc/man/tint2.1 /usr/man/man1
|
||||
cp -f ../doc/man/tint2.1 $(MAN_DIR)/man1
|
||||
|
||||
uninstall:
|
||||
rm -f $(BINDIR)/$(PROGNAME)
|
||||
rm -f $(MAN_DIR)/man1/tint2.1
|
||||
|
||||
clean:
|
||||
rm -f $(PROGNAME)
|
||||
|
||||
.PHONY: clean uninstall install
|
||||
|
|
37
src/panel.c
37
src/panel.c
|
@ -36,43 +36,6 @@ void visual_refresh ()
|
|||
draw (&panel.area);
|
||||
refresh (&panel.area);
|
||||
|
||||
/*
|
||||
pour version 0.7
|
||||
gestion du systray
|
||||
positionnement et taille fixe du systray (objet systray)
|
||||
détection des notifications (détection des icones, ajout a la liste)
|
||||
ajouter la transparence des icones
|
||||
gérer le redimentionnement des éléments
|
||||
=> voir si lon peut faire abstraction sur le positionnement des objets ?
|
||||
sachant que certains objets (task, taskbar) on une taille définit par l'extérieur
|
||||
et d'autres objets (clock, systray) on une taille définit par l'intérieur
|
||||
|
||||
gestion du layout
|
||||
voir le positionnement des taskbar, task et systray
|
||||
définir panel_layout dans la configuration
|
||||
comment gérer le multi panel avec des layouts différents
|
||||
|
||||
vérifier le niveau d'abstraction du code
|
||||
utiliser la fonction draw(obj) récurrente sur Taskbar, Task, Systray, Clock
|
||||
est ce compatible avec l'affichage de la tache active et les changement de taille -> redessine le panel
|
||||
|
||||
correction de bugs :
|
||||
memory, segfault
|
||||
background
|
||||
remettre en place single_desktop avec nouveau layout
|
||||
remettre en place multi_monitor avec nouveau layout
|
||||
vérifier le changement de configuration
|
||||
|
||||
pour version 0.8
|
||||
gestion du thème
|
||||
voir la gestion du dégradé sur le bord et le fond (inkscape)
|
||||
faut-il trois coordonnées de padding x, y, x inter-objects
|
||||
|
||||
gestion du zoom
|
||||
définir le zoom du panel
|
||||
|
||||
*/
|
||||
|
||||
if (panel.clock.time1_format) {
|
||||
if (panel.clock.area.redraw)
|
||||
panel.refresh = 1;
|
||||
|
|
51
src/server.c
51
src/server.c
|
@ -66,6 +66,7 @@ void server_init_atoms ()
|
|||
server.atom._WIN_LAYER = XInternAtom (server.dsp, "_WIN_LAYER", False);
|
||||
server.atom._NET_WM_STRUT_PARTIAL = XInternAtom (server.dsp, "_NET_WM_STRUT_PARTIAL", False);
|
||||
server.atom.WM_NAME = XInternAtom(server.dsp, "WM_NAME", False);
|
||||
server.atom.__SWM_VROOT = XInternAtom(server.dsp, "__SWM_VROOT", False);
|
||||
}
|
||||
|
||||
|
||||
|
@ -133,12 +134,49 @@ void *server_get_property (Window win, Atom at, Atom type, int *num_results)
|
|||
}
|
||||
|
||||
|
||||
Pixmap server_create_pixmap (int width, int height)
|
||||
{
|
||||
return XCreatePixmap (server.dsp, server.root_win, width, height, server.depth);
|
||||
}
|
||||
|
||||
|
||||
Pixmap get_root_pixmap ()
|
||||
{
|
||||
Pixmap ret;
|
||||
Window root = RootWindow(server.dsp, server.screen);
|
||||
|
||||
ret = None;
|
||||
int act_format, c = 2 ;
|
||||
u_long nitems ;
|
||||
u_long bytes_after ;
|
||||
u_char *prop ;
|
||||
Atom dummy_id;
|
||||
|
||||
do {
|
||||
if (XGetWindowProperty(server.dsp, root, server.atom._XROOTPMAP_ID, 0, 1,
|
||||
False, XA_PIXMAP, &dummy_id, &act_format,
|
||||
&nitems, &bytes_after, &prop) == Success) {
|
||||
if (prop) {
|
||||
ret = *((Pixmap *)prop);
|
||||
XFree(prop);
|
||||
break;
|
||||
}
|
||||
}
|
||||
} while (--c > 0);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
Pixmap get_root_pixmap ()
|
||||
{
|
||||
// conky capture correctement le fond d'écran en xlib !!
|
||||
Pixmap root_pixmap;
|
||||
unsigned long *res;
|
||||
|
||||
server.root_win = window_get_root();
|
||||
|
||||
res = server_get_property (server.root_win, server.atom._XROOTPMAP_ID, XA_PIXMAP, 0);
|
||||
if (res) {
|
||||
root_pixmap = *((Drawable*) res);
|
||||
|
@ -149,18 +187,9 @@ Pixmap get_root_pixmap ()
|
|||
printf("get_root_pixmap incorrect\n");
|
||||
// try _XSETROOT_ID
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
Pixmap server_create_pixmap (int width, int height)
|
||||
{
|
||||
return XCreatePixmap (server.dsp, server.root_win, width, height, server.depth);
|
||||
}
|
||||
|
||||
}
|
||||
*/
|
||||
|
||||
void server_refresh_root_pixmap ()
|
||||
{
|
||||
|
|
|
@ -51,6 +51,7 @@ typedef struct Global_atom
|
|||
Atom _WIN_LAYER;
|
||||
Atom _NET_WM_STRUT_PARTIAL;
|
||||
Atom WM_NAME;
|
||||
Atom __SWM_VROOT;
|
||||
} Global_atom;
|
||||
|
||||
|
||||
|
@ -97,6 +98,7 @@ void server_catch_error (Display *d, XErrorEvent *ev);
|
|||
void server_init_atoms ();
|
||||
Pixmap server_create_pixmap (int width, int height);
|
||||
void get_monitors();
|
||||
Pixmap get_root_pixmap();
|
||||
|
||||
|
||||
#endif
|
||||
|
|
|
@ -75,7 +75,7 @@ void init ()
|
|||
}
|
||||
server_init_atoms ();
|
||||
server.screen = DefaultScreen (server.dsp);
|
||||
server.root_win = RootWindow (server.dsp, server.screen);
|
||||
server.root_win = RootWindow(server.dsp, server.screen);
|
||||
server.depth = DefaultDepth (server.dsp, server.screen);
|
||||
server.visual = DefaultVisual (server.dsp, server.screen);
|
||||
server.desktop = server_get_current_desktop ();
|
||||
|
@ -407,6 +407,7 @@ load_config:
|
|||
break;
|
||||
|
||||
case PropertyNotify:
|
||||
//printf("PropertyNotify\n");
|
||||
event_property_notify (e.xproperty.window, e.xproperty.atom);
|
||||
break;
|
||||
|
||||
|
|
BIN
src/tint2
BIN
src/tint2
Binary file not shown.
|
@ -1,17 +1,15 @@
|
|||
/**************************************************************************
|
||||
* base class for all objects (panel, taskbar, task, systray, clock, ...).
|
||||
* each object 'inherit' Area and implement draw_foreground if needed.
|
||||
* Copyright (C) 2008 thierry lorthiois (lorthiois@bbsoft.fr)
|
||||
*
|
||||
* Area is at the begining of each object so &object == &area.
|
||||
* base class for all graphical objects (panel, taskbar, task, systray, clock, ...).
|
||||
* Area is at the begining of each graphical object so &object == &area.
|
||||
*
|
||||
* Area manage the background and border drawing, size and padding.
|
||||
* Area manage also the tree of visible objects
|
||||
* panel -> taskbars -> tasks
|
||||
* -> clock
|
||||
* -> systray -> icons
|
||||
*
|
||||
* une zone comprend :
|
||||
* - fond : couleur / opacité
|
||||
* - contenu
|
||||
* - largeur / hauteur
|
||||
* - paddingx / paddingy
|
||||
* - pixmap mémorisant l'affichage (évite de redessiner l'objet à chaque rafraichissement)
|
||||
* - une liste de sous objets
|
||||
*
|
||||
* un objet comprend les actions:
|
||||
* 1) redraw(obj)
|
||||
* force l'indicateur 'redraw' sur l'objet
|
||||
|
@ -34,13 +32,8 @@
|
|||
* 6) voir refresh(obj)
|
||||
*
|
||||
* Implémentation :
|
||||
* - tous les éléments du panel possèdent 1 objet en début de structure
|
||||
* panel, taskbar, systray, task, ...
|
||||
* - l'objet est en fait une zone (area).
|
||||
* l'imbrication des sous objet doit permettre de gérer le layout.
|
||||
* - on a une relation 1<->1 entre un objet et une zone graphique
|
||||
* les taskbar affichent toutes les taches.
|
||||
* donc on utilise la liste des objets pour gérer la liste des taches.
|
||||
* - les taches ont 2 objets : l'un pour la tache inactive et l'autre pour la tache active
|
||||
* draw(obj) est appellé sur le premier objet automatiquement
|
||||
* et draw_foreground(obj) lance l'affichage du 2 ieme objet
|
||||
|
@ -60,8 +53,6 @@
|
|||
* 3. tester l'implémentation et évaluer les autres abstractions possibles ?
|
||||
*
|
||||
* 4. comment gérer le groupage des taches
|
||||
* 5. la clock est le contenu du panel. mais elle ne tiens pas compte du padding vertical ?
|
||||
* c'est ok pour la clock. voir l'impact sur paddingx ?
|
||||
*
|
||||
* voir resize_taskbar(), resize_clock() et resize_tasks()
|
||||
* voir les taches actives et inactives ?? une seule tache est active !
|
||||
|
|
|
@ -58,7 +58,7 @@ void set_close (Window win)
|
|||
|
||||
void window_toggle_shade (Window win)
|
||||
{
|
||||
send_event32 (win, server.atom._NET_WM_STATE, 2, 0);
|
||||
send_event32 (win, server.atom._NET_WM_STATE, 2, server.atom._NET_WM_STATE_SHADED);
|
||||
}
|
||||
|
||||
|
||||
|
@ -261,4 +261,3 @@ void get_text_size(PangoFontDescription *font, int *height_ink, int *height, int
|
|||
}
|
||||
|
||||
|
||||
|
||||
|
|
58
tintrc03
58
tintrc03
|
@ -5,25 +5,29 @@
|
|||
#---------------------------------------------
|
||||
# BACKGROUND AND BORDER
|
||||
#---------------------------------------------
|
||||
rounded = 1
|
||||
border_width = 1
|
||||
background_color = #282828 100
|
||||
border_color = #000000 100
|
||||
|
||||
rounded = 1
|
||||
rounded = 5
|
||||
border_width = 1
|
||||
background_color = #282828 100
|
||||
#background_color = #3b3b3b 100
|
||||
border_color = #cccccc 100
|
||||
background_color = #ffffff 40
|
||||
border_color = #ffffff 70
|
||||
|
||||
rounded = 4
|
||||
border_width = 0
|
||||
background_color = #ffffff 0
|
||||
border_color = #d1d1d1 0
|
||||
|
||||
rounded = 4
|
||||
border_width = 0
|
||||
background_color = #ffffff 30
|
||||
border_color = #d1d1d1 14
|
||||
|
||||
#---------------------------------------------
|
||||
# PANEL
|
||||
#---------------------------------------------
|
||||
panel_monitor = 1
|
||||
panel_position = bottom right
|
||||
panel_size = 0 27
|
||||
panel_margin = 0 0
|
||||
panel_padding = 3 2
|
||||
panel_position = bottom center
|
||||
panel_size = 1000 25
|
||||
panel_margin = 0 7
|
||||
panel_padding = 6 0
|
||||
font_shadow = 0
|
||||
panel_background_id = 1
|
||||
|
||||
|
@ -31,7 +35,7 @@ panel_background_id = 1
|
|||
# TASKBAR
|
||||
#---------------------------------------------
|
||||
taskbar_mode = multi_desktop
|
||||
taskbar_padding = 4 0
|
||||
taskbar_padding = 2 3
|
||||
taskbar_background_id = 0
|
||||
|
||||
#---------------------------------------------
|
||||
|
@ -39,14 +43,14 @@ taskbar_background_id = 0
|
|||
#---------------------------------------------
|
||||
task_icon = 1
|
||||
task_text = 1
|
||||
task_width = 200
|
||||
task_width = 150
|
||||
task_centered = 1
|
||||
task_padding = 1 3
|
||||
task_font = sans 8
|
||||
task_font_color = #ffffff 40
|
||||
task_active_font_color = #ffffff 100
|
||||
task_background_id = 0
|
||||
task_active_background_id = 2
|
||||
task_padding = 3 2
|
||||
task_font = myriad pro 8
|
||||
task_font_color = #000000 70
|
||||
task_active_font_color = #000000 100
|
||||
task_background_id = 2
|
||||
task_active_background_id = 3
|
||||
|
||||
#---------------------------------------------
|
||||
# SYSTRAY
|
||||
|
@ -57,12 +61,12 @@ task_active_background_id = 2
|
|||
#---------------------------------------------
|
||||
# CLOCK
|
||||
#---------------------------------------------
|
||||
time1_format = %H:%M:%S
|
||||
time1_font = sans 7
|
||||
time2_format = %A %d %B
|
||||
time2_font = sans 7
|
||||
clock_font_color = #ffffff 100
|
||||
clock_padding = 0 0
|
||||
time1_format = %H:%M
|
||||
time1_font = sans bold 12
|
||||
#time2_format = %A %d %B
|
||||
#time2_font = sans bold 10
|
||||
clock_font_color = #000000 70
|
||||
clock_padding = 6 0
|
||||
clock_background_id = 0
|
||||
|
||||
#---------------------------------------------
|
||||
|
|
57
tintrc04
57
tintrc04
|
@ -5,52 +5,47 @@
|
|||
#---------------------------------------------
|
||||
# BACKGROUND AND BORDER
|
||||
#---------------------------------------------
|
||||
rounded = 5
|
||||
rounded = 3
|
||||
border_width = 1
|
||||
background_color = #ffffff 40
|
||||
border_color = #ffffff 70
|
||||
background_color = #3c3020 90
|
||||
border_color = #3c3020 90
|
||||
|
||||
rounded = 4
|
||||
border_width = 0
|
||||
background_color = #ffffff 0
|
||||
border_color = #d1d1d1 0
|
||||
|
||||
rounded = 4
|
||||
border_width = 0
|
||||
background_color = #ffffff 30
|
||||
border_color = #d1d1d1 14
|
||||
rounded = 3
|
||||
border_width = 1
|
||||
background_color = #3c3020 90
|
||||
border_color = #ffffff 30
|
||||
|
||||
#---------------------------------------------
|
||||
# PANEL
|
||||
#---------------------------------------------
|
||||
panel_monitor = 1
|
||||
panel_position = bottom center
|
||||
panel_size = 1000 25
|
||||
panel_size = 900 30
|
||||
panel_margin = 0 0
|
||||
panel_padding = 6 0
|
||||
panel_padding = 10 2
|
||||
font_shadow = 0
|
||||
panel_background_id = 1
|
||||
panel_background_id = 0
|
||||
|
||||
#---------------------------------------------
|
||||
# TASKBAR
|
||||
#---------------------------------------------
|
||||
taskbar_mode = multi_desktop
|
||||
taskbar_padding = 2 3
|
||||
taskbar_mode = single_desktop
|
||||
taskbar_padding = 9 0
|
||||
taskbar_background_id = 0
|
||||
|
||||
#---------------------------------------------
|
||||
# TASKS
|
||||
#---------------------------------------------
|
||||
task_icon = 1
|
||||
task_icon = 0
|
||||
task_text = 1
|
||||
task_width = 150
|
||||
task_width = 190
|
||||
task_centered = 1
|
||||
task_padding = 3 2
|
||||
task_font = myriad pro 8
|
||||
task_font_color = #000000 70
|
||||
task_active_font_color = #000000 100
|
||||
task_background_id = 2
|
||||
task_active_background_id = 3
|
||||
task_padding = 2 0
|
||||
task_font = sans 8.4
|
||||
task_font_color = #ececec 50
|
||||
task_active_font_color = #ffffff 90
|
||||
task_background_id = 1
|
||||
task_active_background_id = 2
|
||||
|
||||
#---------------------------------------------
|
||||
# SYSTRAY
|
||||
|
@ -62,12 +57,12 @@ task_active_background_id = 3
|
|||
# CLOCK
|
||||
#---------------------------------------------
|
||||
time1_format = %H:%M
|
||||
time1_font = sans bold 12
|
||||
#time2_format = %A %d %B
|
||||
#time2_font = sans bold 10
|
||||
clock_font_color = #000000 70
|
||||
clock_padding = 6 0
|
||||
clock_background_id = 0
|
||||
time1_font = sans bold 8
|
||||
time2_format = %A %d %B
|
||||
time2_font = sans 7
|
||||
clock_font_color = #ececec 50
|
||||
clock_padding = 4 0
|
||||
clock_background_id = 1
|
||||
|
||||
#---------------------------------------------
|
||||
# MOUSE ACTION ON TASK
|
||||
|
|
Loading…
Reference in a new issue