Implemented mechanism which allow controls to subscribe to client library events
authorVictor Kirhenshtein <victor@netxms.org>
Tue, 24 Jul 2007 22:34:22 +0000 (22:34 +0000)
committerVictor Kirhenshtein <victor@netxms.org>
Tue, 24 Jul 2007 22:34:22 +0000 (22:34 +0000)
14 files changed:
.gitattributes
src/client/console/include/nxmc_api.h
src/client/console/libnxmc/Makefile.am
src/client/console/libnxmc/events.cpp [new file with mode: 0644]
src/client/console/libnxmc/libnxmc.dsp
src/client/console/libnxmc/main.cpp
src/client/console/nxmc/comm.cpp
src/client/console/nxmc/mainfrm.cpp
src/client/console/nxmc/mainfrm.h
src/client/console/nxmc/nxmc.cpp
src/client/console/plugins/AlarmBrowser/alarm_browser.h
src/client/console/plugins/AlarmBrowser/mcpAlarmBrowser.dsp
src/client/console/plugins/AlarmBrowser/view.cpp
src/client/console/plugins/ObjectBrowser/mcpObjectBrowser.dsp

index dcdbfea..683b916 100644 (file)
@@ -445,6 +445,7 @@ src/client/console/include/Makefile.am -text
 src/client/console/include/nxmc_api.h -text
 src/client/console/libnxmc/Makefile.am -text
 src/client/console/libnxmc/alarms.cpp -text
+src/client/console/libnxmc/events.cpp -text
 src/client/console/libnxmc/heading.cpp -text
 src/client/console/libnxmc/heading.h -text
 src/client/console/libnxmc/image.cpp -text
index 7cb7ec2..3fc4595 100644 (file)
@@ -204,6 +204,8 @@ typedef struct
 
 BEGIN_DECLARE_EVENT_TYPES()
     DECLARE_EXPORTED_EVENT_TYPE(LIBNXMC_EXPORTABLE, nxEVT_REFRESH_VIEW, 0)
+    DECLARE_EXPORTED_EVENT_TYPE(LIBNXMC_EXPORTABLE, nxEVT_NXC_ALARM_CHANGE, 0)
+    DECLARE_EXPORTED_EVENT_TYPE(LIBNXMC_EXPORTABLE, nxEVT_NXC_OBJECT_CHANGE, 0)
 END_DECLARE_EVENT_TYPES()
 
 #define EVT_LIBNXMC_EVENT(evt, fn) \
@@ -213,6 +215,8 @@ END_DECLARE_EVENT_TYPES()
         (wxObject *) NULL \
     ),
 #define EVT_NX_REFRESH_VIEW(fn)                        EVT_LIBNXMC_EVENT(nxEVT_REFRESH_VIEW, fn)
+#define EVT_NXC_ALARM_CHANGE(fn)                       EVT_LIBNXMC_EVENT(nxEVT_NXC_ALARM_CHANGE, fn)
+#define EVT_NXC_OBJECT_CHANGE(fn)              EVT_LIBNXMC_EVENT(nxEVT_NXC_OBJECT_CHANGE, fn)
 
 
 //
