FBP-Perl

 view release on metacpan or  search on metacpan

Changes  view on Meta::CPAN

0.47 Thu 30 Jun 2011
	- Added generic bitmap "Load From File" support
	- Added bitmap support for Wx::Tool

0.46 Mon 27 Jun 2011
	- Added Wx::Tool support
	- Added Wx::ToolBar support
	- Added Wx::ToolBar separator

0.45 Fri 24 Jun 2011
	- Added Wx::MenuItem.OnMenuSelection event support
	- Added object_scope method to centralise the "my/our" code generation.
	- Refactored some window_ methods to object_ now they are usable for
	  more than just FBP::Window objects.

0.44 Fri 24 Jun 2011
	- Added support for Wx::MenuBar
	- Added support for Wx::Menu
	- Added support for Wx::MenuItem
	- Added support for menu separators
	- Always create Wx::StatusBar at the top of the constructor. Adding them
	  below sizers will confuse them and result in corrupt sizing.

0.43 Mon 20 Jun 2011
	- Added support for Wx::StatusBar
	- Improved SYNOPSIS and created an initial basic DESCRIPTION

0.42 Mon 20 Jun 2011
	- Don't use Wx::SearchCtrl::ShowSearchButton on Mac

lib/FBP/Perl.pm  view on Meta::CPAN

	# wxCommandEvent
	OnButtonClick             => [ 2, 'EVT_BUTTON'                     ],
	OnToggleButton            => [ 2, 'EVT_TOGGLEBUTTON'               ],
	OnCheckBox                => [ 2, 'EVT_CHECKBOX'                   ],
	OnChoice                  => [ 2, 'EVT_CHOICE'                     ],
	OnCombobox                => [ 2, 'EVT_COMBOBOX'                   ],
	OnListBox                 => [ 2, 'EVT_LISTBOX'                    ],
	OnListBoxDClick           => [ 2, 'EVT_LISTBOX_DCLICK'             ],
	OnText                    => [ 2, 'EVT_TEXT'                       ],
	OnTextEnter               => [ 2, 'EVT_TEXT_ENTER'                 ],
	OnMenu                    => [ 2, 'EVT_MENU'                       ],

	# wxColourPickerCtrl
	OnColourChanged           => [ 2, 'EVT_COLOURPICKER_CHANGED'       ],

	# wxCloseEvent
	OnClose                   => [ 1, 'EVT_CLOSE'                      ],

	# wxDatePickerCtrl
	OnDateChanged             => [ 2, 'EVT_DATE_CHANGED'               ],

lib/FBP/Perl.pm  view on Meta::CPAN

	OnListItemFocused         => [ 2, 'EVT_LIST_ITEM_FOCUSED'          ],
	OnListItemMiddleClick     => [ 2, 'EVT_LIST_MIDDLE_CLICK'          ],
	OnListItemRightClick      => [ 2, 'EVT_LIST_RIGHT_CLICK'           ],
	OnListKeyDown             => [ 2, 'EVT_LIST_KEY_DOWN'              ],
	OnListColClick            => [ 2, 'EVT_LIST_COL_CLICK'             ],
	OnListColRightClick       => [ 2, 'EVT_LIST_COL_RIGHT_CLICK'       ],
	OnListColBeginDrag        => [ 2, 'EVT_LIST_COL_BEGIN_DRAG'        ],
	OnListColDragging         => [ 2, 'EVT_LIST_COL_DRAGGING'          ],
	OnListColEndDrag          => [ 2, 'EVT_LIST_COL_END_DRAG'          ],

	# wxMenuEvent
	OnMenuSelection           => [ 2, 'EVT_MENU'                       ],

	# wxMouseEvent
	OnEnterWindow             => [ 1, 'EVT_ENTER_WINDOW'               ],
	OnLeaveWindow             => [ 1, 'EVT_LEAVE_WINDOW'               ],
	OnLeftDClick              => [ 1, 'EVT_LEFT_DCLICK'                ],
	OnLeftDown                => [ 1, 'EVT_LEFT_DOWN'                  ],
	OnLeftUp                  => [ 1, 'EVT_LEFT_UP'                    ],
	OnMiddleDClick            => [ 1, 'EVT_MIDDLE_DCLICK'              ],
	OnMiddleDown              => [ 1, 'EVT_MIDDLE_DOWN'                ],
	OnMiddleUp                => [ 1, 'EVT_MIDDLE_UP'                  ],

