[NEW] Add the GUI part of delimiter selection (Ctrl + Mouse Double Click).
git-svn-id: svn://svn.tuxfamily.org/svnroot/notepadplus/repository/trunk@1081 f5eea248-9336-0410-98b8-ebc06183d4e3
This commit is contained in:
parent
9382bd3292
commit
c47a5e7c1d
@ -203,7 +203,6 @@
|
||||
<Item id="44032" name="Toggle Full Screen Mode"/>
|
||||
<Item id="44033" name="Restore Default Zoom"/>
|
||||
<Item id="44034" name="Always on Top"/>
|
||||
<Item id="44049" name="Summary..."/>
|
||||
<Item id="44035" name="Synchronise Vertical Scrolling"/>
|
||||
<Item id="44036" name="Synchronise Horizontal Scrolling"/>
|
||||
<Item id="44041" name="Show Wrap Symbol"/>
|
||||
|
@ -203,7 +203,6 @@
|
||||
<Item id="44032" name="Toggle Full Screen Mode"/>
|
||||
<Item id="44033" name="Restore Default Zoom"/>
|
||||
<Item id="44034" name="Always on Top"/>
|
||||
<Item id="44049" name="Summary..."/>
|
||||
<Item id="44035" name="Synchronise Vertical Scrolling"/>
|
||||
<Item id="44036" name="Synchronise Horizontal Scrolling"/>
|
||||
<Item id="44041" name="Show Wrap Symbol"/>
|
||||
|
@ -5314,7 +5314,7 @@ Quote quotes[nbQuote] = {
|
||||
{"Anonymous #99", "Mondays are not so bad.\nIt's your job that sucks."},
|
||||
{"Gandhi", "Earth provides enough to satisfy every man's need, but not every man's greed."},
|
||||
{"R. D. Laing", "Life is a sexually transmitted disease and the mortality rate is one hundred percent."},
|
||||
{"Apple fan boy", "I'll buy a second iPhone 5 and buy a lot of iOS applications so that Apple will be able to buy Samsung (this shitty company) to shut it down and all the Apple haters will be forced to have an iPhone. Muhahaha..."},
|
||||
{"Apple fan boy", "I'll buy a second iPhone 5 and buy a lot of iOS applications so that Apple will be able to buy Samsung (this shitty company)\nto shut it down and all the Apple haters will be forced to have an iPhone. Muhahaha..."},
|
||||
{"Motherf*cker", "Thousands of my potential children died on your mother's face last night."},
|
||||
{"Hustle Man", "Politicians are like sperm.\nOne in a million turn out to be an actual human being."},
|
||||
{"Confucius", "It's good to meet girl in park.\nBut better to park meat in girl."},
|
||||
|
@ -561,11 +561,11 @@ BOOL CALLBACK FindReplaceDlg::run_dlgProc(UINT message, WPARAM wParam, LPARAM lP
|
||||
_replaceClosePos.left = p.x;
|
||||
_replaceClosePos.top = p.y;
|
||||
|
||||
p = getLeftTopPoint(::GetDlgItem(_hSelf, IDREPLACEALL));
|
||||
p = getTopPoint(::GetDlgItem(_hSelf, IDREPLACEALL));
|
||||
_findInFilesClosePos.left = p.x;
|
||||
_findInFilesClosePos.top = p.y;
|
||||
|
||||
p = getLeftTopPoint(::GetDlgItem(_hSelf, IDCANCEL));
|
||||
p = getTopPoint(::GetDlgItem(_hSelf, IDCANCEL));
|
||||
_findClosePos.left = p.x;
|
||||
_findClosePos.top = p.y + 10;
|
||||
|
||||
|
@ -327,3 +327,19 @@ BEGIN
|
||||
CONTROL "Always in multi-instance mode",IDC_MULTIINST_RADIO,"Button",BS_AUTORADIOBUTTON,123,87,218,10
|
||||
CONTROL "Default (mono-instance)",IDC_MONOINST_RADIO,"Button",BS_AUTORADIOBUTTON,123,106,196,10
|
||||
END
|
||||
|
||||
IDD_PREFERENCE_DELIMITERSETTINGS_BOX DIALOGEX 0, 0, 455, 185
|
||||
STYLE DS_SETFONT | DS_FIXEDSYS | DS_CONTROL | WS_CHILD
|
||||
FONT 8, "MS Shell Dlg", 0, 0, 0x1
|
||||
BEGIN
|
||||
GROUPBOX "Delimiter selection settings (Ctrl + Mouse double click)",IDC_DELIMITERSETTINGS_GB_STATIC,89,44,268,89,BS_CENTER
|
||||
RTEXT "Open",IDD_STATIC_OPENDELIMITER,117,67,34,8
|
||||
EDITTEXT IDC_EDIT_OPENDELIMITER,156,65,10,14
|
||||
LTEXT "bla bla bla bla bla bla",IDD_STATIC_BLABLA,172,67,56,8
|
||||
LTEXT "bla bla bla bla bla bla bla bla bla bla bla bla",IDD_STATIC_BLABLA2NDLINE,132,87,126,8
|
||||
EDITTEXT IDC_EDIT_CLOSEDELIMITER,237,65,10,14
|
||||
LTEXT "Close",IDD_STATIC_CLOSEDELIMITER,252,67,47,8
|
||||
CONTROL "Allow on several lines",IDD_SEVERALLINEMODEON_CHECK,
|
||||
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,118,109,160,10
|
||||
END
|
||||
|
||||
|
@ -136,6 +136,9 @@ BOOL CALLBACK PreferenceDlg::run_dlgProc(UINT Message, WPARAM wParam, LPARAM lPa
|
||||
_multiInstDlg.init(_hInst, _hSelf);
|
||||
_multiInstDlg.create(IDD_PREFERENCE_MULTIINSTANCE_BOX, false, false);
|
||||
|
||||
_delimiterSettingsDlg.init(_hInst, _hSelf);
|
||||
_delimiterSettingsDlg.create(IDD_PREFERENCE_DELIMITERSETTINGS_BOX, false, false);
|
||||
|
||||
_wVector.push_back(DlgInfo(&_barsDlg, TEXT("General"), TEXT("Global")));
|
||||
_wVector.push_back(DlgInfo(&_marginsDlg, TEXT("Editing"), TEXT("Scintillas")));
|
||||
_wVector.push_back(DlgInfo(&_defaultNewDocDlg, TEXT("New Document"), TEXT("NewDoc")));
|
||||
@ -148,6 +151,7 @@ BOOL CALLBACK PreferenceDlg::run_dlgProc(UINT Message, WPARAM wParam, LPARAM lPa
|
||||
_wVector.push_back(DlgInfo(&_backupDlg, TEXT("Backup"), TEXT("Backup")));
|
||||
_wVector.push_back(DlgInfo(&_autoCompletionDlg, TEXT("Auto-Completion"), TEXT("AutoCompletion")));
|
||||
_wVector.push_back(DlgInfo(&_multiInstDlg, TEXT("Multi-Instance"), TEXT("MultiInstance")));
|
||||
_wVector.push_back(DlgInfo(&_delimiterSettingsDlg, TEXT("Delimiter"), TEXT("Delimiter")));
|
||||
_wVector.push_back(DlgInfo(&_settingsDlg, TEXT("MISC."), TEXT("MISC")));
|
||||
|
||||
|
||||
@ -171,6 +175,7 @@ BOOL CALLBACK PreferenceDlg::run_dlgProc(UINT Message, WPARAM wParam, LPARAM lPa
|
||||
_backupDlg.reSizeTo(rc);
|
||||
_autoCompletionDlg.reSizeTo(rc);
|
||||
_multiInstDlg.reSizeTo(rc);
|
||||
_delimiterSettingsDlg.reSizeTo(rc);
|
||||
|
||||
NppParameters *pNppParam = NppParameters::getInstance();
|
||||
ETDTProc enableDlgTheme = (ETDTProc)pNppParam->getEnableThemeDlgTexture();
|
||||
@ -287,6 +292,7 @@ void PreferenceDlg::destroy()
|
||||
_backupDlg.destroy();
|
||||
_autoCompletionDlg.destroy();
|
||||
_multiInstDlg.destroy();
|
||||
_delimiterSettingsDlg.destroy();
|
||||
}
|
||||
|
||||
BOOL CALLBACK BarsDlg::run_dlgProc(UINT Message, WPARAM wParam, LPARAM)
|
||||
@ -2402,6 +2408,7 @@ BOOL CALLBACK MultiInstDlg::run_dlgProc(UINT Message, WPARAM wParam, LPARAM)
|
||||
::SendDlgItemMessage(_hSelf, IDC_MONOINST_RADIO, BM_SETCHECK, multiInstSetting == monoInst?BST_CHECKED:BST_UNCHECKED, 0);
|
||||
}
|
||||
break;
|
||||
|
||||
case WM_COMMAND :
|
||||
{
|
||||
switch (wParam)
|
||||
@ -2432,3 +2439,102 @@ BOOL CALLBACK MultiInstDlg::run_dlgProc(UINT Message, WPARAM wParam, LPARAM)
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
BOOL CALLBACK DelimiterSettingsDlg::run_dlgProc(UINT Message, WPARAM wParam, LPARAM)
|
||||
{
|
||||
NppGUI & nppGUI = (NppGUI &)((NppParameters::getInstance())->getNppGUI());
|
||||
switch (Message)
|
||||
{
|
||||
case WM_INITDIALOG :
|
||||
{
|
||||
TCHAR opener[2];
|
||||
opener[0] = nppGUI._leftmostDelimiter;
|
||||
opener[1] = '\0';
|
||||
TCHAR closer[2];
|
||||
closer[0] = nppGUI._rightmostDelimiter;
|
||||
closer[1] = '\0';
|
||||
bool onSeveralLines = nppGUI._delimiterSelectionOnEntireDocument;
|
||||
|
||||
::SendDlgItemMessage(_hSelf, IDC_EDIT_OPENDELIMITER, EM_LIMITTEXT, 1, 0);
|
||||
::SendDlgItemMessage(_hSelf, IDC_EDIT_CLOSEDELIMITER, EM_LIMITTEXT, 1, 0);
|
||||
::SendDlgItemMessage(_hSelf, IDC_EDIT_OPENDELIMITER, WM_SETTEXT, 0, (LPARAM)opener);
|
||||
::SendDlgItemMessage(_hSelf, IDC_EDIT_CLOSEDELIMITER, WM_SETTEXT, 0, (LPARAM)closer);
|
||||
::SendDlgItemMessage(_hSelf, IDD_SEVERALLINEMODEON_CHECK, BM_SETCHECK, onSeveralLines?BST_CHECKED:BST_UNCHECKED, 0);
|
||||
|
||||
POINT point = getTopPoint(::GetDlgItem(_hSelf, IDD_STATIC_BLABLA), false);
|
||||
_singleLineModePoint.x = point.x + 4;
|
||||
_singleLineModePoint.y = point.y - 4;
|
||||
|
||||
point = getTopPoint(::GetDlgItem(_hSelf, IDD_STATIC_BLABLA2NDLINE), false);
|
||||
_multiLineModePoint.x = point.x + 4;
|
||||
_multiLineModePoint.y = point.y - 4;
|
||||
|
||||
::GetClientRect(::GetDlgItem(_hSelf, IDC_EDIT_CLOSEDELIMITER), &_closerRect);
|
||||
_closerRect.right = _closerRect.right - _closerRect.left + 4;
|
||||
_closerRect.bottom = _closerRect.bottom - _closerRect.top + 4;
|
||||
|
||||
::GetClientRect(::GetDlgItem(_hSelf, IDD_STATIC_CLOSEDELIMITER), &_closerLabelRect);
|
||||
_closerLabelRect.right = _closerLabelRect.right - _closerLabelRect.left + 4;
|
||||
_closerLabelRect.bottom = _closerLabelRect.bottom - _closerLabelRect.top + 4;
|
||||
|
||||
|
||||
::ShowWindow(::GetDlgItem(_hSelf, IDD_STATIC_BLABLA2NDLINE),onSeveralLines?SW_SHOW:SW_HIDE);
|
||||
|
||||
POINT *p = onSeveralLines?&_multiLineModePoint:&_singleLineModePoint;
|
||||
::MoveWindow(::GetDlgItem(_hSelf, IDC_EDIT_CLOSEDELIMITER), p->x, p->y, _closerRect.right, _closerRect.bottom, TRUE);
|
||||
::MoveWindow(::GetDlgItem(_hSelf, IDD_STATIC_CLOSEDELIMITER), p->x + _closerRect.right + 4, p->y + 4, _closerLabelRect.right, _closerLabelRect.bottom, TRUE);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
case WM_COMMAND :
|
||||
{
|
||||
if (HIWORD(wParam) == EN_CHANGE)
|
||||
{
|
||||
switch (LOWORD(wParam))
|
||||
{
|
||||
case IDC_EDIT_OPENDELIMITER:
|
||||
{
|
||||
TCHAR opener[2];
|
||||
::SendDlgItemMessage(_hSelf, IDC_EDIT_OPENDELIMITER, WM_GETTEXT, MAX_PATH, (LPARAM)opener);
|
||||
nppGUI._leftmostDelimiter = static_cast<char>(opener[0]);
|
||||
return TRUE;
|
||||
}
|
||||
case IDC_EDIT_CLOSEDELIMITER:
|
||||
{
|
||||
TCHAR closer[2];
|
||||
::SendDlgItemMessage(_hSelf, IDC_EDIT_CLOSEDELIMITER, WM_GETTEXT, MAX_PATH, (LPARAM)closer);
|
||||
nppGUI._rightmostDelimiter = static_cast<char>(closer[0]);
|
||||
return TRUE;
|
||||
}
|
||||
default:
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
switch (wParam)
|
||||
{
|
||||
|
||||
case IDD_SEVERALLINEMODEON_CHECK :
|
||||
{
|
||||
bool isChecked = (BST_CHECKED == ::SendDlgItemMessage(_hSelf, IDD_SEVERALLINEMODEON_CHECK, BM_GETCHECK, 0, 0));
|
||||
nppGUI._delimiterSelectionOnEntireDocument = isChecked;
|
||||
|
||||
::ShowWindow(::GetDlgItem(_hSelf, IDD_STATIC_BLABLA2NDLINE),isChecked?SW_SHOW:SW_HIDE);
|
||||
|
||||
POINT *p = isChecked?&_multiLineModePoint:&_singleLineModePoint;
|
||||
::MoveWindow(::GetDlgItem(_hSelf, IDC_EDIT_CLOSEDELIMITER), p->x, p->y, _closerRect.right, _closerRect.bottom, TRUE);
|
||||
::MoveWindow(::GetDlgItem(_hSelf, IDD_STATIC_CLOSEDELIMITER), p->x + _closerRect.right + 4, p->y + 4, _closerLabelRect.right, _closerLabelRect.bottom, TRUE);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
default :
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
@ -202,6 +202,17 @@ private :
|
||||
BOOL CALLBACK run_dlgProc(UINT Message, WPARAM wParam, LPARAM lParam);
|
||||
};
|
||||
|
||||
class DelimiterSettingsDlg : public StaticDialog
|
||||
{
|
||||
public :
|
||||
DelimiterSettingsDlg() {};
|
||||
|
||||
private :
|
||||
BOOL CALLBACK run_dlgProc(UINT Message, WPARAM wParam, LPARAM lParam);
|
||||
POINT _singleLineModePoint, _multiLineModePoint;
|
||||
RECT _closerRect, _closerLabelRect;
|
||||
};
|
||||
|
||||
class PreferenceDlg : public StaticDialog
|
||||
{
|
||||
friend class NativeLangSpeaker;
|
||||
@ -249,6 +260,7 @@ private :
|
||||
BackupDlg _backupDlg;
|
||||
AutoCompletionDlg _autoCompletionDlg;
|
||||
MultiInstDlg _multiInstDlg;
|
||||
DelimiterSettingsDlg _delimiterSettingsDlg;
|
||||
};
|
||||
|
||||
|
||||
|
@ -110,6 +110,16 @@
|
||||
#define IDC_BORDERWIDTHVAL_STATIC (IDD_PREFERENCE_MARGEIN_BOX + 32)
|
||||
#define IDC_BORDERWIDTH_SLIDER (IDD_PREFERENCE_MARGEIN_BOX + 33)
|
||||
|
||||
#define IDD_PREFERENCE_DELIMITERSETTINGS_BOX 6250 //(IDD_PREFERENCE_BOX + 250)
|
||||
#define IDC_DELIMITERSETTINGS_GB_STATIC (IDD_PREFERENCE_DELIMITERSETTINGS_BOX + 1)
|
||||
#define IDD_STATIC_OPENDELIMITER (IDD_PREFERENCE_DELIMITERSETTINGS_BOX + 2)
|
||||
#define IDC_EDIT_OPENDELIMITER (IDD_PREFERENCE_DELIMITERSETTINGS_BOX + 3)
|
||||
#define IDC_EDIT_CLOSEDELIMITER (IDD_PREFERENCE_DELIMITERSETTINGS_BOX + 4)
|
||||
#define IDD_STATIC_CLOSEDELIMITER (IDD_PREFERENCE_DELIMITERSETTINGS_BOX + 5)
|
||||
#define IDD_SEVERALLINEMODEON_CHECK (IDD_PREFERENCE_DELIMITERSETTINGS_BOX + 6)
|
||||
#define IDD_STATIC_BLABLA (IDD_PREFERENCE_DELIMITERSETTINGS_BOX + 7)
|
||||
#define IDD_STATIC_BLABLA2NDLINE (IDD_PREFERENCE_DELIMITERSETTINGS_BOX + 8)
|
||||
|
||||
#define IDD_PREFERENCE_SETTING_BOX 6300 //(IDD_PREFERENCE_BOX + 300)
|
||||
#define IDC_TABSETTING_GB_STATIC (IDD_PREFERENCE_SETTING_BOX + 1)
|
||||
#define IDC_CHECK_REPLACEBYSPACE (IDD_PREFERENCE_SETTING_BOX + 2)
|
||||
|
@ -71,11 +71,14 @@ public :
|
||||
|
||||
void display(bool toShow = true) const;
|
||||
|
||||
POINT getLeftTopPoint(HWND hwnd/*, POINT & p*/) const {
|
||||
POINT getTopPoint(HWND hwnd, bool isLeft = true) const {
|
||||
RECT rc;
|
||||
::GetWindowRect(hwnd, &rc);
|
||||
POINT p;
|
||||
p.x = rc.left;
|
||||
if (isLeft)
|
||||
p.x = rc.left;
|
||||
else
|
||||
p.x = rc.right;
|
||||
p.y = rc.top;
|
||||
::ScreenToClient(_hSelf, &p);
|
||||
return p;
|
||||
|
File diff suppressed because one or more lines are too long
Loading…
Reference in New Issue
Block a user