=== sakura_core/doc/CEditDoc.cpp
==================================================================
--- sakura_core/doc/CEditDoc.cpp	(/private/sakura-editor/sakura/trunk2)	(revision 31191)
+++ sakura_core/doc/CEditDoc.cpp	(/private/sakura-editor/filetypelist-toolbaritem)	(revision 31191)
@@ -566,6 +566,8 @@
 	if( hwndProgress ){
 		::ShowWindow( hwndProgress, SW_HIDE );
 	}
+
+	NotifySettingChange();
 }
 
 /*! ƒtƒ@ƒCƒ‹‚ð•Â‚¶‚é‚Æ‚«‚ÌMRU“o˜^ & •Û‘¶Šm”F �• •Û‘¶ŽÀ�s
=== sakura_core/doc/CDocListener.h
==================================================================
--- sakura_core/doc/CDocListener.h	(/private/sakura-editor/sakura/trunk2)	(revision 31191)
+++ sakura_core/doc/CDocListener.h	(/private/sakura-editor/filetypelist-toolbaritem)	(revision 31191)
@@ -135,6 +135,8 @@
 
 	//ƒNƒ��[ƒY‘OŒã
 	ECallbackResult NotifyBeforeClose();
+
+	void NotifySettingChange		();
 };
 
 //Listener‚Í1‚Â‚ÌSubject‚ðŠÏŽ@‚·‚é
@@ -166,6 +168,8 @@
 
 	//ƒNƒ��[ƒY‘OŒã
 	virtual ECallbackResult OnBeforeClose()							{ return CALLBACK_CONTINUE; }
+
+	virtual void			OnSettingChange ()						{ return ; }
 };
 
 //GetListeningDoc‚Ì—˜•Ö�«‚ðƒAƒbƒv
=== sakura_core/doc/CDocListener.cpp
==================================================================
--- sakura_core/doc/CDocListener.cpp	(/private/sakura-editor/sakura/trunk2)	(revision 31191)
+++ sakura_core/doc/CDocListener.cpp	(/private/sakura-editor/filetypelist-toolbaritem)	(revision 31191)
@@ -89,6 +89,7 @@
 
 DEF_NOTIFY(BeforeClose)
 
+VOID_NOTIFY(SettingChange)
 
 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
 //                       CDocListener                          //
=== sakura_core/sakura_rc.rc
==================================================================
--- sakura_core/sakura_rc.rc	(/private/sakura-editor/sakura/trunk2)	(revision 31191)
+++ sakura_core/sakura_rc.rc	(/private/sakura-editor/filetypelist-toolbaritem)	(revision 31191)
@@ -2764,6 +2764,11 @@
 
 STRINGTABLE DISCARDABLE 
 BEGIN
+    F_CHGMOD_FILETYPE       "“K—pƒtƒ@ƒCƒ‹ƒ^ƒCƒv(ƒŠƒXƒg)"
+END
+
+STRINGTABLE DISCARDABLE 
+BEGIN
     F_CANCEL_MODE           "ŠeŽíƒ‚�[ƒh‚ÌŽæ‚è�Á‚µ"
     F_SHOWTOOLBAR           "ƒc�[ƒ‹ƒo�[‚Ì•\Ž¦�^”ñ•\Ž¦"
     F_SHOWFUNCKEY           "ƒtƒ@ƒ“ƒNƒVƒ‡ƒ“ƒL�[‚Ì•\Ž¦�^”ñ•\Ž¦"
=== sakura_core/CViewCommander.h
==================================================================
--- sakura_core/CViewCommander.h	(/private/sakura-editor/sakura/trunk2)	(revision 31191)
+++ sakura_core/CViewCommander.h	(/private/sakura-editor/filetypelist-toolbaritem)	(revision 31191)
@@ -262,6 +262,7 @@
 	void Command_CHGMOD_INS( void );	/* ‘}“ü�^�ã�‘‚«ƒ‚�[ƒh�Ø‚è‘Ö‚¦ */
 	void Command_CHGMOD_EOL( enumEOLType );	/* “ü—Í‚·‚é‰ü�sƒR�[ƒh‚ð�Ý’è 2003.06.23 moca */
 	void Command_CANCEL_MODE( void );	/* ŠeŽíƒ‚�[ƒh‚ÌŽæ‚è�Á‚µ */
+	void Command_CHGMOD_FILETYPE( void );
 
 	/* �Ý’èŒn */
 	void Command_SHOWTOOLBAR( void );		/* ƒc�[ƒ‹ƒo�[‚Ì•\Ž¦/”ñ•\Ž¦ */
