From 6b3e8c6be58c49a8ebc8f59e4c4262019b5ac929 Mon Sep 17 00:00:00 2001 From: Tiago Rezende Campos Falcao Date: Thu, 1 Apr 2010 14:22:45 +0000 Subject: [PATCH] External Photocam. By Fidencio MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Author: Fabiano FidĂȘncio SVN revision: 47649 --- .../data/edje_externals/Makefile.am | 1 + .../data/edje_externals/ico_photocam.png | Bin 0 -> 11838 bytes .../elementary/data/edje_externals/icons.edc | 1 + .../elementary/src/edje_externals/Makefile.am | 1 + .../src/edje_externals/elm_photocam.c | 180 ++++++++++++++++++ .../elementary/src/edje_externals/modules.inc | 1 + 6 files changed, 184 insertions(+) create mode 100644 legacy/elementary/data/edje_externals/ico_photocam.png create mode 100644 legacy/elementary/src/edje_externals/elm_photocam.c diff --git a/legacy/elementary/data/edje_externals/Makefile.am b/legacy/elementary/data/edje_externals/Makefile.am index e1db7d48f9..bdbe895bd0 100644 --- a/legacy/elementary/data/edje_externals/Makefile.am +++ b/legacy/elementary/data/edje_externals/Makefile.am @@ -18,6 +18,7 @@ ico_clock.png \ ico_fileselector.png \ ico_hoversel.png \ ico_notepad.png \ +ico_photocam.png \ ico_progressbar.png \ ico_radio.png \ ico_scrolled_entry.png \ diff --git a/legacy/elementary/data/edje_externals/ico_photocam.png b/legacy/elementary/data/edje_externals/ico_photocam.png new file mode 100644 index 0000000000000000000000000000000000000000..c789dbbf003f9318e7f034afefebaa95c5a74940 GIT binary patch literal 11838 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 + elm_photocam_file_set(obj, p->file); + if (p->zoom_exists) + elm_photocam_zoom_set(obj, p->zoom); + if (p->zoom_mode) + { + Elm_Photocam_Zoom_Mode set = _zoom_mode_setting_get(p->zoom_mode); + elm_photocam_zoom_mode_set(obj, set); + } + if (p->paused_exists) + elm_photocam_paused_set(obj, p->paused); +} + +static Eina_Bool +external_photocam_param_set(void *data __UNUSED__, Evas_Object *obj, const Edje_External_Param *param) +{ + if (!strcmp(param->name, "file")) + { + if (param->type == EDJE_EXTERNAL_PARAM_TYPE_STRING) + { + elm_photocam_file_set(obj, param->s); + return EINA_TRUE; + } + } + else if (!strcmp(param->name, "zoom")) + { + if (param->type == EDJE_EXTERNAL_PARAM_TYPE_DOUBLE) + { + elm_photocam_zoom_set(obj, param->d); + return EINA_TRUE; + } + } + else if (!strcmp(param->name, "zoom mode")) + { + if (param->type == EDJE_EXTERNAL_PARAM_TYPE_STRING) + { + Elm_Photocam_Zoom_Mode set = _zoom_mode_setting_get(param->s); + elm_photocam_zoom_mode_set(obj, set); + return EINA_TRUE; + } + } + else if (!strcmp(param->name, "paused")) + { + if (param->type == EDJE_EXTERNAL_PARAM_TYPE_BOOL) + { + elm_photocam_paused_set(obj, param->i); + return EINA_TRUE; + } + } + + ERR("unknown parameter '%s' of type '%s'", + param->name, edje_external_param_type_str(param->type)); + + return EINA_FALSE; +} + +static Eina_Bool +external_photocam_param_get(void *data __UNUSED__, const Evas_Object *obj, Edje_External_Param *param) +{ + if (!strcmp(param->name, "file")) + { + if (param->type == EDJE_EXTERNAL_PARAM_TYPE_STRING) + { + param->s = elm_photocam_file_get(obj); + return EINA_TRUE; + } + } + else if (!strcmp(param->name, "zoom")) + { + param->d = elm_photocam_zoom_get(obj); + return EINA_TRUE; + } + else if (!strcmp(param->name, "zoom mode")) + { + Elm_Photocam_Zoom_Mode zoom_mode_set = elm_photocam_zoom_mode_get(obj); + param->s = choices[zoom_mode_set]; + return EINA_TRUE; + } + else if(!strcmp(param->name, "paused")) + { + param->i = elm_photocam_paused_get(obj); + return EINA_TRUE; + } + + ERR("unknown parameter '%s' of type '%s'", + param->name, edje_external_param_type_str(param->type)); + + return EINA_FALSE; +} + +static void * +external_photocam_params_parse(void *data, Evas_Object *obj, const Eina_List *params) +{ + Elm_Params_Photocam *mem; + Edje_External_Param *param; + const Eina_List *l; + + mem = calloc(1, sizeof(Elm_Params_Photocam)); + if (!mem) + return NULL; + + EINA_LIST_FOREACH(params, l, param) + { + if (!strcmp(param->name, "file")) + mem->file = eina_stringshare_add(param->s); + else if (!strcmp(param->name, "zoom")) + { + mem->zoom = param->d; + mem->zoom_exists = EINA_TRUE; + } + else if (!strcmp(param->name, "zoom mode")) + mem->zoom_mode = eina_stringshare_add(param->s); + else if (!strcmp(param->name, "paused")) + { + mem->paused = !!param->i; + mem->paused_exists = EINA_TRUE; + } + } + + return mem; +} + +static void +external_photocam_params_free(void *params) +{ + Elm_Params_Photocam *mem = params; + + if (mem->file) + eina_stringshare_del(mem->file); + if (mem->zoom_mode) + eina_stringshare_del(mem->zoom_mode); + free(mem); +} + +static Edje_External_Param_Info external_photocam_params[] = { + EDJE_EXTERNAL_PARAM_INFO_STRING("file"), + EDJE_EXTERNAL_PARAM_INFO_DOUBLE("zoom"), + EDJE_EXTERNAL_PARAM_INFO_CHOICE_FULL("zoom mode", "manual", choices), + EDJE_EXTERNAL_PARAM_INFO_BOOL("paused"), + EDJE_EXTERNAL_PARAM_INFO_SENTINEL +}; + +DEFINE_EXTERNAL_ICON_ADD(photocam, "photocam"); +DEFINE_EXTERNAL_TYPE_SIMPLE(photocam, "Photocam"); diff --git a/legacy/elementary/src/edje_externals/modules.inc b/legacy/elementary/src/edje_externals/modules.inc index 16484bcb51..3f171a145f 100644 --- a/legacy/elementary/src/edje_externals/modules.inc +++ b/legacy/elementary/src/edje_externals/modules.inc @@ -7,6 +7,7 @@ DEFINE_TYPE(clock) DEFINE_TYPE(fileselector) DEFINE_TYPE(hoversel) DEFINE_TYPE(notepad) +DEFINE_TYPE(photocam) DEFINE_TYPE(progressbar) DEFINE_TYPE(radio) DEFINE_TYPE(scrolled_entry)