From 860a1c025e9002edfb221b551ce263d9e5f633b9 Mon Sep 17 00:00:00 2001 From: Jaime Thomas Date: Sun, 11 Jan 2009 22:13:44 +0000 Subject: [PATCH] Get rid of Burn_Data_Data. --- ecdb/trunk/src/ecdb_burn.c | 2 +- ecdb/trunk/src/ecdb_burn_data_gui.c | 267 +++++++++++++--------------- ecdb/trunk/src/ecdb_burn_data_gui.h | 2 +- ecdb/trunk/src/ecdb_common.h | 4 + ecdb/trunk/src/ecdb_widgets.c | 33 ++++ ecdb/trunk/src/ecdb_widgets.h | 3 + 6 files changed, 163 insertions(+), 148 deletions(-) diff --git a/ecdb/trunk/src/ecdb_burn.c b/ecdb/trunk/src/ecdb_burn.c index 3149ca8..1f2213f 100644 --- a/ecdb/trunk/src/ecdb_burn.c +++ b/ecdb/trunk/src/ecdb_burn.c @@ -297,8 +297,8 @@ ecdb_burn_finished(void *data, int type, void *event) break; case ECDB_BURN_PROJECT: + ecdb_burn_data_cleanup(ECDB_BURN(proj->proj)); ecdb_burn_project_destroy(ECDB_BURN(proj->proj)); - ecdb_burn_data_cleanup(); break; case ECDB_IMAGE_PROJECT: diff --git a/ecdb/trunk/src/ecdb_burn_data_gui.c b/ecdb/trunk/src/ecdb_burn_data_gui.c index c09031b..90650d7 100644 --- a/ecdb/trunk/src/ecdb_burn_data_gui.c +++ b/ecdb/trunk/src/ecdb_burn_data_gui.c @@ -1,16 +1,6 @@ /* vim: set sw=3 ts=3 sts=3 expandtab: */ #include "ecdb.h" -typedef struct _Burn_Data_Data Burn_Data_Data; -struct _Burn_Data_Data -{ - Ecdb_Burn_Project *proj; - Evas_Object *capacity; - Evas_Object *swallow; - Evas_Object *sc; - Evas_Object *dc; -}; - static void _button_cb_return(void *data, Evas_Object *obj, void *event_info); static void _button_cb_begin(void *data, Evas_Object *obj, void *event_info); static void _combo_cb_clicked(void *data, Evas_Object *obj, void *event_info); @@ -42,33 +32,34 @@ static int _update_capacity(void *data, int type, void *ev_data) { Ecdb_Source *src; - Edje_Message_Float msg; - Burn_Data_Data *bdd; - Ecdb_Project *proj; + Ecdb_Burn_Project *proj; + Ecdb_Project *base_proj; + float val; - bdd = data; - if ((!bdd) || (!bdd->proj)) + proj = data; + if (!proj) return ECORE_CALLBACK_RENEW; - proj = ECDB_PROJECT(bdd->proj); - src = evas_object_data_get(bdd->capacity, "source"); - if ((proj->drive) && (proj->drive->capacity > 0)) + base_proj = ECDB_PROJECT(proj); + src = evas_object_data_get(proj->capacity, "source"); + if ((base_proj->drive) && (base_proj->drive->capacity > 0)) { - printf("drive capacity: %lld, src->size: %lld\n", proj->drive->capacity, src->size); - msg.val = (float)src->size / (float)proj->drive->capacity; + printf("drive capacity: %lld, src->size: %lld\n", + base_proj->drive->capacity, src->size); + val = (float)src->size / (float)base_proj->drive->capacity; } else { // Default to a nice, small size - msg.val = (float)src->size / 1048576.0 / 700.0; + val = (float)src->size / 1048576.0 / 700.0; } - if (msg.val > 1.0) + if (val > 1.0) { printf("OVER SIZE LIMIT!\n"); - edje_object_signal_emit(bdd->capacity, "ecdb,capacity,exceeded", "ecdb"); - edje_object_signal_emit(bdd->swallow, "ecdb,capacity, exceeded", "ecdb"); + edje_object_signal_emit(proj->capacity, "ecdb,capacity,exceeded", "ecdb"); + edje_object_signal_emit(proj->parent, "ecdb,capacity, exceeded", "ecdb"); } - edje_object_message_send(bdd->capacity, EDJE_MESSAGE_FLOAT, 1, &msg); + ecdb_capacity_float_set(proj->capacity, val); return ECORE_CALLBACK_RENEW; } @@ -77,17 +68,17 @@ static void _button_cb_return(void *data, Evas_Object *obj, void *event_info) { Evas_Object *gui; - Burn_Data_Data *bdd; + Ecdb_Burn_Project *proj; char *signal; - bdd = data; - if (!bdd) + proj = data; + if (!proj) return; gui = evas_object_name_find(ecore_evas_get(em->main_win_ee), "gui"); - signal = evas_object_data_get(bdd->swallow, "hide_signal"); - edje_object_signal_emit(bdd->swallow, signal, "ecdb"); + signal = evas_object_data_get(proj->parent, "hide_signal"); + edje_object_signal_emit(proj->parent, signal, "ecdb"); ecdb_welcome_page_show(); /* Hide the filelist to be nice */ @@ -98,56 +89,54 @@ static void _button_cb_begin(void *data, Evas_Object *obj, void *event_info) { Evas_Object *gui; - Ecdb_Project *base_proj; - Burn_Data_Data *bdd; + Ecdb_Burn_Project *proj; Ewl_Widget *filelist; char buf[1024]; Ecdb_Burn_Result burn_result; int drive, speed; - bdd = data; - if ((!bdd) || (!bdd->proj)) + proj = data; + if (!proj) return; gui = evas_object_name_find(ecore_evas_get(em->main_win_ee), "gui"); filelist = ewl_widget_name_find("ecdb/burn_data/filelist"); - base_proj = ECDB_PROJECT(bdd->proj); - if (!base_proj->drive) + if (!ECDB_PROJECT(proj)->drive) { printf("Choose a drive!\n"); - edje_object_part_text_set(bdd->swallow, "progress_text", + edje_object_part_text_set(proj->parent, "progress_text", "Choose a Drive!"); return; } - drive = ecdb_combo_selected_get(bdd->dc); + drive = ecdb_combo_selected_get(proj->drive_combo); speed = ecdb_speed_convert(eina_list_nth(em->drives, drive), - ecdb_combo_selected_get(bdd->sc)); + ecdb_combo_selected_get(proj->speed_combo)); if (speed < 0) - bdd->proj->speed = 0; + proj->speed = 0; else - bdd->proj->speed = speed; + proj->speed = speed; - bdd->proj->files = ewl_widget_data_get(filelist, "source"); - while (bdd->proj->files->parent) - bdd->proj->files = bdd->proj->files->parent; + proj->files = ewl_widget_data_get(filelist, "source"); + while (proj->files->parent) + proj->files = proj->files->parent; snprintf(buf, sizeof(buf), "Commencing..."); - edje_object_part_text_set(bdd->swallow, "progress_text", buf); - if (!ecdb_aquire_drive(ECDB_PROJECT(bdd->proj), drive)) + edje_object_part_text_set(proj->parent, "progress_text", buf); + if (!ecdb_aquire_drive(ECDB_PROJECT(proj), drive)) { printf("Couldn't grab drive!\n"); - edje_object_part_text_set(bdd->swallow, "progress_text", + edje_object_part_text_set(proj->parent, "progress_text", "Couldn't grab the drive!"); return; } - burn_result = ecdb_burn_project(bdd->proj); + burn_result = ecdb_burn_project(proj); switch (burn_result) { case ECDB_ERROR_NONE: edje_object_signal_emit(gui, "ecdb,filelist,hide", "ecdb"); - edje_object_signal_emit(bdd->swallow, "ecdb,burn_data,start", "ecdb"); + edje_object_signal_emit(proj->parent, "ecdb,burn_data,start", "ecdb"); const char *ids[] = {"ecdb/burn_data/return", "ecdb/burn_data/begin", "ecdb/burn_data/file", "ecdb/burn_data/drive", "ecdb/burn_data/speed"}; @@ -170,52 +159,52 @@ _button_cb_begin(void *data, Evas_Object *obj, void *event_info) snprintf(buf, sizeof(buf), "Unknown error :-("); } - edje_object_part_text_set(bdd->swallow, "progress_text", buf); - burn_drive_release(base_proj->drive->tangible[0].drive, 1); - burn_drive_info_free(base_proj->drive->tangible); - ecdb_burn_project_destroy(bdd->proj); - bdd->proj = NULL; + edje_object_part_text_set(proj->parent, "progress_text", buf); + burn_drive_release(ECDB_PROJECT(proj)->drive->tangible[0].drive, 1); + burn_drive_info_free(ECDB_PROJECT(proj)->drive->tangible); + ecdb_burn_project_destroy(proj); + evas_object_data_set(proj->parent, "proj", NULL); } static void _combo_cb_clicked(void *data, Evas_Object *obj, void *event_info) { Evas_Object *b; - Burn_Data_Data *bdd; - Ecdb_Project *proj; + Ecdb_Burn_Project *proj; + Ecdb_Project *base_proj; int sel, i, num_speeds, speed; char buf[1024]; - bdd = data; - if ((!bdd) || (!bdd->proj)) + proj = data; + if (!proj) return; - proj = ECDB_PROJECT(bdd->proj); - sel = ecdb_combo_selected_get(bdd->dc); + base_proj = ECDB_PROJECT(proj); + sel = ecdb_combo_selected_get(proj->drive_combo); if (sel < 0) return; - proj->drive = eina_list_nth(em->drives, sel); + base_proj->drive = eina_list_nth(em->drives, sel); // Update the capacity here, as our capacity could change with the drive ecore_event_add(ECDB_FILELIST_SIZE_CHANGED, NULL, NULL, NULL); - num_speeds = proj->drive->write_speeds[0]; - ecdb_combo_data_set(bdd->sc, proj->drive); + num_speeds = base_proj->drive->write_speeds[0]; + ecdb_combo_data_set(proj->speed_combo, base_proj->drive); for (i = 1; i < num_speeds; i++) { - if ((proj->drive->write_speeds[i]) <= 0) + if (base_proj->drive->write_speeds[i] <= 0) continue; - b = ecdb_combo_item_add(bdd->sc, NULL); + b = ecdb_combo_item_add(proj->speed_combo, NULL); - if ((proj->drive->profile_name) && - (proj->drive->profile_name[0] != '\0')) + if ((base_proj->drive->profile_name) && + (base_proj->drive->profile_name[0] != '\0')) { - if (proj->drive->profile_name[0] == 'C') - speed = proj->drive->write_speeds[i] / 150; - else if (proj->drive->profile_name[0] == 'D') - speed = proj->drive->write_speeds[i] / 1352; + if (base_proj->drive->profile_name[0] == 'C') + speed = base_proj->drive->write_speeds[i] / 150; + else if (base_proj->drive->profile_name[0] == 'D') + speed = base_proj->drive->write_speeds[i] / 1352; else - speed = proj->drive->write_speeds[i] / 4500; + speed = base_proj->drive->write_speeds[i] / 4500; } else { @@ -223,9 +212,9 @@ _combo_cb_clicked(void *data, Evas_Object *obj, void *event_info) } snprintf(buf, sizeof(buf), "%dX (%dkb/s)", speed, - proj->drive->write_speeds[i]); + base_proj->drive->write_speeds[i]); ecdb_combo_item_label_set(b, buf); - ecdb_combo_append(bdd->sc, b); + ecdb_combo_append(proj->speed_combo, b); evas_object_show(b); } } @@ -430,7 +419,7 @@ void ecdb_burn_data_page_show(void) { Evas_Object *swallow, *gui; - Burn_Data_Data *bdd; + Ecdb_Burn_Project *proj; gui = evas_object_name_find(ecore_evas_get(em->main_win_ee), "gui"); swallow = evas_object_name_find(ecore_evas_get(em->main_win_ee), @@ -438,15 +427,14 @@ ecdb_burn_data_page_show(void) if (!swallow) { - Evas_Object *b, *c1, *c2, *t; + Evas_Object *b, *t; Eina_List *l; Ecdb_Drive_Info *drive; Evas_Coord x, y, w, h; Ewl_Widget *embed, *filelist; Ecdb_Source *src; - bdd = calloc(1, sizeof(Burn_Data_Data)); - bdd->proj = ecdb_burn_project_new(); + proj = ecdb_burn_project_new(); swallow = edje_object_add(ecore_evas_get(em->main_win_ee)); edje_object_file_set(swallow, em->theme_path, "ecdb/burn_data_page"); @@ -460,46 +448,47 @@ ecdb_burn_data_page_show(void) edje_object_signal_callback_add(swallow, "hide,finished", "burn_data_page", ecdb_page_hide_finished, NULL); - evas_object_data_set(swallow, "bdd", bdd); + evas_object_data_set(swallow, "proj", proj); evas_object_show(swallow); - bdd->swallow = swallow; + proj->parent = swallow; b = ecdb_button_add(swallow, "ecdb/burn_data/return"); ecdb_button_label_set(b, "Return to Main Page"); - evas_object_smart_callback_add(b, "clicked", _button_cb_return, bdd); + evas_object_smart_callback_add(b, "clicked", _button_cb_return, proj); evas_object_show(b); ecdb_button_icon_set(b, "ecdb/burn_data/return"); b = ecdb_button_add(swallow, "ecdb/burn_data/begin"); ecdb_button_label_set(b, "Start Burn"); - evas_object_smart_callback_add(b, "clicked", _button_cb_begin, bdd); + evas_object_smart_callback_add(b, "clicked", _button_cb_begin, proj); evas_object_show(b); ecdb_button_icon_set(b, "ecdb/burn_data/begin"); - c1 = ecdb_combo_add(swallow, "ecdb/burn_data/drive"); - ecdb_combo_header_set(c1, "Drive"); - ecdb_combo_header_create_set(c1, ecdb_gui_combo_header_from_drive); - evas_object_show(c1); - bdd->dc = c1; + proj->drive_combo = ecdb_combo_add(swallow, "ecdb/burn_data/drive"); + ecdb_combo_header_set(proj->drive_combo, "Drive"); + ecdb_combo_header_create_set(proj->drive_combo, + ecdb_gui_combo_header_from_drive); + evas_object_show(proj->drive_combo); - c2 = ecdb_combo_add(swallow, "ecdb/burn_data/speed"); - ecdb_combo_header_create_set(c2, ecdb_gui_combo_header_from_speeds); - ecdb_combo_header_set(c2, "Max Speed"); - evas_object_show(c2); - bdd->sc = c2; + proj->speed_combo = ecdb_combo_add(swallow, "ecdb/burn_data/speed"); + ecdb_combo_header_create_set(proj->speed_combo, + ecdb_gui_combo_header_from_speeds); + ecdb_combo_header_set(proj->speed_combo, "Max Speed"); + evas_object_show(proj->speed_combo); EINA_LIST_FOREACH(em->drives, l, drive) { - b = ecdb_combo_item_add(c1, NULL); + b = ecdb_combo_item_add(proj->drive_combo, NULL); ecdb_combo_item_label_set(b, drive->product); - evas_object_smart_callback_add(b, "clicked", _combo_cb_clicked, bdd); - ecdb_combo_append(c1, b); + evas_object_smart_callback_add(b, "clicked", _combo_cb_clicked, proj); + ecdb_combo_append(proj->drive_combo, b); evas_object_show(b); } embed = ewl_embed_new(); ewl_object_fill_policy_set(EWL_OBJECT(embed), EWL_FLAG_FILL_ALL); - b = ewl_embed_canvas_set(EWL_EMBED(embed), evas_object_evas_get(c2), + b = ewl_embed_canvas_set(EWL_EMBED(embed), + evas_object_evas_get(proj->drive_combo), (void *)(long)ecore_evas_software_x11_window_get(em->main_win_ee)); ewl_embed_focus_set(EWL_EMBED(embed), TRUE); ewl_widget_show(embed); @@ -523,77 +512,66 @@ ecdb_burn_data_page_show(void) ecdb_widget_focus_callback_add(b, "ecdb/burn_data/filelist"); // FIXME Turn this into a normal widget - b = ecdb_widget_add(swallow, "ecdb/burn_data/capacity"); - edje_object_file_set(b, em->theme_path, "ecdb/capacity"); - evas_object_data_set(b, "source", src); + proj->capacity = ecdb_capacity_add(swallow, "ecdb/burn_data/capacity"); + evas_object_data_set(proj->capacity, "source", src); ecore_event_handler_add(ECDB_FILELIST_SIZE_CHANGED, _update_capacity, - bdd); - evas_object_show(b); - bdd->capacity = b; + proj); + evas_object_show(proj->capacity); t = ecdb_config_inwin_add(swallow, NULL); b = ecdb_check_add(t, NULL); ecdb_check_label_set(b, "Use Joliet"); - evas_object_smart_callback_add(b, "clicked", _joliet_clicked, bdd->proj); - evas_object_smart_callback_add(b, "proj_config", _joliet_config, - bdd->proj); + evas_object_smart_callback_add(b, "clicked", _joliet_clicked, proj); + evas_object_smart_callback_add(b, "proj_config", _joliet_config, proj); ecdb_config_inwin_child_add(t, b, 0, 0, 1, 1); evas_object_name_set(b, "ecdb/burn_data/joliet"); evas_object_show(b); b = ecdb_check_add(t, NULL); ecdb_check_label_set(b, "Use Rockridge"); - evas_object_smart_callback_add(b, "clicked", _rockridge_clicked, - bdd->proj); - evas_object_smart_callback_add(b, "proj_config", _rockridge_config, - bdd->proj); + evas_object_smart_callback_add(b, "clicked", _rockridge_clicked, proj); + evas_object_smart_callback_add(b, "proj_config", _rockridge_config, proj); ecdb_config_inwin_child_add(t, b, 0, 1, 1, 1); evas_object_name_set(b, "ecdb/burn_data/rockridge"); evas_object_show(b); b = ecdb_check_add(t, NULL); ecdb_check_label_set(b, "Follow Symlinks"); - evas_object_smart_callback_add(b, "clicked", _symlinks_clicked, - bdd->proj); - evas_object_smart_callback_add(b, "proj_config", _symlinks_config, - bdd->proj); + evas_object_smart_callback_add(b, "clicked", _symlinks_clicked, proj); + evas_object_smart_callback_add(b, "proj_config", _symlinks_config, proj); ecdb_config_inwin_child_add(t, b, 0, 2, 1, 1); evas_object_name_set(b, "ecdb/burn_data/symlinks"); evas_object_show(b); b = ecdb_check_add(t, NULL); ecdb_check_label_set(b, "Ignore Hidden Files"); - evas_object_smart_callback_add(b, "clicked", _hidden_clicked, bdd->proj); - evas_object_smart_callback_add(b, "proj_config", _hidden_config, - bdd->proj); + evas_object_smart_callback_add(b, "clicked", _hidden_clicked, proj); + evas_object_smart_callback_add(b, "proj_config", _hidden_config, proj); ecdb_config_inwin_child_add(t, b, 0, 3, 1, 1); evas_object_name_set(b, "ecdb/burn_data/hidden"); evas_object_show(b); b = ecdb_check_add(t, NULL); ecdb_check_label_set(b, "Multi-session"); - evas_object_smart_callback_add(b, "clicked", _multi_clicked, bdd->proj); - evas_object_smart_callback_add(b, "proj_config", _multi_config, - bdd->proj); + evas_object_smart_callback_add(b, "clicked", _multi_clicked, proj); + evas_object_smart_callback_add(b, "proj_config", _multi_config, proj); ecdb_config_inwin_child_add(t, b, 1, 0, 1, 1); evas_object_name_set(b, "ecdb/burn_data/multi"); evas_object_show(b); b = ecdb_check_add(t, NULL); ecdb_check_label_set(b, "Simulate"); - evas_object_smart_callback_add(b, "clicked", _sim_clicked, bdd->proj); - evas_object_smart_callback_add(b, "proj_config", _sim_config, bdd->proj); + evas_object_smart_callback_add(b, "clicked", _sim_clicked, proj); + evas_object_smart_callback_add(b, "proj_config", _sim_config, proj); ecdb_config_inwin_child_add(t, b, 1, 1, 1, 1); evas_object_name_set(b, "ecdb/burn_data/sim"); evas_object_show(b); b = ecdb_check_add(t, NULL); ecdb_check_label_set(b, "Use Underrun Proof"); - evas_object_smart_callback_add(b, "clicked", _underrun_clicked, - bdd->proj); - evas_object_smart_callback_add(b, "proj_config", _underrun_config, - bdd->proj); + evas_object_smart_callback_add(b, "clicked", _underrun_clicked, proj); + evas_object_smart_callback_add(b, "proj_config", _underrun_config, proj); ecdb_config_inwin_child_add(t, b, 1, 2, 1, 1); evas_object_name_set(b, "ecdb/burn_data/underrun"); evas_object_show(b); @@ -601,9 +579,8 @@ ecdb_burn_data_page_show(void) b = ecdb_entry_add(t, NULL); ecdb_entry_text_set(b, "Volume Name"); evas_object_event_callback_add(b, EVAS_CALLBACK_FOCUS_OUT, - _proj_name, bdd->proj); - evas_object_smart_callback_add(b, "proj_config", _proj_config, - bdd->proj); + _proj_name, proj); + evas_object_smart_callback_add(b, "proj_config", _proj_config, proj); ecdb_config_inwin_child_add(t, b, 1, 3, 1, 1); evas_object_name_set(b, "ecdb/burn_data/name"); evas_object_show(b); @@ -627,15 +604,11 @@ ecdb_burn_data_page_show(void) evas_object_show(swallow); } - bdd = evas_object_data_get(swallow, "bdd"); - if (!bdd) + proj = evas_object_data_get(swallow, "proj"); + if (!proj) { - printf("No data for burn data page! This should never happen!\n"); - } - else - { - if (!bdd->proj) - bdd->proj = ecdb_burn_project_new(); + proj = ecdb_burn_project_new(); + evas_object_data_set(swallow, "proj", proj); } edje_object_signal_emit(gui, "ecdb,burn_data_page,visible", "ecdb"); @@ -643,23 +616,24 @@ ecdb_burn_data_page_show(void) } void -ecdb_burn_data_cleanup(void) +ecdb_burn_data_cleanup(Ecdb_Burn_Project *proj) { - Evas_Object *swallow; Ewl_Widget *filelist; Ecdb_Source *src; - Burn_Data_Data *bdd; int i; - const char *ids[] = {"ecdb/burn_data/return", "ecdb/burn_data/begin", "ecdb/burn_data/file", "ecdb/burn_data/drive" "ecdb/burn_data/speed"}; - swallow = evas_object_name_find(ecore_evas_get(em->main_win_ee), - "burn_data_page"); - bdd = evas_object_data_get(swallow, "bdd"); - edje_object_part_text_set(swallow, "progress_text", "Burn Complete!"); + + if (!proj) + { + printf("ecdb_burn_data_cleanup: NULL project!\n"); + return; + } + + edje_object_part_text_set(proj->parent, "progress_text", "Burn Complete!"); ecdb_gui_controls_enable(ids, 5); - edje_object_signal_emit(swallow, "ecdb,burn_data,done", "ecdb"); + edje_object_signal_emit(proj->parent, "ecdb,burn_data,done", "ecdb"); filelist = ewl_widget_name_find("ecdb/burn_data/filelist"); src = ewl_widget_data_get(filelist, "source"); @@ -671,6 +645,7 @@ ecdb_burn_data_cleanup(void) ecdb_source_child_remove(src, src->children[i]); ecdb_source_destroy(src->children[i]); } - bdd->proj = NULL; + + evas_object_data_set(proj->parent, "proj", NULL); } diff --git a/ecdb/trunk/src/ecdb_burn_data_gui.h b/ecdb/trunk/src/ecdb_burn_data_gui.h index a7bac59..e73fbfc 100644 --- a/ecdb/trunk/src/ecdb_burn_data_gui.h +++ b/ecdb/trunk/src/ecdb_burn_data_gui.h @@ -3,6 +3,6 @@ #define ECDB_BURN_DATA_GUI_H void ecdb_burn_data_page_show(void); -void ecdb_burn_data_cleanup(void); +void ecdb_burn_data_cleanup(Ecdb_Burn_Project *proj); #endif diff --git a/ecdb/trunk/src/ecdb_common.h b/ecdb/trunk/src/ecdb_common.h index 5f45177..7b8c6ee 100644 --- a/ecdb/trunk/src/ecdb_common.h +++ b/ecdb/trunk/src/ecdb_common.h @@ -112,6 +112,10 @@ struct _Ecdb_Burn_Project /* Files are important here */ Ecdb_Source *files; + Evas_Object *capacity; + Evas_Object *speed_combo; + Evas_Object *drive_combo; + Evas_Object *parent; /* Ids */ char *volume_id; diff --git a/ecdb/trunk/src/ecdb_widgets.c b/ecdb/trunk/src/ecdb_widgets.c index 3b7a3f3..08afbde 100644 --- a/ecdb/trunk/src/ecdb_widgets.c +++ b/ecdb/trunk/src/ecdb_widgets.c @@ -1247,3 +1247,36 @@ ecdb_config_inwin_child_add(Evas_Object *inwin, Evas_Object *child, } } + +/***************************** Capacity **************************************/ +Evas_Object * +ecdb_capacity_add(Evas_Object *parent, const char *name) +{ + Evas_Object *ret; + + ret = ecdb_widget_add(parent, "ecdb/burn_data/capacity"); + if (!ret) + { + printf("ecdb_capacity_add: NULL return!\n"); + return NULL; + } + + edje_object_file_set(ret, em->theme_path, "ecdb/capacity"); + + return ret; +} + +void +ecdb_capacity_float_set(Evas_Object *cap, float val) +{ + Edje_Message_Float msg; + + if (!cap) + { + printf("ecdb_capacity_float_set: NULL object!\n"); + return; + } + + msg.val = val; + edje_object_message_send(cap, EDJE_MESSAGE_FLOAT, 1, &msg); +} diff --git a/ecdb/trunk/src/ecdb_widgets.h b/ecdb/trunk/src/ecdb_widgets.h index 37d042d..c341dce 100644 --- a/ecdb/trunk/src/ecdb_widgets.h +++ b/ecdb/trunk/src/ecdb_widgets.h @@ -56,4 +56,7 @@ void ecdb_config_inwin_child_add(Evas_Object *inwin, Evas_Object *child, int c, int r, int cs, int rs); +Evas_Object *ecdb_capacity_add(Evas_Object *parent, const char *name); +void ecdb_capacity_float_set(Evas_Object *cap, float val); + #endif