Changed indentation everywhere
This commit is contained in:
1068
src/taskbar/task.c
1068
src/taskbar/task.c
File diff suppressed because it is too large
Load Diff
@@ -14,65 +14,65 @@
|
||||
#include "timer.h"
|
||||
|
||||
typedef enum TaskState {
|
||||
TASK_NORMAL = 0,
|
||||
TASK_ACTIVE,
|
||||
TASK_ICONIFIED,
|
||||
TASK_URGENT,
|
||||
TASK_UNDEFINED,
|
||||
TASK_STATE_COUNT,
|
||||
TASK_NORMAL = 0,
|
||||
TASK_ACTIVE,
|
||||
TASK_ICONIFIED,
|
||||
TASK_URGENT,
|
||||
TASK_UNDEFINED,
|
||||
TASK_STATE_COUNT,
|
||||
} TaskState;
|
||||
|
||||
typedef struct GlobalTask {
|
||||
Area area;
|
||||
gboolean has_text;
|
||||
gboolean has_icon;
|
||||
gboolean centered;
|
||||
int icon_posy;
|
||||
int icon_size1;
|
||||
int maximum_width;
|
||||
int maximum_height;
|
||||
int alpha[TASK_STATE_COUNT];
|
||||
int saturation[TASK_STATE_COUNT];
|
||||
int brightness[TASK_STATE_COUNT];
|
||||
int config_asb_mask;
|
||||
Background *background[TASK_STATE_COUNT];
|
||||
GList *gradient[TASK_STATE_COUNT];
|
||||
int config_background_mask;
|
||||
// starting position for text ~ task_padding + task_border + icon_size
|
||||
double text_posx, text_height;
|
||||
gboolean has_font;
|
||||
PangoFontDescription *font_desc;
|
||||
Color font[TASK_STATE_COUNT];
|
||||
int config_font_mask;
|
||||
gboolean tooltip_enabled;
|
||||
Area area;
|
||||
gboolean has_text;
|
||||
gboolean has_icon;
|
||||
gboolean centered;
|
||||
int icon_posy;
|
||||
int icon_size1;
|
||||
int maximum_width;
|
||||
int maximum_height;
|
||||
int alpha[TASK_STATE_COUNT];
|
||||
int saturation[TASK_STATE_COUNT];
|
||||
int brightness[TASK_STATE_COUNT];
|
||||
int config_asb_mask;
|
||||
Background *background[TASK_STATE_COUNT];
|
||||
GList *gradient[TASK_STATE_COUNT];
|
||||
int config_background_mask;
|
||||
// starting position for text ~ task_padding + task_border + icon_size
|
||||
double text_posx, text_height;
|
||||
gboolean has_font;
|
||||
PangoFontDescription *font_desc;
|
||||
Color font[TASK_STATE_COUNT];
|
||||
int config_font_mask;
|
||||
gboolean tooltip_enabled;
|
||||
} GlobalTask;
|
||||
|
||||
// Stores information about a task.
|
||||
// Warning: any dynamically allocated members are shared between the Task instances created for the same window
|
||||
// (if the task appears on all desktops, there will be a different instance on each desktop's taskbar).
|
||||
typedef struct Task {
|
||||
Area area;
|
||||
Window win;
|
||||
int desktop;
|
||||
TaskState current_state;
|
||||
Imlib_Image icon[TASK_STATE_COUNT];
|
||||
Imlib_Image icon_hover[TASK_STATE_COUNT];
|
||||
Imlib_Image icon_press[TASK_STATE_COUNT];
|
||||
unsigned int icon_width;
|
||||
unsigned int icon_height;
|
||||
char *title;
|
||||
int urgent_tick;
|
||||
// These may not be up-to-date
|
||||
int win_x;
|
||||
int win_y;
|
||||
int win_w;
|
||||
int win_h;
|
||||
struct timespec last_activation_time;
|
||||
int _text_width;
|
||||
int _text_height;
|
||||
double _text_posy;
|
||||
int _icon_x;
|
||||
int _icon_y;
|
||||
Area area;
|
||||
Window win;
|
||||
int desktop;
|
||||
TaskState current_state;
|
||||
Imlib_Image icon[TASK_STATE_COUNT];
|
||||
Imlib_Image icon_hover[TASK_STATE_COUNT];
|
||||
Imlib_Image icon_press[TASK_STATE_COUNT];
|
||||
unsigned int icon_width;
|
||||
unsigned int icon_height;
|
||||
char *title;
|
||||
int urgent_tick;
|
||||
// These may not be up-to-date
|
||||
int win_x;
|
||||
int win_y;
|
||||
int win_w;
|
||||
int win_h;
|
||||
struct timespec last_activation_time;
|
||||
int _text_width;
|
||||
int _text_height;
|
||||
double _text_posy;
|
||||
int _icon_x;
|
||||
int _icon_y;
|
||||
} Task;
|
||||
|
||||
extern timeout *urgent_timeout;
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -12,39 +12,39 @@
|
||||
#include "taskbarname.h"
|
||||
|
||||
typedef enum TaskbarState {
|
||||
TASKBAR_NORMAL = 0,
|
||||
TASKBAR_ACTIVE,
|
||||
TASKBAR_STATE_COUNT,
|
||||
TASKBAR_NORMAL = 0,
|
||||
TASKBAR_ACTIVE,
|
||||
TASKBAR_STATE_COUNT,
|
||||
} TaskbarState;
|
||||
|
||||
typedef enum TaskbarSortMethod {
|
||||
TASKBAR_NOSORT = 0,
|
||||
TASKBAR_SORT_CENTER,
|
||||
TASKBAR_SORT_TITLE,
|
||||
TASKBAR_SORT_LRU,
|
||||
TASKBAR_SORT_MRU,
|
||||
TASKBAR_NOSORT = 0,
|
||||
TASKBAR_SORT_CENTER,
|
||||
TASKBAR_SORT_TITLE,
|
||||
TASKBAR_SORT_LRU,
|
||||
TASKBAR_SORT_MRU,
|
||||
} TaskbarSortMethod;
|
||||
|
||||
typedef struct {
|
||||
Area area;
|
||||
gchar *name;
|
||||
int posy;
|
||||
Area area;
|
||||
gchar *name;
|
||||
int posy;
|
||||
} TaskbarName;
|
||||
|
||||
typedef struct {
|
||||
Area area;
|
||||
int desktop;
|
||||
TaskbarName bar_name;
|
||||
int text_width;
|
||||
Area area;
|
||||
int desktop;
|
||||
TaskbarName bar_name;
|
||||
int text_width;
|
||||
} Taskbar;
|
||||
|
||||
typedef struct GlobalTaskbar {
|
||||
Area area;
|
||||
Area area_name;
|
||||
Background *background[TASKBAR_STATE_COUNT];
|
||||
Background *background_name[TASKBAR_STATE_COUNT];
|
||||
GList *gradient[TASKBAR_STATE_COUNT];
|
||||
GList *gradient_name[TASKBAR_STATE_COUNT];
|
||||
Area area;
|
||||
Area area_name;
|
||||
Background *background[TASKBAR_STATE_COUNT];
|
||||
Background *background_name[TASKBAR_STATE_COUNT];
|
||||
GList *gradient[TASKBAR_STATE_COUNT];
|
||||
GList *gradient_name[TASKBAR_STATE_COUNT];
|
||||
} GlobalTaskbar;
|
||||
|
||||
extern gboolean taskbar_enabled;
|
||||
|
||||
@@ -41,176 +41,176 @@ int taskbarname_compute_desired_size(void *obj);
|
||||
|
||||
void default_taskbarname()
|
||||
{
|
||||
taskbarname_enabled = FALSE;
|
||||
taskbarname_enabled = FALSE;
|
||||
}
|
||||
|
||||
void init_taskbarname_panel(void *p)
|
||||
{
|
||||
if (!taskbarname_enabled)
|
||||
return;
|
||||
if (!taskbarname_enabled)
|
||||
return;
|
||||
|
||||
Panel *panel = (Panel *)p;
|
||||
Panel *panel = (Panel *)p;
|
||||
|
||||
taskbarname_init_fonts();
|
||||
taskbarname_init_fonts();
|
||||
|
||||
GSList *list = get_desktop_names();
|
||||
GSList *l = list;
|
||||
for (int j = 0; j < panel->num_desktops; j++) {
|
||||
Taskbar *taskbar = &panel->taskbar[j];
|
||||
memcpy(&taskbar->bar_name.area, &panel->g_taskbar.area_name, sizeof(Area));
|
||||
taskbar->bar_name.area.parent = taskbar;
|
||||
taskbar->bar_name.area.has_mouse_over_effect = panel_config.mouse_effects;
|
||||
taskbar->bar_name.area.has_mouse_press_effect = panel_config.mouse_effects;
|
||||
taskbar->bar_name.area._compute_desired_size = taskbarname_compute_desired_size;
|
||||
if (j == server.desktop) {
|
||||
taskbar->bar_name.area.bg = panel->g_taskbar.background_name[TASKBAR_ACTIVE];
|
||||
} else {
|
||||
taskbar->bar_name.area.bg = panel->g_taskbar.background_name[TASKBAR_NORMAL];
|
||||
}
|
||||
GSList *list = get_desktop_names();
|
||||
GSList *l = list;
|
||||
for (int j = 0; j < panel->num_desktops; j++) {
|
||||
Taskbar *taskbar = &panel->taskbar[j];
|
||||
memcpy(&taskbar->bar_name.area, &panel->g_taskbar.area_name, sizeof(Area));
|
||||
taskbar->bar_name.area.parent = taskbar;
|
||||
taskbar->bar_name.area.has_mouse_over_effect = panel_config.mouse_effects;
|
||||
taskbar->bar_name.area.has_mouse_press_effect = panel_config.mouse_effects;
|
||||
taskbar->bar_name.area._compute_desired_size = taskbarname_compute_desired_size;
|
||||
if (j == server.desktop) {
|
||||
taskbar->bar_name.area.bg = panel->g_taskbar.background_name[TASKBAR_ACTIVE];
|
||||
} else {
|
||||
taskbar->bar_name.area.bg = panel->g_taskbar.background_name[TASKBAR_NORMAL];
|
||||
}
|
||||
|
||||
// use desktop number if name is missing
|
||||
if (l) {
|
||||
taskbar->bar_name.name = g_strdup(l->data);
|
||||
l = l->next;
|
||||
} else {
|
||||
taskbar->bar_name.name = g_strdup_printf("%d", j + 1);
|
||||
}
|
||||
// use desktop number if name is missing
|
||||
if (l) {
|
||||
taskbar->bar_name.name = g_strdup(l->data);
|
||||
l = l->next;
|
||||
} else {
|
||||
taskbar->bar_name.name = g_strdup_printf("%d", j + 1);
|
||||
}
|
||||
|
||||
// append the name at the beginning of taskbar
|
||||
taskbar->area.children = g_list_append(taskbar->area.children, &taskbar->bar_name);
|
||||
instantiate_area_gradients(&taskbar->bar_name.area);
|
||||
}
|
||||
// append the name at the beginning of taskbar
|
||||
taskbar->area.children = g_list_append(taskbar->area.children, &taskbar->bar_name);
|
||||
instantiate_area_gradients(&taskbar->bar_name.area);
|
||||
}
|
||||
|
||||
for (l = list; l; l = l->next)
|
||||
g_free(l->data);
|
||||
g_slist_free(list);
|
||||
for (l = list; l; l = l->next)
|
||||
g_free(l->data);
|
||||
g_slist_free(list);
|
||||
}
|
||||
|
||||
void taskbarname_init_fonts()
|
||||
{
|
||||
if (!panel_config.taskbarname_font_desc) {
|
||||
panel_config.taskbarname_font_desc = pango_font_description_from_string(get_default_font());
|
||||
pango_font_description_set_weight(panel_config.taskbarname_font_desc, PANGO_WEIGHT_BOLD);
|
||||
}
|
||||
if (!panel_config.taskbarname_font_desc) {
|
||||
panel_config.taskbarname_font_desc = pango_font_description_from_string(get_default_font());
|
||||
pango_font_description_set_weight(panel_config.taskbarname_font_desc, PANGO_WEIGHT_BOLD);
|
||||
}
|
||||
}
|
||||
|
||||
void taskbarname_default_font_changed()
|
||||
{
|
||||
if (!taskbar_enabled)
|
||||
return;
|
||||
if (!taskbarname_enabled)
|
||||
return;
|
||||
if (panel_config.taskbarname_has_font)
|
||||
return;
|
||||
if (!taskbar_enabled)
|
||||
return;
|
||||
if (!taskbarname_enabled)
|
||||
return;
|
||||
if (panel_config.taskbarname_has_font)
|
||||
return;
|
||||
|
||||
pango_font_description_free(panel_config.taskbarname_font_desc);
|
||||
panel_config.taskbarname_font_desc = NULL;
|
||||
taskbarname_init_fonts();
|
||||
for (int i = 0; i < num_panels; i++) {
|
||||
for (int j = 0; j < panels[i].num_desktops; j++) {
|
||||
Taskbar *taskbar = &panels[i].taskbar[j];
|
||||
taskbar->bar_name.area.resize_needed = TRUE;
|
||||
schedule_redraw(&taskbar->bar_name.area);
|
||||
}
|
||||
}
|
||||
schedule_panel_redraw();
|
||||
pango_font_description_free(panel_config.taskbarname_font_desc);
|
||||
panel_config.taskbarname_font_desc = NULL;
|
||||
taskbarname_init_fonts();
|
||||
for (int i = 0; i < num_panels; i++) {
|
||||
for (int j = 0; j < panels[i].num_desktops; j++) {
|
||||
Taskbar *taskbar = &panels[i].taskbar[j];
|
||||
taskbar->bar_name.area.resize_needed = TRUE;
|
||||
schedule_redraw(&taskbar->bar_name.area);
|
||||
}
|
||||
}
|
||||
schedule_panel_redraw();
|
||||
}
|
||||
|
||||
void cleanup_taskbarname()
|
||||
{
|
||||
for (int i = 0; i < num_panels; i++) {
|
||||
Panel *panel = &panels[i];
|
||||
for (int j = 0; j < panel->num_desktops; j++) {
|
||||
Taskbar *taskbar = &panel->taskbar[j];
|
||||
g_free(taskbar->bar_name.name);
|
||||
taskbar->bar_name.name = NULL;
|
||||
free_area(&taskbar->bar_name.area);
|
||||
remove_area((Area *)&taskbar->bar_name);
|
||||
}
|
||||
}
|
||||
for (int i = 0; i < num_panels; i++) {
|
||||
Panel *panel = &panels[i];
|
||||
for (int j = 0; j < panel->num_desktops; j++) {
|
||||
Taskbar *taskbar = &panel->taskbar[j];
|
||||
g_free(taskbar->bar_name.name);
|
||||
taskbar->bar_name.name = NULL;
|
||||
free_area(&taskbar->bar_name.area);
|
||||
remove_area((Area *)&taskbar->bar_name);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
int taskbarname_compute_desired_size(void *obj)
|
||||
{
|
||||
TaskbarName *taskbar_name = (TaskbarName *)obj;
|
||||
Panel *panel = (Panel *)taskbar_name->area.panel;
|
||||
int name_height, name_width, name_height_ink;
|
||||
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,
|
||||
FALSE);
|
||||
TaskbarName *taskbar_name = (TaskbarName *)obj;
|
||||
Panel *panel = (Panel *)taskbar_name->area.panel;
|
||||
int name_height, name_width, name_height_ink;
|
||||
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,
|
||||
FALSE);
|
||||
|
||||
if (panel_horizontal) {
|
||||
return name_width + 2 * taskbar_name->area.paddingxlr + left_right_border_width(&taskbar_name->area);
|
||||
} else {
|
||||
return name_height + 2 * taskbar_name->area.paddingxlr + top_bottom_border_width(&taskbar_name->area);
|
||||
}
|
||||
if (panel_horizontal) {
|
||||
return name_width + 2 * taskbar_name->area.paddingxlr + left_right_border_width(&taskbar_name->area);
|
||||
} else {
|
||||
return name_height + 2 * taskbar_name->area.paddingxlr + top_bottom_border_width(&taskbar_name->area);
|
||||
}
|
||||
}
|
||||
|
||||
gboolean resize_taskbarname(void *obj)
|
||||
{
|
||||
TaskbarName *taskbar_name = (TaskbarName *)obj;
|
||||
Panel *panel = (Panel *)taskbar_name->area.panel;
|
||||
TaskbarName *taskbar_name = (TaskbarName *)obj;
|
||||
Panel *panel = (Panel *)taskbar_name->area.panel;
|
||||
|
||||
schedule_redraw(&taskbar_name->area);
|
||||
schedule_redraw(&taskbar_name->area);
|
||||
|
||||
int name_height, name_width, name_height_ink;
|
||||
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,
|
||||
FALSE);
|
||||
int name_height, name_width, name_height_ink;
|
||||
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,
|
||||
FALSE);
|
||||
|
||||
gboolean result = FALSE;
|
||||
int new_size = taskbarname_compute_desired_size(obj);
|
||||
if (panel_horizontal) {
|
||||
if (new_size != taskbar_name->area.width) {
|
||||
taskbar_name->area.width = new_size;
|
||||
taskbar_name->posy = (taskbar_name->area.height - name_height) / 2;
|
||||
result = TRUE;
|
||||
}
|
||||
} else {
|
||||
if (new_size != taskbar_name->area.height) {
|
||||
taskbar_name->area.height = new_size;
|
||||
taskbar_name->posy = (taskbar_name->area.height - name_height) / 2;
|
||||
result = TRUE;
|
||||
}
|
||||
}
|
||||
return result;
|
||||
gboolean result = FALSE;
|
||||
int new_size = taskbarname_compute_desired_size(obj);
|
||||
if (panel_horizontal) {
|
||||
if (new_size != taskbar_name->area.width) {
|
||||
taskbar_name->area.width = new_size;
|
||||
taskbar_name->posy = (taskbar_name->area.height - name_height) / 2;
|
||||
result = TRUE;
|
||||
}
|
||||
} else {
|
||||
if (new_size != taskbar_name->area.height) {
|
||||
taskbar_name->area.height = new_size;
|
||||
taskbar_name->posy = (taskbar_name->area.height - name_height) / 2;
|
||||
result = TRUE;
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
void draw_taskbarname(void *obj, cairo_t *c)
|
||||
{
|
||||
TaskbarName *taskbar_name = obj;
|
||||
Taskbar *taskbar = taskbar_name->area.parent;
|
||||
Color *config_text = (taskbar->desktop == server.desktop) ? &taskbarname_active_font : &taskbarname_font;
|
||||
TaskbarName *taskbar_name = obj;
|
||||
Taskbar *taskbar = taskbar_name->area.parent;
|
||||
Color *config_text = (taskbar->desktop == server.desktop) ? &taskbarname_active_font : &taskbarname_font;
|
||||
|
||||
// draw content
|
||||
PangoLayout *layout = pango_cairo_create_layout(c);
|
||||
pango_layout_set_font_description(layout, panel_config.taskbarname_font_desc);
|
||||
pango_layout_set_width(layout, taskbar_name->area.width * PANGO_SCALE);
|
||||
pango_layout_set_alignment(layout, PANGO_ALIGN_CENTER);
|
||||
pango_layout_set_wrap(layout, PANGO_WRAP_WORD_CHAR);
|
||||
pango_layout_set_ellipsize(layout, PANGO_ELLIPSIZE_NONE);
|
||||
pango_layout_set_text(layout, taskbar_name->name, strlen(taskbar_name->name));
|
||||
// draw content
|
||||
PangoLayout *layout = pango_cairo_create_layout(c);
|
||||
pango_layout_set_font_description(layout, panel_config.taskbarname_font_desc);
|
||||
pango_layout_set_width(layout, taskbar_name->area.width * PANGO_SCALE);
|
||||
pango_layout_set_alignment(layout, PANGO_ALIGN_CENTER);
|
||||
pango_layout_set_wrap(layout, PANGO_WRAP_WORD_CHAR);
|
||||
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->rgb[0], config_text->rgb[1], config_text->rgb[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);
|
||||
pango_cairo_update_layout(c, layout);
|
||||
draw_text(layout, c, 0, taskbar_name->posy, config_text, ((Panel *)taskbar_name->area.panel)->font_shadow);
|
||||
|
||||
g_object_unref(layout);
|
||||
g_object_unref(layout);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user