ASPARAGUS!

SVN revision: 30379
This commit is contained in:
Carsten Haitzler 2007-06-17 15:25:52 +00:00
parent b184f0e1f5
commit b07a851c65
19 changed files with 16678 additions and 16293 deletions

View File

@ -5,7 +5,7 @@ AC_INIT(configure.in)
AC_CANONICAL_BUILD
AC_CANONICAL_HOST
AC_ISC_POSIX
AM_INIT_AUTOMAKE(enlightenment, 0.16.999.038)
AM_INIT_AUTOMAKE(enlightenment, 0.16.999.039)
AM_CONFIG_HEADER(config.h)
AC_C_BIGENDIAN

View File

@ -78,6 +78,7 @@ e17_button_detail_stick.png \
e17_button_detail_view.png \
e17_button_detail_view_details.png \
e17_button_detail_view_name.png \
e17_button_detail_select.png \
e17_button_sm.png \
e17_button_sm2.png \
e17_button_sm_disabled.png \

View File

@ -73,8 +73,6 @@ src/bin/e_widget_config_list.c
src/bin/e_widget_fsel.c
src/bin/e_winlist.c
src/bin/e_utils.c
src/bin/e_int_config_apps_menu.c
src/bin/e_int_config_apps_order.c
src/bin/e_int_config_modules.c
src/bin/e_exec.c
src/bin/e_entry.c

2133
po/bg.po

File diff suppressed because it is too large Load Diff

3608
po/ca.po

File diff suppressed because it is too large Load Diff

2022
po/de.po

File diff suppressed because it is too large Load Diff

2119
po/eo.po

File diff suppressed because it is too large Load Diff

3644
po/fr.po

File diff suppressed because it is too large Load Diff

1929
po/hu.po

File diff suppressed because it is too large Load Diff

8828
po/it.po

