17#ifndef DGL_IMAGE_BASE_WIDGETS_HPP_INCLUDED
18#define DGL_IMAGE_BASE_WIDGETS_HPP_INCLUDED
20#include "EventHandlers.hpp"
21#include "StandaloneWindow.hpp"
22#include "SubWidget.hpp"
38template <
class ImageType>
83template <
class ImageType>
85 public ButtonEventHandler
92 virtual void imageButtonClicked(ImageBaseButton* imageButton,
int button) = 0;
95 explicit ImageBaseButton(Widget* parentWidget,
const ImageType& image);
96 explicit ImageBaseButton(Widget* parentWidget,
const ImageType& imageNormal,
const ImageType& imageDown);
97 explicit ImageBaseButton(Widget* parentWidget,
const ImageType& imageNormal,
const ImageType& imageHover,
const ImageType& imageDown);
99 ~ImageBaseButton()
override;
101 void setCallback(
Callback* callback)
noexcept;
110 PrivateData*
const pData;
112 DAF_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(ImageBaseButton)
129template <
class ImageType>
131 public KnobEventHandler
138 virtual void imageKnobDragStarted(ImageBaseKnob* imageKnob) = 0;
139 virtual void imageKnobDragFinished(ImageBaseKnob* imageKnob) = 0;
140 virtual void imageKnobValueChanged(ImageBaseKnob* imageKnob,
float value) = 0;
141 virtual void imageKnobDoubleClicked(ImageBaseKnob*) {};
144 explicit ImageBaseKnob(Widget* parentWidget,
const ImageType& image, Orientation orientation = Vertical)
noexcept;
145 explicit ImageBaseKnob(
const ImageBaseKnob& imageKnob);
146 ImageBaseKnob& operator=(
const ImageBaseKnob& imageKnob);
147 ~ImageBaseKnob()
override;
149 void setCallback(
Callback* callback)
noexcept;
150 void setImageLayerCount(uint count)
noexcept;
151 void setRotationAngle(
int angle);
152 bool setValue(
float value,
bool sendCallback =
false) noexcept override;
162 PrivateData* const pData;
164 DAF_LEAK_DETECTOR(ImageBaseKnob)
171template <class ImageType>
179 virtual void imageSliderDragStarted(ImageBaseSlider* imageSlider) = 0;
180 virtual void imageSliderDragFinished(ImageBaseSlider* imageSlider) = 0;
181 virtual void imageSliderValueChanged(ImageBaseSlider* imageSlider,
float value) = 0;
184 explicit ImageBaseSlider(Widget* parentWidget,
const ImageType& image)
noexcept;
185 ~ImageBaseSlider()
override;
187 float getValue() const noexcept;
188 void setValue(
float value,
bool sendCallback = false) noexcept;
189 void setDefault(
float def) noexcept;
191 void setStartPos(const
Point<
int>& startPos) noexcept;
192 void setStartPos(
int x,
int y) noexcept;
193 void setEndPos(const
Point<
int>& endPos) noexcept;
194 void setEndPos(
int x,
int y) noexcept;
196 void setCheckable(
bool checkable) noexcept;
197 void setInverted(
bool inverted) noexcept;
198 void setRange(
float min,
float max) noexcept;
199 void setStep(
float step) noexcept;
201 void setCallback(
Callback* callback) noexcept;
210 PrivateData* const pData;
213 void setAbsoluteX(
int) const noexcept {}
218 DAF_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(ImageBaseSlider)
223template <
class ImageType>
231 virtual void imageSwitchClicked(ImageBaseSwitch* imageSwitch,
bool down) = 0;
234 explicit ImageBaseSwitch(Widget* parentWidget,
const ImageType& imageNormal,
const ImageType& imageDown)
noexcept;
235 explicit ImageBaseSwitch(
const ImageBaseSwitch& imageSwitch)
noexcept;
236 ImageBaseSwitch& operator=(
const ImageBaseSwitch& imageSwitch)
noexcept;
237 ~ImageBaseSwitch()
override;
239 bool isDown() const noexcept;
240 void setDown(
bool down) noexcept;
242 void setCallback(
Callback* callback) noexcept;
250 PrivateData* const pData;
252 DAF_LEAK_DETECTOR(ImageBaseSwitch)
void setImage(const ImageType &image)
bool onKeyboard(const KeyboardEvent &) override
void onDisplay() override
ImageBaseAboutWindow(TopLevelWidget *topLevelWidget, const ImageType &image=ImageType())
bool onMouse(const MouseEvent &) override
ImageBaseAboutWindow(Window &transientParentWindow, const ImageType &image=ImageType())
Definition ImageBaseWidgets.hpp:135
bool onMouse(const MouseEvent &) override
void onDisplay() override
bool onMotion(const MotionEvent &) override
bool onScroll(const ScrollEvent &) override
Definition ImageBaseWidgets.hpp:176
bool onMotion(const MotionEvent &) override
void onDisplay() override
bool onMouse(const MouseEvent &) override
Definition ImageBaseWidgets.hpp:228
bool onMouse(const MouseEvent &) override
void onDisplay() override
Definition Geometry.hpp:41
StandaloneWindow(Application &app)
Definition StandaloneWindow.hpp:34