intf.h
上传用户:riyaled888
上传日期:2009-03-27
资源大小:7338k
文件大小:3k
源码类别:

多媒体

开发平台:

MultiPlatform

  1. /*****************************************************************************
  2.  * intf.h: Qt interface
  3.  *****************************************************************************
  4.  * Copyright (C) 1999, 2000 VideoLAN
  5.  * $Id: intf.h 6961 2004-03-05 17:34:23Z sam $
  6.  *
  7.  * Authors: Samuel Hocevar <sam@zoy.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., 59 Temple Place - Suite 330, Boston, MA  02111, USA.
  22.  *****************************************************************************/
  23. /*****************************************************************************
  24.  * Preamble
  25.  *****************************************************************************/
  26. #include <vlc/vlc.h>
  27. #include <vlc/intf.h>
  28. #include <qapplication.h>
  29. #include <qmainwindow.h>
  30. #include <qtoolbar.h>
  31. #include <qtoolbutton.h>
  32. #include <qwhatsthis.h>
  33. #include <qpushbutton.h>
  34. #include <qfiledialog.h>
  35. #include <qslider.h>
  36. #include <qlcdnumber.h>
  37. #include <qmenubar.h>
  38. #include <qstatusbar.h>
  39. #include <qmessagebox.h>
  40. #include <qlabel.h> 
  41. #include <qtimer.h> 
  42. #include <qiconset.h> 
  43. #include <qvbox.h>
  44. #include <qhbox.h>
  45. /*****************************************************************************
  46.  * Local Qt slider class
  47.  *****************************************************************************/
  48. class IntfSlider : public QSlider
  49. {
  50.     Q_OBJECT
  51. public:
  52.     IntfSlider( intf_thread_t *, QWidget * );  /* Constructor and destructor */
  53.     ~IntfSlider();
  54.     bool b_free;                                     /* Is the slider free ? */
  55.     int  oldvalue   ( void ) { return i_oldvalue; };
  56.     void setOldValue( int i_value ) { i_oldvalue = i_value; };
  57. private slots:
  58.     void SlideStart ( void ) { b_free = FALSE; };
  59.     void SlideStop  ( void ) { b_free = TRUE; };
  60. private:
  61.     intf_thread_t *p_intf;
  62.     int  i_oldvalue;
  63. };
  64. /*****************************************************************************
  65.  * Local Qt interface window class
  66.  *****************************************************************************/
  67. class IntfWindow : public QMainWindow
  68. {
  69.     Q_OBJECT
  70. public:
  71.     IntfWindow( intf_thread_t * );
  72.     ~IntfWindow();
  73. private slots:
  74.     void Manage ( void );
  75.     void FileOpen  ( void );
  76.     void FileQuit  ( void );
  77.     void PlaybackPlay  ( void );
  78.     void PlaybackPause ( void );
  79.     void PlaybackSlow  ( void );
  80.     void PlaybackFast  ( void );
  81.     void PlaylistPrev  ( void );
  82.     void PlaylistNext  ( void );
  83.     void DateDisplay  ( int );
  84.     void About ( void );
  85.     void Unimplemented( void ) { msg_Warn( p_intf, "unimplemented" ); };
  86. private:
  87.     intf_thread_t *p_intf;
  88.     IntfSlider *p_slider;
  89.     QToolBar   *p_toolbar;
  90.     QPopupMenu *p_popup;
  91.     QLabel     *p_date;
  92. };