Релиз AkelPad 4.5.4

Russian main discussion
  • Author
  • Message
Offline
Posts: 124
Joined: Tue Jun 03, 2008 10:32 pm

Post by Xephon »

Тестовая
Все пришло в норму.
...обновление SearchReplace.js и LinesFilter.js для поддержки масштаба отличного от 96 dpi
Аааа! Наконец-то, спасибо большое!

Offline
Posts: 1862
Joined: Mon Aug 06, 2007 1:07 pm
Contact:

Post by Infocatcher »

Instructor wrote:А также внимание бонус - обновление SearchReplace.js и LinesFilter.js для поддержки масштаба отличного от 96 dpi :)
Не проще было заменить все вызовы oSys.Call("user32::CreateWindowEx" + _TCHAR, ...) на вызовы вспомогательной функции со ScaleX() и ScaleY() внутри?

Code: Select all

var scale = new Scale(0, hMainWnd);

hWndDialog = createWindowEx(
	0,             //dwExStyle
	pClassName,    //lpClassName
	0,             //lpWindowName
	0x90CE0000,    //WS_VISIBLE|WS_POPUP|WS_CAPTION|WS_SYSMENU|WS_MINIMIZEBOX|WS_THICKFRAME
	0,             //x
	0,             //y
	392,           //nWidth
	230,           //nHeight
	hMainWnd,      //hWndParent
	0,             //ID
	hInstanceDLL,  //hInstance
	DialogCallback //Script function callback. To use it class must be registered by WindowRegisterClass.
);

function createWindowEx(dwExStyle, lpClassName, lpWindowName, styles, x, y, w, h, hWndParent, id, hInstance, callback) {
	return oSys.Call(
		"user32::CreateWindowEx" + _TCHAR,
		dwExStyle,
		lpClassName,
		lpWindowName,
		styles,
		scale.x(x),
		scale.y(y),
		scale.x(w),
		scale.y(h),
		hWndParent,
		id,
		hInstance,
		callback
	);
}
function Scale(hDC, hWnd) {
	var hNewDC = hDC || oSys.Call("user32::GetDC", hWnd);
	if(hNewDC) {
		this._x = oSys.Call("gdi32::GetDeviceCaps", hNewDC, 88 /*LOGPIXELSX*/);
		this._y = oSys.Call("gdi32::GetDeviceCaps", hNewDC, 90 /*LOGPIXELSY*/);

		//Align to 16 pixel
		this._x += this._x % 16;
		this._y += this._y % 16;

		if(!hDC) oSys.Call("user32::ReleaseDC", hWnd, hNewDC);

		this.x = function(x) {
			return oSys.Call("kernel32::MulDiv", x, this._x, 96);
		};
		this.y = function(y) {
			return oSys.Call("kernel32::MulDiv", y, this._y, 96);
		};
	}
	else {
		this.x = this.y = function(n) {
			return n;
		};
	}
}


[Upd]
И еще бы как-нибудь ширину границы окна учитывать. =/

[Upd – 2]
Или оно не нужно. Хм.

Offline
Site Admin
Posts: 6311
Joined: Thu Jul 06, 2006 7:20 am

Post by Instructor »

Lenchik
Тестовая.

Infocatcher
С какой стороны не смотри на горшок - все равно горшок :)

Offline
Posts: 366
Joined: Mon Jan 10, 2011 5:28 pm
Contact:

Post by Lenchik »

Instructor wrote: Тестовая.
Успешно убралось исчезание содержимого страницы при откате назад.
Однако выделение всего файла (и соответственно съезжание всего курсора и положения окна на конец файла) - осталось по-прежнему.

