示例#1
0
文件: area.c 项目: alaricljs/tint2
void initialize_positions(void *obj, int offset)
{
	Area *a = (Area *)obj;
	for (GList *l = a->children; l; l = l->next) {
		Area *child = ((Area *)l->data);
		if (panel_horizontal) {
			child->posy = offset + a->bg->border.width + a->paddingy;
			child->height = a->height - (2 * (a->bg->border.width + a->paddingy));
			if (child->_on_change_layout)
				child->_on_change_layout(child);
			initialize_positions(child, child->posy);
		} else {
			child->posx = offset + a->bg->border.width + a->paddingy;
			child->width = a->width - (2 * (a->bg->border.width + a->paddingy));
			if (child->_on_change_layout)
				child->_on_change_layout(child);
			initialize_positions(child, child->posx);
		}
	}
}
示例#2
0
文件: panel.c 项目: o9000/tint2
void set_panel_items_order(Panel *p)
{
	if (p->area.children) {
		g_list_free(p->area.children);
		p->area.children = 0;
	}

	int i_execp = 0;
	int i_separator = 0;
	int i_freespace = 0;
	for (int k = 0; k < strlen(panel_items_order); k++) {
		if (panel_items_order[k] == 'L') {
			p->area.children = g_list_append(p->area.children, &p->launcher);
			p->launcher.area.resize_needed = 1;
		}
		if (panel_items_order[k] == 'T') {
			for (int j = 0; j < p->num_desktops; j++)
				p->area.children = g_list_append(p->area.children, &p->taskbar[j]);
		}
#ifdef ENABLE_BATTERY
		if (panel_items_order[k] == 'B')
			p->area.children = g_list_append(p->area.children, &p->battery);
#endif
		int i = p - panels;
		if (panel_items_order[k] == 'S' && systray_on_monitor(i, num_panels)) {
			p->area.children = g_list_append(p->area.children, &systray);
		}
		if (panel_items_order[k] == 'C')
			p->area.children = g_list_append(p->area.children, &p->clock);
		if (panel_items_order[k] == 'F') {
			GList *item = g_list_nth(p->freespace_list, i_freespace);
			i_freespace++;
			if (item)
				p->area.children = g_list_append(p->area.children, (Area *)item->data);
		}
		if (panel_items_order[k] == ':') {
			GList *item = g_list_nth(p->separator_list, i_separator);
			i_separator++;
			if (item)
				p->area.children = g_list_append(p->area.children, (Area *)item->data);
		}
		if (panel_items_order[k] == 'E') {
			GList *item = g_list_nth(p->execp_list, i_execp);
			i_execp++;
			if (item)
				p->area.children = g_list_append(p->area.children, (Area *)item->data);
		}
	}
	initialize_positions(&p->area, 0);
}