FileExplorerPanel.h

#pragma once


#include "FileEventArgs.h"


namespace Core
{
    ref class DirectoryTreeView;
    ref class FileListView;


    /// <summary>
    /// ファイル エクスプローラー パネル
    /// </summary>
    public ref class FileExplorerPanel : public WeifenLuo::WinFormsUI::Docking::DockContent
    {
    // Construction --------------------------------------------------------
    public:
        FileExplorerPanel();

    protected:
        ~FileExplorerPanel();


    // Operation -----------------------------------------------------------
    public:
        System::Xml::XmlElement^ SaveSettings( System::Xml::XmlDocument^ document );

        void SaveFile( System::String^ fileName, System::Xml::XmlDocument^ document );
        System::Xml::XmlDocument^ LoadFile( System::String^ name );

        void SelectSpecifiedDirectory( System::String^ absolutePath );

    protected:
        virtual void OnLoad( System::EventArgs^ e ) override;

    private:
        void InitializeComponent( void );


    // static
    public:
        static void SetWorkingFolder();


    // Event ---------------------------------------------------------------
    public:
        event FileEventHandler^ DirectorySelected;
        event FileEventHandler^ FileSelected;


    // Event Handler -------------------------------------------------------
    private:
        System::Void DirectoryTreeViewAfterSelect( System::Object^ sender, System::Windows::Forms::TreeViewEventArgs^ e );
        System::Void FileListViewItemActivate( System::Object^ sender, System::EventArgs^ e );


        //
        // 以降は デザイナによって自動生成されたコード
        //


    private: System::Windows::Forms::SplitContainer^ m_splitContainer;
    private: Core::DirectoryTreeView^ m_directoryTreeView;
    private: Core::FileListView^ m_fileListView;
    private: System::Windows::Forms::ImageList^ m_driveImageList;
    private: System::Windows::Forms::ImageList^ m_fileImageList;
    private: System::ComponentModel::IContainer^ components;

    };
}