File Annotation

Not logged in
dcdd144598 2011-02-23        kinaba: #ifndef AFX_ONFIGMANAGER_H__9243DE9D_0F70_40F8_8F90_55436B952B37__INCLUDED_
dcdd144598 2011-02-23        kinaba: #define AFX_ONFIGMANAGER_H__9243DE9D_0F70_40F8_8F90_55436B952B37__INCLUDED_
dcdd144598 2011-02-23        kinaba: #include "editwing/editwing.h"
dcdd144598 2011-02-23        kinaba: #include "OpenSaveDlg.h"
dcdd144598 2011-02-23        kinaba: 
dcdd144598 2011-02-23        kinaba: 
dcdd144598 2011-02-23        kinaba: 
dcdd144598 2011-02-23        kinaba: // アプリケーションメッセージ
dcdd144598 2011-02-23        kinaba: #define GPM_MRUCHANGED WM_APP+0
dcdd144598 2011-02-23        kinaba: 
dcdd144598 2011-02-23        kinaba: //=========================================================================
dcdd144598 2011-02-23        kinaba: //@{ @pkg Gp.Main //@}
dcdd144598 2011-02-23        kinaba: //@{
dcdd144598 2011-02-23        kinaba: //	設定の一元管理
dcdd144598 2011-02-23        kinaba: //
dcdd144598 2011-02-23        kinaba: //	SetDocTypeで切り替えると、文書タイプ依存の項目を内部で
dcdd144598 2011-02-23        kinaba: //	適切に切り替えたり色々します。
dcdd144598 2011-02-23        kinaba: //@}
dcdd144598 2011-02-23        kinaba: //=========================================================================
dcdd144598 2011-02-23        kinaba: 
dcdd144598 2011-02-23        kinaba: class ConfigManager : public ki::Object
dcdd144598 2011-02-23        kinaba: {
dcdd144598 2011-02-23        kinaba: public:
dcdd144598 2011-02-23        kinaba: 
dcdd144598 2011-02-23        kinaba: 	ConfigManager();
dcdd144598 2011-02-23        kinaba: 	~ConfigManager();
dcdd144598 2011-02-23        kinaba: 
dcdd144598 2011-02-23        kinaba: 	//@{ 指定した名前のファイル用の文書タイプをロード //@}
dcdd144598 2011-02-23        kinaba: 	int SetDocType( const ki::Path& fname );
dcdd144598 2011-02-23        kinaba: 
dcdd144598 2011-02-23        kinaba: 	//@{ 指定した番号の文書タイプをロード //@}
dcdd144598 2011-02-23        kinaba: 	void SetDocTypeByMenu( int pos, HMENU m );
dcdd144598 2011-02-23        kinaba: 
dcdd144598 2011-02-23        kinaba: 	//@{ 指定した名前の文書タイプをロード //@}
dcdd144598 2011-02-23        kinaba: 	void SetDocTypeByName( const ki::String& nam );
dcdd144598 2011-02-23        kinaba: 
dcdd144598 2011-02-23        kinaba: 	//@{ メニュー項目作成 //@}
dcdd144598 2011-02-23        kinaba: 	void SetDocTypeMenu( HMENU m, UINT idstart );
dcdd144598 2011-02-23        kinaba: 
dcdd144598 2011-02-23        kinaba: 	//@{ メニュー項目のチェック修正 //@}
dcdd144598 2011-02-23        kinaba: 	void CheckMenu( HMENU m, int pos );
dcdd144598 2011-02-23        kinaba: 
dcdd144598 2011-02-23        kinaba: 	//@{ 設定ダイアログ表示 //@}
dcdd144598 2011-02-23        kinaba: 	bool DoDialog( const ki::Window& parent );
dcdd144598 2011-02-23        kinaba: 
dcdd144598 2011-02-23        kinaba: 	//@{ 生のiniファイル操作オブジェクトを取得 //@}
dcdd144598 2011-02-23        kinaba: 	ki::IniFile& getImpl();
dcdd144598 2011-02-23        kinaba: 
dcdd144598 2011-02-23        kinaba: public:
dcdd144598 2011-02-23        kinaba: 
dcdd144598 2011-02-23        kinaba: 	//@{ Undo回数制限値 //@}
dcdd144598 2011-02-23        kinaba: 	int undoLimit() const;
dcdd144598 2011-02-23        kinaba: 
dcdd144598 2011-02-23        kinaba: 	//@{ 文字数のカウント方法 //@}
dcdd144598 2011-02-23        kinaba: 	bool countByUnicode() const;
dcdd144598 2011-02-23        kinaba: 
dcdd144598 2011-02-23        kinaba: 	//@{ 開く/保存ダイアログに出すフィルタの設定 //@}
dcdd144598 2011-02-23        kinaba: 	const ki::String& txtFileFilter() const;
dcdd144598 2011-02-23        kinaba: 
dcdd144598 2011-02-23        kinaba: 	//@{ 文字数指定時の折り返し文字数 //@}
dcdd144598 2011-02-23        kinaba: 	int wrapWidth() const;
dcdd144598 2011-02-23        kinaba: 
dcdd144598 2011-02-23        kinaba: 	//@{ 折り返し方法 //@}
dcdd144598 2011-02-23        kinaba: 	int wrapType() const;
dcdd144598 2011-02-23        kinaba: 
dcdd144598 2011-02-23        kinaba: 	//@{ 行番号表示する? //@}
dcdd144598 2011-02-23        kinaba: 	bool showLN() const;
dcdd144598 2011-02-23        kinaba: 
dcdd144598 2011-02-23        kinaba: 	//@{ 表示色・フォントなど //@}
dcdd144598 2011-02-23        kinaba: 	const editwing::VConfig& vConfig() const;
dcdd144598 2011-02-23        kinaba: 
dcdd144598 2011-02-23        kinaba: 	//@{ キーワードファイル名(フルパス) //@}
dcdd144598 2011-02-23        kinaba: 	ki::Path kwdFile() const;
dcdd144598 2011-02-23        kinaba: 
dcdd144598 2011-02-23        kinaba: 	//@{ Grep用外部実行ファイル名 //@}
dcdd144598 2011-02-23        kinaba: 	const ki::Path& grepExe() const;
dcdd144598 2011-02-23        kinaba: 
dcdd144598 2011-02-23        kinaba: 	//@{ 同じウインドウで開くモード //@}
dcdd144598 2011-02-23        kinaba: 	bool openSame() const;
dcdd144598 2011-02-23        kinaba: 
dcdd144598 2011-02-23        kinaba: 	//@{ ステータスバー表示 //@}
dcdd144598 2011-02-23        kinaba: 	bool showStatusBar() const;
dcdd144598 2011-02-23        kinaba: 	void ShowStatusBarSwitch();
dcdd144598 2011-02-23        kinaba: 
dcdd144598 2011-02-23        kinaba: public:
dcdd144598 2011-02-23        kinaba: 	//@{ 新規ファイルの文字コードindex //@}
dcdd144598 2011-02-23        kinaba: 	int GetNewfileCsi() const;
dcdd144598 2011-02-23        kinaba: 
dcdd144598 2011-02-23        kinaba: 	//@{ 新規ファイルの改行コード //@}
dcdd144598 2011-02-23        kinaba: 	ki::lbcode GetNewfileLB() const;
dcdd144598 2011-02-23        kinaba: 
dcdd144598 2011-02-23        kinaba: public:
dcdd144598 2011-02-23        kinaba: 	//@{ [最近使ったファイル]へ追加 //@}
dcdd144598 2011-02-23        kinaba: 	void AddMRU( const ki::Path& fname );
dcdd144598 2011-02-23        kinaba: 
dcdd144598 2011-02-23        kinaba: 	//@{ [最近使ったファイル]メニューの構築 //@}
dcdd144598 2011-02-23        kinaba: 	void SetUpMRUMenu( HMENU m, UINT id );
dcdd144598 2011-02-23        kinaba: 
dcdd144598 2011-02-23        kinaba: 	//@{ [最近使ったファイル]取得 //@}
dcdd144598 2011-02-23        kinaba: 	ki::Path GetMRU( int no ) const;
dcdd144598 2011-02-23        kinaba: 
dcdd144598 2011-02-23        kinaba: 	//@{ 対応文字セットリスト取得 //@}
dcdd144598 2011-02-23        kinaba: 	CharSetList& GetCharSetList();
dcdd144598 2011-02-23        kinaba: 
dcdd144598 2011-02-23        kinaba: public:
dcdd144598 2011-02-23        kinaba: 	//@{ ウインドウ位置・サイズ復元処理 //@}
dcdd144598 2011-02-23        kinaba: 	int GetWndX() const;
dcdd144598 2011-02-23        kinaba: 	int GetWndY() const;
dcdd144598 2011-02-23        kinaba: 	int GetWndW() const;
dcdd144598 2011-02-23        kinaba: 	int GetWndH() const;
dcdd144598 2011-02-23        kinaba: 	bool GetWndM() const;
dcdd144598 2011-02-23        kinaba: 	void RememberWnd( ki::Window* wnd );
dcdd144598 2011-02-23        kinaba: 
dcdd144598 2011-02-23        kinaba: private:
dcdd144598 2011-02-23        kinaba: 
dcdd144598 2011-02-23        kinaba: 	ki::IniFile ini_;
dcdd144598 2011-02-23        kinaba: 	bool        sharedConfigMode_;
dcdd144598 2011-02-23        kinaba: 	CharSetList charSets_;
dcdd144598 2011-02-23        kinaba: 
dcdd144598 2011-02-23        kinaba: 	// 全体的な設定
dcdd144598 2011-02-23        kinaba: 	int        undoLimit_;
dcdd144598 2011-02-23        kinaba: 	ki::String txtFilter_;
dcdd144598 2011-02-23        kinaba: 	ki::Path   grepExe_;
dcdd144598 2011-02-23        kinaba: 	bool       openSame_;
dcdd144598 2011-02-23        kinaba: 	bool       countbyunicode_;
dcdd144598 2011-02-23        kinaba: 	bool       showStatusBar_;
dcdd144598 2011-02-23        kinaba: 	bool       rememberWindowSize_;
dcdd144598 2011-02-23        kinaba: 	bool       rememberWindowPlace_;
dcdd144598 2011-02-23        kinaba: 
dcdd144598 2011-02-23        kinaba: 	// ウインドウサイズ記憶
dcdd144598 2011-02-23        kinaba: 	bool wndM_; // maximized?
dcdd144598 2011-02-23        kinaba: 	int  wndX_, wndY_, wndW_, wndH_;
dcdd144598 2011-02-23        kinaba: 
dcdd144598 2011-02-23        kinaba: 	// 文書タイプのリスト
dcdd144598 2011-02-23        kinaba: 	struct DocType
dcdd144598 2011-02-23        kinaba: 	{
dcdd144598 2011-02-23        kinaba: 		// 定義ファイル名など
dcdd144598 2011-02-23        kinaba: 		ki::String        name;
dcdd144598 2011-02-23        kinaba: 		ki::String        pattern;
dcdd144598 2011-02-23        kinaba: 		ki::String        kwdfile;
dcdd144598 2011-02-23        kinaba: 		ki::String        layfile;
dcdd144598 2011-02-23        kinaba: 
dcdd144598 2011-02-23        kinaba: 		// 設定項目
dcdd144598 2011-02-23        kinaba: 		editwing::VConfig vc;
dcdd144598 2011-02-23        kinaba: 		int               wrapType;
dcdd144598 2011-02-23        kinaba: 		int               wrapWidth;
dcdd144598 2011-02-23        kinaba: 		bool              showLN;
dcdd144598 2011-02-23        kinaba: 	};
dcdd144598 2011-02-23        kinaba: 	typedef ki::olist<DocType> DtList;
dcdd144598 2011-02-23        kinaba: 
dcdd144598 2011-02-23        kinaba: 	DtList           dtList_;
dcdd144598 2011-02-23        kinaba: 	DtList::iterator curDt_;
dcdd144598 2011-02-23        kinaba: 
dcdd144598 2011-02-23        kinaba: 	// 最近使ったファイルのリスト
dcdd144598 2011-02-23        kinaba: 	int mrus_;
dcdd144598 2011-02-23        kinaba: 	ki::Path mru_[20];
dcdd144598 2011-02-23        kinaba: 
dcdd144598 2011-02-23        kinaba: 	// 新規ファイル関係
dcdd144598 2011-02-23        kinaba: 	int        newfileCharset_;
dcdd144598 2011-02-23        kinaba: 	ki::String newfileDoctype_;
dcdd144598 2011-02-23        kinaba: 	ki::lbcode newfileLB_;
dcdd144598 2011-02-23        kinaba: 
dcdd144598 2011-02-23        kinaba: private:
dcdd144598 2011-02-23        kinaba: 
dcdd144598 2011-02-23        kinaba: 	void LoadIni();
dcdd144598 2011-02-23        kinaba: 	void SaveIni();
dcdd144598 2011-02-23        kinaba: 	void LoadLayout( DocType* dt );
dcdd144598 2011-02-23        kinaba: 	bool MatchDocType( const unicode* fname, const unicode* pat );
dcdd144598 2011-02-23        kinaba: 
dcdd144598 2011-02-23        kinaba: private:
dcdd144598 2011-02-23        kinaba: 
dcdd144598 2011-02-23        kinaba: 	friend struct ConfigDlg;
dcdd144598 2011-02-23        kinaba: 	NOCOPY(ConfigManager);
dcdd144598 2011-02-23        kinaba: };
dcdd144598 2011-02-23        kinaba: 
dcdd144598 2011-02-23        kinaba: 
dcdd144598 2011-02-23        kinaba: 
dcdd144598 2011-02-23        kinaba: //-------------------------------------------------------------------------
dcdd144598 2011-02-23        kinaba: #ifndef __ccdoc__
dcdd144598 2011-02-23        kinaba: 
dcdd144598 2011-02-23        kinaba: inline int ConfigManager::undoLimit() const
dcdd144598 2011-02-23        kinaba: 	{ return undoLimit_; }
dcdd144598 2011-02-23        kinaba: 
dcdd144598 2011-02-23        kinaba: inline const ki::String& ConfigManager::txtFileFilter() const
dcdd144598 2011-02-23        kinaba: 	{ return txtFilter_; }
dcdd144598 2011-02-23        kinaba: 
dcdd144598 2011-02-23        kinaba: inline int ConfigManager::wrapWidth() const
dcdd144598 2011-02-23        kinaba: 	{ return curDt_->wrapWidth; }
dcdd144598 2011-02-23        kinaba: 
dcdd144598 2011-02-23        kinaba: inline int ConfigManager::wrapType() const
dcdd144598 2011-02-23        kinaba: 	{ return curDt_->wrapType>0 ? wrapWidth() : curDt_->wrapType; }
dcdd144598 2011-02-23        kinaba: 
dcdd144598 2011-02-23        kinaba: inline bool ConfigManager::showLN() const
dcdd144598 2011-02-23        kinaba: 	{ return curDt_->showLN; }
dcdd144598 2011-02-23        kinaba: 
dcdd144598 2011-02-23        kinaba: inline const editwing::VConfig& ConfigManager::vConfig() const
dcdd144598 2011-02-23        kinaba: 	{ return curDt_->vc; }
dcdd144598 2011-02-23        kinaba: 
dcdd144598 2011-02-23        kinaba: inline ki::Path ConfigManager::kwdFile() const
dcdd144598 2011-02-23        kinaba: 	{ return ki::Path(ki::Path::Exe)+TEXT("type\\")+curDt_->kwdfile; }
dcdd144598 2011-02-23        kinaba: 
dcdd144598 2011-02-23        kinaba: inline const ki::Path& ConfigManager::grepExe() const
dcdd144598 2011-02-23        kinaba: 	{ return grepExe_; }
dcdd144598 2011-02-23        kinaba: 
dcdd144598 2011-02-23        kinaba: inline bool ConfigManager::openSame() const
dcdd144598 2011-02-23        kinaba: 	{ return openSame_; }
dcdd144598 2011-02-23        kinaba: 
dcdd144598 2011-02-23        kinaba: inline bool ConfigManager::showStatusBar() const
dcdd144598 2011-02-23        kinaba: 	{ return showStatusBar_; }
dcdd144598 2011-02-23        kinaba: 
dcdd144598 2011-02-23        kinaba: inline void ConfigManager::ShowStatusBarSwitch()
dcdd144598 2011-02-23        kinaba: 	{ showStatusBar_ = !showStatusBar_; SaveIni(); }
dcdd144598 2011-02-23        kinaba: 
dcdd144598 2011-02-23        kinaba: inline bool ConfigManager::countByUnicode() const
dcdd144598 2011-02-23        kinaba: 	{ return countbyunicode_; }
dcdd144598 2011-02-23        kinaba: 
dcdd144598 2011-02-23        kinaba: inline ki::IniFile& ConfigManager::getImpl()
dcdd144598 2011-02-23        kinaba: 	{ return ini_; }
dcdd144598 2011-02-23        kinaba: 
dcdd144598 2011-02-23        kinaba: inline CharSetList& ConfigManager::GetCharSetList()
dcdd144598 2011-02-23        kinaba: 	{ return charSets_; }
dcdd144598 2011-02-23        kinaba: 
dcdd144598 2011-02-23        kinaba: inline int ConfigManager::GetNewfileCsi() const
dcdd144598 2011-02-23        kinaba: 	{ return charSets_.findCsi( newfileCharset_ ); }
dcdd144598 2011-02-23        kinaba: 
dcdd144598 2011-02-23        kinaba: inline ki::lbcode ConfigManager::GetNewfileLB() const
dcdd144598 2011-02-23        kinaba: 	{ return newfileLB_; }
dcdd144598 2011-02-23        kinaba: 
dcdd144598 2011-02-23        kinaba: inline int ConfigManager::GetWndX() const
dcdd144598 2011-02-23        kinaba: 	{ return rememberWindowPlace_ ? wndX_ : CW_USEDEFAULT; }
dcdd144598 2011-02-23        kinaba: 
dcdd144598 2011-02-23        kinaba: inline int ConfigManager::GetWndY() const
dcdd144598 2011-02-23        kinaba: 	{ return rememberWindowPlace_ ? wndY_ : CW_USEDEFAULT; }
dcdd144598 2011-02-23        kinaba: 
dcdd144598 2011-02-23        kinaba: inline int ConfigManager::GetWndW() const
dcdd144598 2011-02-23        kinaba: 	{ return rememberWindowSize_ ? wndW_ : CW_USEDEFAULT; }
dcdd144598 2011-02-23        kinaba: 
dcdd144598 2011-02-23        kinaba: inline int ConfigManager::GetWndH() const
dcdd144598 2011-02-23        kinaba: 	{ return rememberWindowSize_ ? wndH_ : CW_USEDEFAULT; }
dcdd144598 2011-02-23        kinaba: 
dcdd144598 2011-02-23        kinaba: inline bool ConfigManager::GetWndM() const
dcdd144598 2011-02-23        kinaba: 	{ return rememberWindowSize_ & wndM_; }
dcdd144598 2011-02-23        kinaba: 
dcdd144598 2011-02-23        kinaba: //=========================================================================
dcdd144598 2011-02-23        kinaba: 
dcdd144598 2011-02-23        kinaba: #endif // __ccdoc__
dcdd144598 2011-02-23        kinaba: #endif // AFX_ONFIGMANAGER_H__9243DE9D_0F70_40F8_8F90_55436B952B37__INCLUDED_