Generated reference › API — ICoreSDK/ICoreStudio/StudioObjects/ICoreModelViews/CanvasArea
kind: generated#api#icoresdk-icorestudio-studioobjects-icoremodelviews-canvasarea

API — ICoreSDK/ICoreStudio/StudioObjects/ICoreModelViews/CanvasArea

The public contract of 9 header(s) under src/ICoreSDK/ICoreStudio/StudioObjects/ICoreModelViews/CanvasArea — 8 class/struct definition(s), 106 declaration(s). Each section shows the header's banner and its public (and protected-virtual) surface exactly as the file writes it.

ICoreCanvasArea.h#

src/ICoreSDK/ICoreStudio/StudioObjects/ICoreModelViews/CanvasArea/ICoreCanvasArea.h

Layer 4: canonical "remove me from the live model graph" (parent container + canvas/selection). Idempotent. Called by collectGarbage_CanvasArea so collection is self-sufficient.

ICoreCanvasArea#

ICoreCanvasArea.h:10 · class · pImpl · 27 declaration(s)

class ICoreCanvasArea {
public:
    explicit ICoreCanvasArea(ICoreSubsystemTreeNode* parent);

    std::string generateUniqueName(const std::string& prefix) const;

    void addToCanvas(ICoreCanvas* canvas) const;
    void freeFromCanvas();

    // Layer 4: canonical "remove me from the live model graph" (parent container + canvas/selection).
    // Idempotent. Called by collectGarbage_CanvasArea so collection is self-sufficient.
    void detachFromModel();

    void setParent(ICoreSubsystemTreeNode* newParent);
    void setName(const std::string& newName);

    ICoreCanvasObjectState* getState() const;
    void updateToState(ICoreCanvasObjectState* desiredState);

    void assignClonedProperties(ICoreCanvasArea* originalArea);

    ICoreSubsystemTreeNode* getParent();
    std::string getName();
    std::string getPath() const;

    ICoreCanvasAreaView* getCanvasAreaUI() const;

    void select();
    void deSelect();

    bool isSelected() const;

    std::string getClassID() const;

    void setTrashOrder(int newTrashOrder);
    int getTrashOrder() const;
    void increaseTrashOrder();
    void decreaseTrashOrder();

    void resetToInitialState(ICoreSubsystemTreeNode* parent);
    void kill();
    void setAlive();
    bool isAlive() const;

    ~ICoreCanvasArea();

private:
    class Impl;                    // the two-line residue; state lives here
    std::unique_ptr<Impl> impl;
};

ICoreCanvasAreaView.h#

src/ICoreSDK/ICoreStudio/StudioObjects/ICoreModelViews/CanvasArea/UI/ICoreCanvasAreaView.h

Q_OBJECT removed (P2.9d-3): this class declares no signal, slot, Q_PROPERTY or Q_INVOKABLE of its own, and nothing qobject_casts to it, holds a QPointer to it, animates it by name or reaches its metaObject(). It therefore had a meta-object nobody consulted -- and it could not keep one past P2.9d-5, when the base stops being a QObject.

ICoreCanvasAreaView#

ICoreCanvasAreaView.h:14 · class · bases public ICoreCanvasObjectsRoot · pImpl · 21 declaration(s)

class ICoreCanvasAreaView : public ICoreCanvasObjectsRoot {
public:
    explicit ICoreCanvasAreaView(ICoreGraphicsObject *parent = nullptr, ICoreCanvasArea* parentCanvasArea = nullptr);

    void reconstructDescendents() override;
    void setWidth(double width) override;
    void setHeight(double height) override;

    void assignClonedProperties(ICoreCanvasAreaView* originalArea);

    void updateAllChildrenPositions() override;

    void setAreaColor(const ICoreColor& newColor);
    ICoreColor getAreaColor() const;

    void setMouseOverRigidElementsValue(bool isHovering);

    ICoreCanvasArea* getParentCanvasArea() const;

    ICoreCanvasAreaViewTitleBar* getTitleBar() const;
    ICoreCanvasAreaViewToolBar* getToolBar() const;

