forked from wangjun7121/npp-task-list
-
Notifications
You must be signed in to change notification settings - Fork 17
/
Copy pathURLCtrl.h
49 lines (40 loc) · 1.63 KB
/
URLCtrl.h
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
// This file is part of Notepad++ project
// Copyright (C)2021 Don HO <[email protected]>
// 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/>.
#pragma once
#include "Window.h"
#include "Common.h"
class URLCtrl : public Window {
public:
void create(HWND itemHandle, const wchar_t * link, COLORREF linkColor = RGB(0,0,255));
void create(HWND itemHandle, int cmd, HWND msgDest = NULL);
void destroy() override;
private:
HCURSOR& loadHandCursor();
void action();
protected :
std::wstring _URL;
HFONT _hfUnderlined = nullptr;
HCURSOR _hCursor = nullptr;
HWND _msgDest = nullptr;
unsigned long _cmdID = 0;
WNDPROC _oldproc = nullptr;
COLORREF _linkColor = RGB(0xFF, 0xFF, 0xFF);
COLORREF _visitedColor = RGB(0xFF, 0xFF, 0xFF);
bool _clicking = false;
static LRESULT CALLBACK URLCtrlProc(HWND hwnd, UINT Message, WPARAM wParam, LPARAM lParam){
return ((URLCtrl *)(::GetWindowLongPtr(hwnd, GWLP_USERDATA)))->runProc(hwnd, Message, wParam, lParam);
};
LRESULT runProc(HWND hwnd, UINT Message, WPARAM wParam, LPARAM lParam);
};