Cleanup. Add e_config_save_queue()

SVN revision: 13284
This commit is contained in:
sebastid 2005-02-10 12:03:09 +00:00 committed by sebastid
parent f7cece5c47
commit ffe474dccc
2 changed files with 39 additions and 24 deletions

View File

@ -5,11 +5,7 @@
#include "e_mod_main.h"
/* TODO
* save config
*
* which options should be in main menu, and which in face menu?
* abort whole module if one alloc fails? We're screwed if....
* more NULL checks?
*/
/* module private routines */
@ -18,7 +14,7 @@ static void _pager_shutdown(Pager *pager);
static void _pager_config_menu_new(Pager *pager);
static Pager_Face *_pager_face_new(E_Zone *zone);
static void _pager_face_del(Pager_Face *face);
static void _pager_face_free(Pager_Face *face);
static void _pager_face_menu_new(Pager_Face *face);
static void _pager_face_enable(Pager_Face *face);
static void _pager_face_disable(Pager_Face *face);
@ -26,9 +22,9 @@ static void _pager_face_zone_set(Pager_Face *face, E_Zone *zone);
static void _pager_face_zone_leave(Pager_Face *face);
static Pager_Desk *_pager_desk_new(Pager_Face *face, E_Desk *desk, int x, int y);
static void _pager_desk_del(Pager_Desk *desk);
static void _pager_desk_free(Pager_Desk *desk);
static Pager_Win *_pager_window_new(Pager_Desk *desk, E_Border *border);
static void _pager_window_del(Pager_Win *win);
static void _pager_window_free(Pager_Win *win);
static void _pager_face_draw(Pager_Face *face);
static void _pager_window_move(Pager_Face *face, Pager_Win *win);
@ -189,6 +185,7 @@ _pager_init()
mn = e_menu_new();
e_menu_item_submenu_set(mi, mn);
pager->menus = evas_list_append(pager->menus, mn);
for (l3 = con->zones; l3; l3 = l3->next)
{
@ -215,6 +212,7 @@ _pager_init()
}
/* Menu */
/* This menu must be initialized after conf */
_pager_face_menu_new(face);
mi = e_menu_item_new(mn);
@ -237,18 +235,18 @@ _pager_shutdown(Pager *pager)
Evas_List *list;
for (list = pager->faces; list; list = list->next)
_pager_face_del(list->data);
_pager_face_free(list->data);
evas_list_free(pager->faces);
e_object_del(E_OBJECT(pager->config_menu));
for (list = pager->conf->faces; list; list = list->next)
free(list->data);
free(pager->conf);
for (list = pager->menus; list; list = list->next)
e_object_del(E_OBJECT(list->data));
evas_list_free(pager->menus);
e_object_del(E_OBJECT(pager->config_menu));
E_CONFIG_DD_FREE(_conf_edd);
E_CONFIG_DD_FREE(_conf_face_edd);
free(pager->conf);
free(pager);
}
@ -333,7 +331,7 @@ _pager_face_new(E_Zone *zone)
}
void
_pager_face_del(Pager_Face *face)
_pager_face_free(Pager_Face *face)
{
if (face->base) evas_object_del(face->base);
if (face->screen) evas_object_del(face->screen);
@ -352,6 +350,7 @@ _pager_face_del(Pager_Face *face)
e_object_del(E_OBJECT(face->menu));
free(face->conf);
free(face);
_pager_count--;
}
@ -459,6 +458,7 @@ _pager_face_enable(Pager_Face *face)
}
}
}
e_config_save_queue();
}
static void
@ -488,6 +488,7 @@ _pager_face_disable(Pager_Face *face)
}
}
}
e_config_save_queue();
}
static void
@ -511,7 +512,8 @@ _pager_face_zone_set(Pager_Face *face, E_Zone *zone)
desk = e_desk_at_xy_get(zone, x, y);
pd = _pager_desk_new(face, desk, x, y);
face->desks = evas_list_append(face->desks, pd);
if (pd)
face->desks = evas_list_append(face->desks, pd);
}
evas_object_resize(face->base, face->fw * face->xnum, face->fh * face->ynum);
}
@ -523,7 +525,7 @@ _pager_face_zone_leave(Pager_Face *face)
e_object_unref(E_OBJECT(face->zone));
for (list = face->desks; list; list = list->next)
_pager_desk_del(list->data);
_pager_desk_free(list->data);
evas_list_free(face->desks);
}
@ -540,6 +542,8 @@ _pager_desk_new(Pager_Face *face, E_Desk *desk, int xpos, int ypos)
Evas_List *wins;
pd = E_NEW(Pager_Desk, 1);
if (!pd) return NULL;
pd->xpos = xpos;
pd->ypos = ypos;
@ -579,15 +583,16 @@ _pager_desk_new(Pager_Face *face, E_Desk *desk, int xpos, int ypos)
continue;
}
pw = _pager_window_new(pd, win);
if (pw)
pd->wins = evas_list_append(pd->wins, pw);
pd->wins = evas_list_append(pd->wins, pw);
wins = wins->next;
}
return pd;
}
static void
_pager_desk_del(Pager_Desk *desk)
_pager_desk_free(Pager_Desk *desk)
{
Evas_List *list;
@ -595,7 +600,7 @@ _pager_desk_del(Pager_Desk *desk)
e_object_unref(E_OBJECT(desk->desk));
for (list = desk->wins; list; list = list->next)
_pager_window_del(list->data);
_pager_window_free(list->data);
evas_list_free(desk->wins);
free(desk);
}
@ -613,6 +618,8 @@ _pager_window_new(Pager_Desk *desk, E_Border *border)
scaley = (double)desk->face->fy / (double)desk->face->zone->h;
win = E_NEW(Pager_Win, 1);
if (!win) return NULL;
win->border = border;
e_object_ref(E_OBJECT(border));
visible = !border->iconic;
@ -645,7 +652,7 @@ _pager_window_new(Pager_Desk *desk, E_Border *border)
}
static void
_pager_window_del(Pager_Win *win)
_pager_window_free(Pager_Win *win)
{
if (win->obj) evas_object_del(win->obj);
if (win->icon) evas_object_del(win->icon);
@ -899,7 +906,8 @@ _pager_face_cb_event_border_add(void *data, int type, void *event)
if ((desk = _pager_desk_find(face, ev->border->desk)))
{
win = _pager_window_new(desk, ev->border);
desk->wins = evas_list_append(desk->wins, win);
if (win)
desk->wins = evas_list_append(desk->wins, win);
}
else
{
@ -924,7 +932,7 @@ _pager_face_cb_event_border_remove(void *data, int type, void *event)
if (old && desk)
{
desk->wins = evas_list_remove(desk->wins, old);
_pager_window_del(old);
_pager_window_free(old);
}
return 1;
}
@ -1056,7 +1064,8 @@ _pager_face_cb_event_zone_desk_count_set(void *data, int type, void *event)
/* Add desk */
desk = e_desk_at_xy_get(ev->zone, x, y);
pd = _pager_desk_new(face, desk, x, y);
face->desks = evas_list_append(face->desks, pd);
if (pd)
face->desks = evas_list_append(face->desks, pd);
}
else if ((x >= desks_x) || (y >= desks_y))
{
@ -1074,7 +1083,7 @@ _pager_face_cb_event_zone_desk_count_set(void *data, int type, void *event)
new->current = 1;
}
face->desks = evas_list_remove(face->desks, pd);
_pager_desk_del(pd);
_pager_desk_free(pd);
}
}
}
@ -1120,6 +1129,7 @@ _pager_face_cb_menu_scale(void *data, E_Menu *m, E_Menu_Item *mi)
face->conf->scale = e_menu_item_toggle_get(mi);
e_menu_item_toggle_set(mi, face->conf->scale);
e_config_save_queue();
}
static void
@ -1129,6 +1139,7 @@ _pager_face_cb_menu_resize_none(void *data, E_Menu *m, E_Menu_Item *mi)
face = data;
face->conf->resize = PAGER_RESIZE_NONE;
e_config_save_queue();
}
static void
@ -1138,6 +1149,7 @@ _pager_face_cb_menu_resize_horz(void *data, E_Menu *m, E_Menu_Item *mi)
face = data;
face->conf->resize = PAGER_RESIZE_HORZ;
e_config_save_queue();
}
static void
@ -1147,6 +1159,7 @@ _pager_face_cb_menu_resize_vert(void *data, E_Menu *m, E_Menu_Item *mi)
face = data;
face->conf->resize = PAGER_RESIZE_VERT;
e_config_save_queue();
}
static void
@ -1156,6 +1169,7 @@ _pager_face_cb_menu_resize_both(void *data, E_Menu *m, E_Menu_Item *mi)
face = data;
face->conf->resize = PAGER_RESIZE_BOTH;
e_config_save_queue();
}
static void

View File

@ -35,6 +35,7 @@ struct _Pager
{
Evas_List *faces;
E_Menu *config_menu;
Evas_List *menus;
Config *conf;
};