Описывает форму.
Вы можете найти больше информации в комментариях ниже. Переопределенные методы можно найти в соответствующем базовом интерфейсе.
class IForm : public virtual IClass
{
public:
// События дочерних элементов управления
void(*OnChildStyleChange)(IForm *sender, IControl *control); // Событие вызывается при изменении стиля дочернего элемента управления
void(*OnChildFontChange)(IForm *sender, IControl *control); // Событие вызывается когда меняется шрифт дочернего элемента управления
void(*OnChildTransform)(IForm *sender, IControl *control); // Событие вызывается когда дочерний элемент трансформировался
void(*OnChildResize)(IForm *sender, IControl *control); // Событие вызывается когда дочерний элемент поменял размер
void(*OnChildShow)(IForm *sender, IControl *control); // Событие вызывается когда дочерний элемент стал видим
void(*OnChildHide)(IForm *sender, IControl *control); // Событие, вызывающееся когда дочерний элемент управления стал скрытым
void(*OnChildEnable)(IForm *sender, IControl *control); // Событие вызывается когда дочерний элемент стал доступен
void(*OnChildDisable)(IForm *sender, IControl *control); // Событие вызывается когда дочерний элемент стал недоступен
void(*OnChildBeforeTransform)(IForm *sender, IControl *control, bool &allowed) = 0; // Event called before applying transformation to control. Set allowed to false to forbid the change
void(*OnChildBeforeResize)(IForm *sender, IControl *control, bool &allowed) = 0; // Event called before resizing control. Set allowed to false to forbid the change
void(*OnChildBeforeShow)(IForm *sender, IControl *control, bool &allowed) = 0; // Event called before showing control. Set allowed to false to forbid the change
void(*OnChildBeforeHide)(IForm *sender, IControl *control, bool &allowed) = 0; // Event called before hiding control. Set allowed to false to forbid the change
void(*OnChildBeforeEnable)(IForm *sender, IControl *control, bool &allowed) = 0; // Event called before enabling control. Set allowed to false to forbid the change
void(*OnChildBeforeDisable)(IForm *sender, IControl *control, bool &allowed) = 0; // Event called before disabling control. Set allowed to false to forbid the change
// События изменения состояний
void(*OnResize)(IForm *sender); // Событие вызывается при изменении размера формы
void(*OnTransform)(IForm *sender); // Событие вызывается при изменении трансформации формы(перемещение)
void(*OnTransformControls)(IForm *sender); // Событие вызывается когда изменилась трансформация дочернего элемента
void(*OnStyleChange)(IForm *sender); // Событие вызывается при изменении стиля
void(*OnFontChange)(IForm *sender); // Событие вызывается когда меняется шрифт
// События компонента
void(*OnComponentAttach)(IForm *sender, IComponent *component); // Событие вызывается после присоединении компонента
void(*OnComponentDetach)(IForm *sender, IComponent *component); // Событие вызывается после отсоединения компонента
// События элемента управления
void(*OnControlAttach)(IForm *sender, IControl *control); // Событие, вызывающееся когда элемент управления только был присоединен
void(*OnControlDetach)(IForm *sender, IControl *control); // Событие вызывается когда элемент управления отсоединился
void(*OnControlSetModal)(IForm *sender, IControl *control); // Событие вызывается когда элемент управления получил модальное состояние
void(*OnControlKillModal)(IForm *sender, IControl *control); // Событие вызывается когда элемент управления потерял модальное состояние
void(*OnControlSetFocus)(IForm *sender, IControl *control, const MessageFocus &m); // Событие вызывается когда элемент управления получает фокус
void(*OnControlKillFocus)(IForm *sender, IControl *control); // Событие вызывается когда элемент управления потерял фокус
void(*OnControlMouseHover)(IForm *sender, IControl *control, const MessagePosition &m); // Событие вызывается когда элемент управления оказывается под курсором мышы
void(*OnControlMouseLeave)(IForm *sender, IControl *control); // Событие, вызывающееся когда элемент управления больше не под указателем мышы
void(*OnControlSetCaptureKeyboard)(IForm *sender, IControl *control); // Событие вызывается когда элемент управления захватил ввод с клавиатуры
void(*OnControlKillCaptureKeyboard)(IForm *sender, IControl *control); // Событие вызывается когда элемент управления потерял захват ввода с клавиатуры
void(*OnControlSetCaptureMouse)(IForm *sender, IControl *control); // Событие вызывается когда элемент управления захватил ввод с мышы
void(*OnControlKillCaptureMouse)(IForm *sender, IControl *control); // Событие вызывается когда элемент управления потерял захват ввода с мышы
void(*OnControlActivate)(IForm *sender, IControl *control); // Событие вызывается когда элемент управления становится активным
void(*OnControlDeactivate)(IForm *sender, IControl *control); // Событие вызывается когда элемент управления теряет активное состояние
// События рисования
void(*OnPaint)(IForm *sender, const MessagePaint &m, bool &draw_children); // Событие вызывается в начале рисования формы
void(*OnPaintEnd)(IForm *sender, const MessagePaint &m); // Событие вызывается после рисования формы и элементов управления
// События ввода с клавиатуры
void(*OnKeyDown)(IForm *sender, const MessageKey &m); // Событие вызывается когда наживается клавиша на клавиатуре
void(*OnKeyUp)(IForm *sender, const MessageKey &m); // Событие вызывается когда отпускается клавиша на клавиатуре
void(*OnChar)(IForm *sender, const MessageChar &m); // Событие вызывается когда получен символ после ввода с клавиатуры
void(*OnDeadChar)(IForm *sender, const MessageChar &m); // Событие вызывается когда приходит составной символ с клавиатуры
// События ввода мышы
void(*OnMouseHover)(IForm *sender, const MessageMouse &m); // Событие вызывается при появлении указателя мышы над формой
void(*OnMouseLeave)(IForm *sender); // Событие вызывается когда указатель мышы покидает форму
void(*OnMouseMove)(IForm *sender, const MessageMouse &m); // Событие вызывается при движении указателя мышы
void(*OnLeftMouseButtonDown)(IForm *sender, const MessageMouse &m); // Событие вызывается при нажатии левой кнопки мышы
void(*OnLeftMouseButtonUp)(IForm *sender, const MessageMouse &m); // Событие вызывается при отпускании левой кнопки мышы
void(*OnLeftMouseButtonDoubleClick)(IForm *sender, const MessageMouse &m); // Событие вызывается при двойном щелчке левой кнопкой мышы
void(*OnRightMouseButtonDown)(IForm *sender, const MessageMouse &m); // Событие вызывается при нажатии парвой кнопки мышы
void(*OnRightMouseButtonUp)(IForm *sender, const MessageMouse &m); // Событие вызывается при отпускании правой кнопки мышы
void(*OnRightMouseButtonDoubleClick)(IForm *sender, const MessageMouse &m); // Событие вызывается при двойном щелчке правой кнопкой мышы
void(*OnMiddleMouseButtonDown)(IForm *sender, const MessageMouse &m); // Событие вызывается при нажатии средней кнопки мышы
void(*OnMiddleMouseButtonUp)(IForm *sender, const MessageMouse &m); // Событие вызывается при отпускании средней кнопки мышы
void(*OnMiddleMouseButtonDoubleClick)(IForm *sender, const MessageMouse &m); // Событие вызывается при двойном щелчке средней кнопкой мышы
void(*OnMouseVerticalWheel)(IForm *sender, const MessageMouseWheel &m); // Событие вызывается при вертикальной прокрутке мышью
void(*OnMouseHorizontalWheel)(IForm *sender, const MessageMouseWheel &m); // Событие вызывается при горизонтальной прокрутке мышью
// Другие события ввода
void(*OnDropFiles)(IForm *sender, const MessageDropFiles &m, bool &accepted); // Событие вызывается когда файлы были перетащены и брошены на форму
void(*OnHotkey)(IForm *sender, const MessageHotkey &m); // Событие, вызывающееся когда произошла зарегистрированная комбинация клавиш
void(*OnGestureZoom)(IForm *sender, const MessagePosition &m); // Событие вызывается при жесте Zoom
void(*OnGesturePan)(IForm *sender, const MessagePosition &m); // Событие вызывается при жесте Pan
void(*OnGestureRotate)(IForm *sender, const MessagePosition &m); // Событие вызывается при жесте Rotate
void(*OnGestureTwoFingerTap)(IForm *sender, const MessagePosition &m); // Событие вызывается при жесте Two Finger Tap
void(*OnGesturePressAndTap)(IForm *sender, const MessagePosition &m); // Событие вызывается при жесте Press and Tap
void(*OnGestureNotify)(IForm *sender); // Событие вызывается при жесте
void(*OnTouch)(IForm *sender, const MessageTouch &m); // Событие вызывается при касании
// События приложения
void(*OnApplicationActivate)(IForm *sender); // Событие вызывается когда приложение стало активным
void(*OnApplicationDeactivate)(IForm *sender); // Событие вызывается когда приложение стало неактивным
void(*OnQueryEndSession)(IForm *sender, bool &restricted); // Событие вызывается при попытке завершения сессии пользователя
void(*OnQueryOpen)(IForm *sender, bool &restricted); // Событие вызывается при открытии из трея
void(*OnEndSession)(IForm *sender, const MessageEndSession &m); // Событие вызывается при завершении сессии пользователя
void(*OnDeviceModeChange)(IForm *sender); // Событие вызывается после изменения режима устройства
void(*OnTimeChange)(IForm *sender); // Событие вызывается при изменении системного времени
void(*OnInputLanguageChangeRequest)(IForm *sender, bool &restricted); // Событие вызывается при запросе от системы на смену языка
void(*OnInputLanguageChange)(IForm *sender); // Событие вызывается после изменения языка
void(*OnDisplayChange)(IForm *sender, const MessageSize &m); // Событие вызывается когда меняются настройки дисплея
void(*OnThemeChange)(IForm *sender); // Событие вызывается после изменения темы
void(*OnClipboardUpdate)(IForm *sender); // Событие вызывается когда изменяется содержимое буфера обмена
void(*OnTranslateChange)(IForm *sender); // Событие вызывается когда приложение получает информацию об изменении матрицы переводов
// События окна
void(*OnDestroy)(IForm *sender); // Событие вызывается перед уничтожением формы
void(*OnActivate)(IForm *sender, const MessageWindowActivate &m); // Событие вызывается когда приложение стало активным
void(*OnDeactivate)(IForm *sender); // Событие вызывается когда приложение стало неактивным
void(*OnSetFocus)(IForm *sender); // Событие вызывается когда форма получила фокус
void(*OnKillFocus)(IForm *sender); // Событие вызывается когда форма потеряла фокус
void(*OnEnable)(IForm *sender); // Событие вызывается когда форма стала доступной
void(*OnDisable)(IForm *sender); // Событие вызывается когда форма стала недоступной
void(*OnClose)(IForm *sender, CloseAction &action); // Событие вызывается когда пользователь пытается закрыть форму. Действие можно изменить для предотвращения поведения по умолчанию
void(*OnShow)(IForm *sender); // Событие вызывается когда форма стала видимой
void(*OnHide)(IForm *sender); // Событие вызывается когда форма стала невидимой
void(*OnMove)(IForm *sender, const MessagePosition &m); // Событие вызывается при перемещении формы
void(*OnRestore)(IForm *sender, const MessageSize &m); // Событие вызывается когда форма восстанавливается
void(*OnMinimize)(IForm *sender, const MessageSize &m); // Событие вызывается когда форма сворачивается
void(*OnMaximize)(IForm *sender, const MessageSize &m); // Событие вызывается когда форма разворачивается
void(*OnResizing)(IForm *sender, const MessageWindowResizing &m); // Событие вызывается при изменении размеров формы
void(*OnMoving)(IForm *sender, const MessageRect &m); // Событие вызывается после перемещения формы
void(*OnEnterSizeMove)(IForm *sender); // Событие вызывается когда форма вошла в режим перемещения и изменения размера
void(*OnExitSizeMove)(IForm *sender); // Событие вызывается когда форма вышла из режима перемещения и изменения размера
void(*OnHScroll)(IForm *sender, const MessageWindowScroll &m); // Событие, вызывающееся при горизонтальной прокрутке
void(*OnVScroll)(IForm *sender, const MessageWindowScroll &m); // Событие, вызывающееся при вертикальной прокрутке
void(*OnLoseCapture)(IForm *sender); // Событие вызывается когда форма потеряла захват ввода
// События диалоговых виджетов
void(*OnDialogBoxActivate)(IForm *sender, IDialogBox *control); // Событие, вызывающееся когда диалоговый виджет становиться активным
void(*OnDialogBoxDeactivate)(IForm *sender, IDialogBox *control); // Событие, вызывающееся когда диалоговый виджет теряет активное состоняие
// События буфера обмена
void(*OnPasteString)(IForm *sender, const MessagePasteString &m); // Событие, вызывающееся когда строка для вставки становиться доступной после запроса вставки
virtual IRenderer *getRenderer() = 0;
virtual IHint *getHint() = 0; // Возвращает всплывающую подсказку. Если не присоеденена, создает дефолтную
virtual IStyle *getStyle() = 0; // Возвращает стиль. По умолчанию nullptr
virtual IFont *getFont() = 0; // Возвращает шрийт. Если не связан, создает шрифт по умолсанию
virtual ICaret *getCaret() = 0; // Возвращает каретку. Если не привязана, создает каретку по умолчанию
virtual IControl *getModalControl() = 0; // Возвращает текущий модальный элемент управления
virtual IControl *getFocusedControl() = 0; // Возвращает элемент управления находящийся в фокусе
virtual IControl *getCaptureKeyboardControl() = 0; // Возвращает элемент управления, который захватил ввод с клавиатуры
virtual IControl *getCaptureMouseControl() = 0; // Возвращает элемент управления, который захватил ввод с мышы
virtual IControl *getHoveredControl() = 0; // Возвращает элемент управления под указателем мышы
virtual IControl *getActiveControl() = 0; // Возвращает текущий активный элемент управления
virtual IControl *getInputControl() = 0; // Возвращает элемент управлния, который обрабатывает весь ввод, который не был обработан другими элементами управления. Используется элементами управления, которые кастомизируют границы и заголовок формы для кастомного управления перемещением, изменением размера и другими операциями над формой
virtual int getControlCount(const bool total = false) = 0; // Возвращает количество элементов управления. Или непосредственно дочерних или всех в иерархии
virtual IControl *getControl(const int index) = 0; // Возвращает элемент управления по индексу
virtual IControl *getControl(const String &name) = 0; // Возвращает элемент управления по имени
virtual IControl *getControl(const PointF &position) = 0; // Возвращает элемент управления в указанном положении. Положение должно быть в системе координат относительно клиентской области окна
virtual int getControlIndex(IControl *control) = 0; // Возвращает индекс элемента управления в списке или -1
virtual int getComponentCount() = 0; // Возвращает количество компонентов
virtual IComponent *getComponent(const int index) = 0; // Возвращает компонент по индексу
virtual IComponent *getComponent(const String &name) = 0; // Возвращает компонент по имени
virtual int getComponentIndex(IComponent *component) = 0; // Возвращает индекс компонента в списке или -1
virtual ITransform *getTransform() = 0; // Возвращает трансформацию
virtual ITransform *getTransformControls() = 0; // Возвращает трансформацию дочерних элементов управления
virtual CursorType getCursor() = 0; // Возвращает тип курсора. По умолчанию Arrow
virtual String getHintText() = 0; // Возвращает текст всплывающей подсказки. По умолчанию пустая строка
virtual float getHintDelay() = 0; // Возвращает задержку появления всплывающей подсказки(в секундах). По умолчанию 0.5 секунды
virtual PointF getHintShift() = 0; // Возвращает смещение всплывающей подсказки. По умолчанию 0, 20
virtual Color getBackgroundColor() = 0; // Возвращает цвет фона. По умолчанию {240, 240, 240, 255}
virtual bool isShowHint() = 0; // Возвращает нужно ли показывать всплывающую подсказку. По умолчанию true
virtual bool isFocusByLMB() = 0; // Возвращает можно ли изменять фокус элементов управления по щелчку левой кнопкой мышы. По умолчанию true
virtual bool isFocusByRMB() = 0; // Возвращает можно ли изменять фокус элементов управления по щелчку правой кнопкой мышы. По умолчанию true
virtual bool isFocusByMMB() = 0; // Возвращает можно ли изменять фокус элементов управления по щелчку средней кнопкой мышы. По умолчанию true
virtual bool isFocusByTab() = 0; // Возвращает можно ли изменять фокус элементов управления по Tab и Shift+Tab. По умолчанию true
virtual bool isInterceptEnable() = 0; // Возвращает включен ли механизм перехватов. По умолчанию false
virtual int getTaskCount() = 0; // Возвращает число задач в списке
virtual ITask *getTask(const int index) = 0; // Возвращает задачу по индексу
virtual Rect getBorderWidth() = 0; // Возвращает ширину границы, которая используется только при выравнивании элементов управления. По умолчанию {0, 0, 0, 0}. Пространство выделенное под границы можно использовать для рисования кастомных границ и заголовка(popup стиль формы/окна так же можно использовать для предотвращения появления границ и заголовка по умолчанию)
virtual Point getDPI() = 0; // Возвращает DPI под который параметры элементов управления формы адаптированы. { 96, 96 } по умолчанию
virtual IDialogBox *getActiveDialogBox() = 0; // Возвращает активный диалоговый виджет
virtual IFormListener *getListener() = 0; // Возвращает присоединенный слушатель
// Геттеры окна
virtual bool isVisible() = 0; // Возвращает видим ли
virtual bool isEnabled() = 0; // Возвращает доступен ли
virtual bool isAcceptDragAndDrop() = 0; // Возвращает будет ли разрешено перетаскивать и бросать
virtual bool isAcceptDropFiles() = 0; // Возвращает будет ли приниматься перетаскивание файлов
virtual String getCaption() = 0; // Возвращает заголовок
virtual Rect getRect() = 0; // Возвращает прямоугольник в экранных координатах
virtual Point getSize() = 0; // Возвращает ширину и высоту
virtual Point getPosition() = 0; // Возвращает положение в экранных координатах
virtual int getLeft() = 0; // Возвращает левую позицию в экранных координатах
virtual int getTop() = 0; // Возвращает верхнюю позицию в экранных координатах
virtual int getWidth() = 0; // Возвращает ширину
virtual int getHeight() = 0; // Возвращает высоту
virtual Rect getClientRect() = 0; // Возвращает клиентский прямоугольник
virtual Point getClientSize() = 0; // Возвращает размер клиентской области
virtual int getClientWidth() = 0; // Возвращает ширину клиентской области
virtual int getClientHeight() = 0; // Возвращает высоту клиентской области
virtual WindowState getState() = 0; // Возвращает состояние
virtual CreateParams getCreateParams() = 0; // Возвращает параметры создания окна
virtual bool hasBorder() = 0; // Возвращает есть ли уформы стандартные границы
virtual bool hasCaption() = 0; // Возвращает имеет ли форма стандартную область заголовка
virtual bool hasDialogFrame() = 0; // Возвращает имеет ли форма стандартную диалоговую рамку
virtual bool hasHorizontalScroll() = 0; // Возвращает имеет ли форма стандартную горизонтальную полосу прокрутки
virtual bool hasVerticalScroll() = 0; // Возвращает имеет ли форма стандартную вертикальную полосу прокрутки
virtual bool hasMaximizeBox() = 0; // Возвращает имеет ли форма стандартную кнопку сворачивания
virtual bool hasMinimizeBox() = 0; // Возвращает имеет ли форма стандартную кнопку разворачивания
virtual bool hasSizeBox() = 0; // Возвращает можно ли изменять размер формы
virtual bool hasSystemMenu() = 0; // Возвращает имеет ли форма стандартное системное меню
virtual bool hasClientEdge() = 0; // Возвращает имеет ли форма стандартные клиентские грани
virtual bool hasContextHelp() = 0; // Возвращает есть ли у формы стандартная контекстная подсказка
virtual bool hasDialogModalFrame() = 0; // Возвращает имеет ли форма стандартную диалоговую модальную рамку
virtual bool hasStaticEdge() = 0; // Возвращает имеет ли форма стандартную статическую границу
virtual bool hasWindowEdge() = 0; // Возвращает имеет ли форма стандартные границы окна
virtual bool isPopup() = 0; // Возвращает является ли форма попапом
virtual bool isTabStop() = 0; // Возвращает является ли форма элементом управления, который можно активировать клавишей Tab
virtual bool isMDIChild() = 0; // Возвращает является ли форма MDI дочерней
virtual bool isToolWindow() = 0; // Возвращает является ли форма служебной
virtual bool isTopMost() = 0; // Возвращает будет ли форма всегда поверх других форм
virtual bool setHint(IHint *value) = 0; // Привязать подстказку
virtual bool setStyle(IStyle *value) = 0; // Привязать стиль
virtual bool setFont(IFont *value, const bool copy = true) = 0; // Привязать шрифт
virtual bool setCaret(ICaret *value) = 0; // Привязать каретку
virtual bool setModalControl(IControl *value) = 0; // Устанавливает новый модальный элемент управления. nullptr очищает историю модальнх элементов управления. Если элементу управления нужно просто убрать модальное состояние и передать его элементу управления, который был модальным до него, от должен вызвать метод ReleaseModal()
virtual bool setFocusedControl(IControl *value) = 0; // Устанавливает фокус новому элементу управления
virtual bool setActiveControl(IControl *value) = 0; // Устанавливает новый активный элемент управления
virtual bool setInputControl(IControl *value) = 0; // Устанавливает элемент управления, который получает весь ввод, который не был обработан другими элементами управления. Может быть nullptr. Используется элементами управления, которые астомизируют границы и заголовок формы, а так же управляют операциями изменения размера и перемещения. Обычно вызывается таким элементом управления в момент добавления его на форму
virtual bool setTransformControls(ITransform *value) = 0; // Устанавливает трансформацию дочерних элементов управления
virtual bool setCursor(const CursorType value) = 0; // Устанавливает тип курсора
virtual bool setHintText(const String &value) = 0; // Устанавливает текст всплывающей подсказки
virtual bool setHintDelay(const float value) = 0; // Устанавливает задержку появления всплывающей подстказки
virtual bool setHintShift(const PointF &value) = 0; // Устанавливает смещение всплывающей подсказки
virtual bool setBackgroundColor(const Color &value) = 0; // Устанавливает цвет фона
virtual bool setShowHint(const bool value) = 0; // Устанавливает нужно ли показывать всплывающую подсказку
virtual bool setFocusByLMB(const bool value) = 0; // Устанавливает могут ли элементы управления получить фокус с помощью клика по левой кнопке мышы
virtual bool setFocusByMMB(const bool value) = 0; // Устанавливает могут ли элементы управления получить фокус с помощью клика по средней кнопке мышы
virtual bool setFocusByRMB(const bool value) = 0; // Устанавливает могут ли элементы управления получить фокус с помощью клика по правой кнопке мышы
virtual bool setFocusByTab(const bool value) = 0; // Устанавливает могут ли элементы управления получить фокус по клавишам Tab и Shift+Tab
virtual bool setInterceptEnable(const bool value) = 0; // Устанавливает включены ли перехваты
virtual bool setBorderWidth(const Rect &value) = 0; // Устанавливает ширину границы. Используется в выравнивании. Граница может использоваться для рисования кастомных границ и области заголовка. При добавлении элемента управления, который кастомизирует границы и область заголовка формы, он устанавливает это свойство
virtual void setService(IFormService *value, const bool release_prev) = 0; // Устанавливает новый сервис. Используйте только совместимые сервисы и не передавайте пустые значения
virtual bool setDPI(const Point &value) = 0; // Адаптирует параметры элементов управления формы к новому DPI
virtual bool setActiveDialogBox(IDialogBox *value) = 0; // Устанавливает активный диалоговый виджет. nullptr очищает историю активации диалоговых виджетов
virtual void setListener(IFormListener *value) = 0; // Присоединение слушателя
// Сеттеры окна
virtual bool setVisible(const bool value) = 0; // Показывает/Скрывает
virtual bool setEnabled(const bool value) = 0; // Делает доступным и недоступным
virtual bool setAcceptDrawAndDrop(const bool value) = 0; // Устанавливает доступно ли перетаскивание и отпускание
virtual bool setAcceptDropFiles(const bool value) = 0; // Устанавливает доступно ли перетаскивание файлов
virtual bool setCaption(const String &value) = 0; // Устанавливает заголовок
virtual bool setRect(const Rect &value) = 0; // Устанавливает положение и размер
virtual bool setSize(const Point &value) = 0; // Устанавливает размер
virtual bool setPosition(const Point &value) = 0; // Устанавливает положение
virtual bool setLeft(const int value) = 0; // Устанавливает левую координату
virtual bool setTop(const int value) = 0; // Устанавливает координату верхы
virtual bool setWidth(const int value) = 0; // Устанавливает ширину
virtual bool setHeight(const int value) = 0; // Устанавливает высоту
virtual bool setClientSize(const Point &value) = 0; // Устанавливает размер клиентской области
virtual bool setState(const WindowState value) = 0; // Устанавливает состояние
virtual bool setModalResult(const ModalResult value) = 0; // Устанавливает модальный результат. Работает только если форма была показана методом ShowModal()
virtual bool setWindowPosition(const WindowPosition value) = 0; // Устанавливает положение окна
virtual void setCreateParams(const CreateParams &value) = 0; // Устанавливает параметры создания окна
virtual bool setHasBorder(const bool value) = 0; // Устанавливает имеет ли форма стандартные границы. Работает только перед созданием окна формы
virtual bool setHasCaption(const bool value) = 0; // Устанавливает имеет ли форма стандартную область заголовка. Работает только перед созданием окна формы
virtual bool setHasDialogFrame(const bool value) = 0; // Устанавливает имеет ли форма стандартную диалоговую рамку. Работает только перед созданием окна формы
virtual bool setHasHorizontalScroll(const bool value) = 0; // Устанавливает имеет ли форма стандартную горизонтальную полосу прокрутки. Работает только перед созданием окна формы
virtual bool setHasVerticalScroll(const bool value) = 0; // Устанавливает имеет ли форма стандартную вертикальную полосу прокрутки. Работает только перед созданием окна формы
virtual bool setHasMaximizeBox(const bool value) = 0; // Устанавливает имеет ли форма стандартную кнопку сворачивания. Работает только перед созданием окна формы
virtual bool setHasMinimizeBox(const bool value) = 0; // Устанавливает имеет ли форма стандартную кнопку разворачивания. Работает только перед созданием окна формы
virtual bool setHasSizeBox(const bool value) = 0; // Устанавливает можно ли менять размер формы. Работает только перед созданием окна формы
virtual bool setHasSystemMenu(const bool value) = 0; // Устанавливает имеет ли форма стандартное системное меню. Работает только перед созданием окна формы
virtual bool setHasClientEdge(const bool value) = 0; // Устанавливает имеент ли форма стандартные клиентские границы. Работает только перед созданием окна формы
virtual bool setHasContextHelp(const bool value) = 0; // Устанавливает есть ли у формы стандартная контекстная подсказка. Работает только, если вызывается до создания окна формы
virtual bool setHasDialogModalFrame(const bool value) = 0; // Устанавливает имеет ли форма стандартную модальную диалоговую рамку. Работает только перед созданием окна формы
virtual bool setHasStaticEdge(const bool value) = 0; // Устанавливает имеет ли форма стандартную статическую границу. Работает только перед созданием окна формы
virtual bool setHasWindowEdge(const bool value) = 0; // Устанавливает имеет ли форма стандартные границы окна. Работает только перед созданием окна формы
virtual bool setIsPopup(const bool value) = 0; // Устанавливает является ли форма попапом. Работает только перед созданием окна формы
virtual bool setIsTabStop(const bool value) = 0; // Устанавливает является ли форма элементом управления, который может быть активирован по клавише Tab. Работает только перед созданием окна формы
virtual bool setIsMDIChild(const bool value) = 0; // Устанавливает является ли форма стандартной MDI дочерней. Работает только перед созданием окна формы
virtual bool setIsToolWindow(const bool value) = 0; // Устанавливает является ли форма служебной. Работает только перед созданием окна формы
virtual bool setIsTopMost(const bool value) = 0; // Устанавливает будет ли форма всегда поверх других форм. Работает только перед созданием окна формы
// Компоненты
virtual bool AttachComponent(IComponent *component) = 0; // Добавляет компонент
virtual bool DeleteComponent(const int index) = 0; // Удаляет и уничтожает компонент по индексу
virtual bool DeleteComponent(IComponent *component) = 0; // Удаляет и уничтожает указанный компонент
virtual bool DeleteComponents() = 0; // Удаляет и уничтожает все компоненты
virtual bool DetachComponent(IComponent *component) = 0; // Отсоединяет, но не уничтожает указанный компонент
// Элементы управления
virtual bool AttachControl(IControl *control) = 0; // Добавляет элемент управления
virtual bool InsertControl(IControl *control, const int before) = 0; // Вставляет элемент управления перед указанной позицией
virtual bool DeleteControl(const int index) = 0; // Удаляет и уничтожает элемент управления по индексу
virtual bool DeleteControl(IControl *control) = 0; // Удаляет и уничтожает указанный элемент управления
virtual bool DeleteControls() = 0; // Удаляет и уничтожает элементы управления
virtual bool DetachControl(IControl *control) = 0; // Удаляет, но не уничтожает, указанный элемент управления
virtual IControl *FindControl(const String &name, IControl *exclude = nullptr) = 0; // Находит элемент с указанным именени во всей иерархии
virtual bool FocusPrevControl() = 0; // Передает фокус предидущему элементу управления(предидущий вычисляется по tab index)
virtual bool FocusNextControl() = 0; // Передает фокус следующему элементу управления(следующий вычисляется по tab index)
virtual bool CaptureKeyboard(IControl *control) = 0; // Отправлять весь ввод с клавиатуры указанному элементу управления. Если указать пустым, очистит очередь захвата ввода
virtual bool CaptureMouse(IControl *control, const bool system_capture) = 0; // Отправлять весь ввод с мышы указанному элементу управления. Если указать пустым, очистит очередь захвата ввода
virtual void ReleaseCaptureKeyboard() = 0; // Освобождает захват ввода с клавиатуры и передает его предидущему элементу управления, который имел захват ранее(если существует)
virtual void ReleaseCaptureMouse() = 0; // Освобождает захват ввода с мышы и передает его предидущему элементу управления, который имел захват ранее(если существует)
virtual void UpdateHoveredControl() = 0; // Обновляет признак нахождения элемента управления под указателем мышы используя текущее положение указателя мышы
virtual void ReleaseModal() = 0; // Передает модальное состояние элементу управления, который имел модальное состояние до этого. Если элемент управления наследуется от CDialogBox, то обычно нет необходимости использовать этот метод. Изменение диалогового виджета производится формой
// Рисование
virtual void LockRepaint() = 0; // Останавливает реальное рисование. Можно вызывать много раз
virtual void UnlockRepaint() = 0; // Возобновляет реальное рисование. Должен вызываться такое же количество раз, сколько был вызван LockRepaint, чтобы возобновить реальное рисование
virtual void Repaint() = 0; // Перерисовывает всю область формы
virtual void Refresh() = 0; // Вызывает Refresh() у всех дочерних элементов управления, заставляя их очистить внутренние канвы(буферы для рисования)
virtual void Repaint(const Rect &rect, const bool force = false) = 0; // Перерисовывает указанный прямоугольник формы. Если force равен true, текущий прямоугольник для перерисовки, сохраненный в форме, будет полность перезаписан новым. Если force равен false, новый прямоугольник будет добавлен к текущему. С force равным true и пустым прямоугольником перерисование может быть отключено
virtual void Repaint(const RectF &rect, const bool force = false) = 0; // Перерисовывает указанный прямоугольник формы. Если force равен true, текущий прямоугольник для перерисовки, сохраненный в форме, будет полность перезаписан новым. Если force равен false, новый прямоугольник будет добавлен к текущему. С force равным true и пустым прямоугольником перерисование может быть отключено
// Комбинации клавиш
virtual bool RegisterHotkey(const Key key, const bool ctrl, const bool alt, const bool shift, const bool is_down) = 0; // Регистрирует горячую клавишу
virtual bool UnregisterHotkey(const Key key, const bool ctrl, const bool alt, const bool shift, const bool is_down) = 0; // Удаляет горячую клавишу
virtual bool UnregisterHotkeys() = 0; // Удаляет все зарегистрированные горячие клавиши
// Помощники
virtual void Release() = 0; // Уничтожает экземпляр
virtual IFormService *QueryService() = 0; // Возвращает сервис
// Действия над окном
virtual bool Show() = 0; // Показывает
virtual ModalResult ShowModal() = 0; // Показывает в модальном состоянии
virtual bool Hide() = 0; // Скрыть
virtual PlatformHandle CreateTimer(TImerListener *listener, const float interval) = 0; // Создает таймер
virtual bool DeleteTimer(const PlatformHandle id) = 0; // Удаляет таймер
virtual void DeleteTimers() = 0; // Удаляет все таймеры
virtual bool ResetTimer(const PlatformHandle id, const float interval) = 0; // Изменяет и сбрасывает к началу интервал таймера
virtual bool Maximize() = 0; // Пазвернуть
virtual bool Minimize() = 0; // Свернуть
virtual bool Restore() = 0; // Востанавливает
virtual bool CopyStringToClipboard(const String &str) = 0; // Копирует указанную строку в буфер обмена
virtual bool CopyStringFromClipboard() = 0; // Копирует строку из буфера обмена. При успехе, виджет в фокусе получит уведомление NotifyOnPasteString() сразу или позже(зависит от OS)
virtual Rect ScreenToClient(const Rect &rect) = 0; // Преобразует координатф на экране в координаты на форме
virtual Point ScreenToClient(const Point &pos) = 0; // Преобразует координатф на экране в координаты на форме
virtual Rect ClientToScreen(const Rect &rect) = 0; // Преобразует координаты на форме в координаты на экране
virtual Point ClientToScreen(const Point &pos) = 0; // Преобразует координаты на форме в координаты на экране
virtual bool Close() = 0; // Закрывает форму(отправляет сообщение закрытия соответствующему окну)
// Задачи
virtual bool AddTask(ITask *task) = 0; // Добавляет задачу к форме. Все задачи выполняются(по очереди) после последней разблокировки рисования и удаляются после этого
virtual bool DeleteTask(const int index) = 0; // Удаляет задачу по идентификатору
virtual bool DeleteTask(ITask *task) = 0; // Удаляет указанную задачу
virtual void DeleteTasks() = 0; // Удаляет все задачи
virtual void RunTasks() = 0; // Запускает задачи(только если они еще не запущены)
// Действия с всплывающей подсказкой
virtual bool ShowHint(const String &text, const Point &position) = 0; // Показывает всплывающую подсказку. Положение указывается в координатном пространстве формы
virtual bool ShowHint(IControl *control, const PointF &position) = 0; // Показывает всплывающую подсказку элемента управления. Положение указывается в координатном пространстве элемента управления
};
Такой элемент управления используется для кастомизации формы. Он отвечает за рисование границ и заголовка. Этот элемент управления обычно имеет нулевой размер и при добавлении на форму он вызывает метод формы setInputControl(...) передавая себя в качестве параметра. Элемент управления, который установлен как обработчик ввода, получает все события от клавиатуры, которые получает форма, если они не были обработаны элементом управления захватившим ввод с клавиатуры. Он так же получает все события от мышы если они не были обработаны элементом управления захватившим ввод с мышы или такой элемент управления отсутствует. То эе самое справедливо и для события перетаскивания файлов.
Пространство имен: | nitisa |
Включение: | Nitisa/Interfaces/IForm.h |