=== sakura_core/window/CMainToolBar.cpp
==================================================================
--- sakura_core/window/CMainToolBar.cpp	(/private/sakura-editor/sakura/trunk2)	(revision 31191)
+++ sakura_core/window/CMainToolBar.cpp	(/private/sakura-editor/filetypelist-toolbaritem)	(revision 31191)
@@ -1,3 +1,4 @@
+#include <algorithm>
 #include "stdafx.h"
 #include "CMainToolBar.h"
 #include "window/CEditWnd.h"
@@ -5,12 +6,16 @@
 #include "CEditApp.h"
 #include "util/tchar_receive.h"
 
+static const TCHAR* const PROP_WINDOW_OWNER_OBJECT = TEXT("this");
+
 CMainToolBar::CMainToolBar(CEditWnd* pOwner)
 : m_pOwner(pOwner)
 , m_fontSearchBox(NULL)
 , m_hwndReBar(NULL)
 , m_hwndToolBar(NULL)
 , m_hwndSearchBox(NULL)
+, m_hwndFileTypeBox(NULL)
+, CDocListener(&(pOwner->GetDocument()))
 {
 }
 
@@ -50,16 +55,120 @@
 	}
 }
 
+/*! ƒtƒ@ƒCƒ‹ƒ^ƒCƒv-ƒhƒ�ƒbƒvƒ_ƒEƒ“ƒŠƒXƒg‚Ì�ˆ—� */
+bool CMainToolBar::ProcFileTypeBox( MSG *pMsg )
+{
+	// ƒhƒ�ƒbƒvƒ_ƒEƒ“ƒŠƒXƒg‚ÌƒfƒtƒHƒ‹ƒgƒvƒ�ƒV�[ƒWƒƒ‚ª
+	// ƒ�ƒbƒZ�[ƒW‚ð�ˆ—�‚µ‚½‚±‚Æ‚ð�A‘—‚ç‚ê‚Ä‚­‚é
+	// WM_COMMAND‚ðŽg‚Á‚ÄŒŸ’m‚·‚é�A‚¤‚Ü‚­‚È‚¢•û–@�B
+	static bool bCBMessageProcessed;
+
+	switch( pMsg->message )
+	{
+	case WM_COMMAND:
+		if( (HWND)(pMsg->lParam) != m_hwndFileTypeBox ) {
+			return false;
+		}
+
+		bCBMessageProcessed = true;
+
+		switch( HIWORD( pMsg->wParam ) )
+		{
+		case CBN_SELCHANGE:
+		{
+			int cbCurSel = ::SendMessage( m_hwndFileTypeBox, CB_GETCURSEL, 0, 0);
+			if( cbCurSel !=  m_pOwner->GetDocument().m_cDocType.GetDocumentType().GetIndex() )
+			{
+				m_pOwner->GetDocument().m_cDocType.SetDocumentType( CTypeConfig(cbCurSel), true );
+				m_pOwner->GetDocument().m_cDocType.LockDocumentType();
+				/* �Ý’è•Ï�X‚ð”½‰f‚³‚¹‚é */
+				m_pOwner->GetDocument().OnChangeSetting();
+			}
+		}
+		return true;;
+		}
+	break;
+
+	case WM_KEYDOWN:
+	case WM_SYSKEYDOWN:
+	{
+		// Tab or Shift+Tab is pressed.
+		if( pMsg->wParam == VK_TAB && 0 <= GetKeyState( VK_CONTROL ) && 0 <= GetKeyState( VK_MENU ) ) {
+			if( pMsg->message == WM_KEYDOWN ) {
+				::SetFocus( m_pOwner->GetHwnd() );
+			}
+			return true;
+		} else {
+			// 1.ƒhƒ�ƒbƒvƒ_ƒEƒ“ƒŠƒXƒg‚Éƒ�ƒbƒZ�[ƒW‚ð�ˆ—�‚³‚¹‚é�B
+			// 2.�ˆ—�‚³‚ê‚È‚¯‚ê‚ÎƒGƒfƒBƒ^‚É“n‚µ�AƒVƒ‡�[ƒgƒJƒbƒgƒL�[‚Æ‚µ‚Ä�ˆ—�‚³‚¹‚é�B
+			bool bProcessed = false;
+
+			// 1.ƒhƒ�ƒbƒvƒ_ƒEƒ“ƒŠƒXƒg‚Éƒ�ƒbƒZ�[ƒW‚ð�ˆ—�‚³‚¹‚é�B
+			//   bCBMessageProcessed‚Íƒhƒ�ƒbƒvƒ_ƒEƒ“ƒŠƒXƒg‚ªƒ�ƒbƒZ�[ƒW‚ð
+			//   �ˆ—�‚µ‚½(‚»‚ÌŒ‹‰Ê WM_COMMAND‚ª”­�s‚³‚ê‚½)‚©‚Ç‚¤‚©‚ðŽ¦‚·�B
+			{
+				bool bPreserved = bCBMessageProcessed;
+				bCBMessageProcessed = false;
+				::DispatchMessage( pMsg );
+				bProcessed = bCBMessageProcessed;
+				bCBMessageProcessed = bPreserved;
+			}
+			if( ! bProcessed ) {
+				// ƒŠƒXƒg‚Ì�æ“ª‚ª‘I‘ð‚³‚ê‚Ä‚¢‚é‚Æ‚«‚É �ª, �©, PageUp,
+				// HomeƒL�[‚ª‰Ÿ‚³‚ê‚½�ê�‡‚È‚Ç�AWM_COMMAND‚ª”­�s‚³‚ê‚È‚­‚Ä‚à
+				// ƒGƒfƒBƒ^‚Éƒ�ƒbƒZ�[ƒW‚ð“n‚µ‚½‚­‚È‚¢�ê�‡‚ª‚ ‚é�B
+				static WPARAM always_eaten_keys[] = { VK_PRIOR, VK_NEXT, VK_END, VK_HOME, VK_LEFT, VK_UP, VK_RIGHT, VK_DOWN };
+				WPARAM *keys_last = always_eaten_keys + (sizeof always_eaten_keys) / (sizeof always_eaten_keys[0]);
+				bProcessed = keys_last != std::find( always_eaten_keys, keys_last, pMsg->wParam );
+			}
+			if( ! bProcessed ) {
+				// 2.ƒhƒ�ƒbƒvƒ_ƒEƒ“ƒŠƒXƒg‚ª�ˆ—�‚µ‚È‚©‚Á‚½ƒL�[ƒ{�[ƒhƒ�ƒbƒZ�[ƒW‚ð
+				//   ƒGƒfƒBƒ^‚ÉƒpƒX‚µ�A�uƒL�[Š„‚è“–‚Ä�v‚ð—LŒø‚É‚·‚é�B
+				bProcessed = GetDllShareData().m_sHandles.m_hAccel && TranslateAccelerator( m_pOwner->GetHwnd(), GetDllShareData().m_sHandles.m_hAccel, pMsg );
+			}
+			if( ! bProcessed ) {
+				// TranslateAccelerator()‚ª“­‚©‚È‚©‚Á‚½‚Æ‚«‚ÌŠù’è‚Ì�ˆ—��B
+				// WM_CHARƒ�ƒbƒZ�[ƒW‚ð�¶�¬‚·‚é(‚©‚à)�BƒŠƒXƒgƒAƒCƒeƒ€‚Ì
+				// “ª•¶Žš‚Å‚Ì‘I‘ð‚Íƒ�ƒbƒZ�[ƒWƒ‹�[ƒv‚ÌŽŸ‚Ì‰ñ‚Å�s‚í‚ê‚é�B
+				::TranslateMessage( pMsg );
+				bProcessed = true;
+			}
+			return bProcessed;
+		}
+	}
+	break;
+	}
+	
+	return false;
+}
+
 /*! ƒTƒuƒNƒ‰ƒX‰»‚µ‚½ƒc�[ƒ‹ƒo�[‚ÌƒEƒBƒ“ƒhƒEƒvƒ�ƒV�[ƒWƒƒ
 	@author ryoji
 	@date 2006.09.06 ryoji
 */
 static WNDPROC g_pOldToolBarWndProc;	// ƒc�[ƒ‹ƒo�[‚Ì–{—ˆ‚ÌƒEƒBƒ“ƒhƒEƒvƒ�ƒV�[ƒWƒƒ
 