    ICorePoint getPosRelativeToCanvasOrigin() const;

    bool isMouseOverRigidElements() override;

    void resetToInitialState(ICoreNativeItem* parent = nullptr, ICoreCanvasArea* parentCanvasArea = nullptr);
    void kill();
    void setAlive();
    bool isAlive() const;

    ~ICoreCanvasAreaView() override;

protected:
    // The tool bar is a hover affordance of this view: these fade it in and out
    // with the pointer. Both forward to the base first -- the resizer anchors
    // and the rigid-element flag hang off the same two hooks.
    //
    // The bar sits OUTSIDE this view's bounds (x = -40), so it could not keep
    // the pointer over the view by itself -- it does not have to. The scene
    // keeps an ancestor hovered while a descendant is, and the bar is a child
    // of this view, so reaching for a button never triggers the conceal.
    void pointerEntered(const ICoreMouseEvent& event) override;
    void pointerLeft() override;

private:
    class Impl;                    // the two-line residue; state lives here
    std::unique_ptr<Impl> impl;
};

ICoreCanvasAreaViewFrame.h#

src/ICoreSDK/ICoreStudio/StudioObjects/ICoreModelViews/CanvasArea/UI/ICoreCanvasAreaViewFrame.h

Q_OBJECT removed (P2.9d-3): this class declares no signal, slot, Q_PROPERTY or Q_INVOKABLE of its own, and nothing qobject_casts to it, holds a QPointer to it, animates it by name or reaches its metaObject(). It therefore had a meta-object nobody consulted -- and it could not keep one past P2.9d-5, when the base stops being a QObject.

ICoreCanvasAreaViewFrame#

ICoreCanvasAreaViewFrame.h:11 · class · bases public ICoreGraphicsObject · pImpl · 8 declaration(s)

class ICoreCanvasAreaViewFrame : public ICoreGraphicsObject {
public:
    explicit ICoreCanvasAreaViewFrame(ICoreCanvasAreaView* parent = nullptr, ICoreCanvasArea* grandParentCanvasArea = nullptr);

    ICoreRect contentBounds() const override;

    void paintContent(ICorePainter& painter) override;

    void setWidth(double width) override;
    void setHeight(double height);

    void setColor(const ICoreColor& color);

    void resetToInitialState(ICoreCanvasAreaView* parent = nullptr, ICoreCanvasArea* grandParentCanvasArea = nullptr);

    ~ICoreCanvasAreaViewFrame() override;

private:
    class Impl;                    // the two-line residue; state lives here
    std::unique_ptr<Impl> impl;
};

ICoreCanvasAreaViewTitleBar.h#

src/ICoreSDK/ICoreStudio/StudioObjects/ICoreModelViews/CanvasArea/UI/ICoreCanvasAreaViewTitleBar.h

Q_OBJECT removed (P2.9d-3): this class declares no signal, slot, Q_PROPERTY or Q_INVOKABLE of its own, and nothing qobject_casts to it, holds a QPointer to it, animates it by name or reaches its metaObject(). It therefore had a meta-object nobody consulted -- and it could not keep one past P2.9d-5, when the base stops being a QObject.

ICoreCanvasAreaViewTitleBar#

ICoreCanvasAreaViewTitleBar.h:15 · class · bases public ICoreGraphicsObject · pImpl · 17 declaration(s)

class ICoreCanvasAreaViewTitleBar : public ICoreGraphicsObject {
public:
    explicit ICoreCanvasAreaViewTitleBar(ICoreCanvasAreaView* parentCanvasAreaUI = nullptr);

    ICoreRect contentBounds() const override;

    void paintContent(ICorePainter& painter) override;

    void reconstructDescendents();

    void setTitleText(const std::string& newTitle) const;
    [[nodiscard]] std::string getTitleText() const;

    void setWidth(double width) override; // Height is always fixed

    double getWidth() const;
    double getHeight() const;

    ICoreRect getBoundsInCanvas() const;

    ICoreCanvasAreaViewTitleBarLabel* getTitleLabel() const;

