]> git.saurik.com Git - wxWidgets.git/blobdiff - src/generic/filedlgg.cpp
Added wxDF_HTML
[wxWidgets.git] / src / generic / filedlgg.cpp
index 3132890a00793859f98b97878d928c444f266fa8..3b81bef0dc2d1f198e5210368c7cb847de9d1dc2 100644 (file)
@@ -46,6 +46,7 @@
 #include "wx/config.h"
 #include "wx/imaglist.h"
 #include "wx/dir.h"
+#include "wx/artprov.h"
 
 #if wxUSE_TOOLTIPS
     #include "wx/tooltip.h"
 # include <time.h>
 #include <unistd.h>
 
-#ifndef __DOS__
-#include "wx/generic/home.xpm"
-#endif
-#include "wx/generic/listview.xpm"
-#include "wx/generic/repview.xpm"
-#include "wx/generic/new_dir.xpm"
-#include "wx/generic/dir_up.xpm"
-#include "wx/generic/folder.xpm"
-#include "wx/generic/deffile.xpm"
-#include "wx/generic/exefile.xpm"
-
 //-----------------------------------------------------------------------------
 //  wxFileData
 //-----------------------------------------------------------------------------
@@ -139,7 +129,7 @@ public:
     void ChangeToIconMode();
     void ShowHidden( bool show = TRUE );
     long Add( wxFileData *fd, wxListItem &item );
-    void Update();
+    void UpdateFiles();
     virtual void StatusbarText( wxChar *WXUNUSED(text) ) {};
     void MakeDir();
     void GoToParentDir();
@@ -206,11 +196,14 @@ wxFileIconsTable::wxFileIconsTable() :
                     m_HashTable(wxKEY_STRING)
 {
     m_HashTable.DeleteContents(TRUE);
-    m_ImageList.Add(wxBitmap(folder_xpm));  // FI_FOLDER
-    m_ImageList.Add(wxBitmap(deffile_xpm)); // FI_UNKNOWN
+    // FI_FOLDER:
+    m_ImageList.Add(wxArtProvider::GetBitmap(wxART_FOLDER, wxART_CMN_DIALOG));
+    // FI_UNKNOWN:
+    m_ImageList.Add(wxArtProvider::GetBitmap(wxART_NORMAL_FILE, wxART_CMN_DIALOG)); 
+    // FI_EXECUTABLE:
     if (GetIconID(wxEmptyString, _T("application/x-executable")) == FI_UNKNOWN)
-    {                                       // FI_EXECUTABLE
-        m_ImageList.Add(wxBitmap(exefile_xpm));
+    {
+        m_ImageList.Add(wxArtProvider::GetBitmap(wxART_EXECUTABLE_FILE, wxART_CMN_DIALOG));
         m_HashTable.Delete(_T("exe"));
         m_HashTable.Put(_T("exe"), new wxFileIconEntry(FI_EXECUTABLE));
     }
@@ -270,7 +263,7 @@ static wxBitmap CreateAntialiasedBitmap(const wxImage& img)
         p1 += 32 * 3, p2 += 32 * 3;
     }
 
-    return small.ConvertToBitmap();
+    return wxBitmap(small);
 }
 
 // finds empty borders and return non-empty area of image:
@@ -339,12 +332,12 @@ int wxFileIconsTable::GetIconID(const wxString& extension, const wxString& mime)
         m_HashTable.Put(extension, new wxFileIconEntry(newid));
         return newid;
     }
-    wxImage img(ic);
+    wxImage img = ic.ConvertToImage();
     delete ft;
 
     int id = m_ImageList.GetImageCount();
     if (img.GetWidth() == 16 && img.GetHeight() == 16)
-        m_ImageList.Add(img.ConvertToBitmap());
+        m_ImageList.Add(wxBitmap(img));
     else
     {
         if (img.GetWidth() != 32 || img.GetHeight() != 32)
@@ -624,31 +617,31 @@ wxFileCtrl::wxFileCtrl(wxWindow *win, wxWindowID id,
     m_dirName = dirName;
     m_wild = wild;
     m_showHidden = FALSE;
-    Update();
+    UpdateFiles();
 }
 
 void wxFileCtrl::ChangeToListMode()
 {
     SetSingleStyle( wxLC_LIST );
-    Update();
+    UpdateFiles();
 }
 
 void wxFileCtrl::ChangeToReportMode()
 {
     SetSingleStyle( wxLC_REPORT );
-    Update();
+    UpdateFiles();
 }
 
 void wxFileCtrl::ChangeToIconMode()
 {
     SetSingleStyle( wxLC_ICON );
-    Update();
+    UpdateFiles();
 }
 
 void wxFileCtrl::ShowHidden( bool show )
 {
     m_showHidden = show;
-    Update();
+    UpdateFiles();
 }
 
 long wxFileCtrl::Add( wxFileData *fd, wxListItem &item )
@@ -675,7 +668,7 @@ long wxFileCtrl::Add( wxFileData *fd, wxListItem &item )
     return ret;
 }
 
