View Issue Details

IDProjectCategoryView StatusLast Update
0000369WishesPlugins API.Panelpublic2007-12-10 14:28
ReporterNightRomanAssigned Tovskirdin 
PrioritynormalSeverityfeatureReproducibilityalways
Status closedResolutionfixed 
Product Version 
Target VersionFixed in Version1.71 
Summary0000369: Добавить события FE_GOTFOCUS, FE_KILLFOCUS в ProcessEvent
DescriptionПредложение: добавить события FE_GOTFOCUS, FE_KILLFOCUS в ProcessEvent. События происходят в момент получения\потери фокуса панелью плагина (можно сказать активации\деактивации панели). Названия констант предложены по аналогии с DN_GOTFOCUS, DN_KILLFOCUS.

Возможно, есть неоднозначность трактовки момента активации\деактивации, но думаю, если хотя бы следующее выполняется, то уже будет большая практическая польза:

*) на момент вызова Control() для активной или пассивной панели плагина активная панель уже получила событие FE_GOTFOCUS до этого, пассивная панель уже получила событие FE_KILLFOCUS до этого, если, конечно была активной хоть раз.
*) на момент действий пользователя в панели то же самое - панели уже получили события, соответствующие их текущему состоянию активности.
Additional InformationP.S. подобные события не помешали бы и в редакторе (хоть это и отдельная тема), на форуме кто-то уже жаловался на отсутствие таковых и недостаток возможностей для обходных маневров, чтобы полноценно эмулировать.
TagsNo tags attached.
Build2304

Activities

vskirdin

2007-12-04 08:01

administrator   bugnote:0000949

http://farmanager.com/farbugs/mantis369.1.rar
На тестирование и выявление некузявостей (я про те 2 правила "на момент действий...").

В plugin.hpp добавить:

enum FAR_EVENTS {
...
  FE_COMMAND =5,
+>> FE_GOTFOCUS =6,
+>> FE_KILLFOCUS =7,
};

NightRoman

2007-12-04 08:18

reporter   bugnote:0000950

принято, будет исследовано\протестировано

NightRoman

2007-12-06 09:10

reporter   bugnote:0000964

Last edited: 2007-12-06 12:47

Проверено на 1.71 alpha 4 (build 2303):

1. добавлены EE_GOTFOCUS/EE_KILLFOCUS (Param= *EditorID)
2. добавлены FE_GOTFOCUS/FE_KILLFOCUS (Param= NULL)
3. в диалогах после DN_INITDIALOG должен сразу же приходить DN_GOTFOCUS для фокусного элемента.
- все работает вполне ожиданно, дефекты пока не обнаруживаются.

Дополнительно к "ТЗ" было обсуждено, реализовано и проверено:
*) FE_GOTFOCUS должен происходить на момент открытия панели, если она активна, и не должен в противном случае.
*) если есть пара плагинных панелей, но сначала должно произойти FE_KILLFOCUS активной панели, теряющей фокус, затем FE_GOTFOCUS ставшей активной.

Это не обсуждалось, но это так есть по результатам тестирования, и это так и должно быть, по-моему: на момент ??_KILLFOCUS объект еще активен, на момент ??_GOTFOCUS он уже активен.

vskirdin

2007-12-06 12:14

administrator   bugnote:0000966

см. 2304

NightRoman

2007-12-06 12:34

reporter   bugnote:0000967

> см. 2304
туплю, возможно, но не понял - где-то его можно уже взять?

vskirdin

2007-12-10 09:46

administrator   bugnote:0000984

Ну, по сути то последнее для тестирования, оно и есть 2304

Issue History

Date Modified Username Field Change
2007-11-22 14:45 NightRoman New Issue
2007-12-04 08:01 vskirdin Note Added: 0000949
2007-12-04 08:18 NightRoman Note Added: 0000950
2007-12-05 12:49 vskirdin Status new => assigned
2007-12-05 12:49 vskirdin Assigned To => vskirdin
2007-12-06 09:10 NightRoman Note Added: 0000964
2007-12-06 12:14 vskirdin Note Added: 0000966
2007-12-06 12:14 vskirdin Status assigned => feedback
2007-12-06 12:34 NightRoman Note Added: 0000967
2007-12-06 12:47 NightRoman Note Edited: 0000964
2007-12-06 13:53 NightRoman Status feedback => resolved
2007-12-06 13:53 NightRoman Resolution open => fixed
2007-12-10 09:46 vskirdin Note Added: 0000984
2007-12-10 14:28 vskirdin Build => 2304
2007-12-10 14:28 vskirdin Status resolved => closed
2007-12-10 14:28 vskirdin Fixed in Version => 1.71