Page 1 of 2

Задержка для двойного клика мышью

Posted: Mon Aug 03, 2015 6:16 pm
by Leency
Нужно добавить в ядро две сисфункции. Кто может это сделать?

Code: Select all

=================================================
=== Функция 18, подфункция 19 - получить/установить настройки мыши. ==
=================================================
Подподфункция 6 - получить задержку для двойного нажатия мышью.
Подподфункция 7 - установить задержку для двойного нажатия мышью.

Re: Задержка для двойного клика мышью

Posted: Tue Aug 04, 2015 1:34 am
by Leency
> CleverMouse « Пн авг 03, 2015 10:03 pm » в ядре вообще нет понятия двойного щелчка
> CleverMouse « Пн авг 03, 2015 10:03 pm » я не знаю, чего Leency хочет
Суть проста - иметь в ядре переменную, обозначающую длительность дойного щелчка мышью.
Двойнок клик сам по себе можно не реализовывать, пока что. Нужно по крайней мере иметь его длительность для начала.

Re: Задержка для двойного клика мышью

Posted: Tue Aug 04, 2015 1:43 am
by paulcodeman
Для реализации double click, нужно реализовать down, up, и + за счет длительности времени можно и double click реализовать. Будет очень здорово, если кто нибудь сможет это в ядре реализовать. Но переменную я думаю проще сделать, а она бы сейчас уже бы пригодилась для Eolite, ну и для будущих программ на CMM.

Re: Задержка для двойного клика мышью

Posted: Tue Aug 04, 2015 1:54 am
by GerdtR
Хм. Тогда уж лучше вообще сделать функцию: установить значение глобально переменной с заданным id(или ещё как их обозначить) ну и прочитать его. Как в DOS. Или может проще сделать ini со стандартными настройками системы? Заодно параметры SETUP туда же. Пусть и он с ini работает, а не со своим setup.dat

Re: Задержка для двойного клика мышью

Posted: Tue Aug 04, 2015 11:19 am
by Leency
Можно и через глобальный settings.ini, но по-моему не разумно для получения интервала двойного клика подключать io.obj и libini.obj.

Потому я прошу добавить сисфункцию.

Re: Задержка для двойного клика мышью

Posted: Fri Aug 07, 2015 9:27 pm
by Pathoswithin
Один байт под задержку в сотых секунды. Двойной щелчёк устанавливает бит 7 (8-я кнопка мыши). Двойной щелчёк по заголовку тоже зависит от задержки.

Re: Задержка для двойного клика мышью

Posted: Fri Aug 07, 2015 9:35 pm
by paulcodeman
Pathoswithin wrote:Один байт под задержку в сотых секунды. Двойной щелчёк устанавливает бит 7 (8-я кнопка мыши). Двойной щелчёк по заголовку тоже зависит от задержки.
а есть события down (при нажатии кнопки мыши), up (при отжатии), move (при изменении координат или при перемещении мыши) ?

Re: Задержка для двойного клика мышью

Posted: Sat Aug 08, 2015 6:15 am
by Pathoswithin
Или даже так: 37.2 возвращает еах, где биты 0-4 — состояние кнопок 1-5, биты 8-10 — нажатие кнопок 1-3, биты 16-18 — отпускание кнопок 1-3, бит 24 — двойной щелчок левой кнопкой, биты 7 и 15 — вертикальный и горизонтальный скролл. Если 0 после события, то движение мыши.
Можно добавить ещё, например двойной щелчок колёсиком или... скролл туда сюда?

1234500V 123xx00H 123xx000 1xxxx0rr

Re: Задержка для двойного клика мышью

Posted: Sat Aug 08, 2015 9:39 am
by Leency
Спасибо! Я потестю и если ок залью.

> двойной щелчок колёсиком
по-моему излишний

Re: Задержка для двойного клика мышью

Posted: Sat Aug 08, 2015 2:25 pm
by paulcodeman
Pathoswithin wrote:Или даже так: 37.2 возвращает еах, где биты 0-4 — состояние кнопок 1-5, биты 8-10 — нажатие кнопок 1-3, биты 16-18 — отпускание кнопок 1-3, бит 24 — двойной щелчок левой кнопкой, биты 7 и 15 — вертикальный и горизонтальный скролл. Если 0 после события, то движение мыши.
Можно добавить ещё, например двойной щелчок колёсиком или... скролл туда сюда?

