Cleanup: area.h

This commit is contained in:
o9000
2015-11-18 21:57:10 +01:00
parent 5f41544089
commit c0e62e2e79
19 changed files with 502 additions and 422 deletions

View File

@@ -62,8 +62,8 @@ Task *add_task (Window win)
Task new_tsk;
memset(&new_tsk, 0, sizeof(new_tsk));
new_tsk.area.mouse_over_effect = 1;
new_tsk.area.mouse_press_effect = 1;
new_tsk.area.has_mouse_over_effect = 1;
new_tsk.area.has_mouse_press_effect = 1;
new_tsk.win = win;
new_tsk.desktop = window_get_desktop (win);
new_tsk.area.panel = &panel1[monitor];
@@ -94,8 +94,8 @@ Task *add_task (Window win)
new_tsk2 = calloc(1, sizeof(Task));
memcpy(&new_tsk2->area, &panel1[monitor].g_task.area, sizeof(Area));
new_tsk2->area.parent = tskbar;
new_tsk2->area.mouse_over_effect = 1;
new_tsk2->area.mouse_press_effect = 1;
new_tsk2->area.has_mouse_over_effect = 1;
new_tsk2->area.has_mouse_press_effect = 1;
new_tsk2->win = new_tsk.win;
new_tsk2->desktop = new_tsk.desktop;
new_tsk2->win_x = new_tsk.win_x;
@@ -119,7 +119,7 @@ Task *add_task (Window win)
new_tsk2->icon_width = new_tsk.icon_width;
new_tsk2->icon_height = new_tsk.icon_height;
tskbar->area.children = g_list_append(tskbar->area.children, new_tsk2);
tskbar->area.resize = 1;
tskbar->area.resize_needed = 1;
g_ptr_array_add(task_group, new_tsk2);
//printf("add_task panel %d, desktop %d, task %s\n", i, j, new_tsk2->title);
}
@@ -132,7 +132,7 @@ Task *add_task (Window win)
if (panel_mode == MULTI_DESKTOP) {
Panel *panel = new_tsk2->area.panel;
panel->area.resize = 1;
panel->area.resize_needed = 1;
}
if (window_is_urgent(win)) {
@@ -149,7 +149,7 @@ void remove_task (Task *tsk)
if (panel_mode == MULTI_DESKTOP) {
Panel *panel = tsk->area.panel;
panel->area.resize = 1;
panel->area.resize_needed = 1;
}
Window win = tsk->win;
@@ -187,7 +187,7 @@ void remove_task (Task *tsk)
if (tsk2 == task_active) task_active = 0;
if (tsk2 == task_drag) task_drag = 0;
if (g_slist_find(urgent_list, tsk2)) del_urgent(tsk2);
remove_area(tsk2);
remove_area((Area*)tsk2);
free(tsk2);
}
g_hash_table_remove(win_to_task_table, &win);
@@ -555,9 +555,9 @@ void set_task_state(Task *tsk, int state)
if (!panel_config.mouse_effects) {
tsk1->area.pix = tsk1->state_pix[state];
if (!tsk1->area.pix)
tsk1->area.redraw = 1;
tsk1->area.redraw_needed = 1;
} else {
tsk1->area.redraw = 1;
tsk1->area.redraw_needed = 1;
}
if (state == TASK_ACTIVE && g_slist_find(urgent_list, tsk1))
del_urgent(tsk1);
@@ -581,9 +581,9 @@ void set_task_state(Task *tsk, int state)
tsk1->area.on_screen = 1 - hide;
set_task_redraw(tsk1);
Panel *p = (Panel*)tsk->area.panel;
tsk->area.resize = 1;
p->taskbar->area.resize = 1;
p->area.resize = 1;
tsk->area.resize_needed = 1;
p->taskbar->area.resize_needed = 1;
p->area.resize_needed = 1;
}
}
panel_refresh = 1;
@@ -600,7 +600,7 @@ void set_task_redraw(Task* tsk)
tsk->state_pix[k] = 0;
}
tsk->area.pix = 0;
tsk->area.redraw = 1;
tsk->area.redraw_needed = 1;
}

View File