lib/FBP/Perl.pm  view on Meta::CPAN

	OnTreeItemActivated       => [ 2, 'EVT_TREE_ITEM_ACTIVATED'        ],
	OnTreeItemCollapsed       => [ 2, 'EVT_TREE_ITEM_COLLAPSED'        ],
	OnTreeItemCollapsing      => [ 2, 'EVT_TREE_ITEM_COLLAPSING'       ],
	OnTreeItemExpanded        => [ 2, 'EVT_TREE_ITEM_EXPANDED'         ],
	OnTreeItemExpanding       => [ 2, 'EVT_TREE_ITEM_EXPANDING'        ],
	OnTreeItemRightClick      => [ 2, 'EVT_TREE_ITEM_RIGHT_CLICK'      ],
	OnTreeItemMiddleClick     => [ 2, 'EVT_TREE_ITEM_MIDDLE_CLICK'     ],
	OnTreeSelChanged          => [ 2, 'EVT_TREE_SEL_CHANGED'           ],
	OnTreeSelChanging         => [ 2, 'EVT_TREE_SEL_CHANGING'          ],
	OnTreeKeyDown             => [ 2, 'EVT_TREE_KEY_DOWN'              ],
	OnTreeItemMenu            => [ 2, 'EVT_TREE_ITEM_MENU'             ],
);

# Event Connect Binding Table
our %CONNECT = (
	# Common low level events
	# OnEraseBackground        => 'wxEVT_ERASE_BACKGROUND',
	# OnPaint                  => 'wxEVT_PAINT',
	# OnUpdateUI               => 'wxEVT_UPDATE_UI',

# # 	wxActivateEvent

lib/FBP/Perl.pm  view on Meta::CPAN


# # 	wxCommandEvent
	# OnButtonClick            => 'wxEVT_COMMAND_BUTTON_CLICKED',
	# OnCheckBox               => 'wxEVT_COMMAND_CHECKBOX_CLICKED',
	# OnChoice                 => 'wxEVT_COMMAND_CHOICE_SELECTED',
	# OnCombobox               => 'wxEVT_COMMAND_COMBOBOX_SELECTED',
	# OnListBox                => 'wxEVT_COMMAND_LISTBOX_SELECTED',
	# OnListBoxDClick          => 'wxEVT_COMMAND_LISTBOX_DOUBLECLICKED',
	# OnText                   => 'wxEVT_COMMAND_TEXT_UPDATED',
	# OnTextEnter              => 'wxEVT_COMMAND_TEXT_ENTER',
	# OnMenu                   => 'wxEVT_COMMAND_MENU_SELECTED',

# # 	wxColourPickerCtrl
	# OnColourChanged          => 'wxEVT_COLOURPICKER_CHANGED',

# # 	wxCloseEvent
	# OnClose                  => 'wxEVT_CLOSE_WINDOW',

# # 	wxDatePickerCtrl
	# OnDateChanged            => 'wxEVT_DATE_CHANGED',

lib/FBP/Perl.pm  view on Meta::CPAN


	return 0;
}

