App-Guiio
view release on metacpan or search on metacpan
`---- Net::BitTorrent::Peer
multiple box insert command should not insert boxes without text
this allows us to have many more separators in the default list
Display version somewhere
convert guiio stencil to new format
? shortcut to display popup menu
shift + click should deselect the object under the cursor
Error: previously saved files (network) do not load new stencils
connected, non auto-connect, arrows loose their connection if the connectee is resized
=> this is because resize doesn't keep the connection. The
canonizer reconnects elements but non auto-connect objects are not handled by the canonizer
=> make canonizer re connect to the same place instead for changing the connector
#saving as xx.txt will not save anything in gpad anymore
! add --setup to locate the setup directory
=> use file::Repository
=> use getopt
#override/move gpad internally set variables with variables set in the setup files
#=> wait till tab to space is defined
#command to generate a stencil ready definition from the current state of an object
=> load multiple stencils and keep the filesystem structure in the popup menues
=> allow shortcut to be associated with the stencil elements (by name and in setup files)
#drawing arrow into box connects the arrow
#transfor tabs to space
#only allow start-end connectors to link for multiwirl
but allow moving of the intermediate connectors
#shortcut that adds elements but opens the edit dialog directly before inserting the object
lib/App/Guiio.pm view on Meta::CPAN
if($event->button == 2)
{
my ($x, $y) = $self->closest_character($event->coords()) ;
$self->{SELECTION_RECTANGLE} = {START_X => $x , START_Y => $y} ;
$self->update_display();
}
# handle right button mouse click, disabled with GUIIO as context
#if($event->button == 3)
# {
# $self->display_popup_menu($event) ;
# }
return TRUE;
}
#-----------------------------------------------------------------------------
sub motion_notify_event
{
my ($widget, $event, $self) = @_ ;
lib/App/Guiio/Menues.pm view on Meta::CPAN
use Glib ':constants';
use Gtk2 -init;
use Gtk2::SimpleMenu;
use Gtk2::Gdk::Keysyms ;
my %K = %Gtk2::Gdk::Keysyms ;
my %C = map{$K{$_} => $_} keys %K ;
#------------------------------------------------------------------------------------------------------
# sub display_popup_menu
# {
# my ($self, $event) = @_;
# my ($popup_x, $popup_y) = $event->coords() ;
# my @menu_items ;
# for my $element (@{$self->{ELEMENT_TYPES}})
# {
# (my $name_with_underscore = $element->{NAME}) =~ s/_/__/g ;
# print $name_with_underscore;
# push @menu_items,
# [ "/$name_with_underscore", undef , insert_generator($self, $element, $popup_x, $popup_y), 0 , '<Item>', undef],
# }
# for my $menu_entry (@{$self->get_context_menu_entries($popup_x, $popup_y)})
# {
# my($name, $sub, $data) = @{$menu_entry} ;
# (my $name_with_underscore = $name) =~ s/_/__/g ;
# push @menu_items, [ $name_with_underscore, undef , $self->menue_entry_wrapper($sub, $data), 0, '<Item>', undef],
# }
# push @menu_items,
# (
# ['/File/open', undef , sub {$self->run_actions_by_name('Open') ;}, 0 , '<Item>', undef],
# ['/File/save', undef , sub {$self->run_actions_by_name('Save') ;}, 0 , '<Item>', undef],
# [ '/File/save as', undef , sub {$self->run_actions_by_name(['Save', 1]) ;}, 0 , '<Item>', undef],
# ) ;
# if($self->get_selected_elements(1) == 1)
# {
# push @menu_items, [ '/File/save stencil', undef , $self->menue_entry_wrapper(\&save_stencil), 0 , '<Item>', undef ] ;
# }
# my $item_factory = Gtk2::ItemFactory->new("Gtk2::Menu" ,"<popup>") ;
# $item_factory ->create_items($self->{widget}, @menu_items) ;
# my $menu = $item_factory->get_widget("<popup>") ;
# $menu->popup(undef, undef, undef, undef, $event->button, $event->time) ;
# }
# sub insert_generator
# {
# my ($self, $element, $x, $y) = @_ ;
# my ($character_width, $character_height) = $self->get_character_size() ;
# return sub
# {
# $self->add_new_element_of_type($element, $self->closest_character($x, $y)) ;
lib/App/Guiio/Menues.pm view on Meta::CPAN
# my Readonly $SHORTCUTS = 0 ;
# my Readonly $CODE = 1 ;
# my Readonly $ARGUMENTS = 2 ;
# my Readonly $CONTEXT_MENUE_SUB = 3 ;
# my Readonly $CONTEXT_MENUE_ARGUMENTS = 4 ;
# my Readonly $NAME= 5 ;
# sub get_context_menu_entries
# {
# my ($self, $popup_x, $popup_y) = @_ ;
# my @context_menu_entries ;
# for my $context_menu_handler
# (
# map {$self->{CURRENT_ACTIONS}{$_}}
# grep
# {
# 'ARRAY' eq ref $self->{CURRENT_ACTIONS}{$_} # not a sub actions definition
# && defined $self->{CURRENT_ACTIONS}{$_}[$CONTEXT_MENUE_SUB]
# } sort keys %{$self->{CURRENT_ACTIONS}}
lib/App/Guiio/Menues.pm view on Meta::CPAN
# {
#~ print "Adding context menue from action '$context_menu_handler->[$NAME]'.\n" ;
# if(defined $context_menu_handler->[$CONTEXT_MENUE_ARGUMENTS])
# {
# push @context_menu_entries,
# $context_menu_handler->[$CONTEXT_MENUE_SUB]->
# (
# $self,
# $context_menu_handler->[$CONTEXT_MENUE_ARGUMENTS],
# $popup_x, $popup_y,
# ) ;
# }
# else
# {
# push @context_menu_entries, $context_menu_handler->[$CONTEXT_MENUE_SUB]->($self, $popup_x, $popup_y) ;
# }
# }
# return(\@context_menu_entries) ;
# }
#------------------------------------------------------------------------------------------------------
#Beginning of GUIIO code to handle primary GUIIOMenubar
sub create_GUIIOMenu
{
setup/actions/context_menu_box.pl view on Meta::CPAN
[0, 'title separator', '*', '*', '*', 1, ],
[1, 'body separator', '* ', '*', ' *', 1, ],
[1, 'bottom', '*', '*', '*', 1, ],
],
) ;
#----------------------------------------------------------------------------------------------
sub box_context_menu
{
my ($self, $popup_x, $popup_y) = @_ ;
my @context_menu_entries ;
my ($character_width, $character_height) = $self->get_character_size() ;
my @selected_elements = $self->get_selected_elements(1) ;
if(@selected_elements == 1 && 'App::Guiio::stripes::editable_box2' eq ref $selected_elements[0])
{
my $element = $selected_elements[0] ;
my ($x, $y) = $self->closest_character($popup_x - ($element->{X} * $character_width) , $popup_y - ($element->{Y} * $character_height)) ;
push @context_menu_entries,
[
'/Rotate text',
sub {$element->rotate_text() ;},
] ;
push @context_menu_entries,
[
'/box selected element',
setup/actions/context_menu_multi_wirl.pl view on Meta::CPAN
$self->move_elements($second_arrow_x_offset, $second_arrow_y_offset, $element) ;
$self->update_display() ;
}
}
#----------------------------------------------------------------------------------------------
sub multi_wirl_context_menu
{
my ($self, $popup_x, $popup_y) = @_ ;
my @context_menu_entries ;
my ($character_width, $character_height) = $self->get_character_size() ;
my @selected_elements = $self->get_selected_elements(1) ;
if(@selected_elements == 1 && 'App::Guiio::stripes::section_wirl_arrow' eq ref $selected_elements[0])
{
my $element = $selected_elements[0] ;
my ($x, $y) = $self->closest_character($popup_x - ($element->{X} * $character_width) , $popup_y - ($element->{Y} * $character_height)) ;
push @context_menu_entries,
[
'/append section',
\&add_section_to_section_wirl_arrow,
{ELEMENT => $selected_elements[0], X => $x, Y => $y,}
] ;
if($element->is_connection_allowed('start'))
{
setup/actions/context_menu_rulers.pl view on Meta::CPAN
$self->create_undo_snapshot() ;
$self->remove_ruler_lines($data) ;
$self->update_display();
}
#----------------------------------------------------------------------------------------------
sub rulers_context_menu
{
my ($self, $popup_x, $popup_y) = @_ ;
my @context_menu_entries ;
my ($x, $y) = $self->closest_character($popup_x, $popup_y) ;
my $vertical = {TYPE => 'VERTICAL', POSITION => $x} ;
my $horizontal = {TYPE => 'HORIZONTAL', POSITION => $y} ;
if($self->exists_ruler_line($vertical))
{
push @context_menu_entries, ["/Ruler/remove vertical ruler", \&remove_ruler, $vertical] ;
}
else
{
( run in 1.284 second using v1.01-cache-2.11-cpan-364913b4093 )