@@ -99,7 +99,7 @@ void cleanup_taskbar()
}
free_area(&tskbar->area);
// remove taskbar from the panel
remove_area(tskbar);
remove_area((Area*)tskbar);
}
if (panel->taskbar) {
free(panel->taskbar);
@@ -144,22 +144,22 @@ void init_taskbar_panel(void *p)
// taskbar name
panel->g_taskbar.area_name.panel = panel;
panel->g_taskbar.area_name.size_mode = SIZE_BY_CONTENT;
panel->g_taskbar.area_name.size_mode = LAYOUT_FIXED;
panel->g_taskbar.area_name._resize = resize_taskbarname;
panel->g_taskbar.area_name._draw_foreground = draw_taskbarname;
panel->g_taskbar.area_name._on_change_layout = 0;
panel->g_taskbar.area_name.resize = 1;
panel->g_taskbar.area_name.resize_needed = 1;
panel->g_taskbar.area_name.on_screen = 1;
// taskbar
panel->g_taskbar.area.parent = panel;
panel->g_taskbar.area.panel = panel;
panel->g_taskbar.area.size_mode = SIZE_BY_LAYOUT;
panel->g_taskbar.area.size_mode = LAYOUT_DYNAMIC;
panel->g_taskbar.area.alignment = taskbar_alignment;
panel->g_taskbar.area._resize = resize_taskbar;
panel->g_taskbar.area._draw_foreground = draw_taskbar;
panel->g_taskbar.area._on_change_layout = on_change_taskbar;
panel->g_taskbar.area.resize = 1;
panel->g_taskbar.area.resize_needed = 1;
panel->g_taskbar.area.on_screen = 1;
if (panel_horizontal) {
panel->g_taskbar.area.posy = panel->area.bg->border.width + panel->area.paddingy;
@@ -176,10 +176,10 @@ void init_taskbar_panel(void *p)
// task
panel->g_task.area.panel = panel;
panel->g_task.area.size_mode = SIZE_BY_LAYOUT;
panel->g_task.area.size_mode = LAYOUT_DYNAMIC;
panel->g_task.area._draw_foreground = draw_task;
panel->g_task.area._on_change_layout = on_change_task;
panel->g_task.area.resize = 1;
panel->g_task.area.resize_needed = 1;
panel->g_task.area.on_screen = 1;
if ((panel->g_task.config_asb_mask & (1<<TASK_NORMAL)) == 0) {
panel->g_task.alpha[TASK_NORMAL] = 100;
@@ -223,11 +223,11 @@ void init_taskbar_panel(void *p)
for (j=0; j<TASK_STATE_COUNT; ++j) {
if (panel->g_task.background[j] == 0)
panel->g_task.background[j] = &g_array_index(backgrounds, Background, 0);
if (panel->g_task.background[j]->border.rounded > panel->g_task.area.height/2) {
if (panel->g_task.background[j]->border.radius > panel->g_task.area.height/2) {
printf("task%sbackground_id has a too large rounded value. Please fix your tint2rc\n", j==0 ? "_" : j==1 ? "_active_" : j==2 ? "_iconified_" : "_urgent_");
g_array_append_val(backgrounds, *panel->g_task.background[j]);
panel->g_task.background[j] = &g_array_index(backgrounds, Background, backgrounds->len-1);
panel->g_task.background[j]->border.rounded = panel->g_task.area.height/2;
panel->g_task.background[j]->border.radius = panel->g_task.area.height/2;
}
}
@@ -334,7 +334,7 @@ int resize_taskbar(void *obj)
//printf("resize_taskbar %d %d\n", taskbar->area.posx, taskbar->area.posy);
if (panel_horizontal) {
resize_by_layout(obj, panel->g_task.maximum_width);
relayout_with_constraint(&taskbar->area, panel->g_task.maximum_width);
text_width = panel->g_task.maximum_width;
GList *l = taskbar->area.children;
@@ -348,7 +348,7 @@ int resize_taskbar(void *obj)
taskbar->text_width = text_width - panel->g_task.text_posx - panel->g_task.area.bg->border.width - panel->g_task.area.paddingxlr;
}
else {
resize_by_layout(obj, panel->g_task.maximum_height);
relayout_with_constraint(&taskbar->area, panel->g_task.maximum_height);
taskbar->text_width = taskbar->area.width - (2 * panel->g_taskbar.area.paddingy) - panel->g_task.text_posx - panel->g_task.area.bg->border.width - panel->g_task.area.paddingxlr;
}
@@ -367,7 +367,7 @@ void on_change_taskbar (void *obj)
tskbar->state_pix[k] = 0;
}
tskbar->area.pix = 0;
tskbar->area.redraw = 1;
tskbar->area.redraw_needed = 1;
}
@@ -389,13 +389,13 @@ void set_taskbar_state(Taskbar *tskbar, int state)
}
if (tskbar->area.on_screen == 1) {
if (tskbar->state_pix[state] == 0)
tskbar->area.redraw = 1;
tskbar->area.redraw_needed = 1;
if (taskbarname_enabled) {
if (!panel_config.mouse_effects) {
if (tskbar->bar_name.state_pix[state] == 0)
tskbar->bar_name.area.redraw = 1;
tskbar->bar_name.area.redraw_needed = 1;
} else {
tskbar->bar_name.area.redraw = 1;
tskbar->bar_name.area.redraw_needed = 1;
}
}
if (panel_mode == MULTI_DESKTOP && panel1[0].g_taskbar.background[TASKBAR_NORMAL] != panel1[0].g_taskbar.background[TASKBAR_ACTIVE]) {
@@ -540,9 +540,9 @@ void sort_tasks(Taskbar *taskbar)
return;
}
taskbar->area.children = g_list_sort_with_data(taskbar->area.children, (GCompareDataFunc)compare_tasks, taskbar);
taskbar->area.resize = 1;
taskbar->area.resize_needed = 1;
panel_refresh = 1;
((Panel*)taskbar->area.panel)->area.resize = 1;
((Panel*)taskbar->area.panel)->area.resize_needed = 1;
}

View File

@@ -62,8 +62,8 @@ void init_taskbarname_panel(void *p)
tskbar = &panel->taskbar[j];
memcpy(&tskbar->bar_name.area, &panel->g_taskbar.area_name, sizeof(Area));
tskbar->bar_name.area.parent = tskbar;
tskbar->bar_name.area.mouse_over_effect = 1;
tskbar->bar_name.area.mouse_press_effect = 1;
tskbar->bar_name.area.has_mouse_over_effect = 1;
tskbar->bar_name.area.has_mouse_press_effect = 1;
if (j == server.desktop)
tskbar->bar_name.area.bg = panel->g_taskbar.background_name[TASKBAR_ACTIVE];
else
@@ -105,7 +105,7 @@ void cleanup_taskbarname()
XFreePixmap(server.dsp, tskbar->bar_name.state_pix[k]);
tskbar->bar_name.state_pix[k] = 0;
}
remove_area(&tskbar->bar_name);
remove_area((Area*)&tskbar->bar_name);
}
}
}
@@ -131,7 +131,7 @@ void draw_taskbarname (void *obj, cairo_t *c)
pango_layout_set_ellipsize(layout, PANGO_ELLIPSIZE_NONE);
pango_layout_set_text (layout, taskbar_name->name, strlen(taskbar_name->name));
cairo_set_source_rgba (c, config_text->color[0], config_text->color[1], config_text->color[2], config_text->alpha);
cairo_set_source_rgba (c, config_text->rgb[0], config_text->rgb[1], config_text->rgb[2], config_text->alpha);
pango_cairo_update_layout (c, layout);
draw_text(layout, c, 0, taskbar_name->posy, config_text, ((Panel*)taskbar_name->area.panel)->font_shadow);
@@ -148,7 +148,7 @@ int resize_taskbarname(void *obj)
int name_height, name_width, name_height_ink;
int ret = 0;
taskbar_name->area.redraw = 1;
taskbar_name->area.redraw_needed = 1;
get_text_size2(panel_config.taskbarname_font_desc, &name_height_ink, &name_height, &name_width, panel->area.height, panel->area.width, taskbar_name->name, strlen(taskbar_name->name),
PANGO_WRAP_WORD_CHAR,
PANGO_ELLIPSIZE_NONE);