Enlightenment CVS committal Author : andreas99 Project : misc Module : elapse
Dir : misc/elapse/src Modified Files: Elapse.h gui.c main.c time.c util.c Log Message: -> for changes see Changelog file... (new theme is on the way...) (changed two dates in Changelog from 2003 to 2004, because I think it was a typo) =================================================================== RCS file: /cvsroot/enlightenment/misc/elapse/src/Elapse.h,v retrieving revision 1.4 retrieving revision 1.5 diff -u -3 -r1.4 -r1.5 --- Elapse.h 26 May 2004 04:06:27 -0000 1.4 +++ Elapse.h 27 Mar 2005 23:31:29 -0000 1.5 @@ -21,25 +21,29 @@ #define DEBUG_INFO 4 /* Information Only */ typedef struct { - int sticky; - int lower; - char theme[PATH_MAX]; - int debug; - char *format; + int sticky; + int lower; + int below; + enum {TRANSPARENT, SHAPE} alpha; + char theme[PATH_MAX]; + int debug; + char *format; } Config; typedef struct { - Config conf; - Evas *evas; - Ecore_Evas *ee; - Ecore_Timer *timer; - Evas_Object *edje; - Evas_Object *smart; + Config conf; + Evas *evas; + Ecore_Evas *ee; + Ecore_Timer *timer; + Evas_Object *edje; + Evas_Object *smart; + Evas_Object *shape; } Elapse; /* gui.c */ void elapse_gui_init(Elapse *elapse, int argc, const char **argv); void elapse_cb_window_move(Ecore_Evas *ee); +void resize_cb(Ecore_Evas *ee); /* main.c */ void show_help(void); =================================================================== RCS file: /cvsroot/enlightenment/misc/elapse/src/gui.c,v retrieving revision 1.6 retrieving revision 1.7 diff -u -3 -r1.6 -r1.7 --- gui.c 26 May 2004 04:06:27 -0000 1.6 +++ gui.c 27 Mar 2005 23:31:29 -0000 1.7 @@ -2,76 +2,154 @@ void elapse_gui_init(Elapse *elapse, int argc, const char **argv) { - Evas_Coord iw, ih; - int x, y, w, h; - Ecore_X_Window win; - debug(DEBUG_INFO, elapse, "elapse_gui_init()"); - - debug(DEBUG_INFO, elapse, "ecore_init()"); - ecore_init(); - ecore_app_args_set(argc, argv); - - debug(DEBUG_INFO, elapse, "ecore_evas_init()"); - ecore_evas_init(); - elapse->ee = ecore_evas_software_x11_new(NULL, 0, 0, 0, 0, 0); - ecore_evas_title_set(elapse->ee, "Elapse"); - ecore_evas_name_class_set(elapse->ee, "Elapse", "Elapse"); - ecore_evas_borderless_set(elapse->ee, 1); - win = ecore_evas_software_x11_window_get(elapse->ee); - ecore_x_window_prop_layer_set(win, ECORE_X_WINDOW_LAYER_BELOW); - if (elapse->conf.sticky) - ecore_x_window_prop_sticky_set(win, 1); - - elapse->evas = ecore_evas_get(elapse->ee); - - debug(DEBUG_INFO, elapse, "esmart_trans_x11_new()"); - elapse->smart = esmart_trans_x11_new(elapse->evas); - evas_object_move(elapse->smart, 0, 0); - evas_object_layer_set(elapse->smart, -5); - evas_object_name_set(elapse->smart, "root_bg"); - evas_object_show(elapse->smart); - - debug(DEBUG_INFO, elapse, "edje_init()"); - edje_init(); - elapse->edje = edje_object_add(elapse->evas); - x = edje_object_file_set(elapse->edje, elapse->conf.theme, "elapse"); - if (!x) { - debug(DEBUG_FUCKED, elapse, "Could not load theme"); - exit(1); - } - evas_object_move(elapse->edje, 0, 0); - edje_object_size_min_get(elapse->edje, &iw, &ih); - evas_object_show(elapse->edje); - - debug(DEBUG_INFO, elapse, "object resize"); - evas_object_resize(elapse->edje, (int)iw, (int)ih); - evas_object_resize(elapse->smart, (int)iw, (int)ih); - ecore_evas_resize(elapse->ee, (int)iw, (int)ih); - - debug(DEBUG_INFO, elapse, "ecore_evas_show()"); - ecore_evas_show(elapse->ee); - - ecore_evas_geometry_get(elapse->ee, &x, &y, &w, &h); - esmart_trans_x11_freshen(elapse->smart, x, y, w, h); - - ecore_evas_callback_move_set(elapse->ee, elapse_cb_window_move); - edje_object_signal_callback_add(elapse->edje, "quit", "quit", - (void *)ecore_main_loop_quit, NULL); + Evas_Coord iw, ih; + int load; + const char *conf_string; + Ecore_X_Window win; + int x, y, w, h; + + debug(DEBUG_INFO, elapse, "elapse_gui_init()"); + + debug(DEBUG_INFO, elapse, "ecore_init()"); + ecore_init(); + ecore_app_args_set(argc, argv); + + debug(DEBUG_INFO, elapse, "ecore_evas_init()"); + ecore_evas_init(); + + debug(DEBUG_INFO, elapse, "edje_init()"); + edje_init(); + + if (ecore_evas_engine_type_supported_get(ECORE_EVAS_ENGINE_SOFTWARE_X11)) + elapse->ee = ecore_evas_software_x11_new(NULL, 0, 0, 0, 0, 0); + else + { + if (ecore_evas_engine_type_supported_get(ECORE_EVAS_ENGINE_SOFTWARE_FB)) + elapse->ee = ecore_evas_fb_new(NULL, 0, 0, 0); + } + if (!elapse->ee) + { + if (ecore_evas_engine_type_supported_get(ECORE_EVAS_ENGINE_SOFTWARE_FB)) + elapse->ee = ecore_evas_fb_new(NULL, 0, 0, 0); + if (!elapse->ee) + elapse->ee = ecore_evas_gl_x11_new(NULL, 0, 0, 0, 0, 0); + if (!elapse->ee) + { + fprintf(stderr, "Cannot create Canvas!\n"); + exit(-1); + } + } + + ecore_evas_title_set(elapse->ee, "Elapse"); + ecore_evas_name_class_set(elapse->ee, "Elapse", "Elapse"); + ecore_evas_borderless_set(elapse->ee, 1); + if (elapse->conf.sticky) + ecore_evas_sticky_set(elapse->ee, 1); + + elapse->evas = ecore_evas_get(elapse->ee); + + elapse->edje = edje_object_add(elapse->evas); + + load = edje_object_file_set(elapse->edje, elapse->conf.theme, "elapse"); + if (!load) { + debug(DEBUG_FUCKED, elapse, "Could not load theme"); + exit(1); + } + + conf_string = edje_object_data_get (elapse->edje, "alpha"); + if (conf_string) + { + if (!strcmp (conf_string, "shape")) + elapse->conf.alpha = SHAPE; + } + + evas_object_move(elapse->edje, 0, 0); + + edje_object_size_min_get(elapse->edje, &iw, &ih); + + win = ecore_evas_software_x11_window_get(elapse->ee); + + if (elapse->conf.below) + ecore_x_window_prop_layer_set(win, ECORE_X_WINDOW_LAYER_BELOW); + + if (elapse->conf.alpha == TRANSPARENT) + { + debug(DEBUG_INFO, elapse, "esmart_trans_x11_new()"); + elapse->smart = esmart_trans_x11_new(elapse->evas); + evas_object_move(elapse->smart, 0, 0); + evas_object_layer_set(elapse->smart, -5); + evas_object_name_set(elapse->smart, "root_bg"); + evas_object_show(elapse->smart); + + debug(DEBUG_INFO, elapse, "smart object resize"); + evas_object_resize(elapse->smart, (int)iw, (int)ih); + + ecore_evas_geometry_get(elapse->ee, &x, &y, &w, &h); + esmart_trans_x11_freshen(elapse->smart, x, y, w, h); + + ecore_evas_callback_move_set(elapse->ee, elapse_cb_window_move); + } + else if (elapse->conf.alpha == SHAPE) + { + ecore_evas_shaped_set (elapse->ee, 1); + + elapse->shape = evas_object_rectangle_add(elapse->evas); + evas_object_move(elapse->shape, 0, 0); + evas_object_resize(elapse->shape, (int)iw, (int)ih); + + evas_object_color_set(elapse->shape, 0, 0, 0, 0); + evas_object_focus_set(elapse->shape, 1); + + evas_object_show(elapse->shape); + } + + debug(DEBUG_INFO, elapse, "object resize"); + evas_object_resize(elapse->edje, (int)iw, (int)ih); + ecore_evas_resize(elapse->ee, (int)iw, (int)ih); + + ecore_evas_data_set(elapse->ee, "elapse", elapse); + ecore_evas_callback_resize_set(elapse->ee, resize_cb); + + debug(DEBUG_INFO, elapse, "ecore_evas_show()"); + ecore_evas_show(elapse->ee); + evas_object_show(elapse->edje); + + edje_object_signal_callback_add(elapse->edje, "quit", "quit", + (void *)ecore_main_loop_quit, NULL); } void elapse_cb_window_move(Ecore_Evas *ee) { - int x, y, w, h; - Evas_Object *o; - Elapse elapse; - - elapse.conf.debug = 1; - - ecore_evas_geometry_get(ee, &x, &y, &w, &h); + int x, y, w, h; + Evas_Object *o; + Elapse elapse; + + elapse.conf.debug = 1; + + ecore_evas_geometry_get(ee, &x, &y, &w, &h); + + o = evas_object_name_find(ecore_evas_get(ee), "root_bg"); + + if (!o) debug(DEBUG_FUCKED, &elapse, "Smart Object Not Found"); + + esmart_trans_x11_freshen(o, x, y, w, h); +} + +void resize_cb(Ecore_Evas *ee) +{ + Evas_Coord w, h, x, y; + Elapse *elapse; + + elapse = ecore_evas_data_get(ee, "elapse"); - o = evas_object_name_find(ecore_evas_get(ee), "root_bg"); + evas_output_viewport_get(elapse->evas, NULL, NULL, &w, &h); + ecore_evas_geometry_get(elapse->ee, &x, &y, &w, &h); - if (!o) debug(DEBUG_FUCKED, &elapse, "Smart Object Not Found"); + evas_object_resize(elapse->edje, w, h); - esmart_trans_x11_freshen(o, x, y, w, h); + if (elapse->conf.alpha == TRANSPARENT) + { + evas_object_resize(elapse->smart, w, h); + esmart_trans_x11_freshen(elapse->smart, x, y, w, h); + } } =================================================================== RCS file: /cvsroot/enlightenment/misc/elapse/src/main.c,v retrieving revision 1.4 retrieving revision 1.5 diff -u -3 -r1.4 -r1.5 --- main.c 19 Apr 2004 19:33:54 -0000 1.4 +++ main.c 27 Mar 2005 23:31:29 -0000 1.5 @@ -3,84 +3,91 @@ int main(int argc, const char *argv[]) { - Elapse elapse; - int i = 0; + Elapse elapse; + int i = 0; - elapse.conf.sticky = 1; - elapse.conf.lower = 1; - strncpy(elapse.conf.theme, PACKAGE_DATA_DIR "/themes/elapse.eet", - PATH_MAX); - elapse.conf.debug = DEBUG_LEVEL; - elapse.conf.format = NULL; - - while (++i < argc) { - if (!strcmp(argv[i], "-h") || - !strcmp(argv[i], "--help")) { - show_help(); - } - - if (!strcmp(argv[i], "-q") || - !strcmp(argv[i], "--quiet")) { - elapse.conf.debug = 1; - } - - if (!strcmp(argv[i], "-v") || - !strcmp(argv[i], "--verbose")) { - if (i < argc - 1) { - int tmp = atoi(argv[i + 1]); - if (tmp < 0 ) elapse.conf.debug = 1; - else { - elapse.conf.debug = tmp; - i++; - } - } - } - - if (!strcmp(argv[i], "-f") || - !strcmp(argv[i], "--format")) { - if (++i == argc) show_help(); - elapse.conf.format = strdup(argv[i]); - } - - if (!strcmp(argv[i], "-n") || - !strcmp(argv[i], "--not-sticky")) { - elapse.conf.sticky = 0; - } - - if (!strcmp(argv[i], "-t") || - !strcmp(argv[i], "--theme")) { - if (++i == argc) show_help(); - strncpy(elapse.conf.theme, argv[i], PATH_MAX); - } - } - - elapse_gui_init(&elapse, argc, argv); - - debug(DEBUG_INFO, &elapse, "ecore_timer_add()"); - elapse.timer = ecore_timer_add(1, (void *)elapse_time_set, &elapse); + elapse.conf.sticky = 1; + elapse.conf.lower = 1; + elapse.conf.below = 1; + elapse.conf.alpha = TRANSPARENT; + strncpy(elapse.conf.theme, PACKAGE_DATA_DIR "/themes/elapse.eet", + PATH_MAX); + elapse.conf.debug = DEBUG_LEVEL; + elapse.conf.format = NULL; + + while (++i < argc) { + if (!strcmp(argv[i], "-h") || + !strcmp(argv[i], "--help")) { + show_help(); + } + + if (!strcmp(argv[i], "-q") || + !strcmp(argv[i], "--quiet")) { + elapse.conf.debug = 1; + } + + if (!strcmp(argv[i], "-v") || + !strcmp(argv[i], "--verbose")) { + if (i < argc - 1) { + int tmp = atoi(argv[i + 1]); + if (tmp < 0 ) elapse.conf.debug = 1; + else { + elapse.conf.debug = tmp; + i++; + } + } + } + + if (!strcmp(argv[i], "-f") || + !strcmp(argv[i], "--format")) { + if (++i == argc) show_help(); + elapse.conf.format = strdup(argv[i]); + } + + if (!strcmp(argv[i], "-s") || + !strcmp(argv[i], "--not-sticky")) { + elapse.conf.sticky = 0; + } + if (!strcmp(argv[i], "-b") || + !strcmp(argv[i], "--not-below")) { + elapse.conf.below = 0; + } + + if (!strcmp(argv[i], "-t") || + !strcmp(argv[i], "--theme")) { + if (++i == argc) show_help(); + strncpy(elapse.conf.theme, argv[i], PATH_MAX); + } + } + + elapse_gui_init(&elapse, argc, argv); + + debug(DEBUG_INFO, &elapse, "ecore_timer_add()"); + elapse.timer = ecore_timer_add(1, (void *)elapse_time_set, &elapse); - debug(DEBUG_INFO, &elapse, "ecore_main_loop_begin()"); - ecore_main_loop_begin(); + debug(DEBUG_INFO, &elapse, "ecore_main_loop_begin()"); + ecore_main_loop_begin(); - debug(DEBUG_INFO, &elapse, "freeing memory"); - free(elapse.conf.format); + debug(DEBUG_INFO, &elapse, "freeing memory"); + free(elapse.conf.format); - debug(DEBUG_INFO, &elapse, "exiting elapse"); - return 0; + debug(DEBUG_INFO, &elapse, "exiting elapse"); + return 0; } void show_help(void) { - printf("Elapse - The Enlightened Clock\n"); - printf("By DigitalFallout\n"); - printf("=-=-=-=-=-=-=-=-=\n"); - printf("Runtime Options\n"); - printf("-f --format\t\tSpecify a time format, see strftime(3)\n"); - printf("-h --help\t\tPrint this help screen and exit\n"); - printf("-n --not-sticky\tDisable sticky behaviour\n"); - printf("-q --quiet\t\tSurpress all output\n"); - printf("-t --theme\t\tPath to the theme you wish to use\n"); - printf("-v --verbose\t\tSet a new verbosity level (1-4)\n"); - exit(1); + printf("Elapse - The Enlightened Clock\n"); + printf("By DigitalFallout\n"); + printf("=-=-=-=-=-=-=-=-=\n"); + printf("Runtime Options\n"); + printf("-f --format\t\tSpecify a time format, see strftime(3)\n"); + printf("-h --help\t\tPrint this help screen and exit\n"); + printf("-s --not-sticky\tDisable sticky behaviour\n"); + printf("-b --not-below\tDisable below behaviour\n"); + printf("-q --quiet\t\tSurpress all output\n"); + printf("-t --theme\t\tPath to the theme you wish to use\n"); + printf("-v --verbose\t\tSet a new verbosity level (1-4)\n"); + exit(1); } - + =================================================================== RCS file: /cvsroot/enlightenment/misc/elapse/src/time.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -3 -r1.2 -r1.3 --- time.c 26 Apr 2004 15:20:04 -0000 1.2 +++ time.c 27 Mar 2005 23:31:29 -0000 1.3 @@ -2,20 +2,20 @@ int elapse_time_set(Elapse *elapse) { - struct tm *ts; - time_t ctime; - char str[PATH_MAX]; + struct tm *ts; + time_t ctime; + char str[PATH_MAX]; - ctime = time(NULL); - ts = localtime(&ctime); - if (elapse->conf.format) { - strftime(str, PATH_MAX, elapse->conf.format, ts); - } else { - strncpy(str, asctime(ts), PATH_MAX); - str[strlen(str)-1] = '\0'; - } - - edje_object_part_text_set(elapse->edje, "time", str); + ctime = time(NULL); + ts = localtime(&ctime); + if (elapse->conf.format) { + strftime(str, PATH_MAX, elapse->conf.format, ts); + } else { + strncpy(str, asctime(ts), PATH_MAX); + str[strlen(str)-1] = '\0'; + } - return 1; + edje_object_part_text_set(elapse->edje, "time", str); + + return 1; } =================================================================== RCS file: /cvsroot/enlightenment/misc/elapse/src/util.c,v retrieving revision 1.1 retrieving revision 1.2 diff -u -3 -r1.1 -r1.2 --- util.c 9 Apr 2004 20:14:23 -0000 1.1 +++ util.c 27 Mar 2005 23:31:29 -0000 1.2 @@ -2,8 +2,8 @@ void debug(int level, Elapse *elapse, char *message) { - if (level <= elapse->conf.debug ) { - printf("Debug [%d/%d] %s\n", - elapse->conf.debug, level, message); - } + if (level <= elapse->conf.debug ) { + printf("Debug [%d/%d] %s\n", + elapse->conf.debug, level, message); + } } ------------------------------------------------------- SF email is sponsored by - The IT Product Guide Read honest & candid reviews on hundreds of IT Products from real users. Discover which products truly live up to the hype. Start reading now. http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click _______________________________________________ enlightenment-cvs mailing list enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs