Settings.cpp
#include "StdAfx.h"
#include "Settings.h"
using namespace Core;
using namespace System;
using namespace System::Diagnostics;
/// [ Constructor ]
static Settings::Settings()
{
// 現在のフォルダを アプリケーション設定のフォルダに設定する
m_applicationSettingFolder = Environment::CurrentDirectory;
// 現在のフォルダを ユーザー設定のフォルダに設定する
// (フォームデザイナに対応させるために 初期化が必要なため)
m_userSettingFolder = Environment::CurrentDirectory;
Debug::WriteLine( "アプリケーション設定のファルダが設定された : " + m_applicationSettingFolder );
}
/// ユーザー設定のフォルダを取得する [ Property ]
String^ Settings::UserSettingFloder::get()
{
Debug::Assert( m_userSettingFolder != nullptr, "ユーザー設定のフォルダは 定義されている" );
Debug::Assert( m_userSettingFolder != m_applicationSettingFolder, "ユーザー設定のフォルダとアプリケーション設定のフォルダは異なる" );
return m_userSettingFolder;
}
/// 作業フォルダを設定する [ Property ]
void Settings::WorkingFolder::set( System::String^ value )
{
Debug::Assert( m_applicationSettingFolder != value, "アプリケーション設定フォルダとは異なる" );
// フォルダが存在しなければ、それを作成する
IO::Directory::CreateDirectory( value );
// ... 現在のフォルダの設定を変更する
Environment::CurrentDirectory = value;
Debug::WriteLine( "作業フォルダが設定された : " + value );
// ユーザー設定のフォルダを設定する
m_userSettingFolder = IO::Path::Combine( value, UserSettingFolderName );
// ... そのフォルダが存在しないならば、それを作成する
IO::Directory::CreateDirectory( m_userSettingFolder );
}
/// アプリケーションのタイトルを取得する [ Property ]
System::String^ Settings::ApplicationTitle::get()
{
// アプリケーションのタイトルを取得する
System::Reflection::AssemblyTitleAttribute^ title
= safe_cast< System::Reflection::AssemblyTitleAttribute^ >( Attribute::GetCustomAttribute (
System::Reflection::Assembly::GetExecutingAssembly(),
System::Reflection::AssemblyTitleAttribute::typeid
) );
// 自分自身のAssembly を取得する
System::Reflection::Assembly^ assembly = System::Reflection::Assembly::GetExecutingAssembly();
System::Version^ version = assembly->GetName()->Version; // バージョン番号
// バージョン番号のフォーマットを整えて タイトルに連結する
String^ result = title->Title + String::Format( " {0}.{1}.{2}", version->Major, version->Minor, version->Revision );
#ifdef _DEBUG
// デバッグ バージョンならば、タイトルにそれを明示する
result += " < Debug version >";
#endif
return result;
}