[BUG_FIXED] (Author: Andreas Jonsson) Now statusbar reports the number of selected characters instead of number of bytes.
git-svn-id: svn://svn.tuxfamily.org/svnroot/notepadplus/repository/trunk@1098 f5eea248-9336-0410-98b8-ebc06183d4e3
This commit is contained in:
parent
082253c37f
commit
785459bf8e
@ -2736,8 +2736,11 @@ void Notepad_plus::updateStatusBar()
|
||||
int selByte = 0;
|
||||
int selLine = 0;
|
||||
|
||||
if (_pEditView->getSelectedCount(selByte, selLine))
|
||||
wsprintf(strSel, TEXT("Sel : %d | %d"), selByte, selLine);
|
||||
_pEditView->getSelectedCount(selByte, selLine);
|
||||
|
||||
long selected_length = _pEditView->getSelectedLength();
|
||||
if (selected_length != -1)
|
||||
wsprintf(strSel, TEXT("Sel : %d | %d"), selected_length, selLine);
|
||||
else
|
||||
wsprintf(strSel, TEXT("Sel : %s"), TEXT("N/A"));
|
||||
|
||||
|
@ -470,6 +470,26 @@ public:
|
||||
return true;
|
||||
};
|
||||
|
||||
long getSelectedLength() const {
|
||||
// return -1 if it's multi-selection or rectangle selection
|
||||
if ((execute(SCI_GETSELECTIONS) > 1) || execute(SCI_SELECTIONISRECTANGLE))
|
||||
return -1;
|
||||
long size_selected = execute(SCI_GETSELTEXT);
|
||||
char *selected = new char[size_selected + 1];
|
||||
execute(SCI_GETSELTEXT, (WPARAM)0, (LPARAM)selected);
|
||||
char *c = selected;
|
||||
long length = 0;
|
||||
while(*c != '\0')
|
||||
{
|
||||
if( (*c & 0xC0) != 0x80)
|
||||
++length;
|
||||
++c;
|
||||
}
|
||||
delete [] selected;
|
||||
return length;
|
||||
};
|
||||
|
||||
|
||||
long getLineLength(int line) const {
|
||||
return long(execute(SCI_GETLINEENDPOSITION, line) - execute(SCI_POSITIONFROMLINE, line));
|
||||
};
|
||||
|
Loading…
Reference in New Issue
Block a user