Etk-Perl

 view release on metacpan or  search on metacpan

etk_test/etk_test.pl  view on Meta::CPAN

	frame => "adv", 
	cb => \&tree_window_show
    },
    
    menu => {
	label => "Menu",
	frame => "adv", 
	cb => \&menu_window_show
    },
    
    combobox => {
	label => "Combobox",
	frame => "adv", 
	cb => \&combobox_window_show
    },
    
    iconbox => {
	label => "Iconbox",
	frame => "adv", 
	cb => \&iconbox_window_show
    },
    
    textview => {
	label => "Text View",

etk_test/etk_test.pl  view on Meta::CPAN

}

sub _menu_seperator_new
{
    my ($menubar) = @_;
    my $menu_item = Etk::Menu::Item::Separator->new();
    $menubar->Append($menu_item);
    return $menu_item;
}

sub __combobox_entry_populate 
{
    my $combo = shift;
    my $dir = shift;

    $combo->Clear();
    $combo->ItemPrepend(
    		Etk::Image::new_from_stock(PlacesFolder, SizeSmall),
		"..");

    while (<$dir/*>) {

etk_test/etk_test.pl  view on Meta::CPAN

	    } else {
		$combo->ItemPrepend(
			Etk::Image::new_from_stock(TextXGeneric, SizeSmall),
			$_);
	    }

    }

}

sub combobox_window_show
{
    my $win = Etk::Window->new();
    $win->TitleSet("Etk-Perl Combo Test");
    my $vbox = Etk::VBox->new(0, 3);
    
    my $frame = Etk::Frame->new("Simple combobox");
    $vbox->Append($frame);
    
    my $combobox = Etk::Combobox::new_default();
    $frame->Add($combobox);
    $combobox->ItemAppend("Test 1");
    $combobox->ItemAppend("Test 2");
    $combobox->ItemAppend("Test 3");    

    $frame = Etk::Frame->new("Entry combobox");
    $vbox->Append($frame);

    $combobox = Etk::Combobox::Entry->new();
    $combobox->SignalConnect("active-item-changed", sub {
	    print "TODO\n";
    });
    $combobox->ColumnAdd(EntryImage, 24, EntryNone, 0.0);
    $combobox->ColumnAdd(EntryLabel, 75, EntryExpand, 0.0);
    $combobox->Build();
    $frame->Add($combobox);
    __combobox_entry_populate($combobox, ".");

    $frame = Etk::Frame->new("Some stock icons");
    $vbox->Append($frame);
    
    my $vbox2 = Etk::VBox->new(0, 3);
    $frame->Add($vbox2);
    
    my $image = Etk::Image->new(DocumentNew, SizeBig);
    $vbox2->Append($image);
    
    $combobox = Etk::Combobox->new();
    $combobox->ColumnAdd(ColumnTypeImage, 24, 0, 0.0);
    $combobox->ColumnAdd(ColumnTypeLabel, 75, 1, 0.0);
    $combobox->Build();
    
    $vbox2->Append($combobox);
	
    for( my $i = DocumentNew; 
	$i <= FormatTextUnderline; $i++)
    {
	my $image2 = Etk::Image->new($i, SizeSmall);
	my $item = $combobox->ItemAppend($image2, Etk::Stock::label_get($i));
#	$item->ColSet(1, Etk::Stock::label_get($i));
	$item->DataSet($i);
    }

    $combobox->ActiveItemSet($combobox->ActiveItemGet());
    
    $combobox->SignalConnect("active-item-changed", 
	sub {
	    my $item = $combobox->ActiveItemGet();
	    my $stock_id = $item->DataGet();
	    $image->SetFromStock($stock_id, SizeBig);
	}
    );    
    
    $win->Add($vbox);
    $win->ShowAll();    
}

sub iconbox_window_show

lib/Etk/Constants.pm  view on Meta::CPAN


This module contains constants to use while building Etk apps.
The constants have numerical values which can be used instead.

=head1 EXPORT

None by default.

=head1 EXPORTABLE

   box combobox fillpolicy messagedialog progressbar scrolledview
   toplevelwidget tree textblock table colorpicker mouse toolbar
   button shadow image entry popupwindow window swallow slider all
 
=cut

require Exporter;
our @ISA = qw/Exporter/;

our %EXPORT_TAGS = (
   box		=> [qw/BoxStart BoxEnd BoxNone BoxExpand BoxFill BoxExpandFill/],
   combobox	=> [qw/ColumnTypeLabel ColumnTypeImage ColumnTypeOther EntryImage EntryLabel EntryOther
    EntryNone EntryExpand EntryFill EntryExpandFill/],
   fillpolicy	=> [qw/FillNone HFill VFill HExpand VExpand/],
   messagedialog=> [qw/None Warning Question Error
    ButtonsNone ButtonsOk ButtonsClose ButtonsCancel ButtonsYesNo ButtonsOkCancel/],
   progressbar	=> [qw/LeftToRight RightToLeft/],
   scrolledview	=> [qw/PolicyShow PolicyHide PolicyAuto/],
   toplevelwidget=>[qw/PointerDefault PointerMove PointerHDoubleArrow 
    PointerVDoubleArrow PointerResize PointerResizeTL PointerResizeT 
    PointerResizeTR PointerResizeR PointerResizeBR PointerResizeB 
    PointerResizeBL PointerResizeL PointerTextEdit PointerDndDrop/],

xs/Combobox.xs  view on Meta::CPAN

#undef _
#endif

#include <Etk.h>
#include <Ecore.h>
#include <Ecore_Data.h>

#include "EtkTypes.h"
#include "EtkSignals.h"

MODULE = Etk::Combobox::Entry		PACKAGE = Etk::Combobox::Entry		PREFIX = etk_combobox_entry_

Etk_Combobox_Entry *
new(class)
	SV	*class
	CODE:
	RETVAL = ETK_COMBOBOX_ENTRY(etk_combobox_entry_new());
	OUTPUT:
	RETVAL

Etk_Combobox_Entry *
new_default(class)
	SV	*class
	ALIAS:
	NewDefault=1
	CODE:
	RETVAL = ETK_COMBOBOX_ENTRY(etk_combobox_entry_new_default());
	OUTPUT:
	RETVAL

# Convert to entry
Etk_Widget *
etk_combobox_entry_entry_get(combobox_entry)
	Etk_Combobox_Entry *combobox_entry
	ALIAS:
	EntryGet=1

void
etk_combobox_entry_items_height_set(combobox_entry, items_height)
	Etk_Combobox_Entry *combobox_entry
	int items_height
	ALIAS:
	ItemsHeightSet=1

int
etk_combobox_entry_items_height_get(combobox_entry)
	Etk_Combobox_Entry *combobox_entry
	ALIAS:
	ItemsHeightGet=1
	
void
etk_combobox_entry_column_add(combobox_entry, col_type, width, fill_policy, align)
	Etk_Combobox_Entry *combobox_entry
	Etk_Combobox_Entry_Column_Type col_type
	int width
	Etk_Combobox_Entry_Fill_Policy fill_policy
	float align
	ALIAS:
	ColumnAdd=1

void
etk_combobox_entry_build(combobox_entry)
	Etk_Combobox_Entry *combobox_entry
	ALIAS:
	Build=1

void
etk_combobox_entry_clear(combobox_entry)
	Etk_Combobox_Entry *combobox_entry
	ALIAS:
	Clear=1

Etk_Combobox_Entry_Item *
etk_combobox_entry_item_append_empty(combobox)
	Etk_Combobox_Entry * combobox
	ALIAS:
	ItemAppendEmpty=1

Etk_Combobox_Entry_Item *
etk_combobox_entry_item_prepend_empty(combobox)
	Etk_Combobox_Entry * combobox
	ALIAS:
	ItemPrependEmpty=1

Etk_Combobox_Entry_Item *
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)
	Etk_Combobox_Entry *combobox_entry
	Etk_Combobox_Entry_Item *item
	ALIAS:
	ActiveItemSet=1

Etk_Combobox_Entry_Item *
etk_combobox_entry_active_item_get(combobox_entry)
	Etk_Combobox_Entry *combobox_entry
	ALIAS:
	ActiveItemGet=1

int
etk_combobox_entry_active_item_num_get(combobox_entry)
	Etk_Combobox_Entry *combobox_entry
	ALIAS:
	ActiveItemNumGet=1

Etk_Combobox_Entry_Item * 
etk_combobox_entry_first_item_get(combobox_entry)
	Etk_Combobox_Entry *combobox_entry
	ALIAS:
	FirstItemGet=1

Etk_Combobox_Entry_Item *
etk_combobox_entry_last_item_get(combobox_entry)
	Etk_Combobox_Entry *combobox_entry
	ALIAS:
	LastItemGet=1

Etk_Combobox_Entry_Item *
etk_combobox_entry_nth_item_get(combobox_entry, index)
	Etk_Combobox_Entry *combobox_entry
	int index
	ALIAS:
	NthItemGet=1

Etk_Bool
etk_combobox_entry_is_popped_up(combobox_entry)
	Etk_Combobox_Entry *combobox_entry
	ALIAS:
	IsPoppedUp=1

void
etk_combobox_entry_pop_up(combobox_entry)
	Etk_Combobox_Entry *combobox_entry
	ALIAS:
	PopUp=1

void
etk_combobox_entry_pop_down(combobox_entry)
	Etk_Combobox_Entry *combobox_entry
	ALIAS:
	PopDown=1

void
etk_combobox_entry_popup_feed(combobox_entry, window)
	Etk_Combobox_Entry *combobox_entry
	Etk_Window *window
	ALIAS:
	PopupFeed=1

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:
	Remove=1

void
etk_combobox_entry_item_field_set(item, col, data)
	Etk_Combobox_Entry_Item * item
	int col
	SV * data
      ALIAS:
	FieldSet=1
	CODE:
 	if (SvPOK(data))
		etk_combobox_entry_item_field_set(item, col, (void *)SvPV_nolen(data));
 	else
		etk_combobox_entry_item_field_set(item, col, (void *)SvObj(data, "Etk::Widget"));

SV *
etk_combobox_entry_item_field_get(item, col, type=0)
	Etk_Combobox_Entry_Item * item
	int col
	int type
      ALIAS:
	FieldGet=1
	CODE:
	void * data;
	data = etk_combobox_entry_item_field_get(item, col);
 	if (type == 0)
		RETVAL = sv_2mortal(newSVpv((char *)data, 0));
 	else
 		RETVAL = sv_2mortal(newSVObject((Etk_Widget *)data));
	OUTPUT:
	RETVAL

void
etk_combobox_entry_item_data_set(item, data)
	Etk_Combobox_Entry_Item *item
	SV * data
	ALIAS:
	DataSet=1
	CODE:
	etk_combobox_entry_item_data_set(item, newSVsv(data));
	
SV *
etk_combobox_entry_item_data_get(item)
	Etk_Combobox_Entry_Item *item
	ALIAS:
	DataGet=1
	CODE:
	RETVAL = newSVsv((SV*)etk_combobox_entry_item_data_get(item));
	OUTPUT:
	RETVAL

Etk_Combobox_Entry_Item *
etk_combobox_entry_item_prev_get(item)
	Etk_Combobox_Entry_Item *item
	ALIAS:
	PrevGet=1

Etk_Combobox_Entry_Item *
etk_combobox_entry_item_next_get(item)
	Etk_Combobox_Entry_Item *item
	ALIAS:
	NextGet=1

Etk_Combobox_Entry *
etk_combobox_entry_item_combobox_entry_get(item)
	Etk_Combobox_Entry_Item *item
	ALIAS:
	ComboboxEntryGet=1
	
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
      ALIAS:
	DataGet=1
	CODE:
	RETVAL = newSVsv((SV*)etk_combobox_item_data_get(item));
	OUTPUT:
	RETVAL

Etk_Combobox *
etk_combobox_item_combobox_get(item)
	Etk_Combobox_Item *     item
	ALIAS:
	ComboboxGet=1

void
etk_combobox_item_data_set(item, data)
	Etk_Combobox_Item *	item
	SV *	data
      ALIAS:
	DataSet=1
      CODE:
        etk_combobox_item_data_set(ETK_COMBOBOX_ITEM(item), newSVsv(data));

void
etk_combobox_item_remove(item)
	Etk_Combobox_Item *	item
      ALIAS:
	Remove=1

void
etk_combobox_item_field_set(item, col, data)
	Etk_Combobox_Item * item
	int col
	SV * data
      ALIAS:
	FieldSet=1
	CODE:
 	if (SvPOK(data))
		etk_combobox_item_field_set(item, col, (void *)SvPV_nolen(data));
 	else
		etk_combobox_item_field_set(item, col, (void *)SvObj(data, "Etk::Widget"));

SV *
etk_combobox_item_field_get(item, col, type=0)
	Etk_Combobox_Item * item
	int col
	int type
      ALIAS:
	FieldGet=1
	CODE:
	void * data;
	data = etk_combobox_item_field_get(item, col);
 	if (type == 0)
		RETVAL = sv_2mortal(newSVpv((char *)data, 0));
 	else
 		RETVAL = sv_2mortal(newSVObject((Etk_Widget *)data));
	OUTPUT:
	RETVAL


MODULE = Etk::Combobox		PACKAGE = Etk::Combobox		PREFIX = etk_combobox_
	

Etk_Combobox *
new(class)
	SV	*class
	CODE:
	RETVAL = ETK_COMBOBOX(etk_combobox_new());
	OUTPUT:
	RETVAL

Etk_Combobox *
new_default()
      ALIAS:
	NewDefault=1
	CODE:
	RETVAL = ETK_COMBOBOX(etk_combobox_new_default());
	OUTPUT:
	RETVAL

void
etk_combobox_build(combobox)
	Etk_Combobox *	combobox
      ALIAS:
	Build=1

void
etk_combobox_clear(combobox)
	Etk_Combobox *	combobox
      ALIAS:
	Clear=1

void
etk_combobox_column_add(combobox, col_type, width, fill_policy, align)
	Etk_Combobox *	combobox
	Etk_Combobox_Column_Type	col_type
	int	width
	Etk_Combobox_Fill_Policy	fill_policy
	float	align
      ALIAS:
	ColumnAdd=1

void
etk_combobox_items_height_set(combobox, items_height)
	Etk_Combobox *	combobox
	int	items_height
      ALIAS:
	ItemsHeightSet=1

int
etk_combobox_items_height_get(combobox)
	Etk_Combobox *	combobox
      ALIAS:
	ItemsHeightGet=1

Etk_Combobox_Item *
etk_combobox_item_append_empty(combobox)
	Etk_Combobox * combobox
	ALIAS:
	ItemAppendEmpty=1

Etk_Combobox_Item *
etk_combobox_item_prepend_empty(combobox)
	Etk_Combobox * combobox
	ALIAS:
	ItemPrependEmpty=1

Etk_Combobox_Item *
etk_combobox_item_insert_empty(combobox, after)
	Etk_Combobox * combobox
	Etk_Combobox_Item * after
	ALIAS:
	ItemInsertEmpty=1

void
etk_combobox_active_item_set(combobox, item)
	Etk_Combobox * combobox
	Etk_Combobox_Item *     item
	ALIAS:
	ActiveItemSet=1

Etk_Combobox_Item *
etk_combobox_active_item_get(combobox)
       Etk_Combobox *  combobox
      ALIAS:
       ActiveItemGet=1

void
etk_combobox_active_item_num_get(combobox)
	Etk_Combobox * combobox
	ALIAS:
	ActiveItemNumGet=1

Etk_Combobox_Item *
etk_combobox_first_item_get(combobox)
	Etk_Combobox * combobox
	ALIAS:
	FirstItemGet=1

Etk_Combobox_Item *
etk_combobox_last_item_get(combobox)
	Etk_Combobox * combobox
	ALIAS:
	LastItemGet=1

Etk_Combobox_Item *
etk_combobox_item_prev_get(item)
	Etk_Combobox_Item *     item
	ALIAS:
	ItemPrevGet=1

Etk_Combobox_Item *
etk_combobox_item_next_get(item)
	Etk_Combobox_Item *     item
	ALIAS:
	ItemNextGet=1

Etk_Combobox_Item *
etk_combobox_nth_item_get(combobox, index)
	Etk_Combobox * combobox
	int	index
	ALIAS:
	NthItemGet=1




( run in 0.454 second using v1.01-cache-2.11-cpan-39bf76dae61 )