1 /*****************************************************************************
4 ** Name: backgroundmgr.h
5 ** Purpose: Header file for background manager
6 ** Programmer: Kevin Rosenberg
7 ** Date Started: February 2001
9 ** This is part of the CTSim program
10 ** Copyright (C) 1983-2001 Kevin Rosenberg
12 ** $Id: backgroundmgr.h,v 1.7 2001/02/25 10:52:55 kevin Exp $
14 ** This program is free software; you can redistribute it and/or modify
15 ** it under the terms of the GNU General Public License (version 2) as
16 ** published by the Free Software Foundation.
18 ** This program is distributed in the hope that it will be useful,
19 ** but WITHOUT ANY WARRANTY; without even the implied warranty of
20 ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21 ** GNU General Public License for more details.
23 ** You should have received a copy of the GNU General Public License
24 ** along with this program; if not, write to the Free Software
25 ** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
26 ******************************************************************************/
28 #ifndef _BACKGROUND_MGR_H
31 #include "wx/wxprec.h"
36 #include "wx/minifram.h"
43 #include "threadrecon.h"
47 #if defined(HAVE_CONFIG_H)
51 class BackgroundManagerCanvas;
54 //class BackgroundManager : public wxMDIChildFrame
56 class BackgroundManager : public wxMiniFrame
59 DECLARE_DYNAMIC_CLASS(BackgroundManager)
61 wxCriticalSection m_criticalSection;
62 BackgroundManagerCanvas* m_pCanvas;
65 typedef std::vector<BackgroundSupervisor*> TaskContainer;
66 typedef std::vector<wxGauge*> GaugeContainer;
67 typedef std::vector<std::string*> StringContainer;
68 typedef std::vector<int> PositionContainer;
69 typedef std::vector<wxStaticText*> LabelContainer;
70 typedef std::vector<wxButton*> ButtonContainer;
71 TaskContainer m_vecpBackgroundTasks;
72 GaugeContainer m_vecpGauges;
73 StringContainer m_vecpNames;
74 PositionContainer m_vecpPositions;
75 LabelContainer m_vecpLabels;
76 ButtonContainer m_vecpCancelButtons;
81 wxSize m_sizeCellSpacing;
85 wxGauge* lookupGauge(BackgroundSupervisor* pTask);
90 TaskContainer& getTasks() { return m_vecpBackgroundTasks;}
91 GaugeContainer& getGauges() { return m_vecpGauges;}
92 StringContainer& getNames() { return m_vecpNames;}
93 PositionContainer& getPositions() { return m_vecpPositions;}
94 LabelContainer& getLabels() { return m_vecpLabels;}
95 ButtonContainer& getCancelButtons() { return m_vecpCancelButtons;}
97 void OnAddTask (wxCommandEvent& event);
98 void OnRemoveTask (wxCommandEvent& event);
99 void OnUnitTick (wxCommandEvent& event);
100 void OnCloseWindow(wxCloseEvent& event);
101 void OnCancelButton(wxCommandEvent& event);
103 DECLARE_EVENT_TABLE()
107 class BackgroundManagerCanvas : public wxPanel {
109 DECLARE_DYNAMIC_CLASS(BackgroundManagerCanvas)
110 BackgroundManager* m_pBackgroundManager;
113 BackgroundManagerCanvas (BackgroundManager* pBkgdMgr = NULL);
115 void OnPaint (wxPaintEvent& event);
117 DECLARE_EVENT_TABLE()
121 #endif // _BACKGROUNDMGR_H