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

多媒体

开发平台:

MultiPlatform

  1. /*****************************************************************************
  2.  * dialogs.hpp
  3.  *****************************************************************************
  4.  * Copyright (C) 2003 VideoLAN
  5.  * $Id: dialogs.hpp 8524 2004-08-25 21:32:15Z ipkiss $
  6.  *
  7.  * Authors: Cyril Deguet     <asmax@via.ecp.fr>
  8.  *          Olivier Teuli鑢e <ipkiss@via.ecp.fr>
  9.  *
  10.  * This program is free software; you can redistribute it and/or modify
  11.  * it under the terms of the GNU General Public License as published by
  12.  * the Free Software Foundation; either version 2 of the License, or
  13.  * (at your option) any later version.
  14.  *
  15.  * This program is distributed in the hope that it will be useful,
  16.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  17.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  18.  * GNU General Public License for more details.
  19.  *
  20.  * You should have received a copy of the GNU General Public License
  21.  * along with this program; if not, write to the Free Software
  22.  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111, USA.
  23.  *****************************************************************************/
  24. #ifndef DIALOGS_HPP
  25. #define DIALOGS_HPP
  26. #include "skin_common.hpp"
  27. #include <string>
  28. // Dialogs provider
  29. class Dialogs: public SkinObject
  30. {
  31.     public:
  32.         /// Get the instance of Dialogs
  33.         /// Returns NULL if initialization failed
  34.         static Dialogs *instance( intf_thread_t *pIntf );
  35.         /// Delete the instance of Dialogs
  36.         static void destroy( intf_thread_t *pIntf );
  37.         /// Show the Change Skin dialog
  38.         void showChangeSkin();
  39.         /// Show the Load Playlist dialog
  40.         void showPlaylistLoad();
  41.         /// Show the Save Playlist dialog
  42.         void showPlaylistSave();
  43.         /// Show the Quick Open File dialog.
  44.         /// If play is false, just add the item in the playlist
  45.         void showFileSimple( bool play );
  46.         /// Show the Open File dialog
  47.         /// If play is false, just add the item in the playlist
  48.         void showFile( bool play );
  49.         /// Show the Open Disc dialog
  50.         /// If play is false, just add the item in the playlist
  51.         void showDisc( bool play );
  52.         /// Show the Open Network Stream dialog
  53.         /// If play is false, just add the item in the playlist
  54.         void showNet( bool play );
  55.         /// Show the Messages dialog
  56.         void showMessages();
  57.         /// Show the Preferences dialog
  58.         void showPrefs();
  59.         /// Show the FileInfo dialog
  60.         void showFileInfo();
  61.         /// Show the popup menu
  62.         void showPopupMenu( bool bShow );
  63.     private:
  64.         // Private because it's a singleton
  65.         Dialogs( intf_thread_t *pIntf );
  66.         ~Dialogs();
  67.         /// DlgCallback is the type of the callbacks of the open/save dialog
  68.         typedef void DlgCallback( intf_dialog_args_t *pArg );
  69.         /// Possible flags for the open/save dialog
  70.         typedef enum
  71.         {
  72.             kOPEN     = 0x01,
  73.             kSAVE     = 0x02,
  74.             kMULTIPLE = 0x04
  75.         } flags_t;
  76.         /// Initialization method
  77.         bool init();
  78.         /// Show a generic open/save dialog, initialized with the given
  79.         /// parameters
  80.         /// The 'flags' parameter is a logical or of the flags_t values
  81.         void showFileGeneric( const string &rTitle, const string &rExtensions,
  82.                               DlgCallback callback, int flags );
  83.         /// Callback for the Change Skin dialog
  84.         static void showChangeSkinCB( intf_dialog_args_t *pArg );
  85.         /// Callback for the Load Playlist dialog
  86.         static void showPlaylistLoadCB( intf_dialog_args_t *pArg );
  87.         /// Callback for the Save Playlist dialog
  88.         static void showPlaylistSaveCB( intf_dialog_args_t *pArg );
  89.         /// Dialogs provider module
  90.         intf_thread_t *m_pProvider;
  91.         module_t *m_pModule;
  92. };
  93. #endif