r582: no message
[ctsim.git] / src / backgroundmgr.h
index 7e95fae7b75daf75938363ee304c8292c9718e6a..b6e668a8c1cf74277f0c81ecaaa908d64e9399a5 100644 (file)
@@ -9,7 +9,7 @@
 **  This is part of the CTSim program
 **  Copyright (C) 1983-2001 Kevin Rosenberg
 **
-**  $Id: backgroundmgr.h,v 1.1 2001/02/22 15:00:20 kevin Exp $
+**  $Id: backgroundmgr.h,v 1.7 2001/02/25 10:52:55 kevin Exp $
 **
 **  This program is free software; you can redistribute it and/or modify
 **  it under the terms of the GNU General Public License (version 2) as
@@ -52,26 +52,53 @@ class BackgroundManagerCanvas;
 
 #if CTSIM_MDI
 //class BackgroundManager : public wxMDIChildFrame
-//#else
-class BackgroundManager : public wxMiniFrame
 #endif
+class BackgroundManager : public wxMiniFrame
 {
 private:
   DECLARE_DYNAMIC_CLASS(BackgroundManager)
 
+  wxCriticalSection m_criticalSection;
   BackgroundManagerCanvas* m_pCanvas;
   int m_iNumTasks;
-  std::vector<BackgroundTask*> m_vecpBackgroundTasks;
-  std::vector<wxGauge*> m_vecpGauges;
 
-  void OnCloseWindow(wxCloseEvent& event);
+  typedef std::vector<BackgroundSupervisor*> TaskContainer;
+  typedef std::vector<wxGauge*>  GaugeContainer;
+  typedef std::vector<std::string*> StringContainer;
+  typedef std::vector<int> PositionContainer;
+  typedef std::vector<wxStaticText*>  LabelContainer;
+  typedef std::vector<wxButton*> ButtonContainer;
+  TaskContainer m_vecpBackgroundTasks;
+  GaugeContainer m_vecpGauges;
+  StringContainer m_vecpNames;
+  PositionContainer m_vecpPositions;
+  LabelContainer m_vecpLabels;
+  ButtonContainer m_vecpCancelButtons;
+  wxSize m_sizeGauge;
+  wxSize m_sizeLabel;
+  wxSize m_sizeCell;
+  wxSize m_sizeBorder;
+  wxSize m_sizeCellSpacing;
+  wxSize m_sizeButton;
+
+  void resizeWindow();
+  wxGauge* lookupGauge(BackgroundSupervisor* pTask);
 
 public:
   BackgroundManager ();
 
-  wxGauge* addTask (BackgroundTask* pTask, int iNumUnits);
-  void taskDone (BackgroundTask* pTask);
-  bool isCancelling (BackgroundTask* pTask);
+  TaskContainer& getTasks() { return m_vecpBackgroundTasks;}
+  GaugeContainer& getGauges() { return m_vecpGauges;}
+  StringContainer& getNames() { return m_vecpNames;}
+  PositionContainer& getPositions() { return m_vecpPositions;}
+  LabelContainer& getLabels() { return m_vecpLabels;}
+  ButtonContainer& getCancelButtons() { return m_vecpCancelButtons;}
+
+  void OnAddTask (wxCommandEvent& event);
+  void OnRemoveTask (wxCommandEvent& event);
+  void OnUnitTick (wxCommandEvent& event);
+  void OnCloseWindow(wxCloseEvent& event);
+  void OnCancelButton(wxCommandEvent& event);
 
   DECLARE_EVENT_TABLE()
 };
@@ -84,9 +111,9 @@ private:
 
 public:
   BackgroundManagerCanvas (BackgroundManager* pBkgdMgr = NULL);
-
+#if 0
   void OnPaint (wxPaintEvent& event);
-
+#endif
   DECLARE_EVENT_TABLE()
 };