WindowInfo

Структура WindowInfo содержит информацию о конкретном окне FAR Manager. Плагин может получить информацию, используя команду ACTL_GETWINDOWINFO.
struct WindowInfo{
  int  Pos;
  int  Type;
  int  Modified;
  int  Current;
  char TypeName[64];
  char Name[NM];
};

Элементы

Pos
Номер окна, о котором нужно узнать информацию. Нумерация идет с 0. Pos = -1 вернет информацию о текущем окне.
Type
Тип окна. Может иметь одно из следующих значений (перечисление WINDOWINFO_TYPE):
ТипОписание
WTYPE_PANELS Файловые панели.
WTYPE_VIEWER Окно встроенной программы просмотра.
WTYPE_EDITOR Окно встроенного редактора.
WTYPE_DIALOG Диалог.
WTYPE_VMENU Меню.
WTYPE_HELP Окно подсказки.
Modified
Признак модификации содержимого файла в окне. Может быть только у WTYPE_EDITOR.
Current
Является ли окно текущим.
TypeName
Имя типа окна (Panels,View,Edit,Help,VMenu), зависит от текущего языка.
Name
Имя окна. Для окон типа WTYPE_VIEWER, WTYPE_EDITOR содержит имя файла. Для панелей - имя текущего файлового объекта. Для окна помощи - полный путь к просматриваемому HLF-файлу. Для диалогов и меню - заголовок.

Пример

void GetFarWindowInfo()
{
  WindowInfo WInfo;
  int CountWindow;
  int I;
  FILE *Fp;

  if((Fp=fopen("window.log","a+t")) == NULL)
      return ;

  // запросили число окон
  CountWindow=(int)Info.AdvControl(Info.ModuleNumber,ACTL_GETWINDOWCOUNT,NULL);
  fprintf(Fp,"WindowCount=%i\n",CountWindow);

  for ( I=0; I < CountWindow; I++ )
  {
    // установили нужный номер
    WInfo.Pos=I;

    // запросили информаци об окне
    Info.AdvControl(Info.ModuleNumber,ACTL_GETWINDOWINFO,(void*)&WInfo);

    // распечатали ее
    fprintf(Fp,"Window[%i], Type=%i (%s), File=[%s] Current=%i, Modified=%i\n",
               I,WInfo.Type,WInfo.TypeName,WInfo.Name,
               WInfo.Current,WInfo.Modified);
  }
  fclose(Fp);

  // установили окно номер 1 (то есть второе)
  Info.AdvControl(Info.ModuleNumber,ACTL_SETCURRENTWINDOW,(void*)1);
}
Смотрите также:
структуры | AdvControl | TWindowInfo