Settings.h

#pragma once


namespace Core
{
    /// 設定
    public ref class Settings
    {
    // Construction --------------------------------------------------------
    private:
        static Settings();


    // Attribute ===========================================================

    // static
    private:
        static System::String^ m_applicationSettingFolder;  ///< アプリケーション設定のフォルダ
        static System::String^ m_userSettingFolder;         ///< ユーザー設定のフォルダ

        literal System::String^ UserSettingFolderName = "SettingFiles"; ///< ユーザー設定フォルダの名称
        literal System::String^ ConfigurationFileName = "config.xml";   ///< 構成ファイル名


    // Property ------------------------------------------------------------
    public:

    // static

        /// アプリケーション設定のフォルダ
        static property System::String^ ApplicationSettingFolder
        {
            System::String^ get()
            {
                return m_applicationSettingFolder;
            }
        }

        /// ユーザー設定のフォルダ
        static property System::String^ UserSettingFloder
        {
            System::String^ get();
        }


        /// アプリケーション設定の構成ファイル
        static property System::String^ ApplicationSettingConfigurationFile
        {
            System::String^ get()
            {
                return System::IO::Path::Combine( m_applicationSettingFolder, ConfigurationFileName );
            }
        }

        /// ユーザー設定の構成ファイル
        static property System::String^ UserSettingConfigurationFile
        {
            System::String^ get()
            {
                return System::IO::Path::Combine( m_userSettingFolder, ConfigurationFileName );
            }
        }


        /// 作業フォルダ
        static property System::String^ WorkingFolder
        {
            void set( System::String^ value );
        }


        /// アプリケーションのタイトル
        static property System::String^ ApplicationTitle
        {
            System::String^ get();
        }
    };
}