Содержание


NTL
Core
CControl

CControl



Базовый класс элемента управления. Наследуйте все Ваши элементы управления от этого класса. Он уже содержит реализацию всех требуемых часто используемых методов.

Вы можете найти больше информации в комментариях ниже. Переопределенные методы можно найти в соответствующем базовом классе или интерфейсе.

class CControl :public virtual IControl, public CComponent
{
public:
    IControl *getParent() override;
    IStyle *getParentStyle() override;
    IStyle *getControlStyle() override;
    IStyle *getStyle() override;
    IFont *getParentFont() override;
    IFont *getControlFont() override;
    IFont *getFont() override;
    int getControlCount(const bool total = false) override;
    IControl *getControl(const int index) override;
    IControl *getControl(const String &name) override;
    IControl *getControl(const PointF &position) override;
    int getControlIndex(IControl *control) override;
    ITransform *getTransform() override;
    ITransform *getTransformControls() override;
    Mat4f getTransformMatrix() override;
    Align getAlign() override;
    RectF getConstraints() override;
    PointF getMinConstraints() override;
    PointF getMaxConstraints() override;
    float getMinWidth() override;
    float getMinHeight() override;
    float getMaxWidth() override;
    float getMaxHeight() override;
    PointF getSize() override;
    float getWidth() override;
    float getHeight() override;
    RectF getRect() override;
    RectF getClientRect() override;
    RectF getRenderRect() override;
    int getZIndex() override;
    CursorType getCursor() override;
    int getTabOrder() override;
    String getHintText() override;
    float getHintDelay() override;
    PointF getHintShift() override;
    Point getDPI() override;
    bool isAcceptForm() override;
    bool isAcceptForm(IForm *form) override;
    bool isAcceptControl() override;
    bool isAcceptControl(IControl *control) override;
    bool isAcceptControls() override;
    bool isAcceptFocus() override;
    bool isAcceptModal() override;
    bool isWantTabs() override;
    bool isTabStop() override;
    bool isDeactivateByTab() override;
    bool isModal() override;
    bool isHovered() override;
    bool isFocused() override;
    bool isVisible(const bool with_parents) override;
    bool isEnabled(const bool with_parents) override;
    bool isCaptureMouse() override;
    bool isCaptureKeyboard() override;
    bool isActive() override;
    bool isShowHint() override;
    bool isFocusByMouse() override;
    bool isUseParentStyle() override;
    bool isUseParentFont() override;
    bool isUseParentShowHint() override;
    bool isUseParentHintDelay() override;
    bool isUseParentHintShift() override;
    bool isAcceptChild(IControl *control) override; // Всегда возвращает true 
    bool isStaticTabOrder() override; // False по умолчанию 
    bool isAcceptBubbledEvents() override; // Возвращает false 
    bool hasChild(IControl *control) override;
    bool hasParent(IControl *control) override;
    bool hasStyle() const override;
    bool hasFont() const override;
    bool hasExtra() override; // Возвращает false 

    bool setName(const String &value) override;
    bool setForm(IForm *value) override;
    bool setParent(IControl *value) override;
    bool setStyle(IStyle *value) override;
    bool setFont(IFont *value, const bool copy = true) override;
    bool setTransform(ITransform *value) override;
    bool setTransformControls(ITransform *value) override;
    bool setAlign(const Align value) override;
    bool setConstraints(const RectF &value) override;
    bool setMinConstraints(const PointF &value) override;
    bool setMaxConstraints(const PointF &value) override;
    bool setMinWidth(const float value) override;
    bool setMinHeight(const float value) override;
    bool setMaxWidth(const float value) override;
    bool setMaxHeight(const float value) override;
    bool setSize(const PointF &value) override;
    bool setWidth(const float value) override;
    bool setHeight(const float value) override;
    bool setZIndex(const int value) override;
    bool setCursor(const CursorType value) override;
    bool setTabOrder(const int value) override;
    bool setHintText(const String &value) override;
    bool setHintDelay(const float value) override;
    bool setHintShift(const PointF &value) override;
    bool setWantTabs(const bool value) override;
    bool setTabStop(const bool value) override;
    bool setDeactivateByTab(const bool value) override;
    bool setModal(const bool value) override;
    bool setFocus() override;
    bool setVisible(const bool value) override;
    bool setEnabled(const bool value) override;
    bool setShowHint(const bool value) override;
    bool setUseParentStyle(const bool value) override;
    bool setUseParentFont(const bool value) override;
    bool setUseParentShowHint(const bool value) override;
    bool setUseParentHintDelay(const bool value) override;
    bool setUseParentHintShift(const bool value) override;
    void setService(IControlService *value, const bool release_prev) override final; // Не деалет ничего с предидущим сервисом. 
    bool setDPI(const Point &value) override;
    bool setStaticTabOrder(const bool value) override;

    bool AttachControl(IControl *control) override;
    bool InsertControl(IControl *control, const int before) override;
    bool DeleteControl(const int index) override;
    bool DeleteControl(IControl *control) override;
    bool DeleteControls() override;
    bool DetachControl(IControl *control) override;
    IControl *FindControl(const String &name, IControl *exclude = nullptr) override;

    void Release() override;
    void Repaint(const bool repaint_children) override;
    void Repaint(const RectF &rect, const bool convert) override;
    void Refresh(const bool refresh_children) override; // Ничего не делает. Наследуемые элементы управления, которые используют канву, должны переопределить этот метод и очищать канву 

    bool BringToFront() override;
    bool BringUp() override;
    bool BringDown() override;
    bool BringBefore(IControl *control) override;
    bool BringBefore(const int index) override;
    bool BringAfter(IControl *control) override;
    bool BringAfter(const int index) override;

    IControlService *QueryService() override final;

    PointF FormToLocal(const PointF &pos) override;
    PointF LocalToForm(const PointF &pos) override;

    // Действия с всплывающей подсказкой 
    bool ShowHint(const PointF &position) override;

    /**
    Конструктор 
    @param class_name Имя класса элемента управления(без "C" в начале) 
    @param accept_form Может ли элемент управления быть помещенным на форму непосредственно 
    @param accept_control Может ли элемент управления быть помещен на другой элемент управления 
    @param accept_controls Можно ли разместить другой элемент управления на этот элемент управления 
    @param accept_focus Может ли элемент управления получить фокус и получать сообщения клавиатуры 
    @param accept_modal Может ли элемент управления быть модальным 
    @param tab_stop Может ли элемент управления получить фокус с помощью клавиш Tab и Shift+Tab, когда он находится на форме, доступен и принимает фокус 
    @param design_dpi DPI при котором разрабатывался элемент управления 
    */
    CControl(
        const String &class_name,
        const bool accept_form,
        const bool accept_control,
        const bool accept_controls,
        const bool accept_focus,
        const bool accept_modal,
        const bool tab_stop,
        const Point &design_dpi = DesignDPI);
    ~CControl() override;
};
Пространство имен: nitisa
Включение: Nitisa/Core/Control.h