File diff suppressed because it is too large Load Diff

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Enlightenment DR17\n"
"Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n"
"POT-Creation-Date: 2007-06-12 17:59+0900\n"
"POT-Creation-Date: 2007-06-17 23:16+0900\n"
"PO-Revision-Date: 2007-06-12 23:12+0900\n"
"Last-Translator: Yasufumi Haga <yasufumi.haga@nifty.com>\n"
"Language-Team: E17-jp <LL@li.org>\n"
@ -58,14 +58,14 @@ msgstr "本当にこのウィンドウを強制終了しますか"
#: src/bin/e_actions.c:321 src/bin/e_actions.c:1609 src/bin/e_actions.c:1680
#: src/bin/e_actions.c:1739 src/bin/e_actions.c:1798 src/bin/e_actions.c:1857
#: src/bin/e_actions.c:1916 src/bin/e_confirm_dialog.c:47 src/bin/e_fm.c:5935
#: src/bin/e_actions.c:1916 src/bin/e_confirm_dialog.c:47 src/bin/e_fm.c:6710
#: src/bin/e_int_config_display.c:214 src/bin/e_module.c:455
msgid "Yes"
msgstr "はい"
#: src/bin/e_actions.c:323 src/bin/e_actions.c:1611 src/bin/e_actions.c:1682
#: src/bin/e_actions.c:1741 src/bin/e_actions.c:1800 src/bin/e_actions.c:1859
#: src/bin/e_actions.c:1918 src/bin/e_confirm_dialog.c:48 src/bin/e_fm.c:5936
#: src/bin/e_actions.c:1918 src/bin/e_confirm_dialog.c:48 src/bin/e_fm.c:6711
#: src/bin/e_int_config_display.c:215 src/bin/e_module.c:456
msgid "No"
msgstr "いいえ"
@ -158,7 +158,7 @@ msgid "Lower"
msgstr "下げる"
#: src/bin/e_actions.c:2037 src/bin/e_config_dialog.c:226
#: src/bin/e_configure.c:113 src/bin/e_fwin.c:1118
#: src/bin/e_configure.c:113 src/bin/e_fwin.c:1121
#: src/bin/e_int_border_menu.c:318 src/bin/e_int_border_prop.c:81
msgid "Close"
msgstr "閉じる"
@ -696,16 +696,15 @@ msgstr "アプリケーション"
msgid "New Application"
msgstr "新しいアプリケーション"
#: src/bin/e_configure.c:408 src/bin/e_int_config_apps_order.c:76
#: src/bin/e_int_config_apps_order.c:90
#: src/bin/e_configure.c:408
msgid "IBar Applications"
msgstr "IBarアプリケーション"
#: src/bin/e_configure.c:409 src/bin/e_int_config_apps_order.c:126
#: src/bin/e_configure.c:409
msgid "Restart Applications"
msgstr "再起動アプリケーション"
#: src/bin/e_configure.c:410 src/bin/e_int_config_apps_order.c:108
#: src/bin/e_configure.c:410
msgid "Startup Applications"
msgstr "スタートアップアプリケーション"
@ -766,7 +765,7 @@ msgstr "ウィンドウの動作"
msgid "Menus"
msgstr "メニュー"
#: src/bin/e_configure.c:430 src/bin/e_int_config_apps_menu.c:40
#: src/bin/e_configure.c:430
msgid "Favorites Menu"
msgstr "お気に入りメニュー"
@ -1331,73 +1330,81 @@ msgid ""
"should let you select your<br>modules again."
msgstr ""
#: src/bin/e_fm.c:2210
#: src/bin/e_fm.c:2107 src/bin/e_fm.c:2178
#, fuzzy, c-format
msgid "Unknown Data"
msgstr "不明"
#: src/bin/e_fm.c:2121 src/bin/e_fm.c:2192
msgid "Removable Device"
msgstr "着脱可能媒体"
#: src/bin/e_fm.c:2931
#, c-format
msgid "%i Files"
msgstr "ファイル数 %i"
#: src/bin/e_fm.c:5376 src/bin/e_fm.c:5518
#: src/bin/e_fm.c:6151 src/bin/e_fm.c:6293
msgid "Refresh View"
msgstr "内容を更新する"
#: src/bin/e_fm.c:5387 src/bin/e_fm.c:5529
#: src/bin/e_fm.c:6162 src/bin/e_fm.c:6304
msgid "Show Hidden Files"
msgstr "隠しファイルを表示する"
#: src/bin/e_fm.c:5402 src/bin/e_fm.c:5544
#: src/bin/e_fm.c:6177 src/bin/e_fm.c:6319
msgid "Remember Ordering"
msgstr "順序をを記憶する"
#: src/bin/e_fm.c:5414 src/bin/e_fm.c:5556
#: src/bin/e_fm.c:6189 src/bin/e_fm.c:6331
msgid "Sort Now"
msgstr "ただちにソートする"
#: src/bin/e_fm.c:5432 src/bin/e_fm.c:5574 src/bin/e_int_config_paths.c:210
#: src/bin/e_fm.c:6207 src/bin/e_fm.c:6349 src/bin/e_int_config_paths.c:210
msgid "New Directory"
msgstr "新しいディレクトリ"
#: src/bin/e_fm.c:5633 src/bin/e_int_config_shelf.c:83
#: src/bin/e_int_config_apps_menu.c:90 src/bin/e_int_config_apps_order.c:192
#: src/bin/e_entry.c:386 src/modules/ibar/e_mod_config.c:111
#: src/bin/e_fm.c:6408 src/bin/e_int_config_shelf.c:83 src/bin/e_entry.c:386
#: src/modules/ibar/e_mod_config.c:111
msgid "Delete"
msgstr "削除"
#: src/bin/e_fm.c:5644
#: src/bin/e_fm.c:6419
msgid "Rename"
msgstr "名前変更"
#: src/bin/e_fm.c:5654
#: src/bin/e_fm.c:6429
msgid "Properties"
msgstr "プロパティ"
#: src/bin/e_fm.c:5778
#: src/bin/e_fm.c:6553
msgid "Create a new Directory"
msgstr "ディレクトリを新規作成する"
#: src/bin/e_fm.c:5779
#: src/bin/e_fm.c:6554
msgid "New Directory Name:"
msgstr "新しいディレクトリ名"
#: src/bin/e_fm.c:5838
#: src/bin/e_fm.c:6613
#, c-format
msgid "Rename %s to:"
msgstr "名前を %s から変更:"
#: src/bin/e_fm.c:5840
#: src/bin/e_fm.c:6615
msgid "Rename File"
msgstr "ファイル名を変更する"
#
#: src/bin/e_fm.c:5938
#: src/bin/e_fm.c:6713
msgid "Confirm Delete"
msgstr "削除確認"
#: src/bin/e_fm.c:5942
#: src/bin/e_fm.c:6717
#, c-format
msgid "Are you sure you want to delete<br><hilight>%s</hilight> ?"
msgstr "以下を本当に削除しますか.<br><hilight>%s</hilight> ?"
#: src/bin/e_fm.c:5948
#: src/bin/e_fm.c:6723
#, c-format
msgid ""
"Are you sure you want to delete<br>the %d selected files in:<br><hilight>%s</"
@ -1406,10 +1413,6 @@ msgstr ""
"以下にある %d 個のファイルが選択されました.<br><hilight>%s</hilight><br>これ"
"らを本当に削除しますか?"
#: src/bin/e_fm.c:6394
msgid "Removable Device"
msgstr "着脱可能媒体"
#: src/bin/e_fm_prop.c:108
msgid "File Properties"
msgstr "ファイルプロパティ"
@ -1489,20 +1492,19 @@ msgstr "画像を選択する"
msgid "Go to Parent Directory"
msgstr "上のディレクトリへ移動"
#: src/bin/e_fwin.c:539 src/bin/e_fwin.c:1116
#: src/bin/e_fwin.c:539 src/bin/e_fwin.c:1119
msgid "Open"
msgstr "開く"
#: src/bin/e_fwin.c:546 src/bin/e_fwin.c:1114
#: src/bin/e_fwin.c:546 src/bin/e_fwin.c:1117
msgid "Open with..."
msgstr "開くツール..."
#: src/bin/e_fwin.c:1134
#: src/bin/e_fwin.c:1137
msgid "Specific Applications"
msgstr "アプリケーション"
#: src/bin/e_fwin.c:1156 src/bin/e_int_config_apps_menu.c:79
#: src/bin/e_int_config_apps_order.c:181
#: src/bin/e_fwin.c:1159
msgid "All Applications"
msgstr "全アプリケーション"
@ -5060,7 +5062,6 @@ msgid "Configured Shelves"
msgstr "利用可能なシェルフ"
#: src/bin/e_int_config_shelf.c:81 src/bin/e_widget_config_list.c:87
#: src/bin/e_int_config_apps_menu.c:86 src/bin/e_int_config_apps_order.c:188
#: src/modules/ibar/e_mod_config.c:109
msgid "Add"
msgstr "追加"
@ -6093,10 +6094,6 @@ msgstr "%li 時間前"
msgid "%li Minutes ago"
msgstr "%li 分前"
#: src/bin/e_int_config_apps_menu.c:95
msgid "Favorites"
msgstr "お気に入り"
#: src/bin/e_int_config_modules.c:65
msgid "Module Settings"
msgstr "モジュールの設定"
@ -6938,6 +6935,9 @@ msgstr ""
"Linux の <hilight>ACPI 温度センサー</hilight>を読みとるモジュールです.<br>大"
"量に発熱する高速 CPU を装備した最近のラップトップでは特に便利です."
#~ msgid "Favorites"
#~ msgstr "お気に入り"
#~ msgid "Window Frame"
#~ msgstr "ウィンドウフレーム"

