]> git.sesse.net Git - vlc/blobdiff - modules/gui/beos/ListViews.h
Removes trailing spaces. Removes tabs.
[vlc] / modules / gui / beos / ListViews.h
index bbe715c61d441304d4a168597408e8dc6dd85d96..30728db826489f6064d2d724062ac709ba0cb0f3 100644 (file)
@@ -1,8 +1,8 @@
 /*****************************************************************************
  * 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>
  *
@@ -10,7 +10,7 @@
  * 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
@@ -18,7 +18,7 @@
  *
  * 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;
 
@@ -33,13 +40,17 @@ class InterfaceWindow;
 class PlaylistItem : public BStringItem
 {
  public:
-                                                       PlaylistItem( const char* name );
-               virtual                         ~PlaylistItem();
+                            PlaylistItem( const char* name );
+        virtual                ~PlaylistItem();
+
+        virtual    void        Draw( BView* owner, BRect frame,
+                                  bool tintedLine,
+                                  uint32 mode,
+                                  bool active = false,
+                                  bool playing = false );
 
-               virtual void            Draw( BView* owner, BRect frame,
-                                                                 bool tintedLine,
-                                                                 bool active = false,
-                                                                 bool playing = false );
+ private:
+        BString                fName;    // additional to BStringItem::Text()
 
 };
 
@@ -47,72 +58,110 @@ class PlaylistItem : public BStringItem
 class DragSortableListView : public BListView
 {
  public:
-                                                       DragSortableListView( BRect frame,
-                                                                                                 const char* name,
-                                                                                                 list_view_type type
-                                                                                                               = B_SINGLE_SELECTION_LIST,
-                                                                                                 uint32 resizingMode
-                                                                                                               = B_FOLLOW_LEFT
-                                                                                                                 | B_FOLLOW_TOP,
-                                                                                                 uint32 flags
-                                                                                                               = B_WILL_DRAW
-                                                                                                                 | B_NAVIGABLE
-                                                                                                                 | B_FRAME_EVENTS );
-       virtual                                 ~DragSortableListView();
-
-                                                       // BListView
-       virtual void                    Draw( BRect updateRect );
-       virtual bool                    InitiateDrag( BPoint point, int32 index,
-                                                                                 bool wasSelected );
-       virtual void                    MessageReceived( BMessage* message );
-       virtual void                    MouseMoved( BPoint where, uint32 transit,
-                                                                               const BMessage* dragMessage );
-       virtual void                    MouseUp( BPoint where );
-       virtual void                    WindowActivated( bool active );
-       virtual void                    DrawItem( BListItem *item, BRect itemFrame,
-                                                                         bool complete = false);
-
-                                                       // DragSortableListView
-       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;
+                            DragSortableListView( BRect frame,
+                                                  const char* name,
+                                                  list_view_type type
+                                                        = B_SINGLE_SELECTION_LIST,
+                                                  uint32 resizingMode
+                                                        = B_FOLLOW_LEFT
+                                                          | B_FOLLOW_TOP,
+                                                  uint32 flags
+                                                        = B_WILL_DRAW
+                                                          | B_NAVIGABLE
+                                                          | B_FRAME_EVENTS );
+    virtual                    ~DragSortableListView();
+
+                            // BListView
+    virtual    void            Draw( BRect updateRect );
+    virtual    bool            InitiateDrag( BPoint point, int32 index,
+                                          bool wasSelected );
+    virtual void            MessageReceived( BMessage* message );
+    virtual void            MouseMoved( BPoint where, uint32 transit,
+                                        const BMessage* dragMessage );
+    virtual void            MouseUp( BPoint where );
+    virtual    void            WindowActivated( bool active );
+    virtual void            DrawItem( BListItem *item, BRect itemFrame,
+                                      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,
-                                                                                 InterfaceWindow* mainWindow,
-                                                                                 VlcWrapper * p_wrapper );
-                                                       ~PlaylistView();
-
-                                                       // BListView
-       virtual void                    AttachedToWindow();
-       virtual void                    MouseDown( BPoint where );
-       virtual void                    KeyDown( const char* bytes, int32 numBytes );
-       virtual void                    Pulse();
-
-                                                       // DragSortableListView
-       virtual BListItem*              CloneItem( int32 atIndex ) const;
-       virtual void                    DrawListItem( BView* owner, int32 index,
-                                                                                 BRect itemFrame ) const;
-       virtual void                    MakeDragMessage( BMessage* message ) const;
-
-                                                       // PlaylistView
-                       void                    SetCurrent( int32 index );
-                       void                    SetPlaying( bool playing );
+                            PlaylistView( intf_thread_t * p_intf,
+                                          BRect frame,
+                                          InterfaceWindow* mainWindow,
+                                          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;
+    virtual    void            MakeDragMessage( BMessage* message ) 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:
-       int32                                   fCurrentIndex;
-       bool                                    fPlaying;
-       InterfaceWindow*                fMainWindow;
-       
-       VlcWrapper *            p_wrapper;
+            BListItem*        _PlayingItem() const;
+            void            _SetPlayingIndex( BListItem* item );
+
+    intf_thread_t * p_intf;
+
+    int32                    fCurrentIndex;
+    bool                    fPlaying;
+    uint32                    fDisplayMode;
+    InterfaceWindow*        fMainWindow;
+    BMessage*                fSelectionChangeMessage;
+    PlaylistItem*            fLastClickedItem;
 };
 
 #endif // LIST_VIEWS_H