summaryrefslogtreecommitdiff
path: root/plugins/NotesAndReminders/src
diff options
context:
space:
mode:
authorGeorge Hazan <ghazan@miranda.im>2018-05-17 20:51:37 +0300
committerGeorge Hazan <ghazan@miranda.im>2018-05-17 20:51:37 +0300
commit7639f72273189df60566755c0d5f1e4ab7201b67 (patch)
tree94a51765449331befe968a90b48cbf08fa83e6ed /plugins/NotesAndReminders/src
parent523f3588b6f21adcc4bcf3ec3ffad05e2298863a (diff)
NewAwaySys, NewEventNotify, NewXstatusNotify, NoHistory, NotesReminders, NotifyAnything, Nudge => CMPlugin
Diffstat (limited to 'plugins/NotesAndReminders/src')
-rw-r--r--plugins/NotesAndReminders/src/globals.h17
-rw-r--r--plugins/NotesAndReminders/src/main.cpp77
-rw-r--r--plugins/NotesAndReminders/src/notes.cpp6
-rw-r--r--plugins/NotesAndReminders/src/reminders.cpp10
4 files changed, 57 insertions, 53 deletions
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 <time.h>
#include <richedit.h>
-#define __NO_CMPLUGIN_NEEDED
#include <win2k.h>
#include <newpluginapi.h>
#include <m_database.h>
@@ -29,6 +28,13 @@
#define MODULENAME "StickyNotes"
#define SECTIONNAME LPGEN("Notes & Reminders")
+struct CMPlugin : public PLUGIN<CMPlugin>
+{
+ CMPlugin() :
+ PLUGIN<CMPlugin>(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 {