Merge pull request #4775 from jmarshallnz/empty_episode_playcount
[vuplus_xbmc] / xbmc / dialogs / GUIDialogMediaSource.h
1 #pragma once
2
3 /*
4  *      Copyright (C) 2005-2013 Team XBMC
5  *      http://xbmc.org
6  *
7  *  This Program is free software; you can redistribute it and/or modify
8  *  it under the terms of the GNU General Public License as published by
9  *  the Free Software Foundation; either version 2, or (at your option)
10  *  any later version.
11  *
12  *  This Program is distributed in the hope that it will be useful,
13  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
14  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15  *  GNU General Public License for more details.
16  *
17  *  You should have received a copy of the GNU General Public License
18  *  along with XBMC; see the file COPYING.  If not, see
19  *  <http://www.gnu.org/licenses/>.
20  *
21  */
22
23 #include "guilib/GUIDialog.h"
24
25 class CFileItemList;
26 class CMediaSource;
27
28 class CGUIDialogMediaSource :
29       public CGUIDialog
30 {
31 public:
32   CGUIDialogMediaSource(void);
33   virtual ~CGUIDialogMediaSource(void);
34   virtual bool OnMessage(CGUIMessage& message);
35   virtual void OnDeinitWindow(int nextWindowID);
36   virtual bool OnBack(int actionID);
37   virtual void OnWindowLoaded();
38   static bool ShowAndAddMediaSource(const CStdString &type);
39   static bool ShowAndEditMediaSource(const CStdString &type, const CMediaSource &share);
40   static bool ShowAndEditMediaSource(const CStdString &type, const CStdString &share);
41
42   bool IsConfirmed() const { return m_confirmed; };
43
44   void SetShare(const CMediaSource &share);
45   void SetTypeOfMedia(const CStdString &type, bool editNotAdd = false);
46 protected:
47   void OnPathBrowse(int item);
48   void OnPath(int item);
49   void OnPathAdd();
50   void OnPathRemove(int item);
51   void OnOK();
52   void OnCancel();
53   void UpdateButtons();
54   int GetSelectedItem();
55   void HighlightItem(int item);
56
57   std::vector<CStdString> GetPaths();
58
59   CStdString m_type;
60   CStdString m_name;
61   CFileItemList* m_paths;
62   bool m_confirmed;
63   bool m_bNameChanged;
64 };