X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/4b89c618454fad682c484e86310008f583b9ab55..33b494d643e42a2e2963987cbc3637f4593ea43a:/samples/ipc/server.cpp?ds=sidebyside diff --git a/samples/ipc/server.cpp b/samples/ipc/server.cpp index 4763f877e8..91a173313d 100644 --- a/samples/ipc/server.cpp +++ b/samples/ipc/server.cpp @@ -32,7 +32,7 @@ // we're using TCP/IP or real DDE. #include "ddesetup.h" -#if defined(__WXGTK__) || defined(__WXMOTIF__) +#if defined(__WXGTK__) || defined(__WXX11__) || defined(__WXMOTIF__) || defined(__WXMAC__) #include "mondrian.xpm" #endif @@ -45,6 +45,7 @@ IMPLEMENT_APP(MyApp) BEGIN_EVENT_TABLE(MyFrame, wxFrame) + EVT_MENU (SERVER_EXIT, MyFrame::OnExit) EVT_LISTBOX(SERVER_LISTBOX, MyFrame::OnListBoxClick) END_EVENT_TABLE() @@ -70,16 +71,17 @@ MyConnection *the_connection = NULL; bool MyApp::OnInit() { // Create the main frame window - (new MyFrame(NULL, "Server"))->Show(); + (new MyFrame(NULL, "Server"))->Show(TRUE); + + // service name (DDE classes) or port number (TCP/IP based classes) + wxString service = IPC_SERVICE; - // create the server object - wxString server_name = "4242"; if (argc > 1) - server_name = argv[1]; + service = argv[1]; // Create a new server m_server = new MyServer; - m_server->Create(server_name); + m_server->Create(service); return TRUE; } @@ -97,10 +99,8 @@ int MyApp::OnExit() // Define my frame constructor MyFrame::MyFrame(wxFrame *frame, const wxString& title) - : wxFrame(frame, -1, title) + : wxFrame(frame, -1, title, wxDefaultPosition, wxSize(350, 250)) { - panel = NULL; - CreateStatusBar(); // Give it an icon @@ -109,7 +109,7 @@ MyFrame::MyFrame(wxFrame *frame, const wxString& title) // Make a menubar wxMenu *file_menu = new wxMenu; - file_menu->Append(SERVER_QUIT, "&Exit"); + file_menu->Append(SERVER_EXIT, "&Quit\tCtrl-Q"); wxMenuBar *menu_bar = new wxMenuBar; @@ -118,33 +118,34 @@ MyFrame::MyFrame(wxFrame *frame, const wxString& title) // Associate the menu bar with the frame SetMenuBar(menu_bar); - // Make a panel - panel = new wxPanel(this); - wxListBox *list = new wxListBox(panel, SERVER_LISTBOX, wxPoint(5, 5)); + // Make a listbox + wxListBox *list = new wxListBox(this, SERVER_LISTBOX, wxPoint(5, 5)); list->Append("Apple"); list->Append("Pear"); list->Append("Orange"); list->Append("Banana"); list->Append("Fruit"); - - panel->Fit(); - Fit(); } // Set the client process's listbox to this item -void MyFrame::OnListBoxClick(wxCommandEvent& event) +void MyFrame::OnListBoxClick(wxCommandEvent& WXUNUSED(event)) { - wxListBox* listBox = (wxListBox*) panel->FindWindow(SERVER_LISTBOX); + wxListBox* listBox = (wxListBox*) FindWindow(SERVER_LISTBOX); if (listBox) { wxString value = listBox->GetStringSelection(); if (the_connection) { - the_connection->Advise("Item", (wxChar *)value.c_str()); + the_connection->Advise(IPC_ADVISE_NAME, (wxChar *)value.c_str()); } } } +void MyFrame::OnExit(wxCommandEvent& WXUNUSED(event)) +{ + Close(TRUE); +} + // ---------------------------------------------------------------------------- // IPCDialogBox // ---------------------------------------------------------------------------- @@ -172,10 +173,11 @@ void IPCDialogBox::OnQuit(wxCommandEvent& event) wxConnectionBase *MyServer::OnAcceptConnection(const wxString& topic) { - if (strcmp(topic, "STDIO") != 0 && strcmp(topic, "IPC TEST") == 0) + if ( topic == IPC_TOPIC ) return new MyConnection(ipc_buffer, WXSIZEOF(ipc_buffer)); - else - return NULL; + + // unknown topic + return NULL; } // ---------------------------------------------------------------------------- @@ -215,7 +217,7 @@ bool MyConnection::OnPoke(const wxString& WXUNUSED(topic), int WXUNUSED(size), wxIPCFormat WXUNUSED(format)) { - wxLogStatus("Poke command: %s = %s", item, data); + wxLogStatus("Poke command: %s = %s", item.c_str(), data); return TRUE; }