Перейти к содержимому
  • 0
JaggerDer

os.pullEvent/os.pullEventRaw

Вопрос

Я здесь и у меня несколько вопросов.

  1. Где можно посмотреть как работают стандартные события os.pullEvent и os.pullEventRaw, другими словами хочу посмотреть на их исходный код.
  2. Я хочу сделать свое событие mouse_double_click. Я его сделал. Работает. Да. С костылями. С костылями по типу parallel и отправки второго кастомного события mouse_click_checked(тот же самый mouse_click, только с окончанием _checked). В чем проблема? Проблема в том, что без костыля mouse_event_checked, события mouse_double_click и mouse_click начинают конкурировать, причем mouse_click выигрывет эту войну. Возможно ли как то переписать mouse_click так, чтобы при двойном щелчке отправлялось мое событие mouse_double_click, а mouse_click подавлялось? Если двойного щелчка нет, то mouse_click не подавляется, а mouse_double_click не отправляется в пул. Повторюсь. Алгоритм двойного щелчка у меня есть. Как переписать событие mouse_click?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Рекомендуемые сообщения

 

  1. Где можно посмотреть как работают стандартные события os.pullEvent и os.pullEventRaw, другими словами хочу посмотреть на их исходный код.
function os.pullEventRaw( _sFilter )
	return coroutine.yield( _sFilter )
end

function os.pullEvent( _sFilter )
	local eventData = { os.pullEventRaw( _sFilter ) }
	if eventData[1] == "terminate" then
		error( "Terminated", 0 )
	end
	return unpack( eventData )
end

Как сказал Нео, генерация самих событий скрыта где то в исходниках мода. А вот так они обрабатываются биосом CraftOS (см. код выше)

Подавить mouse_click можно так: в os.pullEvent вставляешь проверку

eventData[1] == "mouse_click"

и если да, то ждешь еще какое то время (0,2 сек, например)

Если в течении какого то времени приходит еще один "mouse_click", возвращаешь mouse_double_click.

Если нет, возвращаешь mouse_click.

Но, что плохого в том если придет и mouse_click и mouse_double_click?

Изменено пользователем Zer0Galaxy

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

CC, С закрытым исходным кодом.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Но, что плохого в том если придет и mouse_click и mouse_double_click?

У меня в программе по клику мыши по GUI выбирается цвет bg, а по даблклику цвет символа. Выходит так, что цвет символа и фона становятся одинаковыми.

 

Спасибо за ответы.

Изменено пользователем JaggerDer

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

У меня в программе по клику мыши по GUI выбирается цвет bg, а по даблклику цвет символа. Выходит так, что цвет символа и фона становятся одинаковыми.

А ПКМ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить на вопрос...

×   Вы вставили отформатированное содержимое.   Удалить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.


×
×
  • Создать...