+/*
+ *
+ * Main frame header file
+ *
+ * Nicolas Boichat, July 2004
+ *
+ */
/*
Copyright (C) 2004 Kern Sibbald and John Walker
#include <wx/tokenzr.h>
#include <wx/notebook.h>
-//#include "bacula.h"
-//#include "console_conf.h"
+#include <wx/dynarray.h>
#include "console_thread.h"
-#include "wxbpanel.h"
+#include "wxbutils.h"
+
+#include "wxbhistorytextctrl.h"
+
+WX_DEFINE_ARRAY(wxbDataParser*, wxbDataParsers);
// ----------------------------------------------------------------------------
// wxbPrintObject - Used by wxbThreadEvent to contain data sent by director
static wxbMainFrame* CreateInstance(const wxString& title, const wxPoint& pos, const wxSize& size, long style = wxDEFAULT_FRAME_STYLE);
static wxbMainFrame* GetInstance();
- // event handlers (these functions should _not_ be virtual)
+ /* event handlers (these functions should _not_ be virtual) */
void OnQuit(wxCommandEvent& event);
void OnAbout(wxCommandEvent& event);
+ void OnChangeConfig(wxCommandEvent& event);
+ void OnEditConfig(wxCommandEvent& event);
+ void OnConnect(wxCommandEvent& event);
+ void OnDisconnect(wxCommandEvent& event);
void OnEnter(wxCommandEvent& event);
void OnPrint(wxbThreadEvent& event);
+ /* Enable and disable panels */
+ void EnablePanels();
+ void DisablePanels(void* except = NULL);
+
+ void EnableConsole(bool enable = true);
+
/*
* Prints data received from director to the console,
* and forwards it to the panels
/*
* Starts the thread interacting with the director
+ * If config is not empty, uses this config file.
*/
- void StartConsoleThread();
+ void StartConsoleThread(const wxString& config);
+
+ /* Register a new wxbDataParser */
+ void Register(wxbDataParser* dp);
+
+ /* Unregister a wxbDataParser */
+ void Unregister(wxbDataParser* dp);
+
+ console_thread* ct; /* thread interacting with the director */
private:
/* private constructor, singleton */
wxbMainFrame(const wxString& title, const wxPoint& pos, const wxSize& size, long style);
~wxbMainFrame();
+
+ static wxbMainFrame *frame; /* this */
+
+ wxMenu *menuFile;
wxNotebook *notebook; /* main notebook */
- wxTextCtrl *typeCtrl; /* wxTextCtrl for console user input */
wxTextCtrl *consoleCtrl; /* wxTextCtrl containing graphical console */
+ wxbHistoryTextCtrl *typeCtrl; /* wxbHistoryTextCtrl for console user input */
+ wxButton *sendButton; /* wxButton used to send data */
- wxbPanel **panels; /* panels array, contained in the notebook, and which need to receive console communication */
+ wxbPanel **panels; /* panels array, contained in the notebook */
+ wxbDataParsers parsers; /* Data parsers, which need to receive director informations */
- console_thread* ct; /* thread interacting with the director */
-
- static wxbMainFrame *frame; /* this */
+ wxbPromptParser* promptparser; /* prompt parser catching uncatched questions */
+ bool lockedbyconsole; /* true if the panels have been locked by something typed in the console */
+
+ wxString configfile; /* configfile used */
+
+ wxString consoleBuffer; /* Buffer used to print in the console line by line */
+
// any class wishing to process wxWindows events must use this macro
DECLARE_EVENT_TABLE()
};