Ignore:
Timestamp:
Mar 11, 2010, 10:38:04 AM (14 years ago)
Author:
ronosman
Message:

Feature 1478 added : Ability to set properties for a batch of selected photos. New implementation with specific gui layout.

File:
1 edited

Legend:

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

    r4974 r5103  
    2828    my( $parent ) = @_;
    2929    my( $topsizer ) = Wx::BoxSizer->new( wxVERTICAL );
    30    
     30
     31    $parent->{_multi_selection_mode_panel} = Wx::Panel->new(
     32        $parent,
     33        -1,
     34        wxDefaultPosition,
     35        [450, -1]
     36    );
     37
     38    _multi_selection_mode_panel_layout(
     39        $parent->{_multi_selection_mode_panel}
     40    );
     41
     42    $parent->{_multi_selection_mode_panel}->Show(0);
     43
     44    $topsizer->Add(
     45        $parent->{_multi_selection_mode_panel},
     46        0,
     47        wxEXPAND|wxLEFT|wxRIGHT,
     48        5
     49    );
     50
     51
    3152    # defines minimum size
    3253    my( $item2 ) = Wx::Notebook->new( $parent, $main::PHOTO_PROPERTIES_NB, wxDefaultPosition, [450,160], 0 );
     
    3758   
    3859    # the notebook has adaptive size : stretch factor 2, wxEXPAND
    39     $topsizer->Add( $item1, 2, wxEXPAND|wxALIGN_CENTER_VERTICAL|wxALL, 5 );
     60    $topsizer->Add( $item1, 2, wxEXPAND|wxALL, 5 );
    4061
    4162    my( $item3 ) = Wx::TreeCtrl->new( $parent, $main::PHOTO_PROPERTIES_CATEGORIES, wxDefaultPosition, [450,160], wxTR_HAS_BUTTONS|wxTR_LINES_AT_ROOT );
    4263    # the notebook has adaptive size : stretch factor 1, wxEXPAND
    43     $topsizer->AddWindow( $item3, 1, wxGROW|wxALL, 5 );
     64    $topsizer->AddWindow( $item3, 1, wxEXPAND|wxALL, 5 );
    4465
    4566    my( $item4 ) = Wx::StaticLine->new( $parent, $main::ID_LINE, wxDefaultPosition, [20,-1], wxLI_HORIZONTAL );
    46     $topsizer->AddWindow( $item4, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5 );
     67    $topsizer->AddWindow( $item4, 0, wxEXPAND|wxALL, 5 );
    4768
    4869    my( $item5 ) = Wx::Button->new( $parent, $main::PHOTO_PROPERTIES_UPLOAD, "", wxDefaultPosition, [-1,40], 0 );
     
    5172#    $item5->SetForegroundColour( Wx::wxGREEN );
    5273    $item5->SetForegroundColour( Wx::Colour->new(255, 51, 99) );
    53     $topsizer->AddWindow( $item5, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5 );
     74    $topsizer->AddWindow( $item5, 0, wxEXPAND|wxALL, 5 );
    5475
    5576    $parent->SetSizer( $topsizer );
     
    5879    $topsizer;
    5980}
    60 
    6181use vars qw($TAGS); $TAGS = 10004;
    6282use vars qw($PHOTO_PROPERTIES_TAG); $PHOTO_PROPERTIES_TAG = 10005;
     
    93113sub photo_properties_caption_comments {
    94114    my( $parent ) = @_;
    95     my( $topsizer ) = Wx::BoxSizer->new( wxVERTICAL );
    96    
    97     my( $item1 ) = Wx::BoxSizer->new( wxVERTICAL );
    98    
    99     my( $item2 ) = Wx::StaticText->new( $parent, $main::CAPTION, "text", wxDefaultPosition, wxDefaultSize, 0 );
    100     $item1->AddWindow( $item2, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
    101 
    102     my( $item3 ) = Wx::TextCtrl->new( $parent, $main::PHOTO_PROPERTIES_CAPTION, "", wxDefaultPosition, [-1,-1], 0 );
    103     $item1->AddWindow( $item3, 0, wxEXPAND|wxALIGN_CENTER_VERTICAL|wxALL, 5 );
    104 
    105     $topsizer->Add( $item1, 0, wxEXPAND, 5 );
    106 
    107     my( $item4 ) = Wx::BoxSizer->new( wxVERTICAL );
    108    
    109     my( $item5 ) = Wx::StaticText->new( $parent, $main::AUTHOR, "text", wxDefaultPosition, wxDefaultSize, 0 );
    110     $item4->AddWindow( $item5, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
    111 
    112     my( $item6 ) = Wx::TextCtrl->new( $parent, $main::PHOTO_PROPERTIES_AUTHOR, "", wxDefaultPosition, [-1,-1], 0 );
    113     $item4->AddWindow( $item6, 0, wxEXPAND|wxALIGN_CENTER_VERTICAL|wxALL, 5 );
    114 
    115     my( $item7 ) = Wx::StaticText->new( $parent, $main::COMMENT, "text", wxDefaultPosition, wxDefaultSize, 0 );
    116     $item4->AddWindow( $item7, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
    117 
    118     # adaptive size : stretch factor 1
    119     # the textctrl has a variable line number
    120     my( $item8 ) = Wx::TextCtrl->new( $parent, $main::PHOTO_PROPERTIES_COMMENT, "", wxDefaultPosition, [-1,-1], wxTE_MULTILINE );
    121     $item4->AddWindow( $item8, 1, wxEXPAND|wxALIGN_CENTER_VERTICAL|wxALL, 5 );
    122 
    123     my( $item9 ) = Wx::StaticText->new( $parent, $main::CREATE_DATE, "text", wxDefaultPosition, wxDefaultSize, 0 );
    124     $item4->AddWindow( $item9, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
    125 
    126     my( $item10 ) = Wx::DatePickerCtrl->new( $parent, $main::PHOTO_PROPERTIES_CREATE_DATE, Wx::DateTime->new(), wxDefaultPosition, [200,-1], wxDP_DROPDOWN );
    127     $item4->AddWindow( $item10, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
    128     # adaptive size : stretch factor 3
    129     $topsizer->Add( $item4, 3, wxEXPAND, 5 );
    130 
    131     my( $item11 ) = Wx::BoxSizer->new( wxVERTICAL );
    132    
    133     my( $item12 ) = Wx::StaticText->new( $parent, $main::PRIVACY_LEVEL, "text", wxDefaultPosition, wxDefaultSize, 0 );
    134     $item11->AddWindow( $item12, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
    135 
    136     my( $item13 ) = Wx::Choice->new( $parent, $main::PHOTO_PROPERTIES_PRIVACY_LEVEL, wxDefaultPosition, [-1,-1], [], 0 );
    137     $item11->AddWindow( $item13, 0, wxEXPAND|wxALIGN_CENTER_VERTICAL|wxALL, 5 );
    138 
    139     # adaptive size : stretch factor 1
    140     $topsizer->Add( $item11, 1, wxEXPAND, 5 );
     115
     116    my $topsizer = Wx::BoxSizer->new( wxVERTICAL );
     117
     118    $topsizer->Add(
     119        TextField(
     120            $parent,
     121            $main::CAPTION,
     122            $main::PHOTO_PROPERTIES_CAPTION
     123        ),
     124        0,
     125        wxEXPAND|wxALL,
     126        2
     127    );
     128
     129    $topsizer->Add(
     130        TextField(
     131            $parent,
     132            $main::COMMENT,
     133            $main::PHOTO_PROPERTIES_COMMENT,
     134            1
     135        ),
     136        1,
     137        wxEXPAND|wxALL,
     138        2
     139    );
     140
     141    my $sizer_author_create = Wx::BoxSizer->new( wxVERTICAL );
     142    $sizer_author_create->Add(
     143        TextField(
     144            $parent,
     145            $main::AUTHOR,
     146            $main::PHOTO_PROPERTIES_AUTHOR
     147        ),
     148        1,
     149        wxEXPAND|wxALL,
     150        2
     151    );
     152
     153    $sizer_author_create->Add(
     154        DatepickerField(
     155            $parent,
     156            $main::CREATE_DATE,
     157            $main::PHOTO_PROPERTIES_CREATE_DATE
     158        ),
     159        1,
     160        wxEXPAND|wxALL,
     161        2
     162    );
     163
     164    my $sizer_author_create_privacy = Wx::BoxSizer->new( wxHORIZONTAL );
     165
     166    $sizer_author_create_privacy->Add($sizer_author_create, 0, wxEXPAND|wxALL, 0);
     167
     168    $sizer_author_create_privacy->Add(
     169        ChoiceField(
     170            $parent,
     171            $main::PRIVACY_LEVEL,
     172            $main::PHOTO_PROPERTIES_PRIVACY_LEVEL,
     173            1
     174        ),
     175        1,
     176        wxEXPAND|wxALL,
     177        2
     178    );
     179
     180    $topsizer->Add( $sizer_author_create_privacy, 0, wxEXPAND|wxALL, 2 );
    141181
    142182    $parent->SetSizer( $topsizer );
     
    148188use Wx qw( wxITEM_NORMAL wxITEM_RADIO wxITEM_CHECK );
    149189
     190
     191sub TextField {
     192    my ( $parent, $id_label, $id_textctrl, $expand ) = @_;
     193
     194    $expand ||=0;
     195
     196    my( $sizer ) = Wx::BoxSizer->new( wxVERTICAL );
     197   
     198    $sizer->Add(
     199        Wx::StaticText->new(
     200            $parent,
     201            $id_label,
     202            "text",
     203            wxDefaultPosition,
     204            wxDefaultSize,
     205            0
     206        ),
     207        0,
     208        wxALL,
     209        1
     210    );
     211
     212    $sizer->Add(
     213        Wx::TextCtrl->new(
     214            $parent,
     215            $id_textctrl,
     216            "",
     217            wxDefaultPosition,
     218            [-1,-1],
     219            0
     220        ),
     221        $expand,
     222        wxEXPAND|wxALL,
     223        1
     224    );
     225
     226    $sizer;
     227}
     228
     229sub DatepickerField {
     230    my ( $parent, $id_label, $id_ctrl, $expand ) = @_;
     231
     232    $expand ||=0;
     233
     234    my( $sizer ) = Wx::BoxSizer->new( wxVERTICAL );
     235   
     236    $sizer->Add(
     237        Wx::StaticText->new(
     238            $parent,
     239            $id_label,
     240            "text",
     241            wxDefaultPosition,
     242            wxDefaultSize,
     243            0
     244        ),
     245        0,
     246        wxALL,
     247        1
     248    );
     249
     250    $sizer->Add(
     251        Wx::DatePickerCtrl->new(
     252            $parent,
     253            $id_ctrl,
     254            Wx::DateTime->new(),
     255            wxDefaultPosition,
     256            [200,-1],
     257            wxDP_DROPDOWN
     258        ),
     259        $expand,
     260        wxEXPAND|wxALL,
     261        1
     262    );
     263
     264    $sizer;
     265}
     266
     267sub ChoiceField {
     268    my ( $parent, $id_label, $id_ctrl, $expand ) = @_;
     269
     270    $expand ||=0;
     271
     272    my( $sizer ) = Wx::BoxSizer->new( wxVERTICAL );
     273
     274    $expand||=0;
     275   
     276    $sizer->Add(
     277        Wx::StaticText->new(
     278            $parent,
     279            $id_label,
     280            "text",
     281            wxDefaultPosition,
     282            wxDefaultSize,
     283            0
     284        ),
     285        0,
     286        wxALL,
     287        1
     288    );
     289
     290    $sizer->Add(
     291        Wx::Choice->new(
     292            $parent,
     293            $id_ctrl,
     294            wxDefaultPosition,
     295            [-1,-1],
     296            [],
     297            0
     298        ),
     299        1,
     300        wxEXPAND|wxALL,
     301        1
     302    );
     303
     304    $sizer;
     305}
     306
     307sub _multi_selection_mode_panel_layout{
     308    my ( $panel ) = @_;
     309
     310    my( $item0 ) = Wx::BoxSizer->new( wxVERTICAL );
     311
     312    my $fb = Wx::Font->new( 10, wxFONTFAMILY_SWISS, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_BOLD );
     313    my $fn = Wx::Font->new( 10, wxFONTFAMILY_SWISS, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_NORMAL );
     314
     315    $panel->{_text1} = Wx::StaticText->new( $panel, -1, "Text", wxDefaultPosition, wxDefaultSize, 0 );
     316    $panel->{_text1}->SetFont($fb);
     317    $item0->Add( $panel->{_text1}, 0, wxALIGN_LEFT|wxALL, 1 );
     318
     319   
     320    $panel->{_text2} = Wx::StaticText->new( $panel, -1, "Text", wxDefaultPosition, wxDefaultSize, 0 );
     321    $panel->{_text2}->SetFont($fn);
     322    $item0->Add( $panel->{_text2}, 0, wxALIGN_LEFT|wxALL, 1 );
     323
     324    $panel->SetSizer( $item0 );
     325    $item0->SetSizeHints( $panel );
     326
     327}
Note: See TracChangeset for help on using the changeset viewer.