IComponent



Describes component basic functionality.

You can find more information in comments below. Overrided methods can be found in corresponding base interface.

class IComponent : public virtual IClass
{
public:
    Variant Tag; // User data

    // State change events
    void(*OnAttach)(IComponent *sender); // Event called when component is just attached to a form
    void(*OnDetaching)(IComponent *sender); // Event called when component is about to be detached from a form
    void(*OnDetach)(IComponent *sender); // Event called when component has just been detached from a form

    // Component events
    void(*OnComponentAttach)(IComponent *sender, IComponent *component); // Event called when another component has just been attached to a form
    void(*OnComponentDetach)(IComponent *sender, IComponent *component); // Event called when another component has just been detached from a form
    void(*OnComponentChange)(IComponent *sender, IComponent *component); // Event called when another component has been changed and sent notification about it

    // Control events
    void(*OnControlAttach)(IComponent *sender, IControl *control); // Event called when control has just beed attached to a form
    void(*OnControlDetach)(IComponent *sender, IControl *control); // Event called when control has just beed detached form a form
    void(*OnControlChange)(IComponent *sender, IControl *control); // Event called when control has been changed and sent notification about it
    void(*OnControlSetFocus)(IComponent *sender, IControl *control, const MESSAGE_FOCUS &m); // Event called when control has received keyboard focus
    void(*OnControlKillFocus)(IComponent *sender, IControl *control); // Event called when control has lost keyboard focus
    void(*OnControlSetCaptureMouse)(IComponent *sender, IControl *control); // Event called when control has captured mouse input
    void(*OnControlKillCaptureMouse)(IComponent *sender, IControl *control); // Event called when control has lost capture of mouse input
    void(*OnControlSetCaptureKeyboard)(IComponent *sender, IControl *control); // Event called when control has captured keyboard input
    void(*OnControlKillCaptureKeyboard)(IComponent *sender, IControl *control); // Event called when control has lost capture of keyboard input
    void(*OnControlSetModal)(IComponent *sender, IControl *control); // Event called when control becomes modal
    void(*OnControlKillModal)(IComponent *sender, IControl *control); // Event called when modal control becomes non-modal

    // Other input events
    void(*OnHotkey)(IComponent *sender, const MESSAGE_HOTKEY &m); // Event called when registered hotkey received

    // Application events
    void(*OnApplicationActivate)(IComponent *sender); // Event called when application become active
    void(*OnApplicationDeactivate)(IComponent *sender); // Event called when application become inactive
    void(*OnTimeChange)(IComponent *sender); // Event called when system time changed
    void(*OnInputLanguageChange)(IComponent *sender); // Event called when input language changed
    void(*OnDisplayChange)(IComponent *sender, const MESSAGE_SIZE &m); // Event called when display settings changed
    void(*OnThemeChange)(IComponent *sender); // Event called when system theme changed
    void(*OnClipboardUpdate)(IComponent *sender); // Event called when clipboard data has been updated
    // Since 2.0.0
    void(*OnTranslateChange)(IComponent *sender); // Event called when application gets information about changes in translation matrix

    // Form events
    void(*OnFormActivate)(IComponent *sender, const MESSAGE_WINDOW_ACTIVATE &m); // Event called when form becomes active
    void(*OnFormDeactivate)(IComponent *sender); // Event called when form becomes inactive
    void(*OnFormSetFocus)(IComponent *sender); // Event called when form receives keyboard focus
    void(*OnFormKillFocus)(IComponent *sender); // Event called when form loses keyboard focus
    void(*OnFormEnable)(IComponent *sender); // Event called when form becomes enabled
    void(*OnFormDisable)(IComponent *sender); // Event called when form becomes disabled
    void(*OnFormShow)(IComponent *sender); // Event called when form becomes visible
    void(*OnFormHide)(IComponent *sender); // Event called when form becomes invisible
    void(*OnFormMove)(IComponent *sender, const MESSAGE_POSITION &m); // Event called when form is moving
    void(*OnFormRestore)(IComponent *sender, const MESSAGE_SIZE &m); // Event called when form has been restored
    void(*OnFormMinimize)(IComponent *sender, const MESSAGE_SIZE &m); // Event called when form has been minimized
    void(*OnFormMaximize)(IComponent *sender, const MESSAGE_SIZE &m); // Event called when form has been maximized
    void(*OnFormEnterSizeMove)(IComponent *sender); // Event called when form enters in resize and move process
    void(*OnFormExitSizeMove)(IComponent *sender); // Event called when form exists from resize and move process

    // Dialog box events(since 9.0.0)
    void(*OnDialogBoxActivate)(IComponent *sender, IDialogBox *control); // Event called when specified dialog box becomes active
    void(*OnDialogBoxDeactivate)(IComponent *sender, IDialogBox *control); // Event called when specified dialog box loses active state

    virtual IForm *getForm() = 0; // Return form to which the component belongs

    virtual bool setForm(IForm *value) = 0; // Set new form for the component. Nullptr to remove from current form and don't add to other one
    // Since 2.0.0
    virtual void setService(IComponentService *value, const bool release_prev) = 0; // Set new service. Use only compatible services and avoid setting empty value

    virtual void Release() = 0; // Destroy component
    virtual IComponentService *QueryService() = 0; // Return service
};
Namespace: nitisa
Include: Nitisa/Interfaces/IComponent.h