Changeset 4800 for extensions/pLoader/trunk/src/Uploader
- Timestamp:
- Jan 30, 2010, 5:13:16 AM (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
extensions/pLoader/trunk/src/Uploader/GUI/wxChoiceFilteredPanel.pm
r4779 r4800 30 30 wxTE_PROCESS_ENTER 31 31 wxRA_SPECIFY_ROWS 32 wxGROW 33 wxEXPAND 32 34 /; 33 35 … … 52 54 search_result 53 55 previous_autocompleted 54 55 56 56 autocomplete_from 57 autocomplete_to 58 autocomplete_set_selection 57 59 / 58 60 ); 59 60 use Wx::Event qw(EVT_CHECKLISTBOX EVT_LISTBOX EVT_SEARCHCTRL_SEARCH_BTN EVT_SEARCHCTRL_CANCEL_BTN61 EVT_TEXT EVT_TEXT_ENTER EVT_IDLE EVT_RADIOBOX);62 61 63 62 … … 74 73 $self->Refresh; 75 74 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 84 85 86 87 88 89 90 91 92 93 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 ); 96 95 97 96 $self; … … 99 98 100 99 sub _init_properties { 101 my ( $self, $params ) = @_; 102 100 my ( $self, $params ) = @_; 101 103 102 $self->choices( 104 103 $params->{choices}|| sub { [] } … … 132 131 133 132 sub _init_panel { 134 my ( $self ) = @_; 133 my ( $self ) = @_; 135 134 136 135 my( $vsizer ) = Wx::BoxSizer->new( wxVERTICAL ); 137 136 138 137 $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 ) 140 139 ); 141 140 142 141 $self->search->ShowCancelButton( 1 ); 143 142 144 $vsizer->AddWindow( $self->search, 0, wx ALIGN_CENTER_VERTICAL|wxALL, 2 );143 $vsizer->AddWindow( $self->search, 0, wxEXPAND|wxALIGN_CENTER_VERTICAL|wxALL, 2 ); 145 144 146 145 $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], 148 147 [gettext("All"),gettext("Selected"),gettext("Not selected")] , 1, wxRA_SPECIFY_ROWS ) 149 148 ); 150 $vsizer->AddWindow( $self->btn_show, 0, wx ALIGN_CENTER_VERTICAL|wxALL, 2 );149 $vsizer->AddWindow( $self->btn_show, 0, wxEXPAND|wxALIGN_CENTER_VERTICAL|wxALL, 2 ); 151 150 152 151 153 152 $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 ); 157 156 158 157 $self->SetSizer( $vsizer ); 158 $vsizer->SetSizeHints( $self ); 159 159 160 $vsizer->SetSizeHints( $self );161 160 } 162 161 … … 164 163 my ( $self, $choices ) = @_; 165 164 166 165 $self->listchoices->Freeze; 167 166 $self->listchoices->Clear; 168 167 $self->id_lookup({}); … … 174 173 #print Dumper $self->properties; 175 174 map { 176 177 178 175 $self->listchoices->Append( 176 $_->{name}, 177 ); 179 178 $self->id_lookup->{$row} = $_->{id}; 180 179 $self->row_lookup->{$_->{id}} = $row; 181 180 $self->id_from_name->{$_->{name}} = $_->{id}; 182 $row++;181 $row++; 183 182 }@{$choices}; 184 183 $self->listchoices->Thaw; 185 184 186 185 } … … 198 197 $self->_init_choices($choices); 199 198 $self->SetSelection($selected); 200 199 201 200 } 202 201 … … 209 208 $self->listchoices->Freeze; 210 209 map { 211 $self->listchoices->Check($row, 0) ; 212 210 $self->listchoices->Check($row, 0) ; 211 $row++; 213 212 }@$choices; 214 213 $self->listchoices->Thaw; … … 224 223 $self->listchoices->Freeze; 225 224 map { 226 227 228 229 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}; 233 232 $self->listchoices->Thaw; 234 233 } … … 244 243 245 244 my $id = $self->id_lookup->{$row}; 246 $self->is_selected->{$id} = $self->listchoices->IsChecked($row) ; 247 245 $self->is_selected->{$id} = $self->listchoices->IsChecked($row) ; 246 $row++; 248 247 }@$choices; 249 248 250 249 [ 251 250 grep { $self->is_selected->{$_} } keys %{$self->is_selected} 252 ]; 251 ]; 253 252 } 254 253 … … 258 257 $self->selection->( 259 258 $self->GetSelection 260 ); 259 ); 261 260 } 262 261 … … 321 320 322 321 sub _refresh_selected_searched { 323 my ( $self, $searched ) = @_; 322 my ( $self, $searched ) = @_; 324 323 325 324 $self->Refresh; … … 348 347 # autocompletion 349 348 if(1== scalar @{$self->search_result}){ 350 351 352 353 354 355 356 357 358 359 360 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 } 362 361 } 363 362 else{ 364 365 } 366 367 363 $self->previous_autocompleted(undef); 364 } 365 366 $event->Skip; 368 367 } 369 368 … … 389 388 390 389 sub _show_notselected { 391 my ( $self ) = @_; 390 my ( $self ) = @_; 392 391 393 392 $self->Refresh( … … 397 396 398 397 sub _show_selected { 399 my ( $self ) = @_; 398 my ( $self ) = @_; 400 399 401 400 $self->Refresh( … … 405 404 406 405 sub _show_all { 407 my ( $self ) = @_; 406 my ( $self ) = @_; 408 407 409 408 $self->Refresh( … … 418 417 [ 419 418 grep { $self->is_selected->{$_->{id}} } @$choices 420 ] 419 ] 421 420 } 422 421 … … 427 426 [ 428 427 grep { !$self->is_selected->{$_->{id}} } @$choices 429 ] 428 ] 430 429 } 431 430
Note: See TracChangeset
for help on using the changeset viewer.