X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=bacula%2Fsrc%2Fwx-console%2Fwxbmainframe.h;h=556dda37929ebb4fb7ea1278707dd5b04e0cacf3;hb=b8224aab234012c2d127b84eceb160e99dd4a14d;hp=9f9022e9c4bd458ce6a3a2d4dbca0ffac241dd08;hpb=db83bc1a5a407a0d77f22f598b767112af81632d;p=bacula%2Fbacula diff --git a/bacula/src/wx-console/wxbmainframe.h b/bacula/src/wx-console/wxbmainframe.h index 9f9022e9c4..556dda3792 100644 --- a/bacula/src/wx-console/wxbmainframe.h +++ b/bacula/src/wx-console/wxbmainframe.h @@ -1,20 +1,38 @@ /* - Copyright (C) 2004 Kern Sibbald and John Walker + * + * Main frame header file + * + * Nicolas Boichat, July 2004 + * + * Version $Id$ + */ +/* + Bacula® - The Network Backup Solution + + Copyright (C) 2004-2006 Free Software Foundation Europe e.V. - This program is free software; you can redistribute it and/or - modify it under the terms of the GNU General Public License - as published by the Free Software Foundation; either version 2 - of the License, or (at your option) any later version. + The main author of Bacula is Kern Sibbald, with contributions from + many others, a complete list can be found in the file AUTHORS. + This program is Free Software; you can redistribute it and/or + modify it under the terms of version two of the GNU General Public + License as published by the Free Software Foundation plus additions + that are listed in the file LICENSE. - This program 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 General Public License for more details. + This program 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 + General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software - Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - */ + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA + 02110-1301, USA. + + Bacula® is a registered trademark of John Walker. + The licensor of Bacula is the Free Software Foundation Europe + (FSFE), Fiduciary Program, Sumatrastrasse 25, 8006 Zürich, + Switzerland, email:ftf@fsfeurope.org. +*/ #ifndef WXBMAINFRAME_H #define WXBMAINFRAME_H @@ -35,12 +53,15 @@ #include #include -//#include "bacula.h" -//#include "console_conf.h" +#include #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 @@ -65,6 +86,8 @@ class wxbPrintObject: public wxObject { // wxbThreadEvent - Event used by wxbTHREAD_EVENT // ---------------------------------------------------------------------------- +DECLARE_LOCAL_EVENT_TYPE(wxbTHREAD_EVENT, -1) + class wxbThreadEvent: public wxEvent { public: wxbThreadEvent(int id); @@ -83,12 +106,22 @@ public: 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 @@ -100,27 +133,46 @@ public: /* * 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 */ + wxStaticText *helpCtrl; /* wxStaticText showing help messages */ + 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 */ + wxbPromptParser* promptparser; /* prompt parser catching uncatched questions */ - static wxbMainFrame *frame; /* this */ + 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() }; #endif // WXBMAINFRAME_H -