forked from nulled666/nppqcp
-
Notifications
You must be signed in to change notification settings - Fork 0
/
DllMain.cpp
121 lines (99 loc) · 2.35 KB
/
DllMain.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
#include "stdio.h"
#include <shlwapi.h>
#include "NppQCP.h"
extern FuncItem funcItem[COMMNAD_COUNT];
extern NppData nppData;
extern bool doCloseTag;
BOOL APIENTRY DllMain( HANDLE hModule,
DWORD reasonForCall,
LPVOID lpReserved ) {
switch (reasonForCall) {
case DLL_PROCESS_ATTACH:
AttachDll(hModule);
break;
case DLL_PROCESS_DETACH:
PluginCleanUp();
break;
case DLL_THREAD_ATTACH:
break;
case DLL_THREAD_DETACH:
break;
}
return TRUE;
}
extern "C" __declspec(dllexport) void setInfo(NppData notpadPlusData) {
nppData = notpadPlusData;
PluginInit();
}
extern "C" __declspec(dllexport) const TCHAR * getName() {
return NPP_PLUGIN_NAME;
}
extern "C" __declspec(dllexport) FuncItem * getFuncsArray(int *nbF) {
*nbF = COMMNAD_COUNT;
return funcItem;
}
extern "C" __declspec(dllexport) void beNotified(SCNotification *notifyCode) {
switch (notifyCode->nmhdr.code) {
case NPPN_SHUTDOWN:
{
commandMenuCleanUp();
break;
}
case SCN_PAINTED:
{
HighlightColorCode();
}
case SCN_UPDATEUI:
{
if (notifyCode->updated & SC_UPDATE_SELECTION ) {
if (!HasSelection())
HideColorPicker();
}
break;
}
case SCN_DOUBLECLICK:
{
ShowColorPicker();
break;
}
case SCN_ZOOM:
{
HideColorPicker();
break;
}
case SCN_MODIFIED:
{
if (notifyCode->modificationType & SC_MOD_DELETETEXT
|| notifyCode->modificationType & SC_MOD_INSERTTEXT) {
HideColorPicker();
}
break;
}
case NPPN_LANGCHANGED:
case NPPN_BUFFERACTIVATED:
{
HideColorPicker();
break;
}
default:
{
// nothing
}
}
}
// Here you can process the Npp Messages
// I will make the messages accessible little by little, according to the need of plugin development.
// Please let me know if you need to access to some messages :
// http://sourceforge.net/forum/forum.php?forum_id=482781
//
extern "C" __declspec(dllexport) LRESULT messageProc(UINT message, WPARAM wParam, LPARAM lParam) {
if (message == WM_MOVE) {
HideColorPicker();
}
return TRUE;
}
#ifdef UNICODE
extern "C" __declspec(dllexport) BOOL isUnicode() {
return TRUE;
}
#endif //UNICODE