3 * Copyright (C) 2012-2013 Team XBMC
6 * This Program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 2, or (at your option)
11 * This Program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
16 * You should have received a copy of the GNU General Public License
17 * along with XBMC; see the file COPYING. If not, see
18 * <http://www.gnu.org/licenses/>.
22 #include "guilib/GUIDialog.h"
24 class CGUIDialogProgressBarHandle
27 CGUIDialogProgressBarHandle(const std::string &strTitle) :
31 virtual ~CGUIDialogProgressBarHandle(void) {}
33 const std::string &Title(void) { return m_strTitle; }
34 void SetTitle(const std::string &strTitle);
36 std::string Text(void) const;
37 void SetText(const std::string &strText);
39 bool IsFinished(void) const { return m_bFinished; }
40 void MarkFinished(void) { m_bFinished = true; }
42 float Percentage(void) const { return m_fPercentage;}
43 void SetPercentage(float fPercentage) { m_fPercentage = fPercentage; }
44 void SetProgress(int currentItem, int itemCount);
47 CCriticalSection m_critSection;
49 std::string m_strTitle;
50 std::string m_strText;
54 class CGUIDialogExtendedProgressBar : public CGUIDialog
57 CGUIDialogExtendedProgressBar(void);
58 virtual ~CGUIDialogExtendedProgressBar(void) {};
59 virtual bool OnMessage(CGUIMessage& message);
60 virtual void Process(unsigned int currentTime, CDirtyRegionList &dirtyregions);
62 CGUIDialogProgressBarHandle *GetHandle(const std::string &strTitle);
65 void UpdateState(unsigned int currentTime);
67 CCriticalSection m_critSection;
68 unsigned int m_iCurrentItem;
69 unsigned int m_iLastSwitchTime;
70 std::vector<CGUIDialogProgressBarHandle *> m_handles;