Dialog API 1.0

Attention! Attention!

Dialog API represents an individual API beginning from FAR Manager version 1.70. What's in it for plugin developers? The main thing is higher control over the created dialog.

There're two different dialog types:

Regardless of the style used, dialog manager v1.0 supports only so-called Modal Dialogs. This dialog represents a window which disables user interaction with any FAR Manager object outside the boundaries of the dialog. The modal dialog cuts off all keyboard/mouse events sent to other FAR Manager objects.

"About" style

It's simple - UNCONTROLLABLE DIALOGS! Dialogs of this type are created with either Dialog or DialogEx function call with the DlgProc parameter set to NULL.

This style defines the following dialog behavior:

"Extended" style

This is the most interesting style. Plugin has ultimate control over the dialog. If one simply delegates control to the kernel in a dialog callback function with the DefDlgProc function call, then one gets simple About-styled dialog:
// dialog callback function with minimal code
LONG_PTR WINAPI MyDlgProc(HANDLE hDlg,int Msg,int Param1,LONG_PTR Param2)
{
  return Info.DefDlgProc(hDlg,Msg,Param1,Param2);
}

Choosing dialog style is simple:

Well then, the Dialog API v1.0:

Functions
Structures
Macros and types
Dialog elements
Dialog element flags
Events and Messages
Input focus
Working with lists

 

Remarks

To get more familiar with the Dialog API see the dialog.cpp file from "Reversi" plugin sources.
See also:
Exported functions, Service functions, Structures, Archive support, Addons