void SjMainFrame::CreateViewMenu(SjMenu* viewMenu, bool createMainMenu, bool appendGotoCurrMark)
{
	bool enableQueue = m_player.m_queue.GetCount()!=0;

	if( appendGotoCurrMark )
	{
		viewMenu->Append(IDO_GOTO_CURR_MARK);
	}

	viewMenu->Append(IDT_GOTO_CURR);
	viewMenu->Enable(IDT_GOTO_CURR, enableQueue);

	viewMenu->Append(IDT_WORKSPACE_GOTO_RANDOM);

	viewMenu->AppendSeparator();

	viewMenu->Append(IDT_WORKSPACE_TOGGLE_VIEW);

	if( createMainMenu || IsOpAvailable(SJ_OP_ZOOM) )
	{
		SjMenu* zoomMenu = new SjMenu(viewMenu->ShowShortcuts());
		zoomMenu->Append(IDT_ZOOM_IN);
		zoomMenu->Append(IDT_ZOOM_OUT);
		zoomMenu->Append(IDT_ZOOM_NORMAL);
		zoomMenu->AppendSeparator();
		zoomMenu->AppendCheckItem(IDO_SAMEZOOMINALLVIEWS, _("Same zoom in all views"));
		zoomMenu->Check(IDO_SAMEZOOMINALLVIEWS, (g_accelModule->m_flags&SJ_ACCEL_SAME_ZOOM_IN_ALL_VIEWS)!=0);
		viewMenu->Append(0, _("Zoom"), zoomMenu);
	}

	if( createMainMenu || IsAllAvailable() )
	{
		wxString showCoverText; // default by SjAccelModule
		if( m_browser->GetView() == SJ_BROWSER_COVER_VIEW ) showCoverText = _("Show album name");
		viewMenu->AppendCheckItem(IDT_WORKSPACE_SHOW_COVERS, showCoverText);
		viewMenu->Check(IDT_WORKSPACE_SHOW_COVERS, m_browser->AreCoversShown());
	}

	viewMenu->Append(IDT_TOGGLE_TIME_MODE, m_showRemainingTime? _("Show elapsed time") : _("Show remaining time"));
	viewMenu->Enable(IDT_TOGGLE_TIME_MODE, enableQueue);


	if( createMainMenu || !IsKioskStarted() )
	{
		viewMenu->AppendSeparator();

		viewMenu->AppendCheckItem(IDT_ALWAYS_ON_TOP);
		viewMenu->Check(IDT_ALWAYS_ON_TOP, IsAlwaysOnTop());
	}

	viewMenu->AppendSeparator();

	// add vis. toggle
	if( g_visModule ) {
		viewMenu->AppendCheckItem(IDT_START_VIS, _("Video screen"));
		viewMenu->Check(IDT_START_VIS, g_visModule->IsVisStarted());
	}
}
void SjMainFrame::CreateContextMenu_(SjMenu& mainMenu,
                                     bool prependOpen, int idmSettings, bool appendGotoCurrMark,
                                     bool embedFastSearch)
{
	// prepend open/save items (reverse order!)
	/* -- as we have a normal menu bar since 15.1, the context menu can be more focused
	if( prependOpen && IsAllAvailable() )
	{
		if(  mainMenu.GetMenuItemCount() )
		{
			mainMenu.InsertSeparator(0);
		}

		bool enableQueue = m_player.m_queue.GetCount()!=0;
		mainMenu.Insert(0, IDT_UNQUEUE_ALL);
		mainMenu.Enable(IDT_UNQUEUE_ALL, enableQueue);

		mainMenu.Insert(0, IDT_SAVE_PLAYLIST);
		mainMenu.Enable(IDT_SAVE_PLAYLIST, enableQueue);

		mainMenu.Insert(0, IDT_OPEN_FILES);
	}
	*/

	// search
	// -- as we have a normal menu bar since 15.1, the context menu can be more focused (search only added if embedFastSearch set, formally this was always the case)
	if( embedFastSearch && IsOpAvailable(SJ_OP_SEARCH) )
	{
		// open adv. search dialog
		if( mainMenu.GetMenuItemCount() )
		{
			mainMenu.AppendSeparator();
		}

		if( IsAllAvailable() )
		{
			mainMenu.Append(IDT_ADV_SEARCH);
		}

		// "fast search"
		if( embedFastSearch )
		{
			CreateSearchMenu(mainMenu);
		}

		// end search
		mainMenu.Append(IDO_REALLYENDSEARCH, _("End search"));
		mainMenu.Enable(IDO_REALLYENDSEARCH, HasAnySearch());
	}

	// settings / view  / control
	/* -- as we have a normal menu bar since 15.1, the context menu can be more focused
	if( IsAllAvailable() )
	{

		// seperator abottom (sth. will follow in any case, at least "Go to random album")
		if( mainMenu.GetMenuItemCount() )
		{
			mainMenu.AppendSeparator();
		}

		// settings
		mainMenu.Append(idmSettings);

		// view menu
		SjMenu* viewMenu = new SjMenu(mainMenu.ShowShortcuts());
		CreateViewMenu(viewMenu, false, appendGotoCurrMark);
		mainMenu.Append(0, _("View"), viewMenu);

		// control menu
		SjMenu* playbackMenu = new SjMenu(mainMenu.ShowShortcuts());
		CreatePlaybackMenu(playbackMenu, false);
		mainMenu.Append(0, _("Playback"), playbackMenu);
	}
	*/

	// help
	if( IsKioskStarted() )
	{
		mainMenu.Append(IDO_ABOUT, wxString::Format(_("About %s"), SJ_PROGRAM_NAME)+wxString(wxT("...")));
	}
}