#include "EXTERN.h"
#include "perl.h"
#include "XSUB.h"
#include "GtkDefs.h"
MODULE = Gtk::List PACKAGE = Gtk::List PREFIX = gtk_list_
#ifdef GTK_LIST
Gtk::List_Sink
new(Class)
SV * Class
CODE:
RETVAL = (GtkList*)(gtk_list_new());
OUTPUT:
RETVAL
#ARG: ... list (list of Gtk::ListItem widgets)
void
insert_items(list, position, ...)
Gtk::List list
int position
CODE:
{
GList * tmp = 0;
int i;
for(i=items-1;i>1;i--) {
GtkObject * o;
o = SvGtkObjectRef(ST(i), "Gtk::ListItem");
if (!o)
croak("item cannot be undef");
tmp = g_list_prepend(tmp, o);
}
gtk_list_insert_items(list, tmp, position);
}
#ARG: ... list (list of Gtk::ListItem widgets)
void
append_items(list, ...)
Gtk::List list
ALIAS:
Gtk::List::append_items = 0
Gtk::List::prepend_items = 1
Gtk::List::remove_items = 2
Gtk::List::remove_items_no_unref = 3
CODE:
{
GList * tmp = 0;
int i;
for(i=items-1;i>0;i--) {
GtkObject * o;
o = SvGtkObjectRef(ST(i), "Gtk::ListItem");
if (!o)
croak("item cannot be undef");
tmp = g_list_prepend(tmp, GTK_LIST_ITEM(o));
}
switch (ix) {
case 0: gtk_list_append_items(list, tmp); break;
case 1: gtk_list_prepend_items(list, tmp); break;
case 2: gtk_list_remove_items(list, tmp); g_list_free(tmp); break;
case 3: gtk_list_remove_items_no_unref(list, tmp); g_list_free(tmp); break;
}
}
void
gtk_list_clear_items(list, start=0, end=-1)
Gtk::List list
int start
int end
void
gtk_list_select_item(list, the_item)
Gtk::List list
int the_item
ALIAS:
Gtk::List::select_item = 0
Gtk::List::unselect_item = 1
CODE:
if (ix == 0)
gtk_list_select_item(list, the_item);
else if (ix == 1)
gtk_list_unselect_item(list, the_item);
void
gtk_list_select_child(list, widget)
Gtk::List list
Gtk::Widget widget
ALIAS:
Gtk::List::select_child = 0
Gtk::List::unselect_child = 1
CODE:
if (ix == 0)
gtk_list_select_child(list, widget);
else if (ix == 1)
gtk_list_unselect_child(list, widget);
int
gtk_list_child_position(list, widget)
Gtk::List list
Gtk::Widget widget
void
gtk_list_set_selection_mode(list, mode)
Gtk::List list
Gtk::SelectionMode mode
void
gtk_list_end_drag_selection (list)
Gtk::List list
ALIAS:
Gtk::List::end_drag_selection = 0
Gtk::List::end_selection = 1
Gtk::List::undo_selection = 2
Gtk::List::start_selection = 3
Gtk::List::toggle_add_mode = 4
Gtk::List::toggle_focus_row = 5
Gtk::List::select_all = 6
Gtk::List::unselect_all = 7
CODE:
switch (ix) {
case 0: gtk_list_end_drag_selection (list); break;
case 1: gtk_list_end_selection (list); break;
case 2: gtk_list_undo_selection (list); break;
case 3: gtk_list_start_selection (list); break;
case 4: gtk_list_toggle_add_mode (list); break;
case 5: gtk_list_toggle_focus_row (list); break;
case 6: gtk_list_select_all (list); break;
case 7: gtk_list_unselect_all (list); break;
}
void
gtk_list_toggle_row (list, item)
Gtk::List list
Gtk::Widget item
void
gtk_list_extend_selection (list, scroll_type, position, auto_start)
Gtk::List list
Gtk::ScrollType scroll_type
double position
gboolean auto_start
void
gtk_list_scroll_horizontal (list, scroll_type, position)
Gtk::List list
Gtk::ScrollType scroll_type
double position
void
gtk_list_scroll_vertical (list, scroll_type, position)
Gtk::List list
Gtk::ScrollType scroll_type
double position
#OUTPUT: list
#RETURNS: a list of the currently selected Gtk::Widgets
void
selection(list)
Gtk::List list
PPCODE:
{
GList * selection = list->selection;
while(selection) {
EXTEND(sp,1);
PUSHs(sv_2mortal(newSVGtkObjectRef(GTK_OBJECT(selection->data),0)));
selection=selection->next;
}
}
#OUTPUT: list
#RETURNS: a list of the child Gtk::Widgets
void
children(list)
Gtk::List list
PPCODE:
{
GList * children = list->children;
while(children) {
EXTEND(sp,1);
PUSHs(sv_2mortal(newSVGtkObjectRef(GTK_OBJECT(children->data),0)));
children=children->next;
}
}
#endif