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

midi

开发平台:

Unix_Linux

  1. /*****************************************************************************
  2.  * dialogs.hpp
  3.  *****************************************************************************
  4.  * Copyright (C) 2003 the VideoLAN team
  5.  * $Id: 94e36c8f0e0b93e43288f400bbfce69f50a23e5c $
  6.  *
  7.  * Authors: Cyril Deguet     <asmax@via.ecp.fr>
  8.  *          Olivier Teulière <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., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
  23.  *****************************************************************************/
  24. #ifndef DIALOGS_HPP
  25. #define DIALOGS_HPP
  26. #include "skin_common.hpp"
  27. #include <string>
  28. struct interaction_dialog_t ;
  29. // Dialogs provider
  30. class Dialogs: public SkinObject
  31. {
  32.     public:
  33.         /// Get the instance of Dialogs (or 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.          */
  46.         void showFileSimple( bool play );
  47.         /** Show the Open File dialog
  48.          *  If play is false, just add the item in the playlist
  49.          */
  50.         void showFile( bool play );
  51.         /** Show the Open Directory dialog
  52.          *  If play is false, just add the item in the playlist
  53.          */
  54.         void showDirectory( bool play );
  55.         /** Show the Open Disc dialog
  56.          *  If play is false, just add the item in the playlist
  57.          */
  58.         void showDisc( bool play );
  59.         /** Show the Open Network Stream dialog
  60.          *  If play is false, just add the item in the playlist
  61.          */
  62.         void showNet( bool play );
  63.         /// Show the Messages dialog
  64.         void showMessages();
  65.         /// Show the Preferences dialog
  66.         void showPrefs();
  67.         /// Show the FileInfo dialog
  68.         void showFileInfo();
  69.         /// Show the Streaming Wizard dialog
  70.         void showStreamingWizard();
  71.         /// Show the Playlist
  72.         void showPlaylist();
  73.         /// Show a popup menu
  74.         void showPopupMenu( bool bShow, int popupType );
  75.         /// Show an interaction dialog
  76.         void showInteraction( interaction_dialog_t * );
  77.     private:
  78.         // Private because it's a singleton
  79.         Dialogs( intf_thread_t *pIntf );
  80.         ~Dialogs();
  81.         /// DlgCallback is the type of the callbacks of the open/save dialog
  82.         typedef void DlgCallback( intf_dialog_args_t *pArg );
  83.         /// Possible flags for the open/save dialog
  84.         enum flags_t
  85.         {
  86.             kOPEN     = 0x01,
  87.             kSAVE     = 0x02,
  88.             kMULTIPLE = 0x04
  89.         };
  90.         /// Initialization method
  91.         bool init();
  92.         /** Show a generic open/save dialog, initialized with the given
  93.          *  parameters
  94.          *  The 'flags' parameter is a logical or of the flags_t values
  95.          */
  96.         void showFileGeneric( const string &rTitle, const string &rExtensions,
  97.                               DlgCallback callback, int flags );
  98.         /// Callback for the Change Skin dialog
  99.         static void showChangeSkinCB( intf_dialog_args_t *pArg );
  100.         /// Callback for the Load Playlist dialog
  101.         static void showPlaylistLoadCB( intf_dialog_args_t *pArg );
  102.         /// Callback for the Save Playlist dialog
  103.         static void showPlaylistSaveCB( intf_dialog_args_t *pArg );
  104.         /// Dialogs provider module
  105.         intf_thread_t *m_pProvider;
  106.         module_t *m_pModule;
  107. };
  108. #endif