From: <enl...@li...> - 2005-01-25 22:01:36
|
Enlightenment CVS committal Author : codewarrior Project : e17 Module : apps/e_utils Dir : e17/apps/e_utils/src/bin/e17setroot Modified Files: e17setroot.c Log Message: 1- added dj2's patch for "noload" (create eet, dont use it) and option using 2- fixed -t | --tile (dj2 fixed engrave, so now we can use it) 3- updated todo 4- general cleanups =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e_utils/src/bin/e17setroot/e17setroot.c,v retrieving revision 1.13 retrieving revision 1.14 diff -u -3 -r1.13 -r1.14 --- e17setroot.c 25 Jan 2005 09:35:28 -0000 1.13 +++ e17setroot.c 25 Jan 2005 22:01:07 -0000 1.14 @@ -19,7 +19,9 @@ * implement -g (get current bg) */ -int e_bg_type; +static int e_bg_type; +static int e_bg_no_load = 0; +static char *e_bg_img_file = NULL; enum E_Bg_Types { @@ -28,6 +30,7 @@ E_BG_CENTER = 3, E_BG_FIT = 4, E_BG_GET = 5, + E_BG_NO_LOAD = 6, }; typedef enum E_Bg_Types E_Bg_Types; @@ -46,48 +49,36 @@ /* parse command line options */ void _e_bg_bg_parseargs(int argc, char **argv) { int c; - int digit_optind = 0; - int this_option_optind = optind ? optind : 1; - int option_index = 0; - static char *options = "t:s:c:f:gh"; + static char *options = "tscfghn"; static struct option long_options[] = { - {"tile", 1, 0, E_BG_TILE}, - {"scale", 1, 0, E_BG_SCALE}, - {"center", 1, 0, E_BG_CENTER}, - {"fit", 1, 0, E_BG_FIT}, + {"tile", 0, 0, E_BG_TILE}, + {"scale", 0, 0, E_BG_SCALE}, + {"center", 0, 0, E_BG_CENTER}, + {"fit", 0, 0, E_BG_FIT}, {"get", 0, 0, E_BG_GET}, + {"noload", 0, 0, E_BG_NO_LOAD}, {0, 0, 0, 0} }; - while((c = getopt_long (argc, argv, options, long_options, &option_index)) - != -1) { + while((c = getopt_long (argc, argv, options, long_options, NULL)) != -1) { switch (c) { - /* tile */ case E_BG_TILE: case 't': - //long_options[option_index].name - //optarg e_bg_type = E_BG_TILE; - _e_bg_bg_eet_gen(optarg); - return; break; /* scale */ case E_BG_SCALE: case 's': e_bg_type = E_BG_SCALE; - _e_bg_bg_eet_gen(optarg); - return; break; /* center */ case E_BG_CENTER: case 'c': e_bg_type = E_BG_CENTER; - _e_bg_bg_eet_gen(optarg); - return; break; /* fit */ @@ -98,30 +89,24 @@ /* get current bg */ case E_BG_GET: case 'g': - ecore_event_handler_add(E_RESPONSE_BACKGROUND_GET, _e_bg_bg_get, NULL); - e_background_get(); - ecore_main_loop_begin(); - return; + e_bg_type = E_BG_GET; break; - /* show help screen */ - case 'h': - _e_bg_bg_help(); + case E_BG_NO_LOAD: + case 'n': + e_bg_no_load = 1; break; - + /* show help screen */ + case 'h': default: _e_bg_bg_help(); - return; break; } } - - if (optind < argc) { - /* add some sort of fix to detect fake / nonexistant images? */ - _e_bg_bg_eet_gen(argv[optind]); - } - + + if (optind < argc) + e_bg_img_file = argv[optind]; } /* return dir from a full path filename */ @@ -209,6 +194,9 @@ Engrave_Part *part; Engrave_Part_State *ps; + /* make sure we got a file name */ + if (!filename) return; + if (strcmp(filename + strlen(filename) - 4, ".eet") == 0) { _e_bg_bg_set(filename); ecore_main_loop_quit(); @@ -268,14 +256,14 @@ case E_BG_TILE: /* FIXME: This is a temp until dj2 fixes engrave */ //engrave_part_state_max_size_set(ps, w, h); - engrave_part_state_fill_size_relative_set(ps, 0.1, 0.1); + engrave_part_state_fill_size_relative_set(ps, 0.0, 0.0); engrave_part_state_fill_size_offset_set(ps, w, h); break; default: /* FIXME: This is a temp until dj2 fixes engrave */ //engrave_part_state_max_size_set(ps, w, h); - engrave_part_state_fill_size_relative_set(ps, 0.1, 0.1); + engrave_part_state_fill_size_relative_set(ps, 0.0, 0.0); engrave_part_state_fill_size_offset_set(ps, w, h); break; } @@ -285,11 +273,13 @@ engrave_eet_output(eet, eet_file); engrave_file_free(eet); + /* don't do anything more if we're not loading the image */ + if (e_bg_no_load) + return; + /* set the background */ - if (!_e_bg_bg_set(eet_file)) { - ecore_main_loop_quit(); + if (!_e_bg_bg_set(eet_file)) return; - } /* If we're using pseudo-trans for eterm, then this will help */ esetroot = malloc(strlen("Esetroot ") + strlen(filename) + 1); @@ -297,22 +287,31 @@ strcat(esetroot, filename); system(esetroot); free(esetroot); - ecore_main_loop_quit(); } int main(int argc, char **argv) { - if (!e_init(":0.0")) { - printf("Can't connect to enlightenment, perhaps we are not on :0.0!\n"); - return 0; - } - - ecore_init(); - _e_bg_bg_parseargs(argc, argv); - - e_shutdown(); - ecore_shutdown(); + + if (!e_bg_no_load) { + if (!e_init(":0.0")) { + printf("Can't connect to enlightenment, perhaps we are not on :0.0!\n"); + return 0; + } + } + + if (e_bg_type == E_BG_GET) { + ecore_init(); + ecore_event_handler_add(E_RESPONSE_BACKGROUND_GET, _e_bg_bg_get, NULL); + e_background_get(); + ecore_main_loop_begin(); + ecore_shutdown(); + } else + _e_bg_bg_eet_gen(e_bg_img_file); + + if (!e_bg_no_load) + e_shutdown(); return 0; } + |