Ignore:
Timestamp:
Jan 30, 2010, 5:13:16 AM (14 years ago)
Author:
ronosman
Message:

Photo properties layout management. Use adaptive sizes with stretch factors.

File:
1 edited

Legend:

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

    r4779 r4800  
    3030             wxTE_PROCESS_ENTER
    3131             wxRA_SPECIFY_ROWS
     32             wxGROW
     33             wxEXPAND
    3234         /;
    3335
     
    5254        search_result
    5355        previous_autocompleted
    54                 autocomplete_from
    55                 autocomplete_to
    56                 autocomplete_set_selection
     56        autocomplete_from
     57        autocomplete_to
     58        autocomplete_set_selection
    5759      /
    5860);
    59 
    60 use Wx::Event qw(EVT_CHECKLISTBOX EVT_LISTBOX EVT_SEARCHCTRL_SEARCH_BTN EVT_SEARCHCTRL_CANCEL_BTN
    61                  EVT_TEXT EVT_TEXT_ENTER EVT_IDLE EVT_RADIOBOX);
    6261
    6362
     
    7473    $self->Refresh;
    7574
    76     EVT_CHECKLISTBOX( $self, $self->listchoices, \&OnCheck );
    77     EVT_LISTBOX( $self, $self->listchoices, \&OnSelected );
    78     EVT_SEARCHCTRL_SEARCH_BTN( $self, $self->search, \&OnSearch );
    79     EVT_SEARCHCTRL_CANCEL_BTN( $self, $self->search, \&OnCancel );
    80     EVT_TEXT( $self, $self->search, \&OnSearch );
    81     EVT_TEXT_ENTER( $self, $self->search, \&OnSearchEnter );
    82     EVT_RADIOBOX( $self, $self->btn_show, \&OnShow );
    83         # fix for linux : can not call SetSelection before the current event is processed.
    84         # call when idle
    85         EVT_IDLE(
    86             $self,
    87                 sub {
    88                     my ($self, $event)=@_;
    89                         $self->search->SetSelection(
    90                             $self->autocomplete_from,
    91                             $self->autocomplete_to
    92                         ) if $self->autocomplete_set_selection;
    93                         $self->autocomplete_set_selection(0);
    94                 }
    95         );
     75    Wx::Event::EVT_CHECKLISTBOX( $self, $self->listchoices, \&OnCheck );
     76    Wx::Event::EVT_LISTBOX( $self, $self->listchoices, \&OnSelected );
     77    Wx::Event::EVT_SEARCHCTRL_SEARCH_BTN( $self, $self->search, \&OnSearch );
     78    Wx::Event::EVT_SEARCHCTRL_CANCEL_BTN( $self, $self->search, \&OnCancel );
     79    Wx::Event::EVT_TEXT( $self, $self->search, \&OnSearch );
     80    Wx::Event::EVT_TEXT_ENTER( $self, $self->search, \&OnSearchEnter );
     81    Wx::Event::EVT_RADIOBOX( $self, $self->btn_show, \&OnShow );
     82    # fix for linux : can not call SetSelection before the current event is processed.
     83    # call when idle
     84    Wx::Event::EVT_IDLE(
     85        $self,
     86        sub {
     87            my ($self, $event)=@_;
     88            $self->search->SetSelection(
     89                $self->autocomplete_from,
     90                $self->autocomplete_to
     91            ) if $self->autocomplete_set_selection;
     92            $self->autocomplete_set_selection(0);
     93        }
     94    );
    9695
    9796    $self;
     
    9998
    10099sub _init_properties {
    101     my ( $self, $params ) = @_; 
    102        
     100    my ( $self, $params ) = @_;   
     101   
    103102    $self->choices(
    104103        $params->{choices}|| sub { [] }
     
    132131
    133132sub _init_panel {
    134     my ( $self ) = @_; 
     133    my ( $self ) = @_;   
    135134
    136135    my( $vsizer ) = Wx::BoxSizer->new( wxVERTICAL );
    137136   
    138137    $self->search(
    139         Wx::SearchCtrl->new( $self, -1, "", wxDefaultPosition, [320,-1],wxTE_PROCESS_ENTER )
     138        Wx::SearchCtrl->new( $self, -1, "", wxDefaultPosition, [-1,-1],wxTE_PROCESS_ENTER )
    140139    );
    141140
    142141    $self->search->ShowCancelButton( 1 );
    143142
    144     $vsizer->AddWindow( $self->search, 0, wxALIGN_CENTER_VERTICAL|wxALL, 2 );
     143    $vsizer->AddWindow( $self->search, 0, wxEXPAND|wxALIGN_CENTER_VERTICAL|wxALL, 2 );
    145144
    146145    $self->btn_show(
    147         Wx::RadioBox->new( $self, -1, sprintf("%s :", gettext("Show")), wxDefaultPosition, [320, -1],
     146        Wx::RadioBox->new( $self, -1, sprintf("%s :", gettext("Show")), wxDefaultPosition, [-1, -1],
    148147            [gettext("All"),gettext("Selected"),gettext("Not selected")] , 1, wxRA_SPECIFY_ROWS )
    149148    );
    150     $vsizer->AddWindow( $self->btn_show, 0, wxALIGN_CENTER_VERTICAL|wxALL, 2 );
     149    $vsizer->AddWindow( $self->btn_show, 0, wxEXPAND|wxALIGN_CENTER_VERTICAL|wxALL, 2 );
    151150
    152151
    153152    $self->listchoices(
    154         Wx::CheckListBox->new( $self, -1, wxDefaultPosition, [320,200], [], 0 )
    155     );
    156     $vsizer->AddWindow( $self->listchoices, 0, wxALIGN_CENTER_VERTICAL|wxALL, 2 );
     153        Wx::CheckListBox->new( $self, -1, wxDefaultPosition, [-1,-1], [], 0 )
     154    );
     155    $vsizer->AddWindow( $self->listchoices, 1, wxEXPAND|wxALIGN_CENTER_VERTICAL|wxALL, 2 );
    157156
    158157    $self->SetSizer( $vsizer );
     158    $vsizer->SetSizeHints( $self );
    159159         
    160     $vsizer->SetSizeHints( $self );
    161160}
    162161
     
    164163    my ( $self, $choices ) = @_;
    165164
    166         $self->listchoices->Freeze;
     165    $self->listchoices->Freeze;
    167166    $self->listchoices->Clear;
    168167    $self->id_lookup({});
     
    174173    #print Dumper $self->properties;
    175174    map {
    176         $self->listchoices->Append(
    177             $_->{name},
    178         );
     175        $self->listchoices->Append(
     176            $_->{name},
     177        );
    179178        $self->id_lookup->{$row} = $_->{id};
    180179        $self->row_lookup->{$_->{id}} = $row;
    181180        $self->id_from_name->{$_->{name}} = $_->{id};
    182         $row++;
     181        $row++;   
    183182    }@{$choices};
    184         $self->listchoices->Thaw;
     183    $self->listchoices->Thaw;
    185184
    186185}
     
    198197    $self->_init_choices($choices);
    199198    $self->SetSelection($selected);
    200        
     199   
    201200}
    202201
     
    209208    $self->listchoices->Freeze;
    210209    map {
    211         $self->listchoices->Check($row, 0) ;   
    212         $row++;
     210        $self->listchoices->Check($row, 0) ;   
     211        $row++;
    213212    }@$choices;
    214213    $self->listchoices->Thaw;
     
    224223    $self->listchoices->Freeze;
    225224    map {
    226         $self->listchoices->Check(
    227             $self->row_lookup->{$_},
    228             exists $self->row_lookup->{$_},
    229         ) if defined $self->row_lookup->{$_};
    230         $self->is_selected->{$_} = 1;   
    231     }
    232     @{$selection};     
     225        $self->listchoices->Check(
     226            $self->row_lookup->{$_},
     227            exists $self->row_lookup->{$_},
     228        ) if defined $self->row_lookup->{$_};
     229        $self->is_selected->{$_} = 1;   
     230    }
     231    @{$selection};   
    233232    $self->listchoices->Thaw;
    234233}
     
    244243           
    245244        my $id = $self->id_lookup->{$row};
    246         $self->is_selected->{$id} = $self->listchoices->IsChecked($row) ;       
    247         $row++;
     245        $self->is_selected->{$id} = $self->listchoices->IsChecked($row) ;   
     246        $row++;
    248247    }@$choices;
    249248
    250249    [
    251250        grep { $self->is_selected->{$_} } keys %{$self->is_selected}
    252     ]; 
     251    ];   
    253252}
    254253
     
    258257    $self->selection->(
    259258        $self->GetSelection
    260     ); 
     259    );   
    261260}
    262261
     
    321320
    322321sub _refresh_selected_searched {
    323     my ( $self, $searched ) = @_;       
     322    my ( $self, $searched ) = @_;       
    324323
    325324    $self->Refresh;
     
    348347    # autocompletion
    349348    if(1== scalar @{$self->search_result}){
    350         my $value = $self->search_result->[0]->{name};
    351         unless(  $value eq $self->previous_autocompleted ){
    352             $self->autocomplete_from(
    353                             $self->search->GetLastPosition
    354                     );
    355             $self->search->ChangeValue($value);
    356             $self->autocomplete_to(
    357                             $self->search->GetLastPosition
    358                     );
    359             $self->autocomplete_set_selection(1);
    360             $self->previous_autocompleted($value);
    361         }       
     349        my $value = $self->search_result->[0]->{name};
     350        unless(  $value eq $self->previous_autocompleted ){
     351            $self->autocomplete_from(
     352                $self->search->GetLastPosition
     353            );
     354            $self->search->ChangeValue($value);
     355            $self->autocomplete_to(
     356                $self->search->GetLastPosition
     357            );
     358            $self->autocomplete_set_selection(1);
     359            $self->previous_autocompleted($value);
     360        }   
    362361    }
    363362    else{
    364         $self->previous_autocompleted(undef);
    365     }
    366        
    367         $event->Skip;
     363        $self->previous_autocompleted(undef);
     364    }
     365   
     366    $event->Skip;
    368367}
    369368
     
    389388
    390389sub _show_notselected {
    391     my ( $self ) = @_; 
     390    my ( $self ) = @_;   
    392391
    393392    $self->Refresh(
     
    397396
    398397sub _show_selected {
    399     my ( $self ) = @_; 
     398    my ( $self ) = @_;   
    400399
    401400    $self->Refresh(
     
    405404
    406405sub _show_all {
    407     my ( $self ) = @_; 
     406    my ( $self ) = @_;   
    408407
    409408    $self->Refresh(
     
    418417    [
    419418        grep { $self->is_selected->{$_->{id}} } @$choices
    420     ]   
     419    ]   
    421420}
    422421
     
    427426    [
    428427        grep { !$self->is_selected->{$_->{id}} } @$choices
    429     ]   
     428    ]   
    430429}
    431430
Note: See TracChangeset for help on using the changeset viewer.