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

API — ICoreSDK/ICoreStudio/StudioObjects/ICoreModelViews/Block

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

HeaderDefinesDeclarationsBases
ICoreBlockConfigView.hICoreBlockConfigView29public ICoreCanvasObjectsRoot
ICoreBlockCodeEditorWindow.hICoreBlockCodeEditorWindow2public ICoreWidget
ICoreBlockConfigView_ConfigDialog.hICoreBlockConfigView_ConfigDialog15public ICoreCanvasObjectsRoot
ICoreBlockConfigDialogContentPane.hICoreBlockConfigDialogContentPane13public ICoreGraphicsObject
ICoreBlockConfigDialogContentPaneEntry.hICoreBlockConfigDialogContentPaneEntry17public ICoreGraphicsItem
ICoreBlockConfigDialogContentPaneEntryComboBox.hICoreBlockConfigDialogContentPaneEntryComboBox6public ICoreGraphicsComboBox
ICoreBlockConfigDialogContentPaneEntryTextBox.hICoreBlockConfigDialogContentPaneEntryTextBox2public ICoreGraphicsBoxedText
ICoreBlockConfigDialogTitleBar.hICoreBlockConfigDialogTitleBar10public ICoreGraphicsObject
ICoreBlockConfigDialogTitleBarLabel.h0
ICoreBlockConfigDialogTitleBarShowDescButton.hICoreBlockConfigDialogTitleBarShowDescButton4public ICoreGraphicsButton
ICoreBlockConfigDialogToolBar.hICoreBlockConfigDialogToolBar12public ICoreGraphicsObject
ICoreBlockConfigDialogToolBarButton.hICoreBlockConfigDialogToolBarButton16public ICoreGraphicsObject
ICoreBlockConfigDialogToolBarButton_EditCode.hICoreBlockConfigDialogToolBarButton_EditCode2public ICoreBlockConfigDialogToolBarButton
ICoreBlockConfigDialogToolBarButton_Pin.hICoreBlockConfigDialogToolBarButton_Pin2public ICoreBlockConfigDialogToolBarButton
ICoreBlockConfigDialogToolBarButton_ShowHideName.hICoreBlockConfigDialogToolBarButton_ShowHideName2public ICoreBlockConfigDialogToolBarButton
ICoreBlockConfigView_DescriptionDialog.hICoreBlockConfigView_DescriptionDialog14public ICoreCanvasObjectsRoot
ICoreDescriptionDialogContentPanel.hICoreDescriptionDialogContentPanel6public ICoreGraphicsItem
ICoreDescriptionDialogTitleBar.hICoreDescriptionDialogTitleBar11public ICoreGraphicsObject
ICoreDescriptionDialogTitleBarLabel.h0
ICoreBlockConfigViewAddInputPortButton.hICoreBlockConfigViewAddInputPortButton10public ICoreGraphicsButton
ICoreBlockConfigViewAddOutputPortButton.hICoreBlockConfigViewAddOutputPortButton10public ICoreGraphicsButton
ICoreBlockConfigViewDeleteInputPortButton.hICoreBlockConfigViewDeleteInputPortButton10public ICoreGraphicsButton
ICoreBlockConfigViewDeleteOutputPortButton.hICoreBlockConfigViewDeleteOutputPortButton10public ICoreGraphicsButton
ICoreBlockConfigViewPortToolBar.hICoreBlockConfigViewPortToolBar12public ICoreGraphicsObject
ICoreBlockView.hICoreBlockView39public ICoreCanvasObjectsRoot
ICoreBlockViewConfigButton.hICoreBlockViewConfigButton3public ICoreGraphicsButton
ICoreBlockViewFaceLabel.hICoreBlockViewFaceLabel9public ICoreGraphicsText
ICoreBlockViewFrame.hICoreBlockViewFrame23public ICoreGraphicsObject
ICoreBlockViewFrameRenderer.hICoreBlockViewFrameRenderer9public ICoreWidget
ICoreBlockViewNameLabel.h0
ICoreBlockViewRotater.hICoreBlockViewRotater14public ICoreGraphicsObject
ICorePortsPosAligner.hICorePortsPosAligner9
ICorePortView.hICorePortView31public ICoreGraphicsObject
ICorePortViewDescriptionLabel.hICorePortViewDescriptionLabel11public ICoreGraphicsText
ICorePortViewSignalTypeLabel.h0

ICoreBlockConfigView.h#

src/ICoreSDK/ICoreStudio/StudioObjects/ICoreModelViews/Block/BlockConfigUI/ICoreBlockConfigView.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.

ICoreBlockConfigView#

ICoreBlockConfigView.h:18 · class · bases public ICoreCanvasObjectsRoot · pImpl · 29 declaration(s)

class ICoreBlockConfigView : public ICoreCanvasObjectsRoot {
public:
    explicit ICoreBlockConfigView(ICoreCanvas* parent, ICoreBlockConfigurator* parentBlockConfigurator);

    void animateConfigPaneShow();
    void animateDescriptionPaneShow() const;
    void animateDescriptionPaneHide() const;

    [[nodiscard]] bool isDescriptionPaneShown() const;
    void hide();
    void ensureAttachedToParentBlock();

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

    // Both re-anchor the two port tool bars, which hang off the CANVAS beside
    // this view rather than off this view -- see kToolBarZ in
    // ICoreBlockConfigViewPortToolBar.cpp. setPos() keeps them tracking the
    // scrim; reconstructDescendents() takes them back as children so the
    // garbage collector detaches them along with this view.
    void setPos(double newPosX, double newPosY) override;
    void reconstructDescendents() override;

    ICoreBlockConfigView_ConfigDialog* getConfigDialog() const;
    ICoreBlockConfigView_DescriptionDialog* getDescriptionDialog() const;

    [[nodiscard]] bool isShown() const;

    ICoreBlockConfigViewAddInputPortButton *getAddInputPortButton() const;

    ICoreBlockConfigViewAddOutputPortButton *getAddOutputPortButton() const;

    ICoreBlockConfigViewDeleteInputPortButton *getDeleteInputPortButton() const;

    ICoreBlockConfigViewDeleteOutputPortButton *getDeleteOutputPortButton() const;

    [[nodiscard]] double getPadding() const;

    void resetToInitialState(ICoreCanvas* parent, ICoreBlockConfigurator* parentBlockConfigurator);
    void kill();
    void setAlive();
    bool isAlive() const;

    // The two halves of the configuration overlay, from block.config* — see the
    // note on those tokens for why the state takes two treatments rather than
    // one wash. The scrim is what the backdrop over the block wears; the pane
    // is what the parameter and description dialogs wear.
    static void applyConfigScrimTo(ICoreCanvasObjectsRoot* target);
    static void applyConfigPaneTo(ICoreCanvasObjectsRoot* target);

    // The raised plate a tool bar in this UI stands on. Three bars wear it now —
    // the config dialog's, and the two port bars beside the block — so it is
    // painted from one place rather than from three copies of the same gradient
    // and the same two alphas.
    static void paintToolBarPlate(ICorePainter& painter, const ICoreRect& bounds);

    ICoreBlockConfigViewPortToolBar* getInputPortToolBar() const;
    ICoreBlockConfigViewPortToolBar* getOutputPortToolBar() const;

    ~ICoreBlockConfigView() override;

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

ICoreBlockCodeEditorWindow.h#

src/ICoreSDK/ICoreStudio/StudioObjects/ICoreModelViews/Block/BlockConfigUI/CodeEditorWindow/ICoreBlockCodeEditorWindow.h

ICoreBlockCodeEditorWindow#

ICoreBlockCodeEditorWindow.h:18 · class · bases public ICoreWidget · pImpl · 2 declaration(s)

Top-level editor window for a block's designated source-code config variable (ICoreBlockConfigurator::getCodeEditorVariableName), opened from the config dialog's "Edit Code" toolbar button.

class ICoreBlockCodeEditorWindow : public ICoreWidget {
public:
    explicit ICoreBlockCodeEditorWindow(ICoreBlockConfigurator* blockConfigurator);

    ~ICoreBlockCodeEditorWindow() override;

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

ICoreBlockConfigView_ConfigDialog.h#

src/ICoreSDK/ICoreStudio/StudioObjects/ICoreModelViews/Block/BlockConfigUI/ConfigDialog/ICoreBlockConfigView_ConfigDialog.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.

ICoreBlockConfigView_ConfigDialog#

ICoreBlockConfigView_ConfigDialog.h:15 · class · bases public ICoreCanvasObjectsRoot · pImpl · 15 declaration(s)

class ICoreBlockConfigView_ConfigDialog : public ICoreCanvasObjectsRoot {
public:
    explicit ICoreBlockConfigView_ConfigDialog(ICoreCanvas* parentCanvas, ICoreBlockConfigurator* parentBlockConfigurator,
                    ICoreBlockConfigView* grandParentConfigUI);

    void animateShow(const ICoreRect &blockBounds, double padding);
    void animateToDelete();

    void reconstructDescendents() override;

    void triggerScroll(double scrollDelta) const;

    void setWidth(double newWidth) override;
    void setHeight(double newHeight) override;

    ICoreBlockConfigDialogContentPane *getContentPane() const;

    ICoreBlockConfigDialogTitleBar* getTitleBar() const;

    ICoreCanvas* getCanvas() const;

    ICoreBlockConfigurator* getBlockConfigurator() const;

    void resetToInitialState(ICoreCanvas* parentCanvas, ICoreBlockConfigurator* parentBlockConfigurator, ICoreBlockConfigView* grandParentConfigUI);
    void kill();
    void setAlive();
    bool isAlive() const;

    ~ICoreBlockConfigView_ConfigDialog() override;

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

ICoreBlockConfigDialogContentPane.h#

src/ICoreSDK/ICoreStudio/StudioObjects/ICoreModelViews/Block/BlockConfigUI/ConfigDialog/ContentPane/ICoreBlockConfigDialogContentPane.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.

ICoreBlockConfigDialogContentPane#

ICoreBlockConfigDialogContentPane.h:14 · class · bases public ICoreGraphicsObject · pImpl · 13 declaration(s)

class ICoreBlockConfigDialogContentPane : public ICoreGraphicsObject {
public:
    explicit ICoreBlockConfigDialogContentPane(ICoreBlockConfigView_ConfigDialog* parentDialog, ICoreBlockConfigurator* grandParentBlockConfigurator);

    ICoreRect contentBounds() const override;

    void paintContent(ICorePainter& painter) override;

    void populateWithConfigVariables();

    // Push every config variable's current value back into its entry (values only;
    // no rebuild). For changes made outside the dialog while it is visible.
    void refreshEntryValuesFromConfigVariables() const;

    void updateEntriesPositions() const;

    void clearAllEntries();

    void setWidth(double newWidth) const;

    // void setHeight(double newHeight) const;

    void setHeight(double newHeight);

    ICoreBlockConfigView_ConfigDialog* getParentDialog() const;

    void printEntries() const;

    void resetToInitialState(ICoreBlockConfigView_ConfigDialog* parentDialog, ICoreBlockConfigurator* grandParentBlockConfigurator);

    ~ICoreBlockConfigDialogContentPane() override;

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

ICoreBlockConfigDialogContentPaneEntry.h#

src/ICoreSDK/ICoreStudio/StudioObjects/ICoreModelViews/Block/BlockConfigUI/ConfigDialog/ContentPane/ICoreBlockConfigDialogContentPaneEntry.h

contentBounds(), not boundingRect(): after ICoreGraphicsItem's conversion the QGraphicsItem is its Impl, which does not derive from this class, so a boundingRect() override here would never be called by anything.

ICoreBlockConfigDialogContentPaneEntry#

ICoreBlockConfigDialogContentPaneEntry.h:13 · class · bases public ICoreGraphicsItem · pImpl · 17 declaration(s)

class ICoreBlockConfigDialogContentPaneEntry : public ICoreGraphicsItem {
public:
    explicit ICoreBlockConfigDialogContentPaneEntry(ICoreBlockConfigDialogContentPane* parentDialogContentPane,
         ICoreBlockConfigVariable* variable);

    // contentBounds(), not boundingRect(): after ICoreGraphicsItem's conversion
    // the QGraphicsItem is its Impl, which does not derive from this class, so
    // a boundingRect() override here would never be called by anything.
    ICoreRect contentBounds() const override;

    void paintContent(ICorePainter& painter) override;

    void updateBlockConfigWithUserEntry() const;

    // Inverse of updateBlockConfigWithUserEntry: push the config variable's current
    // value back into the value box (used when the variable is changed from outside
    // the dialog, e.g. by a recipe command, while the dialog is visible).
    void refreshValueFromConfigVariable() const;

    ICoreGraphicsBoxedText* getNameTextBox() const;
    ICoreGraphicsBoxedText* getValueTextBox() const;

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

    void setWidth(double newWidth) override;

    std::string castOptionsToString();

    ICoreBlockConfigDialogContentPane* getParentDialogContentPane() const;

    ICoreBlockConfigVariable* getAssociatedConfigVariable() const;

    void resetToInitialState(ICoreBlockConfigDialogContentPane* parentDialogContentPane, ICoreBlockConfigVariable* variable);
    void kill();
    void setAlive();
    bool isAlive() const;

    ~ICoreBlockConfigDialogContentPaneEntry() override;

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

ICoreBlockConfigDialogContentPaneEntryComboBox.h#

src/ICoreSDK/ICoreStudio/StudioObjects/ICoreModelViews/Block/BlockConfigUI/ConfigDialog/ContentPane/ICoreBlockConfigDialogContentPaneEntryComboBox.h

ICoreBlockConfigDialogContentPaneEntryComboBox#

ICoreBlockConfigDialogContentPaneEntryComboBox.h:8 · class · bases public ICoreGraphicsComboBox · pImpl · 6 declaration(s)

class ICoreBlockConfigDialogContentPaneEntryComboBox : public ICoreGraphicsComboBox {
public:
    explicit ICoreBlockConfigDialogContentPaneEntryComboBox(ICoreBlockConfigDialogContentPaneEntry* parentEntry);

    void setChosenOption(const std::string& newChosenOption) override;

    void animateComboDialogHide() override;
    void animateComboDialogShow() override;

    void resetToInitialState_BlockConfigDialogContentPaneEntryComboBox(ICoreBlockConfigDialogContentPaneEntry* parentEntry);

    ~ICoreBlockConfigDialogContentPaneEntryComboBox() override;

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

ICoreBlockConfigDialogContentPaneEntryTextBox.h#

src/ICoreSDK/ICoreStudio/StudioObjects/ICoreModelViews/Block/BlockConfigUI/ConfigDialog/ContentPane/ICoreBlockConfigDialogContentPaneEntryTextBox.h

ICoreBlockConfigDialogContentPaneEntryTextBox#

ICoreBlockConfigDialogContentPaneEntryTextBox.h:9 · class · bases public ICoreGraphicsBoxedText · pImpl · 2 declaration(s)

class ICoreBlockConfigDialogContentPaneEntryTextBox : public ICoreGraphicsBoxedText {
public:
    explicit ICoreBlockConfigDialogContentPaneEntryTextBox(
        ICoreBlockConfigDialogContentPaneEntry* parentEntry);

    void resetToInitialState_BlockConfigDialogContentPaneEntryTextBox(
        ICoreBlockConfigDialogContentPaneEntry* parentEntry);

    ~ICoreBlockConfigDialogContentPaneEntryTextBox() override;

protected:
    void focusLosing(const ICoreFocusEvent& event) override;

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

ICoreBlockConfigDialogTitleBar.h#

src/ICoreSDK/ICoreStudio/StudioObjects/ICoreModelViews/Block/BlockConfigUI/ConfigDialog/TitleBar/ICoreBlockConfigDialogTitleBar.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.

ICoreBlockConfigDialogTitleBar#

ICoreBlockConfigDialogTitleBar.h:16 · class · bases public ICoreGraphicsObject · pImpl · 10 declaration(s)

class ICoreBlockConfigDialogTitleBar : public ICoreGraphicsObject {
public:
    explicit ICoreBlockConfigDialogTitleBar(ICoreBlockConfigView_ConfigDialog* parentDialog,
            ICoreBlockConfigurator* grandParentConfigurator, ICoreBlockConfigView* grandParentConfigUI);

    ICoreRect contentBounds() const override;

    void paintContent(ICorePainter& painter) override;

    void reconstructDescendents();

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

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

    ICoreRect getBoundsInCanvas() const;

    ICoreBlockConfigDialogTitleBarShowDescButton* getInfoButton() const;

    void resetToInitialState(ICoreBlockConfigView_ConfigDialog* parentDialog,
            ICoreBlockConfigurator* grandParentConfigurator, ICoreBlockConfigView* grandParentConfigUI);

    ~ICoreBlockConfigDialogTitleBar() override;

protected:
    void pointerEntered(const ICoreMouseEvent& event) override;
    void pointerLeft() override;
    // void mousePressEvent(QGraphicsSceneMouseEvent *event) override;
    // void mouseMoveEvent(QGraphicsSceneMouseEvent *event) override;
    // void mouseReleaseEvent(QGraphicsSceneMouseEvent *event) override;

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

ICoreBlockConfigDialogTitleBarLabel.h#

src/ICoreSDK/ICoreStudio/StudioObjects/ICoreModelViews/Block/BlockConfigUI/ConfigDialog/TitleBar/ICoreBlockConfigDialogTitleBarLabel.h

Declares no class of its own — see the file.

ICoreBlockConfigDialogTitleBarShowDescButton.h#

src/ICoreSDK/ICoreStudio/StudioObjects/ICoreModelViews/Block/BlockConfigUI/ConfigDialog/TitleBar/ICoreBlockConfigDialogTitleBarShowDescButton.h

ICoreBlockConfigDialogTitleBarShowDescButton#

ICoreBlockConfigDialogTitleBarShowDescButton.h:9 · class · bases public ICoreGraphicsButton · pImpl · 4 declaration(s)

class ICoreBlockConfigDialogTitleBarShowDescButton : public ICoreGraphicsButton {
public:
    explicit ICoreBlockConfigDialogTitleBarShowDescButton(
        ICoreBlockConfigDialogTitleBar* parentTitleBar, ICoreBlockConfigView* blockConfigUI);

    void updatePosition();

    void resetToInitialState(ICoreBlockConfigDialogTitleBar* parentTitleBar, ICoreBlockConfigView* blockConfigUI);

    ~ICoreBlockConfigDialogTitleBarShowDescButton() override;

protected:
    bool mousePressed(const ICoreMouseEvent& event) override;

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

ICoreBlockConfigDialogToolBar.h#

src/ICoreSDK/ICoreStudio/StudioObjects/ICoreModelViews/Block/BlockConfigUI/ConfigDialog/ToolBar/ICoreBlockConfigDialogToolBar.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.

ICoreBlockConfigDialogToolBar#

ICoreBlockConfigDialogToolBar.h:22 · class · bases public ICoreGraphicsObject · pImpl · 12 declaration(s)

class ICoreBlockConfigDialogToolBar : public ICoreGraphicsObject {
public:
    explicit ICoreBlockConfigDialogToolBar(ICoreBlockConfigView_ConfigDialog* parentBlockConfigDialog = nullptr);

    ICoreRect contentBounds() const override;

    void paintContent(ICorePainter& painter) override;

    void reconstructDescendents();

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

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

    void resetToInitialState(ICoreBlockConfigView_ConfigDialog* parentBlockConfigDialog = nullptr);

    ~ICoreBlockConfigDialogToolBar() 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;
};

ICoreBlockConfigDialogToolBarButton.h#

src/ICoreSDK/ICoreStudio/StudioObjects/ICoreModelViews/Block/BlockConfigUI/ConfigDialog/ToolBar/ICoreBlockConfigDialogToolBarButton.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.

ICoreBlockConfigDialogToolBarButton#

ICoreBlockConfigDialogToolBarButton.h:13 · class · bases public ICoreGraphicsObject · pImpl · 16 declaration(s)

class ICoreBlockConfigDialogToolBarButton : public ICoreGraphicsObject {
public:
    explicit ICoreBlockConfigDialogToolBarButton(ICoreBlockConfigDialogToolBar *parentToolBar = nullptr, ICoreBlockConfigView_ConfigDialog* grandParentConfigDialog = nullptr);

    ICoreRect contentBounds() const override;

    void paintContent(ICorePainter& painter) override;

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

    void animateShow();
    void animateHide() const;

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

    void setIcon(const ICoreIcon& icon);

    void setHoldHoverStyle(bool newHoldHoverStyle);

    double getHeight() const;

    void resetToInitialState_ConfigDialogToolBarButton(ICoreBlockConfigDialogToolBar *parentToolBar = nullptr, ICoreBlockConfigView_ConfigDialog* grandParentConfigDialog = nullptr);

    ~ICoreBlockConfigDialogToolBarButton() 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;
};

ICoreBlockConfigDialogToolBarButton_EditCode.h#

src/ICoreSDK/ICoreStudio/StudioObjects/ICoreModelViews/Block/BlockConfigUI/ConfigDialog/ToolBar/ICoreBlockConfigDialogToolBarButton_EditCode.h

ICoreBlockConfigDialogToolBarButton_EditCode#

ICoreBlockConfigDialogToolBarButton_EditCode.h:11 · class · bases public ICoreBlockConfigDialogToolBarButton · pImpl · 2 declaration(s)

Opens an ICoreBlockCodeEditorWindow for the block's designated source-code config variable.

class ICoreBlockConfigDialogToolBarButton_EditCode : public ICoreBlockConfigDialogToolBarButton {
public:
    explicit ICoreBlockConfigDialogToolBarButton_EditCode(ICoreBlockConfigDialogToolBar* parentToolBar = nullptr,
                        ICoreBlockConfigView_ConfigDialog* grandParentBlockConfigDialog = nullptr, ICoreGraphicsInfoLabel* infoLabel = nullptr);

    void resetToInitialState(ICoreBlockConfigDialogToolBar* parentToolBar = nullptr,
                        ICoreBlockConfigView_ConfigDialog* grandParentBlockConfigDialog = nullptr, ICoreGraphicsInfoLabel* infoLabel = nullptr);

    ~ICoreBlockConfigDialogToolBarButton_EditCode() override;

protected:
    void onClicked() override;

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

ICoreBlockConfigDialogToolBarButton_Pin.h#

src/ICoreSDK/ICoreStudio/StudioObjects/ICoreModelViews/Block/BlockConfigUI/ConfigDialog/ToolBar/ICoreBlockConfigDialogToolBarButton_Pin.h

ICoreBlockConfigDialogToolBarButton_Pin#

ICoreBlockConfigDialogToolBarButton_Pin.h:8 · class · bases public ICoreBlockConfigDialogToolBarButton · pImpl · 2 declaration(s)

class ICoreBlockConfigDialogToolBarButton_Pin : public ICoreBlockConfigDialogToolBarButton {
public:
    explicit ICoreBlockConfigDialogToolBarButton_Pin(ICoreBlockConfigDialogToolBar* parentToolBar = nullptr,
                        ICoreBlockConfigView_ConfigDialog* grandParentBlockConfigDialog = nullptr, ICoreGraphicsInfoLabel* infoLabel = nullptr);

    void resetToInitialState(ICoreBlockConfigDialogToolBar* parentToolBar = nullptr,
                        ICoreBlockConfigView_ConfigDialog* grandParentBlockConfigDialog = nullptr, ICoreGraphicsInfoLabel* infoLabel = nullptr);

    ~ICoreBlockConfigDialogToolBarButton_Pin() override;

protected:
    void onClicked() override;

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

ICoreBlockConfigDialogToolBarButton_ShowHideName.h#

src/ICoreSDK/ICoreStudio/StudioObjects/ICoreModelViews/Block/BlockConfigUI/ConfigDialog/ToolBar/ICoreBlockConfigDialogToolBarButton_ShowHideName.h

ICoreBlockConfigDialogToolBarButton_ShowHideName#

ICoreBlockConfigDialogToolBarButton_ShowHideName.h:9 · class · bases public ICoreBlockConfigDialogToolBarButton · pImpl · 2 declaration(s)

class ICoreBlockConfigDialogToolBarButton_ShowHideName : public ICoreBlockConfigDialogToolBarButton {
public:
    explicit ICoreBlockConfigDialogToolBarButton_ShowHideName(ICoreBlockConfigDialogToolBar* parentToolBar = nullptr,
                        ICoreBlockConfigView_ConfigDialog* grandParentBlockConfigDialog = nullptr, ICoreGraphicsInfoLabel* infoLabel = nullptr);

    void resetToInitialState(ICoreBlockConfigDialogToolBar* parentToolBar = nullptr,
                        ICoreBlockConfigView_ConfigDialog* grandParentBlockConfigDialog = nullptr, ICoreGraphicsInfoLabel* infoLabel = nullptr);

    ~ICoreBlockConfigDialogToolBarButton_ShowHideName() override;

protected:
    void onClicked() override;

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

ICoreBlockConfigView_DescriptionDialog.h#

src/ICoreSDK/ICoreStudio/StudioObjects/ICoreModelViews/Block/BlockConfigUI/DescriptionDialog/ICoreBlockConfigView_DescriptionDialog.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.

ICoreBlockConfigView_DescriptionDialog#

ICoreBlockConfigView_DescriptionDialog.h:15 · class · bases public ICoreCanvasObjectsRoot · pImpl · 14 declaration(s)

class ICoreBlockConfigView_DescriptionDialog : public ICoreCanvasObjectsRoot {
public:
    explicit ICoreBlockConfigView_DescriptionDialog(ICoreCanvas* parentCanvas, ICoreBlockConfigurator* parentBlockConfigurator);

    void animateShow(const ICoreRect& configDialogBounds);
    void animateHide();

    // Whether the panel is currently open. Tracked here rather than read off
    // isVisible() so it stays the dialog's own answer, and so the Info button can
    // toggle against it.
    [[nodiscard]] bool isShown() const;

    void reconstructDescendents() override;

    void triggerScroll(double scrollDelta) const;

    void setWidth(double newWidth) override;
    void setHeight(double newHeight) override;

    ICoreCanvas* getCanvas() const;

    void resetToInitialState(ICoreCanvas* parentCanvas, ICoreBlockConfigurator* parentBlockConfigurator);
    void kill();
    void setAlive();
    bool isAlive() const;

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

ICoreDescriptionDialogContentPanel.h#

src/ICoreSDK/ICoreStudio/StudioObjects/ICoreModelViews/Block/BlockConfigUI/DescriptionDialog/ICoreDescriptionDialogContentPanel.h

contentBounds(), not boundingRect(): after ICoreGraphicsItem's conversion the QGraphicsItem is its Impl, which does not derive from this class, so a boundingRect() override here would never be called by anything.

ICoreDescriptionDialogContentPanel#

ICoreDescriptionDialogContentPanel.h:14 · class · bases public ICoreGraphicsItem · pImpl · 6 declaration(s)

class ICoreDescriptionDialogContentPanel : public ICoreGraphicsItem {
public:
    explicit ICoreDescriptionDialogContentPanel(ICoreBlockConfigView_DescriptionDialog* parentDialog,
        ICoreBlockConfigurator* parentBlockConfigurator, const std::string& descText);

    // contentBounds(), not boundingRect(): after ICoreGraphicsItem's conversion
    // the QGraphicsItem is its Impl, which does not derive from this class, so
    // a boundingRect() override here would never be called by anything.
    ICoreRect contentBounds() const override;

    void paintContent(ICorePainter& painter) override;

    void reconstructDescendents();

    void autoUpdateHeight();

    void setWidth(double newWidth) override;

    void resetToInitialState(ICoreBlockConfigView_DescriptionDialog* parentDialog,
        ICoreBlockConfigurator* parentBlockConfigurator, const std::string& descText);

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

ICoreDescriptionDialogTitleBar.h#

src/ICoreSDK/ICoreStudio/StudioObjects/ICoreModelViews/Block/BlockConfigUI/DescriptionDialog/TitleBar/ICoreDescriptionDialogTitleBar.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.

ICoreDescriptionDialogTitleBar#

ICoreDescriptionDialogTitleBar.h:15 · class · bases public ICoreGraphicsObject · pImpl · 11 declaration(s)

class ICoreDescriptionDialogTitleBar : public ICoreGraphicsObject {
public:
    explicit ICoreDescriptionDialogTitleBar(ICoreBlockConfigView_DescriptionDialog* parentDialog, ICoreBlockConfigurator* grandParentConfigurator);

    ICoreRect contentBounds() const override;

    void paintContent(ICorePainter& painter) override;
    void reconstructDescendents();
    void setWidth(double width) override; // Height is always fixed
    double getWidth() const;
    double getHeight() const;
    ICoreRect getBoundsInCanvas() const;
    void resetToInitialState(ICoreBlockConfigView_DescriptionDialog* parentDialog, ICoreBlockConfigurator* grandParentConfigurator);

    ~ICoreDescriptionDialogTitleBar() override;

protected:
    void pointerEntered(const ICoreMouseEvent& event) override;
    void pointerLeft() override;
    // void mousePressEvent(QGraphicsSceneMouseEvent *event) override;
    // void mouseMoveEvent(QGraphicsSceneMouseEvent *event) override;
    // void mouseReleaseEvent(QGraphicsSceneMouseEvent *event) override;
private:
    class Impl;                    // the two-line residue; state lives here
    std::unique_ptr<Impl> impl;
};

ICoreDescriptionDialogTitleBarLabel.h#

src/ICoreSDK/ICoreStudio/StudioObjects/ICoreModelViews/Block/BlockConfigUI/DescriptionDialog/TitleBar/ICoreDescriptionDialogTitleBarLabel.h

Declares no class of its own — see the file.

ICoreBlockConfigViewAddInputPortButton.h#

src/ICoreSDK/ICoreStudio/StudioObjects/ICoreModelViews/Block/BlockConfigUI/RootUIFloatingButtons/ICoreBlockConfigViewAddInputPortButton.h

ICoreBlockConfigViewAddInputPortButton#

ICoreBlockConfigViewAddInputPortButton.h:14 · class · bases public ICoreGraphicsButton · pImpl · 10 declaration(s)

class ICoreBlockConfigViewAddInputPortButton : public ICoreGraphicsButton {
public:
    explicit ICoreBlockConfigViewAddInputPortButton(ICoreBlockConfigView* graphicsParent, ICoreBlockConfigurator* parentBlockConfigurator);

    // The tool bar hands over its shared hover label and the side it opens on.
    void setInfoLabel(ICoreGraphicsInfoLabel* infoLabel, const ICoreString& technique);

    void resetToInitialState(ICoreBlockConfigView* graphicsParent, ICoreBlockConfigurator* parentBlockConfigurator);
    void kill();
    void setAlive();
    bool isAlive() const;

    ~ICoreBlockConfigViewAddInputPortButton() override;

protected:
    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;
};

ICoreBlockConfigViewAddOutputPortButton.h#

src/ICoreSDK/ICoreStudio/StudioObjects/ICoreModelViews/Block/BlockConfigUI/RootUIFloatingButtons/ICoreBlockConfigViewAddOutputPortButton.h

ICoreBlockConfigViewAddOutputPortButton#

ICoreBlockConfigViewAddOutputPortButton.h:14 · class · bases public ICoreGraphicsButton · pImpl · 10 declaration(s)

class ICoreBlockConfigViewAddOutputPortButton : public ICoreGraphicsButton {
public:
    explicit ICoreBlockConfigViewAddOutputPortButton(ICoreBlockConfigView* graphicsParent, ICoreBlockConfigurator* parentBlockConfigurator);

    // The tool bar hands over its shared hover label and the side it opens on.
    void setInfoLabel(ICoreGraphicsInfoLabel* infoLabel, const ICoreString& technique);

    void resetToInitialState(ICoreBlockConfigView* graphicsParent, ICoreBlockConfigurator* parentBlockConfigurator);
    void kill();
    void setAlive();
    bool isAlive() const;

    ~ICoreBlockConfigViewAddOutputPortButton() override;

protected:
    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;
};

ICoreBlockConfigViewDeleteInputPortButton.h#

src/ICoreSDK/ICoreStudio/StudioObjects/ICoreModelViews/Block/BlockConfigUI/RootUIFloatingButtons/ICoreBlockConfigViewDeleteInputPortButton.h

ICoreBlockConfigViewDeleteInputPortButton#

ICoreBlockConfigViewDeleteInputPortButton.h:14 · class · bases public ICoreGraphicsButton · pImpl · 10 declaration(s)

class ICoreBlockConfigViewDeleteInputPortButton : public ICoreGraphicsButton {
public:
    explicit ICoreBlockConfigViewDeleteInputPortButton(ICoreBlockConfigView* graphicsParent, ICoreBlockConfigurator* parentBlockConfigurator);

    // The tool bar hands over its shared hover label and the side it opens on.
    void setInfoLabel(ICoreGraphicsInfoLabel* infoLabel, const ICoreString& technique);

    void resetToInitialState(ICoreBlockConfigView* graphicsParent, ICoreBlockConfigurator* parentBlockConfigurator);
    void kill();
    void setAlive();
    bool isAlive() const;

    ~ICoreBlockConfigViewDeleteInputPortButton() override;

protected:
    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;
};

ICoreBlockConfigViewDeleteOutputPortButton.h#

src/ICoreSDK/ICoreStudio/StudioObjects/ICoreModelViews/Block/BlockConfigUI/RootUIFloatingButtons/ICoreBlockConfigViewDeleteOutputPortButton.h

ICoreBlockConfigViewDeleteOutputPortButton#

ICoreBlockConfigViewDeleteOutputPortButton.h:14 · class · bases public ICoreGraphicsButton · pImpl · 10 declaration(s)

class ICoreBlockConfigViewDeleteOutputPortButton : public ICoreGraphicsButton {
public:
    explicit ICoreBlockConfigViewDeleteOutputPortButton(ICoreBlockConfigView* graphicsParent, ICoreBlockConfigurator* parentBlockConfigurator);

    // The tool bar hands over its shared hover label and the side it opens on.
    void setInfoLabel(ICoreGraphicsInfoLabel* infoLabel, const ICoreString& technique);

    void resetToInitialState(ICoreBlockConfigView* graphicsParent, ICoreBlockConfigurator* parentBlockConfigurator);
    void kill();
    void setAlive();
    bool isAlive() const;

    ~ICoreBlockConfigViewDeleteOutputPortButton() override;

protected:
    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;
};

ICoreBlockConfigViewPortToolBar.h#

src/ICoreSDK/ICoreStudio/StudioObjects/ICoreModelViews/Block/BlockConfigUI/RootUIFloatingButtons/ICoreBlockConfigViewPortToolBar.h

ICoreBlockConfigViewPortToolBar#

ICoreBlockConfigViewPortToolBar.h:25 · class · bases public ICoreGraphicsObject · pImpl · 12 declaration(s)

The plate the two port buttons stand on, one per side of the block being configured.

class ICoreBlockConfigViewPortToolBar : public ICoreGraphicsObject {
public:
    // Which side of the block the bar hangs off. It decides the horizontal
    // anchor and nothing else — both sides stack their pair identically.
    enum class Side { Input, Output };

    explicit ICoreBlockConfigViewPortToolBar(ICoreBlockConfigView* graphicsParent, Side side);

    // The dialog tool bar's button treatment, applied to a port button: icon
    // only, no fill, no caption, and the nav-item wash on hover — what
    // ICoreBlockConfigDialogToolBarButton paints for Pin, Show-Hide Name and
    // Edit Code. Static, and here rather than in each button, because the four
    // port buttons are four unrelated classes that must not drift apart.
    static void applyButtonTheme(ICoreGraphicsButton* button, const ICoreString& iconPath);

    // The bar's shared hover label — the wording the buttons used to carry as a
    // caption. It is a CHILD OF THE BAR on purpose: showInfoLabel() positions
    // itself in the shared parent's coordinates, so a label parented anywhere
    // else lands in the wrong place.
    ICoreGraphicsInfoLabel* getInfoLabel() const;

    // Which side of the button the hover label opens on — "leftMiddle" for the
    // input bar, which hangs off the block's left, and the default right-hand
    // placement for the output bar. Callers pass it straight to showInfoLabel().
    ICoreString getInfoLabelTechnique() const;

    ICoreRect contentBounds() const override;

    void paintContent(ICorePainter& painter) override;

    // Adopts the pair, sizes the plate around it and lays it out. Either
    // argument may be nullptr, which empties and hides the bar.
    void setButtons(ICoreGraphicsButton* addButton, ICoreGraphicsButton* deleteButton);

    // Re-anchors the plate against the scrim's current size. The scrim calls
    // this from its setWidth()/setHeight(), which is where the four buttons
    // used to be re-placed one at a time.
    void updatePosition();

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

    void resetToInitialState(ICoreBlockConfigView* graphicsParent);

    ~ICoreBlockConfigViewPortToolBar() override;

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

ICoreBlockView.h#

src/ICoreSDK/ICoreStudio/StudioObjects/ICoreModelViews/Block/BlockUI/ICoreBlockView.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.

ICoreBlockView#

ICoreBlockView.h:21 · class · final · bases public ICoreCanvasObjectsRoot · pImpl · 39 declaration(s)

class ICoreBlockView final : public ICoreCanvasObjectsRoot {
public:

    // enum { Type = QGraphicsItem::UserType + 1 };
    // int type() const override { return Type; }

    explicit ICoreBlockView(ICoreGraphicsObject *parent = nullptr, ICoreBlock* parentBlock = nullptr);

    void prepareGeometryChange_public();
    void updateAllChildrenPositions() override;
    [[nodiscard]] std::optional<ICorePoint> getPositionInScreen() const;
    void reconstructDescendents() override;

    void updateAllMouseListenersValues() override;
    void updateAllPortsBoundsInCanvas() const;

    void setPos(double newPosX, double newPosY) override;
    void setWidth(double width) override;
    void setHeight(double height) override;
    void setRotation(double angle);

