ImFusion SDK 4.3
InteractiveViewOptionsOverlay Class Reference

#include <ImFusion/GUI/InteractiveViewOptionsOverlay.h>

Button overlay for InteractiveView that allows for setting up the view or display options of the view. More...

+ Inheritance diagram for InteractiveViewOptionsOverlay:

Detailed Description

Button overlay for InteractiveView that allows for setting up the view or display options of the view.

The settings are shown in a custom styled popup menu when clicking the button. This class currently supports ImageView2D and ImageView3D.

Public Types

enum class  Type { ViewOptions , DisplayOptions }
 Type of settings to display in popup menu. More...
 
using DisplayOptionsWidgetCreator = std::function<std::unique_ptr<QWidget>(Data* data, GUI::DisplayBase& display, GUI::View& view)>
 
- Public Types inherited from InteractiveOverlay
enum  AnchorPoint {
  BottomLeft = int(Anchor::BottomLeft) , BottomRight = int(Anchor::BottomRight) , TopLeft = int(Anchor::TopLeft) , TopRight = int(Anchor::TopRight) ,
  Top = int(Anchor::Top) , Bottom = int(Anchor::Bottom) , Left = int(Anchor::Left) , Right = int(Anchor::Right) ,
  Fill = int(Anchor::Fill)
}
 Anchor point of the overlay in the hosting InteractiveView. More...
 
- Public Types inherited from ViewOverlay
enum class  Anchor {
  BottomLeft = 0 , BottomRight = 1 , TopLeft = 2 , TopRight = 3 ,
  Top = 4 , Bottom = 5 , Left = 6 , Right = 7 ,
  Fill = 8
}
 Anchor point of the overlay in the parent View. More...
 
enum class  LayoutDirection { Horizontal = 0 , Vertical = 1 }
 Layout direction when stacking multiple ViewOverlays at the same anchor.
 

Public Slots

void click () override
 
- Public Slots inherited from InteractiveButtonOverlay
virtual void click ()
 

Public Member Functions

 InteractiveViewOptionsOverlay (Type type, AnchorPoint anchor, GUI::DisplayBase &disp, GUI::View &view)
 Instantiate a button overlay to setup the given view.
 
void setDisplayOptionsWidgetCreator (DisplayOptionsWidgetCreator displayOptionsCreator)
 Sets a callback for creating the QWidget instance that should edit the display options.
 
DisplayOptionsWidgetCreator displayOptionsWidgetCreator () const
 Returns the current widget creator callback.
 
void setVisibleDisplayOptions2dSections (Flags< DisplayOptions2dWidget::Sections > visibleSections)
 Sets the list of all DisplayOptions2d widget sections to show.
 
void setVisibleDisplayOptions3dSections (Flags< DisplayOptions3dWidget::Sections > visibleSections)
 Sets the list of all DisplayOptions3d widget sections to show.
 
bool eventFilter (QObject *watched, QEvent *event) override
 
void setViewOptions3dWidgetCreator (std::function< QWidget *()> viewOpts3dWidget)
 Sets a factory function to create a custom widget for the 3d view-options This custom widget is created and used instead of the default ViewOptions3dWidget.
 
void set3dDisplayOptionsInvertVisible (bool visible)
 Sets the visibility of the "Invert" label and check-box of the 3d and 2d display options.
 
void set2dDisplayOptionsInvertVisible (bool visible)
 
Type type () const
 
- Public Member Functions inherited from InteractiveButtonOverlay
 InteractiveButtonOverlay (AnchorPoint anchor)
 
void setIcon (SharedImage *icon)
 Set the icon to use for the button.
 
void setIcon (std::shared_ptr< GlImage > icon)
 Set the icon to use for the button.
 
void setHighlight (bool highlight)
 Set the highlight status of the button.
 
- Public Member Functions inherited from InteractiveOverlay
 InteractiveOverlay (std::unique_ptr< GlOverlay > overlay, AnchorPoint anchor)
 Instantiate a new InteractiveOverlay taking ownership of the underlying GlOverlay.
 
 InteractiveOverlay (GlOverlay &overlay, AnchorPoint anchor)
 Instantiate a new InteractiveOverlay referencing the given overlay.
 
 InteractiveOverlay (GlOverlay *overlay, AnchorPoint anchor, bool ownOverlay=true)
 
