/*****************************************************************************
* ListViews.h: BeOS interface list view class prototype
*****************************************************************************
- * Copyright (C) 1999, 2000, 2001 VideoLAN
- * $Id: ListViews.h,v 1.2 2003/01/22 01:13:22 titer Exp $
+ * Copyright (C) 1999, 2000, 2001 the VideoLAN team
+ * $Id$
*
* Authors: Stephan Aßmus <stippi@yellowbites.com>
*
* 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
*
* 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 LIST_VIEWS_H
#include <ListItem.h>
#include <ListView.h>
+#include <String.h>
+
+enum
+{
+ DISPLAY_PATH = 0,
+ DISPLAY_NAME,
+};
class InterfaceWindow;
virtual void Draw( BView* owner, BRect frame,
bool tintedLine,
+ uint32 mode,
bool active = false,
bool playing = false );
+ private:
+ BString fName; // additional to BStringItem::Text()
+
};
// DragSortableListView
bool complete = false);
// DragSortableListView
+ virtual void ModifiersChanged(); // called by window
+
+ virtual void MoveItems( BList& items, int32 toIndex );
+ virtual void CopyItems( BList& items, int32 toIndex );
+ virtual void RemoveItemList( BList& indices );
+ void RemoveSelected(); // uses RemoveItemList()
+ int32 CountSelectedItems() const;
+
virtual BListItem* CloneItem( int32 atIndex ) const = 0;
virtual void DrawListItem( BView* owner, int32 index,
BRect itemFrame ) const = 0;
virtual void MakeDragMessage( BMessage* message ) const = 0;
private:
- int32 fDropIndex;
+ void _SetDropAnticipationRect( BRect r );
+ void _SetDropIndex( int32 index );
+ void _RemoveDropAnticipationRect();
+
+ BRect fDropRect;
+ BMessage fDragMessageCopy;
+
+ protected:
+ int32 fDropIndex;
};
// PlaylistView
class PlaylistView : public DragSortableListView
{
public:
- PlaylistView( BRect frame,
+ PlaylistView( intf_thread_t * p_intf,
+ BRect frame,
InterfaceWindow* mainWindow,
- VlcWrapper * p_wrapper );
+ BMessage* selectionChangeMessage = NULL );
~PlaylistView();
// BListView
virtual void AttachedToWindow();
+ virtual void MessageReceived( BMessage* message );
virtual void MouseDown( BPoint where );
virtual void KeyDown( const char* bytes, int32 numBytes );
virtual void Pulse();
+ virtual void SelectionChanged();
// DragSortableListView
+ virtual void MoveItems( BList& items, int32 toIndex );
+ virtual void CopyItems( BList& items, int32 toIndex );
+ virtual void RemoveItemList( BList& indices );
+
virtual BListItem* CloneItem( int32 atIndex ) const;
virtual void DrawListItem( BView* owner, int32 index,
BRect itemFrame ) const;
// PlaylistView
void SetCurrent( int32 index );
void SetPlaying( bool playing );
+ void RebuildList();
+
+ void SortReverse();
+ void SortByPath();
+ void SortByName();
+
+ void SetDisplayMode( uint32 mode );
+ uint32 DisplayMode() const
+ { return fDisplayMode; }
private:
+ BListItem* _PlayingItem() const;
+ void _SetPlayingIndex( BListItem* item );
+
+ intf_thread_t * p_intf;
+
int32 fCurrentIndex;
bool fPlaying;
+ uint32 fDisplayMode;
InterfaceWindow* fMainWindow;
-
- VlcWrapper * p_wrapper;
+ BMessage* fSelectionChangeMessage;
+ PlaylistItem* fLastClickedItem;
};
#endif // LIST_VIEWS_H