panels.hpp
上传用户:kjfoods
上传日期:2020-07-06
资源大小:29949k
文件大小:3k
源码类别:

midi

开发平台:

Unix_Linux

  1. /*****************************************************************************
  2.  * panels.hpp : Panels for the playlist
  3.  ****************************************************************************
  4.  * Copyright (C) 2000-2005 the VideoLAN team
  5.  * $Id: 6876f0c03598b09e4e4686d77292d7f68aaaecd0 $
  6.  *
  7.  * Authors: Clément Stenac <zorglub@videolan.org>
  8.  *
  9.  * This program is free software; you can redistribute it and/or modify
  10.  * it under the terms of the GNU General Public License as published by
  11.  * the Free Software Foundation; either version 2 of the License, or
  12.  * (at your option) any later version.
  13.  *
  14.  * This program is distributed in the hope that it will be useful,
  15.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  16.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  17.  * GNU General Public License for more details.
  18.  *
  19.  * You should have received a copy of the GNU General Public License
  20.  * along with this program; if not, write to the Free Software
  21.  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
  22.  *****************************************************************************/
  23. #ifndef _PLPANELS_H_
  24. #define _PLPANELS_H_
  25. #ifdef HAVE_CONFIG_H
  26. # include "config.h"
  27. #endif
  28. #include "qt4.hpp"
  29. #include "components/playlist/playlist.hpp"
  30. #include <QModelIndex>
  31. #include <QWidget>
  32. #include <QString>
  33. class QSignalMapper;
  34. class QTreeView;
  35. class PLModel;
  36. class QPushButton;
  37. class QKeyEvent;
  38. class PLPanel: public QWidget
  39. {
  40.     Q_OBJECT;
  41. public:
  42.     PLPanel( PlaylistWidget *p, intf_thread_t *_p_intf ) : QWidget( p )
  43.     {
  44.         p_intf = _p_intf;
  45.         parent = p;
  46.     }
  47.     virtual ~PLPanel() {};
  48. protected:
  49.     intf_thread_t *p_intf;
  50.     QFrame *parent;
  51. public slots:
  52.     virtual void setRoot( int ) = 0;
  53. };
  54. class StandardPLPanel: public PLPanel
  55. {
  56.     Q_OBJECT;
  57. public:
  58.     StandardPLPanel( PlaylistWidget *, intf_thread_t *,
  59.                      playlist_t *,playlist_item_t * );
  60.     virtual ~StandardPLPanel();
  61. protected:
  62.     virtual void keyPressEvent( QKeyEvent *e );
  63. protected:
  64.     PLModel *model;
  65.     friend class PlaylistWidget;
  66. private:
  67.     QTreeView *view;
  68.     QPushButton *repeatButton, *randomButton, *addButton, *gotoPlayingButton;
  69.     int currentRootId;
  70.     QSignalMapper *ContextUpdateMapper;
  71. public slots:
  72.     void removeItem( int );
  73.     virtual void setRoot( int );
  74. private slots:
  75.     void deleteSelection();
  76.     void handleExpansion( const QModelIndex& );
  77.     void toggleRandom();
  78.     void toggleRepeat();
  79.     void gotoPlayingItem();
  80.     void doPopup( QModelIndex index, QPoint point );
  81.     void search( const QString& searchText );
  82.     void setCurrentRootId( int );
  83.     void popupAdd();
  84.     void popupSelectColumn( QPoint );
  85.     void checkSortingIndicator( int );
  86. };
  87. #endif