+ fPreferencesWindow = new PreferencesWindow( p_intf, window_rect, "Preferences" );
+ window_rect.Set( screen_rect.right - 500,
+ screen_rect.top + 50,
+ screen_rect.right - 150,
+ screen_rect.top + 250 );
+ fPlaylistWindow = new PlayListWindow( window_rect, "Playlist", this, p_intf );
+ window_rect.Set( screen_rect.right - 500,
+ screen_rect.top + 300,
+ screen_rect.right - 150,
+ screen_rect.top + 600 );
+ fMessagesWindow = new MessagesWindow( p_intf, window_rect, "Messages" );
+
+ // set the title bar
+ SetName( "interface" );
+ SetTitle( VOUT_TITLE );
+
+ // the media control view
+ p_mediaControl = new MediaControlView( BRect( 0.0, 0.0, 250.0, 50.0 ),
+ p_intf );
+ p_mediaControl->SetViewColor( ui_color( B_PANEL_BACKGROUND_COLOR ) );
+
+ float width, height;
+ p_mediaControl->GetPreferredSize( &width, &height );
+
+ // set up the main menu
+ fMenuBar = new BMenuBar( BRect(0.0, 0.0, width, 15.0), "main menu",
+ B_FOLLOW_NONE, B_ITEMS_IN_ROW, false );
+
+ // make menu bar resize to correct height
+ float menuWidth, menuHeight;
+ fMenuBar->GetPreferredSize( &menuWidth, &menuHeight );
+ fMenuBar->ResizeTo( width, menuHeight ); // don't change! it's a workarround!
+ // take care of proper size for ourself
+ height += fMenuBar->Bounds().Height();
+ ResizeTo( width, height );
+
+ p_mediaControl->MoveTo( fMenuBar->Bounds().LeftBottom() + BPoint(0.0, 1.0) );
+ AddChild( fMenuBar );
+ AddChild( p_mediaControl );
+
+ // Add the file Menu
+ BMenu* fileMenu = new BMenu( "File" );
+ fMenuBar->AddItem( fileMenu );
+ fileMenu->AddItem( new BMenuItem( "Open File" B_UTF8_ELLIPSIS,
+ new BMessage( OPEN_FILE ), 'O') );
+
+ fileMenu->AddItem( new CDMenu( "Open Disc" ) );
+
+ fileMenu->AddItem( new BMenuItem( "Load a subtitle file" B_UTF8_ELLIPSIS,
+ new BMessage( LOAD_SUBFILE ) ) );
+
+ fileMenu->AddSeparatorItem();
+ BMenuItem* item = new BMenuItem( "About" B_UTF8_ELLIPSIS,
+ new BMessage( B_ABOUT_REQUESTED ), 'A');
+ item->SetTarget( be_app );
+ fileMenu->AddItem( item );
+ fileMenu->AddItem( new BMenuItem( "Quit", new BMessage( B_QUIT_REQUESTED ), 'Q') );
+
+ fLanguageMenu = new LanguageMenu("Language", AUDIO_ES, p_wrapper);
+ fSubtitlesMenu = new LanguageMenu("Subtitles", SPU_ES, p_wrapper);
+
+ /* Add the Audio menu */
+ fAudioMenu = new BMenu( "Audio" );
+ fMenuBar->AddItem ( fAudioMenu );
+ fAudioMenu->AddItem( fLanguageMenu );
+ fAudioMenu->AddItem( fSubtitlesMenu );
+
+ fPrevTitleMI = new BMenuItem( "Prev Title", new BMessage( PREV_TITLE ) );
+ fNextTitleMI = new BMenuItem( "Next Title", new BMessage( NEXT_TITLE ) );
+ fPrevChapterMI = new BMenuItem( "Prev Chapter", new BMessage( PREV_CHAPTER ) );
+ fNextChapterMI = new BMenuItem( "Next Chapter", new BMessage( NEXT_CHAPTER ) );
+
+ /* Add the Navigation menu */
+ fNavigationMenu = new BMenu( "Navigation" );
+ fMenuBar->AddItem( fNavigationMenu );
+ fNavigationMenu->AddItem( fPrevTitleMI );
+ fNavigationMenu->AddItem( fNextTitleMI );
+ fNavigationMenu->AddItem( fTitleMenu = new TitleMenu( "Go to Title", p_intf ) );
+ fNavigationMenu->AddSeparatorItem();
+ fNavigationMenu->AddItem( fPrevChapterMI );
+ fNavigationMenu->AddItem( fNextChapterMI );
+ fNavigationMenu->AddItem( fChapterMenu = new ChapterMenu( "Go to Chapter", p_intf ) );
+
+ /* Add the Speed menu */
+ fSpeedMenu = new BMenu( "Speed" );
+ fSpeedMenu->SetRadioMode( true );
+ fSpeedMenu->AddItem( fSlowerMI = new BMenuItem( "Slower", new BMessage( SLOWER_PLAY ) ) );
+ fNormalMI = new BMenuItem( "Normal", new BMessage( NORMAL_PLAY ) );
+ fNormalMI->SetMarked(true); // default to normal speed
+ fSpeedMenu->AddItem( fNormalMI );
+ fSpeedMenu->AddItem( fFasterMI = new BMenuItem( "Faster", new BMessage( FASTER_PLAY) ) );
+ fSpeedMenu->SetTargetForItems( this );
+ fMenuBar->AddItem( fSpeedMenu );
+
+ /* Add the Show menu */
+ fShowMenu = new BMenu( "Show" );
+ fShowMenu->AddItem( new BMenuItem( "Play List" B_UTF8_ELLIPSIS,
+ new BMessage( OPEN_PLAYLIST ), 'P') );
+ fShowMenu->AddItem( new BMenuItem( "Messages" B_UTF8_ELLIPSIS,
+ new BMessage( OPEN_MESSAGES ), 'M' ) );
+ fShowMenu->AddItem( new BMenuItem( "Settings" B_UTF8_ELLIPSIS,
+ new BMessage( OPEN_PREFERENCES ), 'S' ) );
+ fMenuBar->AddItem( fShowMenu );
+
+ /* Prepare fow showing */
+ _SetMenusEnabled( false );
+ p_mediaControl->SetEnabled( false );