2006-07-05 21:36:56 +00:00
|
|
|
// Berkeley Open Infrastructure for Network Computing
|
|
|
|
// http://boinc.berkeley.edu
|
|
|
|
// Copyright (C) 2005 University of California
|
|
|
|
//
|
|
|
|
// This 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 2.1 of the License, or (at your option) any later version.
|
|
|
|
//
|
|
|
|
// This software is distributed in the hope that it will be useful,
|
|
|
|
// 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.
|
|
|
|
//
|
|
|
|
// To view the GNU Lesser General Public License visit
|
|
|
|
// http://www.gnu.org/copyleft/lesser.html
|
|
|
|
// or write to the Free Software Foundation, Inc.,
|
2007-10-09 11:35:47 +00:00
|
|
|
// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
2006-07-05 21:36:56 +00:00
|
|
|
|
|
|
|
|
|
|
|
#ifndef _SIMPLEFRAME_H_
|
|
|
|
#define _SIMPLEFRAME_H_
|
|
|
|
|
2006-07-20 19:33:08 +00:00
|
|
|
#if defined(__GNUG__) && !defined(__APPLE__)
|
|
|
|
#pragma interface "sg_BoincSimpleGUI.cpp"
|
|
|
|
#endif
|
|
|
|
|
2006-07-11 23:19:53 +00:00
|
|
|
class CViewTabPage;
|
2006-07-20 19:33:08 +00:00
|
|
|
class StatImageLoader;
|
2006-07-20 17:57:23 +00:00
|
|
|
class ImageLoader;
|
2006-07-20 22:15:29 +00:00
|
|
|
class CProjectsComponent;
|
2006-08-18 21:45:17 +00:00
|
|
|
class ClientStateIndicator;
|
2006-10-23 06:48:48 +00:00
|
|
|
class WorkunitNotebook;
|
2006-07-05 21:36:56 +00:00
|
|
|
|
2006-11-06 13:45:50 +00:00
|
|
|
class CSimplePanel : public wxPanel
|
2006-07-05 21:36:56 +00:00
|
|
|
{
|
2006-11-06 13:45:50 +00:00
|
|
|
DECLARE_DYNAMIC_CLASS(CSimplePanel)
|
2006-07-05 21:36:56 +00:00
|
|
|
|
|
|
|
public:
|
2006-11-06 13:45:50 +00:00
|
|
|
CSimplePanel();
|
2006-11-06 14:37:49 +00:00
|
|
|
CSimplePanel(wxWindow* parent);
|
2006-07-05 21:36:56 +00:00
|
|
|
|
2006-11-06 13:45:50 +00:00
|
|
|
~CSimplePanel();
|
2006-07-05 21:36:56 +00:00
|
|
|
//
|
|
|
|
// Flat Neotebook
|
2006-10-10 02:53:25 +00:00
|
|
|
WorkunitNotebook *wrkUnitNB;
|
2006-07-05 21:36:56 +00:00
|
|
|
wxBitmap const workWUico;
|
2006-07-24 22:10:28 +00:00
|
|
|
// My projects component
|
2006-07-20 22:15:29 +00:00
|
|
|
CProjectsComponent *projComponent;
|
2006-08-18 21:45:17 +00:00
|
|
|
// Client State Indicator
|
|
|
|
ClientStateIndicator *clientState;
|
2006-07-10 13:41:10 +00:00
|
|
|
//Collapse button
|
2006-07-05 21:36:56 +00:00
|
|
|
bool midAppCollapsed;
|
|
|
|
bool btmAppCollapsed;
|
2006-08-10 19:32:47 +00:00
|
|
|
////////////////////////////;
|
2006-08-23 21:22:41 +00:00
|
|
|
bool projectViewInitialized;
|
|
|
|
bool emptyViewInitialized;
|
|
|
|
bool notebookViewInitialized;
|
|
|
|
|
2006-12-12 01:08:16 +00:00
|
|
|
void ReskinInterface();
|
2006-08-23 21:22:41 +00:00
|
|
|
void InitEmptyView();
|
|
|
|
void UpdateEmptyView();
|
|
|
|
void DestroyEmptyView();
|
2006-11-06 13:45:50 +00:00
|
|
|
void InitResultView();
|
2006-08-18 21:45:17 +00:00
|
|
|
void InitProjectView();
|
2006-08-24 17:54:54 +00:00
|
|
|
void UpdateProjectView();
|
2006-08-17 17:36:51 +00:00
|
|
|
void InitNotebook();
|
2006-08-23 21:22:41 +00:00
|
|
|
void DestroyNotebook();
|
2006-08-07 15:33:03 +00:00
|
|
|
void OnProjectsAttachToProject();
|
2006-09-26 21:53:00 +00:00
|
|
|
void SetDlgOpen(bool newDlgState) { dlgOpen = newDlgState; }
|
|
|
|
bool GetDlgOpen() { return dlgOpen; }
|
2006-07-05 21:36:56 +00:00
|
|
|
//////////
|
|
|
|
wxFlexGridSizer *mainSizer;
|
|
|
|
wxSize wxNotebookSize;
|
|
|
|
//////////
|
2006-08-10 19:32:47 +00:00
|
|
|
wxBitmap *frameBg;
|
2006-07-05 21:36:56 +00:00
|
|
|
wxBitmap *bm13cImg0;
|
|
|
|
wxBitmap *btmpIcnWorking;
|
|
|
|
wxBitmap *bm39cImg0;
|
2006-08-07 15:33:03 +00:00
|
|
|
|
2006-07-05 21:36:56 +00:00
|
|
|
wxBitmap *btmpIcnSleeping;
|
2006-12-12 01:08:16 +00:00
|
|
|
wxTimer* m_pFrameRenderTimer;
|
2006-07-05 21:36:56 +00:00
|
|
|
|
|
|
|
DECLARE_EVENT_TABLE()
|
|
|
|
|
|
|
|
protected:
|
2006-07-10 13:41:10 +00:00
|
|
|
void OnFrameRender(wxTimerEvent& event );
|
2006-11-06 13:45:50 +00:00
|
|
|
void OnEraseBackground(wxEraseEvent& event);
|
|
|
|
|
|
|
|
private:
|
|
|
|
bool dlgOpen;
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
// Define a new frame
|
|
|
|
class CSimpleFrame : public CBOINCBaseFrame
|
|
|
|
{
|
|
|
|
DECLARE_DYNAMIC_CLASS(CSimpleFrame)
|
|
|
|
|
|
|
|
public:
|
|
|
|
CSimpleFrame();
|
|
|
|
CSimpleFrame(wxString title, wxIcon* icon);
|
|
|
|
|
|
|
|
~CSimpleFrame();
|
|
|
|
|
2006-12-12 01:08:16 +00:00
|
|
|
void OnHelp( wxHelpEvent& event );
|
2008-06-05 02:07:44 +00:00
|
|
|
void OnHelpBOINC( wxCommandEvent& event );
|
2006-11-23 02:27:25 +00:00
|
|
|
|
2006-12-12 01:08:16 +00:00
|
|
|
void OnConnect(CFrameEvent& event );
|
|
|
|
void OnProjectsAttachToProject();
|
|
|
|
void OnReloadSkin( CFrameEvent& event );
|
2006-10-25 14:09:47 +00:00
|
|
|
|
2006-09-14 16:47:24 +00:00
|
|
|
private:
|
2006-11-06 13:45:50 +00:00
|
|
|
bool SaveState();
|
|
|
|
bool RestoreState();
|
2006-09-14 16:47:24 +00:00
|
|
|
|
2006-11-06 13:45:50 +00:00
|
|
|
protected:
|
2006-12-12 01:08:16 +00:00
|
|
|
|
|
|
|
#ifdef __WXMAC__
|
|
|
|
wxMenuBar* m_pMenubar;
|
|
|
|
#endif
|
|
|
|
|
|
|
|
wxAcceleratorEntry m_Shortcuts[1];
|
|
|
|
wxAcceleratorTable* m_pAccelTable;
|
|
|
|
|
|
|
|
CSimplePanel* m_pBackgroundPanel;
|
2006-11-06 13:45:50 +00:00
|
|
|
|
|
|
|
DECLARE_EVENT_TABLE()
|
2006-07-05 21:36:56 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|