Enlightenment CVS committal Author : leviathan Project : e17 Module : proto
Dir : e17/proto/etk-perl Modified Files: Etk.xs TODO const-c.inc Log Message: Huge changes. - todo-- Note: some things are still not complete and some still need testing. =================================================================== RCS file: /cvs/e/e17/proto/etk-perl/Etk.xs,v retrieving revision 1.22 retrieving revision 1.23 diff -u -3 -r1.22 -r1.23 --- Etk.xs 1 Jul 2006 18:57:20 -0000 1.22 +++ Etk.xs 1 Jul 2006 20:20:22 -0000 1.23 @@ -319,6 +319,213 @@ return ret; } +Etk_Color +perl_hash_to_color(SV * color) +{ + dSP; + Etk_Color col; + + ENTER; + SAVETMPS; + + if (SvROK(color) && SvTYPE(SvRV(color)) == SVt_PVHV) + { + HV * hash; + SV ** val; + + hash = (HV*)SvRV(color); + + val = hv_fetch(hash, "r", strlen("r"), 0); + col.r = val ? SvIV(*val) : 0; + + val = hv_fetch(hash, "g", strlen("g"), 0); + col.g = val ? SvIV(*val) : 0; + + val = hv_fetch(hash, "b", strlen("b"), 0); + col.b = val ? SvIV(*val) : 0; + + val = hv_fetch(hash, "a", strlen("a"), 0); + col.a = val ? SvIV(*val) : 0; + + } + + PUTBACK; + FREETMPS; + LEAVE; + + return col; +} + +HV * +color_to_perl_hash(Etk_Color col) +{ + dSP; + HV * hv; + SV * color; + + ENTER; + SAVETMPS; + + hv = (HV*)sv_2mortal((SV*)newHV()); + + color = newSViv(col.r); + hv_store(hv, "r", strlen("r"), color, 0); + color = newSViv(col.g); + hv_store(hv, "g", strlen("g"), color, 0); + color = newSViv(col.b); + hv_store(hv, "b", strlen("b"), color, 0); + color = newSViv(col.a); + hv_store(hv, "a", strlen("a"), color, 0); + + PUTBACK; + FREETMPS; + LEAVE; + + return hv; +} + + +Etk_Geometry +perl_hash_to_geometry(SV * geometry) +{ + dSP; + + Etk_Geometry geo; + + ENTER; + SAVETMPS; + + if (SvROK(geometry) && SvTYPE(SvRV(geometry)) == SVt_PVHV) + { + HV * hash; + SV ** val; + + hash = (HV*)SvRV(geometry); + + val = hv_fetch(hash, "x", strlen("x"), 0); + geo.x = val ? SvIV(*val) : 0; + + val = hv_fetch(hash, "y", strlen("y"), 0); + geo.y = val ? SvIV(*val) : 0; + + val = hv_fetch(hash, "w", strlen("w"), 0); + geo.w = val ? SvIV(*val) : 0; + + val = hv_fetch(hash, "h", strlen("h"), 0); + geo.h = val ? SvIV(*val) : 0; + + } + + PUTBACK; + FREETMPS; + LEAVE; + + return geo; +} + +HV * +geometry_to_perl_hash(Etk_Geometry geo) +{ + dSP; + HV * hv; + SV * geometry; + + ENTER; + SAVETMPS; + + hv = (HV*)sv_2mortal((SV*)newHV()); + + geometry = newSViv(geo.x); + hv_store(hv, "x", strlen("x"), geometry, 0); + geometry = newSViv(geo.y); + hv_store(hv, "y", strlen("y"), geometry, 0); + geometry = newSViv(geo.w); + hv_store(hv, "w", strlen("w"), geometry, 0); + geometry = newSViv(geo.h); + hv_store(hv, "h", strlen("h"), geometry, 0); + + PUTBACK; + FREETMPS; + LEAVE; + + return hv; +} + +Etk_Size +perl_hash_to_size(SV * size) +{ + dSP; + Etk_Size s; + + ENTER; + SAVETMPS; + + if (SvROK(size) && SvTYPE(SvRV(size)) == SVt_PVHV) + { + HV * hash; + SV ** val; + + hash = (HV*)SvRV(size); + + val = hv_fetch(hash, "w", strlen("w"), 0); + s.w = val ? SvIV(*val) : 0; + + val = hv_fetch(hash, "h", strlen("h"), 0); + s.h = val ? SvIV(*val) : 0; + + } + + PUTBACK; + FREETMPS; + LEAVE; + + return s; +} + +HV * +size_to_perl_hash(Etk_Size s) +{ + dSP; + HV * hv; + SV * size; + + ENTER; + SAVETMPS; + + hv = (HV*)sv_2mortal((SV*)newHV()); + + size = newSViv(s.w); + hv_store(hv, "w", strlen("w"), size, 0); + size = newSViv(s.h); + hv_store(hv, "h", strlen("h"), size, 0); + + PUTBACK; + FREETMPS; + LEAVE; + + return hv; +} + +AV * +evas_list_to_perl(Evas_List * list) +{ + dSP; + AV * av; + Evas_List * l; + + ENTER; + SAVETMPS; + + av = newAV(); + for (l = list; l; l = l->next) + av_push(av, newSViv((IV)(l->data))); + + PUTBACK; + FREETMPS; + LEAVE; + + return av; +} MODULE = Etk PACKAGE = Etk @@ -350,7 +557,7 @@ void etk_alignment_get(alignment) - Etk_Alignment * alignment + Etk_Widget * alignment PPCODE: float xalign; float yalign; @@ -374,11 +581,13 @@ void etk_alignment_set(alignment, xalign, yalign, xscale, yscale) - Etk_Alignment * alignment + Etk_Widget * alignment float xalign float yalign float xscale float yscale + CODE: + etk_alignment_set(ETK_ALIGNMENT(alignment), xalign, yalign, xscale, yscale); Etk_Type * etk_alignment_type_get() @@ -405,12 +614,18 @@ Etk_Widget * etk_bin_child_get(bin) - Etk_Bin * bin + Etk_Widget * bin + CODE: + RETVAL = etk_bin_child_get(ETK_BIN(bin)); + OUTPUT: + RETVAL void etk_bin_child_set(bin, child) - Etk_Bin * bin + Etk_Widget * bin Etk_Widget * child + CODE: + etk_bin_child_set(ETK_BIN(bin), child); Etk_Type * etk_bin_type_get() @@ -448,9 +663,7 @@ etk_box_homogeneous_get(box) Etk_Widget * box CODE: - Etk_Bool var; - var = etk_box_homogeneous_get(ETK_BOX(box)); - RETVAL = var; + RETVAL = etk_box_homogeneous_get(ETK_BOX(box)); OUTPUT: RETVAL @@ -485,9 +698,7 @@ etk_box_spacing_get(box) Etk_Widget * box CODE: - int var; - var = etk_box_spacing_get(ETK_BOX(box)); - RETVAL = var; + RETVAL = etk_box_spacing_get(ETK_BOX(box)); OUTPUT: RETVAL @@ -548,9 +759,7 @@ etk_button_label_get(button) Etk_Widget * button CODE: - const char * var; - var = etk_button_label_get(ETK_BUTTON(button)); - RETVAL = var; + RETVAL = etk_button_label_get(ETK_BUTTON(button)); OUTPUT: RETVAL @@ -702,30 +911,37 @@ char * data int length -Etk_Color +void etk_colorpicker_current_color_get(cp) Etk_Widget * cp - CODE: + PPCODE: Etk_Color var; + HV * hv; + SV * color; + var = etk_colorpicker_current_color_get(ETK_COLORPICKER(cp)); - RETVAL = var; - OUTPUT: - RETVAL + hv = color_to_perl_hash(var); + + color = newRV((SV*)hv); + XPUSHs(sv_2mortal(color)); + void etk_colorpicker_current_color_set(cp, color) Etk_Widget * cp - Etk_Color color - CODE: - etk_colorpicker_current_color_set(ETK_COLORPICKER(cp), color); + SV * color + PPCODE: + Etk_Color col; + + col = perl_hash_to_color(color); + etk_colorpicker_current_color_set(ETK_COLORPICKER(cp), col); + Etk_Colorpicker_Mode etk_colorpicker_mode_get(cp) Etk_Widget * cp CODE: - Etk_Colorpicker_Mode var; - var = etk_colorpicker_mode_get(ETK_COLORPICKER(cp)); - RETVAL = var; + RETVAL = etk_colorpicker_mode_get(ETK_COLORPICKER(cp)); OUTPUT: RETVAL @@ -1219,11 +1435,16 @@ void etk_container_child_space_fill(child, child_space, hfill, vfill, xalign, yalign) Etk_Widget * child - Etk_Geometry * child_space + SV * child_space Etk_Bool hfill Etk_Bool vfill float xalign float yalign + CODE: + Etk_Geometry sp; + sp = perl_hash_to_geometry(child_space); + etk_container_child_space_fill(child, &sp, hfill, vfill, xalign, yalign); + Evas_List * etk_container_children_get(container) @@ -1276,30 +1497,36 @@ Etk_Widget * dialog char * label int response_id - CODE: - etk_dialog_button_add(ETK_DIALOG(dialog), label, response_id); + CODE: + RETVAL = etk_dialog_button_add(ETK_DIALOG(dialog), label, response_id); + OUTPUT: + RETVAL Etk_Widget * etk_dialog_button_add_from_stock(dialog, stock_id, response_id) Etk_Widget * dialog int stock_id int response_id - CODE: - etk_dialog_button_add_from_stock(ETK_DIALOG(dialog), stock_id, response_id); - + CODE: + RETVAL = etk_dialog_button_add_from_stock(ETK_DIALOG(dialog), stock_id, response_id); + OUTPUT: + RETVAL + + Etk_Bool etk_dialog_has_separator_get(dialog) Etk_Widget * dialog - CODE: - etk_dialog_has_separator_get(ETK_DIALOG(dialog)); + CODE: + RETVAL = etk_dialog_has_separator_get(ETK_DIALOG(dialog)); + OUTPUT: + RETVAL void etk_dialog_has_separator_set(dialog, has_separator) Etk_Widget * dialog Etk_Bool has_separator - CODE: - etk_dialog_has_separator_set(ETK_DIALOG(dialog), has_separator); - + CODE: + etk_dialog_has_separator_set(ETK_DIALOG(dialog), has_separator); Etk_Widget * etk_dialog_new() @@ -1324,8 +1551,8 @@ Etk_Bool fill int padding Etk_Bool pack_at_end - CODE: - etk_dialog_pack_in_main_area(ETK_DIALOG(dialog), widget, expand, fill, padding, pack_at_end); + CODE: + etk_dialog_pack_in_main_area(ETK_DIALOG(dialog), widget, expand, fill, padding, pack_at_end); void etk_dialog_pack_widget_in_action_area(dialog, widget, expand, fill, padding, pack_at_end) @@ -1335,8 +1562,8 @@ Etk_Bool fill int padding Etk_Bool pack_at_end - CODE: - etk_dialog_pack_widget_in_action_area(ETK_DIALOG(dialog), widget, expand, fill, padding, pack_at_end); + CODE: + etk_dialog_pack_widget_in_action_area(ETK_DIALOG(dialog), widget, expand, fill, padding, pack_at_end); Etk_Type * etk_dialog_type_get() @@ -1349,7 +1576,9 @@ void etk_drag_begin(drag) - Etk_Drag * drag + Etk_Widget * drag + CODE: + etk_drag_begin(ETK_DRAG(drag)); void etk_drag_data_set(drag, data, size) @@ -1363,23 +1592,42 @@ Etk_Widget * etk_drag_parent_widget_get(drag) - Etk_Drag * drag + Etk_Widget * drag + CODE: + etk_drag_parent_widget_get(ETK_DRAG(drag)); void etk_drag_parent_widget_set(drag, widget) - Etk_Drag * drag + Etk_Widget * drag Etk_Widget * widget + CODE: + etk_drag_parent_widget_set(ETK_DRAG(drag), widget); Etk_Type * etk_drag_type_get() void -etk_drag_types_set(drag, types, num_types) +etk_drag_types_set(drag, types) Etk_Widget * drag - const char ** types - unsigned int num_types + AV * types CODE: - etk_drag_types_set(ETK_DRAG(drag), types, num_types); + const char ** t; + unsigned int num_types; + int i; + + num_types = (unsigned int) av_len(types) + 1; + t = calloc(num_types, sizeof(char *)); + for (i=0; i<num_types; i++) { + SV ** val; + val = av_fetch(types, i, 0); + if (val) + t[i] = (char *)SvIV(*val); + else + t[i] = 0; + } + + etk_drag_types_set(ETK_DRAG(drag), t, num_types); + Evas_Object * etk_editable_text_object_add(evas) @@ -1473,41 +1721,90 @@ const char * etk_filechooser_widget_current_folder_get(filechooser_widget) - Etk_Filechooser_Widget * filechooser_widget + Etk_Widget * filechooser_widget + CODE: + RETVAL = etk_filechooser_widget_current_folder_get(ETK_FILECHOOSER_WIDGET(filechooser_widget)); + OUTPUT: + RETVAL + void etk_filechooser_widget_current_folder_set(filechooser_widget, folder) - Etk_Filechooser_Widget * filechooser_widget + Etk_Widget * filechooser_widget char * folder + CODE: + etk_filechooser_widget_current_folder_set(ETK_FILECHOOSER_WIDGET(filechooser_widget), folder); + Etk_Widget * etk_filechooser_widget_new() Etk_Bool etk_filechooser_widget_select_multiple_get(filechooser_widget) - Etk_Filechooser_Widget * filechooser_widget + Etk_Widget * filechooser_widget + CODE: + RETVAL = etk_filechooser_widget_select_multiple_get(ETK_FILECHOOSER_WIDGET(filechooser_widget)); + OUTPUT: + RETVAL void etk_filechooser_widget_select_multiple_set(filechooser_widget, select_multiple) - Etk_Filechooser_Widget * filechooser_widget + Etk_Widget * filechooser_widget Etk_Bool select_multiple + CODE: + etk_filechooser_widget_select_multiple_set(ETK_FILECHOOSER_WIDGET(filechooser_widget), select_multiple); const char * etk_filechooser_widget_selected_file_get(widget) - Etk_Filechooser_Widget * widget + Etk_Widget * widget + CODE: + const char * val; + val = etk_filechooser_widget_selected_file_get(ETK_FILECHOOSER_WIDGET(widget)); + if (val) + RETVAL = val; + else + RETVAL = ""; + OUTPUT: + RETVAL -Evas_List * + +void etk_filechooser_widget_selected_files_get(widget) - Etk_Filechooser_Widget * widget + Etk_Widget * widget + PPCODE: + Evas_List * list; + AV * av; + int i; + + list = etk_filechooser_widget_selected_files_get(ETK_FILECHOOSER_WIDGET(widget)); + av = evas_list_to_perl(list); + for (i=0; i<=av_len(av); i++) + { + SV * sv; + const char * filename; + + filename = (const char *)SvIV(av_shift(av)); + sv = newSVpv(filename, strlen(filename)); + + XPUSHs(sv_2mortal(sv)); + } + Etk_Bool etk_filechooser_widget_show_hidden_get(filechooser_widget) - Etk_Filechooser_Widget * filechooser_widget + Etk_Widget * filechooser_widget + CODE: + RETVAL = etk_filechooser_widget_show_hidden_get(ETK_FILECHOOSER_WIDGET(filechooser_widget)); + OUTPUT: + RETVAL void etk_filechooser_widget_show_hidden_set(filechooser_widget, show_hidden) - Etk_Filechooser_Widget * filechooser_widget + Etk_Widget * filechooser_widget Etk_Bool show_hidden + CODE: + etk_filechooser_widget_show_hidden_set(ETK_FILECHOOSER_WIDGET(filechooser_widget), show_hidden); + Etk_Type * etk_filechooser_widget_type_get() @@ -1645,8 +1942,8 @@ Etk_Iconbox_Icon * icon PPCODE: - char *filename; - char *edje_group; + const char *filename; + const char *edje_group; etk_iconbox_icon_file_get(icon, &filename, &edje_group); EXTEND(SP, 2); @@ -1656,8 +1953,8 @@ void etk_iconbox_icon_file_set(icon, filename, edje_group) Etk_Iconbox_Icon * icon - char * filename - char * edje_group + const char * filename + const char * edje_group Etk_Iconbox_Icon * etk_iconbox_icon_get_at_xy(iconbox, x, y, over_cell, over_icon, over_label) @@ -1759,12 +2056,24 @@ void etk_iconbox_model_label_geometry_get(model, x, y, width, height, xalign, yalign) Etk_Iconbox_Model * model - int * x - int * y - int * width - int * height - float * xalign - float * yalign + PPCODE: + int x; + int y; + int width; + int height; + float xalign; + float yalign; + + etk_iconbox_model_label_geometry_get(model, &x, &y, &width, &height, + &xalign, &yalign); + EXTEND(SP, 6); + PUSHs(sv_2mortal(newSViv(x))); + PUSHs(sv_2mortal(newSViv(y))); + PUSHs(sv_2mortal(newSViv(width))); + PUSHs(sv_2mortal(newSViv(height))); + PUSHs(sv_2mortal(newSViv(xalign))); + PUSHs(sv_2mortal(newSViv(yalign))); + void etk_iconbox_model_label_geometry_set(model, x, y, width, height, xalign, yalign) @@ -1922,12 +2231,15 @@ RETVAL void -etk_label_alignment_get(label, xalign, yalign) +etk_label_alignment_get(label) Etk_Widget * label - float * xalign - float * yalign - CODE: - etk_label_alignment_get(ETK_LABEL(label), xalign, yalign); + PPCODE: + float xalign; + float yalign; + etk_label_alignment_get(ETK_LABEL(label), &xalign, &yalign); + + XPUSHs(sv_2mortal(newSViv(xalign))); + XPUSHs(sv_2mortal(newSViv(yalign))); void etk_label_alignment_set(label, xalign, yalign) @@ -1975,14 +2287,35 @@ void etk_main_toplevel_widget_add(widget) - Etk_Toplevel_Widget * widget + Etk_Widget * widget + CODE: + etk_main_toplevel_widget_add(ETK_TOPLEVEL_WIDGET(widget)); void etk_main_toplevel_widget_remove(widget) - Etk_Toplevel_Widget * widget + Etk_Widget * widget + CODE: + etk_main_toplevel_widget_remove(ETK_TOPLEVEL_WIDGET(widget)); -Evas_List * +void etk_main_toplevel_widgets_get() + PPCODE: + Evas_List * list; + AV * av; + int i; + + list = etk_main_toplevel_widgets_get(); + av = evas_list_to_perl(list); + + for (i = av_len(av); i>=0; i--) + { + SV * sv; + sv = newRV(newSViv(0)); + sv_setref_iv(sv, "Etk_WidgetPtr", SvIV(av_shift(av))); + + XPUSHs(sv_2mortal(sv)); + } + av_undef(av); Etk_Widget * etk_menu_bar_new() @@ -1992,16 +2325,24 @@ void etk_menu_item_activate(menu_item) - Etk_Menu_Item * menu_item + Etk_Widget * menu_item + CODE: + etk_menu_item_activate(ETK_MENU_ITEM(menu_item)); Etk_Bool etk_menu_item_check_active_get(check_item) - Etk_Menu_Item_Check * check_item + Etk_Widget * check_item + CODE: + RETVAL = etk_menu_item_check_active_get(ETK_MENU_ITEM_CHECK(check_item)); + OUTPUT: + RETVAL void etk_menu_item_check_active_set(check_item, active) - Etk_Menu_Item_Check * check_item + Etk_Widget * check_item Etk_Bool active + CODE: + etk_menu_item_check_active_set(ETK_MENU_ITEM_CHECK(check_item), active); Etk_Widget * etk_menu_item_check_new() @@ -2015,7 +2356,9 @@ void etk_menu_item_deselect(menu_item) - Etk_Menu_Item * menu_item + Etk_Widget * menu_item + CODE: + etk_menu_item_deselect(ETK_MENU_ITEM(menu_item)); Etk_Widget * etk_menu_item_image_new() @@ -2107,7 +2450,9 @@ void etk_menu_item_select(menu_item) - Etk_Menu_Item * menu_item + Etk_Widget * menu_item + CODE: + etk_menu_item_select(ETK_MENU_ITEM(menu_item)); Etk_Widget * etk_menu_item_separator_new() @@ -2117,8 +2462,10 @@ void etk_menu_item_set_from_stock(menu_item, stock_id) - Etk_Menu_Item * menu_item + Etk_Widget * menu_item Etk_Stock_Id stock_id + CODE: + etk_menu_item_set_from_stock(ETK_MENU_ITEM(menu_item), stock_id); void etk_menu_item_submenu_set(menu_item, submenu) @@ -2147,9 +2494,11 @@ void etk_menu_popup_at_xy(menu, x, y) - Etk_Menu * menu + Etk_Widget * menu int x int y + CODE: + etk_menu_popup_at_xy(ETK_MENU(menu), x, y); void etk_menu_shell_append(menu_shell, item) @@ -2160,35 +2509,63 @@ void etk_menu_shell_append_relative(menu_shell, item, relative) - Etk_Menu_Shell * menu_shell - Etk_Menu_Item * item - Etk_Menu_Item * relative + Etk_Widget * menu_shell + Etk_Widget * item + Etk_Widget * relative + CODE: + etk_menu_shell_append_relative(ETK_MENU_SHELL(menu_shell), ETK_MENU_ITEM(item), ETK_MENU_ITEM(relative)); void etk_menu_shell_insert(menu_shell, item, position) - Etk_Menu_Shell * menu_shell - Etk_Menu_Item * item + Etk_Widget * menu_shell + Etk_Widget * item int position + CODE: + etk_menu_shell_insert(ETK_MENU_SHELL(menu_shell), ETK_MENU_ITEM(item), position); -Evas_List * +void etk_menu_shell_items_get(menu_shell) - Etk_Menu_Shell * menu_shell + Etk_Widget * menu_shell + PPCODE: + Evas_List * list; + AV * av; + int i; + + list = etk_menu_shell_items_get(ETK_MENU_SHELL(menu_shell)); + av = evas_list_to_perl(list); + + for (i = av_len(av) ; i >=0 ; i--) + { + SV * sv; + sv = newRV(newSViv(0)); + sv_setref_iv(sv, "Etk_WidgetPtr", SvIV(av_shift(av))); + + XPUSHs(sv_2mortal(sv)); + } + av_undef(av); void etk_menu_shell_prepend(menu_shell, item) - Etk_Menu_Shell * menu_shell - Etk_Menu_Item * item + Etk_Widget * menu_shell + Etk_Widget * item + CODE: + etk_menu_shell_prepend(ETK_MENU_SHELL(menu_shell), ETK_MENU_ITEM(item)); void etk_menu_shell_prepend_relative(menu_shell, item, relative) - Etk_Menu_Shell * menu_shell - Etk_Menu_Item * item - Etk_Menu_Item * relative + Etk_Widget * menu_shell + Etk_Widget * item + Etk_Widget * relative + CODE: + etk_menu_shell_prepend_relative(ETK_MENU_SHELL(menu_shell), ETK_MENU_ITEM(item), ETK_MENU_ITEM(relative)); void etk_menu_shell_remove(menu_shell, item) - Etk_Menu_Shell * menu_shell - Etk_Menu_Item * item + Etk_Widget * menu_shell + Etk_Widget * item + CODE: + etk_menu_shell_remove(ETK_MENU_SHELL(menu_shell), ETK_MENU_ITEM(item)); + Etk_Type * etk_menu_shell_type_get() @@ -2198,21 +2575,33 @@ Etk_Message_Dialog_Buttons etk_message_dialog_buttons_get(dialog) - Etk_Message_Dialog * dialog + Etk_Widget * dialog + CODE: + RETVAL = etk_message_dialog_buttons_get(ETK_MESSAGE_DIALOG(dialog)); + OUTPUT: + RETVAL void etk_message_dialog_buttons_set(dialog, buttons) - Etk_Message_Dialog * dialog + Etk_Widget * dialog Etk_Message_Dialog_Buttons buttons + CODE: + etk_message_dialog_buttons_set(ETK_MESSAGE_DIALOG(dialog), buttons); Etk_Message_Dialog_Type etk_message_dialog_message_type_get(dialog) Etk_Message_Dialog * dialog + CODE: + RETVAL = etk_message_dialog_message_type_get(ETK_MESSAGE_DIALOG(dialog)); + OUTPUT: + RETVAL void etk_message_dialog_message_type_set(dialog, type) - Etk_Message_Dialog * dialog + Etk_Widget * dialog Etk_Message_Dialog_Type type + CODE: + etk_message_dialog_message_type_set(ETK_MESSAGE_DIALOG(dialog), type); Etk_Widget * etk_message_dialog_new(message_type, buttons, text) @@ -2232,8 +2621,10 @@ void etk_message_dialog_text_set(dialog, text) - Etk_Message_Dialog * dialog + Etk_Widget * dialog char * text + CODE: + etk_message_dialog_text_set(ETK_MESSAGE_DIALOG(dialog), text); Etk_Type * etk_message_dialog_type_get() @@ -2922,13 +3313,13 @@ CODE: etk_scrolled_view_add_with_viewport(ETK_SCROLLED_VIEW(scrolled_view), child); -Etk_Range * +double etk_scrolled_view_hscrollbar_get(scrolled_view) Etk_Widget * scrolled_view CODE: Etk_Range * var; var = etk_scrolled_view_hscrollbar_get(ETK_SCROLLED_VIEW(scrolled_view)); - RETVAL = var; + RETVAL = etk_range_value_get(var); OUTPUT: RETVAL @@ -2936,27 +3327,36 @@ etk_scrolled_view_new() void -etk_scrolled_view_policy_get(scrolled_view, hpolicy, vpolicy) - Etk_Scrolled_View * scrolled_view - Etk_Scrolled_View_Policy * hpolicy - Etk_Scrolled_View_Policy * vpolicy +etk_scrolled_view_policy_get(scrolled_view) + Etk_Widget * scrolled_view + PPCODE: + Etk_Scrolled_View_Policy hpolicy; + Etk_Scrolled_View_Policy vpolicy; + + etk_scrolled_view_policy_get(ETK_SCROLLED_VIEW(scrolled_view), &hpolicy, &vpolicy); + XPUSHs(sv_2mortal(newSViv(hpolicy))); + XPUSHs(sv_2mortal(newSViv(vpolicy))); + void etk_scrolled_view_policy_set(scrolled_view, hpolicy, vpolicy) - Etk_Scrolled_View * scrolled_view + Etk_Widget * scrolled_view Etk_Scrolled_View_Policy hpolicy Etk_Scrolled_View_Policy vpolicy + CODE: + etk_scrolled_view_policy_set(ETK_SCROLLED_VIEW(scrolled_view), hpolicy, vpolicy); + Etk_Type * etk_scrolled_view_type_get() -Etk_Range * +double etk_scrolled_view_vscrollbar_get(scrolled_view) Etk_Widget * scrolled_view CODE: Etk_Range * var; var = etk_scrolled_view_vscrollbar_get(ETK_SCROLLED_VIEW(scrolled_view)); - RETVAL = var; + RETVAL = etk_range_value_get(var); OUTPUT: RETVAL @@ -3369,6 +3769,12 @@ Etk_Type * etk_text_view_type_get() +Etk_Textblock * +etk_text_view_textblock_get(text_view) + Etk_Widget * text_view + CODE: + etk_text_view_textblock_get(ETK_TEXT_VIEW(text_view)); + void etk_textblock_iter_copy(iter, dest_iter) Etk_Textblock_Iter * iter @@ -3398,7 +3804,7 @@ etk_textblock_iter_new(textblock) Etk_Textblock * textblock -Etk_Textblock * +Etk_Widget * etk_textblock_new() void @@ -3408,9 +3814,12 @@ void etk_textblock_text_set(textblock, text, markup) - Etk_Textblock * textblock + Etk_Widget * textblock char * text Etk_Bool markup + CODE: + etk_textblock_text_set(ETK_TEXTBLOCK(textblock), text, markup); + Etk_Type * etk_textblock_type_get() @@ -3528,38 +3937,64 @@ Etk_Widget * etk_toplevel_widget_focused_widget_get(toplevel_widget) - Etk_Toplevel_Widget * toplevel_widget + Etk_Widget * toplevel_widget + CODE: + RETVAL = etk_toplevel_widget_focused_widget_get(ETK_TOPLEVEL_WIDGET(toplevel_widget)); + OUTPUT: + RETVAL Etk_Widget * etk_toplevel_widget_focused_widget_next_get(toplevel_widget) - Etk_Toplevel_Widget * toplevel_widget + Etk_Widget * toplevel_widget + CODE: + RETVAL = etk_toplevel_widget_focused_widget_next_get(ETK_TOPLEVEL_WIDGET(toplevel_widget)); + OUTPUT: + RETVAL Etk_Widget * etk_toplevel_widget_focused_widget_prev_get(toplevel_widget) - Etk_Toplevel_Widget * toplevel_widget + Etk_Widget * toplevel_widget + CODE: + RETVAL = etk_toplevel_widget_focused_widget_prev_get(ETK_TOPLEVEL_WIDGET(toplevel_widget)); + OUTPUT: + RETVAL void etk_toplevel_widget_focused_widget_set(toplevel_widget, widget) - Etk_Toplevel_Widget * toplevel_widget + Etk_Widget * toplevel_widget Etk_Widget * widget + CODE: + etk_toplevel_widget_focused_widget_set(ETK_TOPLEVEL_WIDGET(toplevel_widget), widget); void etk_toplevel_widget_geometry_get(toplevel_widget, x, y, w, h) - Etk_Toplevel_Widget * toplevel_widget - int * x - int * y - int * w - int * h + Etk_Widget * toplevel_widget + PPCODE: + int x; + int y; + int w; + int h; + etk_toplevel_widget_geometry_get(ETK_TOPLEVEL_WIDGET(toplevel_widget), + &x, &y, &w, &h); + EXTEND(SP, 4); + PUSHs(sv_2mortal(newSViv(x))); + PUSHs(sv_2mortal(newSViv(y))); + PUSHs(sv_2mortal(newSViv(w))); + PUSHs(sv_2mortal(newSViv(h))); void etk_toplevel_widget_pointer_pop(toplevel_widget, pointer_type) - Etk_Toplevel_Widget * toplevel_widget + Etk_Widget * toplevel_widget Etk_Pointer_Type pointer_type + CODE: + etk_toplevel_widget_pointer_pop(ETK_TOPLEVEL_WIDGET(toplevel_widget), pointer_type); void etk_toplevel_widget_pointer_push(toplevel_widget, pointer_type) - Etk_Toplevel_Widget * toplevel_widget + Etk_Widget * toplevel_widget Etk_Pointer_Type pointer_type + CODE: + etk_toplevel_widget_pointer_push(ETK_TOPLEVEL_WIDGET(toplevel_widget), pointer_type); Etk_Type * etk_toplevel_widget_type_get() @@ -4361,8 +4796,23 @@ Etk_Widget * widget Etk_Bool on -Evas_List * +void etk_widget_dnd_dest_widgets_get() + PPCODE: + AV * av; + int i; + + av = evas_list_to_perl(etk_widget_dnd_dest_widgets_get()); + for (i = av_len(av) ; i >=0 ; i--) + { + SV * sv; + sv = newRV(newSViv(0)); + sv_setref_iv(sv, "Etk_WidgetPtr", SvIV(av_shift(av))); + + XPUSHs(sv_2mortal(sv)); + } + av_undef(av); + void etk_widget_dnd_drag_data_set(widget, types, num_types, data, data_size) @@ -4381,10 +4831,18 @@ Etk_Widget * widget Etk_Widget * drag_widget -const char ** -etk_widget_dnd_files_get(e, num_files) +void +etk_widget_dnd_files_get(e) Etk_Widget * e - int * num_files + PPCODE: + const char ** files; + int * num_files; + int i; + + files = etk_widget_dnd_files_get(e, num_files); + for (i=0; i<*num_files; i++) + XPUSHs(sv_2mortal(newSVpv(files[i], strlen(files[i])))); + Etk_Bool etk_widget_dnd_internal_get(widget) @@ -4404,16 +4862,41 @@ Etk_Widget * widget Etk_Bool on -const char ** -etk_widget_dnd_types_get(widget, num) +void +etk_widget_dnd_types_get(widget) Etk_Widget * widget - int * num + PPCODE: + const char ** types; + int * num; + int i; + + types = etk_widget_dnd_types_get(widget, num); + for (i=0; i<*num; i++) + XPUSHs(sv_2mortal(newSVpv(types[i], strlen(types[i])))); void -etk_widget_dnd_types_set(widget, types, num) +etk_widget_dnd_types_set(widget, perl_types) Etk_Widget * widget - const char ** types - int num + AV * perl_types + CODE: + const char ** types; + int num; + int i; + + num = (int) av_len(perl_types) + 1; + types = calloc(num, sizeof(char *)); + for (i=0; i<num; i++) + { + SV ** val; + val = av_fetch(perl_types, i, 0); + if (val) + types[i] = (char *) SvIV(*val); + else + types[i] = 0; + + } + etk_widget_dnd_types_set(widget, types, num); + void etk_widget_drag_begin(widget) @@ -4782,14 +5265,19 @@ etk_window_fullscreen(ETK_WINDOW(window)); void -etk_window_geometry_get(window, x, y, w, h) +etk_window_geometry_get(window) Etk_Widget * window - int * x - int * y - int * w - int * h - CODE: - etk_window_geometry_get(ETK_WINDOW(window), x, y, w, h); + PPCODE: + int x; + int y; + int w; + int h; + etk_window_geometry_get(ETK_WINDOW(window), &x, &y, &w, &h); + EXTEND(SP, 4); + PUSHs(sv_2mortal(newSViv(x))); + PUSHs(sv_2mortal(newSViv(y))); + PUSHs(sv_2mortal(newSViv(w))); + PUSHs(sv_2mortal(newSViv(h))); Etk_Bool etk_window_hide_on_delete(window, data) =================================================================== RCS file: /cvs/e/e17/proto/etk-perl/TODO,v retrieving revision 1.5 retrieving revision 1.6 diff -u -3 -r1.5 -r1.6 --- TODO 13 Jun 2006 00:27:16 -0000 1.5 +++ TODO 1 Jul 2006 20:20:22 -0000 1.6 @@ -1,6 +1,7 @@ General TODO: ============= +- finish up etk_widget.h - add some commonly used internal tree sorters to avoid the entire perl -> c -> perl ... loop when sorting trees. - finish porting etk_test from C to perl @@ -9,24 +10,30 @@ to return a list of values to the perl caller - finish remaining signal_connect functions (swapped etc.) - perldoc everything -- create an evas_list to perl list converter - go over all enums and structs and port as needed -- etk_argument.h -- etk_cache.h -- etk_colorpicker_*.h - etk_editable_text_object.h -- etk_marshallers.h -- etk_propery.h -- etk_radio_button.h -- etk_string.h - etk_text_buffer.h - etk_text_iter.h - etk_text_view.h - etk_textblock.h - etk_theme.h -- etk_toplevel_widget.h - etk_type.h - etk_types.h - etk_utils.h +- create Test cases - etk_main.h [DONE] - wrap up functions that use (...): important ones are combo for now [DONE] +- etk_marshallers.h [DONE] +- etk_toplevel_widget.h [DONE] +- etk_colorpicker_*.h [DONE] +- create an evas_list to perl list converter [DONE] +- etk_radio_button.h [DONE] +- etk_argument.h [NOT NEEDED] +- etk_cache.h [NOT NEEDED] +- etk_string.h [NOT NEEDED] +- etk_propery.h [NOT NEEDED] + +Pending: +======== +etk_canvas.h + =================================================================== RCS file: /cvs/e/e17/proto/etk-perl/const-c.inc,v retrieving revision 1.13 retrieving revision 1.14 diff -u -3 -r1.13 -r1.14 --- const-c.inc 1 Jul 2006 18:57:20 -0000 1.13 +++ const-c.inc 1 Jul 2006 20:20:22 -0000 1.14 @@ -33,7 +33,7 @@ Regenerate these constant functions by feeding this entire source file to perl -x -#!perl -w +#!/usr/bin/perl -w use ExtUtils::Constant qw (constant_types C_constant XS_constant); my $types = {map {($_, 1)} qw()}; Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 _______________________________________________ enlightenment-cvs mailing list enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs