Forgot to add files :|
authorEric Petit <titer@videolan.org>
Mon, 28 Oct 2002 17:18:18 +0000 (17:18 +0000)
committerEric Petit <titer@videolan.org>
Mon, 28 Oct 2002 17:18:18 +0000 (17:18 +0000)
modules/gui/beos/PreferencesWindow.cpp [new file with mode: 0644]
modules/gui/beos/PreferencesWindow.h [new file with mode: 0644]

diff --git a/modules/gui/beos/PreferencesWindow.cpp b/modules/gui/beos/PreferencesWindow.cpp
new file mode 100644 (file)
index 0000000..d5ffea1
--- /dev/null
@@ -0,0 +1,187 @@
+/*****************************************************************************
+ * PreferencesWindow.cpp: beos interface
+ *****************************************************************************
+ * Copyright (C) 1999, 2000, 2001 VideoLAN
+ * $Id: PreferencesWindow.cpp,v 1.1 2002/10/28 17:18:18 titer Exp $
+ *
+ * Authors: Eric Petit <titer@videolan.org>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111, USA.
+ *****************************************************************************/
+
+/* BeOS headers */
+#include <InterfaceKit.h>
+
+/* VLC headers */
+#include <vlc/vlc.h>
+#include <vlc/intf.h>
+
+/* BeOS module headers */
+#include "VlcWrapper.h"
+#include "MsgVals.h"
+#include "PreferencesWindow.h"
+
+
+/*****************************************************************************
+ * Preferences::PreferencesWindow
+ *****************************************************************************/
+PreferencesWindow::PreferencesWindow( BRect frame, const char* name,
+                                                               intf_thread_t *p_interface )
+       :       BWindow( frame, name, B_FLOATING_WINDOW_LOOK, B_NORMAL_WINDOW_FEEL,
+                                B_NOT_ZOOMABLE | B_NOT_RESIZABLE )
+{
+       p_intf = p_interface;
+
+    BRect rect = Bounds();
+    p_preferences_view = new BView( rect, "preferences view",
+                                    B_FOLLOW_ALL, B_WILL_DRAW );
+    p_preferences_view->SetViewColor( ui_color( B_PANEL_BACKGROUND_COLOR ) );
+    
+    /* Create the "OK" button */
+    rect.Set( 320, 160, 390, 185);
+    BButton *p_button = new BButton( rect, NULL, "OK", new BMessage( PREFS_OK ) );
+    p_preferences_view->AddChild( p_button );
+    
+    /* Create the "Cancel" button */
+    rect.OffsetBy( -80, 0 );
+    p_button = new BButton( rect, NULL, "Cancel", new BMessage( PREFS_CANCEL ) );
+    p_preferences_view->AddChild( p_button );
+    
+    /* Create the box */
+    rect.Set( 10, 10, 390, 150 );
+    BBox *p_box = new BBox( rect, "preferences box", B_FOLLOW_ALL );
+    
+    /* Create the post-processing slider */
+    rect.Set( 10, 10, 370, 50 );
+    p_pp_slider = new BSlider( rect, "post-processing", "MPEG4 post-processing level",
+                              new BMessage( SLIDER_UPDATE ),
+                              0, 6, B_TRIANGLE_THUMB, B_FOLLOW_LEFT, B_WILL_DRAW );
+    p_pp_slider->SetHashMarks(B_HASH_MARKS_BOTTOM);
+    p_pp_slider->SetHashMarkCount( 7 );
+    p_pp_slider->SetLimitLabels("None","Maximum");
+    p_pp_slider->SetValue( config_GetInt( p_intf, "ffmpeg-pp-q" ) );
+    p_box->AddChild( p_pp_slider );
+    
+    /* Create the luminence slider */
+    rect.Set( 10, 65, 370, 90 );
+    p_lum_slider = new BSlider( rect, "luminence", "Luminence",
+                          new BMessage( SLIDER_UPDATE ),
+                          0, 255, B_TRIANGLE_THUMB, B_FOLLOW_LEFT, B_WILL_DRAW );
+    p_lum_slider->SetValue( config_GetInt( p_intf, "Y plan" ) );
+    p_box->AddChild( p_lum_slider );
+    
+    rect.Set( 55, 110, 370, 120 );
+    p_restart_string = new BStringView( rect, "restart", "",
+                                        B_FOLLOW_ALL, B_WILL_DRAW);
+    p_box->AddChild( p_restart_string );
+    
+    p_preferences_view-> AddChild( p_box );
+    
+    AddChild( p_preferences_view );
+
+       // start window thread in hidden state
+       Hide();
+       Show();
+}
+
+/*****************************************************************************
+ * PreferencesWindow::~PreferencesWindow
+ *****************************************************************************/
+PreferencesWindow::~PreferencesWindow()
+{
+}
+
+/*****************************************************************************
+ * PreferencesWindow::QuitRequested
+ *****************************************************************************/
+bool PreferencesWindow::QuitRequested()
+{
+    CancelChanges();
+       Hide();
+       return false;
+}
+
+/*****************************************************************************
+ * PreferencesWindow::MessageReceived
+ *****************************************************************************/
+void PreferencesWindow::MessageReceived( BMessage * p_message )
+{
+       switch ( p_message->what )
+       {
+           case SLIDER_UPDATE:
+           {
+               p_restart_string->SetText( "Changes will take effect when you restart playback" );
+               break;
+           }
+           case PREFS_CANCEL:
+           {
+               CancelChanges();
+               Hide();
+               break;
+           }
+           case PREFS_OK:
+           {
+               ApplyChanges();
+               Hide();
+           }
+               default:
+                       BWindow::MessageReceived( p_message );
+                       break;
+       }
+}
+
+/*****************************************************************************
+ * PreferencesWindow::FrameResized
+ *****************************************************************************/
+void PreferencesWindow::FrameResized(float width, float height)
+{
+}
+
+/*****************************************************************************
+ * PreferencesWindow::ReallyQuit
+ *****************************************************************************/
+void PreferencesWindow::ReallyQuit()
+{
+    Hide();
+    Quit();
+}
+
+/*****************************************************************************
+ * PreferencesWindow::CancelChanges
+ *****************************************************************************/
+void PreferencesWindow::CancelChanges()
+{
+    p_pp_slider->SetValue( 0 );
+    p_lum_slider->SetValue( 255 );
+    p_restart_string->SetText( "" );
+}
+
+/*****************************************************************************
+ * PreferencesWindow::ApplyChanges
+ *****************************************************************************/
+void PreferencesWindow::ApplyChanges()
+{
+    config_PutInt( p_intf, "ffmpeg-pp-q", p_pp_slider->Value() );
+    config_PutInt( p_intf, "Y plan", p_lum_slider->Value() );
+    if( p_lum_slider->Value() < 255 )
+    {
+        config_PutPsz( p_intf, "filter", "yuv" );
+    }
+    else
+    {
+        config_PutPsz( p_intf, "filter", NULL );
+    }
+    p_restart_string->SetText( "" );
+}
diff --git a/modules/gui/beos/PreferencesWindow.h b/modules/gui/beos/PreferencesWindow.h
new file mode 100644 (file)
index 0000000..74c3a88
--- /dev/null
@@ -0,0 +1,56 @@
+/*****************************************************************************
+ * PreferencesWindow.h
+ *****************************************************************************
+ * Copyright (C) 1999, 2000, 2001 VideoLAN
+ * $Id: PreferencesWindow.h,v 1.1 2002/10/28 17:18:18 titer Exp $
+ *
+ * Authors: Eric Petit <titer@videolan.org>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111, USA.
+ *****************************************************************************/
+
+#ifndef BEOS_PREFERENCES_WINDOW_H
+#define BEOS_PREFERENCES_WINDOW_H
+
+#include <Window.h>
+
+#define PREFS_OK      'prok'
+#define PREFS_CANCEL  'prca'
+#define SLIDER_UPDATE 'slup'
+
+class PreferencesWindow : public BWindow
+{
+    public:
+                         PreferencesWindow( BRect frame,
+                                            const char* name,
+                                            intf_thread_t *p_interface );
+        virtual          ~PreferencesWindow();
+        virtual bool     QuitRequested();
+        virtual void     MessageReceived(BMessage *message);
+        virtual void     FrameResized(float width, float height);
+        void             ReallyQuit();
+
+    private:
+        void             CancelChanges();
+        void             ApplyChanges();
+        intf_thread_t *  p_intf;
+        BView *          p_preferences_view;
+        BSlider *        p_pp_slider;
+        BSlider *        p_lum_slider;
+        BStringView *    p_restart_string;
+};
+
+#endif // BEOS_PREFERENCES_WINDOW_H
+