From 576ad2b67bced04bde83de91f5e647af868c5fd4 Mon Sep 17 00:00:00 2001 From: fcolin Date: Fri, 12 Mar 2010 16:41:08 +0000 Subject: mise en conformité des messages ping /pong Correction pb a la fermeture d'ivy --- IvyProbe/IvyProbe.rc | 21 +++++++++++---------- IvyProbe/IvyProbeDlg.cpp | 45 +++++++++++++++++++++++++++++++++++++++++---- IvyProbe/IvyProbeDlg.h | 2 ++ IvyProbe/Resource.h | 4 +++- 4 files changed, 57 insertions(+), 15 deletions(-) (limited to 'IvyProbe') diff --git a/IvyProbe/IvyProbe.rc b/IvyProbe/IvyProbe.rc index 8fc9923..52746ec 100644 --- a/IvyProbe/IvyProbe.rc +++ b/IvyProbe/IvyProbe.rc @@ -83,22 +83,23 @@ BEGIN DEFPUSHBUTTON "OK",IDOK,178,7,32,14,WS_GROUP END -IDD_IVYPROBE_DIALOG DIALOGEX 0, 0, 163, 152 +IDD_IVYPROBE_DIALOG DIALOGEX 0, 0, 281, 154 STYLE DS_SETFONT | WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME EXSTYLE WS_EX_APPWINDOW CAPTION "IvyProbe" MENU IDR_MENU1 FONT 8, "MS Sans Serif", 0, 0, 0x0 BEGIN - EDITTEXT IDC_BUSNUMBER,4,14,120,14,ES_AUTOHSCROLL - PUSHBUTTON "Start",IDC_START,130,15,25,14 + EDITTEXT IDC_BUSNUMBER,4,14,240,14,ES_AUTOHSCROLL + PUSHBUTTON "Start",IDC_START,248,15,25,14 LTEXT "Bind:",IDC_STATIC_BIND,4,135,17,8 LTEXT "Msg:",IDC_STATIC_MSG,4,117,17,12 - COMBOBOX IDC_MSG,27,117,100,82,CBS_DROPDOWN | CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP - DEFPUSHBUTTON "Send",IDC_SEND,128,116,27,14 - PUSHBUTTON "Bind",IDC_BIND,128,132,27,14 - COMBOBOX IDC_REGEXP,27,133,100,66,CBS_DROPDOWN | CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP - EDITTEXT IDC_TEXT,4,31,151,82,ES_MULTILINE | ES_AUTOVSCROLL | ES_AUTOHSCROLL | ES_NOHIDESEL | ES_READONLY | WS_VSCROLL + COMBOBOX IDC_MSG,27,117,213,82,CBS_DROPDOWN | CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP + DEFPUSHBUTTON "Send",IDC_SEND,246,116,27,14 + PUSHBUTTON "Bind",IDC_BIND,246,132,27,14 + COMBOBOX IDC_REGEXP,27,133,214,66,CBS_DROPDOWN | CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP + EDITTEXT IDC_TEXT,99,29,171,82,ES_MULTILINE | ES_AUTOVSCROLL | ES_AUTOHSCROLL | ES_NOHIDESEL | ES_READONLY | WS_VSCROLL + LISTBOX IDC_CLIENT_LIST,4,29,92,84,LBS_SORT | LBS_MULTIPLESEL | LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP END @@ -159,9 +160,9 @@ BEGIN IDD_IVYPROBE_DIALOG, DIALOG BEGIN LEFTMARGIN, 4 - RIGHTMARGIN, 155 + RIGHTMARGIN, 273 TOPMARGIN, 1 - BOTTOMMARGIN, 148 + BOTTOMMARGIN, 150 END END #endif // APSTUDIO_INVOKED diff --git a/IvyProbe/IvyProbeDlg.cpp b/IvyProbe/IvyProbeDlg.cpp index ef7bff8..35a9fe3 100644 --- a/IvyProbe/IvyProbeDlg.cpp +++ b/IvyProbe/IvyProbeDlg.cpp @@ -58,6 +58,7 @@ void CIvyProbeDlg::DoDataExchange(CDataExchange* pDX) DDX_Control(pDX, IDC_REGEXP, m_expr); DDX_Control(pDX, IDC_MSG, m_msg); DDX_Text(pDX, IDC_BUSNUMBER, m_busnumber); + DDX_Control(pDX, IDC_CLIENT_LIST, m_clients ); //}}AFX_DATA_MAP } @@ -74,6 +75,7 @@ BEGIN_MESSAGE_MAP(CIvyProbeDlg, MyDialog) //}}AFX_MSG_MAP ON_COMMAND(ID_FILE_SAVEBINDINGS, &CIvyProbeDlg::OnFileSavebindings) ON_COMMAND(ID_FILE_LOADBINDINGS, &CIvyProbeDlg::OnFileLoadbindings) + ON_LBN_DBLCLK(IDC_CLIENT_LIST, &CIvyProbeDlg::OnLbnDblclkClientList) END_MESSAGE_MAP() @@ -136,7 +138,10 @@ BOOL CIvyProbeDlg::OnInitDialog() << item ( IDC_BUSNUMBER, GREEDY ) << item ( IDC_START, NORESIZE ) ) - << item ( IDC_TEXT, GREEDY ) + << ( pane( HORIZONTAL, GREEDY ) + << item ( IDC_CLIENT_LIST, ABSOLUTE_HORZ ) + << item ( IDC_TEXT, GREEDY ) + ) << ( pane( HORIZONTAL, ABSOLUTE_VERT ) << item( IDC_STATIC_MSG, NORESIZE ) << item( IDC_MSG, GREEDY ) @@ -160,7 +165,7 @@ BOOL CIvyProbeDlg::OnInitDialog() // Set Argument from Command Line m_busnumber = cmd.m_busNumber; - bus = new Ivy( "IvyProbe Windows","IvyProbe Windows Ready",this,FALSE); + bus = new Ivy( "IvyProbeWindows","IvyProbeWindows Ready",this,FALSE); bus->SetBindCallback( this ); // bus->BindMsg("(.*)", BUS_CALLBACK_OF(CTestDlg, IvyCallback )); @@ -232,11 +237,25 @@ TRACE(TEXT("Direct Msg Receive %d, %s\n"),id,arg ); void CIvyProbeDlg::OnApplicationConnected(IvyApplication *app) { - WriteMessage( "Application: %s ready",(LPCSTR)(app->GetName()) ); + LPCSTR name = (LPCSTR)(app->GetName()); + WriteMessage( "Application: %s ready", name ); + int idx = m_clients.AddString( name ); + m_clients.SetItemDataPtr( idx, app ); } void CIvyProbeDlg::OnApplicationDisconnected(IvyApplication *app) { - WriteMessage( "Application: %s bye",(LPCSTR)(app->GetName()) ); + LPCSTR name = (LPCSTR)(app->GetName()); + WriteMessage( "Application: %s bye", name ); + int nb = m_clients.GetCount(); + for( int idx = 0; idx < nb ; idx++) + { + IvyApplication * appToRemove = (IvyApplication * )m_clients.GetItemDataPtr( idx ); + if ( appToRemove == app ) + { + m_clients.DeleteString( idx ); + break; + } + } } void CIvyProbeDlg::OnAddBind (IvyApplication *app, int id, const char * regexp) @@ -392,3 +411,21 @@ void CIvyProbeDlg::OnFileSavebindings() } #endif } + +void CIvyProbeDlg::OnLbnDblclkClientList() +{ + IvyApplication *app; + int nCount = m_clients.GetSelCount(); + if ( nCount > 0 ) + { + int* selected = new int[ nCount ]; + + int nb = m_clients.GetSelItems(nCount, selected ); + for( int idx = 0; idx < nb ; idx++) + { + app = (IvyApplication * )m_clients.GetItemDataPtr( selected[idx] ); + bus->SendDieMsg( app ); + } + delete [] selected; + } +} diff --git a/IvyProbe/IvyProbeDlg.h b/IvyProbe/IvyProbeDlg.h index eee40ef..e196f57 100644 --- a/IvyProbe/IvyProbeDlg.h +++ b/IvyProbe/IvyProbeDlg.h @@ -61,6 +61,7 @@ public: CComboBox m_expr; CComboBox m_msg; CString m_busnumber; + CListBox m_clients; //}}AFX_DATA // ClassWizard generated virtual function overrides @@ -102,6 +103,7 @@ public: afx_msg void OnFileSavebindings(); public: afx_msg void OnFileLoadbindings(); + afx_msg void OnLbnDblclkClientList(); }; //{{AFX_INSERT_LOCATION}} diff --git a/IvyProbe/Resource.h b/IvyProbe/Resource.h index afeece2..c88e5b4 100644 --- a/IvyProbe/Resource.h +++ b/IvyProbe/Resource.h @@ -30,6 +30,8 @@ #define IDC_REGEXP 1021 #define IDC_CLOCK_FAST_BACKWARD 1026 #define IDC_CLOCK_BACKWARD 1027 +#define IDC_CLIENTLIST 1027 +#define IDC_CLIENT_LIST 1027 #define IDC_CLOCK_START 1028 #define IDC_CLOCK_PAUSE 1029 #define IDC_CLOCK_FORWARD 1030 @@ -46,7 +48,7 @@ #ifndef APSTUDIO_READONLY_SYMBOLS #define _APS_NEXT_RESOURCE_VALUE 134 #define _APS_NEXT_COMMAND_VALUE 32775 -#define _APS_NEXT_CONTROL_VALUE 1027 +#define _APS_NEXT_CONTROL_VALUE 1028 #define _APS_NEXT_SYMED_VALUE 104 #endif #endif -- cgit v1.1