fix sizing of extra control

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@55004 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Paul Cornett
2008-08-07 06:51:10 +00:00
parent 99749f85a1
commit f1d5aa4eca
2 changed files with 15 additions and 8 deletions

View File

@@ -7,8 +7,8 @@
// Licence: wxWindows licence // Licence: wxWindows licence
///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////
#ifndef __GTKFILEDLGH__ #ifndef _WX_GTKFILEDLG_H_
#define __GTKFILEDLGH__ #define _WX_GTKFILEDLG_H_
#include "wx/gtk/filectrl.h" // for wxGtkFileChooser #include "wx/gtk/filectrl.h" // for wxGtkFileChooser
@@ -60,11 +60,13 @@ protected:
private: private:
DECLARE_DYNAMIC_CLASS(wxFileDialog)
DECLARE_EVENT_TABLE()
void OnFakeOk( wxCommandEvent &event ); void OnFakeOk( wxCommandEvent &event );
void OnSize(wxSizeEvent&);
wxGtkFileChooser m_fc; wxGtkFileChooser m_fc;
DECLARE_DYNAMIC_CLASS(wxFileDialog)
DECLARE_EVENT_TABLE()
}; };
#endif // __GTKFILEDLGH__ #endif // _WX_GTKFILEDLG_H_

View File

@@ -145,6 +145,7 @@ IMPLEMENT_DYNAMIC_CLASS(wxFileDialog,wxFileDialogBase)
BEGIN_EVENT_TABLE(wxFileDialog,wxFileDialogBase) BEGIN_EVENT_TABLE(wxFileDialog,wxFileDialogBase)
EVT_BUTTON(wxID_OK, wxFileDialog::OnFakeOk) EVT_BUTTON(wxID_OK, wxFileDialog::OnFakeOk)
EVT_SIZE(wxFileDialog::OnSize)
END_EVENT_TABLE() END_EVENT_TABLE()
wxFileDialog::wxFileDialog(wxWindow *parent, const wxString& message, wxFileDialog::wxFileDialog(wxWindow *parent, const wxString& message,
@@ -294,9 +295,7 @@ int wxFileDialog::ShowModal()
{ {
GtkWidget *control = m_extraControl->m_widget; GtkWidget *control = m_extraControl->m_widget;
// see wxNotebook::InsertPage() for explaination wxASSERT(control->parent == NULL);
// why gtk_widget_unparent() is not used here
control->parent = NULL;
gtk_widget_show(control); gtk_widget_show(control);
gtk_file_chooser_set_extra_widget(GTK_FILE_CHOOSER(m_widget), control); gtk_file_chooser_set_extra_widget(GTK_FILE_CHOOSER(m_widget), control);
@@ -311,6 +310,12 @@ void wxFileDialog::DoSetSize(int WXUNUSED(x), int WXUNUSED(y),
{ {
} }
void wxFileDialog::OnSize(wxSizeEvent&)
{
// avoid calling DoLayout(), which will set the (wrong) size of
// m_extraControl, its size is managed by GtkFileChooser
}
wxString wxFileDialog::GetPath() const wxString wxFileDialog::GetPath() const
{ {
return m_fc.GetPath(); return m_fc.GetPath();