1234500V 123xx00H 123xx000 1xxxx0rr
Спасибо, тоже потестю.
А еще можешь так же и для клавиатуры сделать (нажатие кнопки, отпускание)?

Re: Задержка для двойного клика мышью

Posted: Sat Aug 08, 2015 3:21 pm
by paulcodeman
Pathoswithin wrote:Или даже так: 37.2 возвращает еах, где биты 0-4 — состояние кнопок 1-5, биты 8-10 — нажатие кнопок 1-3, биты 16-18 — отпускание кнопок 1-3, бит 24 — двойной щелчок левой кнопкой, биты 7 и 15 — вертикальный и горизонтальный скролл. Если 0 после события, то движение мыши.
Можно добавить ещё, например двойной щелчок колёсиком или... скролл туда сюда?

1234500V 123xx00H 123xx000 1xxxx0rr
при отпускании кнопки мыши, срабатывает событие движение мыши, так не должно..
на счет двойного щелчка, лишним не будет для всех 3 кнопок сделать
при движении мыши, во время нажатия мыши, сбрасывается бит, что тоже не удобно при перемещении элементов, я думаю лучше событие move поместить как отдельный бит, при 1 событие move -- 0 не move. А при отпускании кнопки мыши сбрасывать биты нажатой. При нажатии, сбрасывать отжатые. При движении мыши сбрасывать отжатые.

Re: Задержка для двойного клика мышью

Posted: Sat Aug 08, 2015 10:22 pm
by Pathoswithin
pavelyakov wrote:при отпускании кнопки мыши, срабатывает событие движение мыши
Не понял, подробней.
Сам драйвер мыши устанавливает только первые 5 бит, они означают состояние кнопок. Остальные биты означают событие, которое произошло только что, и сбрасываются при следующем событии от драйвера. Событие "движение мыши" будет расцениваться текущими программами как нажатие какой-то кнопки, поэтому его нет и не будет.
А главное, что я всего лишь вывел то, что было в ядре. Кажется, у проекта есть проблема... всемпохуй.

Re: Задержка для двойного клика мышью

Posted: Sat Aug 08, 2015 10:53 pm
by punk_joker
pavelyakov wrote: А еще можешь так же и для клавиатуры сделать (нажатие кнопки, отпускание)?
Это уже и так реализованно. Читай скан код нажатой клавиши, он разный для нажатия и для отпускания. Все комбинации клавишь в Eolite тоже необходимо перевести на скан-кода (как раз этим занимаюсь).

Re: Задержка для двойного клика мышью

Posted: Sat Aug 08, 2015 11:07 pm
by punk_joker
Большинство, из того что нужно, можно и нужно реализовать в userspase, тобишь в библиотеках (написать тот же тулкит для построения GUI). Это одна сторона проблемы (которую могут решить и многие прикладники). С другой стороны, необходимо улучшить эту самую систему библиотек и процедуру их загрузки (этим как раз и занимается CleverMouse, работая над реализацией DLL, это так же даст то, что библиотеки будут единожды загружены в память, и доступными всем приложениям, если я не прав, то поправте). Так что утверждение что всем всеравно, не совсем правильное. Яркий пример правильного подхода, библиотека http.obj от hidnplayr, которая предоставляет высокоуровневый нтерфейс для работы с протоколов http. Ядро должно предоставлять лишь необходимый минимум, для всего остального есть библиотеки. Но да, каждый предпочитает в основном изобретать велосипеды, или переосить их с одной программы в другую, вместо того, чтобы вынести это в общую библиотеку.

Re: Задержка для двойного клика мышью

Posted: Sun Aug 09, 2015 3:48 am
by GerdtR
: в Википедии или ещё где задокументировать библиотеки и их API (в Вики есть, но там далеко не всё и устарело) . Авось пользоваться чаще будут. Лень же копаться в форуме и исходниках. Да и не всегда найдёшь эти описания-то.