]> git.saurik.com Git - wxWidgets.git/blobdiff - samples/ipc/client.h
use kind, not id, of a menu item to test whether it's a separator: this allows having...
[wxWidgets.git] / samples / ipc / client.h
index 8017a29def07e89519527a55927994f2fec32c76..b4a3ac051539b45e62ff3e0d95b556d8ad7e6b39 100644 (file)
@@ -9,47 +9,97 @@
 // Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
+#include "connection.h"
+
+#define ID_START         10000
+#define ID_DISCONNECT    10001
+#define ID_STARTADVISE    10002
+#define ID_LOG          10003
+#define ID_SERVERNAME    10004
+#define ID_STOPADVISE    10005
+#define ID_POKE            10006
+#define ID_REQUEST        10007
+#define ID_EXECUTE        10008
+#define ID_TOPIC        10009
+#define ID_HOSTNAME        10010
+
 // Define a new application
+class MyClient;
+class MyFrame;
+
 class MyApp: public wxApp
 {
-  public:
-    bool OnInit();
-    int OnExit();
+public:
+    virtual bool OnInit();
+    virtual int OnExit();
+    MyFrame *GetFrame() { return m_frame; };
+
+protected:
+    MyFrame        *m_frame;
 };
 
 // Define a new frame
 class MyFrame: public wxFrame
 {
-  public:
-    wxPanel *panel;
+public:
+    MyFrame(wxFrame *frame, const wxString& title);
 
-    MyFrame(wxFrame *frame, const wxString& title, const wxPoint& pos, const wxSize& size);
-    void OnCloseWindow(wxCloseEvent& event);
     void OnExit(wxCommandEvent& event);
+    void OnClose(wxCloseEvent& event);
+    void EnableControls();
+    void Disconnect();
+
+protected:
+    wxButton* GetStart()  { return (wxButton*) FindWindow( ID_START ); }
+    wxChoice* GetServername()  { return (wxChoice*) FindWindow( ID_SERVERNAME ); }
+    wxChoice* GetHostname()  { return (wxChoice*) FindWindow( ID_HOSTNAME ); }
+    wxChoice* GetTopic()  { return (wxChoice*) FindWindow( ID_TOPIC ); }
+    wxButton* GetDisconnect()  { return (wxButton*) FindWindow( ID_DISCONNECT ); }
+    wxButton* GetStartAdvise()  { return (wxButton*) FindWindow( ID_STARTADVISE ); }
+    wxButton* GetStopAdvise()  { return (wxButton*) FindWindow( ID_STOPADVISE ); }
+    wxButton* GetRequest()  { return (wxButton*) FindWindow( ID_REQUEST ); }
+    wxButton* GetPoke()  { return (wxButton*) FindWindow( ID_POKE ); }
+    wxButton* GetExecute()  { return (wxButton*) FindWindow( ID_EXECUTE ); }
+    wxTextCtrl* GetLog()  { return (wxTextCtrl*) FindWindow( ID_LOG ); }
+
+    MyClient         *m_client;
+
+    void OnStart( wxCommandEvent &event );
+    void OnServername( wxCommandEvent &event );
+    void OnHostname( wxCommandEvent &event );
+    void OnTopic( wxCommandEvent &event );
+    void OnDisconnect( wxCommandEvent &event );
+    void OnStartAdvise( wxCommandEvent &event );
+    void OnStopAdvise( wxCommandEvent &event );
     void OnExecute(wxCommandEvent& event);
     void OnPoke(wxCommandEvent& event);
     void OnRequest(wxCommandEvent& event);
-DECLARE_EVENT_TABLE()
+
+protected:
+    DECLARE_EVENT_TABLE()
 };
 
-class MyConnection: public wxConnection
+class MyConnection : public MyConnectionBase
 {
- public:
-  MyConnection();
-  ~MyConnection();
-  bool OnAdvise(const wxString& topic, const wxString& item, char *data, int size, wxIPCFormat format);
-  bool OnDisconnect();
+public:
+    virtual bool DoExecute(const void *data, size_t size, wxIPCFormat format);
+    virtual const void *Request(const wxString& item, size_t *size = NULL, wxIPCFormat format = wxIPC_TEXT);
+    virtual bool DoPoke(const wxString& item, const void* data, size_t size, wxIPCFormat format);
+    virtual bool OnAdvise(const wxString& topic, const wxString& item, const void *data, size_t size, wxIPCFormat format);
+    virtual bool OnDisconnect();
 };
 
 class MyClient: public wxClient
 {
- public:
-  MyClient();
-  wxConnectionBase *OnMakeConnection();
-};
+public:
+    MyClient();
+    ~MyClient();
+    bool Connect(const wxString& sHost, const wxString& sService, const wxString& sTopic);
+    void Disconnect();
+    wxConnectionBase *OnMakeConnection();
+    bool IsConnected() { return m_connection != NULL; };
+    MyConnection *GetConnection() { return m_connection; };
 
-#define CLIENT_QUIT     wxID_EXIT
-#define CLIENT_EXECUTE  2
-#define CLIENT_REQUEST  3
-#define CLIENT_POKE     4
-#define CLIENT_LISTBOX  200
+protected:
+    MyConnection     *m_connection;
+};