summaryrefslogtreecommitdiffstats
path: root/src/eulogium.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/eulogium.c')
-rw-r--r--src/eulogium.c52
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;
}