28 #include "BufferRef.h" 34 #include "Portability.h" 35 #include "StringRef.h" 40 #ifndef DOXYGEN_SHOULD_SKIP_THIS 280 return std::string(m_data, m_length);
289 void append(
const std::string& other);
295 std::size_t m_length;
296 std::size_t m_capacity;
452 static constexpr
unsigned DefaultCharacterSize = 13;
460 UI(
Font& font,
unsigned characterSize = DefaultCharacterSize);
470 UI(
const UI&) =
delete;
475 UI& operator=(
const UI&) =
delete;
480 UI(
UI&& other) noexcept;
485 UI& operator=(
UI&& other) noexcept;
494 void processEvent(
const Event& event);
501 void setCharacterSize(
unsigned characterSize);
538 RectF windowGetBounds();
557 void layoutRowDynamic(
float height,
int cols);
568 void layoutRowStatic(
float height,
int itemWidth,
int cols);
579 void layoutRowBegin(
UILayout format,
float height,
int cols);
588 void layoutRowPush(
float width);
613 void separator(
float height);
669 void groupScrolledEnd();
758 void image(
const Texture& texture,
const RectF& textureRect);
792 bool buttonPopBehavior();
812 bool buttonColor(
const Color4f& color);
854 bool checkbox(
StringRef title,
bool& active);
866 bool checkboxFlags(
StringRef title,
unsigned& flags,
unsigned value);
886 bool option(
StringRef title,
bool active);
897 bool radio(
StringRef title,
bool& active);
940 bool sliderFloat(
float min,
float& val,
float max,
float step);
953 bool sliderInt(
int min,
int& val,
int max,
int step);
989 bool colorPicker(
Color4f& color);
1012 void propertyInt(
const std::string& name,
int min,
int& val,
int max,
int step,
float incPerPixel);
1026 void propertyFloat(
const std::string& name,
float min,
float& val,
float max,
float step,
float incPerPixel);
1040 void propertyDouble(
const std::string& name,
double min,
double& val,
double max,
double step,
float incPerPixel);
1070 bool fileSelector(
UIBrowser& browser,
const std::string& title,
const RectF& bounds);
1127 void combobox(
const std::vector<std::string>& items,
int& selected,
int itemHeight,
Vector2f size);
1140 void comboboxSeparator(
const std::string& itemsSeparatedBySeparator,
char separator,
int& selected,
int itemHeight,
Vector2f size);
1265 void contextualClose();
1272 void contextualEnd();
1288 void tooltip(
const std::string& text);
1298 bool tooltipBegin(
float width);
1321 void menubarBegin();
1352 bool menuBeginSymbol(
const std::string&
id,
UISymbol symbol,
Vector2f size);
1414 RectF getWidgetBounds();
1423 bool isWidgetHovered();
1430 RectF getWindowBounds();
1439 bool isWindowHovered();
1446 void spacing(
int cols);
1480 void setState(State state);
1485 std::unique_ptr<UIImpl> m_impl;
1489 #ifndef DOXYGEN_SHOULD_SKIP_THIS 1493 #ifndef DOXYGEN_SHOULD_SKIP_THIS 1495 struct EnableBitmaskOperators<
UIWindow> {
1496 static constexpr
bool value =
true;
1500 struct EnableBitmaskOperators<
UIEdit> {
1501 static constexpr
bool value =
true;
1506 static constexpr
bool value =
true;
The window's scrollbar can hide automatically.
The window can be moved by the user.
The row has a dynamic layout.
The row has a static layout.
UILayout
Layout property for rows.
Definition: UI.h:87
The structure represents an internal node.
Edit widget is not active and is not being modified.
The button is active once.
Edit widget is currently being modified.
UIEditEvent
Properties for edit events.
Definition: UI.h:200
Base class for all render targets (window, texture, ...)
Definition: RenderTarget.h:73
UIPopup
Type of popup.
Definition: UI.h:245
StringRef asStringRef() const
Definition: UI.h:283
Define the states used for drawing to a RenderTarget.
Definition: RenderStates.h:82
Bitfield relying on an enumeration.
Definition: Flags.h:46
UIEditFilter
Filters for edit.
Definition: UI.h:220
UIProgress
State of the progress bar.
Definition: UI.h:132
std::string asString() const
Definition: UI.h:279
static const UIEditFlags Field
Definition: UI.h:191
The button is active as long as it is pressed.
UIPredefinedStyle
A predefined style.
Definition: UI.h:254
Context for an immediate mode graphical interface.
Definition: UI.h:447
Path currentPath
The current path for searching.
Definition: UI.h:237
The window is scalable by the user.
constexpr BufferRef< T > buffer(T *data, std::size_t size)
Create a reference to a buffer.
Definition: BufferRef.h:211
Abstract base class for objects that can be drawn to a render window.
Definition: Drawable.h:57
Edit widget has received an enter and lost focus.
UIAlignment
The alignment of the text.
Definition: UI.h:107
A texture for colored images.
Definition: Texture.h:301
static const UIEditFlags Box
Definition: UI.h:192
UIButtonBehavior
Behavior for buttons.
Definition: UI.h:123
Vector< unsigned, 2 > Vector2u
A unsigned vector with 2 components.
Definition: Vector.h:1168
Data for file selector.
Definition: UI.h:236
The window can be closed with an icon in the header.
A character buffer for edition.
Definition: UI.h:268
gf::Clipboard provides an interface for getting and setting the contents of the system clipboard...
Definition: Clipboard.h:67
The window can not scale, move or get focus.
The namespace for gf classes.
Definition: Action.h:35
A blue and light gray style.
A constant reference to an array and its size.
Definition: ArrayRef.h:43
A character font.
Definition: Font.h:109
The progress bar can be modified.
A 4D vector.
Definition: Vector.h:838
static const UIEditFlags Simple
Definition: UI.h:190
static const UIEditFlags Editor
Definition: UI.h:193
UICollapse
Collapse property of a tree.
Definition: UI.h:78
UIEdit
Properties for edit widgets.
Definition: UI.h:161
Edit widget went from state inactive to state active.
boost::filesystem::path Path
A path in the filesystem.
Definition: Path.h:44
The progress bar is fixed.
Predefined flags for edit.
Definition: UI.h:189
A constant reference to a string and its size.
Definition: StringRef.h:41
UISymbol
A representative symbol.
Definition: UI.h:141
The window is in the background.
The window has no scrollbar.
UITree
The type of tree.
Definition: UI.h:96
The window's scaler is on the left.
Defines a system event and its parameters.
Definition: Event.h:97
UIWindow
Properties for windows and window-like elements.
Definition: UI.h:52
A dark gray and dark blue style.
The window can be minimized with an icon in the header.
Edit widget went from state active to state inactive.
Path selectedPath
The selected path.
Definition: UI.h:238
The window has a title in the header.