2115
po/ko.po

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

1921
po/ru.po

File diff suppressed because it is too large Load Diff

1928
po/sl.po

File diff suppressed because it is too large Load Diff

View File

@ -1,320 +0,0 @@
#include "e.h"
/* TODO: This should be modified to handle any other fdo menu editing. */
static void *_create_data(E_Config_Dialog *cfd);
static void _free_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata);
static Evas_Object *_basic_create(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cfdata);
static int _basic_apply(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata);
static void _fill_apps(E_Config_Dialog_Data *cfdata);
static void _fill_list(E_Config_Dialog_Data *cfdata);
static void _apps_cb_selected(void *data);
static void _list_cb_selected(void *data);
static void _cb_add(void *data, void *data2);
static void _cb_del(void *data, void *data2);
static void _create_fav_menu(const char *path);
struct _E_Config_Dialog_Data
{
Evas_Object *o_apps, *o_list;
Evas_Object *o_add, *o_del;
Efreet_Menu *menu;
char *fav, *app;
};
EAPI E_Config_Dialog *
e_int_config_apps_favs(E_Container *con)
{
E_Config_Dialog *cfd;
E_Config_Dialog_View *v;
if (e_config_dialog_find("E", "_config_apps_favs_dialog")) return NULL;
v = E_NEW(E_Config_Dialog_View, 1);
v->create_cfdata = _create_data;
v->free_cfdata = _free_data;
v->basic.create_widgets = _basic_create;
v->basic.apply_cfdata = _basic_apply;
cfd = e_config_dialog_new(con, _("Favorites Menu"), "E",
"_config_apps_favs_dialog",
"enlightenment/favorites", 0, v, NULL);
return cfd;
}
/* Private Functions */
static void *
_create_data(E_Config_Dialog *cfd)
{
E_Config_Dialog_Data *cfdata;
char buf[4096];
cfdata = E_NEW(E_Config_Dialog_Data, 1);
snprintf(buf, sizeof(buf), "%s/.e/e/applications/menu/favorite.menu",
e_user_homedir_get());
cfdata->menu = efreet_menu_parse(buf);
if (!cfdata->menu)
{
_create_fav_menu(buf);
cfdata->menu = efreet_menu_parse(buf);
}
return cfdata;
}
static void
_free_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata)
{
if (cfdata->menu) efreet_menu_free(cfdata->menu);
E_FREE(cfdata);
}
static Evas_Object *
_basic_create(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cfdata)
{
Evas_Object *ot, *of, *ob;
ot = e_widget_table_add(evas, 0);
of = e_widget_framelist_add(evas, _("All Applications"), 0);
ob = e_widget_ilist_add(evas, 24, 24, &(cfdata->app));
cfdata->o_apps = ob;
_fill_apps(cfdata);
e_widget_framelist_object_append(of, ob);
e_widget_table_object_append(ot, of, 0, 0, 1, 4, 1, 1, 1, 1);
ob = e_widget_button_add(evas, _("Add"), "widget/add", _cb_add, cfdata, NULL);
cfdata->o_add = ob;
e_widget_disabled_set(ob, 1);
e_widget_table_object_append(ot, ob, 1, 1, 1, 1, 1, 0, 0, 0);
ob = e_widget_button_add(evas, _("Delete"), "widget/del", _cb_del, cfdata, NULL);
cfdata->o_del = ob;
e_widget_disabled_set(ob, 1);
e_widget_table_object_append(ot, ob, 1, 2, 1, 1, 1, 0, 0, 0);
of = e_widget_framelist_add(evas, _("Favorites"), 0);
ob = e_widget_ilist_add(evas, 24, 24, &(cfdata->fav));
cfdata->o_list = ob;
_fill_list(cfdata);
e_widget_framelist_object_append(of, ob);
e_widget_table_object_append(ot, of, 2, 0, 1, 4, 1, 1, 1, 1);
e_dialog_resizable_set(cfd->dia, 1);
return ot;
}
static int
_basic_apply(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata)
{
char buf[4096];
if (!cfdata->menu) return 1;
snprintf(buf, sizeof(buf), "%s/.e/e/applications/menu/favorite.menu",
e_user_homedir_get());
efreet_menu_save(cfdata->menu, buf);
return 1;
}
static void
_fill_apps(E_Config_Dialog_Data *cfdata)
{
Evas *evas;
Evas_Coord w;
Efreet_Menu *menu;
menu = efreet_menu_get();
if (!menu) return;
evas = evas_object_evas_get(cfdata->o_apps);
evas_event_freeze(evas);
edje_freeze();
e_widget_ilist_freeze(cfdata->o_apps);
if (menu->entries)
{
Efreet_Menu *entry;
ecore_list_goto_first(menu->entries);
while ((entry = ecore_list_next(menu->entries)))
{
Efreet_Menu *sub;
if (entry->type != EFREET_MENU_ENTRY_MENU) continue;
e_widget_ilist_header_append(cfdata->o_apps, NULL, entry->id);
if (!entry->entries) continue;
ecore_list_goto_first(entry->entries);
while ((sub = ecore_list_next(entry->entries)))
{
Evas_Object *icon = NULL;
if (sub->type != EFREET_MENU_ENTRY_DESKTOP) continue;
icon = e_util_icon_theme_icon_add(sub->icon, "24x24", evas);
e_widget_ilist_append(cfdata->o_apps, icon, sub->name,
_apps_cb_selected, cfdata,
sub->desktop->orig_path);
}
}
}
e_widget_ilist_go(cfdata->o_apps);
e_widget_min_size_get(cfdata->o_apps, &w, NULL);
e_widget_min_size_set(cfdata->o_apps, w, 200);
e_widget_ilist_thaw(cfdata->o_apps);
edje_thaw();
evas_event_thaw(evas);
efreet_menu_free(menu);
}
static void
_fill_list(E_Config_Dialog_Data *cfdata)
{
Evas *evas;
Evas_Coord w;
Efreet_Menu *menu, *entry;
menu = cfdata->menu;
if ((!menu) || (!menu->entries))
{
e_widget_min_size_set(cfdata->o_list, 200, 200);
return;
}
evas = evas_object_evas_get(cfdata->o_list);
evas_event_freeze(evas);
edje_freeze();
e_widget_ilist_freeze(cfdata->o_list);
ecore_list_goto_first(menu->entries);
while ((entry = ecore_list_next(menu->entries)))
{
Evas_Object *icon = NULL;
if (entry->type != EFREET_MENU_ENTRY_DESKTOP) continue;
icon = e_util_icon_theme_icon_add(entry->icon, "24x24", evas);
e_widget_ilist_append(cfdata->o_list, icon, entry->name,
_list_cb_selected, cfdata,
entry->desktop->orig_path);
}
e_widget_ilist_go(cfdata->o_list);
e_widget_min_size_get(cfdata->o_list, &w, NULL);
e_widget_min_size_set(cfdata->o_list, w, 200);
e_widget_ilist_thaw(cfdata->o_list);
edje_thaw();
evas_event_thaw(evas);
}
static void
_apps_cb_selected(void *data)
{
E_Config_Dialog_Data *cfdata;
cfdata = data;
e_widget_disabled_set(cfdata->o_add, 0);
}
static void
_list_cb_selected(void *data)
{
E_Config_Dialog_Data *cfdata;
cfdata = data;
e_widget_disabled_set(cfdata->o_del, 0);
}
static void
_cb_add(void *data, void *data2)
{
E_Config_Dialog_Data *cfdata;
Evas_Object *icon;
Efreet_Desktop *desk;
Evas *evas;
Evas_Coord w;
cfdata = data;
if (!cfdata->menu) return;
if (e_widget_ilist_selected_get(cfdata->o_apps) < 0) return;
desk = efreet_desktop_get(cfdata->app);
if (!desk) return;
evas = evas_object_evas_get(cfdata->o_list);
evas_event_freeze(evas);
edje_freeze();
e_widget_ilist_freeze(cfdata->o_list);
icon = e_util_desktop_icon_add(desk, "24x24", evas);
e_widget_ilist_append(cfdata->o_list, icon, desk->name,
_list_cb_selected, cfdata, cfdata->app);
e_widget_ilist_go(cfdata->o_list);
e_widget_min_size_get(cfdata->o_list, &w, NULL);
e_widget_min_size_set(cfdata->o_list, w, 200);
e_widget_ilist_thaw(cfdata->o_list);
edje_thaw();
evas_event_thaw(evas);
efreet_menu_desktop_insert(cfdata->menu, desk, -1);
}
static void
_cb_del(void *data, void *data2)
{
E_Config_Dialog_Data *cfdata;
Efreet_Desktop *desk;
Evas *evas;
Evas_Coord w;
int num;
cfdata = data;
if (!cfdata->menu) return;
num = e_widget_ilist_selected_get(cfdata->o_list);
if (num < 0) return;
evas = evas_object_evas_get(cfdata->o_list);
evas_event_freeze(evas);
edje_freeze();
e_widget_ilist_freeze(cfdata->o_list);
e_widget_ilist_remove_num(cfdata->o_list, num);
e_widget_ilist_go(cfdata->o_list);
e_widget_min_size_get(cfdata->o_list, &w, NULL);
e_widget_min_size_set(cfdata->o_list, w, 200);
e_widget_ilist_thaw(cfdata->o_list);
edje_thaw();
evas_event_thaw(evas);
desk = efreet_desktop_get(cfdata->fav);
if (!desk) return;
efreet_menu_desktop_remove(cfdata->menu, desk);
}
static void
_create_fav_menu(const char *path)
{
FILE *f;
if (ecore_file_exists(path)) return;
f = fopen(path, "w");
if (!f) return;
fprintf(f, "<?xml version=\"1.0\"?>\n");
fprintf(f, "<!DOCTYPE Menu PUBLIC \"-//freedesktop//DTD Menu 1.0//EN\" "
"\"http://standards.freedesktop.org/menu-spec/menu-1.0.dtd\">\n");
fprintf(f, "<Menu>\n");
fprintf(f, " <Name>Favorites</Name>\n");
fprintf(f, " <DefaultAppDirs/>\n");
fprintf(f, " <DefaultDirectoryDirs/>\n");
fprintf(f, " <Layout>\n");
fprintf(f, " <Filename>xterm.desktop</Filename>\n");
fprintf(f, " <Filename>firefox.desktop</Filename>\n");
fprintf(f, " <Filename>xmms.desktop</Filename>\n");
fprintf(f, " </Layout>\n");
fprintf(f, " <Include>\n");
fprintf(f, " <Filename>xterm.desktop</Filename>\n");
fprintf(f, " <Filename>firefox.desktop</Filename>\n");
fprintf(f, " <Filename>xmms.desktop</Filename>\n");
fprintf(f, " </Include>\n");
fprintf(f, "</Menu>\n");
fclose(f);
}