-static LRESULT CALLBACK ToolBarWndProc( HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam )
+static LRESULT CALLBACK ToolBarWndProc( HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam )
 {
-	switch( msg )
+	switch( message )
 	{
+	case WM_COMMAND:
+		if( lParam )
+		{
+			HANDLE hTemp = ::GetProp( hWnd, PROP_WINDOW_OWNER_OBJECT );
+			if( hTemp != NULL )
+			{
+				CMainToolBar* pToolbar = static_cast<CMainToolBar*>( hTemp );
+				MSG msg;
+				msg.hwnd = (HWND)lParam;
+				msg.message = message;
+				msg.wParam = wParam;
+				msg.lParam = lParam;
+				pToolbar->EatMessage( &msg );
+			}
+		}
+		break;
+	
 	// WinXP Visual Style ‚Ì‚Æ‚«‚Éƒc�[ƒ‹ƒo�[�ã‚Å‚Ìƒ}ƒEƒX�¶‰Eƒ{ƒ^ƒ““¯Žž‰Ÿ‚µ‚Å–³‰ž“š‚É‚È‚é
 	//�iƒ}ƒEƒX‚ðƒLƒƒƒvƒ`ƒƒ�[‚µ‚½‚Ü‚Ü•ú‚³‚È‚¢�j –â‘è‚ð‰ñ”ð‚·‚é‚½‚ß‚É‰Eƒ{ƒ^ƒ“‚ð–³Ž‹‚·‚é
 	case WM_RBUTTONDOWN:
@@ -71,7 +180,7 @@
 		::SetWindowLongPtr( hWnd, GWLP_WNDPROC, (LONG_PTR)g_pOldToolBarWndProc );
 		break;
 	}
-	return ::CallWindowProc( g_pOldToolBarWndProc, hWnd, msg, wParam, lParam );
+	return ::CallWindowProc( g_pOldToolBarWndProc, hWnd, message, wParam, lParam );
 }
 
 
@@ -159,6 +268,9 @@
 			(LONG_PTR)ToolBarWndProc
 		);
 
+		// ƒEƒBƒ“ƒhƒEƒvƒ�ƒV�[ƒWƒƒ‚ªƒIƒuƒWƒFƒNƒg( CMainToolBarƒNƒ‰ƒX )‚ðŽæ“¾‚Å‚«‚é‚æ‚¤‚É�B
+		::SetProp( m_hwndToolBar, PROP_WINDOW_OWNER_OBJECT, static_cast<HANDLE>(this) );
+
 		::SendMessageAny( m_hwndToolBar, TB_BUTTONSTRUCTSIZE, sizeof(TBBUTTON), 0 );
 		//	Oct. 12, 2000 genta
 		//	Šù‚É—pˆÓ‚³‚ê‚Ä‚¢‚éImage List‚ðƒAƒCƒRƒ“‚Æ‚µ‚Ä“o˜^
@@ -252,23 +364,26 @@
 						{
 							m_pOwner->SetCurrentFocus(0);
 
-							memset_raw( &lf, 0, sizeof(lf) );
-							lf.lfHeight			= 12; // Jan. 14, 2003 genta ƒ_ƒCƒAƒ�ƒO‚É‚ ‚í‚¹‚Ä‚¿‚å‚Á‚Æ�¬‚³‚­
-							lf.lfWidth			= 0;
-							lf.lfEscapement		= 0;
-							lf.lfOrientation	= 0;
-							lf.lfWeight			= FW_NORMAL;
-							lf.lfItalic			= FALSE;
-							lf.lfUnderline		= FALSE;
-							lf.lfStrikeOut		= FALSE;
-							lf.lfCharSet		= SHIFTJIS_CHARSET;
-							lf.lfOutPrecision	= OUT_DEFAULT_PRECIS;
-							lf.lfClipPrecision	= CLIP_DEFAULT_PRECIS;
-							lf.lfQuality		= DEFAULT_QUALITY;
-							lf.lfPitchAndFamily	= FF_MODERN | DEFAULT_PITCH;
-							//wcscpy( lf.lfFaceName, _T("‚l‚r ƒSƒVƒbƒN") );
-							_tcscpy( lf.lfFaceName, _T("‚l‚r ‚oƒSƒVƒbƒN") );
-							m_fontSearchBox = ::CreateFontIndirect( &lf );
+							if(! m_fontSearchBox)
+							{
+								memset_raw( &lf, 0, sizeof(lf) );
+								lf.lfHeight			= 12; // Jan. 14, 2003 genta ƒ_ƒCƒAƒ�ƒO‚É‚ ‚í‚¹‚Ä‚¿‚å‚Á‚Æ�¬‚³‚­
+								lf.lfWidth			= 0;
+								lf.lfEscapement		= 0;
+								lf.lfOrientation	= 0;
+								lf.lfWeight			= FW_NORMAL;
+								lf.lfItalic			= FALSE;
+								lf.lfUnderline		= FALSE;
+								lf.lfStrikeOut		= FALSE;
+								lf.lfCharSet		= SHIFTJIS_CHARSET;
+								lf.lfOutPrecision	= OUT_DEFAULT_PRECIS;
+								lf.lfClipPrecision	= CLIP_DEFAULT_PRECIS;
+								lf.lfQuality		= DEFAULT_QUALITY;
+								lf.lfPitchAndFamily	= FF_MODERN | DEFAULT_PITCH;
+								//wcscpy( lf.lfFaceName, _T("‚l‚r ƒSƒVƒbƒN") );
+								_tcscpy( lf.lfFaceName, _T("‚l‚r ‚oƒSƒVƒbƒN") );
+								m_fontSearchBox = ::CreateFontIndirect( &lf );
+							}
 							if( m_fontSearchBox )
 							{
 								::SendMessageAny( m_hwndSearchBox, WM_SETFONT, (WPARAM)m_fontSearchBox, MAKELONG (TRUE, 0) );
@@ -287,6 +402,76 @@
 						}
 						break;
 
+					case F_CHGMOD_FILETYPE:
+						if( m_hwndFileTypeBox )
+						{
+							break;
+						}
+						
+						// ƒhƒ�ƒbƒvƒ_ƒEƒ“ƒŠƒXƒg‚Ì”wŒã‚É‰B‚ê‚éƒ_ƒ~�[ƒ{ƒ^ƒ“ (�ê�ŠŽæ‚è & ƒŠƒXƒg‚Ö‚ÌƒtƒH�[ƒJƒXˆÚ“®)
+						tbb.fsState = TBSTYLE_BUTTON;
+						::SendMessage( m_hwndToolBar, TB_ADDBUTTONSW, (WPARAM)1, (LPARAM)&tbb );
+						count++;
+ 
+						// ƒ{ƒ^ƒ“‚ðƒŠƒXƒg‚ÌƒTƒCƒY‚É‚·‚é
+						tbi.cbSize = sizeof(tbi);
+						tbi.dwMask = TBIF_SIZE;
+						tbi.cx     = 100;
+						::SendMessage( m_hwndToolBar, TB_SETBUTTONINFO, (WPARAM)(tbb.idCommand), (LPARAM)&tbi );
+
+						// ƒ{ƒ^ƒ“‚ÌˆÊ’u‚ðŽæ“¾‚·‚é
+						rc.right = rc.left = rc.top = rc.bottom = 0;
+						::SendMessageAny( m_hwndToolBar, TB_GETITEMRECT, (WPARAM)(count-1), (LPARAM)&rc );
+
+						// ƒŠƒXƒg‚ðƒ{ƒ^ƒ“‚Ì�ã‚É�ì‚é
+						//	Mar. 8, 2003 genta ŒŸ�õƒ{ƒbƒNƒX‚ð1ƒhƒbƒg‰º‚É‚¸‚ç‚µ‚½
+						m_hwndFileTypeBox = CreateWindow( _T("COMBOBOX"), _T("Combo"),
+								WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL | CBS_DROPDOWNLIST
+								/*| CBS_SORT*/ | CBS_AUTOHSCROLL /*| CBS_DISABLENOSCROLL*/,
+								rc.left, rc.top + 1, rc.right - rc.left, rc.bottom - rc.top,
+								m_hwndToolBar, (HMENU)(INT_PTR)tbb.idCommand, CEditApp::Instance()->GetAppInstance(), NULL );
+						if( m_hwndFileTypeBox )
+						{
+							m_pOwner->SetCurrentFocus(0);
+
+							if( ! m_fontSearchBox )
+							{
+								memset_raw( &lf, 0, sizeof(lf) );
+								lf.lfHeight			= 12; // Jan. 14, 2003 genta ƒ_ƒCƒAƒ�ƒO‚É‚ ‚í‚¹‚Ä‚¿‚å‚Á‚Æ�¬‚³‚­
+								lf.lfWidth			= 0;
+								lf.lfEscapement		= 0;
+								lf.lfOrientation	= 0;
+								lf.lfWeight			= FW_NORMAL;
+								lf.lfItalic			= FALSE;
+								lf.lfUnderline		= FALSE;
+								lf.lfStrikeOut		= FALSE;
+								lf.lfCharSet		= SHIFTJIS_CHARSET;
+								lf.lfOutPrecision	= OUT_DEFAULT_PRECIS;
+								lf.lfClipPrecision	= CLIP_DEFAULT_PRECIS;
+								lf.lfQuality		= DEFAULT_QUALITY;
+								lf.lfPitchAndFamily	= FF_MODERN | DEFAULT_PITCH;
+								//wcscpy( lf.lfFaceName, _T("‚l‚r ƒSƒVƒbƒN") );
+								_tcscpy( lf.lfFaceName, _T("‚l‚r ‚oƒSƒVƒbƒN") );
+								m_fontSearchBox = ::CreateFontIndirect( &lf );
+							}
+							if( m_fontSearchBox )
+							{
+								::SendMessageAny( m_hwndFileTypeBox, WM_SETFONT, (WPARAM)m_fontSearchBox, MAKELONG (TRUE, 0) );
+							}
+
+							//ƒhƒ�ƒbƒvƒ_ƒEƒ“ƒŠƒXƒg‚ð�X�V
+							::SendMessageAny( m_hwndFileTypeBox, CB_RESETCONTENT, 0, 0 );
+							for( my_i = 0; my_i < MAX_TYPES; ++my_i )
+							{
+								STypeConfig& types = GetDllShareData().m_Types[ my_i ];
+								Combo_AddString( m_hwndFileTypeBox, types.m_szTypeName );
+							}
+							// ‚Ü‚¾ƒtƒ@ƒCƒ‹ƒ^ƒCƒv‚ÍŽæ“¾‚Å‚«‚È‚¢‚Á‚Û‚¢�B�í‚ÉŠî–{(0)‚É‚È‚é�B
+							//::SendMessageAny( m_hwndFileTypeBox, CB_SETCURSEL, m_pOwner->GetDocument().m_cDocType.GetDocumentType().GetIndex()+1, 0 );
+							::SendMessageAny( m_hwndFileTypeBox, CB_SETCURSEL, 0, 0 );
+						}
+						break;
+
 					default:
 						//width = 0;
 						//my_hwnd = NULL;
@@ -343,20 +528,29 @@
 {
 	if( m_hwndToolBar )
 	{
+		// ƒtƒHƒ“ƒg‚ð�æ‚É�í�œ‚µ‚Ä‚à—Ç‚¢�H
+		if( m_fontSearchBox )
+		{
+			::DeleteObject( m_fontSearchBox );
+			m_fontSearchBox = NULL;
+		}
 		if( m_hwndSearchBox )
 		{
-			if( m_fontSearchBox )
-			{
-				::DeleteObject( m_fontSearchBox );
-				m_fontSearchBox = NULL;
-			}
-
 			::DestroyWindow( m_hwndSearchBox );
 			m_hwndSearchBox = NULL;
 
 			m_pOwner->SetCurrentFocus(0);
 		}
+		if( m_hwndFileTypeBox )
+		{
+			::DestroyWindow( m_hwndFileTypeBox );
+			m_hwndFileTypeBox = NULL;
+ 
+			m_pOwner->SetCurrentFocus(0);
+		}
 
+		::RemoveProp( m_hwndToolBar, PROP_WINDOW_OWNER_OBJECT );
+
 		::DestroyWindow( m_hwndToolBar );
 		m_hwndToolBar = NULL;
 
@@ -381,6 +575,10 @@
 		ProcSearchBox( msg );
 		return true;
 	}
+	if( msg->hwnd && msg->hwnd == m_hwndFileTypeBox )
+	{
+		return ProcFileTypeBox( msg );
+	}
 	return false;
 }
 
@@ -522,3 +720,20 @@
 		::SetFocus(m_hwndSearchBox);
 	}
 }
