diff options
author | Olliver Schinagl <o.schinagl@ultimaker.com> | 2015-02-05 08:03:17 (GMT) |
---|---|---|
committer | Olliver Schinagl <o.schinagl@ultimaker.com> | 2015-02-05 08:03:17 (GMT) |
commit | eac173ac7ee49987a4cc5ae6f9ae8ea34ac9895d (patch) | |
tree | 6aad59050275dddf904fc95a92f9d96d4f195d65 /src/eulogium.c | |
parent | df16d25702d9b428990a75d1ebf25dff1dbe4a3d (diff) | |
download | eulogium-eac173ac7ee49987a4cc5ae6f9ae8ea34ac9895d.zip eulogium-eac173ac7ee49987a4cc5ae6f9ae8ea34ac9895d.tar.gz eulogium-eac173ac7ee49987a4cc5ae6f9ae8ea34ac9895d.tar.bz2 |
end of day commit
Diffstat (limited to 'src/eulogium.c')
-rw-r--r-- | src/eulogium.c | 52 |
1 files changed, 45 insertions, 7 deletions
diff --git a/src/eulogium.c b/src/eulogium.c index ba97db3..e1198ee 100644 --- a/src/eulogium.c +++ b/src/eulogium.c @@ -8,12 +8,15 @@ #include <Ecore_Getopt.h> #include <Edje.h> #include <stdlib.h> +#include <string.h> #include "gettext.h" #define COPYRIGHT "Copyright © 2015 Olliver Schinagl <oliver@schinagl.nl> and various contributors (see AUTHORS)." #define EULOGIUM_THEME "eulogium.edj" +#define WIDTH 128 +#define HEIGHT 64 int main(int argc EINA_UNUSED, char **argv EINA_UNUSED) { @@ -43,10 +46,15 @@ int main(int argc EINA_UNUSED, char **argv EINA_UNUSED) }; int args; Eina_Prefix *prefix; - Ecore_Evas *ee; + Ecore_Evas *window; Evas *canvas; Eina_List *engines, *l; + Evas_Object *edje; const char *eulogium_edj = EULOGIUM_THEME; + const int eulogium_edj_size = sizeof(EULOGIUM_THEME); + int prefix_size; + char *theme_file; + int theme_file_size; #if ENABLE_NLS setlocale(LC_ALL, ""); @@ -64,7 +72,7 @@ int main(int argc EINA_UNUSED, char **argv EINA_UNUSED) if (!edje_init()) return EXIT_FAILURE; - prefix = eina_prefix_new(argv[0], main, + prefix = eina_prefix_new(argv[0], NULL, "EULOGIUM", "eulogium", eulogium_edj, @@ -74,17 +82,47 @@ int main(int argc EINA_UNUSED, char **argv EINA_UNUSED) LOCALE_DIR); args = ecore_getopt_parse(&optdesc, values, argc, argv); - if (args < 0) + if (args < 0) { EINA_LOG_CRIT("Could not parse arguments."); - if (args == 1) - ecore_getopt_help(stderr, &optdesc); + return EXIT_FAILURE; + } - + window = ecore_evas_new(NULL, 0, 0, WIDTH, HEIGHT, NULL); + canvas = ecore_evas_get(window); + edje = edje_object_add(canvas); + if (!edje) { + EINA_LOG_CRIT("Could not create edje object!"); + return EXIT_FAILURE; + } + prefix_size = strlen(eina_prefix_data_get(prefix)); + theme_file_size = prefix_size + eulogium_edj_size + 1; + theme_file = malloc(sizeof(char) * theme_file_size); + eina_str_join_len(theme_file, theme_file_size, '/', + eina_prefix_data_get(prefix), prefix_size, eulogium_edj, eulogium_edj_size); + if (!edje_object_file_set(edje, theme_file, "mainscreen")) { + int err = edje_object_load_error_get(edje); + const char *errmsg = edje_load_error_str(err); + EINA_LOG_ERR("Could not load 'mainscreen' from %s: %s (%d)", theme_file, errmsg, err); + + evas_object_del(edje); + return EXIT_FAILURE; + } + free(theme_file); + + evas_object_show(edje); + ecore_evas_title_set(window, PACKAGE_NAME); + ecore_evas_show(window); + + ecore_main_loop_begin(); + + evas_object_del(edje); + ecore_evas_free(window); eina_prefix_free(prefix); + eina_shutdown(); ecore_evas_shutdown(); edje_shutdown(); - return 0; + return EXIT_SUCCESS; } |