sub form_methods {
	my $self    = shift;
	my $form    = shift;
	my @objects = (
		$form,
		$form->find( isa => 'FBP::Window' ),
		$form->find( isa => 'FBP::MenuItem' ),
		$form->find( isa => 'FBP::StdDialogButtonSizer' ),
	);
	my %seen    = ();
	my %done    = ();
	my @methods = ();

	# Add the accessor methods
	foreach my $object ( @objects ) {
		next unless $object->can('name');
		next unless $object->can('permission');

lib/FBP/Perl.pm  view on Meta::CPAN

		# We emulate the creation of simple listbooks via treebooks
		if ( $window->wxclass eq 'Wx::Treebook' ) {
			$lines = $self->treebook_create($window, $parent);
		} else {
			$lines = $self->listbook_create($window, $parent);
		}
	} elsif ( $window->isa('FBP::ListBox') ) {
		$lines = $self->listbox_create($window, $parent);
	} elsif ( $window->isa('FBP::ListCtrl') ) {
		$lines = $self->listctrl_create($window, $parent);
	} elsif ( $window->isa('FBP::MenuBar') ) {
		$lines = $self->menubar_create($window, $parent);
	} elsif ( $window->isa('FBP::Notebook') ) {
		$lines = $self->notebook_create($window, $parent);
	} elsif ( $window->isa('FBP::Panel') ) {
		$lines = $self->panel_create($window, $parent);
	} elsif ( $window->isa('FBP::RadioBox') ) {
		$lines = $self->radiobox_create($window, $parent);
	} elsif ( $window->isa('FBP::RadioButton') ) {
		$lines = $self->radiobutton_create($window, $parent);
	} elsif ( $window->isa('FBP::RichTextCtrl') ) {

lib/FBP/Perl.pm  view on Meta::CPAN

}

sub menu_create {
	my $self     = shift;
	my $menu     = shift;
	my $scope    = $self->object_scope($menu);
	my $variable = $self->object_variable($menu);

	# Generate our children
	my @lines = (
		"$scope$variable = Wx::Menu->new;",
		"",
	);
	foreach my $child ( @{$menu->children} ) {
		if ( $child->isa('FBP::Menu') ) {
			push @lines, @{ $self->menu_create($child, $menu) };

		} elsif ( $child->isa('FBP::MenuItem') ) {
			push @lines, @{ $self->menuitem_create($child, $menu) };

		} else {
			next;
		}
		push @lines, "";
	}

	# Fill the menu
	foreach my $child ( @{$menu->children} ) {
		if ( $child->isa('FBP::Menu') ) {
			push @lines, $self->nested(
				"$variable->Append(",
				$self->object_variable($_) . ',',
				$self->object_label($_) . ',',
				");",
			);
		} elsif ( $child->isa('FBP::MenuItem') ) {
			push @lines, "$variable->Append( "
				. $self->object_variable($child)
				. " );";
		} elsif ( $child->isa('FBP::MenuSeparator') ) {
			push @lines, "$variable->AppendSeparator;";
		}
	}

	return \@lines;
}

sub menubar_create {
	my $self     = shift;
	my $window   = shift;

lib/FBP/Perl.pm  view on Meta::CPAN

		$self->nested(
			"$variable->Append(",
			$self->object_variable($_) . ',',
			$self->object_label($_) . ',',
			");",
		)
	} @{$window->children};
 
	return [
		( map { @$_, "" } @children ),
		"$scope$variable = Wx::MenuBar->new($style);",
		"",
		@append,
		"",
		"$parent->SetMenuBar( $variable );",
	];
}

