X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=bacula%2Fsrc%2Fwx-console%2Fwxbmainframe.h;h=556dda37929ebb4fb7ea1278707dd5b04e0cacf3;hb=b8224aab234012c2d127b84eceb160e99dd4a14d;hp=d3ac94994e1f613421903e9c28b4c18a1b631f37;hpb=176b54733480d5273d02283ee8a7636ab5b6cb47;p=bacula%2Fbacula diff --git a/bacula/src/wx-console/wxbmainframe.h b/bacula/src/wx-console/wxbmainframe.h index d3ac94994e..556dda3792 100644 --- a/bacula/src/wx-console/wxbmainframe.h +++ b/bacula/src/wx-console/wxbmainframe.h @@ -2,26 +2,37 @@ * * Main frame header file * - * Nicolas Boichat, April 2004 + * Nicolas Boichat, July 2004 * + * Version $Id$ */ /* - Copyright (C) 2004 Kern Sibbald and John Walker + Bacula® - The Network Backup Solution - 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. + Copyright (C) 2004-2006 Free Software Foundation Europe e.V. - 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. + 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. 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 @@ -42,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 @@ -72,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); @@ -93,13 +109,17 @@ public: /* 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); /* @@ -113,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 -