mirror of
https://github.com/rizonesoft/Notepad3.git
synced 2026-06-11 21:03:05 +08:00
+ fix: enable menu for aligning lines only if multiple lines are selected
This commit is contained in:
parent
fe788d4f1b
commit
19144c7974
@ -2621,16 +2621,14 @@ LRESULT MsgInitMenu(HWND hwnd, WPARAM wParam, LPARAM lParam)
|
||||
{
|
||||
UNUSED(lParam);
|
||||
|
||||
//DocPos p;
|
||||
bool b,e,s;
|
||||
|
||||
HMENU hmenu = (HMENU)wParam;
|
||||
HMENU const hmenu = (HMENU)wParam;
|
||||
|
||||
bool const ro = SciCall_GetReadOnly();
|
||||
DocPos const iCurPos = SciCall_GetCurrentPos();
|
||||
DocLn const iCurLine = SciCall_LineFromPosition(iCurPos);
|
||||
|
||||
int i = (int)StringCchLenW(Globals.CurrentFile,COUNTOF(Globals.CurrentFile));
|
||||
|
||||
EnableCmd(hmenu,IDM_FILE_REVERT,i);
|
||||
EnableCmd(hmenu, CMD_RELOADASCIIASUTF8, i);
|
||||
EnableCmd(hmenu, CMD_RELOADFORCEDETECTION, i);
|
||||
@ -2695,10 +2693,11 @@ LRESULT MsgInitMenu(HWND hwnd, WPARAM wParam, LPARAM lParam)
|
||||
EnableCmd(hmenu,IDM_EDIT_UNDO,SciCall_CanUndo() && !ro);
|
||||
EnableCmd(hmenu,IDM_EDIT_REDO,SciCall_CanRedo() && !ro);
|
||||
|
||||
s = SciCall_IsSelectionEmpty();
|
||||
e = (SciCall_GetTextLength() == 0);
|
||||
b = SciCall_CanPaste();
|
||||
|
||||
bool const s = SciCall_IsSelectionEmpty();
|
||||
bool const e = (SciCall_GetTextLength() == 0);
|
||||
bool const b = SciCall_CanPaste();
|
||||
bool const mls = Sci_IsMultiLineSelection();
|
||||
|
||||
EnableCmd(hmenu,IDM_EDIT_CUT, !e && !ro); // allow Ctrl-X w/o selection
|
||||
EnableCmd(hmenu,IDM_EDIT_COPY, !e); // allow Ctrl-C w/o selection
|
||||
|
||||
@ -2739,10 +2738,8 @@ LRESULT MsgInitMenu(HWND hwnd, WPARAM wParam, LPARAM lParam)
|
||||
EnableCmd(hmenu, IDM_EDIT_COMPRESS_BLANKS, !ro);
|
||||
|
||||
EnableCmd(hmenu, IDM_EDIT_MODIFYLINES, !ro);
|
||||
EnableCmd(hmenu, IDM_EDIT_ALIGN, !ro);
|
||||
EnableCmd(hmenu, IDM_EDIT_SORTLINES,
|
||||
(SciCall_LineFromPosition(SciCall_GetSelectionEnd()) -
|
||||
SciCall_LineFromPosition(SciCall_GetSelectionStart())) >= 1);
|
||||
EnableCmd(hmenu, IDM_EDIT_ALIGN, mls && !ro);
|
||||
EnableCmd(hmenu, IDM_EDIT_SORTLINES, mls && !ro);
|
||||
|
||||
//EnableCmd(hmenu,IDM_EDIT_COLUMNWRAP,i /*&& IsWindowsNT()*/);
|
||||
EnableCmd(hmenu,IDM_EDIT_SPLITLINES,!s && !ro);
|
||||
@ -2797,8 +2794,6 @@ LRESULT MsgInitMenu(HWND hwnd, WPARAM wParam, LPARAM lParam)
|
||||
|
||||
EnableCmd(hmenu, IDM_EDIT_INSERT_GUID, !ro);
|
||||
|
||||
e = (SciCall_GetTextLength() == 0);
|
||||
|
||||
EnableCmd(hmenu,IDM_EDIT_FIND, !e);
|
||||
EnableCmd(hmenu,IDM_EDIT_SAVEFIND, !e);
|
||||
EnableCmd(hmenu,IDM_EDIT_FINDNEXT, !e);
|
||||
|
||||
@ -466,7 +466,9 @@ DeclareSciCallR0(IsIMEModeCJK, ISIMEMODECJK, bool)
|
||||
DeclareSciCallR0(IsSelectionEmpty, GETSELECTIONEMPTY, bool)
|
||||
DeclareSciCallR0(IsSelectionRectangle, SELECTIONISRECTANGLE, bool)
|
||||
|
||||
#define Sci_IsSingleLineSelection() (SciCall_LineFromPosition(SciCall_GetCurrentPos()) == SciCall_LineFromPosition(SciCall_GetAnchor()))
|
||||
#define Sci_IsSingleLineSelection() (SciCall_LineFromPosition(SciCall_GetSelectionEnd()) == SciCall_LineFromPosition(SciCall_GetSelectionStart()))
|
||||
#define Sci_IsMultiLineSelection() ((SciCall_LineFromPosition(SciCall_GetSelectionEnd()) - SciCall_LineFromPosition(SciCall_GetSelectionStart())) >= 1)
|
||||
|
||||
#define Sci_IsForwardSelection() (SciCall_GetAnchor() <= SciCall_GetCurrentPos())
|
||||
|
||||
#define Sci_GetEOLLen() ((SciCall_GetEOLMode() == SC_EOL_CRLF) ? 2 : 1)
|
||||
|
||||
Loading…
Reference in New Issue
Block a user