Beispiel #1
0
// ファイルからロード
void	CSharedMru::Load()
{
	if ( WaitForSingleObject( m_hSema ,INFINITE )==WAIT_OBJECT_0 ){
		if ( m_pMapPtr != NULL ){
			// すでにロードされていれば処理しない
			if ( memcmp( m_sig , m_pMapPtr , 4 ) != 0 ){
				FileR	f;
				bool ret = f.open( m_filename );

				if ( ret ){
					// 読込正常
					memcpy( m_pMapPtr , f.base() , f.size() );

					ret = false;
					// シグネチャチェック
					if ( memcmp( m_sig , m_pMapPtr , 4 ) == 0 ){
						// 長さチェック
						int	len = *(int*)(m_pMapPtr+4);			// 長さ取得
						if ( len == f.size() ){
							ret = true;
						}
					}
				}
				Update();
			}
		}

		ReleaseMutex( m_hSema );
	}

}
Beispiel #2
0
void GreenPadWnd::ReloadConfig( bool noSetDocType )
{
	// 文書タイプロード
	if( !noSetDocType )
	{
		int t = cfg_.SetDocType( filename_ );
		if( HMENU m = ::GetSubMenu( ::GetSubMenu(::GetMenu(hwnd()),3),4 ) )
			cfg_.CheckMenu( m, t );
	}
	LOGGER("GreenPadWnd::ReloadConfig DocTypeLoaded");

	// Undo回数制限
	edit_.getDoc().SetUndoLimit( cfg_.undoLimit() );

	// 行番号
	bool ln = cfg_.showLN();
	edit_.getView().ShowLineNo( ln );

	// 折り返し方式
	wrap_ = cfg_.wrapType();
	edit_.getView().SetWrapType( wrap_ );

	// 色・フォント
	VConfig vc = cfg_.vConfig();
	edit_.getView().SetFont( vc );
	LOGGER("GreenPadWnd::ReloadConfig ViewConfigLoaded");

	// キーワードファイル
	Path kwd = cfg_.kwdFile();
	FileR fp;
	if( kwd.len()!=0 && fp.Open(kwd.c_str()) )
		edit_.getDoc().SetKeyword((const unicode*)fp.base(),fp.size()/2);
	else
		edit_.getDoc().SetKeyword(NULL,0);
	LOGGER("GreenPadWnd::ReloadConfig KeywordLoaded");
}