    void resetToInitialState(ICoreCanvasAreaView* parentCanvasAreaUI = nullptr);

    ~ICoreCanvasAreaViewTitleBar() override;

protected:
    void pointerEntered(const ICoreMouseEvent& event) override;
    void pointerLeft() override;
    bool mousePressed(const ICoreMouseEvent& event) override;
    bool mouseMoved(const ICoreMouseEvent& event) override;
    bool mouseReleased(const ICoreMouseEvent& event) override;

private:
    class Impl;                    // the two-line residue; state lives here
    std::unique_ptr<Impl> impl;
};

ICoreCanvasAreaViewTitleBarLabel.h#

src/ICoreSDK/ICoreStudio/StudioObjects/ICoreModelViews/CanvasArea/UI/ICoreCanvasAreaViewTitleBarLabel.h

Declares no class of its own — see the file.

ICoreCanvasAreaViewToolBar.h#

src/ICoreSDK/ICoreStudio/StudioObjects/ICoreModelViews/CanvasArea/UI/ToolBar/ICoreCanvasAreaViewToolBar.h

Q_OBJECT removed (P2.9d-3): this class declares no signal, slot, Q_PROPERTY or Q_INVOKABLE of its own, and nothing qobject_casts to it, holds a QPointer to it, animates it by name or reaches its metaObject(). It therefore had a meta-object nobody consulted -- and it could not keep one past P2.9d-5, when the base stops being a QObject.

ICoreCanvasAreaViewToolBar#

ICoreCanvasAreaViewToolBar.h:20 · class · bases public ICoreGraphicsObject · pImpl · 15 declaration(s)

class ICoreCanvasAreaViewToolBar : public ICoreGraphicsObject {
public:
    explicit ICoreCanvasAreaViewToolBar(ICoreCanvasAreaView* parent = nullptr, ICoreCanvasArea* grandParentCanvasArea = nullptr);

    ICoreRect contentBounds() const override;

    void paintContent(ICorePainter& painter) override;

    void reconstructDescendents();

    void ungrabMouseFromAllButtons() const;

    // The bar is a HOVER affordance of the area it hangs off: it fades in when
    // the pointer is over the area view (the bar itself counts, since it is a
    // child of that view and the scene keeps an ancestor hovered while a
    // descendant is) and fades back out when the pointer leaves.
    //
    // ⚠ A bar faded to opacity 0 is still HIT-TESTABLE, so the fade-out ends in
    // hide() -- otherwise an invisible 40px column beside every area on the
    // canvas swallows clicks meant for the canvas underneath.
    void setRevealed(bool revealed);

    // The un-animated form, for the states nobody is watching: construction and
    // recycling. Leaves the bar hidden at zero opacity, which is where every
    // area starts.
    void concealImmediately();

    void setWidth(double width) override;
    void setHeight(double height);

    std::vector<ICoreCanvasAreaViewToolBarButton*> getChildrenButtons();
    double getPadding() const;

    void resetToInitialState(ICoreCanvasAreaView* parent = nullptr, ICoreCanvasArea* grandParentCanvasArea = nullptr);

    ~ICoreCanvasAreaViewToolBar() override;

protected:
    void pointerEntered(const ICoreMouseEvent& event) override;
    void pointerLeft() override;

private:
    class Impl;                    // the two-line residue; state lives here
    std::unique_ptr<Impl> impl;
};

ICoreCanvasAreaViewToolBarButton.h#

src/ICoreSDK/ICoreStudio/StudioObjects/ICoreModelViews/CanvasArea/UI/ToolBar/ICoreCanvasAreaViewToolBarButton.h

Q_OBJECT removed (P2.9d-3): this class declares no signal, slot, Q_PROPERTY or Q_INVOKABLE of its own, and nothing qobject_casts to it, holds a QPointer to it, animates it by name or reaches its metaObject(). It therefore had a meta-object nobody consulted -- and it could not keep one past P2.9d-5, when the base stops being a QObject.

ICoreCanvasAreaViewToolBarButton#

