Dialog

Функция Dialog выводит на экран диалог.
int WINAPI Dialog(
  int PluginNumber,
  int X1,
  int Y1,
  int X2,
  int Y2,
  const char *HelpTopic,
  struct FarDialogItem *Item,
  int ItemsNumber
);

Параметры

PluginNumber
Номер плагина. Его вы получаете в функции SetStartupInfo.
X1, Y1, X2, Y2
Геометрия диалога. Задайте эти координаты непосредственно или воспользуйтесь формулой "Width x Height" - для этого установите X1 и Y1 в -1, при этом X2 - ширина и Y2 - высота диалога. В последнем случае при выводе на экран диалог будет автоматически центрироваться. Параметры X2 и Y2 не могут быть меньше нуля.
HelpTopic
Тема подсказки связанная с данным диалогом. Если подсказка не используется, то установите этот параметр в NULL.
Item
Указатель на массив структур FarDialogItem. Каждая структура описывает пункт диалога.
ItemsNumber
Количество элементов массива FarDialogItem.

Возвращаемое значение

Эта функция возвращает -1, если пользователь прервал диалог, или номер выбранного диалогового пункта (номер элемента массива Item, в примере этот факт выделен)

Замечания

FAR перед созданием диалога преобразует элементы Item во внутреннее представление. После завершения работы диалога массив элементов Item корректируется с учетом изменений, произошедших в процессе работы пользователя с этим диалогом.

Пример

Пример вывода диалога конфигурирования плагина TempPanel
int Config()
{
  struct InitDialogItem InitItems []={
    DI_DOUBLEBOX,3,1,72,8,0,0,0,0,(char *)MConfigTitle,
    DI_CHECKBOX,5,2,0,2,0,0,0,0,(char *)MConfigAddToDisksMenu,
    DI_FIXEDIT,7,3,7,3,1,0,0,0,"",
    DI_TEXT,9,3,0,3,0,0,0,0,(char *)MConfigDisksMenuDigit,
    DI_TEXT,5,4,0,4,0,0,DIF_BOXCOLOR|DIF_SEPARATOR,0,"",
    DI_CHECKBOX,5,5,0,5,0,0,0,0,(char *)MConfigCommonPanel,
    DI_TEXT,5,6,0,6,0,0,DIF_BOXCOLOR|DIF_SEPARATOR,0,"",
    DI_BUTTON,0,7,0,7,0,0,DIF_CENTERGROUP,1,(char *)MOk,
    DI_BUTTON,0,7,0,7,0,0,DIF_CENTERGROUP,0,(char *)MCancel
  };
  struct FarDialogItem DialogItems[sizeof(InitItems)/sizeof(InitItems[0])];
  . . .
  InitDialogItems(InitItems,DialogItems,
                   sizeof(InitItems)/sizeof(InitItems[0]));
  . . .
  int ExitCode=Info.Dialog(Info.ModuleNumber,
                  -1,-1,76,10,
                  "TempCfg",DialogItems,
                  sizeof(DialogItems)/sizeof(DialogItems[0]));
  if (ExitCode != 7)
    return(FALSE);
. . .
}
Смотрите также:
DialogEx, сервисные функции, Message, InitDialogItems