X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/70d26c3f4ffb24d50457d405c9595fd23f9e5b7c..6ba5438dda164146bf36ca729f8328332fae36b7:/samples/ipc/client.h?ds=sidebyside diff --git a/samples/ipc/client.h b/samples/ipc/client.h index 8017a29def..83848f42df 100644 --- a/samples/ipc/client.h +++ b/samples/ipc/client.h @@ -9,47 +9,100 @@ // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// +#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 MyConnection; +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 Enable(); + 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 { - public: - MyConnection(); - ~MyConnection(); - bool OnAdvise(const wxString& topic, const wxString& item, char *data, int size, wxIPCFormat format); - bool OnDisconnect(); +public: + virtual bool Execute(const wxChar *data, int size = -1, wxIPCFormat format = wxIPC_TEXT); + virtual wxChar *Request(const wxString& item, int *size = NULL, wxIPCFormat format = wxIPC_TEXT); + virtual bool Poke(const wxString& item, wxChar *data, int size = -1, wxIPCFormat format = wxIPC_TEXT); + virtual bool OnAdvise(const wxString& topic, const wxString& item, wxChar *data, int size, wxIPCFormat format); + virtual bool OnDisconnect(); +protected: + void MyConnection::Log(const wxString& command, const wxString& topic, + const wxString& item, wxChar *data, int size, wxIPCFormat format); }; 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; }; + +protected: + MyConnection *m_connection; }; -#define CLIENT_QUIT wxID_EXIT -#define CLIENT_EXECUTE 2 -#define CLIENT_REQUEST 3 -#define CLIENT_POKE 4 -#define CLIENT_LISTBOX 200