ICoreCanvasAreaViewToolBarButton.h:12 · class · bases public ICoreGraphicsObject · pImpl · 14 declaration(s)

class ICoreCanvasAreaViewToolBarButton : public ICoreGraphicsObject {
public:
    explicit ICoreCanvasAreaViewToolBarButton(ICoreCanvasAreaViewToolBar* parentToolBar = nullptr, ICoreCanvasArea* grandParentCanvasArea = nullptr);

    ICoreRect contentBounds() const override;

    void paintContent(ICorePainter& painter) override;

    void configureInfoLabel(ICoreGraphicsInfoLabel* infoLabel, const ICoreString &title,
                                        const ICoreString &technique, double delayDuration);

    void setWidth(double width) override;
    void setHeight(double height);

    void setIcon(const ICoreIcon& icon);

    void setHoldHoverStyle(bool newHoldHoverStyle);

    // Everything pointerLeft() does, for the times the pointer never leaves.
    // Hiding an item the pointer is sitting on does not reliably produce a
    // hover-leave, so a bar that conceals under the cursor -- which is exactly
    // what the subsystem button asks for -- would otherwise keep its hover fill
    // and leave its info label shown, both of which reappear the next time the
    // bar is revealed. Cheap when nothing is hovered.
    void resetHoverState();

    double getHeight() const;

    ~ICoreCanvasAreaViewToolBarButton() override;

protected:
    // virtual method can be overridden in derived button classes
    virtual void onClicked();

    bool mousePressed(const ICoreMouseEvent& event) override;
    void pointerEntered(const ICoreMouseEvent& event) override;
    void pointerLeft() override;

private:
    class Impl;                    // the two-line residue; state lives here
    std::unique_ptr<Impl> impl;
};

ICoreCanvasAreaViewToolBarButton_Color.h#

src/ICoreSDK/ICoreStudio/StudioObjects/ICoreModelViews/CanvasArea/UI/ToolBar/ICoreCanvasAreaViewToolBarButton_Color.h

ICoreCanvasAreaViewToolBarButton_Color#

ICoreCanvasAreaViewToolBarButton_Color.h:6 · class · bases public ICoreCanvasAreaViewToolBarButton · pImpl · 2 declaration(s)

class ICoreCanvasAreaViewToolBarButton_Color : public ICoreCanvasAreaViewToolBarButton {
public:
    explicit ICoreCanvasAreaViewToolBarButton_Color(ICoreCanvasAreaViewToolBar* parentToolBar = nullptr,
                        ICoreCanvasArea* grandParentCanvasArea = nullptr, ICoreGraphicsInfoLabel* infoLabel = nullptr);

    ~ICoreCanvasAreaViewToolBarButton_Color() override;

protected:
    void onClicked() override;

private:
    class Impl;                    // the two-line residue; state lives here
    std::unique_ptr<Impl> impl;
};

ICoreCanvasAreaViewToolBarButton_Subsystem.h#

src/ICoreSDK/ICoreStudio/StudioObjects/ICoreModelViews/CanvasArea/UI/ToolBar/ICoreCanvasAreaViewToolBarButton_Subsystem.h

ICoreCanvasAreaViewToolBarButton_Subsystem#

ICoreCanvasAreaViewToolBarButton_Subsystem.h:6 · class · final · bases public ICoreCanvasAreaViewToolBarButton · pImpl · 2 declaration(s)

class ICoreCanvasAreaViewToolBarButton_Subsystem final : public ICoreCanvasAreaViewToolBarButton {
public:
    explicit ICoreCanvasAreaViewToolBarButton_Subsystem(ICoreCanvasAreaViewToolBar* parentToolBar = nullptr,
                        ICoreCanvasArea* grandParentCanvasArea = nullptr, ICoreGraphicsInfoLabel* infoLabel = nullptr);

    ~ICoreCanvasAreaViewToolBarButton_Subsystem() override;

protected:
    void onClicked() override;

private:
    class Impl;                    // the two-line residue; state lives here
    std::unique_ptr<Impl> impl;
};