const GlOverlayoverlay () const
 Get a pointer to the underlying overlay.
 
GlOverlayoverlay ()
 Get a pointer to the underlying overlay.
 
virtual void setInteraction (std::unique_ptr< OverlayInteraction > interaction)
 Set an interaction event handler for this overlay.
 
QRect rect () const
 Get position and actual size (including margins) of overlay in viewport coordinates.
 
void setMargin (int horizontal, int vertical)
 Sets the margin in pixels between the border of the drawing area and the border of the overlay content.
 
int horizontalMargin () const
 Gets the horizontal margin in pixels between the border of the drawing area and the border of the overlay content. Default is 2.
 
int verticalMargin () const
 Gets the vertical margin in pixels between the border of the drawing area and the border of the overlay content. Default is 2.
 
virtual void setSizeHint (int width, int height)
 Sets the preferred size of the overlay for a DPI scaling of 1.0.
 
virtual int sizeHintWidth () const
 Gets the preferred width of the overlay.
 
virtual int sizeHintHeight () const
 Gets the preferred height of the overlay.
 
virtual void setMinimalSizeHint (int width, int height)
 Sets the minimal size of the overlay for a DPI scaling of 1.0.
 
virtual int minimalSizeHintWidth () const
 Gets the minimal width of the overlay.
 
virtual int minimalSizeHintHeight () const
 Gets the minimal height of the overlay.
 
void setAnchorPoint (AnchorPoint anchorPoint)
 Set the anchor point of overlay.
 
AnchorPoint anchorPoint () const
 Get the anchor point of overlay.
 
virtual bool sceneEvent (QEvent *event)
 Called by the hosting InteractiveView, default implementation forwards it to the set OverlayInteraction.
 
GUI::EventResult handleInputEvent (const GUI::InputEvent &event) override
 Calls the base interface's version and then continues propagation to sceneEvent().
 
- Public Member Functions inherited from ViewOverlay
 ViewOverlay (std::unique_ptr< GlOverlay > glOverlay)
 Instantiate a new ViewOverlay taking ownership of the underlying GlOverlay which must not be null.
 
virtual void render ()
 Calls GlOverlay::render() on the underlying glOverlay() using the current viewport() shrinked by margin().
 
const GlOverlayglOverlay () const
 Get a pointer to the underlying overlay.
 
GlOverlayglOverlay ()
 Get a pointer to the underlying overlay.
 
const GL::Viewportviewport ()
 Returns the area where this overlay is rendered.
 
bool isVisible () const
 Returns the visibility of this overlay.
 
virtual void setVisible (bool value)
 Sets the visibility of this overlay.
 
const vec2i & margin () const
 Returns the margin in pixels between the border of the drawing area and the border of the overlay content.
 
void setMargin (const vec2i &value)
 Sets the margin in pixels between the border of the drawing area and the border of the overlay content.
 
vec2i minimalSizeHint () const
 Returns the underlying GlOverlay's minimal size hint plus the configured margin().
 
vec2i sizeHint () const
 Returns the underlying GlOverlay's size hint plus the configured margin().
 
void configure (const Properties *p) override
 Configure this object instance by de-serializing the given Properties.
 
void configuration (Properties *p) const override
 Serialize the current object configuration into the given Properties object.
 
- Public Member Functions inherited from Configurable
virtual void configureDefaults ()
 Retrieve the properties of this object, replaces values with their defaults and sets it again.
 
void registerParameter (ParameterBase *param)
 Register the given Parameter or SubProperty, so that it will be configured during configure()/configuration().
 
void unregisterParameter (const ParameterBase *param)
 Remove the given Parameter or SubProperty from the list of registered parameters.
 
 Configurable (const Configurable &rhs)
 
 Configurable (Configurable &&rhs) noexcept
 
Configurableoperator= (const Configurable &)
 
Configurableoperator= (Configurable &&) noexcept
 
- Public Member Functions inherited from SignalReceiver
 SignalReceiver ()=default
 Default constructor.
 
 SignalReceiver (const SignalReceiver &other)
 Copy constructor, does not copy any existing signal connections from other.
 
