From: <enl...@li...> - 2006-03-14 11:42:29
|
Enlightenment CVS committal Author : codewarrior Project : e17 Module : proto Dir : e17/proto/etk/src/lib Modified Files: etk_argument.c etk_argument.h etk_tree.c etk_tree.h Log Message: - more argument work - allow more va_list style functions on the tree =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/etk/src/lib/etk_argument.c,v retrieving revision 1.3 retrieving revision 1.4 diff -u -3 -r1.3 -r1.4 --- etk_argument.c 2 Mar 2006 14:37:50 -0000 1.3 +++ etk_argument.c 14 Mar 2006 11:42:12 -0000 1.4 @@ -2,11 +2,14 @@ #include <stdio.h> #include <stdlib.h> #include <string.h> +#include <Evas.h> #include "etk_utils.h" #include "etk_argument.h" #define ETK_ARGUMENT_FLAG_PRIV_SET (1 << 4) +static Evas_Hash *_etk_argument_extra = NULL; + /** * @brief Parses the arguments as described by the user * @param args the arguments you are interested in @@ -77,12 +80,12 @@ if(!cur) continue; /* min length is 2, anything less is invalid */ - if(strlen(cur) < 2) + if(strlen(cur) < 2 && cur[0] == '-') { printf(_("Argument %d '%s' is too short\n"), i, argv[i]); return ETK_ARGUMENT_RETURN_MALFORMED; } - + /* short (single char) argument of the form -d val or -dval */ if(cur[0] == '-' && cur[1] != '-') { @@ -106,10 +109,7 @@ return ETK_ARGUMENT_RETURN_REQUIRED_VALUE_NOT_FOUND; } - if(arg->data) - *(arg->data) = *val; - else - arg->data = val; + arg->data = evas_list_append(arg->data, val); arg->flags |= ETK_ARGUMENT_FLAG_PRIV_SET; ++i; } @@ -171,10 +171,7 @@ return ETK_ARGUMENT_RETURN_REQUIRED_VALUE_NOT_FOUND; } - if(arg->data) - *(arg->data) = *val; - else - arg->data = val; + arg->data = evas_list_append(arg->data, val); arg->flags |= ETK_ARGUMENT_FLAG_PRIV_SET; if(!tmp) @@ -196,10 +193,54 @@ free(cur); cur = argv[i]; } + + if(arg->flags & ETK_ARGUMENT_FLAG_MULTIVALUE && i + 1 < argc && + arg->short_name != -1 && arg->flags & ETK_ARGUMENT_FLAG_PRIV_SET) + { + /* if we want multi-argument arguments like: + * foo --bar "one" "two" "three" + * then this is where we get them. + */ + char *extra; + Evas_List *value = NULL; + int j = 1; + + extra = argv[i + j]; + while(i + j < argc) + { + if(extra[0] == '-') + { + j = argc; + break; + } + + if(arg->long_name != NULL) + value = evas_hash_find(_etk_argument_extra, arg->long_name); + else if(arg->short_name != ' ' && arg->short_name != -1) + value = evas_hash_find(_etk_argument_extra, &arg->short_name); + else + break; + + if(!value) + { + value = evas_list_append(value, extra); + _etk_argument_extra = evas_hash_add(_etk_argument_extra, arg->long_name ? arg->long_name : &arg->short_name, value); + } + else + { + _etk_argument_extra = evas_hash_del(_etk_argument_extra, arg->long_name ? arg->long_name : &arg->short_name, value); + value = evas_list_append(value, extra); + _etk_argument_extra = evas_hash_add(_etk_argument_extra, arg->long_name ? arg->long_name : &arg->short_name, value); + } + + ++j; + extra = argv[i + j]; + } + } - ++arg; + ++arg; } - } + } } /* check for required arguments */ @@ -229,4 +270,12 @@ return ETK_ARGUMENT_RETURN_OK; } +Evas_List *etk_argument_extra_find(const char *key) +{ + if(!_etk_argument_extra) + return NULL; + + return evas_hash_find(_etk_argument_extra, "column"); +} + /** @} */ =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/etk/src/lib/etk_argument.h,v retrieving revision 1.2 retrieving revision 1.3 diff -u -3 -r1.2 -r1.3 --- etk_argument.h 2 Mar 2006 00:48:00 -0000 1.2 +++ etk_argument.h 14 Mar 2006 11:42:13 -0000 1.3 @@ -22,14 +22,15 @@ ETK_ARGUMENT_FLAG_REQUIRED = 1 << 0, /* argument itself is required */ ETK_ARGUMENT_FLAG_OPTIONAL = 1 << 1, /* argument itself is optional */ ETK_ARGUMENT_FLAG_VALUE_REQUIRED = 1 << 2, /* value of the argument is required */ - ETK_ARGUMENT_FLAG_NONE = 1 << 3 /* used when terminating options */ + ETK_ARGUMENT_FLAG_MULTIVALUE = 1 << 3, /* argument uses multi-valued args */ + ETK_ARGUMENT_FLAG_NONE = 1 << 4 /* used when terminating options */ }; struct _Etk_Argument { char *long_name; /* long name of argument: --foo */ char short_name; /* short name of argument: -f */ - char *data; /* filled with value of argument: -f blah */ + Evas_List *data; /* filled with value of argument: -f blah */ void (*func)(Etk_Argument *args, int index); /* callback */ void *func_data; /* data to the callback */ Etk_Argument_Flags flags; /* flags */ @@ -37,7 +38,8 @@ }; int etk_arguments_parse(Etk_Argument *args, int argc, char **argv); - +Evas_List *etk_argument_extra_find(const char *key); + /** @} */ #endif =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/etk/src/lib/etk_tree.c,v retrieving revision 1.56 retrieving revision 1.57 diff -u -3 -r1.56 -r1.57 --- etk_tree.c 12 Mar 2006 12:13:02 -0000 1.56 +++ etk_tree.c 14 Mar 2006 11:42:13 -0000 1.57 @@ -759,6 +759,25 @@ } /** + * @brief Appends a new row to the tree using a va_list + * @param tree a tree + * @param args a va_list consisting of an Etk_Tree_Col * followed by the value of the cell, then again, an Etk_Tree_Col * followed by its value... terminated by NULL + * @return Returns the new row + */ +Etk_Tree_Row *etk_tree_append_valist(Etk_Tree *tree, va_list args) +{ + Etk_Tree_Row *new_row; + + + if (!tree || !tree->built) + return NULL; + + new_row = _etk_tree_row_new_valist(tree, &tree->root, args); + + return new_row; +} + +/** * @brief Appends a new row as a child of a another row of the tree. The tree has to be in the ETK_TREE_MODE_TREE mode * @param row a row * @param ... an Etk_Tree_Col * followed by the value(s) of the cell, then again, an Etk_Tree_Col * followed by its value(s)... terminated by NULL =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/etk/src/lib/etk_tree.h,v retrieving revision 1.20 retrieving revision 1.21 diff -u -3 -r1.20 -r1.21 --- etk_tree.h 12 Mar 2006 12:13:02 -0000 1.20 +++ etk_tree.h 14 Mar 2006 11:42:13 -0000 1.21 @@ -188,6 +188,7 @@ void etk_tree_unselect_all(Etk_Tree *tree); Etk_Tree_Row *etk_tree_append(Etk_Tree *tree, ...); +Etk_Tree_Row *etk_tree_append_valist(Etk_Tree *tree, va_list args); Etk_Tree_Row *etk_tree_append_to_row(Etk_Tree_Row *row, ...); void etk_tree_row_del(Etk_Tree_Row *row); void etk_tree_clear(Etk_Tree *tree); |
From: <enl...@li...> - 2006-03-14 11:54:28
|
Enlightenment CVS committal Author : codewarrior Project : e17 Module : proto Dir : e17/proto/enity Modified Files: README Log Message: examples++ =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/enity/README,v retrieving revision 1.1 retrieving revision 1.2 diff -u -3 -r1.1 -r1.2 --- README 14 Mar 2006 11:41:00 -0000 1.1 +++ README 14 Mar 2006 11:54:24 -0000 1.2 @@ -3,3 +3,43 @@ Enity allows users to create Etk dialogs using shell scripts or other scripting languages that can call programs. The basic idea is to ease the development of quick interfaces for input, configuration, installation, etc... + +Examples: + +enity --list \ + --title='Resolution' \ + --text='Select your prefered resolution' \ + --column='Num' --column='Option' \ + '1' '1920x1440' \ + '2' '1856x1392' \ + '3' '1792x1344' \ + '4' '1600x1200' \ + '5' '1280x1024' \ + '6' '1280x960' \ + '7' '1280x800' \ + '8' '1280x768' \ + '9' '1152x864' \ + '10' '1024x768' \ + '11' '800x600' \ + '12' '640x480' + +enity --entry \ + --text "Please enter username:" \ + --entry-text "username" + +enity --warning \ + --text 'Low disk space!' + +enity --info \ + --text 'Installation complete!' + +the following are work in progress: + +enity --question \ + --text 'Are you sure you want to proceed?' + +enity --error \ + --text 'Could not detect your VGA card!' + + + |
From: <enl...@li...> - 2006-03-14 12:08:27
|
Enlightenment CVS committal Author : codewarrior Project : e17 Module : proto Dir : e17/proto/enity/src/bin Modified Files: enity.c Log Message: - proper return values =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/enity/src/bin/enity.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -3 -r1.2 -r1.3 --- enity.c 14 Mar 2006 12:02:31 -0000 1.2 +++ enity.c 14 Mar 2006 12:08:24 -0000 1.3 @@ -1,5 +1,7 @@ #include "enity.h" +static _en_retval = 0; + static Evas_List *_en_arg_data_get(Etk_Argument *args, char *key) { Etk_Argument *arg; @@ -69,9 +71,10 @@ printf("%s\n", valist[1]); #endif break; - } + } break; case ETK_RESPONSE_CANCEL: + _en_retval = 1; break; } @@ -140,8 +143,7 @@ value = data->data; dialog = etk_message_dialog_new(ETK_MESSAGE_DIALOG_QUESTION, ETK_MESSAGE_DIALOG_OK_CANCEL, value); - etk_signal_connect_swapped("response", ETK_OBJECT(dialog), ETK_CALLBACK(etk_main_quit), NULL); - + etk_signal_connect("response", ETK_OBJECT(dialog), ETK_CALLBACK(_en_ok_print_stdout_cb), NULL); etk_container_border_width_set(ETK_CONTAINER(dialog), 4); etk_window_title_set(ETK_WINDOW(dialog), _("Question")); @@ -323,5 +325,5 @@ etk_main_quit(); etk_shutdown(); - return 0; + return _en_retval; } |
From: <enl...@li...> - 2006-03-14 12:09:56
|
Enlightenment CVS committal Author : codewarrior Project : e17 Module : proto Dir : e17/proto/enity Modified Files: README Log Message: those work now =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/enity/README,v retrieving revision 1.2 retrieving revision 1.3 diff -u -3 -r1.2 -r1.3 --- README 14 Mar 2006 11:54:24 -0000 1.2 +++ README 14 Mar 2006 12:09:51 -0000 1.3 @@ -33,8 +33,6 @@ enity --info \ --text 'Installation complete!' -the following are work in progress: - enity --question \ --text 'Are you sure you want to proceed?' |
From: <enl...@li...> - 2006-03-14 12:11:06
|
Enlightenment CVS committal Author : codewarrior Project : e17 Module : proto Dir : e17/proto/enity/src/bin Modified Files: enity.c Log Message: oops =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/enity/src/bin/enity.c,v retrieving revision 1.3 retrieving revision 1.4 diff -u -3 -r1.3 -r1.4 --- enity.c 14 Mar 2006 12:08:24 -0000 1.3 +++ enity.c 14 Mar 2006 12:11:03 -0000 1.4 @@ -1,6 +1,6 @@ #include "enity.h" -static _en_retval = 0; +static int _en_retval = 0; static Evas_List *_en_arg_data_get(Etk_Argument *args, char *key) { |
From: <enl...@li...> - 2006-03-15 00:11:11
|
Enlightenment CVS committal Author : codewarrior Project : e17 Module : proto Dir : e17/proto/enity/src/bin Modified Files: enity.c Log Message: - more label formatting - --title for enity dialogs - AUTHORS fix =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/enity/src/bin/enity.c,v retrieving revision 1.5 retrieving revision 1.6 diff -u -3 -r1.5 -r1.6 --- enity.c 14 Mar 2006 13:39:20 -0000 1.5 +++ enity.c 15 Mar 2006 00:11:08 -0000 1.6 @@ -2,6 +2,12 @@ static int _en_retval = 0; +static Etk_Bool _en_window_delete_cb(void *data) +{ + etk_main_quit(); + return ETK_TRUE; +} + static Evas_List *_en_arg_data_get(Etk_Argument *args, char *key) { Etk_Argument *arg; @@ -94,7 +100,8 @@ Evas_List *data; dialog = etk_dialog_new(); - + etk_signal_connect("delete_event", ETK_OBJECT(dialog), ETK_CALLBACK(_en_window_delete_cb), NULL); + if((data = _en_arg_data_get(args, "text")) != NULL) label = etk_label_new(data->data); else @@ -109,8 +116,13 @@ etk_dialog_button_add_from_stock(ETK_DIALOG(dialog), ETK_STOCK_DIALOG_OK, ETK_RESPONSE_OK); etk_dialog_button_add_from_stock(ETK_DIALOG(dialog), ETK_STOCK_DIALOG_CANCEL, ETK_RESPONSE_CANCEL); etk_signal_connect("response", ETK_OBJECT(dialog), ETK_CALLBACK(_en_ok_print_stdout_cb), entry); + etk_container_border_width_set(ETK_CONTAINER(dialog), 4); - etk_window_title_set(ETK_WINDOW(dialog), _("Add a new entry")); + + if((data = _en_arg_data_get(args, "title")) != NULL) + etk_window_title_set(ETK_WINDOW(dialog), data->data); + else + etk_window_title_set(ETK_WINDOW(dialog), _("Add a new entry")); etk_widget_show_all(dialog); } @@ -127,11 +139,15 @@ value = data->data; dialog = etk_message_dialog_new(ETK_MESSAGE_DIALOG_ERROR, ETK_MESSAGE_DIALOG_OK, value); + etk_signal_connect("delete_event", ETK_OBJECT(dialog), ETK_CALLBACK(_en_window_delete_cb), NULL); etk_signal_connect_swapped("response", ETK_OBJECT(dialog), ETK_CALLBACK(etk_main_quit), NULL); - - + etk_container_border_width_set(ETK_CONTAINER(dialog), 4); - etk_window_title_set(ETK_WINDOW(dialog), _("Error")); + + if((data = _en_arg_data_get(args, "title")) != NULL) + etk_window_title_set(ETK_WINDOW(dialog), data->data); + else + etk_window_title_set(ETK_WINDOW(dialog), _("Error")); etk_widget_show_all(dialog); } @@ -148,11 +164,16 @@ value = data->data; dialog = etk_message_dialog_new(ETK_MESSAGE_DIALOG_QUESTION, ETK_MESSAGE_DIALOG_OK_CANCEL, value); + etk_signal_connect("delete_event", ETK_OBJECT(dialog), ETK_CALLBACK(_en_window_delete_cb), NULL); etk_signal_connect("response", ETK_OBJECT(dialog), ETK_CALLBACK(_en_ok_print_stdout_cb), NULL); etk_container_border_width_set(ETK_CONTAINER(dialog), 4); - etk_window_title_set(ETK_WINDOW(dialog), _("Question")); - + + if((data = _en_arg_data_get(args, "title")) != NULL) + etk_window_title_set(ETK_WINDOW(dialog), data->data); + else + etk_window_title_set(ETK_WINDOW(dialog), _("Question")); + etk_widget_show_all(dialog); } @@ -168,11 +189,15 @@ value = data->data; dialog = etk_message_dialog_new(ETK_MESSAGE_DIALOG_INFO, ETK_MESSAGE_DIALOG_OK, value); + etk_signal_connect("delete_event", ETK_OBJECT(dialog), ETK_CALLBACK(_en_window_delete_cb), NULL); etk_signal_connect_swapped("response", ETK_OBJECT(dialog), ETK_CALLBACK(etk_main_quit), NULL); - - + etk_container_border_width_set(ETK_CONTAINER(dialog), 4); - etk_window_title_set(ETK_WINDOW(dialog), _("Information")); + + if((data = _en_arg_data_get(args, "title")) != NULL) + etk_window_title_set(ETK_WINDOW(dialog), data->data); + else + etk_window_title_set(ETK_WINDOW(dialog), _("Information")); etk_widget_show_all(dialog); } @@ -189,11 +214,15 @@ value = data->data; dialog = etk_message_dialog_new(ETK_MESSAGE_DIALOG_WARNING, ETK_MESSAGE_DIALOG_OK, value); + etk_signal_connect("delete_event", ETK_OBJECT(dialog), ETK_CALLBACK(_en_window_delete_cb), NULL); etk_signal_connect_swapped("response", ETK_OBJECT(dialog), ETK_CALLBACK(etk_main_quit), NULL); - - + etk_container_border_width_set(ETK_CONTAINER(dialog), 4); - etk_window_title_set(ETK_WINDOW(dialog), _("Warning")); + + if((data = _en_arg_data_get(args, "title")) != NULL) + etk_window_title_set(ETK_WINDOW(dialog), data->data); + else + etk_window_title_set(ETK_WINDOW(dialog), _("Question")); etk_widget_show_all(dialog); } @@ -212,6 +241,7 @@ Evas_List *data; dialog = etk_dialog_new(); + etk_signal_connect("delete_event", ETK_OBJECT(dialog), ETK_CALLBACK(_en_window_delete_cb), NULL); if((data = _en_arg_data_get(args, "text")) != NULL) label = etk_label_new(data->data); @@ -278,7 +308,11 @@ etk_dialog_button_add_from_stock(ETK_DIALOG(dialog), ETK_STOCK_DIALOG_CANCEL, ETK_RESPONSE_CANCEL); etk_signal_connect("response", ETK_OBJECT(dialog), ETK_CALLBACK(_en_ok_print_stdout_cb), tree); etk_container_border_width_set(ETK_CONTAINER(dialog), 4); - etk_window_title_set(ETK_WINDOW(dialog), _("Select vaue")); + + if((data = _en_arg_data_get(args, "title")) != NULL) + etk_window_title_set(ETK_WINDOW(dialog), data->data); + else + etk_window_title_set(ETK_WINDOW(dialog), _("Select value")); etk_widget_show_all(dialog); } @@ -288,6 +322,11 @@ /* do any changes / fixes / checks here */ } +static void _en_dialog_title_cb(Etk_Argument *args, int index) +{ + /* do any changes / fixes / checks here */ +} + static void _en_entry_entry_text_cb(Etk_Argument *args, int index) { /* do any changes / fixes / checks here */ @@ -296,6 +335,7 @@ Etk_Argument args[] = { /* global options that are used with more than one dialog type */ { "text", ' ', NULL, _en_dialog_text_cb, NULL, ETK_ARGUMENT_FLAG_OPTIONAL|ETK_ARGUMENT_FLAG_VALUE_REQUIRED, "Set the dialog text" }, + { "title", ' ', NULL, _en_dialog_title_cb, NULL, ETK_ARGUMENT_FLAG_OPTIONAL|ETK_ARGUMENT_FLAG_VALUE_REQUIRED, "Set the dialog title" }, /* --entry options */ { "entry-text", ' ', NULL, _en_entry_entry_text_cb, NULL, ETK_ARGUMENT_FLAG_OPTIONAL|ETK_ARGUMENT_FLAG_VALUE_REQUIRED, "Set the dialog text" }, |
From: <enl...@li...> - 2006-03-15 00:11:11
|
Enlightenment CVS committal Author : codewarrior Project : e17 Module : proto Dir : e17/proto/enhance Modified Files: AUTHORS Log Message: - more label formatting - --title for enity dialogs - AUTHORS fix =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/enhance/AUTHORS,v retrieving revision 1.1 retrieving revision 1.2 diff -u -3 -r1.1 -r1.2 --- AUTHORS 7 Feb 2006 00:34:29 -0000 1.1 +++ AUTHORS 15 Mar 2006 00:11:05 -0000 1.2 @@ -8,7 +8,7 @@ ======= EXML George 'werkt' Gensure <we...@us...> Etk Simon 'MoOm' Treny <sim...@fr...> -Misc EFL Casten 'The Rasterman' Haitzler <ra...@ra...> + team +Misc EFL Carsten 'The Rasterman' Haitzler <ra...@ra...> + team |
From: <enl...@li...> - 2006-03-15 00:11:11
|
Enlightenment CVS committal Author : codewarrior Project : e17 Module : proto Dir : e17/proto/enity Modified Files: TODO Log Message: - more label formatting - --title for enity dialogs - AUTHORS fix =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/enity/TODO,v retrieving revision 1.1 retrieving revision 1.2 diff -u -3 -r1.1 -r1.2 --- TODO 14 Mar 2006 11:41:00 -0000 1.1 +++ TODO 15 Mar 2006 00:11:08 -0000 1.2 @@ -45,3 +45,7 @@ * make proper 0 / 1 returns for $? setting * show help +* if we do: enity --info --text='something<enter>else' where <enter> is an + actual Enter on the keyboard (ie, \n), we get a strange char in the + textblock. We need to strip this out or replace it by a <br> + |
From: <enl...@li...> - 2006-03-15 00:11:11
|
Enlightenment CVS committal Author : codewarrior Project : e17 Module : proto Dir : e17/proto/etk/src/lib Modified Files: etk_label.c Log Message: - more label formatting - --title for enity dialogs - AUTHORS fix =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/etk/src/lib/etk_label.c,v retrieving revision 1.9 retrieving revision 1.10 diff -u -3 -r1.9 -r1.10 --- etk_label.c 11 Feb 2006 00:28:33 -0000 1.9 +++ etk_label.c 15 Mar 2006 00:11:08 -0000 1.10 @@ -298,6 +298,8 @@ "right='+ align=right'" "/right='- \n'" "h1='+ font_size=20'" + "glow='+ style=glow color=#fff glow2_color=#fe87 glow_color=#fa14'" + "link='+ style=underline underline_color=#0000cc underline2_color=#0000cc color=#0000cc '" "red='+ color=#ff0000'" "br='\n'" "tab='\t'"); |
From: <enl...@li...> - 2006-03-15 00:15:24
|
Enlightenment CVS committal Author : codewarrior Project : e17 Module : proto Dir : e17/proto/enity Modified Files: TODO Log Message: --todo =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/enity/TODO,v retrieving revision 1.2 retrieving revision 1.3 diff -u -3 -r1.2 -r1.3 --- TODO 15 Mar 2006 00:11:08 -0000 1.2 +++ TODO 15 Mar 2006 00:15:18 -0000 1.3 @@ -43,9 +43,10 @@ Misc TODO: ========== -* make proper 0 / 1 returns for $? setting * show help * if we do: enity --info --text='something<enter>else' where <enter> is an actual Enter on the keyboard (ie, \n), we get a strange char in the textblock. We need to strip this out or replace it by a <br> +* make proper 0 / 1 returns for $? setting + * done |
From: <enl...@li...> - 2006-03-15 10:05:14
|
Enlightenment CVS committal Author : codewarrior Project : e17 Module : proto Dir : e17/proto/etk/src/lib Modified Files: etk_argument.c etk_argument.h etk_label.c etk_textblock.c Log Message: - add <b> and <i> to our text widgets - add rudimentary help support for Etk_Argument =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/etk/src/lib/etk_argument.c,v retrieving revision 1.4 retrieving revision 1.5 diff -u -3 -r1.4 -r1.5 --- etk_argument.c 14 Mar 2006 11:42:12 -0000 1.4 +++ etk_argument.c 15 Mar 2006 10:04:35 -0000 1.5 @@ -9,6 +9,7 @@ #define ETK_ARGUMENT_FLAG_PRIV_SET (1 << 4) static Evas_Hash *_etk_argument_extra = NULL; +static int _etk_argument_status = 0; /** * @brief Parses the arguments as described by the user @@ -69,7 +70,7 @@ } ++i; ++arg; } - return ETK_ARGUMENT_RETURN_OK; + return ETK_ARGUMENT_RETURN_OK_NONE_PARSED; } for(i = 1; i < argc; i++) @@ -111,6 +112,7 @@ arg->data = evas_list_append(arg->data, val); arg->flags |= ETK_ARGUMENT_FLAG_PRIV_SET; + _etk_argument_status = 1; ++i; } else if (arg->flags & ETK_ARGUMENT_FLAG_VALUE_REQUIRED @@ -121,7 +123,11 @@ return ETK_ARGUMENT_RETURN_REQUIRED_VALUE_NOT_FOUND; } else if(!(arg->flags & ETK_ARGUMENT_FLAG_VALUE_REQUIRED)) - arg->flags |= ETK_ARGUMENT_FLAG_PRIV_SET; + { + arg->flags |= ETK_ARGUMENT_FLAG_PRIV_SET; + _etk_argument_status = 1; + } + } ++arg; } @@ -173,6 +179,7 @@ arg->data = evas_list_append(arg->data, val); arg->flags |= ETK_ARGUMENT_FLAG_PRIV_SET; + _etk_argument_status = 1; if(!tmp) ++i; @@ -185,7 +192,10 @@ return ETK_ARGUMENT_RETURN_REQUIRED_VALUE_NOT_FOUND; } else if(!(arg->flags & ETK_ARGUMENT_FLAG_VALUE_REQUIRED)) - arg->flags |= ETK_ARGUMENT_FLAG_PRIV_SET; + { + arg->flags |= ETK_ARGUMENT_FLAG_PRIV_SET; + _etk_argument_status = 1; + } } if(tmp) @@ -266,8 +276,30 @@ arg->func(args, i); ++i; ++arg; } + + if(_etk_argument_status == 0) + return ETK_ARGUMENT_RETURN_OK_NONE_PARSED; + else + return ETK_ARGUMENT_RETURN_OK; +} + +void etk_argument_help_show(Etk_Argument *args) +{ + Etk_Argument *arg; - return ETK_ARGUMENT_RETURN_OK; + arg = args; + while(arg->short_name != -1) + { + if(arg->long_name) + printf("--%s ", arg->long_name); + if(arg->short_name != -1 && arg->short_name != ' ') + printf("-%c", arg->short_name); + printf("\t"); + if(arg->description) + printf("%s", arg->description); + printf("\n"); + ++arg; + } } Evas_List *etk_argument_extra_find(const char *key) =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/etk/src/lib/etk_argument.h,v retrieving revision 1.3 retrieving revision 1.4 diff -u -3 -r1.3 -r1.4 --- etk_argument.h 14 Mar 2006 11:42:13 -0000 1.3 +++ etk_argument.h 15 Mar 2006 10:04:35 -0000 1.4 @@ -12,9 +12,10 @@ enum _Etk_Argument_Returns { ETK_ARGUMENT_RETURN_OK = 1, /* no problems */ - ETK_ARGUMENT_RETURN_REQUIRED_NOT_FOUND = 2, /* required arg not found */ - ETK_ARGUMENT_RETURN_REQUIRED_VALUE_NOT_FOUND = 3, /* required value for arg no found */ - ETK_ARGUMENT_RETURN_MALFORMED = 4 /* malformed argument */ + ETK_ARGUMENT_RETURN_OK_NONE_PARSED = 2, /* no problems, no arguments or no valid args */ + ETK_ARGUMENT_RETURN_REQUIRED_NOT_FOUND = 3, /* required arg not found */ + ETK_ARGUMENT_RETURN_REQUIRED_VALUE_NOT_FOUND = 4, /* required value for arg no found */ + ETK_ARGUMENT_RETURN_MALFORMED = 5 /* malformed argument */ }; enum _Etk_Argument_Flags @@ -38,6 +39,7 @@ }; int etk_arguments_parse(Etk_Argument *args, int argc, char **argv); +void etk_argument_help_show(Etk_Argument *arg); Evas_List *etk_argument_extra_find(const char *key); /** @} */ =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/etk/src/lib/etk_label.c,v retrieving revision 1.10 retrieving revision 1.11 diff -u -3 -r1.10 -r1.11 --- etk_label.c 15 Mar 2006 00:11:08 -0000 1.10 +++ etk_label.c 15 Mar 2006 10:04:35 -0000 1.11 @@ -298,8 +298,10 @@ "right='+ align=right'" "/right='- \n'" "h1='+ font_size=20'" + "b='+font=Vera-Bold'" + "i='+font=Vera-Italic'" "glow='+ style=glow color=#fff glow2_color=#fe87 glow_color=#fa14'" - "link='+ style=underline underline_color=#0000cc underline2_color=#0000cc color=#0000cc '" + "link='+ underline=on underline_color=#0000aa color=#0000aa'" "red='+ color=#ff0000'" "br='\n'" "tab='\t'"); =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/etk/src/lib/etk_textblock.c,v retrieving revision 1.7 retrieving revision 1.8 diff -u -3 -r1.7 -r1.8 --- etk_textblock.c 4 Mar 2006 18:04:10 -0000 1.7 +++ etk_textblock.c 15 Mar 2006 10:04:35 -0000 1.8 @@ -305,6 +305,10 @@ "/right='- \n'" "blockquote='+ left_margin=+24 right_margin=+24 font=Vera font_size=10 align=left'" "h1='+ font_size=20'" + "b='+font=Vera-Bold'" + "i='+font=Vera-Italic'" + "glow='+ style=glow color=#fff glow2_color=#fe87 glow_color=#fa14'" + "link='+ underline=on underline_color=#0000aa color=#0000aa'" "red='+ color=#ff0000'" "p='+ font=Vera font_size=10 align=left'" "/p='- \n'" |
From: <enl...@li...> - 2006-03-15 10:05:14
|
Enlightenment CVS committal Author : codewarrior Project : e17 Module : proto Dir : e17/proto/etk/data/themes/default Modified Files: default.edc Log Message: - add <b> and <i> to our text widgets - add rudimentary help support for Etk_Argument =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/etk/data/themes/default/default.edc,v retrieving revision 1.17 retrieving revision 1.18 diff -u -3 -r1.17 -r1.18 --- default.edc 5 Mar 2006 23:52:58 -0000 1.17 +++ default.edc 15 Mar 2006 10:04:34 -0000 1.18 @@ -5,6 +5,7 @@ fonts { font: "Vera.ttf" "Vera"; font: "VeraBd.ttf" "Vera-Bold"; + font: "VeraIt.ttf" "Vera-Italic"; } #include "images/images.edc" collections { |
From: <enl...@li...> - 2006-03-15 10:05:15
|
Enlightenment CVS committal Author : codewarrior Project : e17 Module : proto Dir : e17/proto/etk/data/fonts Modified Files: Makefile.am fonts.alias fonts.dir Added Files: VeraBd.ttf VeraIt.ttf Log Message: - add <b> and <i> to our text widgets - add rudimentary help support for Etk_Argument =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/etk/data/fonts/Makefile.am,v retrieving revision 1.1 retrieving revision 1.2 diff -u -3 -r1.1 -r1.2 --- Makefile.am 1 Oct 2005 16:29:44 -0000 1.1 +++ Makefile.am 15 Mar 2006 10:04:34 -0000 1.2 @@ -1,6 +1,7 @@ MAINTAINERCLEANFILES = Makefile.in FILES = Vera.ttf Vera.COPYING \ +VeraBd.ttf VeraIt.ttf \ fonts.alias fonts.dir filesdir = $(pkgdatadir)/fonts =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/etk/data/fonts/fonts.alias,v retrieving revision 1.1 retrieving revision 1.2 diff -u -3 -r1.1 -r1.2 --- fonts.alias 1 Oct 2005 16:29:44 -0000 1.1 +++ fonts.alias 15 Mar 2006 10:04:34 -0000 1.2 @@ -1 +1,3 @@ -Vera -Bitstream-Bitstream Vera Sans-medium-r-normal--0-0-0-0-p-0-ascii-0 \ No newline at end of file +Vera -Bitstream-Bitstream Vera Sans-medium-r-normal--0-0-0-0-p-0-ascii-0 +Vera-Bold -Bitstream-Bitstream Vera Sans-bold-r-normal--0-0-0-0-p-0-ascii-0 +Vera-Italic -Bitstream-Bitstream Vera Sans-medium-i-normal--0-0-0-0-p-0-ascii-0 =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/etk/data/fonts/fonts.dir,v retrieving revision 1.1 retrieving revision 1.2 diff -u -3 -r1.1 -r1.2 --- fonts.dir 1 Oct 2005 16:29:44 -0000 1.1 +++ fonts.dir 15 Mar 2006 10:04:34 -0000 1.2 @@ -4,3 +4,14 @@ Vera.ttf -Bitstream-Bitstream Vera Sans-medium-r-normal--0-0-0-0-p-0-iso8859-1 Vera.ttf -Bitstream-Bitstream Vera Sans-medium-r-normal--0-0-0-0-p-0-iso8859-15 Vera.ttf -Bitstream-Bitstream Vera Sans-medium-r-normal--0-0-0-0-p-0-iso8859-9 +VeraBd.ttf -Bitstream-Bitstream Vera Sans-bold-r-normal--0-0-0-0-p-0-ascii-0 +VeraBd.ttf -Bitstream-Bitstream Vera Sans-bold-r-normal--0-0-0-0-p-0-fcd8859-15 +VeraBd.ttf -Bitstream-Bitstream Vera Sans-bold-r-normal--0-0-0-0-p-0-iso8859-1 +VeraBd.ttf -Bitstream-Bitstream Vera Sans-bold-r-normal--0-0-0-0-p-0-iso8859-15 +VeraBd.ttf -Bitstream-Bitstream Vera Sans-bold-r-normal--0-0-0-0-p-0-iso8859-9 +VeraIt.ttf -Bitstream-Bitstream Vera Sans-medium-i-normal--0-0-0-0-p-0-ascii-0 +VeraIt.ttf -Bitstream-Bitstream Vera Sans-medium-i-normal--0-0-0-0-p-0-fcd8859-15 +VeraIt.ttf -Bitstream-Bitstream Vera Sans-medium-i-normal--0-0-0-0-p-0-iso8859-1 +VeraIt.ttf -Bitstream-Bitstream Vera Sans-medium-i-normal--0-0-0-0-p-0-iso8859-15 +VeraIt.ttf -Bitstream-Bitstream Vera Sans-medium-i-normal--0-0-0-0-p-0-iso8859-9 + |
From: <enl...@li...> - 2006-03-15 12:38:50
|
Enlightenment CVS committal Author : codewarrior Project : e17 Module : proto Dir : e17/proto/etk/src/lib Modified Files: etk_argument.c etk_argument.h Log Message: - more Etk_Argument work =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/etk/src/lib/etk_argument.c,v retrieving revision 1.5 retrieving revision 1.6 diff -u -3 -r1.5 -r1.6 --- etk_argument.c 15 Mar 2006 10:04:35 -0000 1.5 +++ etk_argument.c 15 Mar 2006 12:38:41 -0000 1.6 @@ -310,4 +310,20 @@ return evas_hash_find(_etk_argument_extra, "column"); } +Etk_Bool etk_argument_is_set(Etk_Argument *args, const char *long_name, char short_name) +{ + Etk_Argument *arg; + + arg = args; + while(arg->short_name != -1) + { + if((!strcmp(arg->long_name, long_name) || + (arg->short_name == short_name && short_name != -1 && short_name != ' ')) + && arg->flags & ETK_ARGUMENT_FLAG_PRIV_SET) + return ETK_TRUE; + ++arg; + } + return ETK_FALSE; +} + /** @} */ =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/etk/src/lib/etk_argument.h,v retrieving revision 1.4 retrieving revision 1.5 diff -u -3 -r1.4 -r1.5 --- etk_argument.h 15 Mar 2006 10:04:35 -0000 1.4 +++ etk_argument.h 15 Mar 2006 12:38:41 -0000 1.5 @@ -39,9 +39,10 @@ }; int etk_arguments_parse(Etk_Argument *args, int argc, char **argv); -void etk_argument_help_show(Etk_Argument *arg); +void etk_argument_help_show(Etk_Argument *args); Evas_List *etk_argument_extra_find(const char *key); - +Etk_Bool etk_argument_is_set(Etk_Argument *args, const char *long_name, char short_name); + /** @} */ #endif |
From: <enl...@li...> - 2006-03-15 12:39:25
|
Enlightenment CVS committal Author : codewarrior Project : e17 Module : proto Dir : e17/proto/enity/src/bin Modified Files: enity.c enity.h Log Message: - support --checklist for --list =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/enity/src/bin/enity.c,v retrieving revision 1.7 retrieving revision 1.8 diff -u -3 -r1.7 -r1.8 --- enity.c 15 Mar 2006 10:09:31 -0000 1.7 +++ enity.c 15 Mar 2006 12:39:14 -0000 1.8 @@ -1,6 +1,7 @@ #include "enity.h" static int _en_retval = 0; +static Evas_List *_en_checked_rows = NULL; static Etk_Bool _en_window_delete_cb(void *data) { @@ -22,6 +23,22 @@ return NULL; } +static void _en_tree_checkbox_toggled_cb(Etk_Object *object, Etk_Tree_Row *row, void *data) +{ + Etk_Bool checked; + Etk_Tree_Col *col; + + if (!(col = ETK_TREE_COL(object)) || !row) + return; + + etk_tree_row_fields_get(row, col, &checked, NULL); + if (checked) + _en_checked_rows = evas_list_append(_en_checked_rows, row); + else + _en_checked_rows = evas_list_remove(_en_checked_rows, row); +} + + static void _en_ok_print_stdout_cb(Etk_Object *obj, int response_id, void *data) { switch(response_id) @@ -41,49 +58,54 @@ { Etk_Tree_Row *row; Evas_List *cols; -#if 0 - Evas_List *l; - void **valist; - int j = 0; -#endif - - row = etk_tree_selected_row_get(ETK_TREE(data)); - cols = etk_tree_row_data_get(row); + Evas_List *rows; + char *str = NULL; + int check_value; + + if(_en_checked_rows) + row = _en_checked_rows->data; + else + row = etk_tree_selected_row_get(ETK_TREE(data)); + if(!row) break; + + cols = etk_tree_row_data_get(row); - { - char *str; - etk_tree_row_fields_get(row, ((Enity_Tree_Col*)(cols->data))->col, &str, NULL); - printf("%s\n", str); - } -#if 0 - valist = calloc(evas_list_count(cols) * 2 + 1, sizeof(void*)); + if(!cols) break; - for(l = cols; l; l = l->next) + switch(((Enity_Tree_Col*)(cols->data))->model) { - switch( ((Enity_Tree_Col*)(cols->data))->model) + case ENITY_COL_MODEL_TEXT: + if(!row) break; + etk_tree_row_fields_get(row, ((Enity_Tree_Col*)(cols->data))->col, &str, NULL); + break; + + case ENITY_COL_MODEL_CHECK: + + str = calloc(PATH_MAX, sizeof(char)); + + for(rows = _en_checked_rows; rows; rows = rows->next) { - case ENITY_COL_MODEL_TEXT: - printf("text...\n"); - valist[j] = ((Enity_Tree_Col*)l->data)->col; - valist[j + 1] = calloc(1, sizeof(char*)); - j += 2; + char *val; - break; - case ENITY_COL_MODEL_CHECK: - break; - case ENITY_COL_MODEL_RADIO: - break; + if(!(cols->next)) + break; + + if(strlen(str) > 0) + strncat(str, "|", PATH_MAX); + etk_tree_row_fields_get(rows->data, ((Enity_Tree_Col*)(cols->data))->col, &check_value, ((Enity_Tree_Col*)(cols->next->data))->col, &val, NULL); + strncat(str, val, PATH_MAX); } + break; + + case ENITY_COL_MODEL_RADIO: + break; } - valist[j] = NULL; - etk_tree_row_fields_get_valist(row, (va_list)valist); - printf("%s\n", valist[1]); -#endif - break; - } + printf("%s\n", str); + } break; + case ETK_RESPONSE_CANCEL: _en_retval = 1; break; @@ -232,6 +254,11 @@ /* do any changes / fixes / checks here */ } +static void _en_list_check_cb(Etk_Argument *args, int index) +{ + /* do any changes / fixes / checks here */ +} + static void _en_list_cb(Etk_Argument *args, int index) { Etk_Widget *dialog; @@ -262,8 +289,19 @@ /* todo - implement checkboxes and radio buttons */ col = calloc(1, sizeof(Enity_Tree_Col)); - col->col = etk_tree_col_new(ETK_TREE(tree), l->data, etk_tree_model_text_new(ETK_TREE(tree)), 60); - col->model = ENITY_COL_MODEL_TEXT; + + if(etk_argument_is_set(args, "checklist", ' ') && evas_list_count(cols) == 0) + { + col->col = etk_tree_col_new(ETK_TREE(tree), l->data, etk_tree_model_checkbox_new(ETK_TREE(tree)), 60); + col->model = ENITY_COL_MODEL_CHECK; + etk_signal_connect("cell_value_changed", ETK_OBJECT(col->col), ETK_CALLBACK(_en_tree_checkbox_toggled_cb), NULL); + + } + else + { + col->col = etk_tree_col_new(ETK_TREE(tree), l->data, etk_tree_model_text_new(ETK_TREE(tree)), 60); + col->model = ENITY_COL_MODEL_TEXT; + } cols = evas_list_append(cols, col); } etk_tree_build(ETK_TREE(tree)); @@ -284,7 +322,21 @@ value = l->data; valist[j] = ((Enity_Tree_Col*)evas_list_nth(cols, i))->col; - valist[j + 1] = value; + + switch(((Enity_Tree_Col*)evas_list_nth(cols, i))->model) + { + case ENITY_COL_MODEL_TEXT: + valist[j + 1] = value; + break; + + case ENITY_COL_MODEL_CHECK: + valist[j + 1] = ETK_FALSE; + break; + + case ENITY_COL_MODEL_RADIO: + break; + } + j += 2; if(l->next && i < evas_list_count(cols) - 1) @@ -354,6 +406,7 @@ { "warning", ' ', NULL, _en_warning_cb, NULL, ETK_ARGUMENT_FLAG_OPTIONAL, "Display warning dialog" }, /* --list options */ + { "checklist", ' ', NULL, _en_list_check_cb, NULL, ETK_ARGUMENT_FLAG_OPTIONAL, "Use check boxes for first column" }, { "column", ' ', NULL, _en_list_column_cb, NULL, ETK_ARGUMENT_FLAG_OPTIONAL|ETK_ARGUMENT_FLAG_VALUE_REQUIRED|ETK_ARGUMENT_FLAG_MULTIVALUE, "Set the column header" }, { "list", ' ', NULL, _en_list_cb, NULL, ETK_ARGUMENT_FLAG_OPTIONAL, "Display list dialog" }, /* terminator */ @@ -364,14 +417,13 @@ { etk_init(); - if(etk_arguments_parse(args, argc, argv) == ETK_ARGUMENT_RETURN_OK_NONE_PARSED) + if(etk_arguments_parse(args, argc, argv) != ETK_ARGUMENT_RETURN_OK) { etk_argument_help_show(args); goto SHUTDOWN; } etk_main(); -QUIT: etk_main_quit(); SHUTDOWN: etk_shutdown(); =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/enity/src/bin/enity.h,v retrieving revision 1.2 retrieving revision 1.3 diff -u -3 -r1.2 -r1.3 --- enity.h 14 Mar 2006 12:02:31 -0000 1.2 +++ enity.h 15 Mar 2006 12:39:14 -0000 1.3 @@ -4,6 +4,7 @@ #include <stdio.h> #include <stdlib.h> #include <string.h> +#include <limits.h> #include <Etk.h> #include <Evas.h> @@ -21,6 +22,7 @@ }; static Evas_List *_en_arg_data_get(Etk_Argument *args, char *key); +static void _en_tree_checkbox_toggled_cb(Etk_Object *object, Etk_Tree_Row *row, void *data); static void _en_ok_print_stdout_cb(Etk_Object *obj, int response_id, void *data); static void _en_entry_cb(Etk_Argument *args, int index); static void _en_error_cb(Etk_Argument *args, int index); |
From: <enl...@li...> - 2006-03-15 12:43:58
|
Enlightenment CVS committal Author : codewarrior Project : e17 Module : proto Dir : e17/proto/enity Modified Files: README TODO Log Message: --todo, ++readme =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/enity/README,v retrieving revision 1.3 retrieving revision 1.4 diff -u -3 -r1.3 -r1.4 --- README 14 Mar 2006 12:09:51 -0000 1.3 +++ README 15 Mar 2006 12:43:56 -0000 1.4 @@ -23,6 +23,24 @@ '11' '800x600' \ '12' '640x480' +enity --list \ + --checklist \ + --title='Resolution' \ + --text='Select your prefered resolution' \ + --column='Num' --column='Option' \ + '1' '1920x1440' \ + '2' '1856x1392' \ + '3' '1792x1344' \ + '4' '1600x1200' \ + '5' '1280x1024' \ + '6' '1280x960' \ + '7' '1280x800' \ + '8' '1280x768' \ + '9' '1152x864' \ + '10' '1024x768' \ + '11' '800x600' \ + '12' '640x480' + enity --entry \ --text "Please enter username:" \ --entry-text "username" =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/enity/TODO,v retrieving revision 1.3 retrieving revision 1.4 diff -u -3 -r1.3 -r1.4 --- TODO 15 Mar 2006 00:15:18 -0000 1.3 +++ TODO 15 Mar 2006 12:43:56 -0000 1.4 @@ -19,7 +19,8 @@ * not done --list Display list dialog - * working, not done (needs multiple select, check / radio buttons) + * working, not done (needs multiple select, radio buttons) + * checklist done --notification Display notification * not done @@ -42,11 +43,13 @@ Misc TODO: ========== - -* show help + * if we do: enity --info --text='something<enter>else' where <enter> is an actual Enter on the keyboard (ie, \n), we get a strange char in the textblock. We need to strip this out or replace it by a <br> * make proper 0 / 1 returns for $? setting * done + +* show help + * done |
From: <enl...@li...> - 2006-03-16 10:46:06
|
Enlightenment CVS committal Author : codewarrior Project : e17 Module : proto Dir : e17/proto/etk/src/lib Modified Files: etk_filechooser_widget.c etk_tooltips.c etk_tooltips.h etk_tree.c Log Message: - tooltip behaves better now - reflect changes in filechooser test =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/etk/src/lib/etk_filechooser_widget.c,v retrieving revision 1.9 retrieving revision 1.10 diff -u -3 -r1.9 -r1.10 --- etk_filechooser_widget.c 9 Mar 2006 16:36:03 -0000 1.9 +++ etk_filechooser_widget.c 16 Mar 2006 10:46:00 -0000 1.10 @@ -538,7 +538,7 @@ _etk_filechooser_timer = NULL; - if (!(fcw = ETK_FILECHOOSER_WIDGET(data))) + if (!(fcw = ETK_FILECHOOSER_WIDGET(data)) || !_etk_filechooser_tooltip_text) return 0; etk_tooltips_tip_set(ETK_WIDGET(fcw), _etk_filechooser_tooltip_text); @@ -570,7 +570,7 @@ static void _etk_filechooser_files_tree_row_mouse_out_cb(Etk_Object *object, Etk_Tree_Row *row, void *data) { Etk_Filechooser_Widget *fcw; - + if (!(fcw = ETK_FILECHOOSER_WIDGET(data))) return; =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/etk/src/lib/etk_tooltips.c,v retrieving revision 1.6 retrieving revision 1.7 diff -u -3 -r1.6 -r1.7 --- etk_tooltips.c 12 Mar 2006 00:17:26 -0000 1.6 +++ etk_tooltips.c 16 Mar 2006 10:46:00 -0000 1.7 @@ -114,6 +114,7 @@ { if(text == NULL) { + etk_tooltips_pop_down(); _etk_tooltips_hash = evas_hash_del(_etk_tooltips_hash, key, tip_text); etk_signal_disconnect("mouse_in", ETK_OBJECT(widget), ETK_CALLBACK(_etk_tooltips_mouse_in_cb)); etk_signal_disconnect("mouse_out", ETK_OBJECT(widget), ETK_CALLBACK(_etk_tooltips_mouse_out_cb)); @@ -169,6 +170,18 @@ return NULL; } +/* + * @brief Get wether the toolip is hidden / visible + * @return True is it is, false otherwise + */ +Etk_Bool etk_tooltips_tip_visible() +{ + if(!_etk_tooltips_enabled || !ETK_IS_WINDOW(_etk_tooltips_window)) + return ETK_FALSE; + + return etk_widget_is_visible(_etk_tooltips_window); +} + /** * @brief Instantly pop up the tooltip if applicable * @param widget the widget we want to pop up on @@ -239,8 +252,9 @@ /* Timer callback, pops up the tooltip */ static int _etk_tooltips_timer_cb(void *data) { - if(!_etk_tooltips_timer || !_etk_tooltips_cur_object) + if(!_etk_tooltips_timer || !_etk_tooltips_cur_object ||!_etk_tooltips_label) return 0; + etk_tooltips_pop_up(ETK_WIDGET(_etk_tooltips_cur_object)); return 0; } @@ -251,7 +265,10 @@ if(!_etk_tooltips_enabled) return; - etk_tooltips_pop_down(); + if(_etk_tooltips_timer != NULL) + ecore_timer_del(_etk_tooltips_timer); + + etk_tooltips_pop_down(); } /* Callback for when the mouse moves on the widget */ @@ -260,8 +277,14 @@ if(!_etk_tooltips_enabled) return; + if(!ETK_IS_WINDOW(_etk_tooltips_window)) + return; + + if(etk_widget_is_visible(_etk_tooltips_window)) + return; + if(_etk_tooltips_timer != NULL) - ecore_timer_del(_etk_tooltips_timer); + ecore_timer_del(_etk_tooltips_timer); etk_tooltips_pop_down(); _etk_tooltips_cur_object = object; =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/etk/src/lib/etk_tooltips.h,v retrieving revision 1.2 retrieving revision 1.3 diff -u -3 -r1.2 -r1.3 --- etk_tooltips.h 6 Mar 2006 22:49:12 -0000 1.2 +++ etk_tooltips.h 16 Mar 2006 10:46:00 -0000 1.3 @@ -17,6 +17,9 @@ void etk_tooltips_tip_set(Etk_Widget *widget, const char *text); const char *etk_tooltips_tip_get(Etk_Widget *widget); + +Etk_Bool etk_tooltips_tip_visible(); + void etk_tooltips_pop_up(Etk_Widget *widget); void etk_tooltips_pop_down(); =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/etk/src/lib/etk_tree.c,v retrieving revision 1.57 retrieving revision 1.58 diff -u -3 -r1.57 -r1.58 --- etk_tree.c 14 Mar 2006 11:42:13 -0000 1.57 +++ etk_tree.c 16 Mar 2006 10:46:00 -0000 1.58 @@ -61,7 +61,8 @@ ETK_TREE_ROW_EXPANDED_SIGNAL, ETK_TREE_ROW_COLLAPSED_SIGNAL, ETK_TREE_ROW_MOUSE_IN_SIGNAL, - ETK_TREE_ROW_MOUSE_OUT_SIGNAL, + ETK_TREE_ROW_MOUSE_OUT_SIGNAL, + ETK_TREE_ROW_MOUSE_MOVE_SIGNAL, ETK_TREE_SELECT_ALL_SIGNAL, ETK_TREE_UNSELECT_ALL_SIGNAL, ETK_TREE_NUM_SIGNALS @@ -179,6 +180,7 @@ _etk_tree_signals[ETK_TREE_ROW_COLLAPSED_SIGNAL] = etk_signal_new("row_collapsed", tree_type, -1, etk_marshaller_VOID__POINTER, NULL, NULL); _etk_tree_signals[ETK_TREE_ROW_MOUSE_IN_SIGNAL] = etk_signal_new("row_mouse_in", tree_type, -1, etk_marshaller_VOID__POINTER, NULL, NULL); _etk_tree_signals[ETK_TREE_ROW_MOUSE_OUT_SIGNAL] = etk_signal_new("row_mouse_out", tree_type, -1, etk_marshaller_VOID__POINTER, NULL, NULL); + _etk_tree_signals[ETK_TREE_ROW_MOUSE_MOVE_SIGNAL] = etk_signal_new("row_mouse_move", tree_type, -1, etk_marshaller_VOID__POINTER, NULL, NULL); _etk_tree_signals[ETK_TREE_SELECT_ALL_SIGNAL] = etk_signal_new("select_all", tree_type, -1, etk_marshaller_VOID__VOID, NULL, NULL); _etk_tree_signals[ETK_TREE_UNSELECT_ALL_SIGNAL] = etk_signal_new("unselect_all", tree_type, -1, etk_marshaller_VOID__VOID, NULL, NULL); @@ -2038,6 +2040,8 @@ drag = (ETK_WIDGET(row_objects->row->tree))->drag; etk_drag_begin(ETK_DRAG(drag)); } + else + etk_signal_emit(_etk_tree_signals[ETK_TREE_ROW_MOUSE_MOVE_SIGNAL], ETK_OBJECT(row_objects->row->tree), NULL, row_objects->row, &ev); } /* Called when the mouse moves into a row */ |
From: <enl...@li...> - 2006-03-16 17:01:39
|
Enlightenment CVS committal Author : codewarrior Project : e17 Module : proto Dir : e17/proto/enity/src/bin Modified Files: enity.c enity.h Log Message: - add "--progress" option =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/enity/src/bin/enity.c,v retrieving revision 1.9 retrieving revision 1.10 diff -u -3 -r1.9 -r1.10 --- enity.c 16 Mar 2006 13:14:30 -0000 1.9 +++ enity.c 16 Mar 2006 17:01:35 -0000 1.10 @@ -2,6 +2,23 @@ static int _en_retval = 0; static Evas_List *_en_checked_rows = NULL; +static Ecore_Fd_Handler *_en_fd_stdin_handler = NULL; + +int _en_fd_stdin_cb (void *data, Ecore_Fd_Handler *fd_handler) +{ + char input[32]; + int len; + int percent; + + len = read(1, &input, sizeof(input)); + if(len > 0) + percent = atoi(input); + if(percent <= 0) + etk_progress_bar_fraction_set(ETK_PROGRESS_BAR(data), 0.0); + else + etk_progress_bar_fraction_set(ETK_PROGRESS_BAR(data), ((double)percent/100.0)); + return 1; +} static Etk_Bool _en_window_delete_cb(void *data) { @@ -49,6 +66,11 @@ _en_retval = 0; break; } + else if(ETK_IS_PROGRESS_BAR(data)) + { + printf("%d\n", (int)(etk_progress_bar_fraction_get(ETK_PROGRESS_BAR(data)) * 100.0)); + break; + } else if(ETK_IS_SLIDER(data)) { printf("%d\n", (int)etk_range_value_get(ETK_RANGE(data))); @@ -469,6 +491,41 @@ etk_widget_show_all(dialog); } +static void _en_progress_cb(Etk_Argument *args, int index) +{ + Etk_Widget *dialog; + Etk_Widget *label; + Etk_Widget *progress; + Evas_List *data; + + dialog = etk_dialog_new(); + etk_signal_connect("delete_event", ETK_OBJECT(dialog), ETK_CALLBACK(_en_window_delete_cb), NULL); + + if((data = _en_arg_data_get(args, "text")) != NULL) + label = etk_label_new(data->data); + else + label = etk_label_new(_("Running...")); + + progress = etk_progress_bar_new(); + + etk_dialog_pack_in_main_area(ETK_DIALOG(dialog), label, ETK_TRUE, ETK_TRUE, 3, ETK_FALSE); + etk_dialog_pack_in_main_area(ETK_DIALOG(dialog), progress, ETK_TRUE, ETK_TRUE, 3, ETK_FALSE); + etk_dialog_button_add_from_stock(ETK_DIALOG(dialog), ETK_STOCK_DIALOG_OK, ETK_RESPONSE_OK); + etk_dialog_button_add_from_stock(ETK_DIALOG(dialog), ETK_STOCK_DIALOG_CANCEL, ETK_RESPONSE_CANCEL); + etk_signal_connect("response", ETK_OBJECT(dialog), ETK_CALLBACK(_en_ok_print_stdout_cb), progress); + + etk_container_border_width_set(ETK_CONTAINER(dialog), 4); + + if((data = _en_arg_data_get(args, "title")) != NULL) + etk_window_title_set(ETK_WINDOW(dialog), data->data); + else + etk_window_title_set(ETK_WINDOW(dialog), _("Progress")); + + _en_fd_stdin_handler = ecore_main_fd_handler_add(1, ECORE_FD_READ, _en_fd_stdin_cb, progress, NULL, NULL); + + etk_widget_show_all(dialog); +} + static void _en_scale_step_cb(Etk_Argument *args, int index) { /* do any changes / fixes / checks here */ @@ -527,6 +584,10 @@ { "checklist", ' ', NULL, _en_list_check_cb, NULL, ETK_ARGUMENT_FLAG_OPTIONAL, "Use check boxes for first column" }, { "column", ' ', NULL, _en_list_column_cb, NULL, ETK_ARGUMENT_FLAG_OPTIONAL|ETK_ARGUMENT_FLAG_VALUE_REQUIRED|ETK_ARGUMENT_FLAG_MULTIVALUE, "Set the column header" }, { "list", ' ', NULL, _en_list_cb, NULL, ETK_ARGUMENT_FLAG_OPTIONAL, "Display list dialog" }, + + /* --progress options */ + { "progress", ' ', NULL, _en_progress_cb, NULL, ETK_ARGUMENT_FLAG_OPTIONAL, "Display progress indication dialog" }, + /* terminator */ { NULL, -1, NULL, NULL, NULL, ETK_ARGUMENT_FLAG_NONE, " " } }; =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/enity/src/bin/enity.h,v retrieving revision 1.3 retrieving revision 1.4 diff -u -3 -r1.3 -r1.4 --- enity.h 15 Mar 2006 12:39:14 -0000 1.3 +++ enity.h 16 Mar 2006 17:01:35 -0000 1.4 @@ -3,6 +3,7 @@ #include <stdio.h> #include <stdlib.h> +#include <unistd.h> #include <string.h> #include <limits.h> |
From: <enl...@li...> - 2006-03-16 17:01:41
|
Enlightenment CVS committal Author : codewarrior Project : e17 Module : proto Dir : e17/proto/enity Modified Files: README TODO Log Message: - add "--progress" option =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/enity/README,v retrieving revision 1.5 retrieving revision 1.6 diff -u -3 -r1.5 -r1.6 --- README 16 Mar 2006 13:14:30 -0000 1.5 +++ README 16 Mar 2006 17:01:35 -0000 1.6 @@ -61,3 +61,8 @@ --value 40 \ --max-value 120 \ --text 'Selelect refresh rate' + +enity --progress \ + --text "Copying files..." + +then enter a value on stdin and press enter to see bar update. =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/enity/TODO,v retrieving revision 1.5 retrieving revision 1.6 diff -u -3 -r1.5 -r1.6 --- TODO 16 Mar 2006 13:14:30 -0000 1.5 +++ TODO 16 Mar 2006 17:01:35 -0000 1.6 @@ -31,7 +31,7 @@ * not done --progress Display progress indication dialog - * not done + * done, needs pulse support --text-info Display text information dialog * not done @@ -40,6 +40,12 @@ * working, not done (needs multiple select, radio buttons) * checklist done +--wizard Display wizard dialog + * not done + +--installer Display installer dialog + * not done + Misc TODO: ========== |
From: <enl...@li...> - 2006-03-19 15:19:07
|
Enlightenment CVS committal Author : codewarrior Project : e17 Module : proto Dir : e17/proto/etk_server Log Message: Directory /cvsroot/enlightenment/e17/proto/etk_server added to the repository |
From: <enl...@li...> - 2006-03-19 15:19:32
|
Enlightenment CVS committal Author : codewarrior Project : e17 Module : proto Dir : e17/proto/etk_server/doc Log Message: Directory /cvsroot/enlightenment/e17/proto/etk_server/doc added to the repository |
From: <enl...@li...> - 2006-03-19 15:20:03
|
Enlightenment CVS committal Author : codewarrior Project : e17 Module : proto Dir : e17/proto/etk_server/doc/img Log Message: Directory /cvsroot/enlightenment/e17/proto/etk_server/doc/img added to the repository |
From: <enl...@li...> - 2006-03-19 15:34:19
|
Enlightenment CVS committal Author : codewarrior Project : e17 Module : proto Dir : e17/proto/etk_server/examples Log Message: Directory /cvsroot/enlightenment/e17/proto/etk_server/examples added to the repository |
From: <enl...@li...> - 2006-03-19 15:39:45
|
Enlightenment CVS committal Author : codewarrior Project : e17 Module : proto Dir : e17/proto/etk_server/m4 Added Files: ac_path_generic.m4 Log Message: Etk_Server allows Etk applications to be programmed using almost any language. The user interacts with a fifo that allows for the sending of commands, receiving of output, and event programming. Examples can be found in the examples directory. |
From: <enl...@li...> - 2006-03-19 15:39:45
|
Enlightenment CVS committal Author : codewarrior Project : e17 Module : proto Dir : e17/proto/etk_server/doc Added Files: etk_server.css foot.html head.html Log Message: Etk_Server allows Etk applications to be programmed using almost any language. The user interacts with a fifo that allows for the sending of commands, receiving of output, and event programming. Examples can be found in the examples directory. |