Добавлю ещё один баг к меню замены:
Выделяем кусок текста. Вызываем меню замены. В этом меню выбираем "В выделении". Записываем что и на что заменить и тыкаем "заменить". После этого сбрасывается выделение ранее выделенного куска текста и стоит выделение первого найденного текста (Кстати, после этого "find next" тоже уже не работает). Тыкаем "заменить" ещё раз и получаем треньканье о завершении поиска и собственно замену первого текущего слова.
Хотя по-идее мы должны были бы при помощи "найти далее" и "заменить" ходить и перебирать и при необходимости заменять слова внутри изначально выделенного (на момент вызова диалога поиска) куска текста. Что-то в этих связанных багах связано с запоминанием состояний и области выделения и предпочтения текущей области. Возможна еще ситуация, когда при старте поиска в выделении, возвращаться назад при помощи установки соответствующего переключателя. (То есть область выделения желательно помнить в течение всего времени существования этой копии диалога)
Надеюсь, я понятно изложил свои мысли и домыслы.

Offline
Posts: 1862
Joined: Mon Aug 06, 2007 1:07 pm
Contact:

Post by Infocatcher »

Instructor wrote:С какой стороны не смотри на горшок - все равно горшок :)
Может быть, но горшками поменьше проще орудовать. :)

Offline
Site Admin
Posts: 6311
Joined: Thu Jul 06, 2006 7:20 am

Post by Instructor »

Немного поломалось обновление вертикальной прокрутки обновил тестовую.
Lenchik wrote:Однако выделение всего файла (и соответственно съезжание всего курсора и положения окна на конец файла) - осталось по-прежнему.
Это ожидаемое поведение редактора, чтобы этого избежать включаем "Scroll::NoScroll".
Добавлю ещё один баг к меню замены:
Это ожидаемое поведение редактора - запоминание области поиска не реализовано.

Offline
Posts: 3217
Joined: Wed Nov 29, 2006 1:19 pm
Location: Киев, Русь
Contact:

Post by VladSh »

Instructor wrote:Это ожидаемое поведение редактора - запоминание области поиска не реализовано.
Да, и тема такая даже была.

Offline
Posts: 366
Joined: Mon Jan 10, 2011 5:28 pm
Contact:

Post by Lenchik »

Instructor wrote:
Lenchik wrote:Однако выделение всего файла (и соответственно съезжание всего курсора и положения окна на конец файла) - осталось по-прежнему.
Это ожидаемое поведение редактора, чтобы этого избежать включаем "Scroll::NoScroll".
Выделение всего содержимого тоже ожидаемое поведение?!
NoScroll помог, спасибо.

Мне кажется, что кнопку Cancel/Отмена в диалоге замены стоит переименовать в Close/Закрыть поскольку она не отменяет действий в этом диалоге, а закрывает его. Во всяком случае заметной мне как пользователю отмены чего-либо или незапоминания сделанных настроек не происходит. Что при закрытии крестиком в правом вверхнем углу, что при "отмене" запоминается положение radio элементов, но не запоминается выбор того, что искать и чем заменить (сам поиск/замена не производился - были выбраны другие значения из списка в целях теста поведения).

Offline
Posts: 1862
Joined: Mon Aug 06, 2007 1:07 pm
Contact:

Re: Релиз AkelPad 4.5.4

Post by Infocatcher »

Instructor wrote:Добавлено: при закрытии программы, в сообщение о сохранении документа добавлен вариант "Нет для всех".
Мне кажется, нехорошо при последовательном закрытии вкладок менять размер диалога – под курсором может оказаться уже другая кнопка.
Допустим, есть несколько несохраненных вкладок. Закрываем окно. Видим Да/Нет/Нет для всех/Отмена (оно еще и по Ctrl+C как стандартные диалоги не копируется, что не есть хорошо). Смотрим на текст, мышкой жмем на Нет. И так для нескольких файлов. А в последний раз нам под курсор подло подсовывают Да. :)

Offline
Site Admin
Posts: 6311
Joined: Thu Jul 06, 2006 7:20 am

Post by Instructor »

Infocatcher
Про Ctrl+C не знал :) В 4.5.6 не будет "подло подсовываться ".

Offline
Posts: 1862
Joined: Mon Aug 06, 2007 1:07 pm
Contact:

Post by Infocatcher »

Instructor
Неужели переписывали, если требовалось? :D
Впрочем, HyperSnap, например, может текст захватывать.
Post Reply