- nice config for thumbnailing. Needs config dialog.

- event for theme change.


SVN revision: 29381
This commit is contained in:
Sebastian Dransfeld 2007-04-05 17:20:09 +00:00
parent 260d229f07
commit 8e1c36d005
6 changed files with 60 additions and 11 deletions

View File

@ -45,6 +45,7 @@ static int _e_border_cb_window_move_resize_request(void *data, int ev_type, void
static int _e_border_cb_desktop_change(void *data, int ev_type, void *ev);
static int _e_border_cb_sync_alarm(void *data, int ev_type, void *ev);
static int _e_border_cb_util_desktop_list_change(void *data, int ev_type, void *ev);
static int _e_border_cb_config_icon_theme(void *data, int ev_type, void *ev);
static int _e_border_cb_pointer_warp(void *data, int ev_type, void *ev);
static void _e_border_cb_signal_bind(void *data, Evas_Object *obj, const char *emission, const char *source);
@ -170,6 +171,7 @@ e_border_init(void)
handlers = evas_list_append(handlers, ecore_event_handler_add(E_EVENT_POINTER_WARP, _e_border_cb_pointer_warp, NULL));
handlers = evas_list_append(handlers, ecore_event_handler_add(EFREET_EVENT_UTIL_DESKTOP_LIST_CHANGE, _e_border_cb_util_desktop_list_change, NULL));
handlers = evas_list_append(handlers, ecore_event_handler_add(E_EVENT_CONFIG_ICON_THEME, _e_border_cb_config_icon_theme, NULL));
E_EVENT_BORDER_ADD = ecore_event_type_new();
E_EVENT_BORDER_REMOVE = ecore_event_type_new();
@ -4292,6 +4294,23 @@ _e_border_cb_util_desktop_list_change(void *data, int ev_type, void *ev)
return 1;
}
static int
_e_border_cb_config_icon_theme(void *data, int ev_type, void *ev)
{
Evas_List *l;
/* mark all borders for desktop/icon updates */
for (l = borders; l; l = l->next)
{
E_Border *bd;
bd = l->data;
bd->changes.icon = 1;
bd->changed = 1;
}
return 1;
}
/* FIXME:
* Using '2' is bad, may change in zone flip code.
* Calculate pos from e->x and e->y

View File

@ -41,10 +41,14 @@ static E_Config_DD *_e_config_gadcon_client_edd = NULL;
static E_Config_DD *_e_config_shelf_edd = NULL;
static E_Config_DD *_e_config_mime_icon_edd = NULL;
EAPI int E_EVENT_CONFIG_ICON_THEME = 0;
/* externally accessible functions */
EAPI int
e_config_init(void)
{
E_EVENT_CONFIG_ICON_THEME = ecore_event_type_new();
_e_config_profile = getenv("E_CONF_PROFILE");
if (!_e_config_profile)
{
@ -542,6 +546,8 @@ e_config_init(void)
E_CONFIG_LIST(D, T, mime_icons, _e_config_mime_icon_edd); /**/
E_CONFIG_VAL(D, T, desk_auto_switch, INT);
E_CONFIG_VAL(D, T, thumb_nice, INT);
e_config = e_config_domain_load("e", _e_config_edd);
if (e_config)
@ -1362,6 +1368,10 @@ e_config_init(void)
e_config->clientlist_max_caption_len = 0;
IFCFGEND;
IFCFG(0x114)
e_config->thumb_nice = 0;
IFCFGEND;
e_config->config_version = E_CONFIG_FILE_VERSION;
#if 0 /* example of new config */

View File

@ -39,6 +39,8 @@ typedef struct _E_Config_Gadcon_Client E_Config_Gadcon_Client;
typedef struct _E_Config_Shelf E_Config_Shelf;
typedef struct _E_Config_Mime_Icon E_Config_Mime_Icon;
typedef struct _E_Event_Config_Icon_Theme E_Event_Config_Icon_Theme;
typedef Eet_Data_Descriptor E_Config_DD;
#else
@ -52,7 +54,7 @@ typedef Eet_Data_Descriptor E_Config_DD;
/* increment this whenever a new set of config values are added but the users
* config doesn't need to be wiped - simply new values need to be put in
*/
#define E_CONFIG_FILE_GENERATION 0x0113
#define E_CONFIG_FILE_GENERATION 0x0114
#define E_CONFIG_FILE_VERSION ((E_CONFIG_FILE_EPOCH << 16) | E_CONFIG_FILE_GENERATION)
#define E_EVAS_ENGINE_DEFAULT 0
@ -288,6 +290,8 @@ struct _E_Config
Evas_List *mime_icons; // GUI
int desk_auto_switch; // GUI;
int thumb_nice;
};
struct _E_Config_Module
@ -405,6 +409,11 @@ struct _E_Config_Mime_Icon
const char *icon;
};
struct _E_Event_Config_Icon_Theme
{
const char *icon_theme;
};
EAPI int e_config_init(void);
EAPI int e_config_shutdown(void);
@ -436,5 +445,7 @@ EAPI E_Config_Binding_Wheel *e_config_binding_wheel_match(E_Config_Binding_Whee
extern EAPI E_Config *e_config;
extern EAPI int E_EVENT_CONFIG_ICON_THEME;
#endif
#endif

View File

@ -99,16 +99,18 @@ _free_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata)
static int
_basic_apply_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata)
{
E_Action *a;
E_Event_Config_Icon_Theme *ev;
/* Actually take our cfdata settings and apply them in real life */
e_config->icon_theme = evas_stringshare_add(cfdata->themename);
e_config_save_queue();
/* If it's good enough for themes, it's good enough for icon themes, but ICK!. */
a = e_action_find("restart");
if ((a) && (a->func.go)) a->func.go(NULL, NULL);
ev = E_NEW(E_Event_Config_Icon_Theme, 1);
if (ev)
{
ev->icon_theme = e_config->icon_theme;
ecore_event_add(E_EVENT_CONFIG_ICON_THEME, ev, NULL, NULL);
}
return 1; /* Apply was OK */
}