@@ -335,4 +339,8 @@ TCHAR LIBNXMC_EXPORTABLE *NXMCFormatTimeStamp(time_t timeStamp, TCHAR *buffer, i
 void LIBNXMC_EXPORTABLE NXMCSaveListCtrlColumns(wxConfigBase *cfg, wxListCtrl &wndListCtrl, const TCHAR *prefix);
 void LIBNXMC_EXPORTABLE NXMCLoadListCtrlColumns(wxConfigBase *cfg, wxListCtrl &wndListCtrl, const TCHAR *prefix);
 
+void LIBNXMC_EXPORTABLE NXMCSetMainEventHandler(wxEvtHandler *evtHandler);
+void LIBNXMC_EXPORTABLE NXMCEvtConnect(wxEventType eventType, wxObjectEventFunction func, wxEvtHandler *sink);
+void LIBNXMC_EXPORTABLE NXMCEvtDisconnect(wxEventType eventType, wxObjectEventFunction func, wxEvtHandler *sink);
+
 #endif
index 61fcab9..638f536 100644 (file)
@@ -1,7 +1,7 @@
 INCLUDES=-I@top_srcdir@/include -I@top_srcdir@/src/client/console/include
 
 lib_LTLIBRARIES = libnxmc.la
-libnxmc_la_SOURCES = alarms.cpp heading.cpp image.cpp main.cpp nxview.cpp tools.cpp view.cpp viewtracker.cpp
+libnxmc_la_SOURCES = alarms.cpp events.cpp heading.cpp image.cpp main.cpp nxview.cpp tools.cpp view.cpp viewtracker.cpp
 libnxmc_la_LDFLAGS = -version-info $(NETXMS_LIBRARY_VERSION)
 libnxmc_la_LIBADD = ../../../libnetxms/libnetxms.la ../../../libnxcl/libnxcl.la
 
diff --git a/src/client/console/libnxmc/events.cpp b/src/client/console/libnxmc/events.cpp
new file mode 100644 (file)
index 0000000..e1848e3
--- /dev/null
@@ -0,0 +1,63 @@
+/* 
+** NetXMS - Network Management System
+** Portable management console - plugin API library
+** Copyright (C) 2007 Victor Kirhenshtein
+**
+** This program is free software; you can redistribute it and/or modify
+** it under the terms of the GNU General Public License as published by
+** the Free Software Foundation; either version 2 of the License, or
+** (at your option) any later version.
+**
+** This program is distributed in the hope that it will be useful,
+** but WITHOUT ANY WARRANTY; without even the implied warranty of
+** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+** GNU General Public License for more details.
+**
+** You should have received a copy of the GNU General Public License
+** along with this program; if not, write to the Free Software
+** Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+**
+** File: events.cpp
+**
+**/
+
+#include "libnxmc.h"
+
+
+//
+// Static data
+//
+
+static wxEvtHandler *s_mainEventHandler = NULL;
+
+
+//
+// Set main event handler
+//
+
+void LIBNXMC_EXPORTABLE NXMCSetMainEventHandler(wxEvtHandler *evtHandler)
+{
+       s_mainEventHandler = evtHandler;
+}
+
+
+//
+// Connect to event
+//
+
+void LIBNXMC_EXPORTABLE NXMCEvtConnect(wxEventType eventType, wxObjectEventFunction func, wxEvtHandler *sink)
+{
+       if (s_mainEventHandler != NULL)
+               s_mainEventHandler->Connect(eventType, func, NULL, sink);
+}
+
+
+//
+// Disconnect from event
+//
+
+void LIBNXMC_EXPORTABLE NXMCEvtDisconnect(wxEventType eventType, wxObjectEventFunction func, wxEvtHandler *sink)
+{
+       if (s_mainEventHandler != NULL)
+               s_mainEventHandler->Disconnect(eventType, func, NULL, sink);
+}
index 22d9543..5e6639d 100644 (file)
@@ -45,7 +45,7 @@ RSC=rc.exe
 # PROP Ignore_Export_Lib 0
 # PROP Target_Dir ""
 # ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBNXMC_EXPORTS" /YX /FD /c
-# ADD CPP /nologo /MT /W3 /GX /O2 /I "..\include" /I "..\..\..\..\include" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBNXMC_EXPORTS" /YX /FD /c
+# ADD CPP /nologo /MD /W3 /GX /O2 /I "..\include" /I "..\..\..\..\include" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBNXMC_EXPORTS" /YX /FD /c
 # ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
 # ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
 # ADD BASE RSC /l 0x409 /d "NDEBUG"
@@ -71,7 +71,7 @@ LINK32=link.exe
 # PROP Ignore_Export_Lib 0
 # PROP Target_Dir ""
 # ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBNXMC_EXPORTS" /YX /FD /GZ /c
-# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "..\include" /I "..\..\..\..\include" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBNXMC_EXPORTS" /YX /FD /GZ /c
+# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "..\include" /I "..\..\..\..\include" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBNXMC_EXPORTS" /YX /FD /GZ /c
 # ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
 # ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
 # ADD BASE RSC /l 0x409 /d "_DEBUG"
@@ -98,7 +98,7 @@ LINK32=link.exe
 # PROP Ignore_Export_Lib 0
 # PROP Target_Dir ""
 # ADD BASE CPP /nologo /MT /W3 /GX /O2 /I "..\include" /I "..\..\..\..\include" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBNXMC_EXPORTS" /YX /FD /c
-# ADD CPP /nologo /MT /W3 /GX /O2 /I "..\include" /I "..\..\..\..\include" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBNXMC_EXPORTS" /D "UNICODE" /YX /FD /c
+# ADD CPP /nologo /MD /W3 /GX /O2 /I "..\include" /I "..\..\..\..\include" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBNXMC_EXPORTS" /D "UNICODE" /YX /FD /c
 # ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
 # ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
 # ADD BASE RSC /l 0x409 /d "NDEBUG"
@@ -112,7 +112,7 @@ LINK32=link.exe
 # Begin Special Build Tool
 SOURCE="$(InputPath)"
 PostBuild_Desc=Copy files
-PostBuild_Cmds=copy        Release_UNICODE\libnxmc.dll        C:\NetXMS\bin\ 
+PostBuild_Cmds=copy         Release_UNICODE\libnxmc.dll         C:\NetXMS\bin\ 
 # End Special Build Tool
 
 !ELSEIF  "$(CFG)" == "libnxmc - Win32 Debug UNICODE"
@@ -130,7 +130,7 @@ PostBuild_Cmds=copy        Release_UNICODE\libnxmc.dll        C:\NetXMS\bin\
 # PROP Ignore_Export_Lib 0
 # PROP Target_Dir ""
 # ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "..\include" /I "..\..\..\..\include" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBNXMC_EXPORTS" /YX /FD /GZ /c
-# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "..\include" /I "..\..\..\..\include" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBNXMC_EXPORTS" /D "UNICODE" /YX /FD /GZ /c
+# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "..\include" /I "..\..\..\..\include" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBNXMC_EXPORTS" /D "UNICODE" /YX /FD /GZ /c
 # ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
 # ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
 # ADD BASE RSC /l 0x409 /d "_DEBUG"
@@ -164,6 +164,10 @@ SOURCE=.\alarms.cpp
 # End Source File
 # Begin Source File
 
+SOURCE=.\events.cpp
+# End Source File
+# Begin Source File
+
 SOURCE=.\heading.cpp
 # End Source File
 # Begin Source File
index 1d19f36..c16302f 100644 (file)
@@ -38,6 +38,8 @@ wxWindow *g_auiDefaultParent = NULL;
 //
 
 DEFINE_EVENT_TYPE(nxEVT_REFRESH_VIEW)
+DEFINE_EVENT_TYPE(nxEVT_NXC_ALARM_CHANGE)
+DEFINE_EVENT_TYPE(nxEVT_NXC_OBJECT_CHANGE)
 
 
 //
index 2144ffe..28680bb 100644 (file)
@@ -40,13 +40,26 @@ struct LOGIN_DATA
 };
 
 