-void wxFileCtrl::Update()
+void wxFileCtrl::UpdateFiles()
 {
     wxBusyCursor bcur; // this may take a while...
     
@@ -800,7 +793,7 @@ void wxFileCtrl::Update()
 void wxFileCtrl::SetWild( const wxString &wild )
 {
     m_wild = wild;
-    Update();
+    UpdateFiles();
 }
 
 void wxFileCtrl::MakeDir()
@@ -862,7 +855,7 @@ void wxFileCtrl::GoToParentDir()
         if (m_dirName.IsEmpty()) 
             m_dirName = wxT("/");
 #endif
-        Update();
+        UpdateFiles();
         long id = FindItem( 0, fname );
         if (id != -1)
         {
@@ -881,7 +874,7 @@ void wxFileCtrl::GoToHomeDir()
 void wxFileCtrl::GoToDir( const wxString &dir )
 {
     m_dirName = dir;
-    Update();
+    UpdateFiles();
     SetItemState( 0, wxLIST_STATE_SELECTED, wxLIST_STATE_SELECTED );
     EnsureVisible( 0 );
 }
@@ -1066,13 +1059,15 @@ wxFileDialog::wxFileDialog(wxWindow *parent,
 
     wxBitmapButton *but;
 
-    but = new wxBitmapButton( this, ID_LIST_MODE, wxBitmap( listview_xpm ) );
+    but = new wxBitmapButton(this, ID_LIST_MODE, 
+                             wxArtProvider::GetBitmap(wxART_LIST_VIEW, wxART_CMN_DIALOG));
 #if wxUSE_TOOLTIPS
     but->SetToolTip( _("View files as a list view") );
 #endif
     buttonsizer->Add( but, 0, wxALL, 5 );
 
-    but = new wxBitmapButton( this, ID_REPORT_MODE, wxBitmap( repview_xpm ) );
+    but = new wxBitmapButton(this, ID_REPORT_MODE,
+                             wxArtProvider::GetBitmap(wxART_REPORT_VIEW, wxART_CMN_DIALOG));
 #if wxUSE_TOOLTIPS
     but->SetToolTip( _("View files as a detailed view") );
 #endif
@@ -1081,14 +1076,16 @@ wxFileDialog::wxFileDialog(wxWindow *parent,
     buttonsizer->Add( 30, 5, 1 );
 
     wxWindow *butDirUp = 
-        new wxBitmapButton( this, ID_UP_DIR, wxBitmap( dir_up_xpm ) );
+        new wxBitmapButton(this, ID_UP_DIR,
+                           wxArtProvider::GetBitmap(wxART_GO_DIR_UP, wxART_CMN_DIALOG));
 #if wxUSE_TOOLTIPS
     butDirUp->SetToolTip( _("Go to parent directory") );
 #endif
     buttonsizer->Add( butDirUp, 0, wxALL, 5 );
 
 #ifndef __DOS__ // VS: Home directory is meaningless in MS-DOS...
-    but = new wxBitmapButton( this, ID_PARENT_DIR, wxBitmap(home_xpm) );
+    but = new wxBitmapButton(this, ID_PARENT_DIR,
+                             wxArtProvider::GetBitmap(wxART_GO_HOME, wxART_CMN_DIALOG));
 #if wxUSE_TOOLTIPS
     but->SetToolTip( _("Go to home directory") );
 #endif
@@ -1098,16 +1095,23 @@ wxFileDialog::wxFileDialog(wxWindow *parent,
 #endif //!__DOS__
 
     wxWindow *butNewDir = 
-        new wxBitmapButton( this, ID_NEW_DIR, wxBitmap(new_dir_xpm) );
+        new wxBitmapButton(this, ID_NEW_DIR,
+                           wxArtProvider::GetBitmap(wxART_NEW_DIR, wxART_CMN_DIALOG));
 #if wxUSE_TOOLTIPS
     butNewDir->SetToolTip( _("Create new directory") );
 #endif
     buttonsizer->Add( butNewDir, 0, wxALL, 5 );
 
+#ifdef __WXX11__
+    mainsizer->Add( buttonsizer, 0, wxALL | wxEXPAND, 0 );
+#else
     mainsizer->Add( buttonsizer, 0, wxALL | wxEXPAND, 5 );
+#endif
 
     wxBoxSizer *staticsizer = new wxBoxSizer( wxHORIZONTAL );
+#ifndef __WXX11__
     staticsizer->Add( new wxStaticText( this, -1, _("Current directory:") ), 0, wxRIGHT, 10 );
+#endif
     m_static = new wxStaticText( this, -1, m_dir );
     staticsizer->Add( m_static, 1 );
     mainsizer->Add( staticsizer, 0, wxEXPAND | wxLEFT|wxRIGHT|wxBOTTOM, 10 );
@@ -1121,7 +1125,31 @@ wxFileDialog::wxFileDialog(wxWindow *parent,
     m_list->ShowHidden(s_lastShowHidden);
     m_list->SetNewDirControl(butNewDir);
     m_list->SetGoToParentControl(butDirUp);
+
+#ifdef __WXX11__
+    // PDAs have a different screen layout
+    mainsizer->Add( m_list, 1, wxEXPAND | wxLEFT|wxRIGHT, 5 );
+
+    wxBoxSizer *choicesizer = new wxBoxSizer( wxHORIZONTAL );
+    m_choice = new wxChoice( this, ID_CHOICE );
+    choicesizer->Add( m_choice, 1, wxCENTER|wxALL, 5 );
+    mainsizer->Add( choicesizer, 0, wxEXPAND );
     
+    wxBoxSizer *textsizer = new wxBoxSizer( wxHORIZONTAL );
+    m_text = new wxTextCtrl( this, ID_TEXT, m_fileName, wxDefaultPosition, wxDefaultSize, wxPROCESS_ENTER );
+    textsizer->Add( m_text, 1, wxCENTER | wxALL, 5 );
+    mainsizer->Add( textsizer, 0, wxEXPAND );
+
+    m_check = new wxCheckBox( this, ID_CHECK, _("Show hidden files") );
+    m_check->SetValue( s_lastShowHidden );
+    textsizer->Add( m_check, 0, wxCENTER|wxALL, 5 );
+    
+    buttonsizer = new wxBoxSizer( wxHORIZONTAL );
+    buttonsizer->Add( new wxButton( this, wxID_OK, _("OK") ), 0, wxCENTER | wxALL, 5 );
+    buttonsizer->Add( new wxButton( this, wxID_CANCEL, _("Cancel") ), 0, wxCENTER | wxALL, 5 );
+    mainsizer->Add( buttonsizer, 0, wxALIGN_RIGHT );
+
+#else
     mainsizer->Add( m_list, 1, wxEXPAND | wxLEFT|wxRIGHT, 10 );
 
     wxBoxSizer *textsizer = new wxBoxSizer( wxHORIZONTAL );
@@ -1139,6 +1167,8 @@ wxFileDialog::wxFileDialog(wxWindow *parent,
     choicesizer->Add( new wxButton( this, wxID_CANCEL, _("Cancel") ), 0, wxCENTER | wxALL, 10 );
     mainsizer->Add( choicesizer, 0, wxEXPAND );
 
+#endif
+
     m_choice->Append( firstWildText, (void*) new wxString( firstWild ) );
     while (tokens.HasMoreTokens())
     {
@@ -1209,8 +1239,6 @@ void wxFileDialog::OnTextEnter( wxCommandEvent &WXUNUSED(event) )
 
 void wxFileDialog::OnSelected( wxListEvent &event )
 {
-    if (FindFocus() != m_list) return;
-
     wxString filename( event.m_item.m_text );
     if (filename == wxT("..")) return;