Disallow invalid flag combination for wxFileCtrl in Widgets sample
wxFC_SAVE cannot be used with wxFC_MULTIPLE so prevent the user from setting this flag combination. Also rename the event handler for switching between Open and Save modes to indicate what it does.
This commit is contained in:
parent
9be2c3717d
commit
7b2061eaef
@ -83,7 +83,7 @@ protected:
|
|||||||
void OnButtonSetFilename( wxCommandEvent& event );
|
void OnButtonSetFilename( wxCommandEvent& event );
|
||||||
void OnButtonReset( wxCommandEvent& event );
|
void OnButtonReset( wxCommandEvent& event );
|
||||||
void OnCheckBox( wxCommandEvent& event );
|
void OnCheckBox( wxCommandEvent& event );
|
||||||
void OnRadioBox( wxCommandEvent& event );
|
void OnSwitchMode( wxCommandEvent& event );
|
||||||
void OnFileCtrl( wxFileCtrlEvent& event );
|
void OnFileCtrl( wxFileCtrlEvent& event );
|
||||||
|
|
||||||
// reset the control parameters
|
// reset the control parameters
|
||||||
@ -127,7 +127,7 @@ wxBEGIN_EVENT_TABLE( FileCtrlWidgetsPage, WidgetsPage )
|
|||||||
EVT_BUTTON( FileCtrlPage_SetPath, FileCtrlWidgetsPage::OnButtonSetPath )
|
EVT_BUTTON( FileCtrlPage_SetPath, FileCtrlWidgetsPage::OnButtonSetPath )
|
||||||
EVT_BUTTON( FileCtrlPage_SetFilename, FileCtrlWidgetsPage::OnButtonSetFilename )
|
EVT_BUTTON( FileCtrlPage_SetFilename, FileCtrlWidgetsPage::OnButtonSetFilename )
|
||||||
EVT_CHECKBOX( wxID_ANY, FileCtrlWidgetsPage::OnCheckBox )
|
EVT_CHECKBOX( wxID_ANY, FileCtrlWidgetsPage::OnCheckBox )
|
||||||
EVT_RADIOBOX( wxID_ANY, FileCtrlWidgetsPage::OnRadioBox )
|
EVT_RADIOBOX( wxID_ANY, FileCtrlWidgetsPage::OnSwitchMode )
|
||||||
|
|
||||||
EVT_FILECTRL_FILTERCHANGED( wxID_ANY, FileCtrlWidgetsPage::OnFileCtrl )
|
EVT_FILECTRL_FILTERCHANGED( wxID_ANY, FileCtrlWidgetsPage::OnFileCtrl )
|
||||||
EVT_FILECTRL_FOLDERCHANGED( wxID_ANY, FileCtrlWidgetsPage::OnFileCtrl )
|
EVT_FILECTRL_FOLDERCHANGED( wxID_ANY, FileCtrlWidgetsPage::OnFileCtrl )
|
||||||
@ -228,11 +228,22 @@ void FileCtrlWidgetsPage::CreateFileCtrl()
|
|||||||
wxWindowUpdateLocker noUpdates( this );
|
wxWindowUpdateLocker noUpdates( this );
|
||||||
|
|
||||||
long style = GetAttrs().m_defaultFlags;
|
long style = GetAttrs().m_defaultFlags;
|
||||||
style |= m_radioFileCtrlMode->GetSelection() == FileCtrlMode_Open
|
|
||||||
? wxFC_OPEN
|
if ( m_radioFileCtrlMode->GetSelection() == FileCtrlMode_Open )
|
||||||
: wxFC_SAVE;
|
{
|
||||||
if ( m_chkMultiple->IsChecked() )
|
style |= wxFC_OPEN;
|
||||||
style |= wxFC_MULTIPLE;
|
m_chkMultiple->Enable();
|
||||||
|
if ( m_chkMultiple->IsChecked() )
|
||||||
|
style |= wxFC_MULTIPLE;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
style |= wxFC_SAVE;
|
||||||
|
// wxFC_SAVE is incompatible with wxFC_MULTIPLE
|
||||||
|
m_chkMultiple->SetValue(false);
|
||||||
|
m_chkMultiple->Enable(false);
|
||||||
|
}
|
||||||
|
|
||||||
if ( m_chkNoShowHidden->IsChecked() )
|
if ( m_chkNoShowHidden->IsChecked() )
|
||||||
style |= wxFC_NOSHOWHIDDEN;
|
style |= wxFC_NOSHOWHIDDEN;
|
||||||
|
|
||||||
@ -301,7 +312,7 @@ void FileCtrlWidgetsPage::OnCheckBox( wxCommandEvent& WXUNUSED( event ) )
|
|||||||
CreateFileCtrl();
|
CreateFileCtrl();
|
||||||
}
|
}
|
||||||
|
|
||||||
void FileCtrlWidgetsPage::OnRadioBox( wxCommandEvent& WXUNUSED( event ) )
|
void FileCtrlWidgetsPage::OnSwitchMode( wxCommandEvent& WXUNUSED( event ) )
|
||||||
{
|
{
|
||||||
CreateFileCtrl();
|
CreateFileCtrl();
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user