From 588c55d5d77e58618cc94a8a9eeacb01bafeef2d Mon Sep 17 00:00:00 2001 From: Eric Petit Date: Mon, 28 Oct 2002 16:55:05 +0000 Subject: [PATCH] - Added a small preferences window - Fixes --- modules/gui/beos/InterfaceWindow.cpp | 24 ++++++++++++++++++++---- modules/gui/beos/InterfaceWindow.h | 6 +++++- modules/gui/beos/Modules.am | 2 ++ modules/gui/beos/MsgVals.h | 3 ++- modules/gui/beos/VideoOutput.cpp | 13 ++++++++----- modules/gui/beos/VideoWindow.h | 19 ++++++++++--------- 6 files changed, 47 insertions(+), 20 deletions(-) diff --git a/modules/gui/beos/InterfaceWindow.cpp b/modules/gui/beos/InterfaceWindow.cpp index 6477c07bfe..2e43c342f2 100644 --- a/modules/gui/beos/InterfaceWindow.cpp +++ b/modules/gui/beos/InterfaceWindow.cpp @@ -2,7 +2,7 @@ * InterfaceWindow.cpp: beos interface ***************************************************************************** * Copyright (C) 1999, 2000, 2001 VideoLAN - * $Id: InterfaceWindow.cpp,v 1.3 2002/10/10 23:11:52 titer Exp $ + * $Id: InterfaceWindow.cpp,v 1.4 2002/10/28 16:55:05 titer Exp $ * * Authors: Jean-Marc Dressler * Samuel Hocevar @@ -46,6 +46,7 @@ #include "MsgVals.h" #include "MediaControlView.h" #include "PlayListWindow.h" +#include "PreferencesWindow.h" #include "VlcWrapper.h" #include "InterfaceWindow.h" @@ -71,11 +72,14 @@ InterfaceWindow::InterfaceWindow( BRect frame, const char *name, FIND_ANYWHERE ); fPlaylistIsEmpty = (p_playlist->i_size < 0); - fPlaylistWindow = new PlayListWindow( BRect( 20.0, 20.0, 170.0, 320.0 ), + fPlaylistWindow = new PlayListWindow( BRect( 100.0, 100.0, 400.0, 350.0 ), "Playlist", p_playlist, this, p_intf ); + fPreferencesWindow = new PreferencesWindow( BRect( 100, 400, 500, 595 ), + "Preferences", + p_intf ); // set the title bar SetName( "interface" ); @@ -160,7 +164,12 @@ InterfaceWindow::InterfaceWindow( BRect frame, const char *name, fSpeedMenu->SetTargetForItems( this ); fMenuBar->AddItem( fSpeedMenu ); - + /* Add the Settings menu */ + fSettingsMenu = new BMenu( "Settings" ); + fSettingsMenu->AddItem( fPreferencesMI = + new BMenuItem( "Preferences", new BMessage( OPEN_PREFERENCES ) ) ); + fMenuBar->AddItem( fSettingsMenu ); + /* Add the Config menu */ // BMenu* configMenu = new BMenu( "Config" ); // menu_bar->AddItem( configMenu ); @@ -467,7 +476,14 @@ void InterfaceWindow::MessageReceived( BMessage * p_message ) _UpdatePlaylist(); } break; - + + case OPEN_PREFERENCES: + if (fPreferencesWindow->IsHidden()) + fPreferencesWindow->Show(); + else + fPreferencesWindow->Activate(); + break; + default: BWindow::MessageReceived( p_message ); break; diff --git a/modules/gui/beos/InterfaceWindow.h b/modules/gui/beos/InterfaceWindow.h index 209c108422..671f190904 100644 --- a/modules/gui/beos/InterfaceWindow.h +++ b/modules/gui/beos/InterfaceWindow.h @@ -2,7 +2,7 @@ * InterfaceWindow.h: BeOS interface window class prototype ***************************************************************************** * Copyright (C) 1999, 2000, 2001 VideoLAN - * $Id: InterfaceWindow.h,v 1.2 2002/09/30 18:30:27 titer Exp $ + * $Id: InterfaceWindow.h,v 1.3 2002/10/28 16:55:05 titer Exp $ * * Authors: Jean-Marc Dressler * Tony Castley @@ -34,6 +34,7 @@ class BMenuBar; class MediaControlView; class PlayListWindow; class BFilePanel; +class PreferencesWindow; class CDMenu : public BMenu { @@ -130,6 +131,7 @@ class InterfaceWindow : public BWindow bool fPlaylistIsEmpty; BFilePanel* fFilePanel; PlayListWindow* fPlaylistWindow; + PreferencesWindow* fPreferencesWindow; BMenuBar* fMenuBar; BMenuItem* fNextTitleMI; BMenuItem* fPrevTitleMI; @@ -139,6 +141,7 @@ class InterfaceWindow : public BWindow BMenuItem* fSlowerMI; BMenuItem* fNormalMI; BMenuItem* fFasterMI; + BMenuItem* fPreferencesMI; BMenu* fAudioMenu; BMenu* fNavigationMenu; BMenu* fTitleMenu; @@ -146,6 +149,7 @@ class InterfaceWindow : public BWindow BMenu* fLanguageMenu; BMenu* fSubtitlesMenu; BMenu* fSpeedMenu; + BMenu* fSettingsMenu; bigtime_t fLastUpdateTime; BMessage* fSettings; // we keep the message arround // for forward compatibility diff --git a/modules/gui/beos/Modules.am b/modules/gui/beos/Modules.am index 972e2d1e11..5cc8e5d744 100644 --- a/modules/gui/beos/Modules.am +++ b/modules/gui/beos/Modules.am @@ -8,6 +8,7 @@ SOURCES_beos = \ modules/gui/beos/DrawingTidbits.cpp \ modules/gui/beos/TransportButton.cpp \ modules/gui/beos/PlayListWindow.cpp \ + modules/gui/beos/PreferencesWindow.cpp \ modules/gui/beos/MediaControlView.cpp \ modules/gui/beos/VlcWrapper.cpp @@ -19,6 +20,7 @@ noinst_HEADERS += \ modules/gui/beos/MediaControlView.h \ modules/gui/beos/MsgVals.h \ modules/gui/beos/PlayListWindow.h \ + modules/gui/beos/PreferencesWindow.h \ modules/gui/beos/TransportButton.h \ modules/gui/beos/VideoWindow.h \ modules/gui/beos/VlcWrapper.h diff --git a/modules/gui/beos/MsgVals.h b/modules/gui/beos/MsgVals.h index 03c0b93422..ebbf9e3f4d 100644 --- a/modules/gui/beos/MsgVals.h +++ b/modules/gui/beos/MsgVals.h @@ -2,7 +2,7 @@ * MsgVals.h ***************************************************************************** * Copyright (C) 2001 VideoLAN - * $Id: MsgVals.h,v 1.2 2002/09/30 18:30:27 titer Exp $ + * $Id: MsgVals.h,v 1.3 2002/10/28 16:55:05 titer Exp $ * * Authors: Tony Castley * Stephan Aßmus @@ -52,6 +52,7 @@ const uint32 PREV_FILE = 'prfl'; const uint32 NEXT_FILE = 'nxfl'; const uint32 NAVIGATE_PREV = 'navp'; // could be chapter, title or file const uint32 NAVIGATE_NEXT = 'navn'; // could be chapter, title or file +const uint32 OPEN_PREFERENCES = 'pref'; const uint32 TOGGLE_ON_TOP = 'ontp'; const uint32 TOGGLE_FULL_SCREEN = 'tgfs'; const uint32 RESIZE_50 = 'rshl'; diff --git a/modules/gui/beos/VideoOutput.cpp b/modules/gui/beos/VideoOutput.cpp index 61a474cd0d..e7b45dd92f 100644 --- a/modules/gui/beos/VideoOutput.cpp +++ b/modules/gui/beos/VideoOutput.cpp @@ -2,7 +2,7 @@ * vout_beos.cpp: beos video output display method ***************************************************************************** * Copyright (C) 2000, 2001 VideoLAN - * $Id: VideoOutput.cpp,v 1.2 2002/09/30 18:30:27 titer Exp $ + * $Id: VideoOutput.cpp,v 1.3 2002/10/28 16:55:05 titer Exp $ * * Authors: Jean-Marc Dressler * Samuel Hocevar @@ -150,7 +150,8 @@ class BackgroundView : public BView /***************************************************************************** * VideoWindow constructor and destructor *****************************************************************************/ -VideoWindow::VideoWindow(int v_width, int v_height, BRect frame) +VideoWindow::VideoWindow(int v_width, int v_height, BRect frame, + vout_thread_t *p_videoout) : BWindow(frame, NULL, B_TITLED_WINDOW, B_NOT_CLOSABLE | B_NOT_MINIMIZABLE), i_width(frame.IntegerWidth()), i_height(frame.IntegerHeight()), @@ -165,6 +166,8 @@ VideoWindow::VideoWindow(int v_width, int v_height, BRect frame) fInterfaceShowing(false), fInitStatus(B_ERROR) { + p_vout = p_videoout; + // create the view to do the display view = new VLCView( Bounds() ); @@ -477,8 +480,7 @@ VideoWindow::_AllocateBuffers(int width, int height, int* mode) BRect bitmapFrame( 0, 0, width, height ); // read from config, if we are supposed to use overlay at all - int noOverlay = 0; - /* noOverlay = !config_GetInt( , "overlay" ); */ + int noOverlay = !config_GetInt( p_vout, "overlay" ); // test for overlay capability for (int i = 0; i < COLOR_COUNT; i++) { @@ -1262,7 +1264,8 @@ static int BeosOpenDisplay( vout_thread_t *p_vout ) p_vout->p_sys->i_height - 1, BRect( 20, 50, 20 + p_vout->i_window_width - 1, - 50 + p_vout->i_window_height - 1 )); + 50 + p_vout->i_window_height - 1 ), + p_vout ); if( p_vout->p_sys->p_window == NULL ) { msg_Err( p_vout, "cannot allocate VideoWindow" ); diff --git a/modules/gui/beos/VideoWindow.h b/modules/gui/beos/VideoWindow.h index 419e4e991d..75120fc32d 100644 --- a/modules/gui/beos/VideoWindow.h +++ b/modules/gui/beos/VideoWindow.h @@ -2,7 +2,7 @@ * VideoWindow.h: BeOS video window class prototype ***************************************************************************** * Copyright (C) 1999, 2000, 2001 VideoLAN - * $Id: VideoWindow.h,v 1.2 2002/09/30 18:30:27 titer Exp $ + * $Id: VideoWindow.h,v 1.3 2002/10/28 16:55:05 titer Exp $ * * Authors: Jean-Marc Dressler * Tony Castley @@ -83,7 +83,8 @@ class VideoWindow : public BWindow public: VideoWindow(int v_width, int v_height, - BRect frame); + BRect frame, + vout_thread_t *p_vout); virtual ~VideoWindow(); // BWindow @@ -145,14 +146,14 @@ private: int32 height; }; - struct vout_thread_s *p_vout; + vout_thread_t *p_vout; - int32 fTrueWidth; // incomming bitmap size - int32 fTrueHeight; - bool fCorrectAspect; - window_feel fCachedFeel; - bool fInterfaceShowing; - status_t fInitStatus; + int32 fTrueWidth; // incomming bitmap size + int32 fTrueHeight; + bool fCorrectAspect; + window_feel fCachedFeel; + bool fInterfaceShowing; + status_t fInitStatus; }; #endif // BEOS_VIDEO_WINDOW_H -- 2.39.2