+//
+// Post NetXMS event
+//
+
+static void PostNetXMSEvent(WXTYPE type, int code, void *data)
+{
+       wxCommandEvent event(type);
+       event.SetClientData(data);
+       event.SetInt(code);
+       wxPostEvent(wxGetApp().GetTopWindow(), event);
+}
+
+
 //
 // Client library event handler
 //
 
-static void ClientEventHandler(NXC_SESSION session, DWORD event, DWORD code, void *arg)
+static void ClientEventHandler(NXC_SESSION session, DWORD nxcEvent, DWORD code, void *arg)
 {
-       switch(event)
+       switch(nxcEvent)
        {
                case NXC_EVENT_NOTIFICATION:
                        switch(code)
@@ -56,6 +69,7 @@ static void ClientEventHandler(NXC_SESSION session, DWORD event, DWORD code, voi
                                case NX_NOTIFY_ALARM_CHANGED:
                                case NX_NOTIFY_ALARM_TERMINATED:
                                        NXMCUpdateAlarms(code, (NXC_ALARM *)arg);
+                                       PostNetXMSEvent(nxEVT_NXC_ALARM_CHANGE, code, nx_memdup(arg, sizeof(NXC_ALARM)));
                                        break;
                                default:
                                        break;
index 3fa43d9..34d4a2d 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: mainfrm.cpp,v 1.7 2007-07-23 22:38:06 victor Exp $ */
+/* $Id: mainfrm.cpp,v 1.8 2007-07-24 22:34:21 victor Exp $ */
 /* 
 ** NetXMS - Network Management System
 ** Portable management console
@@ -47,6 +47,7 @@ BEGIN_EVENT_TABLE(nxMainFrame, wxFrame)
        EVT_MENU(wxID_TAB_FLOAT, nxMainFrame::OnTabFloat)
        EVT_MENU(wxID_TAB_DOCK, nxMainFrame::OnTabDock)
        EVT_MENU_RANGE(wxID_PLUGIN_RANGE_START, wxID_PLUGIN_RANGE_END, nxMainFrame::OnPluginCommand)
+       EVT_NXC_ALARM_CHANGE(nxMainFrame::OnAlarmChange)
 END_EVENT_TABLE()
 
 
@@ -374,3 +375,16 @@ void nxMainFrame::OnViewRefresh(wxCommandEvent &event)
                page->AddPendingEvent(event);
        }
 }
+
+
+//
+// Handler for alarm change events
+//
+
+void nxMainFrame::OnAlarmChange(wxCommandEvent &event)
+{
+       wxLogDebug(_T("MAINFRAME: onAlarmChange %d"), event.GetInt());
+       // nxMainFrame is a final destination for client library events,
+       // so it should destroy dynamic data associated with event
+       safe_free(event.GetClientData());
+}
index 8a37d3b..e58cc9a 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: mainfrm.h,v 1.4 2007-07-23 06:39:12 victor Exp $ */
+/* $Id: mainfrm.h,v 1.5 2007-07-24 22:34:21 victor Exp $ */
 /* 
 ** NetXMS - Network Management System
 ** Portable management console
@@ -103,6 +103,7 @@ protected:
        void OnTabDock(wxCommandEvent &event);
        void OnPluginCommand(wxCommandEvent &event);
        void OnContextMenu(wxContextMenuEvent &event);
+       void OnAlarmChange(wxCommandEvent &event);
 
        DECLARE_EVENT_TABLE()
 };
index 239b9e4..21d9f4c 100644 (file)
@@ -100,6 +100,7 @@ bool nxApp::OnInit()
 
        m_mainFrame = new nxMainFrame(wxDefaultPosition, wxSize(700, 500));
        SetTopWindow(m_mainFrame);
+       NXMCSetMainEventHandler(m_mainFrame);
        m_mainFrame->UpdateMenuFromPlugins();
 
        bool flag;
index 06ac9d4..b269b6e 100644 (file)
@@ -57,6 +57,7 @@ protected:
        void OnSize(wxSizeEvent &event);
        void OnListItemRightClick(wxListEvent &event);
        void OnListColumnClick(wxListEvent &event);
+void OnAlarmChange(wxCommandEvent &event);
 
        DECLARE_EVENT_TABLE()
 };
index a67982f..1fd8e1c 100644 (file)
@@ -45,7 +45,7 @@ RSC=rc.exe
 # PROP Ignore_Export_Lib 0
 # PROP Target_Dir ""
 # ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "MCPALARMBROWSER_EXPORTS" /YX /FD /c
-# ADD CPP /nologo /MT /W3 /GX /O2 /I "..\..\..\..\..\include" /I "..\..\include" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "MCPALARMBROWSER_EXPORTS" /D "__WXMSW__" /YX /FD /c
+# ADD CPP /nologo /MD /W3 /GX /O2 /I "..\..\..\..\..\include" /I "..\..\include" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "MCPALARMBROWSER_EXPORTS" /D "__WXMSW__" /YX /FD /c
 # ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
 # ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
 # ADD BASE RSC /l 0x409 /d "NDEBUG"
@@ -71,7 +71,7 @@ LINK32=link.exe
 # PROP Ignore_Export_Lib 0
 # PROP Target_Dir ""
 # ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "MCPALARMBROWSER_EXPORTS" /YX /FD /GZ /c
-# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "..\..\..\..\..\include" /I "..\..\include" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "MCPALARMBROWSER_EXPORTS" /D "__WXMSW__" /D "__WXDEBUG__" /D WXDEBUG=1 /YX /FD /GZ /c
+# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "..\..\..\..\..\include" /I "..\..\include" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "MCPALARMBROWSER_EXPORTS" /D "__WXMSW__" /D "__WXDEBUG__" /D WXDEBUG=1 /YX /FD /GZ /c
 # ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
 # ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
 # ADD BASE RSC /l 0x409 /d "_DEBUG"
@@ -97,7 +97,7 @@ LINK32=link.exe
 # PROP Ignore_Export_Lib 0
 # PROP Target_Dir ""
 # ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "MCPALARMBROWSER_EXPORTS" /YX /FD /c
-# ADD CPP /nologo /MT /W3 /GX /O2 /I "..\..\..\..\..\include" /I "..\..\include" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "MCPALARMBROWSER_EXPORTS" /D "UNICODE" /D "__WXMSW__" /YX /FD /c
+# ADD CPP /nologo /MD /W3 /GX /O2 /I "..\..\..\..\..\include" /I "..\..\include" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "MCPALARMBROWSER_EXPORTS" /D "UNICODE" /D "__WXMSW__" /YX /FD /c
 # ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
 # ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
 # ADD BASE RSC /l 0x409 /d "NDEBUG"
@@ -111,7 +111,7 @@ LINK32=link.exe
 # Begin Special Build Tool
 SOURCE="$(InputPath)"
 PostBuild_Desc=Copy files
-PostBuild_Cmds=copy        Release_UNICODE\AlarmBrowser.so        C:\NetXMS\lib\nxmc\ 
+PostBuild_Cmds=copy         Release_UNICODE\AlarmBrowser.so         C:\NetXMS\lib\nxmc\ 
 # End Special Build Tool
 
 !ELSEIF  "$(CFG)" == "mcpAlarmBrowser - Win32 Debug UNICODE"
@@ -128,7 +128,7 @@ PostBuild_Cmds=copy        Release_UNICODE\AlarmBrowser.so        C:\NetXMS\lib\
 # PROP Ignore_Export_Lib 0
 # PROP Target_Dir ""
 # ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "MCPALARMBROWSER_EXPORTS" /YX /FD /GZ /c
-# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "..\..\..\..\..\include" /I "..\..\include" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "MCPALARMBROWSER_EXPORTS" /D "UNICODE" /D "__WXMSW__" /D "__WXDEBUG__" /D WXDEBUG=1 /YX /FD /GZ /c
+# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "..\..\..\..\..\include" /I "..\..\include" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "MCPALARMBROWSER_EXPORTS" /D "UNICODE" /D "__WXMSW__" /D "__WXDEBUG__" /D WXDEBUG=1 /YX /FD /GZ /c
 # ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
 # ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
 # ADD BASE RSC /l 0x409 /d "_DEBUG"
index dceb71e..1e064c4 100644 (file)
@@ -70,6 +70,8 @@ nxAlarmView::nxAlarmView(wxWindow *parent, const TCHAR *context)
        NXMCLoadListCtrlColumns(cfg, *m_wndListCtrl, _T("AlarmView"));
 
        cfg->SetPath(path);
+
+       NXMCEvtConnect(nxEVT_NXC_ALARM_CHANGE, wxCommandEventHandler(nxAlarmView::OnAlarmChange), this);
 }
 
 
@@ -79,9 +81,10 @@ nxAlarmView::nxAlarmView(wxWindow *parent, const TCHAR *context)
 
 nxAlarmView::~nxAlarmView()
 {
+       NXMCEvtDisconnect(nxEVT_NXC_ALARM_CHANGE, wxCommandEventHandler(nxAlarmView::OnAlarmChange), this);
+
        wxConfigBase *cfg = wxConfig::Get();
        wxString path = cfg->GetPath();
-
        cfg->SetPath(m_context);
        cfg->Write(_T("AlarmView/SortMode"), m_sortMode);
        cfg->Write(_T("AlarmView/SortDir"), m_sortDir);
@@ -278,3 +281,14 @@ void nxAlarmView::OnListColumnClick(wxListEvent &event)
        }
        SortAlarmList();
 }
+
+
+//
+// Handler for alarm change event
+//
+
+void nxAlarmView::OnAlarmChange(wxCommandEvent &event)
+{
+       wxLogDebug(_T("AlarmView: onAlarmChange %d"), event.GetInt());
+       event.Skip();
+}
index 9b67e2c..6e5f1e1 100644 (file)
@@ -45,7 +45,7 @@ RSC=rc.exe
 # PROP Ignore_Export_Lib 0
 # PROP Target_Dir ""
 # ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "MCPOBJECTBROWSER_EXPORTS" /YX /FD /c
-# ADD CPP /nologo /MT /W3 /GX /O2 /I "..\..\..\..\..\include" /I "..\..\include" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "MCPOBJECTBROWSER_EXPORTS" /D "__WXMSW__" /YX /FD /c
+# ADD CPP /nologo /MD /W3 /GX /O2 /I "..\..\..\..\..\include" /I "..\..\include" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "MCPOBJECTBROWSER_EXPORTS" /D "__WXMSW__" /YX /FD /c
 # ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
 # ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
 # ADD BASE RSC /l 0x409 /d "NDEBUG"
@@ -71,7 +71,7 @@ LINK32=link.exe
 # PROP Ignore_Export_Lib 0
 # PROP Target_Dir ""
 # ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "MCPOBJECTBROWSER_EXPORTS" /YX /FD /GZ /c
-# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "..\..\..\..\..\include" /I "..\..\include" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "MCPOBJECTBROWSER_EXPORTS" /D "__WXMSW__" /D "__WXDEBUG__" /D WXDEBUG=1 /YX /FD /GZ /c
+# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "..\..\..\..\..\include" /I "..\..\include" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "MCPOBJECTBROWSER_EXPORTS" /D "__WXMSW__" /D "__WXDEBUG__" /D WXDEBUG=1 /YX /FD /GZ /c
 # ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
 # ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
 # ADD BASE RSC /l 0x409 /d "_DEBUG"
@@ -97,7 +97,7 @@ LINK32=link.exe
 # PROP Ignore_Export_Lib 0
 # PROP Target_Dir ""
 # ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "MCPOBJECTBROWSER_EXPORTS" /YX /FD /c
-# ADD CPP /nologo /MT /W3 /GX /O2 /I "..\..\..\..\..\include" /I "..\..\include" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "MCPOBJECTBROWSER_EXPORTS" /D "UNICODE" /D "__WXMSW__" /YX /FD /c
+# ADD CPP /nologo /MD /W3 /GX /O2 /I "..\..\..\..\..\include" /I "..\..\include" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "MCPOBJECTBROWSER_EXPORTS" /D "UNICODE" /D "__WXMSW__" /YX /FD /c
 # ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
 # ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
 # ADD BASE RSC /l 0x409 /d "NDEBUG"
@@ -111,7 +111,7 @@ LINK32=link.exe
 # Begin Special Build Tool
 SOURCE="$(InputPath)"
 PostBuild_Desc=Copy files
-PostBuild_Cmds=copy      Release_UNICODE\ObjectBrowser.so      C:\NetXMS\lib\nxmc\ 
+PostBuild_Cmds=copy       Release_UNICODE\ObjectBrowser.so       C:\NetXMS\lib\nxmc\ 
 # End Special Build Tool
 
 !ELSEIF  "$(CFG)" == "mcpObjectBrowser - Win32 Debug UNICODE"
@@ -128,7 +128,7 @@ PostBuild_Cmds=copy      Release_UNICODE\ObjectBrowser.so      C:\NetXMS\lib\nxm
 # PROP Ignore_Export_Lib 0
 # PROP Target_Dir ""
 # ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "MCPOBJECTBROWSER_EXPORTS" /YX /FD /GZ /c
-# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "..\..\..\..\..\include" /I "..\..\include" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "MCPOBJECTBROWSER_EXPORTS" /D "UNICODE" /D "__WXMSW__" /D "__WXDEBUG__" /D WXDEBUG=1 /YX /FD /GZ /c
+# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "..\..\..\..\..\include" /I "..\..\include" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "MCPOBJECTBROWSER_EXPORTS" /D "UNICODE" /D "__WXMSW__" /D "__WXDEBUG__" /D WXDEBUG=1 /YX /FD /GZ /c
 # ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
 # ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
 # ADD BASE RSC /l 0x409 /d "_DEBUG"