View File

@ -1,9 +0,0 @@
#ifdef E_TYPEDEFS
#else
#ifndef E_INT_CONFIG_APPS_H
#define E_INT_CONFIG_APPS_H
EAPI E_Config_Dialog *e_int_config_apps_favs(E_Container *con);
#endif
#endif

View File

@ -1,378 +0,0 @@
#include "e.h"
struct _E_Config_Dialog_Data
{
Evas_Object *o_apps, *o_list;
Evas_Object *o_add, *o_del;
char *list, *app;
};
typedef struct _E_Config_Once
{
const char *title;
const char *icon;
const char *dialog;
E_Order *order;
} E_Config_Once;
static E_Config_Dialog *_create_config_dialog(E_Container *con, E_Config_Once *once);
static void *_create_data(E_Config_Dialog *cfd);
static void _free_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata);
static Evas_Object *_basic_create(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cfdata);
static void _fill_apps(E_Config_Dialog_Data *cfdata);
static void _fill_list(E_Config_Once *once, E_Config_Dialog_Data *cfdata);
static void _apps_cb_selected(void *data);
static void _list_cb_selected(void *data);
static void _cb_add(void *data, void *data2);
static void _cb_del(void *data, void *data2);
EAPI E_Config_Dialog *
e_int_config_apps_add(E_Container *con)
{
E_Desktop_Edit *ed;
Efreet_Desktop *de = NULL;
char path[PATH_MAX];
const char *desktop_dir;
desktop_dir = e_user_desktop_dir_get();
if (desktop_dir)
{
int i;
for (i = 1; i < 65536; i++)
{
snprintf(path, sizeof(path), "%s/_new_app-%i.desktop",
desktop_dir, i);
if (!ecore_file_exists(path))
{
de = efreet_desktop_empty_new(path);
break;
}
}
if (!de)
{
snprintf(path, sizeof(path), "%s/_rename_me-%i.desktop",
desktop_dir, (int)ecore_time_get());
de = efreet_desktop_empty_new(NULL);
}
}
else
de = efreet_desktop_empty_new(NULL);
if (!de) return NULL;
ed = e_desktop_edit(con, de);
return (E_Config_Dialog *)ed;
}
EAPI E_Config_Dialog *
e_int_config_apps_ibar(E_Container *con)
{
E_Config_Once *once;
char buf[4096];
snprintf(buf, sizeof(buf), "%s/.e/e/applications/bar/default/.order",
e_user_homedir_get());
once = E_NEW(E_Config_Once, 1);
once->title = _("IBar Applications");
once->icon = "enlightenment/ibar_applications";
once->dialog = "_config_apps_ibar_dialog";
once->order = e_order_new(buf);
return _create_config_dialog(con, once);
}
EAPI E_Config_Dialog *
e_int_config_apps_ibar_other(E_Container *con, const char *path)
{
E_Config_Once *once;
once = E_NEW(E_Config_Once, 1);
once->title = _("IBar Applications");
once->icon = "enlightenment/ibar_applications";
once->dialog = "_config_apps_ibar_dialog";
once->order = e_order_new(path);
return _create_config_dialog(con, once);
}
EAPI E_Config_Dialog *
e_int_config_apps_startup(E_Container *con)
{
E_Config_Once *once;
char buf[4096];
snprintf(buf, sizeof(buf), "%s/.e/e/applications/startup/.order",
e_user_homedir_get());
once = E_NEW(E_Config_Once, 1);
once->title = _("Startup Applications");
once->icon = "enlightenment/startup_applications";
once->dialog = "_config_apps_startup_dialog";
once->order = e_order_new(buf);
return _create_config_dialog(con, once);
}
EAPI E_Config_Dialog *
e_int_config_apps_restart(E_Container *con)
{
E_Config_Once *once;
char buf[4096];
snprintf(buf, sizeof(buf), "%s/.e/e/applications/restart/.order",
e_user_homedir_get());
once = E_NEW(E_Config_Once, 1);
once->title = _("Restart Applications");
once->icon = "enlightenment/restart_applications";
once->dialog = "_config_apps_restart_dialog";
once->order = e_order_new(buf);
return _create_config_dialog(con, once);
}
/* Private Functions */
static E_Config_Dialog *
_create_config_dialog(E_Container *con, E_Config_Once *once)
{
E_Config_Dialog *cfd;
E_Config_Dialog_View *v;
if (e_config_dialog_find("E", once->dialog)) return NULL;
v = E_NEW(E_Config_Dialog_View, 1);
v->create_cfdata = _create_data;
v->free_cfdata = _free_data;
v->basic.create_widgets = _basic_create;
cfd = e_config_dialog_new(con, once->title, "E", once->dialog,
once->icon, 0, v, once);
return cfd;
}
static void *
_create_data(E_Config_Dialog *cfd)
{
E_Config_Dialog_Data *cfdata;
cfdata = E_NEW(E_Config_Dialog_Data, 1);
return cfdata;
}
static void
_free_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata)
{
E_Config_Once *o;
o = cfd->data;
E_FREE(o);
E_FREE(cfdata);
}
static Evas_Object *
_basic_create(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cfdata)
{
E_Config_Once *once;
Evas_Object *ot, *of, *ob;
once = cfd->data;
ot = e_widget_table_add(evas, 0);
of = e_widget_framelist_add(evas, _("All Applications"), 0);
ob = e_widget_ilist_add(evas, 24, 24, &(cfdata->app));
cfdata->o_apps = ob;
_fill_apps(cfdata);
e_widget_framelist_object_append(of, ob);
e_widget_table_object_append(ot, of, 0, 0, 1, 4, 1, 1, 1, 1);
ob = e_widget_button_add(evas, _("Add"), "widget/add", _cb_add, cfdata, once);
cfdata->o_add = ob;
e_widget_disabled_set(ob, 1);
e_widget_table_object_append(ot, ob, 1, 1, 1, 1, 1, 0, 0, 0);
ob = e_widget_button_add(evas, _("Delete"), "widget/del", _cb_del, cfdata, once);
cfdata->o_del = ob;
e_widget_disabled_set(ob, 1);
e_widget_table_object_append(ot, ob, 1, 2, 1, 1, 1, 0, 0, 0);
of = e_widget_framelist_add(evas, (char *)once->title, 0);
ob = e_widget_ilist_add(evas, 24, 24, &(cfdata->list));
cfdata->o_list = ob;
_fill_list(cfd->data, cfdata);
e_widget_framelist_object_append(of, ob);
e_widget_table_object_append(ot, of, 2, 0, 1, 4, 1, 1, 1, 1);
e_dialog_resizable_set(cfd->dia, 1);
return ot;
}
static void
_fill_apps(E_Config_Dialog_Data *cfdata)
{
Evas *evas;
Evas_Coord w;
Efreet_Menu *menu;
menu = efreet_menu_get();
if (!menu) return;
evas = evas_object_evas_get(cfdata->o_apps);
evas_event_freeze(evas);
edje_freeze();
e_widget_ilist_freeze(cfdata->o_apps);
if (menu->entries)
{
Efreet_Menu *entry;
ecore_list_goto_first(menu->entries);
while ((entry = ecore_list_next(menu->entries)))
{
Efreet_Menu *sub;
if (entry->type != EFREET_MENU_ENTRY_MENU) continue;
e_widget_ilist_header_append(cfdata->o_apps, NULL, entry->id);
if (!entry->entries) continue;
ecore_list_goto_first(entry->entries);
while ((sub = ecore_list_next(entry->entries)))
{
Evas_Object *icon = NULL;
if (sub->type != EFREET_MENU_ENTRY_DESKTOP) continue;
icon = e_util_icon_theme_icon_add(sub->icon, "24x24", evas);
e_widget_ilist_append(cfdata->o_apps, icon, sub->name,
_apps_cb_selected, cfdata,
sub->desktop->orig_path);
}
}
}
e_widget_ilist_go(cfdata->o_apps);
e_widget_min_size_get(cfdata->o_apps, &w, NULL);
e_widget_min_size_set(cfdata->o_apps, w, 200);
e_widget_ilist_thaw(cfdata->o_apps);
edje_thaw();
evas_event_thaw(evas);
efreet_menu_free(menu);
}
static void
_fill_list(E_Config_Once *once, E_Config_Dialog_Data *cfdata)
{
Evas *evas;
Evas_Coord w;
Evas_List *l;
if ((!once->order) || (!once->order->desktops))
{
e_widget_min_size_set(cfdata->o_list, 100, 200);
return;
}
evas = evas_object_evas_get(cfdata->o_list);
evas_event_freeze(evas);
edje_freeze();
e_widget_ilist_freeze(cfdata->o_list);
for (l = once->order->desktops; l; l = l->next)
{
Efreet_Desktop *desk;
Evas_Object *icon = NULL;
desk = l->data;
if (!desk) continue;
icon = e_util_desktop_icon_add(desk, "24x24", evas);
e_widget_ilist_append(cfdata->o_list, icon, desk->name,
_list_cb_selected, cfdata, desk->orig_path);
}
e_widget_ilist_go(cfdata->o_list);
e_widget_min_size_get(cfdata->o_list, &w, NULL);
e_widget_min_size_set(cfdata->o_list, w, 200);
e_widget_ilist_thaw(cfdata->o_list);
edje_thaw();
evas_event_thaw(evas);
}
static void
_apps_cb_selected(void *data)
{
E_Config_Dialog_Data *cfdata;
cfdata = data;
e_widget_disabled_set(cfdata->o_add, 0);
}
static void
_list_cb_selected(void *data)
{
E_Config_Dialog_Data *cfdata;
cfdata = data;
e_widget_disabled_set(cfdata->o_del, 0);
}
static void
_cb_add(void *data, void *data2)
{
E_Config_Dialog_Data *cfdata;
E_Config_Once *once;
Evas_Object *icon = NULL;
Efreet_Desktop *desk;
Evas *evas;
Evas_Coord w;
cfdata = data;
once = data2;
if (e_widget_ilist_selected_get(cfdata->o_apps) < 0) return;
desk = efreet_desktop_get(cfdata->app);
if (!desk) return;
evas = evas_object_evas_get(cfdata->o_list);
evas_event_freeze(evas);
edje_freeze();
e_widget_ilist_freeze(cfdata->o_list);
icon = e_util_desktop_icon_add(desk, "24x24", evas);
e_widget_ilist_append(cfdata->o_list, icon, desk->name,
_list_cb_selected, cfdata, cfdata->app);
e_widget_ilist_go(cfdata->o_list);
e_widget_min_size_get(cfdata->o_list, &w, NULL);
e_widget_min_size_set(cfdata->o_list, w, 200);
e_widget_ilist_thaw(cfdata->o_list);
edje_thaw();
evas_event_thaw(evas);
e_order_append(once->order, desk);
}
static void
_cb_del(void *data, void *data2)
{
E_Config_Dialog_Data *cfdata;
E_Config_Once *once;
Efreet_Desktop *desk;
Evas *evas;
Evas_Coord w;
int num;
cfdata = data;
once = data2;
num = e_widget_ilist_selected_get(cfdata->o_list);
if (num < 0) return;
evas = evas_object_evas_get(cfdata->o_list);
evas_event_freeze(evas);
edje_freeze();
e_widget_ilist_freeze(cfdata->o_list);
e_widget_ilist_remove_num(cfdata->o_list, num);
e_widget_ilist_go(cfdata->o_list);
e_widget_min_size_get(cfdata->o_list, &w, NULL);
e_widget_min_size_set(cfdata->o_list, w, 200);
e_widget_ilist_thaw(cfdata->o_list);
edje_thaw();
evas_event_thaw(evas);
desk = efreet_desktop_get(cfdata->list);
if (!desk) return;
e_order_remove(once->order, desk);
}

View File

@ -1,13 +0,0 @@
#ifdef E_TYPEDEFS
#else
#ifndef E_INT_CONFIG_APPS_ORDER_H
#define E_INT_CONFIG_APPS_ORDER_H
EAPI E_Config_Dialog *e_int_config_apps_add(E_Container *con);
EAPI E_Config_Dialog *e_int_config_apps_ibar(E_Container *con);
EAPI E_Config_Dialog *e_int_config_apps_ibar_other(E_Container *con, const char *path);
EAPI E_Config_Dialog *e_int_config_apps_startup(E_Container *con);
EAPI E_Config_Dialog *e_int_config_apps_restart(E_Container *con);
#endif
#endif