From 7639f72273189df60566755c0d5f1e4ab7201b67 Mon Sep 17 00:00:00 2001 From: George Hazan Date: Thu, 17 May 2018 20:51:37 +0300 Subject: NewAwaySys, NewEventNotify, NewXstatusNotify, NoHistory, NotesReminders, NotifyAnything, Nudge => CMPlugin --- plugins/NotesAndReminders/src/globals.h | 17 ++++--- plugins/NotesAndReminders/src/main.cpp | 77 +++++++++++++++-------------- plugins/NotesAndReminders/src/notes.cpp | 6 +-- plugins/NotesAndReminders/src/reminders.cpp | 10 ++-- 4 files changed, 57 insertions(+), 53 deletions(-) (limited to 'plugins/NotesAndReminders/src') diff --git a/plugins/NotesAndReminders/src/globals.h b/plugins/NotesAndReminders/src/globals.h index c67ece2043..90c0003964 100644 --- a/plugins/NotesAndReminders/src/globals.h +++ b/plugins/NotesAndReminders/src/globals.h @@ -7,7 +7,6 @@ #include #include -#define __NO_CMPLUGIN_NEEDED #include #include #include @@ -29,6 +28,13 @@ #define MODULENAME "StickyNotes" #define SECTIONNAME LPGEN("Notes & Reminders") +struct CMPlugin : public PLUGIN +{ + CMPlugin() : + PLUGIN(MODULENAME) + {} +}; + // normal timer interval for reminder update processing #define REMINDER_UPDATE_INTERVAL 10000 // short timer interval for reminder updates used as long as there are pending alarams in the event queue @@ -40,7 +46,6 @@ #define NR_FONTID_BODY 1 #define NR_FONTID_MAX NR_FONTID_BODY - typedef struct { HFONT hFont; char size; @@ -77,8 +82,8 @@ typedef struct { extern void CreateMsgWindow(void); extern void DestroyMsgWindow(void); -extern STICKYNOTE* NewNote(int Ax,int Ay,int Aw,int Ah,char *Data, - ULARGE_INTEGER *ID,BOOL Visible,BOOL bOnTop,int scrollV); +extern STICKYNOTE* NewNote(int Ax,int Ay,int Aw,int Ah,char *Data, ULARGE_INTEGER *ID,BOOL Visible,BOOL bOnTop,int scrollV); + extern void LoadNotes(BOOL bIsStartup); extern void SaveNotes(void); extern void DeleteNotes(void); @@ -94,8 +99,7 @@ extern BOOL CheckRemindersAndStart(void); extern void InitSettings(void); extern void TermSettings(void); -extern INT_PTR CALLBACK DlgProcOptions(HWND hdlg,UINT message, - WPARAM wParam,LPARAM lParam); +extern INT_PTR CALLBACK DlgProcOptions(HWND hdlg,UINT message, WPARAM wParam,LPARAM lParam); extern void LoadNRFont(int i, LOGFONT *lf, COLORREF *colour); extern BOOL WS_Init(); @@ -104,7 +108,6 @@ extern void WS_CleanUp(); extern LPCSTR GetDateFormatStr(); extern LPCSTR GetTimeFormatStr(); -extern HINSTANCE hinstance; extern HINSTANCE hmiranda; extern BOOL g_CloseAfterAddReminder, g_UseDefaultPlaySound; diff --git a/plugins/NotesAndReminders/src/main.cpp b/plugins/NotesAndReminders/src/main.cpp index f3d2c3af51..9f3cd465fe 100644 --- a/plugins/NotesAndReminders/src/main.cpp +++ b/plugins/NotesAndReminders/src/main.cpp @@ -1,7 +1,7 @@ #include "globals.h" CLIST_INTERFACE *pcli; -HINSTANCE hinstance = nullptr; +CMPlugin g_plugin; HINSTANCE hmiranda = nullptr; int hLangpack; @@ -15,6 +15,8 @@ HMODULE hRichedDll = nullptr; extern TREEELEMENT *g_Stickies; extern TREEELEMENT *RemindersList; +///////////////////////////////////////////////////////////////////////////////////////// + static PLUGININFOEX pluginInfo = { sizeof(PLUGININFOEX), @@ -28,6 +30,12 @@ static PLUGININFOEX pluginInfo = {0x842a6668, 0xf9da, 0x4968, {0xbf, 0xd7, 0xd2, 0xbd, 0x9d, 0xf8, 0x48, 0xee}} // {842A6668-F9DA-4968-BFD7-D2BD9DF848EE} }; +extern "C" __declspec(dllexport) PLUGININFOEX* MirandaPluginInfoEx(DWORD) +{ + return &pluginInfo; +} + +///////////////////////////////////////////////////////////////////////////////////////// void RegisterFontServiceFonts(); void RegisterKeyBindings(); @@ -110,14 +118,14 @@ IconItem iconList[] = void InitIcons(void) { - Icon_Register(hinstance, LPGEN("Sticky Notes"), iconList, _countof(iconList), MODULENAME); + Icon_Register(g_plugin.getInst(), LPGEN("Sticky Notes"), iconList, _countof(iconList), MODULENAME); } static int OnOptInitialise(WPARAM w, LPARAM) { OPTIONSDIALOGPAGE odp = { 0 }; odp.position = 900002000; - odp.hInstance = hinstance; + odp.hInstance = g_plugin.getInst(); odp.pszTemplate = MAKEINTRESOURCEA(IDD_STNOTEOPTIONS); odp.szTitle.a = SECTIONNAME; odp.szGroup.a = LPGEN("Plugins"); @@ -259,41 +267,7 @@ int OnModulesLoaded(WPARAM, LPARAM) return 0; } -extern "C" __declspec(dllexport) PLUGININFOEX* MirandaPluginInfoEx(DWORD) -{ - return &pluginInfo; -} - -extern "C" __declspec(dllexport) int Unload(void) -{ - CloseNotesList(); - CloseReminderList(); - SaveNotes(); - SaveReminders(); - DestroyMsgWindow(); - WS_CleanUp(); - TermSettings(); - - UnhookEvent(hkFontChange); - UnhookEvent(hkColorChange); - - UnhookEvent(hkOptInit); - - IcoLib_ReleaseIcon(g_hReminderIcon); - DeleteObject(hBodyFont); - DeleteObject(hCaptionFont); - - if (hRichedDll) - FreeLibrary(hRichedDll); - - return 0; -} - -BOOL WINAPI DllMain(HINSTANCE hinst, DWORD, LPVOID) -{ - hinstance = hinst; - return TRUE; -} +///////////////////////////////////////////////////////////////////////////////////////// extern "C" __declspec(dllexport) int Load(void) { @@ -321,3 +295,30 @@ extern "C" __declspec(dllexport) int Load(void) return 0; } + +///////////////////////////////////////////////////////////////////////////////////////// + +extern "C" __declspec(dllexport) int Unload(void) +{ + CloseNotesList(); + CloseReminderList(); + SaveNotes(); + SaveReminders(); + DestroyMsgWindow(); + WS_CleanUp(); + TermSettings(); + + UnhookEvent(hkFontChange); + UnhookEvent(hkColorChange); + + UnhookEvent(hkOptInit); + + IcoLib_ReleaseIcon(g_hReminderIcon); + DeleteObject(hBodyFont); + DeleteObject(hCaptionFont); + + if (hRichedDll) + FreeLibrary(hRichedDll); + + return 0; +} diff --git a/plugins/NotesAndReminders/src/notes.cpp b/plugins/NotesAndReminders/src/notes.cpp index 2cfde03695..1f843c520c 100644 --- a/plugins/NotesAndReminders/src/notes.cpp +++ b/plugins/NotesAndReminders/src/notes.cpp @@ -898,7 +898,7 @@ static BOOL DoContextMenu(HWND AhWnd, WPARAM, LPARAM lParam) STICKYNOTE *SN = (STICKYNOTE*)GetProp(AhWnd, "ctrldata"); HMENU hMenuLoad, FhMenu, hSub; - hMenuLoad = LoadMenu(hinstance, "MNU_NOTEPOPUP"); + hMenuLoad = LoadMenu(g_plugin.getInst(), "MNU_NOTEPOPUP"); FhMenu = GetSubMenu(hMenuLoad, 0); if (SN->bOnTop) @@ -1688,7 +1688,7 @@ static BOOL DoListContextMenu(HWND AhWnd, WPARAM wParam, LPARAM lParam, STICKYNO if (hwndListView != GetDlgItem(AhWnd, IDC_LISTREMINDERS)) return FALSE; - HMENU hMenuLoad = LoadMenu(hinstance, "MNU_NOTELISTPOPUP"); + HMENU hMenuLoad = LoadMenu(g_plugin.getInst(), "MNU_NOTELISTPOPUP"); HMENU FhMenu = GetSubMenu(hMenuLoad, 0); MENUITEMINFO mii = { 0 }; @@ -1947,7 +1947,7 @@ static INT_PTR CALLBACK DlgProcViewNotes(HWND Dialog, UINT Message, WPARAM wPara void ListNotes(void) { if (!ListNotesVisible) { - CreateDialog(hinstance, MAKEINTRESOURCE(IDD_LISTREMINDERS), nullptr, DlgProcViewNotes); + CreateDialog(g_plugin.getInst(), MAKEINTRESOURCE(IDD_LISTREMINDERS), nullptr, DlgProcViewNotes); ListNotesVisible = TRUE; } else BringWindowToTop(LV); diff --git a/plugins/NotesAndReminders/src/reminders.cpp b/plugins/NotesAndReminders/src/reminders.cpp index 1b6b8854cc..e15415e8c4 100644 --- a/plugins/NotesAndReminders/src/reminders.cpp +++ b/plugins/NotesAndReminders/src/reminders.cpp @@ -1938,7 +1938,7 @@ INT_PTR OpenTriggeredReminder(WPARAM, LPARAM l) pReminder->RemVisible = TRUE; - HWND H = CreateDialog(hinstance, MAKEINTRESOURCE(IDD_NOTIFYREMINDER), nullptr, DlgProcNotifyReminder); + HWND H = CreateDialog(g_plugin.getInst(), MAKEINTRESOURCE(IDD_NOTIFYREMINDER), nullptr, DlgProcNotifyReminder); pReminder->handle = H; mir_snprintf(S2, "%s! - %s", Translate("Reminder"), S1); @@ -1957,7 +1957,7 @@ void NewReminder(void) { if (!NewReminderVisible) { NewReminderVisible = TRUE; - CreateDialog(hinstance, MAKEINTRESOURCE(IDD_ADDREMINDER), nullptr, DlgProcNewReminder); + CreateDialog(g_plugin.getInst(), MAKEINTRESOURCE(IDD_ADDREMINDER), nullptr, DlgProcNewReminder); } } @@ -1971,7 +1971,7 @@ void EditReminder(REMINDERDATA *p) p->RemVisible = TRUE; NewReminderVisible = 2; pEditReminder = p; - CreateDialog(hinstance, MAKEINTRESOURCE(IDD_ADDREMINDER), nullptr, DlgProcNewReminder); + CreateDialog(g_plugin.getInst(), MAKEINTRESOURCE(IDD_ADDREMINDER), nullptr, DlgProcNewReminder); } else { BringWindowToTop(p->handle); @@ -2087,7 +2087,7 @@ static BOOL DoListContextMenu(HWND AhWnd, WPARAM wParam, LPARAM lParam, REMINDER { HWND hwndListView = (HWND)wParam; if (hwndListView != GetDlgItem(AhWnd, IDC_LISTREMINDERS)) return FALSE; - HMENU hMenuLoad = LoadMenu(hinstance, "MNU_REMINDERPOPUP"); + HMENU hMenuLoad = LoadMenu(g_plugin.getInst(), "MNU_REMINDERPOPUP"); HMENU FhMenu = GetSubMenu(hMenuLoad, 0); MENUITEMINFO mii = { 0 }; @@ -2284,7 +2284,7 @@ static INT_PTR CALLBACK DlgProcViewReminders(HWND Dialog, UINT Message, WPARAM w void ListReminders(void) { if (!ListReminderVisible) { - CreateDialog(hinstance, MAKEINTRESOURCE(IDD_LISTREMINDERS), nullptr, DlgProcViewReminders); + CreateDialog(g_plugin.getInst(), MAKEINTRESOURCE(IDD_LISTREMINDERS), nullptr, DlgProcViewReminders); ListReminderVisible = TRUE; } else { -- cgit v1.2.3