コード例 #1
0
ファイル: MJapieG.cpp プロジェクト: BackupTheBerlios/japi-svn
bool MJapieApp::ProcessCommand(
	uint32			inCommand,
	const MMenu*	inMenu,
	uint32			inItemIndex)
{
	bool result = true;

//	MProject* project = MProject::Instance();
//	if (project != nil and project->ProcessCommand(inCommand, inMenu, inItemIndex))
//		return true;

	switch (inCommand)
	{
		case cmd_About:
		{
			MWindow* w = MWindow::GetFirstWindow();
			GtkWidget* ww = nil;
			if (w != nil)
				ww = w->GetGtkWidget();
			
			gtk_show_about_dialog(GTK_WINDOW(ww),
				"program_name", kAppName,
				"version", kVersionString,
				"copyright", "Copyright © 2007 Maarten L. Hekkelman",
				"comments", _("A simple development environment"),
				"website", "http://www.hekkelman.com/",
				nil);
			break;
		}
		
		case cmd_Preferences:
			MPrefsDialog::Create();
			break;
		
		case cmd_Quit:
			if (not MSaverMixin::IsNavDialogVisible())
				DoQuit();
			break;
		
		case cmd_New:
			DoNew();
			break;
		
		case cmd_Open:
			DoOpen();
			break;
		
		case cmd_CloseAll:
			DoCloseAll(kSaveChangesClosingAllDocuments);
			break;
		
		case cmd_SaveAll:
			DoSaveAll();
			break;
		
//		case cmd_ClearRecent:
//			DoClearRecent();
//			break;
//		
//		case cmd_OpenRecent:
//			DoOpenRecent(inCommand);
//			break;
		
		case cmd_OpenTemplate:
			DoOpenTemplate(inMenu->GetItemLabel(inItemIndex));
			break;
		
		case cmd_Find:
			MFindDialog::Instance().Select();
			break;
	
		case cmd_FindInNextFile:
			MFindDialog::Instance().FindNext();
			break;
		
		case cmd_OpenIncludeFile:
			new MFindAndOpenDialog(nil, nil);
			break;
		
		case cmd_Worksheet:
			ShowWorksheet();
			break;

//		case cmd_ShowDiffWindow:
//		{
//			auto_ptr<MDiffWindow> w(new MDiffWindow);
//			w->Initialize();
//			w->Show();
//			w.release();
//			break;
//		}

//		case 'DgTs':
//		{
//			auto_ptr<MDebuggerWindow> w(new MDebuggerWindow);
//			w->Initialize();
//			w->Show();
//			w.release();
//			break;
//		}

		case cmd_SelectWindowFromMenu:
			DoSelectWindowFromWindowMenu(inItemIndex - 2);
			break;
		
		case 'test':
			break;
		
		case cmd_ShowDiffWindow:
			new MDiffWindow;
			break;
		
		default:
			result = false;
			break;
	}
	
	return result;
}