* 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 $
+ * $Id: ListViews.h,v 1.4 2003/02/03 17:18:48 stippi Exp $
*
* Authors: Stephan Aßmus <stippi@yellowbites.com>
*
#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
public:
PlaylistView( BRect frame,
InterfaceWindow* mainWindow,
- VlcWrapper * p_wrapper );
+ VlcWrapper* 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 );
+
int32 fCurrentIndex;
bool fPlaying;
+ uint32 fDisplayMode;
InterfaceWindow* fMainWindow;
+ BMessage* fSelectionChangeMessage;
+ PlaylistItem* fLastClickedItem;
- VlcWrapper * p_wrapper;
+ VlcWrapper* fVlcWrapper;
};
#endif // LIST_VIEWS_H