SignalReceiveroperator= (SignalReceiver rhs)
 Assignment operator, disconnects all existing connections, does not copy any existing signal connections from rhs.
 
virtual ~SignalReceiver ()
 Virtual destructor disconnects from all connected signals.
 

Protected Attributes

Type m_type
 Type of the settings to display.
 
GUI::DisplayBasem_disp
 DisplayWidget hosting the view.
 
GUI::Viewm_view
 The view to configure.
 
std::unique_ptr< QMenu > m_menu
 QMenu used for hosting the settings widget.
 
std::unique_ptr< SharedImagem_icon
 Icon used for the button overlay.
 
QWidget * m_displayOptionsWidget = nullptr
 pointer to current per-data display options GUI so that it can be replaced
 
std::function< std::unique_ptr< QWidget >(Data *data, GUI::DisplayBase &display, GUI::View &view)> m_displayOptionsCreator
 
std::function< QWidget *()> m_3dViewOptionsCreator = nullptr
 
bool m_3dDisplayOptionsInvertVisible = true
 
bool m_2dDisplayOptionsInvertVisible = true
 
Flags< DisplayOptions2dWidget::Sectionsm_visibleSections2d = DisplayOptions2dWidget::Sections::All
 
Flags< DisplayOptions3dWidget::Sectionsm_visibleSections3d = DisplayOptions3dWidget::Sections::All
 
- Protected Attributes inherited from InteractiveOverlay
GlOverlaym_overlay = nullptr
 Underlying GlOverlay.
 
std::unique_ptr< OverlayInteractionm_interaction
 Interaction class to handle overlay events.
 
AnchorPoint m_anchorPoint
 Anchor point within parent view.
 
bool m_ownOverlay = true
 Flag whether m_overlay is owned by this instance.
 
- Protected Attributes inherited from ViewOverlay
std::unique_ptr< GlOverlaym_glOverlay
 
GL::Viewport m_viewport = {}
 
vec2i m_margin = vec2i::Zero()
 
bool m_isVisible = true
 
- Protected Attributes inherited from Configurable
std::vector< Paramm_params
 List of all registered Parameter and SubProperty instances.
 

Additional Inherited Members

- Signals inherited from InteractiveButtonOverlay
void clicked ()
 NOTE: use Qt::QueuedConnection when your slot is blocking (like a QMenu), otherwise the mouse release event gets lost.
 
- Signals inherited from InteractiveOverlay
void anchorPointChanged (InteractiveOverlay::AnchorPoint anchorPoint)
 
- Public Attributes inherited from ViewOverlay
Signal signalUpdateRequested
 Emitted in order to notify the parent Display that it's contents have changed and need to be re-rendered.
 
Signal signalLayoutNeeded
 Emitted whenever the size hints or margin have changed to notify the parent View that it needs to perform overlay layouting.
 
- Public Attributes inherited from Configurable
Signal signalParametersChanged
 Emitted whenever one of the registered Parameters' or SubPropertys' signalValueChanged signal was emitted.
 
- Protected Member Functions inherited from InteractiveOverlay
void setOverlay (GlOverlay *overlay, bool ownOverlay)
 Update the internal GlOverlay.
 
- Protected Member Functions inherited from SignalReceiver
void disconnectAll ()
 Disconnects all existing connections.
 
- Properties inherited from InteractiveOverlay
InteractiveOverlay::AnchorPoint anchorPoint
 

Member Enumeration Documentation

◆ Type

enum class Type
strong

Type of settings to display in popup menu.

Enumerator
ViewOptions 

show the view options for the view

DisplayOptions 

show the display options for the view

Constructor & Destructor Documentation

◆ InteractiveViewOptionsOverlay()

Instantiate a button overlay to setup the given view.

The overlay's icon will be determined automatically based on the given type.

Member Function Documentation

◆ setDisplayOptionsWidgetCreator()

void setDisplayOptionsWidgetCreator ( DisplayOptionsWidgetCreator displayOptionsCreator)

Sets a callback for creating the QWidget instance that should edit the display options.

By default, DataDisplayDispatcher::createDisplayOptionsWidget for the view is used. nullptr is not a valid input.


The documentation for this class was generated from the following file:
Search Tab / S to search, Esc to close