Skip to content

Commit c5dba64

Browse files
committed
Better About dialog
Taken from MIME Tools
1 parent 78d6ad1 commit c5dba64

File tree

3 files changed

+32
-19
lines changed

3 files changed

+32
-19
lines changed

Dialogs/AboutDialog.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ INT_PTR CALLBACK abtDlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPara
3232
case WM_INITDIALOG:
3333
ConvertStaticToHyperlink(hwndDlg, IDC_GITHUB);
3434
ConvertStaticToHyperlink(hwndDlg, IDC_README);
35-
SetWindowText(GetDlgItem(hwndDlg, IDC_VERSION), VERSION_TEXT TEXT(" ") VERSION_STAGE);
35+
SetWindowText(GetDlgItem(hwndDlg, IDC_VERSION), TEXT("LuaScript v") VERSION_TEXT TEXT(" ") VERSION_STAGE);
3636
return true;
3737
case WM_COMMAND:
3838
switch(LOWORD(wParam))
@@ -41,10 +41,10 @@ INT_PTR CALLBACK abtDlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPara
4141
DestroyWindow(hwndDlg);
4242
return true;
4343
case IDC_GITHUB:
44-
ShellExecute(hwndDlg, TEXT("open"), TEXT("https://github.com/dail8859/LuaScript"), NULL, NULL, SW_SHOWNORMAL);
44+
ShellExecute(hwndDlg, TEXT("open"), TEXT("https://github.com/dail8859/LuaScript/"), NULL, NULL, SW_SHOWNORMAL);
4545
return true;
4646
case IDC_README:
47-
ShellExecute(hwndDlg, TEXT("open"), TEXT("https://github.com/dail8859/LuaScript/blob/v") VERSION_TEXT TEXT("/README.md"), NULL, NULL, SW_SHOWNORMAL);
47+
ShellExecute(hwndDlg, TEXT("open"), TEXT("https://dail8859.github.io/LuaScript/"), NULL, NULL, SW_SHOWNORMAL);
4848
return true;
4949
}
5050
case WM_DESTROY:

Dialogs/resource.rc

Lines changed: 11 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -13,22 +13,18 @@ IDI_LUA ICON "lua.ico"
1313
// Dialog resources
1414
//
1515
LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
16-
IDD_ABOUTDLG DIALOG 0, 0, 137, 133
17-
STYLE DS_3DLOOK | DS_CENTER | DS_MODALFRAME | DS_SHELLFONT | WS_CAPTION | WS_VISIBLE | WS_POPUP | WS_SYSMENU
18-
CAPTION "About"
19-
FONT 8, "Ms Shell Dlg"
16+
IDD_ABOUTDLG DIALOGEX 0, 0, 223, 130
17+
STYLE DS_SETFONT | DS_FIXEDSYS | WS_POPUP | WS_BORDER | WS_SYSMENU
18+
FONT 8, "MS Shell Dlg", 0, 0, 0x1
2019
{
21-
DEFPUSHBUTTON "OK", IDOK, 41, 110, 50, 14, 0, WS_EX_LEFT
22-
LTEXT "For detailed usage, view the", IDC_STATIC, 5, 81, 90, 8, SS_LEFT, WS_EX_LEFT
23-
LTEXT "Version:", IDC_STATIC, 5, 33, 26, 8, SS_LEFT, WS_EX_LEFT
24-
LTEXT "Author: Justin Dailey <dail8859@yahoo.com>", IDC_STATIC, 5, 46, 132, 16, SS_LEFT, WS_EX_LEFT
25-
LTEXT "This code is licensed under GPLv2", IDC_STATIC, 5, 91, 111, 8, SS_LEFT, WS_EX_LEFT
26-
LTEXT "Notepad++ plugin for Lua scripting capabilities.", IDC_STATIC, 5, 15, 125, 8, SS_LEFT, WS_EX_LEFT
27-
LTEXT "LuaScript", IDC_STATIC, 5, 5, 37, 8, SS_LEFT, WS_EX_LEFT
28-
LTEXT "v", IDC_VERSION, 33, 33, 61, 8, SS_LEFT, WS_EX_LEFT
29-
LTEXT "The LuaScript code is hosted on", IDC_STATIC, 5, 70, 94, 8, SS_LEFT, WS_EX_LEFT
30-
LTEXT "github", IDC_GITHUB, 100, 70, 20, 8, SS_LEFT | SS_NOTIFY, WS_EX_LEFT
31-
LTEXT "readme", IDC_README, 96, 81, 24, 8, SS_LEFT | SS_NOTIFY, WS_EX_LEFT
20+
PUSHBUTTON "Close", IDOK, 86, 109, 50, 14
21+
GROUPBOX "", IDC_VERSION, 10, 9, 201, 93, BS_CENTER
22+
LTEXT "Author : Justin Dailey <dail8859@yahoo.com>", IDC_STATIC, 30, 26, 180, 8
23+
LTEXT "The LuaScript code is hosted on", IDC_STATIC, 30, 43, 180, 8
24+
LTEXT "GitHub", IDC_GITHUB, 133, 43, 31, 8, SS_LEFT | SS_NOTIFY, WS_EX_LEFT
25+
LTEXT "For detailed usage, see the ", IDC_STATIC, 30, 62, 180, 8
26+
LTEXT "documentation", IDC_README, 120, 62, 60, 8, SS_LEFT | SS_NOTIFY, WS_EX_LEFT
27+
LTEXT "This code is licensed under GPLv2", IDC_STATIC, 30, 80, 180, 8
3228
}
3329

3430
LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL

LuaScript.cpp

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -307,5 +307,22 @@ static void showDocumentation() {
307307
}
308308

309309
static void showAbout() {
310-
CreateDialog((HINSTANCE) _hModule, MAKEINTRESOURCE(IDD_ABOUTDLG), nppData._nppHandle, abtDlgProc);
310+
HWND hSelf = CreateDialogParam((HINSTANCE)_hModule, MAKEINTRESOURCE(IDD_ABOUTDLG), nppData._nppHandle, abtDlgProc, NULL);
311+
312+
// Go to center
313+
RECT rc;
314+
::GetClientRect(nppData._nppHandle, &rc);
315+
POINT center;
316+
int w = rc.right - rc.left;
317+
int h = rc.bottom - rc.top;
318+
center.x = rc.left + w / 2;
319+
center.y = rc.top + h / 2;
320+
::ClientToScreen(nppData._nppHandle, &center);
321+
322+
RECT dlgRect;
323+
::GetClientRect(hSelf, &dlgRect);
324+
int x = center.x - (dlgRect.right - dlgRect.left) / 2;
325+
int y = center.y - (dlgRect.bottom - dlgRect.top) / 2;
326+
327+
::SetWindowPos(hSelf, HWND_TOP, x, y, (dlgRect.right - dlgRect.left), (dlgRect.bottom - dlgRect.top), SWP_SHOWWINDOW);
311328
}

0 commit comments

Comments
 (0)