Wx

 view release on metacpan or  search on metacpan

ext/ribbon/t/03_threads.t  view on Meta::CPAN

my $rtbar = Wx::RibbonToolBar->new($frame, -1);

my $artprov1 = $rbar->GetArtProvider->Clone;
my $artprov2 = $rbar->GetArtProvider->Clone;
my $artprov3 = Wx::RibbonDefaultArtProvider->new();
my $artprov4 = Wx::RibbonDefaultArtProvider->new();

my $rgitem1 = $rgallery->Append( Wx::Bitmap->new( 100, 100, -1 ), -1, MyDataContainer->new('Stashed Data 0'));
my $rgitem2 = $rgallery->Append( Wx::Bitmap->new( 100, 100, -1 ), -1, MyDataContainer->new('Stashed Data 1'));

my $cdata1 = $rgallery->GetItemClientData( $rgitem1 );
my $cdata2 = $rgitem2->GetClientData();

my ( $buttonbar, $button,  $buttonbar2, $button2, $buttonbar3, $button3 );

if ( Wx::wxVERSION < 3.000000 ) {
    $buttonbar = Wx::RibbonButtonBar->new($rpanel, -1 );
    $button = $buttonbar->AddButton(-1, "Hello World",
        Wx::Bitmap->new( 100, 100, -1 ), wxNullBitmap, wxNullBitmap, wxNullBitmap,
        Wx::wxRIBBON_BUTTON_NORMAL(), "HW Help",
        { data => 'Stashed Data' } );

ext/ribbon/t/03_threads.t  view on Meta::CPAN

my $toolbar2 = Wx::RibbonToolBar->new($rpanel, 1 );
my $tool2 = $toolbar2->AddTool(-1, Wx::Bitmap->new( 100, 100, -1 ), wxNullBitmap,
      "HW Help", Wx::wxRIBBON_BUTTON_NORMAL(), 
      { data => 'Stashed Data' } );

my $toolbar3 = Wx::RibbonToolBar->new($rpanel, 1 );
my $tool3 = $toolbar3->AddTool(-1, Wx::Bitmap->new( 100, 100, -1 ), wxNullBitmap,
      "HW Help", Wx::wxRIBBON_BUTTON_NORMAL(), 
      { data => 'Stashed Data' } );

isa_ok($cdata1, 'MyDataContainer');
is( $cdata1->{somedata}, 'Stashed Data 0' );
isa_ok($cdata2, 'MyDataContainer');
is( $cdata2->{somedata}, 'Stashed Data 1' );

undef $artprov2;
undef $artprov4;
undef $rgitem2;
undef $buttonbar2;
$buttonbar3->Destroy;
undef $buttonbar3;
undef $button2;
undef $button3;
undef $toolbar2;

ext/ribbon/t/04_userdata.t  view on Meta::CPAN

#--------------------------------------------------------------

package main;

use Test::More 'tests' => 15;

use strict;
#use base 'Wx::Frame';
use vars '$TODO';

sub cdata($) { MyClass->new( $_[0] ) }

sub tests {
  my $this = shift;

  ############################################################################
  # wxRibbonGallery
  ############################################################################
  
  my $gallery = Wx::RibbonGallery->new( $this, -1 );
  
  my $rgitem3 = $gallery->Append( Wx::Bitmap->new( 100, 100, -1 ), -1, MyDataContainer->new('Stashed Data 0'));
  my $rgitem4 = $gallery->Append( Wx::Bitmap->new( 100, 100, -1 ), -1, MyDataContainer->new('Stashed Data 1'));
   
  is( $gallery->GetItemClientData( $rgitem4 )->get_data, 'Stashed Data 1', "Wx::RibbonGallery::GetItemClientData" );
  is( $rgitem3->GetClientData()->get_data, 'Stashed Data 0', "Wx::RibbonGalleryItem::GetClientData" );
    
  $rgitem3->SetClientData( MyDataContainer->new('Stashed Data 3') );
  is( $gallery->GetItemClientData( $rgitem3 )->get_data, 'Stashed Data 3', "Wx::RibbonGallery::GetItemClientData ( again )" );
  my $ctrldelete =  0;
  my $ctrlitem = $gallery->AppendClientData( Wx::Bitmap->new( 100, 100, -1 ), -1, cdata(sub { $ctrldelete = 1 }) );
  $gallery->Destroy;
  ok( $ctrldelete, 'Wx::RibbonGallery: deleting the gallery deletes the data' );
  
  ############################################################################
  # wxRibbonButtonBar
  ############################################################################
  
  my $bitmap = Wx::Bitmap->new('../../wxpl.xpm', Wx::wxBITMAP_TYPE_XPM() );
  my $ribbonpanel = Wx::RibbonPanel->new($this, -1);
  

ext/ribbon/t/04_userdata.t  view on Meta::CPAN

    
    my $button = $buttonbar->AddButton(-1, "Hello World",
          $bitmap, wxNullBitmap, wxNullBitmap, wxNullBitmap,
          Wx::wxRIBBON_BUTTON_NORMAL(), "HW Help",
          MyDataContainer->new('Stashed Data 4') );
    
    $ctrldelete =  0;
    my $delbutton = $buttonbar->AddButton(-1, "Hello World",
              $bitmap, wxNullBitmap, wxNullBitmap, wxNullBitmap,
              Wx::wxRIBBON_BUTTON_NORMAL(), "HW Help",
              cdata(sub { $ctrldelete = 1 } ) );
      
    is( $button->GetClientData()->get_data, 'Stashed Data 4', "Wx::RibbonButtonBarButtonBase::GetClientData" );
      
    ok( $ctrldelete == 0, 'Wx::RibbonButtonBar: Data not changed before delete' );
    
    $delbutton->SetClientData(undef);
      
    $buttonbar->Destroy;
    
    ok( $ctrldelete, 'Wx::RibbonButtonBar: deleting the ribbonbuttonbar deletes the data' );

ext/ribbon/t/04_userdata.t  view on Meta::CPAN

  my $persistentdata = MyDataContainer->new('Stashed Persistent Data 1');
  
  my $tbarbutton = $toolbar->AddTool(-1, $bitmap, wxNullBitmap,
      "HW Help", Wx::wxRIBBON_BUTTON_NORMAL(), 
      $persistentdata );
  
  $ctrldelete =  0;
  
  my $autoid = $toolbar->AddTool(-1, $bitmap, wxNullBitmap,
      "HW Help", Wx::wxRIBBON_BUTTON_NORMAL(), 
        cdata( sub { $ctrldelete = 1 } ) )->id; ;

  is( $toolbar->GetToolClientData($toolid2)->get_data, 'Stashed Data 6', "Wx::RibbonToolBar::GetToolClientData For Tool 2" );
  is( $toolbar->GetToolClientData($toolid1)->get_data, 'Stashed Data 5', "Wx::RibbonToolBar::GetToolClientData For Tool 1" );
  
  is( $toolbar->GetToolClientData( $tbarbutton->id )->get_data,
     'Stashed Persistent Data 1', "Wx::RibbonToolBar::GetToolClientData For Persistent data" );
  
  ok( $ctrldelete == 0, 'Wx::RibbonToolBar: Data not changed before delete' );
  
  # in wxRibbonToolBar ClientData is untyped void so we must delete the clientdata before we delete the tool

t/04_userdata.t  view on Meta::CPAN


package main;

use Test::More 'tests' => 65;

use strict;
#use base 'Wx::Frame';
use vars '$TODO';

sub tdata($) { Wx::TreeItemData->new( MyClass->new( $_[0] ) ) }
sub cdata($) { MyClass->new( $_[0] ) }

sub tests {
  my $this = shift;

  ############################################################################
  # wxTreeCtrl
  ############################################################################

  my $tree = Wx::TreeCtrl->new( $this, -1 );
  my $root = $tree->AddRoot( 'Root', -1, -1,

t/04_userdata.t  view on Meta::CPAN

    is( $$outdata, 'Hubris', "Wx::TreeListCtrl::GetItemData again" );    
    
    $treelist->SetItemData($tlroot, Wx::TreeItemData->new( 'Aghast' ) );
    $outdata = $treelist->GetItemData($tlroot)->GetData;
    is( $outdata, 'Aghast', "Wx::TreeListCtrl::GetItemData From Wx::TreeItemData" );    
    
    ## test deleting and setting again
    my( $tldeleting, $tlsetting, $tlctrldelete ) = ( 0, 0, 0 );
        
    my $tlitem1 = $treelist->AppendItem( $tlroot, 'An item', -1, -1,
                                   cdata sub { $tldeleting = 1 } );
    my $tlitem2 = $treelist->AppendItem( $tlroot, 'An item', -1, -1,
                                   cdata sub { $tlsetting = 1 } );
    my $tlitem3 = $treelist->AppendItem( $tlroot, 'An item', -1, -1,
                                   cdata sub { $tlctrldelete = 1 } );
    
    is( ref($treelist->GetItemData($tlitem1)), 'MyClass', 'Wx::TreeListCtrl Item Data is class');
    
    $treelist->DeleteItem( $tlitem1 );
    
    ok( $tldeleting, 'Wx::TreeListCtrl: deleting an item deletes the data' );
    $treelist->SetItemData( $tlitem2, Wx::TreeItemData->new( 'foo' ) );
    ok( $tlsetting, 'Wx::TreeListCtrl: setting again item data deletes old data' );
    ## and hope the tree is deleted NOW
    $treelist->Destroy;

t/04_userdata.t  view on Meta::CPAN

      is( $list->GetClientData( 0 ), 'Bar', "$name: setting client data" );
      is( $list->GetClientData( 1 ), 'Baz',
          "$name: setting client data (again)" );

      my $x = 1;
      $list->SetClientData( 0, \$x );
      $x = 2;
      is( ${$list->GetClientData( 0 )}, 2,
          "$name: client data is a reference" );

      $list->Append( 'An item', cdata sub { $setting = 1 } );
      $list->Append( 'An item', cdata sub { $ctrldelete = 1 } );
      $list->Append( 'An item', cdata sub { $deleting = 1 } );

      SKIP: {
        skip "delayed on Mac", 1 if Wx::wxMAC && $list->isa( 'Wx::ListBox' );
        $list->Delete( 4 );
        ok( $deleting, "$name: deleting an item deletes the data" );
      }
      $list->SetClientData( 2, 'foo' );
      ok( $setting, "$name: setting again item data deletes old data" );
      # and hope the control is deleted NOW
      $list->Destroy;

t/04_userdata.t  view on Meta::CPAN

  ############################################################################
  my $toolbar = Wx::ToolBar->new( $this, -1);
  my $tool = $toolbar->AddTool(Wx::wxID_ANY(), Wx::Bitmap->new(16,16,1));
  $tool = $toolbar->AddTool(Wx::wxID_ANY(), Wx::Bitmap->new(16,16,1));
  my $toolid = $tool->GetId;
  isnt($toolid, -1, 'Wx::ToolBar got valid tool id');
  $toolbar->SetToolClientData( $toolid, 'Bar' );
  is( $toolbar->GetToolClientData( $toolid ), 'Bar', 'Wx::ToolBar client data set');
  $toolbar->Realize;
  $ctrldelete = 0;
  $toolbar->SetToolClientData( $toolid, cdata( sub { $ctrldelete = 1 } ));
  
  ok( $ctrldelete == 0, 'Wx::ToolBar controldata not deleted' );
  $toolbar->SetToolClientData( $toolid, undef );
  ok( $ctrldelete, 'Wx::ToolBar - setting client data causes previous data deletion' );

}

in_frame( \&tests );

# local variables:



( run in 0.675 second using v1.01-cache-2.11-cpan-454fe037f31 )