2008-08-06 18:36:30 +00:00
|
|
|
// This file is part of BOINC.
|
2006-08-18 21:45:17 +00:00
|
|
|
// http://boinc.berkeley.edu
|
2008-08-06 18:36:30 +00:00
|
|
|
// Copyright (C) 2008 University of California
|
2006-08-18 21:45:17 +00:00
|
|
|
//
|
2008-08-06 18:36:30 +00:00
|
|
|
// BOINC is free software; you can redistribute it and/or modify it
|
|
|
|
// under the terms of the GNU Lesser General Public License
|
|
|
|
// as published by the Free Software Foundation,
|
|
|
|
// either version 3 of the License, or (at your option) any later version.
|
2006-08-18 21:45:17 +00:00
|
|
|
//
|
2008-08-06 18:36:30 +00:00
|
|
|
// BOINC is distributed in the hope that it will be useful,
|
2006-08-18 21:45:17 +00:00
|
|
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
|
|
|
// See the GNU Lesser General Public License for more details.
|
|
|
|
//
|
2008-08-06 18:36:30 +00:00
|
|
|
// You should have received a copy of the GNU Lesser General Public License
|
|
|
|
// along with BOINC. If not, see <http://www.gnu.org/licenses/>.
|
2006-08-18 21:45:17 +00:00
|
|
|
|
|
|
|
#ifndef _CLIENTSTATEINDICATOR_H_
|
|
|
|
#define _CLIENTSTATEINDICATOR_H_
|
|
|
|
|
|
|
|
#if defined(__GNUG__) && !defined(__APPLE__)
|
|
|
|
#pragma interface "sg_ClientStateIndicator.cpp"
|
|
|
|
#endif
|
|
|
|
|
2006-08-23 21:22:41 +00:00
|
|
|
|
2006-08-18 21:45:17 +00:00
|
|
|
class ImageLoader;
|
|
|
|
|
|
|
|
class ClientStateIndicator : public wxPanel{
|
|
|
|
DECLARE_DYNAMIC_CLASS( ClientStateIndicator )
|
|
|
|
public:
|
|
|
|
int connIndicatorWidth;
|
|
|
|
int connIndicatorHeight;
|
2008-03-18 15:34:28 +00:00
|
|
|
int numOfIndic;
|
2006-08-18 21:45:17 +00:00
|
|
|
int rightPosition;
|
|
|
|
int topPosition;
|
|
|
|
int indexIndVis;
|
|
|
|
int numOfProgressInd;
|
|
|
|
ImageLoader *i_indBg;
|
|
|
|
ImageLoader *i_errorInd;
|
|
|
|
std::vector<ImageLoader*> m_connIndV;
|
|
|
|
wxTimer *m_connRenderTimer;
|
|
|
|
wxString stateMessage;
|
2006-08-24 17:54:54 +00:00
|
|
|
int clientState;
|
2006-08-18 21:45:17 +00:00
|
|
|
/// Constructors
|
|
|
|
ClientStateIndicator();
|
2006-11-06 13:45:50 +00:00
|
|
|
ClientStateIndicator(CSimplePanel* parent, wxPoint coord);
|
2006-08-18 21:45:17 +00:00
|
|
|
~ClientStateIndicator();
|
|
|
|
void CreateComponent();
|
|
|
|
void ReskinInterface();
|
|
|
|
void DeletePreviousState();
|
2006-08-23 21:22:41 +00:00
|
|
|
void DisplayState();
|
2006-08-18 21:45:17 +00:00
|
|
|
|
|
|
|
private:
|
|
|
|
|
2006-12-20 00:05:12 +00:00
|
|
|
void SetActionState(wxString message);
|
|
|
|
void SetNoActionState(wxString message);
|
|
|
|
void SetPausedState(wxString message);
|
2006-08-24 17:54:54 +00:00
|
|
|
bool DownloadingResults();
|
2006-09-08 21:48:06 +00:00
|
|
|
bool Suspended();
|
2006-10-18 16:06:29 +00:00
|
|
|
bool ProjectUpdateScheduled();
|
2006-08-23 21:22:41 +00:00
|
|
|
time_t error_time;
|
2006-08-18 21:45:17 +00:00
|
|
|
|
|
|
|
void OnEraseBackground(wxEraseEvent& event);
|
|
|
|
void OnPaint(wxPaintEvent& event);
|
|
|
|
void RunConnectionAnimation(wxTimerEvent& event );
|
|
|
|
|
|
|
|
DECLARE_EVENT_TABLE()
|
|
|
|
};
|
|
|
|
|
2006-08-24 17:54:54 +00:00
|
|
|
#define CLIENT_STATE_NONE 0
|
|
|
|
#define CLIENT_STATE_ACTION 1
|
|
|
|
#define CLIENT_STATE_PAUSED 2
|
|
|
|
#define CLIENT_STATE_ERROR 3
|
|
|
|
|
2006-08-18 21:45:17 +00:00
|
|
|
#endif
|
|
|
|
|