+ wxButton *item9 = new wxButton( this, ID_STOPADVISE, wxT("StopAdvise"), wxDefaultPosition, wxDefaultSize, 0 );
+ item2->Add( item9, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5 );
+
+ item2->Add( 20, 20, 0, wxALIGN_CENTER|wxALL, 5 );
+
+ item2->Add( 20, 20, 0, wxALIGN_CENTER|wxALL, 5 );
+
+ wxButton *item10 = new wxButton( this, ID_EXECUTE, wxT("Execute"), wxDefaultPosition, wxDefaultSize, 0 );
+ item2->Add( item10, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5 );
+
+ item2->Add( 20, 20, 0, wxALIGN_CENTER|wxALL, 5 );
+
+ item2->Add( 20, 20, 0, wxALIGN_CENTER|wxALL, 5 );
+
+ item2->Add( 20, 20, 0, wxALIGN_CENTER|wxALL, 5 );
+
+ wxButton *item11 = new wxButton( this, ID_POKE, wxT("Poke"), wxDefaultPosition, wxDefaultSize, 0 );
+ item2->Add( item11, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5 );
+
+ item2->Add( 20, 20, 0, wxALIGN_CENTER|wxALL, 5 );
+
+ item2->Add( 20, 20, 0, wxALIGN_CENTER|wxALL, 5 );
+
+ item2->Add( 20, 20, 0, wxALIGN_CENTER|wxALL, 5 );
+
+ wxButton *item12 = new wxButton( this, ID_REQUEST, wxT("Request"), wxDefaultPosition, wxDefaultSize, 0 );
+ item2->Add( item12, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5 );
+
+ item2->Add( 20, 20, 0, wxALIGN_CENTER|wxALL, 5 );
+
+ item1->Add( item2, 1, wxALIGN_CENTER|wxALL, 5 );
+
+ item0->Add( item1, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5 );
+
+ wxStaticBox *item14 = new wxStaticBox( this, -1, wxT("Client log") );
+ wxStaticBoxSizer *item13 = new wxStaticBoxSizer( item14, wxVERTICAL );
+
+ wxTextCtrl *item15 = new wxTextCtrl( this, ID_LOG, wxEmptyString, wxDefaultPosition, wxSize(500,140), wxTE_MULTILINE );
+ item13->Add( item15, 1, wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5 );
+
+ item0->Add( item13, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5 );
+
+ this->SetSizer( item0 );
+ item0->SetSizeHints( this );
+
+ // status
+ m_client = NULL;
+ GetServername()->SetSelection(0);
+ GetHostname()->SetSelection(0);
+ GetTopic()->SetSelection(0);
+ wxLogTextCtrl *logWindow = new wxLogTextCtrl(GetLog());
+ delete wxLog::SetActiveTarget(logWindow);
+ wxLogMessage(wxT("Click on Connect to connect to the server"));
+ EnableControls();
+}
+
+void MyFrame::EnableControls()
+{
+ GetStart()->Enable(m_client == NULL);
+ GetServername()->Enable(m_client == NULL);
+ GetHostname()->Enable(m_client == NULL);
+ GetTopic()->Enable(m_client == NULL);
+
+ const bool isConnected = (m_client != NULL && m_client->IsConnected());
+ GetDisconnect()->Enable(m_client != NULL && isConnected);
+ GetStartAdvise()->Enable(m_client != NULL && isConnected);
+ GetStopAdvise()->Enable(m_client != NULL && isConnected);
+ GetExecute()->Enable(m_client != NULL && isConnected);
+ GetPoke()->Enable(m_client != NULL && isConnected);
+ GetRequest()->Enable(m_client != NULL && isConnected);