cedric's patches.

SVN revision: 29353
This commit is contained in:
Carsten Haitzler 2007-04-04 13:25:55 +00:00
parent ba94614313
commit 104a847300
5 changed files with 42 additions and 1 deletions

View File

@ -511,6 +511,7 @@ e_config_init(void)
E_CONFIG_VAL(D, T, clientlist_sort_by, INT);
E_CONFIG_VAL(D, T, clientlist_separate_iconified_apps, INT);
E_CONFIG_VAL(D, T, clientlist_warp_to_iconified_desktop, INT);
E_CONFIG_VAL(D, T, clientlist_max_caption_len, INT);
E_CONFIG_VAL(D, T, mouse_accel_numerator, INT);
E_CONFIG_VAL(D, T, mouse_accel_denominator, INT);
@ -1357,6 +1358,10 @@ e_config_init(void)
if (!e_config->icon_theme) e_config->icon_theme = evas_stringshare_add("hicolor");
IFCFG(0x111)
e_config->clientlist_max_caption_len = 0;
IFCFGEND;
e_config->config_version = E_CONFIG_FILE_VERSION;
#if 0 /* example of new config */
@ -1475,6 +1480,7 @@ e_config_init(void)
E_CONFIG_LIMIT(e_config->clientlist_sort_by, 0, 3);
E_CONFIG_LIMIT(e_config->clientlist_separate_iconified_apps, 0, 2);
E_CONFIG_LIMIT(e_config->clientlist_warp_to_iconified_desktop, 0, 1);
E_CONFIG_LIMIT(e_config->clientlist_max_caption_len, 0, E_CLIENTLIST_MAX_CAPTION_LEN);
E_CONFIG_LIMIT(e_config->mouse_accel_numerator, 1, 10);
E_CONFIG_LIMIT(e_config->mouse_accel_denominator, 1, 10);

View File

@ -253,6 +253,7 @@ struct _E_Config
int clientlist_sort_by; // GUI
int clientlist_separate_iconified_apps; // GUI
int clientlist_warp_to_iconified_desktop; // GUI
int clientlist_max_caption_len;
int mouse_accel_numerator; // GUI
int mouse_accel_denominator; // GUI

View File

@ -17,6 +17,7 @@ struct _E_Config_Dialog_Data
int sort_by;
int separate_iconified_apps;
int warp_to_iconified_desktop;
int max_caption_len;
};
EAPI E_Config_Dialog *
@ -50,6 +51,7 @@ _fill_data(E_Config_Dialog_Data *cfdata)
cfdata->sort_by = e_config->clientlist_sort_by;
cfdata->separate_iconified_apps = e_config->clientlist_separate_iconified_apps;
cfdata->warp_to_iconified_desktop = e_config->clientlist_warp_to_iconified_desktop;
cfdata->max_caption_len = e_config->clientlist_max_caption_len;
}
static void *
@ -77,6 +79,7 @@ _basic_apply_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata)
e_config->clientlist_sort_by = cfdata->sort_by;
e_config->clientlist_separate_iconified_apps = cfdata->separate_iconified_apps;
e_config->clientlist_warp_to_iconified_desktop = cfdata->warp_to_iconified_desktop;
e_config->clientlist_max_caption_len = cfdata->max_caption_len;
e_config_save_queue();
return 1;
}
@ -137,6 +140,11 @@ _basic_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cf
e_widget_framelist_object_append(of, ob);
e_widget_table_object_append(ot, of, 1, 1, 1, 1, 1, 1, 1, 1);
of = e_widget_framelist_add(evas, _("Maximum Caption Length"), 0);
ob = e_widget_slider_add(evas, 1, 0, _("%1.0f Chars"), 0.0, E_CLIENTLIST_MAX_CAPTION_LEN, 2.0, 0, NULL, &(cfdata->max_caption_len), 200);
e_widget_framelist_object_append(of, ob);
e_widget_table_object_append(ot, of, 0, 2, 2, 1, 1, 1, 1, 0);
e_widget_list_object_append(o, ot, 1, 1, 0.5);
return o;

View File

@ -20,6 +20,8 @@
#define E_CLIENTLIST_GROUPICONS_CURRENT 1
#define E_CLIENTLIST_GROUPICONS_SEP 2
#define E_CLIENTLIST_MAX_CAPTION_LEN 256
EAPI E_Config_Dialog *e_int_config_clientlist(E_Container *con);
#endif

View File

@ -55,6 +55,7 @@ static void _e_int_menus_clients_add_by_class (Evas_List *borders, E_Menu *m);
static void _e_int_menus_clients_add_by_desk (E_Desk *curr_desk, Evas_List *borders, E_Menu *m);
static void _e_int_menus_clients_add_by_none (Evas_List *borders, E_Menu *m);
static void _e_int_menus_clients_menu_add_iconified (Evas_List *borders, E_Menu *m);
static const char *_e_int_menus_clients_title_abbrv (const char *title);
static void _e_int_menus_virtuals_pre_cb (void *data, E_Menu *m);
static void _e_int_menus_virtuals_item_cb (void *data, E_Menu *m, E_Menu_Item *mi);
static void _e_int_menus_themes_about (void *data, E_Menu *m, E_Menu_Item *mi);
@ -1250,13 +1251,36 @@ _e_int_menus_clients_pre_cb(void *data, E_Menu *m)
e_object_data_set(E_OBJECT(m), borders);
}
static const char *
_e_int_menus_clients_title_abbrv(const char *title)
{
char *abbv, *left, *right;
int max_len;
max_len = e_config->clientlist_max_caption_len;
if ((max_len != 0) && (strlen(title) > max_len))
{
abbv = calloc(E_CLIENTLIST_MAX_CAPTION_LEN+4, sizeof(char));
left = title;
right = title + (strlen(title) - (max_len/2));
strncpy(abbv, left, max_len/2);
strncat(abbv, "...", 3);
strncat(abbv, right, max_len/2);
return abbv;
}
else
return title;
}
static void
_e_int_menus_clients_item_create(E_Border *bd, E_Menu *m)
{
E_Menu_Item *mi;
const char *title;
title = e_border_name_get(bd);
title = _e_int_menus_clients_title_abbrv(e_border_name_get(bd));
mi = e_menu_item_new(m);
e_menu_item_check_set(mi, 1);
if ((title) && (title[0]))