+
+void CMainToolBar::SetFocusFileTypeBox( void ) const
+{
+	if( m_hwndFileTypeBox ){
+		::SetFocus(m_hwndFileTypeBox);
+	}
+}
+
+void CMainToolBar::OnFinalLoad( ELoadResult )
+{
+	::SendMessageAny( m_hwndFileTypeBox, CB_SETCURSEL, m_pOwner->GetDocument().m_cDocType.GetDocumentType().GetIndex(), 0 );
+}
+
+void CMainToolBar::OnSettingChange()
+{
+	::SendMessageAny( m_hwndFileTypeBox, CB_SETCURSEL, m_pOwner->GetDocument().m_cDocType.GetDocumentType().GetIndex(), 0 );
+}
=== sakura_core/window/CMainToolBar.h
==================================================================
--- sakura_core/window/CMainToolBar.h	(/private/sakura-editor/sakura/trunk2)	(revision 31191)
+++ sakura_core/window/CMainToolBar.h	(/private/sakura-editor/filetypelist-toolbaritem)	(revision 31191)
@@ -2,7 +2,8 @@
 
 class CEditWnd;
 
-class CMainToolBar{
+class CMainToolBar : public CDocListener
+{
 public:
 	CMainToolBar(CEditWnd* pOwner);
 
@@ -13,6 +14,7 @@
 	//ƒ�ƒbƒZ�[ƒW
 	bool EatMessage(MSG* msg);		//!< ƒ�ƒbƒZ�[ƒW�ˆ—��B‚È‚ñ‚©�ˆ—�‚µ‚½‚È‚ç true ‚ð•Ô‚·�B
 	void ProcSearchBox( MSG* );		//!< ŒŸ�õƒRƒ“ƒ{ƒ{ƒbƒNƒX‚Ìƒ�ƒbƒZ�[ƒW�ˆ—�
+	bool ProcFileTypeBox( MSG* );
 
 	//ƒCƒxƒ“ƒg
 	void OnToolbarTimer( void );	//!< ƒ^ƒCƒ}�[‚Ì�ˆ—� 20060128 aroka
@@ -32,6 +34,7 @@
 
 	//‘€�ì
 	void SetFocusSearchBox( void ) const;		/* ƒc�[ƒ‹ƒo�[ŒŸ�õƒ{ƒbƒNƒX‚ÖƒtƒH�[ƒJƒX‚ðˆÚ“® */	// 2006.06.04 yukihane
+	void SetFocusFileTypeBox( void ) const;
 
 private:
 	CEditWnd*	m_pOwner;
@@ -40,7 +43,11 @@
 	//ŽqƒEƒBƒ“ƒhƒE
     HWND		m_hwndReBar;		//!< Rebar ƒEƒBƒ“ƒhƒE	//@@@ 2006.06.17 ryoji
 	HWND		m_hwndSearchBox;	//!< ŒŸ�õƒRƒ“ƒ{ƒ{ƒbƒNƒX
+	HWND		m_hwndFileTypeBox;
 
 	//ƒtƒHƒ“ƒg
 	HFONT		m_fontSearchBox;	//!< ŒŸ�õƒRƒ“ƒ{ƒ{ƒbƒNƒX‚ÌƒtƒHƒ“ƒg
+
+	void OnFinalLoad(ELoadResult);
+	void OnSettingChange();
 };
=== sakura_core/CViewCommander.cpp
==================================================================
--- sakura_core/CViewCommander.cpp	(/private/sakura-editor/sakura/trunk2)	(revision 31191)
+++ sakura_core/CViewCommander.cpp	(/private/sakura-editor/filetypelist-toolbaritem)	(revision 31191)
@@ -516,6 +516,7 @@
 	case F_CHGMOD_EOL:		Command_CHGMOD_EOL( (enumEOLType)lparam1 );break;	//“ü—Í‚·‚é‰ü�sƒR�[ƒh‚ð�Ý’è
 	// To Here 2003.06.23 Moca
 	case F_CANCEL_MODE:		Command_CANCEL_MODE();break;	//ŠeŽíƒ‚�[ƒh‚ÌŽæ‚è�Á‚µ
+	case F_CHGMOD_FILETYPE:	Command_CHGMOD_FILETYPE();break;
 
 	/* �Ý’èŒn */
 	case F_SHOWTOOLBAR:		Command_SHOWTOOLBAR();break;	/* ƒc�[ƒ‹ƒo�[‚Ì•\Ž¦/”ñ•\Ž¦ */
@@ -3337,6 +3338,15 @@
 
 
 
+void CViewCommander::Command_CHGMOD_FILETYPE( void )
+{
+	const CEditWnd*	pCEditWnd = GetDocument()->m_pcEditWnd;
+	pCEditWnd->m_cToolbar.SetFocusFileTypeBox();
+}
+
+	
+	
+	
 /* ”ÍˆÍ‘I‘ðŠJŽn */
 void CViewCommander::Command_BEGIN_SELECT( void )
 {
=== sakura_core/Funccode_define.h
==================================================================
--- sakura_core/Funccode_define.h	(/private/sakura-editor/sakura/trunk2)	(revision 31191)
+++ sakura_core/Funccode_define.h	(/private/sakura-editor/filetypelist-toolbaritem)	(revision 31191)
@@ -202,6 +202,7 @@
 #define F_ISEARCH_MIGEMO_NEXT 30985
 #define F_ISEARCH_MIGEMO_PREV 30986
 #define F_CHGMOD_INS 31001
+#define F_CHGMOD_FILETYPE 31070
 #define F_CHGMOD_EOL_CRLF 31081
 #define F_CHGMOD_EOL_LF 31082
 #define F_CHGMOD_EOL_CR 31083
=== sakura_core/CMenuDrawer.cpp
==================================================================
--- sakura_core/CMenuDrawer.cpp	(/private/sakura-editor/sakura/trunk2)	(revision 31191)
+++ sakura_core/CMenuDrawer.cpp	(/private/sakura-editor/filetypelist-toolbaritem)	(revision 31191)
@@ -396,7 +396,7 @@
 /* 257 */		F_CHGMOD_INS	/*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,	//‘}“ü�^�ã�‘‚«ƒ‚�[ƒh�Ø‚è‘Ö‚¦	//Nov. 5, 2000 JEPRO ’Ç‰Á
 /* 258 */		F_CANCEL_MODE	/*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,	//ŠeŽíƒ‚�[ƒh‚ÌŽæ‚è�Á‚µ			//Nov. 7, 2000 JEPRO ’Ç‰Á
 /* 259 */		F_DISABLE		/*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,	//ƒ_ƒ~�[
-/* 260 */		F_DISABLE		/*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,	//ƒ_ƒ~�[
+/* 260 */		F_CHGMOD_FILETYPE	/*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,
 
 /* �Ý’èŒn(9’i–ÚŽŸ‚Ì16ŒÂ: 261-276) */
 /* 261 */		F_SHOWTOOLBAR		/* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,	//ƒc�[ƒ‹ƒo�[‚Ì•\Ž¦
@@ -548,6 +548,7 @@
 			break;
 
 		case F_SEARCH_BOX:
+		case F_CHGMOD_FILETYPE:
 			style = TBSTYLE_COMBOBOX;	//ƒRƒ“ƒ{ƒ{ƒbƒNƒX
 			break;
 
=== sakura_core/Funccode_enum.h
==================================================================
--- sakura_core/Funccode_enum.h	(/private/sakura-editor/sakura/trunk2)	(revision 31191)
+++ sakura_core/Funccode_enum.h	(/private/sakura-editor/filetypelist-toolbaritem)	(revision 31191)
@@ -203,6 +203,7 @@
 	F_ISEARCH_MIGEMO_NEXT = 30985,
 	F_ISEARCH_MIGEMO_PREV = 30986,
 	F_CHGMOD_INS = 31001,
+	F_CHGMOD_FILETYPE = 31070,
 	F_CHGMOD_EOL_CRLF = 31081,
 	F_CHGMOD_EOL_LF = 31082,
 	F_CHGMOD_EOL_CR = 31083,
=== sakura_core/Funccode_x.hsrc
==================================================================
--- sakura_core/Funccode_x.hsrc	(/private/sakura-editor/sakura/trunk2)	(revision 31191)
+++ sakura_core/Funccode_x.hsrc	(/private/sakura-editor/filetypelist-toolbaritem)	(revision 31191)
@@ -273,6 +273,7 @@
 
 // ƒ‚�[ƒh�Ø‚è‘Ö‚¦Œn 
 F_CHGMOD_INS		= 31001,	//‘}“ü�^�ã�‘‚«ƒ‚�[ƒh�Ø‚è‘Ö‚¦			‚È‚µ
+F_CHGMOD_FILETYPE   = 31070,	//ƒtƒ@ƒCƒ‹ƒ^ƒCƒv•\Ž¦/•Ï�X				‚È‚µ
 F_CHGMOD_EOL_CRLF	= 31081,	//“ü—Í‰ü�sƒR�[ƒhŽw’è(CRLF)				‚È‚µ
 F_CHGMOD_EOL_LF		= 31082,	//“ü—Í‰ü�sƒR�[ƒhŽw’è(LF)				‚È‚µ
 F_CHGMOD_EOL_CR		= 31083,	//“ü—Í‰ü�sƒR�[ƒhŽw’è(CR)				‚È‚µ
=== sakura_core/func/Funccode.cpp
==================================================================
--- sakura_core/func/Funccode.cpp	(/private/sakura-editor/sakura/trunk2)	(revision 31191)
+++ sakura_core/func/Funccode.cpp	(/private/sakura-editor/filetypelist-toolbaritem)	(revision 31191)
@@ -333,7 +333,8 @@
 	F_CHGMOD_EOL_CRLF	,	//“ü—Í‰ü�sƒR�[ƒhŽw’è(CRLF)	2003.06.23 Moca
 	F_CHGMOD_EOL_LF		,	//“ü—Í‰ü�sƒR�[ƒhŽw’è(LF)	2003.06.23 Moca
 	F_CHGMOD_EOL_CR		,	//“ü—Í‰ü�sƒR�[ƒhŽw’è(CR)	2003.06.23 Moca
-	F_CANCEL_MODE			//ŠeŽíƒ‚�[ƒh‚ÌŽæ‚è�Á‚µ
+	F_CANCEL_MODE		,	//ŠeŽíƒ‚�[ƒh‚ÌŽæ‚è�Á‚µ
+	F_CHGMOD_FILETYPE		//“K—pƒtƒ@ƒCƒ‹ƒ^ƒCƒv‘I‘ð
 };
 const int nFincList_Mode_Num = _countof( pnFuncList_Mode );	//Oct. 16, 2000 JEPRO •Ï�”–¼•Ï�X(List8�¨List_Mode)
 
