Changeset 3372


Ignore:
Timestamp:
05/30/09 10:48:30 (10 years ago)
Author:
ronosman
Message:

Refactor context menu item initialization.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • extensions/pLoader/trunk/src/Uploader/GUI/wxFrameAUI.pm

    r3371 r3372  
    2424use Wx::DND; 
    2525use Wx qw/ 
     26             wxITEM_NORMAL 
    2627             wxNullBitmap 
    2728             wxID_OK 
     
    340341          perspective 
    341342          current_imageviewer_index 
     343          imageviewer_mnu 
     344          tree_mnu 
    342345      /; 
    343346__PACKAGE__->mk_accessors( @properties ); 
     
    456459    $self->_set_setting_properties; 
    457460    $self->_initFrame; 
    458     $self->_InitEventHandlers; 
     461    $self->_initMenus; 
     462    $self->_initEventHandlers; 
    459463    $self->_initImgTypes;    
    460464 
     
    12931297 
    12941298 
    1295  
    1296 sub _InitEventHandlers { 
     1299sub _initMenus { 
     1300    my ( $self ) = @_ ; 
     1301 
     1302    $self->_tree_mnu; 
     1303    $self->_imageviewer_mnu;     
     1304} 
     1305 
     1306 
     1307sub _tree_mnu { 
     1308    my ( $self ) = @_;   
     1309 
     1310    my $ctx_mnu = Wx::Menu->new; 
     1311     
     1312    map { 
     1313        $ctx_mnu->Append( 
     1314            @$_[0..2], wxITEM_NORMAL 
     1315        )->SetBitmap(Wx::Bitmap->new($_->[3],wxBITMAP_TYPE_PNG)); 
     1316    } 
     1317    ( 
     1318        # workaround : first item does not show bitmap 
     1319        [ 
     1320            0,  
     1321            "", 
     1322            "", 
     1323            '../res/mnu_folder_new.png', 
     1324        ], 
     1325        [ 
     1326            1+$ID_TREE_CTX_MENU,  
     1327            wxTheApp->branding->{'Add new category'}, 
     1328            sprintf( 
     1329                "%s %s %s %s",  
     1330                gettext("Add a new"),  
     1331                wxTheApp->branding->{category}, 
     1332                gettext("to the currently selected"), 
     1333                wxTheApp->branding->{category}, 
     1334            ), 
     1335            '../res/mnu_folder_new.png', 
     1336        ], 
     1337        [ 
     1338            2+$ID_TREE_CTX_MENU,  
     1339            "Refresh", 
     1340            sprintf( 
     1341                "Refresh %s list.", 
     1342                wxTheApp->branding->{category}, 
     1343            ), 
     1344            '../res/mnu_refresh.png', 
     1345        ], 
     1346    ); 
     1347 
     1348    $ctx_mnu->Delete(0); 
     1349    $self->tree_mnu( 
     1350         $ctx_mnu 
     1351    );   
     1352}        
     1353 
     1354sub _imageviewer_mnu { 
     1355    my ( $self ) = @_;   
     1356 
     1357    my $ctx_mnu = Wx::Menu->new; 
     1358     
     1359    map { 
     1360        $ctx_mnu->Append( 
     1361            @$_[0..2] 
     1362        )->SetBitmap(Wx::Bitmap->new($_->[3],wxBITMAP_TYPE_PNG)); 
     1363    } 
     1364    ( 
     1365        # workaround : first item does not show bitmap 
     1366        [ 
     1367            0,  
     1368            "", 
     1369            "", 
     1370            '../res/mnu_properties.png', 
     1371        ], 
     1372        [ 
     1373            1+$ID_IMAGEVIEWER_CTX_MENU,  
     1374            gettext("Properties"), 
     1375            gettext("Modify photo properties"), 
     1376            '../res/mnu_properties.png', 
     1377        ], 
     1378        [ 
     1379            2+$ID_IMAGEVIEWER_CTX_MENU,  
     1380            gettext("Preview"), 
     1381            gettext("Display photo preview"), 
     1382            '../res/mnu_preview.png', 
     1383        ], 
     1384    ); 
     1385         
     1386    $ctx_mnu->Delete(0); 
     1387    $self->imageviewer_mnu( 
     1388         $ctx_mnu 
     1389    );   
     1390} 
     1391 
     1392sub _initEventHandlers { 
    12971393    my ( $self ) = @_ ; 
    12981394         
     
    13041400    Wx::Event::EVT_MENU( $self, 105, \&OnChooseLanguage ); 
    13051401    EVT_TREE_SEL_CHANGED( $self, $self->tree, \&OnTreeSelChanged ); 
    1306     EVT_TREE_ITEM_RIGHT_CLICK( $self->tree, $self->tree, \&OnTreeItemRightClick ); 
     1402    EVT_TREE_ITEM_RIGHT_CLICK( $self, $self->tree, \&OnTreeItemRightClick ); 
    13071403 
    13081404    EVT_LIST_END_LABEL_EDIT( $self, $self->imageviewer, \&OnImageViewerEndLabelEdit ); 
     
    13631459        } 
    13641460    } 
     1461 
    13651462} 
    13661463 
     
    13711468    $self->imagelist->RemoveImageSelection; 
    13721469    $self->imageviewer->Refresh;         
     1470 
    13731471} 
    13741472 
     
    14221520    my( $self, $event ) = @_; 
    14231521 
    1424     my $point = $event->GetPoint ; 
    1425     my $ctx_mnu = Wx::Menu->new; 
    1426      
    1427     map { 
    1428         $ctx_mnu->Append( 
    1429             @$_[0..2] 
    1430         )->SetBitmap(Wx::Bitmap->new($_->[3],wxBITMAP_TYPE_PNG)); 
    1431     } 
    1432     ( 
    1433         [ 
    1434             1+$ID_TREE_CTX_MENU,  
    1435             wxTheApp->branding->{'Add new category'}, 
    1436             sprintf( 
    1437                 "%s %s %s %s",  
    1438                 gettext("Add a new"),  
    1439                 wxTheApp->branding->{category}, 
    1440                 gettext("to the currently selected"), 
    1441                 wxTheApp->branding->{category}, 
    1442             ), 
    1443             '../res/mnu_folder_new.png', 
    1444         ], 
    1445         [ 
    1446             2+$ID_TREE_CTX_MENU,  
    1447             "Refresh", 
    1448             sprintf( 
    1449                 "Refresh %s list.", 
    1450                 wxTheApp->branding->{category}, 
    1451             ), 
    1452             '../res/mnu_refresh.png', 
    1453         ], 
    1454     ); 
    1455  
    1456     $self->PopupMenu($ctx_mnu, wxDefaultPosition); 
     1522 
     1523    $self->PopupMenu($self->tree_mnu, wxDefaultPosition); 
    14571524         
    14581525} 
     
    14621529    my( $self, $event ) = @_; 
    14631530 
    1464     my $point = $event->GetPoint ; 
    1465     my $ctx_mnu = Wx::Menu->new; 
    1466      
    1467     map { 
    1468         $ctx_mnu->Append( 
    1469             @$_[0..2] 
    1470         )->SetBitmap(Wx::Bitmap->new($_->[3],wxBITMAP_TYPE_PNG)); 
    1471     } 
    1472     ( 
    1473         [ 
    1474             1+$ID_IMAGEVIEWER_CTX_MENU,  
    1475             gettext("Properties"), 
    1476             gettext("Modify photo properties"), 
    1477             '../res/mnu_properties.png', 
    1478         ], 
    1479         [ 
    1480             2+$ID_IMAGEVIEWER_CTX_MENU,  
    1481             gettext("Preview"), 
    1482             gettext("Display photo preview"), 
    1483             '../res/mnu_preview.png', 
    1484         ], 
    1485     ); 
    1486      
    1487     $self->PopupMenu($ctx_mnu, wxDefaultPosition); 
     1531     
     1532    $self->PopupMenu($self->imageviewer_mnu, wxDefaultPosition); 
    14881533         
    14891534         
     
    16071652    if(WXK_DELETE == $event->GetKeyCode){ 
    16081653        $self->OnRemoveImages(); 
     1654         
     1655        my $index = $self->current_imageviewer_index < $self->imageviewer->GetItemCount ? 
     1656            $self->current_imageviewer_index : $self->current_imageviewer_index -1 ; 
    16091657        $self->imageviewer->SelectItem( 
    1610             $self->current_imageviewer_index 
     1658            $index 
    16111659        ); 
    16121660    }    
Note: See TracChangeset for help on using the changeset viewer.