3 # test that overload dispatch works for
9 use Test::More 'tests' => 180;
10 use Tests_Helper qw(test_app);
13 my $nolog = Wx::LogNull->new;
14 Wx::InitAllImageHandlers;
18 my( $name, $code ) = ( shift, shift );
20 die $name unless defined &{$name};
23 *{$name} = sub { &$code; goto &$old };
28 my $frame = Wx::Frame->new( undef, -1, 'a' );
29 my $bmpok = Wx::Bitmap->new( 'wxpl.ico', Wx::wxBITMAP_TYPE_ICO() );
30 my $imgok = Wx::Image->new( 'wxpl.ico', Wx::wxBITMAP_TYPE_ICO() );
31 my $icook = Wx::GetWxPerlIcon();
33 die unless $bmpok->Ok;
34 die unless $imgok->Ok;
35 die unless $icook->Ok;
37 ##############################################################################
39 ##############################################################################
41 my( $newbmp, $newcol, $newname ) = ( 0, 0, 0 );
42 my( $scrgb, $sccol, $scname ) = ( 0, 0, 0 );
44 hijack( 'Wx::Brush::newBitmap' => sub { $newbmp = 1 },
45 'Wx::Brush::newColour' => sub { $newcol = 1 },
46 'Wx::Brush::newName' => sub { $newname = 1 },
47 'Wx::Brush::SetColourRGB' => sub { $scrgb = 1 },
48 'Wx::Brush::SetColourColour' => sub { $sccol = 1 },
49 'Wx::Brush::SetColourName' => sub { $scname = 1 } );
51 Wx::Brush->new( Wx::Bitmap->new( 1, 1, 1 ) );
52 ok( $newbmp, 'Wx::Brush::newBitmap' );
54 Wx::Brush->new( Wx::wxRED(), 1 );
55 ok( $newcol, 'Wx::Brush::newColour' );
57 my $b = Wx::Brush->new( 'red', 2 );
58 ok( $newname, 'Wx::Brush::newName' );
60 $b->SetColour( 1, 2, 3 );
61 ok( $scrgb, 'Wx::Brush::SetColourRGB' );
63 $b->SetColour( Wx::wxRED() );
64 ok( $sccol, 'Wx::Brush::SetColourColour' );
66 $b->SetColour( 'red' );
67 ok( $scname, 'Wx::Brush::SetColourName' );
70 ##############################################################################
71 # Wx::Bitmap & Wx::Mask
72 ##############################################################################
74 my( $newbmp, $newbmpn, $newbmpcol ) = ( 0, 0, 0 );
75 my( $newempty, $newfile, $newicon, $newimage ) = ( 0, 0, 0, 0 );
77 hijack( 'Wx::Mask::newBitmapColour' => sub { $newbmpcol = 1 },
78 'Wx::Mask::newBitmapIndex' => sub { $newbmpn = 1 },
79 'Wx::Mask::newBitmap' => sub { $newbmp = 1 },
80 'Wx::Bitmap::newEmpty' => sub { $newempty = 1 },
81 'Wx::Bitmap::newFile' => sub { $newfile = 1 },
82 'Wx::Bitmap::newIcon' => sub { $newicon = 1 },
83 'Wx::Bitmap::newImage' => sub { $newimage = 1 },
86 my $bitmap = Wx::Bitmap->new( 1, 1, 1 );
87 ok( $newempty, "Wx::Bitmap::newEmpty" );
89 Wx::Bitmap->new( 'demo/data/logo.jpg', Wx::wxBITMAP_TYPE_JPEG() );
90 ok( $newfile, "Wx::Bitmap::newFile" );
92 Wx::Bitmap->new( $icook );
93 ok( $newicon, "Wx::Bitmap::newIcon" );
95 Wx::Bitmap->new( Wx::Image->new( 1, 1 ) );
96 ok( $newimage, "Wx::Bitmap::newImage" );
98 Wx::Mask->new( $bmpok, Wx::Colour->new( 'red' ) );
99 ok( $newbmpcol,"Wx::Mask::newBitmapColour" );
102 skip "Does not work on wxGTK, wxMAC, wxX11 and wxMOTIF", 1
103 if Wx::wxGTK() || Wx::wxX11() || Wx::wxMOTIF() || Wx::wxMAC();
105 Wx::Mask->new( $bmpok, 0 );
106 ok( $newbmpn, "Wx::Mask::newBitmapIndex" );
109 # does not work: colour bitmap
110 # Wx::Mask->new( $bitmap );
111 # ok( $newbmp, "Wx::Mask::newBitmap" );
114 ##############################################################################
116 ##############################################################################
118 my( $newrgb, $newname ) = ( 0, 0 );
119 hijack( 'Wx::Colour::newRGB' => sub { $newrgb = 1 },
120 'Wx::Colour::newName' => sub { $newname = 1 } );
122 Wx::Colour->new( 1, 2, 3 );
123 ok( $newrgb, "Wx::Colour::newRGB" );
125 Wx::Colour->new( 'red' );
126 ok( $newname, "Wx::Colour::newName" );
129 ##############################################################################
131 ##############################################################################
133 my( $newwh, $newsize, $movepoint, $movexy, $setsizesize, $setsizewh ) =
134 ( 0, 0, 0, 0, 0, 0 );
135 hijack( 'Wx::Caret::newWH' => sub { $newwh = 1 },
136 'Wx::Caret::newSize' => sub { $newsize = 1 },
137 'Wx::Caret::MovePoint' => sub { $movepoint = 1 },
138 'Wx::Caret::MoveXY' => sub { $movexy = 1 },
139 'Wx::Caret::SetSizeSize' => sub { $setsizesize = 1 },
140 'Wx::Caret::SetSizeWH' => sub { $setsizewh = 1 } );
142 my $caret = Wx::Caret->new( Wx::Window->new( $frame, -1 ), 1, 1 );
143 ok( $newwh, "Wx::Caret::newWH" );
145 Wx::Caret->new( Wx::Window->new( $frame, -1 ), [ 1, 1 ] );
146 ok( $newsize, "Wx::Caret::newSize" );
148 $caret->Move( [ 1, 1 ] );
149 ok( $movepoint, "Wx::Caret::MovePoint" );
151 Wx::Caret->new( Wx::Window->new( $frame, -1 ), 1, 1 )->Move( 1, 1 );
152 ok( $movexy, "Wx::Caret::MoveXY" );
154 $caret->SetSize( [ 1, 1 ] );
155 ok( $setsizesize, "Wx::Caret::SetSizeSize" );
157 $caret->SetSize( 1, 1 );
158 ok( $setsizewh, "Wx::Caret::SetSizeWH" );
161 ##############################################################################
162 # Wx::ControlWithItems/Wx::ComboBox
163 ##############################################################################
165 my( $cwiappendstr, $cwiappenddata, $cwiappenditems,
166 $cbappendstr, $cbappenddata, $cbsetselectionN, $cbsetselectionNN,
167 $cwiappenditemsdata, $cwiinsertitemsdata, $cwiinsertitems,
168 $cwiinsertdata, $cwiinsertstr, $cwisetitemsdata, $cwisetitems );
169 my $good_combo = 'Wx::ComboBox'->isa( 'Wx::Choice' );
170 hijack( 'Wx::ControlWithItems::AppendString' => sub { $cwiappendstr = 1 },
171 'Wx::ControlWithItems::AppendData' => sub { $cwiappenddata = 1 },
172 'Wx::ControlWithItems::AppendItems' => sub { $cwiappenditems = 1 },
173 ( Wx::wxVERSION() >= 2.009
174 ? ( 'Wx::ControlWithItems::AppendItemsData' => sub { $cwiappenditemsdata = 1 },
175 'Wx::ControlWithItems::InsertItemsData' => sub { $cwiinsertitemsdata = 1 },
176 'Wx::ControlWithItems::InsertItems' => sub { $cwiinsertitems = 1 },
177 'Wx::ControlWithItems::InsertData' => sub { $cwiinsertdata = 1 },
178 'Wx::ControlWithItems::InsertString' => sub { $cwiinsertstr = 1 },
179 'Wx::ControlWithItems::SetItemsData' => sub { $cwisetitemsdata = 1 },
180 'Wx::ControlWithItems::SetItems' => sub { $cwisetitems = 1 } ) : () ),
182 ( 'Wx::ComboBox::AppendString' => sub { $cbappendstr = 1 },
183 'Wx::ComboBox::AppendData' => sub { $cbappenddata = 1 } )
185 'Wx::ComboBox::SetMark' => sub { $cbsetselectionNN = 1 },
187 ( 'Wx::ComboBox::SetSelectionN' => sub { $cbsetselectionN = 1 } )
191 my $cwi = Wx::ListBox->new( $frame, -1 );
192 my $cb = Wx::ComboBox->new( $frame, -1, 'bar' );
195 ok( $cwiappendstr, "Wx::ControlWithItems::AppendString" );
197 $cwi->Append( 'a', {} );
198 ok( $cwiappenddata, "Wx::ControlWithItems::AppendData" );
200 $cwi->Append( [ 'c', 'd', 'e' ] );
201 ok( $cwiappenditems, "Wx::ControlWithItems::AppendItems" );
203 if( Wx::wxVERSION() >= 2.009 ) {
204 $cwi->Append( [ 'c', 'd', 'e' ], [ 1, 2, 3 ] );
205 $cwi->Insert( [ 'c', 'd', 'e' ], 2, [ 1, 2, 3 ] );
206 $cwi->Insert( [ 'c', 'd', 'e' ], 3 );
207 $cwi->Insert( 'w', 4, 7 );
208 $cwi->Insert( 'w', 5 );
209 $cwi->Set( [ 'c', 'd', 'e' ], [ 1, 2, 3 ] );
210 $cwi->Set( [ 'w', 'x', 'y' ] );
212 ( $cwiappenditems, $cwiappenditemsdata, $cwiinsertitemsdata,
213 $cwiinsertitems, $cwiinsertdata, $cwiinsertstr, $cwisetitemsdata,
214 $cwisetitems ) = ( 1, 1, 1, 1, 1, 1, 1, 1 );
216 # just to check it is there
217 $cwi->Set( [ 'w', 'x', 'y' ] );
219 ok( $cwiappenditemsdata, 'Wx::ControlWithItems::AppendItemsData' );
220 ok( $cwiinsertitemsdata, 'Wx::ControlWithItems::InsertItemsData' );
221 ok( $cwiinsertitems, 'Wx::ControlWithItems::InsertItems' );
222 ok( $cwiinsertdata, 'Wx::ControlWithItems::InsertData' );
223 ok( $cwiinsertstr, 'Wx::ControlWithItems::InsertString' );
224 ok( $cwisetitemsdata, 'Wx::ControlWithItems::SetItemsData' );
225 ok( $cwisetitems, 'Wx::ControlWithItems::SetItems' );
229 $cb->Append( 'b', sub {} );
231 ( $cbappendstr, $cbappenddata ) = ( 1, 1 );
233 ok( $cbappendstr, "Wx::ComboBox::AppendString" );
234 ok( $cbappenddata, "Wx::ComboBox::AppendData" );
237 skip "Segfaults on wxMAC", 1 if Wx::wxMAC();
239 $cb->SetSelection( 0 );
240 ok( $cbsetselectionN, "Wx::ComboBox::SetSelectionN" );
243 $cb->SetSelection( 0, 1 );
244 ok( $cbsetselectionNN,"Wx::ComboBox::SetMark" );
247 ##############################################################################
249 ##############################################################################
251 my( $newid, $newimage, $newfile ) = ( 0, 0, 0 );
252 hijack( 'Wx::Cursor::newId' => sub { $newid = 1 },
253 ( Wx::wxVERSION() >= 2.003002 && !Wx::wxMAC()
254 ? ( 'Wx::Cursor::newImage' => sub { $newimage = 1 } )
257 # ? ( 'Wx::Cursor::newFile' => sub { $newfile = 1 } )
261 Wx::Cursor->new( 1 );
262 ok( $newid, "Wx::Cursor::newId" );
265 skip "Only for wxWidgets 2.3.x", 1
266 unless Wx::wxVERSION() >= 2.003002 && !Wx::wxMAC();
268 Wx::Cursor->new( Wx::Image->new( 1, 1 ) );
269 ok( $newimage, "Wx::Cursor::newImage" );
273 # skip "Only for wxMSW", 1 unless Wx::wxMSW();
275 # Wx::Cursor->new( 'demo/data/logo.jpg', Wx::wxBITMAP_TYPE_JPEG(), 2, 2 );
276 # ok( $newfile, "Wx::Cursor::newFile" );
280 ##############################################################################
282 ##############################################################################
284 my( $newnull, $newfile, $newiconloc ) = ( 0, 0, 0 );
285 hijack( 'Wx::Icon::newNull' => sub { $newnull = 1 },
286 'Wx::Icon::newFile' => sub { $newfile = 1 },
287 ( Wx::wxVERSION() >= 2.005002
288 ? ( 'Wx::Icon::newLocation' => sub { $newiconloc = 1 } )
293 ok( $newnull, "Wx::Icon::newNull" );
295 Wx::Icon->new( 'wxpl.xpm', Wx::wxBITMAP_TYPE_XPM() );
296 ok( $newfile, "Wx::Icon::newFile" );
299 skip "Only for wxWidgets 2.5.2+", 1 unless Wx::wxVERSION >= 2.005002;
300 skip "Hangs under wxMotif", 1 if Wx::wxMOTIF;
302 my $mtm = Wx::MimeTypesManager->new;
303 my $filet = $mtm->GetFileTypeFromExtension( 'jpg' );
305 skip "No jpg file type", 1 unless $filet;
306 my $location = $filet->GetIcon;
307 skip "No icon for jpg file type", 1 unless $location;
308 my $icon = Wx::Icon->new( $location );
309 ok( $newiconloc, "Wx::Icon::newLocation" );
313 ##############################################################################
315 ##############################################################################
317 my( $addtoollong, $addtoolshort, $setmarginsxy, $setmarginssize,
318 $addnews, $addnewl, $instoollong, $insnewl ) =
319 ( 0, 0, 0, 0, 0, 0, 0, 0 );
320 hijack( 'Wx::ToolBarBase::AddToolLong' => sub { $addtoollong = 1 },
321 'Wx::ToolBarBase::AddToolShort' => sub { $addtoolshort = 1 },
322 'Wx::ToolBarBase::InsertToolLong' => sub { $instoollong = 1 },
323 ( Wx::wxVERSION >= 2.004 ?
324 ( 'Wx::ToolBarBase::AddToolNewShort' => sub { $addnews = 1 },
325 'Wx::ToolBarBase::AddToolNewLong' => sub { $addnewl = 1 } ) :
327 ( Wx::wxVERSION >= 2.006 ?
328 ( 'Wx::ToolBarBase::InsertToolNewLong' => sub { $insnewl = 1 } ) :
330 'Wx::ToolBarBase::SetMarginsXY' => sub { $setmarginsxy = 1 },
331 'Wx::ToolBarBase::SetMarginsSize' => sub { $setmarginssize = 1 } );
333 my $tbar = Wx::ToolBar->new( $frame, -1 );
334 $tbar->SetMargins( 0, 1 );
335 ok( $setmarginsxy, "Wx::ToolBar::SetMarginsXY" );
337 $tbar->SetMargins( [1, 2] );
338 ok( $setmarginssize, "Wx::Toolbar::SetMarginsSize" );
340 $tbar->AddTool( Wx::wxID_NEW(), $bmpok, Wx::wxNullBitmap(), 0, undef, 'foo' );
341 ok( $addtoollong, "Wx::ToolBar::AddToolLong" );
343 $tbar->AddTool( -1, $bmpok, 'a', 'b' );
344 ok( $addtoolshort, "Wx::ToolBar::AddToolShort" );
346 $tbar->InsertTool( 1, Wx::wxID_NEW(), $bmpok, Wx::wxNullBitmap(), 0,
348 ok( $instoollong, "Wx::ToolBar::InsertToolLong" );
351 skip "Only for wxWidgets 2.5+", 2 unless Wx::wxVERSION >= 2.005;
353 $tbar->AddTool( -1, "boo", $bmpok, Wx::wxNullBitmap(), 0,
354 'str', 'foo', 'data' );
355 ok( $addnewl, "Wx::ToolBar::AddToolNewLong" );
357 $tbar->AddTool( -1, "bar", $bmpok, 'a', 0 );
358 ok( $addnews, "Wx::ToolBar::AddToolNewShort" );
361 skip "Only for wxWidgets 2.6+", 1 unless Wx::wxVERSION >= 2.006;
363 $tbar->InsertTool( 1, Wx::wxID_NEW(), 'lbl', $bmpok, Wx::wxNullBitmap(), 0,
364 'foo', 'moo', undef );
365 ok( $insnewl, "Wx::ToolBar::InsertToolNewLong" );
369 ##############################################################################
371 ##############################################################################
373 skip "Segfaults under wxMotif 2.6.x", 2 if Wx::wxMOTIF && Wx::wxVERSION < 2.008;
374 my( $newicon, $newbitmap ) = ( 0, 0 );
375 hijack( 'Wx::StaticBitmap::newIcon' => sub { $newicon = 1 },
376 'Wx::StaticBitmap::newBitmap' => sub { $newbitmap =1 } );
378 Wx::StaticBitmap->new( $frame, -1, $icook );
379 ok( $newicon, "Wx::StaticBitmap::newIcon" );
381 Wx::StaticBitmap->new( $frame, -1, $bmpok );
382 ok( $newbitmap, "Wx::StaticBitmap::newBitmap" );
385 ##############################################################################
387 ##############################################################################
389 my( $newxywh, $newps, $newpp ) = ( 0, 0, 0 );
390 hijack( 'Wx::Rect::newXYWH' => sub { $newxywh = 1 },
391 'Wx::Rect::newPS' => sub { $newps = 1 },
392 'Wx::Rect::newPP' => sub { $newpp = 1 } );
394 Wx::Rect->new( 0, 1, 2, 3 );
395 ok( $newxywh, "Wx::Rect::newXYWH" );
397 Wx::Rect->new( Wx::Point->new( 0, 1 ), Wx::Size->new( 1, 2 ) );
398 ok( $newps, "Wx::Rect::newPS" );
400 Wx::Rect->new( Wx::Point->new( 0, 1 ), Wx::Point->new( 2, 3 ) );
401 ok( $newpp, "Wx::Rect::newPP" );
404 ##############################################################################
406 ##############################################################################
408 my( $sdotwin, $sdotrec ) = ( 0, 0 );
409 hijack( 'Wx::ScreenDC::StartDrawingOnTopWindow' => sub { $sdotwin = 1 },
410 'Wx::ScreenDC::StartDrawingOnTopRect' => sub { $sdotrec = 1 } );
412 my $dc = Wx::ScreenDC->new;
414 $dc->StartDrawingOnTop( $frame );
415 ok( $sdotwin, "Wx::ScreenDC::StartDrawingOnTopWindow" );
417 $dc->EndDrawingOnTop;
418 $dc->StartDrawingOnTop( Wx::Rect->new( 0, 1, 2, 3 ) );
419 ok( $sdotrec, "Wx::ScreenDC::StartDrawingOnTopRect" );
422 ##############################################################################
424 ##############################################################################
426 my( $ssxywh, $sswh, $sssize, $ssrect, $stttip, $sttstr, $ctsxy, $ctspoint,
427 $cdppoint, $cdpsize, $cpdpoint, $cpdsize, $iepoint, $ierect, $iexywh,
428 $movepoint, $movexy, $stcpoi, $stcxy, $scspoi, $scswh )
429 = ( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 );
430 hijack( 'Wx::Window::SetSizeXYWHF' => sub { $ssxywh = 1 },
431 'Wx::Window::SetSizeWH' => sub { $sswh = 1 },
432 'Wx::Window::SetSizeSize' => sub { $sssize = 1 },
433 'Wx::Window::SetSizeRect' => sub { $ssrect = 1 },
434 ( Wx::wxMOTIF() ? () :
435 ( 'Wx::Window::SetToolTipTip' => sub { $stttip = 1 },
436 'Wx::Window::SetToolTipString' => sub { $sttstr = 1 }, ) ),
437 'Wx::Window::ClientToScreenXY' => sub { $ctsxy = 1 },
438 'Wx::Window::ClientToScreenPoint' => sub { $ctspoint = 1 },
439 'Wx::Window::ConvertDialogPointToPixels' => sub { $cdppoint = 1 },
440 'Wx::Window::ConvertDialogSizeToPixels' => sub { $cdpsize =1 },
441 'Wx::Window::ConvertPixelsPointToDialog' => sub { $cpdpoint = 1 },
442 'Wx::Window::ConvertPixelsSizeToDialog' => sub { $cpdsize =1 },
443 'Wx::Window::IsExposedPoint' => sub { $iepoint = 1 },
444 'Wx::Window::IsExposedRect' => sub { $ierect = 1 },
445 'Wx::Window::IsExposedXYWH' => sub { $iexywh = 1 },
446 'Wx::Window::MovePoint' => sub { $movepoint = 1 },
447 'Wx::Window::MoveXY' => sub { $movexy = 1 },
448 # Wx::Window::PopupMenuPoint => sub { $poppoint = 1 },
449 # Wx::Window::PopupMenuXY => sub { $popxy = 1 },
450 'Wx::Window::ScreenToClientPoint' => sub { $stcpoi = 1 },
451 'Wx::Window::ScreenToClientXY' => sub { $stcxy = 1 },
452 'Wx::Window::SetClientSizeSize' => sub { $scspoi = 1 },
453 'Wx::Window::SetClientSizeWH' => sub { $scswh = 1 } );
455 $frame->SetSize( 20, 20, 30, 30 );
456 ok( $ssxywh, "Wx::Window::SetSizeXYWHF" );
458 $frame->SetSize( 40, 40 );
459 ok( $sswh, "Wx::Window::SetSizeWH" );
461 $frame->SetSize( [ 50, 50 ] );
462 ok( $sssize, "Wx::Window::SetSizeSize" );
464 $frame->SetSize( Wx::Rect->new( 40, 40, 60, 60 ) );
465 ok( $ssrect, "Wx::Window::SetSizeRect" );
468 skip "No ToolTips under wxMOTIF", 2 if Wx::wxMOTIF();
470 $frame->SetToolTip( "FOO" );
471 ok( $sttstr, "Wx::Window::SetToolTipString" );
473 $frame->SetToolTip( Wx::ToolTip->new( "Bar" ) );
474 ok( $stttip, "Wx::Window::SetToolTipTip" );
477 $frame->ClientToScreen( 1, 2 );
478 ok( $ctsxy, "Wx::Window::ClientToScreenXY" );
480 $frame->ClientToScreen( [1, 2] );
481 ok( $ctspoint, "Wx::Window::ClientToScreenPoint" );
483 $frame->ConvertDialogToPixels( Wx::Point->new( 2, 3 ) );
484 ok( $cdppoint, "Wx::Window::ConvertDialogPointToPixels" );
486 $frame->ConvertDialogToPixels( Wx::Size->new( 1, 2 ) );
487 ok( $cdpsize, "Wx::Window::ConvertDialogSizeToPixels" );
489 $frame->ConvertPixelsToDialog( Wx::Point->new( 2, 3 ) );
490 ok( $cpdpoint, "Wx::Window::ConvertPixelsPointToDialog" );
492 $frame->ConvertPixelsToDialog( Wx::Size->new( 1, 2 ) );
493 ok( $cpdsize, "Wx::Window::ConvertPixelsSizeToDialog" );
495 $frame->IsExposed( Wx::Point->new( 1, 2 ) );
496 ok( $iepoint, "Wx::Window::IsExposedPoint" );
498 $frame->IsExposed( Wx::Rect->new( 1, 2, 3, 4 ) );
499 ok( $ierect, "Wx::Window::IsExposedRect" );
501 $frame->IsExposed( 1, 2, 3, 4 );
502 ok( $iexywh, "Wx::Window::IsExposedXYWH" );
504 $frame->Move( [ 50, 50 ] );
505 ok( $movepoint, "Wx::Window::MovePoint" );
507 $frame->Move( 6, 60 );
508 ok( $movexy, "Wx::Window::MoveXY" );
510 $frame->ScreenToClient( [ 1, 2 ] );
511 ok( $stcpoi, "Wx::Window::ScreenToClientPoint" );
513 $frame->ScreenToClient( 1, 2 );
514 ok( $stcxy, "Wx::Window::ScreenToClientXY" );
516 $frame->SetClientSize( [50, 50] );
517 ok( $scspoi, "Wx::Window::SetClientSizePoint" );
519 $frame->SetClientSize( 200, 200 );
520 ok( $scswh, "Wx::Window::SetClientSizeWH" );
523 ##############################################################################
525 ##############################################################################
527 my( $drawcxywh, $drawcrec, $setclxywh, $setclreg ) = ( 0, 0, 0, 0 );
528 hijack( 'Wx::DC::DrawCheckMarkXYWH' => sub { $drawcxywh = 1 },
529 'Wx::DC::DrawCheckMarkRect' => sub { $drawcrec = 1 },
530 'Wx::DC::SetClippingRegionXYWH' => sub { $setclxywh = 1 },
531 'Wx::DC::SetClippingRegionRegion' => sub { $setclreg = 1 } );
533 my $dc = Wx::ClientDC->new( $frame );
534 $dc->DrawCheckMark( 1, 2, 5, 6 );
535 ok( $drawcxywh, "Wx::DC::DrawCheckMarkXYWH" );
537 $dc->DrawCheckMark( Wx::Rect->new( 1, 2, 5, 6 ) );
538 ok( $drawcrec, "Wx::DC::DrawCheckMarkRect" );
540 $dc->SetClippingRegion( 0, 0, 50, 50 );
541 ok( $setclxywh, "Wx::DC::SetClippingRegionXYWH" );
543 $dc->SetClippingRegion( Wx::Region->new( Wx::Rect->new( 0, 0, 40, 40 ) ) );
544 ok( $setclreg, "Wx::DC::SetClippingRegionRegion" );
547 ##############################################################################
549 ##############################################################################
551 my( $newdefault, $neweh ) = ( 0, 0 );
552 hijack( 'Wx::Timer::newDefault' => sub { $newdefault = 1 },
553 'Wx::Timer::newEH' => sub { $neweh = 1 } );
555 Wx::Timer->new->Destroy;
556 ok( $newdefault, "Wx::Timer::newDefault" );
558 Wx::Timer->new( $frame, 1 );
559 ok( $neweh, "Wx::Timer::newEH" );
562 ##############################################################################
564 ##############################################################################
566 my( $tgetp, $wgetp, $iitid, $iiint ) = ( 0, 0, 0, 0 );
567 hijack( 'Wx::TreeCtrl::GetParent' => sub { $tgetp = 1 },
568 'Wx::Window::GetParent' => sub { $wgetp = 1 },
569 'Wx::TreeCtrl::InsertItemPrev' => sub { $iitid = 1 },
570 'Wx::TreeCtrl::InsertItemBef' => sub { $iiint = 1 } );
572 my $tc = Wx::TreeCtrl->new( $frame, -1 );
573 my $rt = $tc->AddRoot( 'root' );
574 my $c1 = $tc->AppendItem( $rt, 'first' );
575 my $c2 = $tc->AppendItem( $rt, 'second' );
577 $tc->GetParent( $c1 );
578 ok( $tgetp, "Wx::TreeCtrl::GetParent" );
581 ok( $wgetp, "Wx::Window::GetParent" );
583 $tc->InsertItem( $rt, $c1, 'insert 1' );
584 ok( $iitid, "Wx::TreeCtrl::InsertItemPrev" );
586 $tc->InsertItem( $rt, 1, 'insert 2' );
587 ok( $iiint, "Wx::TreeCtrl::InsertItemBef" );
590 ##############################################################################
592 ##############################################################################
594 my( $newcol, $newbitmap, $newstring,
595 $setcolcol, $setcolrgb, $setcolname ) = ( 0, 0, 0, 0, 0, 0 );
596 hijack( 'Wx::Pen::newColour' => sub { $newcol = 1 },
598 ( 'Wx::Pen::newBitmap' => sub { $newbitmap = 1 } ) :
600 'Wx::Pen::newString' => sub { $newstring = 1 },
601 'Wx::Pen::SetColourColour' => sub { $setcolcol = 1 },
602 'Wx::Pen::SetColourRGB' => sub { $setcolrgb = 1 },
603 'Wx::Pen::SetColourName' => sub { $setcolname = 1 } );
605 Wx::Pen->new( Wx::Colour->new( 'red' ), 0, 0 );
606 ok( $newcol, "Wx::Pen::newColour" );
609 skip "MSW-only method", 1 unless Wx::wxMSW();
611 Wx::Pen->new( $bmpok, 1 );
612 ok( $newbitmap, "Wx::Pen::newBitmap" );
615 my $pen = Wx::Pen->new( 'red', 0, 0 );
616 ok( $newstring, "Wx::Pen::newString" );
618 $pen->SetColour( Wx::wxRED() );
619 ok( $setcolcol, "Wx::Pen::SetColourColour" );
621 $pen->SetColour( 1, 2, 3 );
622 ok( $setcolrgb, "Wx::Pen::SetColourRGB" );
624 $pen->SetColour( 'red' );
625 ok( $setcolname, "Wx::Pen::SetColourName" );
628 ##############################################################################
630 ##############################################################################
632 my( $ici, $istr, $setii, $setstr ) = ( 0, 0, 0, 0 );
633 hijack( 'Wx::ListCtrl::InsertColumnInfo' => sub { $ici = 1 },
634 'Wx::ListCtrl::InsertColumnString' => sub { $istr = 1 },
635 'Wx::ListCtrl::SetItemInfo' => sub { $setii = 1 },
636 'Wx::ListCtrl::SetItemString' => sub { $setstr = 1 } );
638 my $lc = Wx::ListCtrl->new( $frame, -1, [-1,-1], [-1,-1], Wx::wxLC_REPORT() );
640 $lc->InsertColumn( 0, 'Column' );
641 ok( $istr, "Wx::ListCtrl::InsertColumnString" );
643 my $li = Wx::ListItem->new; $li->SetColumn( 1 ); $li->SetText( 'Foo' );
644 $lc->InsertColumn( 1, $li );
645 ok( $ici, "Wx::ListCtrl::InsertColumnInfo" );
647 $lc->InsertStringItem( 0, 'Foo' );
648 $lc->SetItem( 0, 0, 'Bar' );
649 ok( $setstr, "Wx::ListCtrl::SetItemString" );
653 ok( $setii, "Wx::ListCtrl::SetItemInfo" );
656 ##############################################################################
658 ##############################################################################
660 my( $addbitmap, $addwithcolour, $addicon, $replico, $replbmp )
662 hijack( 'Wx::ImageList::AddBitmap' => sub { $addbitmap = 1 },
663 'Wx::ImageList::AddWithColourMask' => sub { $addwithcolour = 1 },
664 'Wx::ImageList::AddIcon' => sub { $addicon = 1 },
665 'Wx::ImageList::ReplaceIcon' => sub { $replico = 1 },
666 'Wx::ImageList::ReplaceBitmap' => sub { $replbmp = 1 } );
668 my $img = Wx::Image->new( 16, 16 );
669 my( $bmp, $ico ) = ( Wx::Bitmap->new( $img ), Wx::GetWxPerlIcon( 1 ) );
670 my $imgl = Wx::ImageList->new( 16, 16 );
673 ok( $addbitmap, "Wx::ImageList::AddBitmap" );
675 $imgl->Add( $bmp, Wx::wxBLACK() );
676 ok( $addwithcolour, "Wx::ImageList::AddWithColourMask" );
679 ok( $addicon, "Wx::ImageList::AddIcon" );
681 $imgl->Replace( 0, $bmp );
682 ok( $replbmp, "Wx::ImageList::ReplaceBitmap" );
684 $imgl->Replace( 1, $ico );
685 ok( $replico, "Wx::ImageList::ReplaceIcon" );
688 ##############################################################################
690 ##############################################################################
692 my( $appmen, $appstr, $appite, $delite, $delid, $desite, $desid,
693 $remite, $remid, $prepite, $prepstr, $insite, $insstr )
694 = ( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 );
695 hijack( 'Wx::Menu::AppendSubMenu_'=> sub { $appmen = 1 },
696 'Wx::Menu::AppendString' => sub { $appstr = 1 },
697 'Wx::Menu::AppendItem' => sub { $appite = 1 },
698 'Wx::Menu::DeleteItem' => sub { $delite = 1 },
699 'Wx::Menu::DeleteId' => sub { $delid = 1 },
700 'Wx::Menu::DestroyItem' => sub { $desite = 1 },
701 'Wx::Menu::DestroyId' => sub { $desid = 1 },
702 'Wx::Menu::RemoveItem' => sub { $remite = 1 },
703 'Wx::Menu::RemoveId' => sub { $remid = 1 },
704 'Wx::Menu::PrependString' => sub { $prepstr = 1 },
705 'Wx::Menu::PrependItem' => sub { $prepite = 1 },
706 'Wx::Menu::InsertString' => sub { $insstr = 1 },
707 'Wx::Menu::InsertItem' => sub { $insite = 1 } );
709 my $me = Wx::Menu->new;
710 my $me2 = Wx::Menu->new;
712 my $i1 = Wx::MenuItem->new( $me, 1, 'Foo' );
713 my $i2 = Wx::MenuItem->new( $me, 2, 'Bar' );
714 my $i3 = Wx::MenuItem->new( $me, 3, 'Baz' );
715 my $i4 = Wx::MenuItem->new( $me, 4, 'Baz' );
717 $me->Append( 11, 'My' );
718 ok( $appstr, "Wx::Menu::AppendString" );
720 $me->Append( 12, 'Sub', $me2 );
721 ok( $appmen, "Wx::Menu::AppendSubMenu_" );
724 ok( $appite, "Wx::Menu::AppendItem" );
727 ok( $delite, "Wx::Menu::DeleteItem" );
730 ok( $delid, "Wx::Menu::DeleteId" );
732 $me->Append( $i2 ); $me->Append( $i3 );
733 $me->Append( 12, 'Fubar' ); $me->Append( 13, 'Fubar' );
736 ok( $desite, "Wx::Menu::DestroyItem" );
739 ok( $desid, "Wx::Menu::DestroyId" );
742 ok( $remite, "Wx::Menu::RemoveItem" );
745 ok( $remid, "Wx::Menu::RemoveId" );
748 ok( $prepite, "Wx::Menu::PrependItem" );
750 $me->Prepend( 15, 'Myself' );
751 ok( $prepstr, "Wx::Menu::PrependString" );
753 $me->Insert( 0, $i4 );
754 ok( $insite, "Wx::Menu::InsertItem" );
756 $me->Insert( 0, 17, 'Foo' );
757 ok( $insstr, "Wx::Menu::InsertString" );
760 ##############################################################################
762 ##############################################################################
764 my( $wenable, $renable, $wgetlabel, $rgetlabel, $wsetlabel,
765 $rsetlabel, $wshow, $rshow ) = ( 0, 0, 0, 0, 0, 0, 0, 0 );
766 hijack( 'Wx::Window::Enable' => sub { $wenable = 1 },
767 'Wx::RadioBox::EnableItem' => sub { $renable = 1 },
768 'Wx::Window::GetLabel' => sub { $wgetlabel = 1 },
769 'Wx::RadioBox::GetItemLabel' => sub { $rgetlabel = 1 },
770 'Wx::Window::SetLabel' => sub { $wsetlabel = 1 },
771 'Wx::RadioBox::SetItemLabel' => sub { $rsetlabel = 1 },
772 'Wx::Window::Show' => sub { $wshow = 1 },
773 'Wx::RadioBox::ShowItem' => sub { $rshow = 1 } );
775 my $rb = Wx::RadioBox->new( $frame, -1, 'Foo', [-1,-1], [-1,-1],
779 ok( $wenable, "Wx::Window::Enable" );
782 ok( $renable, "Wx::RadioBox::EnableItem" );
785 ok( $wgetlabel, "Wx::Window::GetLabel" );
788 ok( $rgetlabel, "Wx::RadioBox::GetItemLabel" );
790 $rb->SetLabel( 'Foo' );
791 ok( $wsetlabel, "Wx::Window::SetLabel" );
793 $rb->SetLabel( 1, 'My' );
794 ok( $rsetlabel, "Wx::RadioBox::SetLabel" );
797 ok( $wshow, "Wx::Window::Show" );
800 ok( $rshow, "Wx::RadioBox::ShowItem" );
803 ##############################################################################
805 ##############################################################################
807 my( $newempty, $newxywh, $newpp, $newrect, $cxywh, $cxy, $cpoint,
808 $crect, $ixywh, $irect, $iregion, $srect, $sregion,
809 $uxywh, $urect, $uregion, $xxywh, $xrect, $xregion )
810 = ( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 );
811 hijack( 'Wx::Region::newEmpty' => sub { $newempty = 1 },
812 'Wx::Region::newXYWH' => sub { $newxywh = 1 },
813 'Wx::Region::newPP' => sub { $newpp = 1 },
814 'Wx::Region::newRect' => sub { $newrect = 1 },
815 # Wx::Region::newPolygon' => sub { $newpolygon = 1 },
816 'Wx::Region::ContainsXYWH' => sub { $cxywh = 1 },
817 'Wx::Region::ContainsXY' => sub { $cxy = 1 },
818 'Wx::Region::ContainsPoint' => sub { $cpoint = 1 },
819 'Wx::Region::ContainsRect' => sub { $crect = 1 },
820 'Wx::Region::IntersectXYWH' => sub { $ixywh = 1 },
821 'Wx::Region::IntersectRect' => sub { $irect = 1 },
822 'Wx::Region::IntersectRegion' => sub { $iregion = 1 },
823 'Wx::Region::SubtractRect' => sub { $srect = 1 },
824 'Wx::Region::SubtractRegion' => sub { $sregion = 1 },
825 'Wx::Region::UnionXYWH' => sub { $uxywh = 1 },
826 'Wx::Region::UnionRect' => sub { $urect = 1 },
827 'Wx::Region::UnionRegion' => sub { $uregion = 1 },
828 'Wx::Region::XorXYWH' => sub { $xxywh = 1 },
829 'Wx::Region::XorRect' => sub { $xrect = 1 },
830 'Wx::Region::XorRegion' => sub { $xregion = 1 } );
833 ok( $newempty, "Wx::Region::newEmpty" );
835 Wx::Region->new( 1, 2, 3, 4 );
836 ok( $newxywh, "Wx::Region::newXYWH" );
838 Wx::Region->new( [0, 0], [50, 50] );
839 ok( $newpp, "Wx::Region::newPP" );
841 my $r = Wx::Region->new( Wx::Rect->new( 0, 0, 50, 50 ) );
842 ok( $newrect, "Wx::Region::newRect" );
844 $r->Contains( 0, 0, 1, 2 );
845 ok( $cxywh, "Wx::Region::ContainsXYWH" );
847 $r->Contains( 1, 2 );
848 ok( $cxy, "Wx::Region::ContainsXY" );
850 $r->Contains( [ 1, 2 ] );
851 ok( $cpoint, "Wx::Region::ContainsPoint" );
853 $r->Contains( Wx::Rect->new( 0, 1, 2, 3 ) );
854 ok( $crect, "Wx::Region::ContainsRect" );
856 $r->Intersect( 0, 1, 2, 3 );
857 ok( $ixywh, "Wx::Region::IntersectXYWH" );
859 $r->Intersect( Wx::Rect->new( 0, 1, 2, 3 ) );
860 ok( $irect, "Wx::Region::IntersectRect" );
862 $r->Intersect( Wx::Region->new( 0, 0, 50, 50 ) );
863 ok( $iregion, "Wx::Region::IntersectRegion" );
865 $r->Subtract( Wx::Rect->new( 0, 1, 2, 3 ) );
866 ok( $srect, "Wx::Region::SubtractRect" );
869 ok( $sregion, "Wx::Region::SubtractRegion" );
871 $r->Union( 0, 0, 50, 50 );
872 ok( $uxywh, "Wx::Region::UnionXYWH" );
874 $r->Union( Wx::Rect->new( Wx::Point->new( 0, 0 ), Wx::Size->new( 50, 50 ) ) );
875 ok( $urect, "Wx::Region::UnionRect" );
878 skip "Does not work with wxGTK 2.2", 1
879 if Wx::wxGTK && Wx::wxVERSION < 2.003;
882 ok( $uregion, "Wx::Region::UnionRegion" );
885 $r->Xor( 0, 0, 1, 1 );
886 ok( $xxywh, "Wx::Region::XorXYWH" );
888 $r->Xor( Wx::Rect->new( 0, 0, 1, 2 ) );
889 ok( $xrect, "Wx::Region::XorRect" );
892 skip "Does not work with wxGTK 2.2", 1
893 if Wx::wxGTK && Wx::wxVERSION < 2.003;
896 ok( $xregion, "Wx::Region::XorRegion" );
900 ##############################################################################
902 ##############################################################################
904 my( $newnull, $newicon, $newbitmap, $newstreamt, $newstreamm,
905 $newwh, $newdata, $newnametype, $newnamemime,
906 $lsm, $lst, $lft, $lfm, $ssm, $sst, $sft, $sfm, $sfo )
907 = ( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 );
908 hijack( 'Wx::Image::newNull' => sub { $newnull = 1 },
909 'Wx::Image::newIcon' => sub { $newicon = 1 },
910 'Wx::Image::newBitmap' => sub { $newbitmap = 1 },
911 'Wx::Image::newStreamType' => sub { $newstreamt = 1 },
912 'Wx::Image::newStreamMIME' => sub { $newstreamm = 1 },
913 'Wx::Image::newWH' => sub { $newwh = 1 },
914 'Wx::Image::newData' => sub { $newdata = 1 },
915 'Wx::Image::newNameType' => sub { $newnametype = 1 },
916 'Wx::Image::newNameMIME' => sub { $newnamemime = 1 },
917 'Wx::Image::LoadStreamType' => sub { $lst = 1 },
918 'Wx::Image::LoadStreamMIME' => sub { $lsm = 1 },
919 'Wx::Image::LoadFileType' => sub { $lft = 1 },
920 'Wx::Image::LoadFileMIME' => sub { $lfm = 1 },
921 # Wx::Image::SaveFileSType => sub { $sst = 1 },
922 # Wx::Image::SaveFileSMIME => sub { $ssm = 1 },
923 # Wx::Image::SaveFileType => sub { $sft = 1 },
924 # Wx::Image::SaveFileMIME => sub { $sfm = 1 },
925 # Wx::Image::SaveFileOnly => sub { $sfo = 1 }
928 my $op = '< wxpl.xpm';
930 ok( $newnull, "Wx::Image::newNull" );
932 Wx::Image->new( $icook );
933 ok( $newicon, "Wx::Image::newIcon" );
935 Wx::Image->new( $bmpok );
936 ok( $newbitmap, "Wx::Image::newBitmap" );
938 open IN, $op; binmode IN;
939 Wx::Image->new( *IN, Wx::wxBITMAP_TYPE_XPM() );
940 ok( $newstreamt, "Wx::Image::newStreamType" );
942 open IN, $op; binmode IN;
943 Wx::Image->new( *IN, 'image/xpm' );
944 ok( $newstreamm, "Wx::Image::newStreamMIME" );
946 Wx::Image->new( 1, 2 );
947 ok( $newwh, "Wx::Image::newWH" );
949 Wx::Image->new( 3, 4, ' ' x 3 x 4 x 3 );
950 ok( $newdata, "Wx::Image::newData" );
952 Wx::Image->new( 'wxpl.ico', Wx::wxBITMAP_TYPE_ICO() );
953 ok( $newnametype, "Wx::Image::newNameType" );
955 Wx::Image->new( 'wxpl.xpm', 'image/xpm' );
956 ok( $newnametype, "Wx::Image::newNameMIME" );
958 my $img = Wx::Image->new;
959 open IN, "wxpl.xpm"; binmode IN;
960 $img->LoadFile( \*IN, Wx::wxBITMAP_TYPE_XPM() );
961 ok( $lst, "Wx::Image::LoadStreamType" );
963 open IN, $op; binmode IN;
964 $img->LoadFile( \*IN, 'image/xpm' );
965 ok( $lsm, "Wx::Image::LoadStreamMIME" );
967 $img->LoadFile( 'wxpl.xpm', Wx::wxBITMAP_TYPE_XPM() );
968 ok( $lft, "Wx::Image::LoadFileType" );
970 $img->LoadFile( 'wxpl.xpm', 'image/xpm' );
971 ok( $lfm, "Wx::Image::LoadFileMIME" );
977 ##############################################################################
978 # Wx::Buffered{Paint}DC
979 ##############################################################################
981 my( $newd, $newb, $news, $initb, $inits ) = ( 0, 0, 0, 0, 0, );
982 hijack( 'Wx::BufferedDC::newDefault' => sub { $newd = 1 },
983 'Wx::BufferedDC::newBitmap' => sub { $newb = 1 },
984 'Wx::BufferedDC::newSize' => sub { $news = 1 },
985 'Wx::BufferedDC::InitBitmap' => sub { $initb = 1 },
986 'Wx::BufferedDC::InitSize' => sub { $inits = 1 },
988 my $frame = Wx::Frame->new( undef, -1, 'Frame' );
989 my $cdc = Wx::ClientDC->new( $frame );
992 $dc = Wx::BufferedDC->new;
993 ok( $newd, 'Wx::BufferedDC::newDefault' );
995 my $backing = Wx::Bitmap->new( 20, 20 );
996 $dc = Wx::BufferedDC->new( $cdc, $backing );
997 ok( $newb, 'Wx::BufferedDC::newBitmap' );
999 $dc = Wx::BufferedDC->new( $cdc, [20, 20] );
1000 ok( $news, 'Wx::BufferedDC::newSize' );
1003 skip 'Broken inheritance for 2.6.x', 2 if ref $dc eq 'Wx::MemoryDC';
1004 skip 'Does not work with 2.7.1', 2 if Wx::wxVERSION < 2.007002;
1006 $dc = Wx::BufferedDC->new;
1007 my $backing = Wx::Bitmap->new( 200, 100 );
1008 $dc->Init( $cdc, $backing );
1009 ok( $initb, 'Wx::BufferedDC::InitBitmap' );
1011 $dc = Wx::BufferedDC->new;
1012 $dc->Init( $cdc, [200, 100] );
1013 ok( $inits, 'Wx::BufferedDC::InitSize' );
1020 ##############################################################################
1021 # Wx::Sizer/Wx::SizerItem
1022 ##############################################################################
1024 my( $showw, $shows, $showi, $srfloat, $srwh, $srsize, $addsiz,
1025 $addwin, $addspa, $inssiz, $inswin, $insspa, $presiz, $prewin, $prespa,
1026 $remwin, $remsiz, $remnth, $smsxy, $smssize, $siswin, $sissiz, $sisnth ) =
1027 ( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 );
1028 hijack( 'Wx::Sizer::ShowWindow' => sub { $showw = 1 },
1029 'Wx::Sizer::ShowSizer' => sub { $shows = 1 },
1030 # 'Wx::Sizer::ShowItem' => sub { $showi = 1 },
1031 'Wx::SizerItem::SetRatioFloat' => sub { $srfloat = 1 },
1032 'Wx::SizerItem::SetRatioWH' => sub { $srwh = 1 },
1033 'Wx::SizerItem::SetRatioSize' => sub { $srsize = 1 },
1034 'Wx::Sizer::AddSizer' => sub { $addsiz = 1 },
1035 'Wx::Sizer::AddWindow' => sub { $addwin = 1 },
1036 'Wx::Sizer::AddSpace' => sub { $addspa = 1 },
1037 'Wx::Sizer::InsertSizer' => sub { $inssiz = 1 },
1038 'Wx::Sizer::InsertWindow' => sub { $inswin = 1 },
1039 'Wx::Sizer::InsertSpace' => sub { $insspa = 1 },
1040 'Wx::Sizer::PrependSizer' => sub { $presiz = 1 },
1041 'Wx::Sizer::PrependWindow' => sub { $prewin = 1 },
1042 'Wx::Sizer::PrependSpace' => sub { $prespa = 1 },
1043 ( $Wx::wxVERSION < 2.007 ?
1044 ( 'Wx::Sizer::RemoveWindow' => sub { $remwin = 1 } ) :
1046 'Wx::Sizer::RemoveSizer' => sub { $remsiz = 1 },
1047 'Wx::Sizer::RemoveNth' => sub { $remnth = 1 },
1048 'Wx::Sizer::SetMinSizeXY' => sub { $smsxy = 1 },
1049 'Wx::Sizer::SetMinSizeSize' => sub { $smssize= 1 },
1050 'Wx::Sizer::SetItemMinSizeWindow' => sub { $siswin = 1 },
1051 'Wx::Sizer::SetItemMinSizeSizer' => sub { $sissiz = 1 },
1052 'Wx::Sizer::SetItemMinSizeNth' => sub { $sisnth = 1 },
1055 my $win = Wx::Frame->new( undef, -1, 'Foo' );
1056 my $siz = Wx::BoxSizer->new( Wx::wxVERTICAL() );
1057 $siz->Add( Wx::BoxSizer->new( Wx::wxVERTICAL() ) );
1058 $win->SetSizer( $siz );
1061 ok( $showw, 'Wx::Sizer::ShowWindow' );
1063 $siz->Show( $siz, 1 );
1064 ok( $shows, 'Wx::Sizer::ShowSizer' );
1067 #ok( $showi, 'Wx::Sizer::ShowItem' );
1069 sub siz1 { Wx::BoxSizer->new( Wx::wxHORIZONTAL() ) }
1070 sub win1 { Wx::Window->new( $win, -1 ) }
1072 my $item = ( $siz->GetChildren )[0];
1074 $item->SetRatio( 1.234 );
1075 ok( $srfloat, 'Wx::SizerItem::SetRatioFloat' );
1077 $item->SetRatio( 1, 2 );
1078 ok( $srfloat, 'Wx::SizerItem::SetRatioWH' );
1080 $item->SetRatio( [ 1, 3 ] );
1081 ok( $srfloat, 'Wx::SizerItem::SetRatioSize' );
1084 $siz->Add( siz1, 1, 1, 1, 1 );
1085 ok( $addsiz, 'Wx::Sizer::AddSizer' );
1088 $siz->Add( win1, 1, 1, 1, 1 );
1089 ok( $addwin, 'Wx::Sizer::AddWindow' );
1091 $siz->Add( 100, 100 );
1092 $siz->Add( 100, 100, 1, 1, 1, 1 );
1093 ok( $addspa, 'Wx::Sizer::AddSpace' );
1095 $siz->Insert( 2, siz1 );
1096 $siz->Insert( 2, siz1, 1, 1, 1, 1 );
1097 ok( $inssiz, 'Wx::Sizer::InsertSizer' );
1099 $siz->Insert( 3, win1 );
1100 $siz->Insert( 3, win1, 1, 1, 1, 1 );
1101 ok( $inswin, 'Wx::Sizer::InsertWindow' );
1103 $siz->Insert( 4, 100, 100 );
1104 $siz->Insert( 4, 100, 100, 1, 1, 1, 1 );
1105 ok( $insspa, 'Wx::Sizer::InsertSpace' );
1107 $siz->Prepend( siz1 );
1108 $siz->Prepend( siz1, 1, 1, 1, 1 );
1109 ok( $presiz, 'Wx::Sizer::PrependSizer' );
1111 $siz->Prepend( win1 );
1112 $siz->Prepend( win1, 1, 1, 1, 1 );
1113 ok( $prewin, 'Wx::Sizer::PrependWindow' );
1115 $siz->Prepend( 100, 100 );
1116 $siz->Prepend( 100, 100, 1, 1, 1, 1 );
1117 ok( $prespa, 'Wx::Sizer::PrependSpace' );
1120 ok( $remnth, 'Wx::Sizer::RemoveNth' );
1122 $siz->Remove( siz1 );
1123 ok( $remsiz, 'Wx::Sizer::RemoveSizer' );
1125 if( $Wx::wxVERSION < 2.007 ) {
1126 $siz->Remove( win1 );
1127 ok( $remwin, 'Wx::Sizer::RemoveWindow' );
1132 $siz->SetItemMinSize( win1, 100, 100 );
1133 ok( $siswin, 'Wx::Sizer::SetItemMinSizeWindow' );
1135 $siz->SetItemMinSize( siz1, 100, 100 );
1136 ok( $sissiz, 'Wx::Sizer::SetItemMinSizeSizer' );
1138 $siz->SetItemMinSize( 4, 100, 100 );
1139 ok( $sisnth, 'Wx::Sizer::SetItemMinSizeNth' );
1141 $siz->SetMinSize( 100, 100 );
1142 ok( $smsxy, 'Wx::Sizer::SetMinSizeXY' );
1144 $siz->SetMinSize( [ 100, 100 ] );
1145 ok( $smssize, 'Wx::Sizer::SetMinSizeSize' );