1/////////////////////////////////////////////////////////////////////////////// 2// Name: src/generic/filepickerg.cpp 3// Purpose: wxGenericFileDirButton class implementation 4// Author: Francesco Montorsi 5// Modified by: 6// Created: 15/04/2006 7// RCS-ID: $Id: filepickerg.cpp 52835 2008-03-26 15:49:08Z JS $ 8// Copyright: (c) Francesco Montorsi 9// Licence: wxWindows licence 10/////////////////////////////////////////////////////////////////////////////// 11 12// ============================================================================ 13// declarations 14// ============================================================================ 15 16// ---------------------------------------------------------------------------- 17// headers 18// ---------------------------------------------------------------------------- 19 20// For compilers that support precompilation, includes "wx.h". 21#include "wx/wxprec.h" 22 23#ifdef __BORLANDC__ 24 #pragma hdrstop 25#endif 26 27#if wxUSE_FILEPICKERCTRL || wxUSE_DIRPICKERCTRL 28 29#include "wx/filepicker.h" 30 31 32// ============================================================================ 33// implementation 34// ============================================================================ 35 36IMPLEMENT_DYNAMIC_CLASS(wxGenericFileButton, wxButton) 37IMPLEMENT_DYNAMIC_CLASS(wxGenericDirButton, wxButton) 38 39// ---------------------------------------------------------------------------- 40// wxGenericFileButton 41// ---------------------------------------------------------------------------- 42 43bool wxGenericFileDirButton::Create( wxWindow *parent, wxWindowID id, 44 const wxString &label, const wxString &path, 45 const wxString &message, const wxString &wildcard, 46 const wxPoint &pos, const wxSize &size, long style, 47 const wxValidator& validator, const wxString &name) 48{ 49 // create this button 50 if (!wxButton::Create(parent, id, label, pos, size, style, 51 validator, name)) 52 { 53 wxFAIL_MSG( wxT("wxGenericFileButton creation failed") ); 54 return false; 55 } 56 57 // and handle user clicks on it 58 Connect(GetId(), wxEVT_COMMAND_BUTTON_CLICKED, 59 wxCommandEventHandler(wxGenericFileDirButton::OnButtonClick), 60 NULL, this); 61 62 // create the dialog associated with this button 63 m_path = path; 64 m_message = message; 65 m_wildcard = wildcard; 66 67 return true; 68} 69 70void wxGenericFileDirButton::OnButtonClick(wxCommandEvent& WXUNUSED(ev)) 71{ 72 wxDialog *p = CreateDialog(); 73 if (p->ShowModal() == wxID_OK) 74 { 75 // save updated path in m_path 76 UpdatePathFromDialog(p); 77 78 // fire an event 79 wxFileDirPickerEvent event(GetEventType(), this, GetId(), m_path); 80 GetEventHandler()->ProcessEvent(event); 81 } 82 83 wxDELETE(p); 84} 85 86#endif // wxUSE_FILEPICKERCTRL || wxUSE_DIRPICKERCTRL 87