bool Menus::CreateMenus() { // Build the menus Menu* menuMain = new Menu; ASSERT(menuMain); menuMain->AddItem(new MenuLabel(MenuItem::Title,L"main menu",0,true,NULL)); menuMain->AddItem(new MenuLabel(MenuItem::Margin,NULL,0,true,NULL)); menuMain->AddItem(new MenuLabel(MenuItem::Label,L"visualizations",1,false,NULL)); menuMain->AddItem(new MenuLabel(MenuItem::Label,L"color presets",2,false,NULL)); menuMain->AddItem(new MenuLabel(MenuItem::Seperator,NULL,0,true,NULL)); menuMain->AddItem(new MenuLabel(MenuItem::Label,L"options",3,false,NULL)); menuMain->AddItem(new MenuLabel(MenuItem::Label,L"capture source",4,false,NULL)); menuMain->AddItem(new MenuLabel(MenuItem::Seperator,NULL,0,true,NULL)); menuMain->AddItem(new MenuLabel(MenuItem::Label,L"info",5,false,NULL)); menuMain->AddItem(new MenuLabel(MenuItem::Seperator,NULL,0,true,NULL)); menuMain->AddItem(new MenuLabel(MenuItem::Label,L"close",6,false,NULL)); menuMain->SetSelectedFirstValid(); menuMain->SetEventHandler(MenuEventHandler); mMenuRoot.AddMenu(menuMain); Menu* menuExit = new Menu; ASSERT(menuExit); menuExit->AddItem(new MenuLabel(MenuItem::Title,L"close",0,true,NULL)); menuExit->AddItem(new MenuLabel(MenuItem::Margin,NULL,0,true,NULL)); menuExit->AddItem(new MenuLabel(MenuItem::Label,L"yes",1,false,NULL)); menuExit->AddItem(new MenuLabel(MenuItem::Label,L"no",2,false,NULL)); menuExit->SetSelected(3); // No menuExit->SetEventHandler(MenuExitEventHandler); mMenuRoot.AddMenu(menuExit); Menu* menuCapture = new Menu; ASSERT(menuCapture); menuCapture->AddItem(new MenuLabel(MenuItem::Title,L"capture source menu",0,true,NULL)); menuCapture->AddItem(new MenuLabel(MenuItem::Margin,NULL,0,true,NULL)); // Add the capture sources for(unsigned long i = 0; i < GetKernel()->GetAudio()->GetSourcesCount(); ++i) menuCapture->AddItem(new MenuLabel(MenuItem::Label,GetKernel()->GetAudio()->GetSource(i),i+1,false,NULL)); if(!GetKernel()->GetAudio()->GetSourcesCount()) menuCapture->AddItem(new MenuLabel(MenuItem::Label,L"no capture sources",1,true,NULL)); menuCapture->AddItem(new MenuLabel(MenuItem::Seperator,NULL,0,true,NULL)); menuCapture->AddItem(new MenuLabel(MenuItem::Label,L"back",GetKernel()->GetAudio()->GetSourcesCount()+1,false,NULL)); menuCapture->SetSelectedFirstValid(); menuCapture->SetEventHandler(MenuCaptureEventHandler); mMenuRoot.AddMenu(menuCapture); Menu* menuOptions = new Menu; ASSERT(menuOptions); menuOptions->AddItem(new MenuLabel(MenuItem::Title,L"options menu",0,true,NULL)); menuOptions->AddItem(new MenuLabel(MenuItem::Margin,NULL,0,true,NULL)); menuOptions->AddItem(new MenuLabel(MenuItem::Label,NULL,1,false,MenuItemTextHandler)); menuOptions->AddItem(new MenuLabel(MenuItem::Label,NULL,2,false,MenuItemTextHandler)); menuOptions->AddItem(new MenuLabel(MenuItem::Label,NULL,3,false,MenuItemTextHandler)); menuOptions->AddItem(new MenuLabel(MenuItem::Label,NULL,4,false,MenuItemTextHandler)); menuOptions->AddItem(new MenuLabel(MenuItem::Label,NULL,5,false,MenuItemTextHandler)); menuOptions->AddItem(new MenuLabel(MenuItem::Label,NULL,6,false,MenuItemTextHandler)); menuOptions->AddItem(new MenuLabel(MenuItem::Label,NULL,7,false,MenuItemTextHandler)); menuOptions->AddItem(new MenuLabel(MenuItem::Seperator,NULL,0,true,NULL)); menuOptions->AddItem(new MenuLabel(MenuItem::Label,NULL,8,false,MenuItemTextHandler)); menuOptions->AddItem(new MenuLabel(MenuItem::Seperator,NULL,0,true,NULL)); menuOptions->AddItem(new MenuLabel(MenuItem::Label,NULL,9,false,MenuItemTextHandler)); menuOptions->AddItem(new MenuLabel(MenuItem::Label,NULL,10,false,MenuItemTextHandler)); menuOptions->AddItem(new MenuLabel(MenuItem::Label,NULL,11,false,MenuItemTextHandler)); menuOptions->AddItem(new MenuLabel(MenuItem::Seperator,NULL,0,true,NULL)); menuOptions->AddItem(new MenuLabel(MenuItem::Label,L"write config",12,false,NULL)); menuOptions->AddItem(new MenuLabel(MenuItem::Label,L"read config",13,false,NULL)); menuOptions->AddItem(new MenuLabel(MenuItem::Seperator,NULL,0,true,NULL)); menuOptions->AddItem(new MenuLabel(MenuItem::Label,L"back",14,false,NULL)); menuOptions->SetSelectedFirstValid(); menuOptions->SetEventHandler(MenuOptionsEventHandler); mMenuRoot.AddMenu(menuOptions); Menu* menuInfo = new Menu; ASSERT(menuInfo); menuInfo->AddItem(new MenuLabel(MenuItem::Title,L"info menu",0,true,NULL)); menuInfo->AddItem(new MenuLabel(MenuItem::Margin,NULL,0,true,NULL)); menuInfo->AddItem(new MenuLabel(MenuItem::Label,NULL,1,true,MenuInfoItemTextHandler)); menuInfo->AddItem(new MenuLabel(MenuItem::Label,NULL,2,true,MenuInfoItemTextHandler)); menuInfo->AddItem(new MenuLabel(MenuItem::Margin,NULL,0,true,NULL)); menuInfo->AddItem(new MenuLabel(MenuItem::Label,L"audio analyzer v\002" TOSTRINGW(ANALYZER_VERSION_MAJOR) L"." TOSTRINGW(ANALYZER_VERSION_MINOR) L"\001",0,true,NULL)); menuInfo->AddItem(new MenuLabel(MenuItem::Label,L"marko mihovilic",0,true,NULL)); menuInfo->AddItem(new MenuLabel(MenuItem::Margin,NULL,0,true,NULL)); menuInfo->AddItem(new MenuLabel(MenuItem::Label,L"back",6,false,NULL)); menuInfo->SetSelectedFirstValid(); menuInfo->SetEventHandler(MenuInfoEventHandler); mMenuRoot.AddMenu(menuInfo); Menu* menuVis = new Menu; ASSERT(menuVis); menuVis->AddItem(new MenuLabel(MenuItem::Title,L"visualizations menu",0,true,NULL)); menuVis->AddItem(new MenuLabel(MenuItem::Margin,NULL,0,true,NULL)); // Add the visualizations for(unsigned long i = 0; i < GetKernel()->GetGraphics()->GetVisualizationCount(); ++i) menuVis->AddItem(new MenuLabel(MenuItem::Label,GetKernel()->GetGraphics()->GetVisualizationName(i),i+1,false,NULL)); menuVis->AddItem(new MenuLabel(MenuItem::Seperator,NULL,0,true,NULL)); menuVis->AddItem(new MenuLabel(MenuItem::Label,L"back",GetKernel()->GetGraphics()->GetVisualizationCount()+1,false,NULL)); menuVis->SetSelectedFirstValid(); menuVis->SetEventHandler(MenuVisEventHandler); mMenuRoot.AddMenu(menuVis); Menu* menuPreset = new Menu; ASSERT(menuPreset); menuPreset->AddItem(new MenuLabel(MenuItem::Title,L"color presets menu",0,true,NULL)); menuPreset->AddItem(new MenuLabel(MenuItem::Margin,NULL,0,true,NULL)); // Add the color presets for(unsigned long i = 0; i < GetKernel()->GetGraphics()->GetColorPresetCount(); ++i) menuPreset->AddItem(new MenuLabel(MenuItem::Label,GetKernel()->GetGraphics()->GetColorPresetName(i),i+1,false,NULL)); menuPreset->AddItem(new MenuLabel(MenuItem::Seperator,NULL,0,true,NULL)); menuPreset->AddItem(new MenuLabel(MenuItem::Label,L"back",GetKernel()->GetGraphics()->GetColorPresetCount()+1,false,NULL)); menuPreset->SetSelectedFirstValid(); menuPreset->SetEventHandler(MenuPresetEventHandler); mMenuRoot.AddMenu(menuPreset); return true; }