    void setAllowUserEditingPortDescLabels(bool newValue);

    void setCommentedOutStyle(bool commentedOut);
    // Re-reads the parent block's name property and the global name-label mode, and
    // shows or hides the label accordingly. Not a setter: under an AlwaysShow /
    // AlwaysHide override the block's own property does not get the last word.
    void refreshNameLabelVisibility() const;

    // The live readout centred on the block's face. Empty text hides it.
    //
    // GUI THREAD ONLY -- the values come off the solver thread and the hop is
    // ICoreBlock::setFaceText()'s, which is also what a block should call.
    void setFaceText(const ICoreString& text) const;

    // Whether this block carries a readout plate at all. Off by default, so
    // only a block type that says so wears one.
    void setFaceReadoutVisible(bool visible) const;

    // Whether the block type's registered art is painted on the face. Off for
    // a block whose face is taken by its readout -- see the frame's note on why
    // this is a paint switch and not an unregistration.
    void setFaceIconVisible(bool visible) const;

    void updateMinHeightAccordingToNumberOfPorts();
    void assignClonedProperties(const ICoreBlockView* originalBlockUI);
    void setTriangleFrame();
    void setCircleFrame();
    [[nodiscard]] bool isMouseOnBlock() const;
    [[nodiscard]] ICoreRect getRotatedBounds() const;

    [[nodiscard]] ICoreBlockViewFrame* getBlockFrame() const;
    [[nodiscard]] ICorePortsPosAligner* getPortsPosAligner() const;
    [[nodiscard]] double getRotation() const;
    [[nodiscard]] ICorePoint getCenterCoords_Global() const;
    [[nodiscard]] ICoreBlock* getParentBlock() const;
    [[nodiscard]] ICoreBlockViewNameLabel* getNameLabel() const;
    [[nodiscard]] ICoreBlockViewFaceLabel* getFaceLabel() const;
    [[nodiscard]] bool getAllowUserEditingPortDescLabels() const;

    [[nodiscard]] ICorePoint getPosRelativeToCanvasOrigin() const;

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

    ~ICoreBlockView() override;

    void pointerLeft() override;

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

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

ICoreBlockViewConfigButton.h#

src/ICoreSDK/ICoreStudio/StudioObjects/ICoreModelViews/Block/BlockUI/ICoreBlockViewConfigButton.h

ICoreBlockViewConfigButton#

ICoreBlockViewConfigButton.h:9 · class · final · bases public ICoreGraphicsButton · pImpl · 3 declaration(s)

class ICoreBlockViewConfigButton final : public ICoreGraphicsButton {
public:
    explicit ICoreBlockViewConfigButton(ICoreBlock* parentBlock);

    ~ICoreBlockViewConfigButton() override;

protected:
    bool mousePressed(const ICoreMouseEvent& event) override;

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

ICoreBlockViewFaceLabel.h#

src/ICoreSDK/ICoreStudio/StudioObjects/ICoreModelViews/Block/BlockUI/ICoreBlockViewFaceLabel.h

ICoreBlockViewFaceLabel#

ICoreBlockViewFaceLabel.h:28 · class · final · bases public ICoreGraphicsText · pImpl · 9 declaration(s)

The live readout a block paints on its OWN FACE, centred in the frame.

class ICoreBlockViewFaceLabel final : public ICoreGraphicsText {
public:
    explicit ICoreBlockViewFaceLabel(ICoreBlockView* parentBlockUI);

    // Whether this block has a readout at all. Off by default -- otherwise
    // every block on the canvas would wear an empty plate. A block type turns
    // it on once, from its solver environment's constructor.
    void setReadoutVisible(bool visible);

    // The value on the plate. Empty text leaves an EMPTY PLATE showing, not a
    // hidden one: a readout with nothing to read still looks like a readout,
    // and whether there is a plate at all is setReadoutVisible()'s question.
    void setText(const ICoreString& text);

    void updatePosition();
    void applyDefaultStyle();
    // Re-lays the document out and pins the plate to at least its minimum
    // width, so a short value is centred rather than shrink-wrapped.
    void applyPlateSizing();

    void resetToInitialState(ICoreBlockView* parentBlockUI);

    ~ICoreBlockViewFaceLabel() override;

protected:
    // The readout's own ground: a rounded, bordered plate under the digits, in
    // the field tokens -- which is what this is, a box holding a value the user
    // cannot type into. Drawn here rather than in paintContent because anything
    // painted there lands ON TOP of the text (ICoreGraphicsText.h).
    void paintBackground(ICorePainter& painter) override;

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

ICoreBlockViewFrame.h#

src/ICoreSDK/ICoreStudio/StudioObjects/ICoreModelViews/Block/BlockUI/ICoreBlockViewFrame.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.

ICoreBlockViewFrame#

ICoreBlockViewFrame.h:18 · class · bases public ICoreGraphicsObject · pImpl · 23 declaration(s)

class ICoreBlockViewFrame : public ICoreGraphicsObject {
public:
     explicit ICoreBlockViewFrame(ICoreBlockView* parent = nullptr, ICoreBlock* grandParentBlock = nullptr);

    ICoreRect contentBounds() const override;

    void paintContent(ICorePainter& painter) override;

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

    void setIcon(const ICorePixmap& icon);

    // Whether this frame paints the block type's registered art on its face.
    //
    // ⚠ It suppresses the PAINT, never the registration. The art is still
    // there for the library palette, the auto-inserter button and -- the one
    // that would bite -- ICoreRecipeInterpreter's block-type validity test,
    // which asks getBlockIconSVG() != nullptr. A block whose face is taken by
    // a live readout turns this off; it does not unregister its icon.
    void setIconVisible(bool visible);

    void setCircleShape();
    void setTriangleShape();

    void setFrameToIconBindingRatio(const double &ratio);

    void setBackgroundColor(const int& r, const int& g, const int& b);
    void setFillColor(const int& r, const int& g, const int& b);

    std::string getFrameShape();
    double getWidth() const;
    double getHeight() const;

    bool isCircle() const;

    void resetToInitialState(ICoreBlockView* parent = nullptr, ICoreBlock* grandParentBlock = nullptr);

