Changeset 11119


Ignore:
Timestamp:
03/15/10 04:49:39 (2 years ago)
Author:
azawawi
Message:

Fixed the Padre survey dialog to be a bit more elegant

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Padre/lib/Padre/Wx/Dialog/WhereFrom.pm

    r11116 r11119  
    3131 
    3232    # Minimum dialog size 
    33     $dialog->SetMinSize( [ 200, 300 ] ); 
     33    $dialog->SetMinSize( [ 350, 100 ] ); 
    3434 
    3535    # Create sizer that will host all controls 
     
    4747    $dialog->CentreOnParent; 
    4848 
    49     $dialog->{combo}->SetFocus; 
     49    $dialog->{wherefrom}->SetFocus; 
    5050    $dialog->Show(1); 
    5151 
     
    5454 
    5555sub _create_controls { 
    56     my $dialog = shift; 
     56    my ($dialog, $sizer) = @_; 
    5757 
    5858    # "Where did you hear..." label 
    59     my $label = Wx::StaticText->new( $dialog, -1, Wx::gettext('Where did you hear about Padre?') ); 
     59    my $wherefrom_label = Wx::StaticText->new(  
     60        $dialog,  
     61        -1,  
     62        Wx::gettext('Where did you hear about Padre?') 
     63    ); 
    6064 
    61     my $options = [    
     65    my $choices = [ 
    6266        'Google', 
    6367        Wx::gettext('Other searchengine'), 
     
    7074    ]; 
    7175     
    72     $dialog->{combo} = Wx::ComboBox->new( $dialog, -1, '' ); 
     76    $dialog->{wherefrom} = Wx::ComboBox->new(  
     77        $dialog,  
     78        -1,  
     79        '',  
     80        Wx::wxDefaultPosition, 
     81        Wx::wxDefaultSize, 
     82        $choices 
     83    ); 
    7384     
    7485    # OK button 
     
    8495    ); 
    8596     
     97    # where from...? sizer 
     98    my $wherefrom_sizer = Wx::BoxSizer->new(Wx::wxHORIZONTAL); 
     99    $wherefrom_sizer->Add( $wherefrom_label,, 0, Wx::wxALIGN_CENTER_VERTICAL, 5 ); 
     100    $wherefrom_sizer->AddSpacer(5); 
     101    $wherefrom_sizer->Add( $dialog->{wherefrom}, 1, Wx::wxALIGN_CENTER_VERTICAL, 5 ); 
     102 
     103    # Button sizer 
     104    my $button_sizer = Wx::BoxSizer->new(Wx::wxHORIZONTAL); 
     105    $button_sizer->Add( $dialog->{button_ok},   0, 0,          0 ); 
     106    $button_sizer->Add( $dialog->{button_cancel}, 0, Wx::wxLEFT, 5 ); 
     107    $button_sizer->AddSpacer(5); 
     108 
     109    # Main vertical sizer 
     110    my $vsizer = Wx::BoxSizer->new(Wx::wxVERTICAL); 
     111    $vsizer->Add( $wherefrom_sizer, 0, Wx::wxALL | Wx::wxEXPAND, 3 ); 
     112    $vsizer->AddSpacer(5); 
     113    $vsizer->Add( $button_sizer, 0, Wx::wxALIGN_RIGHT, 5 ); 
     114    $vsizer->AddSpacer(5); 
     115 
     116    # Wrap with a horizontal sizer to get left/right padding 
     117    $sizer->Add( $vsizer, 1, Wx::wxALL | Wx::wxEXPAND, 5 ); 
    86118     
     119    return; 
    87120} 
    88121 
     
    90123sub _bind_events { 
    91124    my $dialog = shift; 
    92     Wx::Event::EVT_BUTTON( $dialog, $dialog->{button_ok},     \&WhereFrom_ok_clicked ); 
    93     Wx::Event::EVT_BUTTON( $dialog, $dialog->{button_cancel}, \&WhereFrom_cancel_clicked ); 
     125     
     126    # Ok button 
     127    Wx::Event::EVT_BUTTON(  
     128        $dialog,  
     129        $dialog->{button_ok},      
     130        \&WhereFrom_ok_clicked  
     131    ); 
     132     
     133    # Cancel or Skip feedback button 
     134    Wx::Event::EVT_BUTTON(  
     135        $dialog,  
     136        $dialog->{button_cancel},  
     137        \&WhereFrom_cancel_clicked 
     138    ); 
     139 
     140    return; 
    94141} 
    95142 
     
    105152 
    106153    $dialog->Destroy; 
     154 
     155    return; 
    107156} 
    108157 
     
    113162 
    114163    my $window = $dialog->GetParent; 
    115     my $data   = $dialog->get_data; 
    116164    $dialog->Destroy; 
    117165 
     
    119167 
    120168        my $url  = 'http://padre.perlide.org/wherefrom.cgi'; 
    121         my $args = { from => $data->{_referer_} }; 
     169        my $args = { from => $dialog->{wherefrom}->GetValue }; 
    122170        my $http = Padre::Task::HTTPClient->new( 
    123171            URL   => $url, 
Note: See TracChangeset for help on using the changeset viewer.