Program: bbtk
Module: $RCSfile: bbtkWxConsole.cxx,v $
Language: C++
- Date: $Date: 2008/02/21 09:37:23 $
- Version: $Revision: 1.5 $
+ Date: $Date: 2008/03/03 10:48:47 $
+ Version: $Revision: 1.6 $
Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
l'Image). All rights reserved. See Doc/License.txt or
#include <iostream>
#include "bbtkWxConsole.h"
#include "bbtkWxBlackBox.h"
+#include "bbtkConfigurationFile.h"
namespace bbtk
{
wxMenu *menuAbout = new wxMenu;
menuAbout->Append( ID_Menu_About, _T("&About...") );
+
+ wxMenu *menuTools = new wxMenu;
+ menuTools->Append( ID_Menu_CreatePackage, _T("&Create package") );
+ menuTools->Append( ID_Menu_CreateBlackBox, _T("&Create blackbox") );
+ menuTools->Append( ID_Menu_ShowImageGraph, _T("&Show last image graph") );
+
wxMenuBar *menuBar = new wxMenuBar;
menuBar->Append( menuFile, _T("&File") );
+ menuBar->Append( menuTools, _T("&Tools") );
menuBar->Append( menuAbout, _T("About") );
SetMenuBar( menuBar );
// Notebook
// wxFlexGridSizer *sizer = new wxFlexGridSizer(1);
- wxBoxSizer* sizer = new wxBoxSizer(wxVERTICAL);
-
-
- mwxNotebook = new wxNotebook(this, -1,
- wxDefaultPosition, wxDefaultSize, 0);
+
+//EED wxBoxSizer* sizer = new wxBoxSizer(wxVERTICAL);
+// mwxNotebook = new wxNotebook(this,-1,wxDefaultPosition, wxDefaultSize, 0);
+ mwxNotebook = new wxAuiNotebook(this,
+ -1,
+ wxPoint(0, 0),
+ wxSize(500,500),
+ wxAUI_NB_TAB_SPLIT | wxAUI_NB_TAB_EXTERNAL_MOVE | wxNO_BORDER);
+
mwxPageCommand = new wxPanel(mwxNotebook,-1);
mwxNotebook->AddPage( mwxPageCommand, _T("Command"));
-
+
mwxPageHelp = new wxPanel(mwxNotebook,-1);
mwxNotebook->AddPage( mwxPageHelp, _T("Help"));
+
- sizer->Add ( mwxNotebook, 1, wxEXPAND /*| wxALIGN_BOTTOM*/ );
+//EED sizer->Add ( mwxNotebook, 1, wxEXPAND /*| wxALIGN_BOTTOM*/ );
+ wxAuiManager *m_mgr = new wxAuiManager(this);
+ m_mgr->AddPane(mwxNotebook, wxAuiPaneInfo().Name(wxT("notebook_content")).CenterPane().PaneBorder(false));
+ m_mgr->Update();
wxBoxSizer *cmdsizer = new wxBoxSizer(wxVERTICAL);
mwxTextHistoryAttr = new wxTextAttr;
mwxTextHistoryAttr->SetFont(*FixedFont);
+ /*
mwxTextCommand =
new wxTextCtrl(mwxPageCommand,
ID_Text_Command,
wxTE_PROCESS_ENTER
| wxTE_PROCESS_TAB
| wxWANTS_CHARS
- //| wxTAB_TRAVERSAL
+ //| wxTAB_TRAVERSAL
);
-
-
mwxTextCommandAttr = new wxTextAttr;
mwxTextCommandAttr->SetFont(*FixedFont);
mwxTextCommand->SetDefaultStyle(*mwxTextCommandAttr);
+ */
+ mwxTextCommand =
+ new wxComboBox(mwxPageCommand,
+ ID_Text_Command,
+ _T("")
+// wxDefaultPosition,
+// wxDefaultSize,
+// wxTE_PROCESS_ENTER
+// | wxTE_PROCESS_TAB
+// | wxWANTS_CHARS
+// //| wxTAB_TRAVERSAL
+ );
+
+
mwxTextCommand->SetFocus();
-
+ wxPanel *btnsCtrlPanel = CreateBtnsCtrlPanel(mwxPageCommand);
+
+ wxButton *btnGo = new wxButton( mwxPageCommand,-1,_T("Go") );
+ Connect(btnGo->GetId() , wxEVT_COMMAND_BUTTON_CLICKED , (wxObjectEventFunction) &WxConsole::OnBtnGo );
+
+ wxFlexGridSizer *sizerCommand= new wxFlexGridSizer(2);
+ sizerCommand->AddGrowableCol(0);
+ sizerCommand->Add(mwxTextCommand,1,wxGROW);
+ sizerCommand->Add(btnGo);
cmdsizer->Add ( mwxTextHistory, 1, wxALL | wxGROW, 10);
-
- cmdsizer->Add ( mwxTextCommand, 0, wxLEFT | wxRIGHT | wxBOTTOM
- | wxGROW, 10 );
+//EED cmdsizer->Add ( mwxTextCommand, 0, wxLEFT | wxRIGHT | wxBOTTOM | wxGROW, 10 );
+ cmdsizer->Add ( sizerCommand, 0, wxLEFT | wxRIGHT | wxBOTTOM | wxGROW, 10 );
+ cmdsizer->Add ( btnsCtrlPanel, 0, wxLEFT | wxRIGHT | wxBOTTOM | wxGROW, 10 );
+
// cmdsizer->AddGrowableCol(0);
// cmdsizer->AddGrowableRow(0);
// cmdsizer->AddGrowableRow(1);
// Layout
- SetSizer(sizer);
+//EED SetSizer(sizer);
SetAutoLayout(true);
Layout();
void WxConsole::OnCommandEnter(wxCommandEvent& event)
{
wxString line(mwxTextCommand->GetValue());
+ CommandString(line);
+ }
+ //================================================================
+
+ //================================================================
+ void WxConsole::OnBtnGo(wxCommandEvent& event)
+ {
+ wxString line(mwxTextCommand->GetValue());
+ CommandString(line);
+ }
+ //================================================================
+
+ //================================================================
+ void WxConsole::CommandString(wxString line )
+ {
+printf("WxConsole::CommandString 01 \n");
wxString s = _T("> ") + line + _T("\n");
mwxTextHistoryAttr->SetTextColour(*wxRED);
mwxTextHistory->SetDefaultStyle(*mwxTextHistoryAttr);
mwxTextHistory->AppendText(s);
// send to standard console also
+printf("WxConsole::CommandString 02 \n");
printf("%s",wx2std(s).c_str());
- mwxTextCommand->Clear();
- mwxTextCommand->SetDefaultStyle(*mwxTextCommandAttr);
+//EED mwxTextCommand->Clear();
+ mwxTextCommand->SetValue(_T(""));
+ mwxTextCommand->Append(line);
+
+//EED mwxTextCommand->SetDefaultStyle(*mwxTextCommandAttr);
mwxTextHistoryAttr->SetTextColour(*wxBLACK);
mwxTextHistory->SetDefaultStyle(*mwxTextHistoryAttr);
+printf("WxConsole::CommandString 03 \n");
try
{
bool insideComment = false;
+printf("WxConsole::CommandString 04 \n");
mInterpreter->InterpretLine( wx2std(line), insideComment );
+printf("WxConsole::CommandString 05 \n");
}
catch (bbtk::QuitException)
{
std::cout << "* UNDEFINED ERROR (not a bbtk nor a std exception)"
<< std::endl;
}
+printf("WxConsole::CommandString 06 \n");
}
//================================================================
}
//================================================================
+
+ //================================================================
+ void WxConsole::OnMenuCreatePackage(wxCommandEvent& WXUNUSED(event))
+ {
+
+ wxMessageBox(_T(" Creating Package"),
+ _T("Creating Package ..."), wxOK | wxICON_INFORMATION,
+ this);
+ }
+ //================================================================
+
+
+ //================================================================
+ void WxConsole::OnMenuCreateBlackBox(wxCommandEvent& WXUNUSED(event))
+ {
+
+ wxMessageBox(_T(" Creating blackbox"),
+ _T("Creating blackbox ..."), wxOK | wxICON_INFORMATION,
+ this);
+ }
+ //================================================================
+
+ //================================================================
+ void WxConsole::OnMenuShowImageGraph(wxCommandEvent& WXUNUSED(event))
+ {
+ std::string default_doc_dir = ConfigurationFile::GetInstance().Get_default_temp_dir();
+
+#if defined(WIN32)
+ std::string strappli="start ";
+#else
+ std::string strappli="gnome-open ";
+#endif
+ std::string strcommand = strappli +default_doc_dir+"/temp_dir/workspace_workspacePrototype.png";
+ system ( strcommand.c_str() );
+ }
+ //================================================================
+
+
+
//================================================================
void WxConsole::OnCommandChar(wxCommandEvent& event)
{
// std::cout << "WxConsole::ShowHtmlPage('"<<page<<"')"<<std::endl;
if (mwxHtmlWindow->GoTo(page))
{
- mwxNotebook->ChangeSelection(1);
+//EED mwxNotebook->ChangeSelection(1);
+ mwxNotebook->SetSelection(1);
}
else
{
}
}
+
+
+ //================================================================
+ wxPanel* WxConsole::CreateBtnsCtrlPanel(wxWindow *parent)
+ {
+ wxPanel *btnsCtrlPanel = new wxPanel(parent,-1);
+ wxBoxSizer *btnsSizer = new wxBoxSizer(wxHORIZONTAL);
+
+ wxButton *btnInclude = new wxButton( btnsCtrlPanel,-1,_T("Include") );
+ wxButton *btnReset = new wxButton( btnsCtrlPanel,-1,_T("Reset") );
+ wxButton *btnConfig = new wxButton( btnsCtrlPanel,-1,_T("Config") );
+ wxButton *btnGraphS = new wxButton( btnsCtrlPanel,-1,_T("Graph S.") );
+ wxButton *btnGraphD = new wxButton( btnsCtrlPanel,-1,_T("Graph D.") );
+ wxButton *btnHelp = new wxButton( btnsCtrlPanel,-1,_T("Help") );
+
+ btnsSizer->Add( btnInclude );
+ btnsSizer->Add( btnReset );
+ btnsSizer->Add( btnConfig );
+ btnsSizer->Add( btnGraphS );
+ btnsSizer->Add( btnGraphD );
+ btnsSizer->Add( btnHelp );
+ btnsCtrlPanel->SetSizer(btnsSizer);
+
+ Connect(btnInclude->GetId() , wxEVT_COMMAND_BUTTON_CLICKED , (wxObjectEventFunction) &WxConsole::OnBtnInclude );
+ Connect(btnReset->GetId() , wxEVT_COMMAND_BUTTON_CLICKED , (wxObjectEventFunction) &WxConsole::OnBtnReset );
+ Connect(btnConfig->GetId() , wxEVT_COMMAND_BUTTON_CLICKED , (wxObjectEventFunction) &WxConsole::OnBtnConfig );
+ Connect(btnGraphS->GetId() , wxEVT_COMMAND_BUTTON_CLICKED , (wxObjectEventFunction) &WxConsole::OnBtnGraphS );
+ Connect(btnGraphD->GetId() , wxEVT_COMMAND_BUTTON_CLICKED , (wxObjectEventFunction) &WxConsole::OnBtnGraphD );
+ Connect(btnHelp->GetId() , wxEVT_COMMAND_BUTTON_CLICKED , (wxObjectEventFunction) &WxConsole::OnBtnHelp );
+ return btnsCtrlPanel;
+ }
+ //================================================================
+
+
+ //================================================================
+ void WxConsole::OnBtnInclude(wxCommandEvent& event)
+ {
+ std::string default_doc_dir = ConfigurationFile::GetInstance().Get_default_temp_dir();
+ std::string stdDir = default_doc_dir+"/share/bbtk/bbs";
+ wxString defaultDir(stdDir.c_str(), wxConvUTF8);
+
+ wxFileDialog dialog(this, _T("Choose a file"),defaultDir, _T(""), _T("*.bbs"), wxOPEN );
+ if (dialog.ShowModal() == wxID_OK)
+ {
+// std::string command(_T("include "));
+// std::string pathfilename = (const char *)(dialog.GetFilename().mb_str());
+ wxString command(_T("include "));
+ wxString pathfilename = dialog.GetPath();
+ command += pathfilename;
+ CommandString( command );
+ }
+
+ }
+ //================================================================
+
+
+ //================================================================
+ void WxConsole::OnBtnReset(wxCommandEvent& event)
+ {
+printf("WxConsole::OnBtnReset 01 \n");
+ CommandString(_T("reset"));
+printf("WxConsole::OnBtnReset 02 \n");
+ }
+ //================================================================
+
+
+ //================================================================
+ void WxConsole::OnBtnConfig(wxCommandEvent& event)
+ {
+ CommandString(_T("config"));
+ }
+ //================================================================
+
+
+
+ //================================================================
+ void WxConsole::OnBtnGraphS(wxCommandEvent& event)
+ {
+ CommandString(_T("graph"));
+ }
+ //================================================================
+
+ //================================================================
+ void WxConsole::OnBtnGraphD(wxCommandEvent& event)
+ {
+ CommandString(_T("graph . 1"));
+ }
+ //================================================================
+
+ //================================================================
+ void WxConsole::OnBtnHelp(wxCommandEvent& event)
+ {
+ CommandString(_T("help"));
+ }
+ //================================================================
+
+
//================================================================
BEGIN_EVENT_TABLE(WxConsole, wxFrame)
EVT_MENU(WxConsole::ID_Menu_Quit, WxConsole::OnMenuQuit)
EVT_MENU(WxConsole::ID_Menu_About, WxConsole::OnMenuAbout)
+ EVT_MENU(WxConsole::ID_Menu_CreatePackage, WxConsole::OnMenuCreatePackage)
+ EVT_MENU(WxConsole::ID_Menu_CreateBlackBox, WxConsole::OnMenuCreateBlackBox)
+ EVT_MENU(WxConsole::ID_Menu_ShowImageGraph, WxConsole::OnMenuShowImageGraph)
EVT_TEXT_ENTER(WxConsole::ID_Text_Command, WxConsole::OnCommandEnter)
// EVT_CHAR(WxConsole::ID_Text_Command, WxConsole::OnCommandChar)
END_EVENT_TABLE()