Краткое описание - Dialog API

Programming Far Manager plugins

Краткое описание - Dialog API

DialogAPI выделен в отдельное API, для максимального контроля над созданным диалогом.

Менеджер диалогов поддерживает только так называемые Модальные Диалоги (Modal Dialog). Модальный диалог представляет собой окно, запрещающее пользователю взаимодействовать с любым объектом FAR Manager вне данного диалога. Модальный диалог отсекает поток сообщений, идущих от мыши или клавиатуры к другим объектам FAR Manager.

Подробности

Плагин полностью управляет поведением диалога:
  • диалог имеет функцию-обработчик, которая реагирует на массу событий, приходящих от Менеджера диалогов;
  • функция-обработчик общается с Менеджером Диалогов путём посылки сообщений, используя функцию SendDlgMessage;
  • функция-обработчик может передать управление Менеджеру Диалогов используя функцию DefDlgProc;
  • окончанием обработки диалога управляет плагин.
Если в обработчике диалога просто передать управление ядру посредством функции DefDlgProc, то получим... простой, неуправляемый диалог (такие же диалоги можно получить при вызове функции DialogInit с параметром DlgProc, равным NULL):
// минимальный обработчик диалога
intptr_t WINAPI MyDlgProc(HANDLE hDlg, intptr_t Msg, intptr_t Param1, void *Param2)
{
  return Info.DefDlgProc(hDlg,Msg,Param1,Param2);
}

Итак. Dialog API:

 

Смотрите также: