-
Notifications
You must be signed in to change notification settings - Fork 5
Expand file tree
/
Copy pathAddCtxDlg.cpp
More file actions
104 lines (91 loc) · 2.95 KB
/
Copy pathAddCtxDlg.cpp
File metadata and controls
104 lines (91 loc) · 2.95 KB
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
/* -------------------------------------
This file is part of AnalysePlugin for NotePad++
Copyright (c) 2022 Matthias H. mattesh(at)gmx.net
partly copied from the NotePad++ project from
Don HO don.h(at)free.fr
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 3 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, see <https://www.gnu.org/licenses/>.
------------------------------------- */
//#include "stdafx.h"
#include "AddCtxDlg.h"
#include "PluginInterface.h"
#include "resource.h"
#include <windows.h>
#define MDBG_COMP "AddCtxDlg:"
#include "myDebug.h"
#define COMMAND_SNIPPET TEXT("<Item FolderName=\"AnalysePlugin\" PluginEntryName=\"AnalysePlugin\" PluginCommandItemName=\"Add selection as patterns\" />\r\n\
<Item FolderName=\"AnalysePlugin\" PluginEntryName=\"AnalysePlugin\" PluginCommandItemName=\"Search now\" />\r\n")
void AddCtxDlg::init(HINSTANCE hInst, NppData nppData)
{
_nppData = nppData;
Window::init(hInst, nppData._nppHandle);
}
void AddCtxDlg::doDialog()
{
if (!isCreated()) {
create(IDD_ADDCTX_DIALOG);
}
goToCenter();
}
INT_PTR CALLBACK AddCtxDlg::run_dlgProc(UINT Message, WPARAM wParam, LPARAM /*lParam*/)
{
switch (Message)
{
case WM_INITDIALOG :
{
::SendDlgItemMessage(_hSelf, IDC_EDT_COPYTEXT, WM_SETTEXT, 0, (LPARAM)COMMAND_SNIPPET);
resizeWindow();
return TRUE;
}
case WM_CLOSE :
{
break;
}
case WM_COMMAND :
{
switch (wParam)
{
case IDOK :
case IDCANCEL :
display(FALSE);
return TRUE;
default :
break;
}
break;
}
case WM_SIZE :
{
resizeWindow();
break;
} // case WM_SIZE
}
return FALSE;
}
void AddCtxDlg::resizeWindow() {
RECT rcDlg, rcText;
getClientRect(rcDlg);
HWND hText = ::GetDlgItem(_hSelf,IDC_EDT_COPYTEXT);
::GetClientRect(hText, &rcText);
POINT pText = getTopPoint(hText);
int dWidth = rcDlg.right-rcDlg.left-20; // for border
int dTextHeight = rcDlg.bottom-rcDlg.top-pText.y-10; // for border
if(dWidth>=0) {
if(dTextHeight>=0){
::MoveWindow(hText, pText.x, pText.y, dWidth, dTextHeight, TRUE);
}
redraw();
}
}
INT_PTR CALLBACK AddCtxDlg::run_dlgProc(HWND /*hwnd*/, UINT Message, WPARAM wParam, LPARAM lParam)
{
return run_dlgProc(Message, wParam, lParam);
}