    ~ICoreBlockViewFrame() override;

protected:
    bool mousePressed(const ICoreMouseEvent& event) override;
    bool mouseMoved(const ICoreMouseEvent& event) override;
    bool mouseReleased(const ICoreMouseEvent& event) override;
    bool mouseDoubleClicked(const ICoreMouseEvent& event) override;
    bool contextMenuRequested(const ICoreMouseEvent& event) override;

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

ICoreBlockViewFrameRenderer.h#

src/ICoreSDK/ICoreStudio/StudioObjects/ICoreModelViews/Block/BlockUI/ICoreBlockViewFrameRenderer.h

ICoreBlockViewFrameRenderer#

ICoreBlockViewFrameRenderer.h:13 · class · final · bases public ICoreWidget · pImpl · 9 declaration(s)

class ICoreBlockViewFrameRenderer final : public ICoreWidget {
public:
    explicit ICoreBlockViewFrameRenderer(const std::string& fullBlockType);
    void setCircleShape();
    void setTriangleShape();
    void setFillColor(const ICoreColor& color);
    void setBorderColor(const ICoreColor& color);
    void setIcon(const ICorePixmap &pixmap);
    void setIconBindingRatio(double ratio);

    ~ICoreBlockViewFrameRenderer() override;

protected:
    void paintContent(ICorePainter& painter) override;

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

ICoreBlockViewNameLabel.h#

src/ICoreSDK/ICoreStudio/StudioObjects/ICoreModelViews/Block/BlockUI/ICoreBlockViewNameLabel.h

Declares no class of its own — see the file.

ICoreBlockViewRotater.h#

src/ICoreSDK/ICoreStudio/StudioObjects/ICoreModelViews/Block/BlockUI/ICoreBlockViewRotater.h

No Q_OBJECT since P2.9d-5e: the base is not a QObject, and the by-name anchor fade this macro served died at P2.9d-5d.

ICoreBlockViewRotater#

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

class ICoreBlockViewRotater : public ICoreGraphicsObject {
public:
    explicit ICoreBlockViewRotater(ICoreBlockView* parentBlockUI = nullptr);

    ICoreRect contentBounds() const override;

    void paintContent(ICorePainter& painter) override;

    void updatePosition();

    void showAnchor();
    void hideAnchor();
    void animateAnchor(double startOpacity, double endOpacity, int duration);

    void resetToInitialState(ICoreBlockView* parentBlockUI = nullptr);

    ~ICoreBlockViewRotater() override;

protected:

    // Hover events
    void pointerEntered(const ICoreMouseEvent& event) override;
    void pointerLeft() override;

    // Mouse events
    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;
};

ICorePortsPosAligner.h#

src/ICoreSDK/ICoreStudio/StudioObjects/ICoreModelViews/Block/BlockUI/ICorePortsPosAligner.h

ICorePortsPosAligner#

ICorePortsPosAligner.h:9 · class · pImpl · 9 declaration(s)

class ICorePortsPosAligner {
public:
    explicit ICorePortsPosAligner(ICoreBlock* parentBlock, ICoreBlockViewFrame* parentBlockFrame);
    void updatePortsPosition();
    void storePortUI(ICorePortView* portUI, bool isOutputPort, std::string preferredPortFacing);
    void updatePortsLabelsRotation() const;
    void updateAllLinksOnPortsMove(bool blockTranslating = false) const;
    void checkPortOut(ICorePort* portToCheckOut);

    void checkAllPortsOut();

    void resetToInitialState(ICoreBlock* parentBlock, ICoreBlockViewFrame* parentBlockFrame);
    ~ICorePortsPosAligner();

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

ICorePortView.h#

src/ICoreSDK/ICoreStudio/StudioObjects/ICoreModelViews/Block/PortUI/ICorePortView.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.

ICorePortView#

ICorePortView.h:17 · class · bases public ICoreGraphicsObject · pImpl · 31 declaration(s)

class ICorePortView : public ICoreGraphicsObject {
public:
    explicit ICorePortView(ICoreBlockViewFrame* parent = nullptr, ICorePort* parentPort = nullptr, ICoreBlockView* grandParentBlockUI = nullptr);

    ICoreRect contentBounds() const override;

    void paintContent(ICorePainter& painter) override;

    void assignClonedProperties(ICorePortView* originalPortUI) const;

    void setRotation(double angle);
    void setRelatedBaseCoordinates(ICorePoint newBaseCoordinates);
    void setActualFacing(const std::string& actualFacing);

    void setConnectedStyle();
    void setUnconnectedStyle();

    void updateBoundsInCanvas();

    std::string getActualFacing();
    void recenterTransformOrigin();
    bool isOutputPort();
    ICorePortViewDescriptionLabel* getDescriptionLabel() const;
    ICorePoint getBaseCoordinatesToCanvas();
    std::pair<ICorePoint, ICorePoint> getConnectionCoordinates();

    ICorePort* getParentPort() const;

    ICoreRect getBoundsInCanvas() const;

    double getFacingAngle_rad();

    double getAwayFromPortDistance() const;

    ICorePortViewSignalTypeLabel* getSignalTypeLabel() const;

    void resetToInitialState(ICoreBlockViewFrame* parent = nullptr, ICorePort* parentPort = nullptr, ICoreBlockView* grandParentBlockUI = nullptr);
    void kill();
    void setAlive();
    bool isAlive() const;

    ~ICorePortView() 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;
};

ICorePortViewDescriptionLabel.h#

src/ICoreSDK/ICoreStudio/StudioObjects/ICoreModelViews/Block/PortUI/ICorePortViewDescriptionLabel.h

ICorePortViewDescriptionLabel#

ICorePortViewDescriptionLabel.h:10 · class · bases public ICoreGraphicsText · pImpl · 11 declaration(s)

class ICorePortViewDescriptionLabel : public ICoreGraphicsText {
public:
    explicit ICorePortViewDescriptionLabel(ICoreBlockViewFrame* graphicsParent, ICorePortView* parentPortUI);

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

    void updateWirelessPortPairedToDescLabel() const;

    void resetToInitialState(ICoreBlockViewFrame* graphicsParent, ICorePortView* parentPortUI);

    ~ICorePortViewDescriptionLabel() override;

protected:
    bool mousePressed(const ICoreMouseEvent& event) override;
    bool contextMenuRequested(const ICoreMouseEvent& event) override;
    bool focusGaining(const ICoreFocusEvent& event) override;
    void focusLosing(const ICoreFocusEvent& event) override;
    void focusLost(const ICoreFocusEvent& event) override;

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

ICorePortViewSignalTypeLabel.h#

src/ICoreSDK/ICoreStudio/StudioObjects/ICoreModelViews/Block/PortUI/ICorePortViewSignalTypeLabel.h

Declares no class of its own — see the file.