View File

@ -134,7 +134,8 @@ e_thumb_icon_begin(Evas_Object *obj)
{
Ecore_Exe *exe;
snprintf(buf, sizeof(buf), "%s/enlightenment_thumb", e_prefix_bin_get());
snprintf(buf, sizeof(buf), "%s/enlightenment_thumb --nice=%d", e_prefix_bin_get(),
e_config->thumb_nice);
exe = ecore_exe_run(buf, NULL);
_thumbnailers_exe = evas_list_append(_thumbnailers_exe, exe);
}

View File

@ -44,13 +44,12 @@ static char _thumbdir[4096] = "";
int
main(int argc, char **argv)
{
// char buf[4096];
int i;
/* FIXME: make this configurable */
// nice(20);
for (i = 1; i < argc; i++)
{
printf("arg: %d - '%s'\n", strlen(argv[i]), argv[i]);
printf("hm: %d\n", (!strncmp(argv[i], "--nice=", 7)));
if ((!strcmp(argv[i], "-h")) ||
(!strcmp(argv[i], "-help")) ||
(!strcmp(argv[i], "--help")))
@ -61,6 +60,14 @@ main(int argc, char **argv)
);
exit(0);
}
else if (!strncmp(argv[i], "--nice=", 7))
{
const char *val;
val = argv[i] + 7;
if (*val)
nice(atoi(val));
}
}
ecore_init();
@ -359,7 +366,6 @@ _e_thumb_generate(E_Thumb *eth)
ecore_ipc_server_send(_e_ipc_server, 5, 2, eth->objid, 0, 0, buf, strlen(buf) + 1);
}
/* FIXME: should use md5 or sha1 sum of the path */
static char *
_e_thumb_file_id(char *file, char *key)
{