panel_items : fixed hide/unhide of baterry and systray

git-svn-id: http://tint2.googlecode.com/svn/trunk@560 121b4492-b84c-0410-8b4c-0d4edfb3f3cc
This commit is contained in:
thilor77 2010-09-22 19:33:10 +00:00
parent f8e31774b6
commit b4fb372f52
5 changed files with 37 additions and 18 deletions

View file

@ -79,14 +79,14 @@ void update_batterys(void* arg)
for (i=0 ; i < nb_panel ; i++) {
if (battery_state.percentage >= percentage_hide) {
if (panel1[i].battery.area.on_screen == 1) {
panel1[i].battery.area.on_screen = 0;
panel1[i].area.resize = 1;
hide(&panel1[i].battery.area);
panel_refresh = 1;
}
}
else {
if (panel1[i].battery.area.on_screen == 0) {
panel1[i].battery.area.on_screen = 1;
show(&panel1[i].battery.area);
panel_refresh = 1;
}
}
if (panel1[i].battery.area.on_screen == 1) {
@ -237,9 +237,6 @@ void init_battery_panel(void *p)
battery->area._draw_foreground = draw_battery;
battery->area.size_mode = SIZE_BY_CONTENT;
battery->area._resize = resize_battery;
battery->area.resize = 1;
battery->area.redraw = 1;
battery->area.on_screen = 1;
}
@ -462,14 +459,13 @@ int resize_battery(void *obj)
}
else {
int new_size = bat_percentage_height + bat_time_height + (2 * (battery->area.paddingxlr + battery->area.bg->border.width));
if (new_size != battery->area.height) {
if (new_size > battery->area.height || new_size < (battery->area.height-2)) {
battery->area.height = new_size;
battery->bat1_posy = ((battery->area.height - bat_percentage_height) / 2) - ((bat_time_height_ink + 2) / 2);
battery->bat2_posy = battery->bat1_posy + bat_percentage_height + 2 - (bat_percentage_height - bat_percentage_height_ink)/2 - (bat_time_height - bat_time_height_ink)/2;
ret = 1;
}
}
return ret;
}

View file

@ -148,12 +148,11 @@ void init_clock_panel(void *p)
clock->area._draw_foreground = draw_clock;
clock->area.size_mode = SIZE_BY_CONTENT;
clock->area._resize = resize_clock;
clock->area.resize = 1;
clock->area.redraw = 1;
// check consistency
if (time1_format == 0)
return;
clock->area.resize = 1;
clock->area.on_screen = 1;
if (time_tooltip_format) {
@ -205,6 +204,7 @@ int resize_clock (void *obj)
clock->area.redraw = 1;
date_height = date_width = 0;
strftime(buf_time, sizeof(buf_time), time1_format, clock_gettime_for_tz(time1_timezone));
get_text_size2(time1_font_desc, &time_height_ink, &time_height, &time_width, panel->area.height, panel->area.width, buf_time, strlen(buf_time));
if (time2_format) {

View file

@ -107,9 +107,9 @@ void init_systray_panel(void *p)
count++;
}
if (count == 0)
systray.area.on_screen = 0;
hide(&systray.area);
else
systray.area.on_screen = 1;
show(&systray.area);
refresh_systray = 0;
}
@ -426,7 +426,7 @@ gboolean add_icon(Window id)
traywin->damage = 0;
if (systray.area.on_screen == 0)
systray.area.on_screen = 1;
show(&systray.area);
if (systray.sort == 3)
systray.list_icons = g_slist_prepend(systray.list_icons, traywin);
@ -488,10 +488,9 @@ void remove_icon(TrayWindow *traywin)
if (!((TrayWindow*)l->data)->hide)
count++;
}
if (count == 0) {
systray.area.on_screen = 0;
systray.area.width = 0;
}
if (count == 0)
hide(&systray.area);
// changed in systray
systray.area.resize = 1;
panel_refresh = 1;

View file

@ -123,8 +123,8 @@ void size_by_content (Area *a)
if (a->_resize(a)) {
// 'size' changed => 'resize = 1' on the parent and redraw object
((Area*)a->parent)->resize = 1;
a->redraw = 1;
}
a->redraw = 1;
}
}
}
@ -317,6 +317,26 @@ void set_redraw (Area *a)
set_redraw(l->data);
}
void hide(Area *a)
{
Area *parent = (Area*)a->parent;
a->on_screen = 0;
parent->resize = 1;
if (panel_horizontal)
a->width = 0;
else
a->height = 0;
}
void show(Area *a)
{
Area *parent = (Area*)a->parent;
a->on_screen = 1;
parent->resize = 1;
a->resize = 1;
}
void draw (Area *a)
{

View file

@ -104,6 +104,10 @@ int resize_by_layout(void *obj);
// set 'redraw' on an area and childs
void set_redraw (Area *a);
// hide/unhide area
void hide(Area *a);
void show(Area *a);
// draw pixmap
void draw (Area *a);
void draw_background (Area *a, cairo_t *c);