Enlightenment CVS committal Author : leviathan Project : e17 Module : libs/etk-perl
Dir : e17/libs/etk-perl/xs Modified Files: Combobox.xs Log Message: Rework Combobox items to make use of new empty functions. Also added utility functions to Etk.pm so that users don't have to manually call FieldsSet, they can continue to use the same old syntax and all conversion is done automatically =================================================================== RCS file: /cvs/e/e17/libs/etk-perl/xs/Combobox.xs,v retrieving revision 1.4 retrieving revision 1.5 diff -u -3 -r1.4 -r1.5 --- Combobox.xs 6 Aug 2007 12:43:15 -0000 1.4 +++ Combobox.xs 14 Oct 2007 14:07:22 -0000 1.5 @@ -77,243 +77,24 @@ ALIAS: Clear=1 -# FIXME: Copied directly from combobox: These need to be changed Etk_Combobox_Entry_Item * -etk_combobox_entry_item_append(combobox, ...) - Etk_Combobox_Entry * combobox - ALIAS: - ItemAppend=1 - CODE: - int i; - void **ptr = NULL; +etk_combobox_entry_item_append_empty(combobox) + Etk_Combobox_Entry * combobox + ALIAS: + ItemAppendEmpty=1 - ptr = calloc(items, sizeof(void *)); - memset(ptr, 0, items * sizeof(void *)); - /* the idea here is that we either have a max limit on how many items - * we can have in a combo, or we create "models" like the tree. lets - * see how well this will work. - */ - for(i = 0; i < items - 1; i++) - { - if(SvPOK(ST(i + 1))) - ptr[i] = SvPV_nolen(ST(i + 1)); - else - ptr[i] = SvObj(ST(i + 1), getClass("Etk_Widget")); - } - switch(items) - { - case 2: - RETVAL = etk_combobox_entry_item_append(combobox, ptr[0]); - break; - case 3: - RETVAL = etk_combobox_entry_item_append(combobox, ptr[0], ptr[1]); - break; - case 4: - RETVAL = etk_combobox_entry_item_append(combobox, ptr[0], ptr[1], ptr[2]); - break; - case 5: - RETVAL = etk_combobox_entry_item_append(combobox, ptr[0], ptr[1], ptr[2], ptr[3]); - break; - case 6: - RETVAL = etk_combobox_entry_item_append(combobox, ptr[0], - ptr[1], ptr[2], ptr[3], ptr[4]); - break; - case 7: - RETVAL = etk_combobox_entry_item_append(combobox, ptr[0], - ptr[1], ptr[2], ptr[3], ptr[4], - ptr[5]); - break; - case 8: - RETVAL = etk_combobox_entry_item_append(combobox, ptr[0], - ptr[1], ptr[2], ptr[3], ptr[4], - ptr[5], ptr[6]); - break; - case 9: - RETVAL = etk_combobox_entry_item_append(combobox, ptr[0], - ptr[1], ptr[2], ptr[3], ptr[4], - ptr[5], ptr[6], ptr[7]); - break; - case 10: - RETVAL = etk_combobox_entry_item_append(combobox, ptr[0], - ptr[1], ptr[2], ptr[3], ptr[4], - ptr[5], ptr[6], ptr[7], ptr[8]); - break; - case 11: - RETVAL = etk_combobox_entry_item_append(combobox, ptr[0], - ptr[1], ptr[2], ptr[3], ptr[4], - ptr[5], ptr[6], ptr[7], ptr[8], - ptr[9]); - break; - } - if(ptr) - free(ptr); - OUTPUT: - RETVAL - Etk_Combobox_Entry_Item * -etk_combobox_entry_item_prepend(combobox, ...) - Etk_Combobox_Entry * combobox - ALIAS: - ItemPrepend=1 - CODE: - int i; - void **ptr = NULL; +etk_combobox_entry_item_prepend_empty(combobox) + Etk_Combobox_Entry * combobox + ALIAS: + ItemPrependEmpty=1 - ptr = calloc(items, sizeof(void *)); - memset(ptr, 0, items * sizeof(void *)); - /* the idea here is that we either have a max limit on how many items - * we can have in a combo, or we create "models" like the tree. lets - * see how well this will work. - */ - for(i = 0; i < items - 1; i++) - { - if(SvPOK(ST(i + 1))) - ptr[i] = SvPV_nolen(ST(i + 1)); - else - ptr[i] = SvObj(ST(i + 1), getClass("Etk_Widget")); - } - switch(items) - { - case 2: - RETVAL = etk_combobox_entry_item_prepend(combobox, ptr[0]); - break; - case 3: - RETVAL = etk_combobox_entry_item_prepend(combobox, ptr[0], - ptr[1]); - break; - case 4: - RETVAL = etk_combobox_entry_item_prepend(combobox, ptr[0], - ptr[1], ptr[2]); - break; - case 5: - RETVAL = etk_combobox_entry_item_prepend(combobox, ptr[0], - ptr[1], ptr[2], ptr[3]); - break; - case 6: - RETVAL = etk_combobox_entry_item_prepend(combobox, ptr[0], - ptr[1], ptr[2], ptr[3], ptr[4]); - break; - case 7: - RETVAL = etk_combobox_entry_item_prepend(combobox, ptr[0], - ptr[1], ptr[2], ptr[3], ptr[4], - ptr[5]); - break; - case 8: - RETVAL = etk_combobox_entry_item_prepend(combobox, ptr[0], - ptr[1], ptr[2], ptr[3], ptr[4], - ptr[5], ptr[6]); - break; - case 9: - RETVAL = etk_combobox_entry_item_prepend(combobox, ptr[0], - ptr[1], ptr[2], ptr[3], ptr[4], - ptr[5], ptr[6], ptr[7]); - break; - case 10: - RETVAL = etk_combobox_entry_item_prepend(combobox, ptr[0], - ptr[1], ptr[2], ptr[3], ptr[4], - ptr[5], ptr[6], ptr[7], ptr[8]); - break; - case 11: - RETVAL = etk_combobox_entry_item_prepend(combobox, ptr[0], - ptr[1], ptr[2], ptr[3], ptr[4], - ptr[5], ptr[6], ptr[7], ptr[8], - ptr[9]); - break; - } - if(ptr) - free(ptr); - OUTPUT: - RETVAL - Etk_Combobox_Entry_Item * -etk_combobox_entry_item_insert(combobox, after, ...) - Etk_Combobox_Entry * combobox - Etk_Combobox_Entry_Item * after - ALIAS: - ItemInsert=1 - CODE: - int i; - void **ptr = NULL; - - ptr = calloc(items, sizeof(void *)); - memset(ptr, 0, items * sizeof(void *)); - /* the idea here is that we either have a max limit on how many items - * we can have in a combo, or we create "models" like the tree. lets - * see how well this will work. - */ - for(i = 0; i < items - 2; i++) - { - if(SvPOK(ST(i + 1))) - ptr[i] = SvPV_nolen(ST(i + 1)); - else - ptr[i] = SvObj(ST(i + 1), getClass("Etk_Widget")); - } - switch(items) - { - case 2: - RETVAL = etk_combobox_entry_item_insert(combobox, - after, ptr[0]); - break; - case 3: - RETVAL = etk_combobox_entry_item_insert(combobox, - after, ptr[0], - ptr[1]); - break; - case 4: - RETVAL = etk_combobox_entry_item_insert(combobox, - after, ptr[0], - ptr[1], ptr[2]); - break; - case 5: - RETVAL = etk_combobox_entry_item_insert(combobox, - after, ptr[0], - ptr[1], ptr[2], ptr[3]); - break; - case 6: - RETVAL = etk_combobox_entry_item_insert(combobox, - after, ptr[0], - ptr[1], ptr[2], ptr[3], - ptr[4]); - break; - case 7: - RETVAL = etk_combobox_entry_item_insert(combobox, - after, ptr[0], - ptr[1], ptr[2], ptr[3], - ptr[4], ptr[5]); - break; - case 8: - RETVAL = etk_combobox_entry_item_insert(combobox, - after, ptr[0], - ptr[1], ptr[2], ptr[3], - ptr[4], ptr[5], ptr[6]); - break; - case 9: - RETVAL = etk_combobox_entry_item_insert(combobox, - after, ptr[0], - ptr[1], ptr[2], ptr[3], - ptr[4], ptr[5], ptr[6], - ptr[7]); - break; - case 10: - RETVAL = etk_combobox_entry_item_insert(combobox, - after, ptr[0], - ptr[1], ptr[2], ptr[3], - ptr[4], ptr[5], ptr[6], - ptr[7], ptr[8]); - break; - case 11: - RETVAL = etk_combobox_entry_item_insert(combobox, - after, ptr[0], - ptr[1], ptr[2], ptr[3], - ptr[4], ptr[5], ptr[6], - ptr[7], ptr[8], ptr[9]); - break; - } - if(ptr) - free(ptr); - OUTPUT: - RETVAL - +etk_combobox_entry_item_insert_empty(combobox, after) + Etk_Combobox_Entry * combobox + Etk_Combobox_Entry_Item * after + ALIAS: + ItemInsertEmpty=1 void etk_combobox_entry_active_item_set(combobox_entry, item) @@ -381,6 +162,73 @@ MODULE = Etk::Combobox::Entry::Item PACKAGE = Etk::Combobox::Entry::Item PREFIX = etk_combobox_entry_item_ void +etk_combobox_entry_item_fields_set(item, ...) + Etk_Combobox_Entry_Item * item + ALIAS: + FieldsSet=1 + CODE: + int i; + void **ptr = NULL; + + ptr = calloc(items, sizeof(void *)); + memset(ptr, 0, items * sizeof(void *)); + for(i = 0; i < items - 1; i++) + { + if(SvPOK(ST(i + 1))) + ptr[i] = SvPV_nolen(ST(i + 1)); + else + ptr[i] = SvObj(ST(i + 1), getClass("Etk_Widget")); + } + switch(items) + { + case 2: + etk_combobox_entry_item_fields_set(item, ptr[0]); + break; + case 3: + etk_combobox_entry_item_fields_set(item, ptr[0], ptr[1]); + break; + case 4: + etk_combobox_entry_item_fields_set(item, ptr[0], ptr[1], ptr[2]); + break; + case 5: + etk_combobox_entry_item_fields_set(item, ptr[0], ptr[1], ptr[2], ptr[3]); + break; + case 6: + etk_combobox_entry_item_fields_set(item, ptr[0], + ptr[1], ptr[2], ptr[3], ptr[4]); + break; + case 7: + etk_combobox_entry_item_fields_set(item, ptr[0], + ptr[1], ptr[2], ptr[3], ptr[4], + ptr[5]); + break; + case 8: + etk_combobox_entry_item_fields_set(item, ptr[0], + ptr[1], ptr[2], ptr[3], ptr[4], + ptr[5], ptr[6]); + break; + case 9: + etk_combobox_entry_item_fields_set(item, ptr[0], + ptr[1], ptr[2], ptr[3], ptr[4], + ptr[5], ptr[6], ptr[7]); + break; + case 10: + etk_combobox_entry_item_fields_set(item, ptr[0], + ptr[1], ptr[2], ptr[3], ptr[4], + ptr[5], ptr[6], ptr[7], ptr[8]); + break; + case 11: + etk_combobox_entry_item_fields_set(item, ptr[0], + ptr[1], ptr[2], ptr[3], ptr[4], + ptr[5], ptr[6], ptr[7], ptr[8], + ptr[9]); + break; + } + if(ptr) + free(ptr); + + +void etk_combobox_entry_item_remove(item) Etk_Combobox_Entry_Item *item ALIAS: @@ -455,6 +303,74 @@ MODULE = Etk::Combobox::Item PACKAGE = Etk::Combobox::Item PREFIX = etk_combobox_item_ +void +etk_combobox_item_fields_set(item, ...) + Etk_Combobox_Item * item + ALIAS: + FieldsSet=1 + CODE: + int i; + void **ptr = NULL; + + ptr = calloc(items, sizeof(void *)); + memset(ptr, 0, items * sizeof(void *)); + for(i = 0; i < items - 1; i++) + { + if(SvPOK(ST(i + 1))) + ptr[i] = SvPV_nolen(ST(i + 1)); + else + ptr[i] = SvObj(ST(i + 1), getClass("Etk_Widget")); + } + switch(items) + { + case 2: + etk_combobox_item_fields_set(item, ptr[0]); + break; + case 3: + etk_combobox_item_fields_set(item, ptr[0], ptr[1]); + break; + case 4: + etk_combobox_item_fields_set(item, ptr[0], ptr[1], ptr[2]); + break; + case 5: + etk_combobox_item_fields_set(item, ptr[0], ptr[1], ptr[2], ptr[3]); + break; + case 6: + etk_combobox_item_fields_set(item, ptr[0], + ptr[1], ptr[2], ptr[3], ptr[4]); + break; + case 7: + etk_combobox_item_fields_set(item, ptr[0], + ptr[1], ptr[2], ptr[3], ptr[4], + ptr[5]); + break; + case 8: + etk_combobox_item_fields_set(item, ptr[0], + ptr[1], ptr[2], ptr[3], ptr[4], + ptr[5], ptr[6]); + break; + case 9: + etk_combobox_item_fields_set(item, ptr[0], + ptr[1], ptr[2], ptr[3], ptr[4], + ptr[5], ptr[6], ptr[7]); + break; + case 10: + etk_combobox_item_fields_set(item, ptr[0], + ptr[1], ptr[2], ptr[3], ptr[4], + ptr[5], ptr[6], ptr[7], ptr[8]); + break; + case 11: + etk_combobox_item_fields_set(item, ptr[0], + ptr[1], ptr[2], ptr[3], ptr[4], + ptr[5], ptr[6], ptr[7], ptr[8], + ptr[9]); + break; + } + if(ptr) + free(ptr); + + + SV * etk_combobox_item_data_get(item) Etk_Combobox_Item * item @@ -573,241 +489,24 @@ ItemsHeightGet=1 Etk_Combobox_Item * -etk_combobox_item_append(combobox, ...) - Etk_Combobox * combobox - ALIAS: - ItemAppend=1 - CODE: - int i; - void **ptr = NULL; +etk_combobox_item_append_empty(combobox) + Etk_Combobox * combobox + ALIAS: + ItemAppendEmpty=1 - ptr = calloc(items, sizeof(void *)); - memset(ptr, 0, items * sizeof(void *)); - /* the idea here is that we either have a max limit on how many items - * we can have in a combo, or we create "models" like the tree. lets - * see how well this will work. - */ - for(i = 0; i < items - 1; i++) - { - if(SvPOK(ST(i + 1))) - ptr[i] = SvPV_nolen(ST(i + 1)); - else - ptr[i] = SvObj(ST(i + 1), getClass("Etk_Widget")); - } - switch(items) - { - case 2: - RETVAL = etk_combobox_item_append(combobox, ptr[0]); - break; - case 3: - RETVAL = etk_combobox_item_append(combobox, ptr[0], ptr[1]); - break; - case 4: - RETVAL = etk_combobox_item_append(combobox, ptr[0], ptr[1], ptr[2]); - break; - case 5: - RETVAL = etk_combobox_item_append(combobox, ptr[0], ptr[1], ptr[2], ptr[3]); - break; - case 6: - RETVAL = etk_combobox_item_append(combobox, ptr[0], - ptr[1], ptr[2], ptr[3], ptr[4]); - break; - case 7: - RETVAL = etk_combobox_item_append(combobox, ptr[0], - ptr[1], ptr[2], ptr[3], ptr[4], - ptr[5]); - break; - case 8: - RETVAL = etk_combobox_item_append(combobox, ptr[0], - ptr[1], ptr[2], ptr[3], ptr[4], - ptr[5], ptr[6]); - break; - case 9: - RETVAL = etk_combobox_item_append(combobox, ptr[0], - ptr[1], ptr[2], ptr[3], ptr[4], - ptr[5], ptr[6], ptr[7]); - break; - case 10: - RETVAL = etk_combobox_item_append(combobox, ptr[0], - ptr[1], ptr[2], ptr[3], ptr[4], - ptr[5], ptr[6], ptr[7], ptr[8]); - break; - case 11: - RETVAL = etk_combobox_item_append(combobox, ptr[0], - ptr[1], ptr[2], ptr[3], ptr[4], - ptr[5], ptr[6], ptr[7], ptr[8], - ptr[9]); - break; - } - if(ptr) - free(ptr); - OUTPUT: - RETVAL - Etk_Combobox_Item * -etk_combobox_item_prepend(combobox, ...) - Etk_Combobox * combobox - ALIAS: - ItemPrepend=1 - CODE: - int i; - void **ptr = NULL; +etk_combobox_item_prepend_empty(combobox) + Etk_Combobox * combobox + ALIAS: + ItemPrependEmpty=1 - ptr = calloc(items, sizeof(void *)); - memset(ptr, 0, items * sizeof(void *)); - /* the idea here is that we either have a max limit on how many items - * we can have in a combo, or we create "models" like the tree. lets - * see how well this will work. - */ - for(i = 0; i < items - 1; i++) - { - if(SvPOK(ST(i + 1))) - ptr[i] = SvPV_nolen(ST(i + 1)); - else - ptr[i] = SvObj(ST(i + 1), getClass("Etk_Widget")); - } - switch(items) - { - case 2: - RETVAL = etk_combobox_item_prepend(combobox, ptr[0]); - break; - case 3: - RETVAL = etk_combobox_item_prepend(combobox, ptr[0], - ptr[1]); - break; - case 4: - RETVAL = etk_combobox_item_prepend(combobox, ptr[0], - ptr[1], ptr[2]); - break; - case 5: - RETVAL = etk_combobox_item_prepend(combobox, ptr[0], - ptr[1], ptr[2], ptr[3]); - break; - case 6: - RETVAL = etk_combobox_item_prepend(combobox, ptr[0], - ptr[1], ptr[2], ptr[3], ptr[4]); - break; - case 7: - RETVAL = etk_combobox_item_prepend(combobox, ptr[0], - ptr[1], ptr[2], ptr[3], ptr[4], - ptr[5]); - break; - case 8: - RETVAL = etk_combobox_item_prepend(combobox, ptr[0], - ptr[1], ptr[2], ptr[3], ptr[4], - ptr[5], ptr[6]); - break; - case 9: - RETVAL = etk_combobox_item_prepend(combobox, ptr[0], - ptr[1], ptr[2], ptr[3], ptr[4], - ptr[5], ptr[6], ptr[7]); - break; - case 10: - RETVAL = etk_combobox_item_prepend(combobox, ptr[0], - ptr[1], ptr[2], ptr[3], ptr[4], - ptr[5], ptr[6], ptr[7], ptr[8]); - break; - case 11: - RETVAL = etk_combobox_item_prepend(combobox, ptr[0], - ptr[1], ptr[2], ptr[3], ptr[4], - ptr[5], ptr[6], ptr[7], ptr[8], - ptr[9]); - break; - } - if(ptr) - free(ptr); - OUTPUT: - RETVAL - Etk_Combobox_Item * -etk_combobox_item_insert(combobox, after, ...) - Etk_Combobox * combobox - Etk_Combobox_Item * after - ALIAS: - ItemInsert=1 - CODE: - int i; - void **ptr = NULL; +etk_combobox_item_insert_empty(combobox, after) + Etk_Combobox * combobox + Etk_Combobox_Item * after + ALIAS: + ItemInsertEmpty=1 - ptr = calloc(items, sizeof(void *)); - memset(ptr, 0, items * sizeof(void *)); - /* the idea here is that we either have a max limit on how many items - * we can have in a combo, or we create "models" like the tree. lets - * see how well this will work. - */ - for(i = 0; i < items - 2; i++) - { - if(SvPOK(ST(i + 1))) - ptr[i] = SvPV_nolen(ST(i + 1)); - else - ptr[i] = SvObj(ST(i + 1), getClass("Etk_Widget")); - } - switch(items) - { - case 2: - RETVAL = etk_combobox_item_insert(combobox, - after, ptr[0]); - break; - case 3: - RETVAL = etk_combobox_item_insert(combobox, - after, ptr[0], - ptr[1]); - break; - case 4: - RETVAL = etk_combobox_item_insert(combobox, - after, ptr[0], - ptr[1], ptr[2]); - break; - case 5: - RETVAL = etk_combobox_item_insert(combobox, - after, ptr[0], - ptr[1], ptr[2], ptr[3]); - break; - case 6: - RETVAL = etk_combobox_item_insert(combobox, - after, ptr[0], - ptr[1], ptr[2], ptr[3], - ptr[4]); - break; - case 7: - RETVAL = etk_combobox_item_insert(combobox, - after, ptr[0], - ptr[1], ptr[2], ptr[3], - ptr[4], ptr[5]); - break; - case 8: - RETVAL = etk_combobox_item_insert(combobox, - after, ptr[0], - ptr[1], ptr[2], ptr[3], - ptr[4], ptr[5], ptr[6]); - break; - case 9: - RETVAL = etk_combobox_item_insert(combobox, - after, ptr[0], - ptr[1], ptr[2], ptr[3], - ptr[4], ptr[5], ptr[6], - ptr[7]); - break; - case 10: - RETVAL = etk_combobox_item_insert(combobox, - after, ptr[0], - ptr[1], ptr[2], ptr[3], - ptr[4], ptr[5], ptr[6], - ptr[7], ptr[8]); - break; - case 11: - RETVAL = etk_combobox_item_insert(combobox, - after, ptr[0], - ptr[1], ptr[2], ptr[3], - ptr[4], ptr[5], ptr[6], - ptr[7], ptr[8], ptr[9]); - break; - } - if(ptr) - free(ptr); - OUTPUT: - RETVAL - void etk_combobox_active_item_set(combobox, item) Etk_Combobox * combobox ------------------------------------------------------------------------- This SF.net email is sponsored by: Splunk Inc. Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/ _______________________________________________ enlightenment-cvs mailing list enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs