opynsim
Unofficial C++ Documentation
Loading...
Searching...
No Matches
widget_private.h
Go to the documentation of this file.
1#pragma once
2
6
7#include <string_view>
8
9#define OSC_OWNER_GETTERS(OwnerClass) \
10 const OwnerClass& owner() const { return reinterpret_cast<const OwnerClass&>(base_owner()); } \
11 OwnerClass& owner() { return reinterpret_cast<OwnerClass&>(base_owner()); }
12
13namespace osc
14{
16 public:
18 owner_{&owner},
19 parent_{parent}
20 {}
22
23 LifetimeWatcher lifetime_watcher() const { return lifetime_.watch(); }
24
25 Widget* parent() { return parent_; }
26 const Widget* parent() const { return parent_; }
27
28 void set_parent(Widget* new_parent) { parent_ = new_parent; }
29
30 CStringView name() const { return name_; }
31 void set_name(std::string_view name) { name_ = name; }
32
33 protected:
34 Widget& base_owner() { return *owner_; }
35 const Widget& base_owner() const { return *owner_; }
36
38
39 private:
40 Widget* owner_;
41 Widget* parent_;
42 SharedLifetimeBlock lifetime_;
43 std::string name_;
44 };
45}
Definition c_string_view.h:12
Definition lifetime_watcher.h:11
Definition shared_lifetime_block.h:10
LifetimeWatcher watch() const
Definition shared_lifetime_block.h:12
Definition widget_private.h:15
const Widget * parent() const
Definition widget_private.h:26
WidgetPrivate(Widget &owner, Widget *parent)
Definition widget_private.h:17
Widget * parent()
Definition widget_private.h:25
void set_parent(Widget *new_parent)
Definition widget_private.h:28
LifetimeWatcher lifetime_watcher() const
Definition widget_private.h:23
const Widget & base_owner() const
Definition widget_private.h:35
virtual ~WidgetPrivate() noexcept=default
OSC_OWNER_GETTERS(Widget)
void set_name(std::string_view name)
Definition widget_private.h:31
CStringView name() const
Definition widget_private.h:30
Widget & base_owner()
Definition widget_private.h:34
Definition widget.h:26
Definition custom_decoration_generator.h:5
constexpr U to(T &&value)
Definition conversion.h:56