sub menuitem_create {
	my $self     = shift;
	my $menu     = shift;
	my $parent   = $self->object_parent(@_);
	my $scope    = $self->object_scope($menu);
	my $variable = $self->object_variable($menu);
	my $id       = $self->object_id($menu);
	my $label    = $self->object_label($menu);
	my $help     = $self->text( $menu->help );
	my $kind     = $self->wx( $menu->kind );

	# Create the menu item
	my $lines = $self->nested(
		"$scope$variable = Wx::MenuItem->new(",
		"$parent,",
		"$id,",
		"$label,",
		"$help,",
		"$kind,",
		");",
	);

	# Add the event bindings
	push @$lines, $self->object_bindings($menu);

t/data/simple.fbp  view on Meta::CPAN

                                                    <event name="OnTreeDeleteItem"></event>
                                                    <event name="OnTreeEndDrag"></event>
                                                    <event name="OnTreeEndLabelEdit"></event>
                                                    <event name="OnTreeGetInfo"></event>
                                                    <event name="OnTreeItemActivated"></event>
                                                    <event name="OnTreeItemCollapsed"></event>
                                                    <event name="OnTreeItemCollapsing"></event>
                                                    <event name="OnTreeItemExpanded"></event>
                                                    <event name="OnTreeItemExpanding"></event>
                                                    <event name="OnTreeItemGetTooltip"></event>
                                                    <event name="OnTreeItemMenu"></event>
                                                    <event name="OnTreeItemMiddleClick"></event>
                                                    <event name="OnTreeItemRightClick"></event>
                                                    <event name="OnTreeKeyDown"></event>
                                                    <event name="OnTreeSelChanged"></event>
                                                    <event name="OnTreeSelChanging"></event>
                                                    <event name="OnTreeSetInfo"></event>
                                                    <event name="OnTreeStateImageClick"></event>
                                                    <event name="OnUpdateUI"></event>
                                                </object>
                                            </object>

t/data/simple.fbp  view on Meta::CPAN

                                                    <event name="OnTreeBeginLabelEdit"></event>
                                                    <event name="OnTreeBeginRDrag"></event>
                                                    <event name="OnTreeDeleteItem"></event>
                                                    <event name="OnTreeEndDrag"></event>
                                                    <event name="OnTreeEndLabelEdit"></event>
                                                    <event name="OnTreeItemActivated"></event>
                                                    <event name="OnTreeItemCollapsed"></event>
                                                    <event name="OnTreeItemCollapsing"></event>
                                                    <event name="OnTreeItemExpanded"></event>
                                                    <event name="OnTreeItemExpanding"></event>
                                                    <event name="OnTreeItemMenu"></event>
                                                    <event name="OnTreeItemMiddleClick"></event>
                                                    <event name="OnTreeItemRightClick"></event>
                                                    <event name="OnTreeKeyDown"></event>
                                                    <event name="OnTreeSelChanged"></event>
                                                    <event name="OnTreeSelChanging"></event>
                                                    <event name="OnUpdateUI"></event>
                                                </object>
                                            </object>
                                        </object>
                                    </object>

t/data/simple.fbp  view on Meta::CPAN

                <event name="OnMouseEvents"></event>
                <event name="OnMouseWheel"></event>
                <event name="OnPaint"></event>
                <event name="OnRightDClick"></event>
                <event name="OnRightDown"></event>
                <event name="OnRightUp"></event>
                <event name="OnSetFocus"></event>
                <event name="OnSize"></event>
                <event name="OnUpdateUI"></event>
            </object>
            <object class="wxMenuBar" expanded="0">
                <property name="bg"></property>
                <property name="context_help"></property>
                <property name="context_menu">1</property>
                <property name="enabled">1</property>
                <property name="fg"></property>
                <property name="font"></property>
                <property name="hidden">0</property>
                <property name="id">wxID_ANY</property>
                <property name="label">MyMenuBar</property>
                <property name="maximum_size"></property>
                <property name="minimum_size"></property>
                <property name="name">m_menubar1</property>
                <property name="permission">protected</property>
                <property name="pos"></property>
                <property name="size"></property>
                <property name="style"></property>
                <property name="subclass"></property>
                <property name="tooltip"></property>
                <property name="validator_data_type"></property>

t/data/simple.fbp  view on Meta::CPAN

                <event name="OnMotion"></event>
                <event name="OnMouseEvents"></event>
                <event name="OnMouseWheel"></event>
                <event name="OnPaint"></event>
                <event name="OnRightDClick"></event>
                <event name="OnRightDown"></event>
                <event name="OnRightUp"></event>
                <event name="OnSetFocus"></event>
                <event name="OnSize"></event>
                <event name="OnUpdateUI"></event>
                <object class="wxMenu" expanded="0">
                    <property name="label">File</property>
                    <property name="name">m_menu1</property>
                    <property name="permission">protected</property>
                    <object class="wxMenuItem" expanded="0">
                        <property name="bitmap"></property>
                        <property name="checked">0</property>
                        <property name="enabled">1</property>
                        <property name="help"></property>
                        <property name="id">wxID_ANY</property>
                        <property name="kind">wxITEM_NORMAL</property>
                        <property name="label">MyMenuItem</property>
                        <property name="name">m_menuItem1</property>
                        <property name="permission">none</property>
                        <property name="shortcut"></property>
                        <property name="unchecked_bitmap"></property>
                        <event name="OnMenuSelection">menu_event</event>
                        <event name="OnUpdateUI"></event>
                    </object>
                    <object class="separator" expanded="0">
                        <property name="name">m_separator1</property>
                        <property name="permission">none</property>
                    </object>
                    <object class="wxMenuItem" expanded="0">
                        <property name="bitmap"></property>
                        <property name="checked">0</property>
                        <property name="enabled">1</property>
                        <property name="help"></property>
                        <property name="id">wxID_ANY</property>
                        <property name="kind">wxITEM_NORMAL</property>
                        <property name="label">MyMenuItem...</property>
                        <property name="name">m_menuItem2</property>
                        <property name="permission">none</property>
                        <property name="shortcut"></property>
                        <property name="unchecked_bitmap"></property>
                        <event name="OnMenuSelection"></event>
                        <event name="OnUpdateUI"></event>
                    </object>
                </object>
            </object>
            <object class="wxToolBar" expanded="0">
                <property name="bg"></property>
                <property name="bitmapsize"></property>
                <property name="context_help"></property>
                <property name="context_menu">1</property>
                <property name="enabled">1</property>

t/data/simple.fbp  view on Meta::CPAN

                <event name="OnSize"></event>
                <event name="OnUpdateUI"></event>
                <object class="tool" expanded="0">
                    <property name="bitmap">padre-plugin.png; Load From File</property>
                    <property name="id">wxID_ANY</property>
                    <property name="kind">wxITEM_NORMAL</property>
                    <property name="label">Tool 1</property>
                    <property name="name">m_tool3</property>
                    <property name="statusbar"></property>
                    <property name="tooltip"></property>
                    <event name="OnMenuSelection"></event>
                    <event name="OnToolClicked"></event>
                    <event name="OnToolEnter"></event>
                    <event name="OnToolRClicked"></event>
                    <event name="OnUpdateUI"></event>
                </object>
                <object class="toolSeparator" expanded="0" />
                <object class="tool" expanded="0">
                    <property name="bitmap"></property>
                    <property name="id">wxID_ANY</property>
                    <property name="kind">wxITEM_NORMAL</property>
                    <property name="label">Tool 2</property>
                    <property name="name">m_tool4</property>
                    <property name="statusbar"></property>
                    <property name="tooltip"></property>
                    <event name="OnMenuSelection"></event>
                    <event name="OnToolClicked"></event>
                    <event name="OnToolEnter"></event>
                    <event name="OnToolRClicked"></event>
                    <event name="OnUpdateUI"></event>
                </object>
            </object>
            <object class="wxBoxSizer" expanded="0">
                <property name="minimum_size"></property>
                <property name="name">bSizer7</property>
                <property name="orient">wxVERTICAL</property>

t/lib/MyFrame1.pm  view on Meta::CPAN

		},
	);

	Wx::Event::EVT_IDLE(
		$self,
		sub {
			shift->on_idle(@_);
		},
	);

	$self->{m_menu1} = Wx::Menu->new;

	my $m_menuItem1 = Wx::MenuItem->new(
		$self->{m_menu1},
		-1,
		Wx::gettext("MyMenuItem"),
		'',
		Wx::wxITEM_NORMAL,
	);

	Wx::Event::EVT_MENU(
		$self,
		$m_menuItem1,
		sub {
			shift->menu_event(@_);
		},
	);

	my $m_menuItem2 = Wx::MenuItem->new(
		$self->{m_menu1},
		-1,
		Wx::gettext("MyMenuItem..."),
		'',
		Wx::wxITEM_NORMAL,
	);

	$self->{m_menu1}->Append( $m_menuItem1 );
	$self->{m_menu1}->AppendSeparator;
	$self->{m_menu1}->Append( $m_menuItem2 );

	$self->{m_menubar1} = Wx::MenuBar->new(0);

	$self->{m_menubar1}->Append(
		$self->{m_menu1},
		Wx::gettext("File"),
	);

	$self->SetMenuBar( $self->{m_menubar1} );

	$self->{m_toolBar1} = $self->CreateToolBar( Wx::wxTB_HORIZONTAL, -1 );
	$self->{m_toolBar1}->AddTool(
		-1,
		Wx::gettext("Tool 1"),
		Wx::Bitmap->new( "padre-plugin.png", Wx::wxBITMAP_TYPE_ANY ),
		'',
		Wx::wxITEM_NORMAL,
	);
	$self->{m_toolBar1}->AddSeparator;

t/lib/MyFrame1.pm  view on Meta::CPAN


sub on_iconize {
	warn 'Handler method on_iconize for event t::lib::MyFrame1.OnIconize not implemented';
}

sub on_idle {
	warn 'Handler method on_idle for event t::lib::MyFrame1.OnIdle not implemented';
}

sub menu_event {
	warn 'Handler method menu_event for event m_menuItem1.OnMenuSelection not implemented';
}

sub yes_clicked {
	warn 'Handler method yes_clicked for event m_sdbSizer1.OnYesButtonClick not implemented';
}

1;



( run in 1.524 second using v1.01-cache-2.11-cpan-49f99fa48dc )