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.
| Header | Defines | Declarations | Bases |
|---|---|---|---|
ICoreCanvasArea.h | ICoreCanvasArea | 27 | — |
ICoreCanvasAreaView.h | ICoreCanvasAreaView | 21 | public ICoreCanvasObjectsRoot |
ICoreCanvasAreaViewFrame.h | ICoreCanvasAreaViewFrame | 8 | public ICoreGraphicsObject |
ICoreCanvasAreaViewTitleBar.h | ICoreCanvasAreaViewTitleBar | 17 | public ICoreGraphicsObject |
ICoreCanvasAreaViewTitleBarLabel.h | — | 0 | — |
ICoreCanvasAreaViewToolBar.h | ICoreCanvasAreaViewToolBar | 15 | public ICoreGraphicsObject |
ICoreCanvasAreaViewToolBarButton.h | ICoreCanvasAreaViewToolBarButton | 14 | public ICoreGraphicsObject |
ICoreCanvasAreaViewToolBarButton_Color.h | ICoreCanvasAreaViewToolBarButton_Color | 2 | public ICoreCanvasAreaViewToolBarButton |
ICoreCanvasAreaViewToolBarButton_Subsystem.h | ICoreCanvasAreaViewToolBarButton_Subsystem | 2 | public ICoreCanvasAreaViewToolBarButton |
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;
};