wxString FileDialog::GetPath() const { char *f = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(m_widget)); wxFileName path(wxConvFileName->cMB2WX(f)); g_free(f); if (!path.HasExt()) { if (!(m_dialogStyle & FD_NO_ADD_EXTENSION)) { int filterIndex = GetFilterIndex(); if (filterIndex != -1) { wxStringTokenizer tokenizer(m_patterns[filterIndex], wxT(";")); if (tokenizer.HasMoreTokens()) { wxString extension = tokenizer.GetNextToken().AfterFirst(wxT('.')); if (extension.Right(2) == wxT("*")) { extension = wxEmptyString; } path.SetExt(extension); } } } } return path.GetFullPath(); }
void FileDialog::GTKFilterChanged() { wxFileCtrlEvent event(wxEVT_FILECTRL_FILTERCHANGED, this, GetId()); event.SetFilterIndex(GetFilterIndex()); GetEventHandler()->ProcessEvent(event); }