/*****************************************************************************
* PreferencesWindow.h
*****************************************************************************
- * Copyright (C) 1999, 2000, 2001 VideoLAN
- * $Id: PreferencesWindow.h,v 1.17 2003/05/25 17:21:36 titer Exp $
+ * Copyright (C) 1999, 2000, 2001 the VideoLAN team
+ * $Id$
*
- * Authors: Eric Petit <titer@videolan.org>
+ * Authors: Eric Petit <titer@m0k.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
*
* 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.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
*****************************************************************************/
#ifndef BEOS_PREFERENCES_WINDOW_H
#define PREFS_APPLY 'prap'
#define PREFS_SAVE 'prsa'
-class StringItemWithView : public BStringItem
+class VTextView : public BTextView
{
- public:
- StringItemWithView( const char * text )
- : BStringItem( text )
- {
- fConfigBox = NULL;
- fConfigScroll = NULL;
- fConfigView = NULL;
- fText = strdup( text );
- }
-
- /* Here we store the config BBox associated to this module */
- BBox * fConfigBox;
- BScrollView * fConfigScroll;
- BView * fConfigView;
- char * fText;
-};
-
-class ConfigTextControl : public BTextControl
-{
- public:
- ConfigTextControl( BRect rect, char * label,
- int type, char * configName )
- : BTextControl( rect, "ConfigTextControl", label,
- "", new BMessage() )
- {
- fConfigType = type;
- fConfigName = strdup( configName );
- }
-
- int fConfigType;
- char * fConfigName;
+ public:
+ VTextView( BRect frame, const char *name,
+ uint32 resizingMode, uint32 flags );
+ void FrameResized( float width, float height );
};
-class ConfigCheckBox : public BCheckBox
+class VTextControl : public BTextControl
{
public:
- ConfigCheckBox( BRect rect, char * label,
- char * configName )
- : BCheckBox( rect, "ConfigCheckBox", label,
- new BMessage() )
- {
- fConfigName = strdup( configName );
- }
-
- char * fConfigName;
+ VTextControl( BRect frame, const char *name,
+ const char *label, const char *text,
+ BMessage * message, uint32 resizingMode );
+ void FrameResized( float width, float height );
};
-class ConfigMenuField : public BMenuField
+class ConfigWidget : public BView
{
public:
- ConfigMenuField( BRect rect, char * label,
- BPopUpMenu * popUp, char * configName )
- : BMenuField( rect, "ConfigMenuField", label,
- popUp, new BMessage() )
- {
- fConfigName = strdup( configName );
- }
-
- char * fConfigName;
+ ConfigWidget( intf_thread_t * p_intf, BRect rect,
+ module_config_t * p_item );
+ ~ConfigWidget();
+ bool InitCheck() { return fInitOK; }
+ void Apply( bool doIt );
+
+ private:
+ intf_thread_t * p_intf;
+
+ bool fInitOK;
+ int fType;
+ char * fName;
+
+ VTextControl * fTextControl;
+ BCheckBox * fCheckBox;
+ BPopUpMenu * fPopUpMenu;
+ BMenuField * fMenuField;
+ BSlider * fSlider;
+ BStringView * fStringView;
+ BCheckBox * fAltCheck;
+ BCheckBox * fCtrlCheck;
+ BCheckBox * fShiftCheck;
};
-class ConfigSlider : public BSlider
+class ConfigItem : public BStringItem
{
public:
- ConfigSlider( BRect rect, char * label, int type,
- int min, int max, char * configName )
- : BSlider( rect, "ConfigSlider", label,
- new BMessage(), min, max )
- {
- fConfigType = type;
- fConfigName = strdup( configName );
- }
-
- int fConfigType;
- char * fConfigName;
+ ConfigItem( intf_thread_t * p_intf,
+ char * name, bool subModule,
+ int objectId, int type, char * help );
+ ~ConfigItem();
+ int ObjectId() { return fObjectId; }
+ BBox * Box() { return fBox; }
+ void UpdateScrollBar();
+ void ResetScroll();
+ void Apply( bool doIt );
+
+ private:
+ intf_thread_t * p_intf;
+
+ bool fSubModule;
+ int fObjectId;
+ int fType;
+ char * fHelp;
+
+ BBox * fBox;
+ VTextView * fTextView;
+ BScrollView * fScroll;
+ BView * fView;
};
class PreferencesWindow : public BWindow
virtual void FrameResized( float, float );
void Update();
- void UpdateScrollBar();
- void ApplyChanges( bool doIt );
- void SaveChanges();
+ void Apply( bool doIt );
void ReallyQuit();
private:
- void BuildConfigView( StringItemWithView * stringItem,
+ void BuildConfigView( ConfigItem * stringItem,
module_config_t ** pp_item,
bool stop_after_category );
- BView * fPrefsView;
- BOutlineListView * fOutline;
- BView * fDummyView;
- BScrollView * fConfigScroll;
- StringItemWithView * fCurrent;
+ BView * fPrefsView;
+ BOutlineListView * fOutline;
+ BView * fDummyView;
+ ConfigItem * fCurrent;
- intf_thread_t * p_intf;
+ intf_thread_t * p_intf;
};
#endif // BEOS_PREFERENCES_WINDOW_H