aboutsummaryrefslogtreecommitdiff
path: root/Src/Plugins/Library/ml_webdev/navigation.h
diff options
context:
space:
mode:
Diffstat (limited to 'Src/Plugins/Library/ml_webdev/navigation.h')
-rw-r--r--Src/Plugins/Library/ml_webdev/navigation.h83
1 files changed, 83 insertions, 0 deletions
diff --git a/Src/Plugins/Library/ml_webdev/navigation.h b/Src/Plugins/Library/ml_webdev/navigation.h
new file mode 100644
index 00000000..c2575a0a
--- /dev/null
+++ b/Src/Plugins/Library/ml_webdev/navigation.h
@@ -0,0 +1,83 @@
+#ifndef NULLSOFT_WEBDEV_PLUGIN_NAVIGATION_HEADER
+#define NULLSOFT_WEBDEV_PLUGIN_NAVIGATION_HEADER
+
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+#pragma once
+#endif
+
+#include <wtypes.h>
+#include <ifc_mlnavigationcallback.h>
+#include <vector>
+
+typedef LPVOID HNAVITEM;
+class ifc_omservice;
+
+class Navigation : public ifc_mlnavigationcallback
+{
+protected:
+ Navigation();
+ ~Navigation();
+
+public:
+ static HRESULT CreateInstance(Navigation **instance);
+
+public:
+ /* Dispatchable */
+ size_t AddRef();
+ size_t Release();
+ int QueryInterface(GUID interface_guid, void **object);
+
+ /* ifc_mlnavigationcallback */
+ void ImageChanged(LPCWSTR pszName, INT index);
+
+public:
+ HRESULT Finish();
+
+ BOOL ProcessMessage(INT msg, INT_PTR param1, INT_PTR param2, INT_PTR param3, INT_PTR *result);
+
+ HNAVITEM GetActive(ifc_omservice **serviceOut);
+ HWND GetActiveView(ifc_omservice **serviceOut);
+
+ HRESULT SelectItem(HNAVITEM hItem, LPCWSTR pszUrl);
+ HRESULT DeleteItem(HNAVITEM hItem);
+ HRESULT DeleteAll();
+
+ HRESULT CreatePopup(HNAVITEM hItem, HWND *hwnd);
+
+ HRESULT GetService(HNAVITEM hItem, ifc_omservice **service);
+ HRESULT UpdateService(ifc_omservice *service, UINT modifiedFlags);
+ HNAVITEM FindService(UINT serviceId, ifc_omservice **serviceOut);
+ HRESULT ShowService(UINT serviceId, LPCWSTR pszUrl);
+
+ HNAVITEM CreateItem(ifc_omservice *service);
+ HRESULT CreateUserService(HNAVITEM *itemOut);
+
+protected:
+ HRESULT Initialize();
+ HRESULT SaveOrder();
+ HRESULT Order(std::vector<ifc_omservice *>&list);
+
+ HNAVITEM GetMessageItem(INT msg, INT_PTR param1);
+ HNAVITEM CreateItemInt(HNAVITEM hParent, ifc_omservice *service);
+ HRESULT SelectItemInt(HNAVITEM hItem, UINT serviceId, LPCWSTR pszUrl);
+
+ HRESULT GenerateServiceName(LPWSTR pszBuffer, INT cchBufferMax);
+
+ HRESULT OnCreateView(HNAVITEM hItem, HWND hParent, HWND *hView);
+ HRESULT OnContextMenu(HNAVITEM hItem, HWND hHost, POINTS pts);
+ HRESULT OnEndTitleEdit(HNAVITEM hItem, LPCWSTR pszNewTitle);
+ HRESULT OnDeleteItem(HNAVITEM hItem);
+ HRESULT OnKeyDown(HNAVITEM hItem, NMTVKEYDOWN *pnmkd);
+ HRESULT OnControlDestroy();
+
+protected:
+ size_t ref;
+ HNAVITEM hRoot;
+ HWND hLibrary;
+ UINT cookie;
+
+protected:
+ RECVS_DISPATCH;
+};
+
+#endif //NULLSOFT_WEBDEV_PLUGIN_NAVIGATION_HEADER