forked from enlightenment/enventor
268 lines
8.7 KiB
C
268 lines
8.7 KiB
C
#ifdef HAVE_CONFIG_H
|
|
#include "config.h"
|
|
#endif
|
|
#include "common.h"
|
|
|
|
typedef struct build_setting_s
|
|
{
|
|
Evas_Object *layout;
|
|
Evas_Object *main_edc_entry;
|
|
Evas_Object *img_path_entry;
|
|
Evas_Object *snd_path_entry;
|
|
Evas_Object *fnt_path_entry;
|
|
Evas_Object *dat_path_entry;
|
|
|
|
} build_setting_data;
|
|
|
|
/*****************************************************************************/
|
|
/* Internal method implementation */
|
|
/*****************************************************************************/
|
|
|
|
static Evas_Object *
|
|
entry_create(Evas_Object *parent)
|
|
{
|
|
Evas_Object *entry = elm_entry_add(parent);
|
|
elm_entry_single_line_set(entry, EINA_TRUE);
|
|
elm_entry_scrollable_set(entry, EINA_TRUE);
|
|
evas_object_show(entry);
|
|
|
|
return entry;
|
|
}
|
|
|
|
static void
|
|
main_edc_entry_update(Evas_Object *entry, const char *path)
|
|
{
|
|
elm_entry_entry_set(entry, path);
|
|
}
|
|
|
|
static void
|
|
img_path_entry_update(Evas_Object *entry, Eina_List *edc_img_paths)
|
|
{
|
|
elm_entry_entry_set(entry, NULL);
|
|
|
|
Eina_List *l;
|
|
char *edc_img_path;
|
|
EINA_LIST_FOREACH(edc_img_paths, l, edc_img_path)
|
|
{
|
|
elm_entry_entry_append(entry, edc_img_path);
|
|
elm_entry_entry_append(entry, ";");
|
|
}
|
|
}
|
|
|
|
static void
|
|
fnt_path_entry_update(Evas_Object *entry, Eina_List *edc_fnt_paths)
|
|
{
|
|
elm_entry_entry_set(entry, NULL);
|
|
|
|
Eina_List *l;
|
|
char *edc_fnt_path;
|
|
EINA_LIST_FOREACH(edc_fnt_paths, l, edc_fnt_path)
|
|
{
|
|
elm_entry_entry_append(entry, edc_fnt_path);
|
|
elm_entry_entry_append(entry, ";");
|
|
}
|
|
}
|
|
|
|
static void
|
|
dat_path_entry_update(Evas_Object *entry, Eina_List *edc_dat_paths)
|
|
{
|
|
elm_entry_entry_set(entry, NULL);
|
|
|
|
Eina_List *l;
|
|
char *edc_dat_path;
|
|
EINA_LIST_FOREACH(edc_dat_paths, l, edc_dat_path)
|
|
{
|
|
elm_entry_entry_append(entry, edc_dat_path);
|
|
elm_entry_entry_append(entry, ";");
|
|
}
|
|
}
|
|
|
|
static void
|
|
snd_path_entry_update(Evas_Object *entry, Eina_List *edc_snd_paths)
|
|
{
|
|
elm_entry_entry_set(entry, NULL);
|
|
|
|
Eina_List *l;
|
|
char *edc_snd_path;
|
|
EINA_LIST_FOREACH(edc_snd_paths, l, edc_snd_path)
|
|
{
|
|
elm_entry_entry_append(entry, edc_snd_path);
|
|
elm_entry_entry_append(entry, ";");
|
|
}
|
|
}
|
|
|
|
|
|
/*****************************************************************************/
|
|
/* Externally accessible calls */
|
|
/*****************************************************************************/
|
|
void
|
|
build_setting_focus_set(build_setting_data *bsd)
|
|
{
|
|
EINA_SAFETY_ON_NULL_RETURN(bsd);
|
|
|
|
elm_object_focus_set(bsd->main_edc_entry, EINA_TRUE);
|
|
}
|
|
|
|
void
|
|
build_setting_config_set(build_setting_data *bsd)
|
|
{
|
|
if (!bsd) return;
|
|
|
|
config_input_path_set(elm_object_text_get(bsd->main_edc_entry));
|
|
config_img_path_set(elm_object_text_get(bsd->img_path_entry));
|
|
config_snd_path_set(elm_object_text_get(bsd->snd_path_entry));
|
|
config_fnt_path_set(elm_object_text_get(bsd->fnt_path_entry));
|
|
config_dat_path_set(elm_object_text_get(bsd->dat_path_entry));
|
|
}
|
|
|
|
void
|
|
build_setting_reset(build_setting_data *bsd)
|
|
{
|
|
if (!bsd) return;
|
|
|
|
main_edc_entry_update(bsd->main_edc_entry, config_input_path_get());
|
|
img_path_entry_update(bsd->img_path_entry,
|
|
(Eina_List *)config_img_path_list_get());
|
|
snd_path_entry_update(bsd->snd_path_entry,
|
|
(Eina_List *)config_snd_path_list_get());
|
|
fnt_path_entry_update(bsd->fnt_path_entry,
|
|
(Eina_List *)config_fnt_path_list_get());
|
|
dat_path_entry_update(bsd->dat_path_entry,
|
|
(Eina_List *)config_dat_path_list_get());
|
|
}
|
|
|
|
Evas_Object *
|
|
build_setting_content_get(build_setting_data *bsd, Evas_Object *parent)
|
|
{
|
|
EINA_SAFETY_ON_NULL_RETURN_VAL(bsd, NULL);
|
|
|
|
if (bsd->layout) return bsd->layout;
|
|
|
|
//Layout
|
|
Evas_Object *layout = elm_layout_add(parent);
|
|
elm_layout_file_set(layout, EDJE_PATH, "build_setting_layout");
|
|
evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
|
evas_object_show(layout);
|
|
|
|
//Main EDC Path Entry
|
|
Evas_Object *main_edc_entry = entry_create(layout);
|
|
main_edc_entry_update(main_edc_entry, config_input_path_get());
|
|
elm_object_focus_set(main_edc_entry, EINA_TRUE);
|
|
elm_object_part_content_set(layout, "elm.swallow.main_edc_entry",
|
|
main_edc_entry);
|
|
elm_layout_text_set(layout, "main_edc_guide", _("Main EDC File:"));
|
|
|
|
//Main EDC Path Tooltip
|
|
Evas_Object *main_edc_tooltip = elm_button_add(layout);
|
|
elm_object_style_set(main_edc_tooltip, ENVENTOR_NAME);
|
|
elm_object_part_content_set(layout, "main_edc_tooltip", main_edc_tooltip);
|
|
|
|
elm_object_tooltip_text_set(main_edc_tooltip,
|
|
_("Main EDC File path, which is containing<br>"
|
|
"collections, used for a current<br>"
|
|
"project."));
|
|
elm_object_focus_allow_set(main_edc_tooltip, EINA_FALSE);
|
|
|
|
//Image Path Entry
|
|
Evas_Object *img_path_entry = entry_create(layout);
|
|
img_path_entry_update(img_path_entry,
|
|
(Eina_List *)config_img_path_list_get());
|
|
elm_object_part_content_set(layout, "elm.swallow.img_path_entry",
|
|
img_path_entry);
|
|
elm_layout_text_set(layout, "img_path_guide", _("Image paths:"));
|
|
|
|
//Image Path Tooltip
|
|
Evas_Object *img_path_tooltip = elm_button_add(layout);
|
|
elm_object_style_set(img_path_tooltip, ENVENTOR_NAME);
|
|
elm_object_part_content_set(layout, "img_path_tooltip", img_path_tooltip);
|
|
|
|
elm_object_tooltip_text_set(img_path_tooltip,
|
|
_("Image resource path used for<br>"
|
|
"a current project."));
|
|
elm_object_focus_allow_set(img_path_tooltip, EINA_FALSE);
|
|
|
|
//Sound Path Entry
|
|
Evas_Object *snd_path_entry = entry_create(layout);
|
|
snd_path_entry_update(snd_path_entry,
|
|
(Eina_List *)config_snd_path_list_get());
|
|
elm_object_part_content_set(layout, "elm.swallow.snd_path_entry",
|
|
snd_path_entry);
|
|
elm_layout_text_set(layout, "snd_path_guide", _("Sound paths:"));
|
|
|
|
//Sound Path Tooltip
|
|
Evas_Object *snd_path_tooltip = elm_button_add(layout);
|
|
elm_object_style_set(snd_path_tooltip, ENVENTOR_NAME);
|
|
elm_object_part_content_set(layout, "snd_path_tooltip", snd_path_tooltip);
|
|
|
|
elm_object_tooltip_text_set(snd_path_tooltip,
|
|
_("Sound resource path used for<br>"
|
|
"a current project."));
|
|
elm_object_focus_allow_set(snd_path_tooltip, EINA_FALSE);
|
|
|
|
//Font Path Entry
|
|
Evas_Object *fnt_path_entry = entry_create(layout);
|
|
fnt_path_entry_update(fnt_path_entry,
|
|
(Eina_List *)config_fnt_path_list_get());
|
|
elm_object_part_content_set(layout, "elm.swallow.fnt_path_entry",
|
|
fnt_path_entry);
|
|
elm_layout_text_set(layout, "fnt_path_guide", _("Font paths:"));
|
|
|
|
//Font Path Tooltip
|
|
Evas_Object *font_path_tooltip = elm_button_add(layout);
|
|
elm_object_style_set(font_path_tooltip, ENVENTOR_NAME);
|
|
elm_object_part_content_set(layout, "fnt_path_tooltip", font_path_tooltip);
|
|
|
|
elm_object_tooltip_text_set(font_path_tooltip,
|
|
_("Font resource path used for<br>"
|
|
"a current project."));
|
|
elm_object_focus_allow_set(font_path_tooltip, EINA_FALSE);
|
|
|
|
//Data Path Entry
|
|
Evas_Object *dat_path_entry = entry_create(layout);
|
|
dat_path_entry_update(dat_path_entry,
|
|
(Eina_List *)config_dat_path_list_get());
|
|
elm_object_part_content_set(layout, "elm.swallow.dat_path_entry",
|
|
dat_path_entry);
|
|
elm_layout_text_set(layout, "dat_path_guide", _("Data paths:"));
|
|
|
|
//Data Path Tooltip
|
|
Evas_Object *data_path_tooltip = elm_button_add(layout);
|
|
elm_object_style_set(data_path_tooltip, ENVENTOR_NAME);
|
|
elm_object_part_content_set(layout, "data_path_tooltip", data_path_tooltip);
|
|
|
|
elm_object_tooltip_text_set(data_path_tooltip,
|
|
_("Data resource path used for<br>"
|
|
"a current project."));
|
|
elm_object_focus_allow_set(data_path_tooltip, EINA_FALSE);
|
|
|
|
bsd->layout = layout;
|
|
bsd->main_edc_entry = main_edc_entry;
|
|
bsd->img_path_entry = img_path_entry;
|
|
bsd->snd_path_entry = snd_path_entry;
|
|
bsd->fnt_path_entry = fnt_path_entry;
|
|
bsd->dat_path_entry = dat_path_entry;
|
|
|
|
return layout;
|
|
}
|
|
|
|
build_setting_data *
|
|
build_setting_init(void)
|
|
{
|
|
build_setting_data *bsd = calloc(1, sizeof(build_setting_data));
|
|
if (!bsd)
|
|
{
|
|
EINA_LOG_ERR(_("Failed to allocate Memory!"));
|
|
return NULL;
|
|
}
|
|
return bsd;
|
|
}
|
|
|
|
void
|
|
build_setting_term(build_setting_data *bsd)
|
|
{
|
|
if (!bsd) return;
|
|
|
|
evas_object_del(bsd->layout);
|
|
free(bsd);
|
|
}
|