mirror of
https://github.com/enduro2d/enduro2d.git
synced 2025-12-15 00:11:55 +07:00
component from component function
This commit is contained in:
@@ -94,6 +94,12 @@ namespace e2d
|
||||
|
||||
gobject owner() const noexcept;
|
||||
explicit operator bool() const noexcept;
|
||||
|
||||
template < typename U >
|
||||
gcomponent<U> component() noexcept;
|
||||
|
||||
template < typename U >
|
||||
const_gcomponent<U> component() const noexcept;
|
||||
private:
|
||||
gobject owner_;
|
||||
};
|
||||
@@ -116,6 +122,9 @@ namespace e2d
|
||||
|
||||
gobject owner() const noexcept;
|
||||
explicit operator bool() const noexcept;
|
||||
|
||||
template < typename U >
|
||||
const_gcomponent<U> component() const noexcept;
|
||||
private:
|
||||
gobject owner_;
|
||||
};
|
||||
@@ -239,6 +248,18 @@ namespace e2d
|
||||
gcomponent<T>::operator bool() const noexcept {
|
||||
return exists();
|
||||
}
|
||||
|
||||
template < typename T >
|
||||
template < typename U >
|
||||
gcomponent<U> gcomponent<T>::component() noexcept {
|
||||
return owner_.component<U>();
|
||||
}
|
||||
|
||||
template < typename T >
|
||||
template < typename U >
|
||||
const_gcomponent<U> gcomponent<T>::component() const noexcept {
|
||||
return owner_.component<U>();
|
||||
}
|
||||
}
|
||||
|
||||
namespace e2d
|
||||
@@ -294,4 +315,10 @@ namespace e2d
|
||||
const_gcomponent<T>::operator bool() const noexcept {
|
||||
return exists();
|
||||
}
|
||||
|
||||
template < typename T >
|
||||
template < typename U >
|
||||
const_gcomponent<U> const_gcomponent<T>::component() const noexcept {
|
||||
return owner_.component<U>();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -17,35 +17,35 @@ namespace e2d::bindings::high
|
||||
sol::no_constructor,
|
||||
|
||||
"enable", [](gcomponent<behaviour>& c){
|
||||
c.owner().component<disabled<behaviour>>().remove();
|
||||
c.component<disabled<behaviour>>().remove();
|
||||
},
|
||||
|
||||
"disable", [](gcomponent<behaviour>& c){
|
||||
c.owner().component<disabled<behaviour>>().ensure();
|
||||
c.component<disabled<behaviour>>().ensure();
|
||||
},
|
||||
|
||||
"enabled", sol::property(
|
||||
[](const gcomponent<behaviour>& c) -> bool {
|
||||
return !c.owner().component<disabled<behaviour>>().exists();
|
||||
return !c.component<disabled<behaviour>>().exists();
|
||||
},
|
||||
[](gcomponent<behaviour>& c, bool yesno){
|
||||
if ( yesno ) {
|
||||
c.owner().component<disabled<behaviour>>().remove();
|
||||
c.component<disabled<behaviour>>().remove();
|
||||
} else {
|
||||
c.owner().component<disabled<behaviour>>().ensure();
|
||||
c.component<disabled<behaviour>>().ensure();
|
||||
}
|
||||
}
|
||||
),
|
||||
|
||||
"disabled", sol::property(
|
||||
[](const gcomponent<behaviour>& c) -> bool {
|
||||
return c.owner().component<disabled<behaviour>>().exists();
|
||||
return c.component<disabled<behaviour>>().exists();
|
||||
},
|
||||
[](gcomponent<behaviour>& c, bool yesno){
|
||||
if ( yesno ) {
|
||||
c.owner().component<disabled<behaviour>>().ensure();
|
||||
c.component<disabled<behaviour>>().ensure();
|
||||
} else {
|
||||
c.owner().component<disabled<behaviour>>().remove();
|
||||
c.component<disabled<behaviour>>().remove();
|
||||
}
|
||||
}
|
||||
),
|
||||
|
||||
@@ -17,61 +17,61 @@ namespace e2d::bindings::high
|
||||
sol::no_constructor,
|
||||
|
||||
"enable", [](gcomponent<camera>& c){
|
||||
c.owner().component<disabled<camera>>().remove();
|
||||
c.component<disabled<camera>>().remove();
|
||||
},
|
||||
|
||||
"disable", [](gcomponent<camera>& c){
|
||||
c.owner().component<disabled<camera>>().ensure();
|
||||
c.component<disabled<camera>>().ensure();
|
||||
},
|
||||
|
||||
"enabled", sol::property(
|
||||
[](const gcomponent<camera>& c) -> bool {
|
||||
return !c.owner().component<disabled<camera>>().exists();
|
||||
return !c.component<disabled<camera>>().exists();
|
||||
},
|
||||
[](gcomponent<camera>& c, bool yesno){
|
||||
if ( yesno ) {
|
||||
c.owner().component<disabled<camera>>().remove();
|
||||
c.component<disabled<camera>>().remove();
|
||||
} else {
|
||||
c.owner().component<disabled<camera>>().ensure();
|
||||
c.component<disabled<camera>>().ensure();
|
||||
}
|
||||
}
|
||||
),
|
||||
|
||||
"disabled", sol::property(
|
||||
[](const gcomponent<camera>& c) -> bool {
|
||||
return c.owner().component<disabled<camera>>().exists();
|
||||
return c.component<disabled<camera>>().exists();
|
||||
},
|
||||
[](gcomponent<camera>& c, bool yesno){
|
||||
if ( yesno ) {
|
||||
c.owner().component<disabled<camera>>().ensure();
|
||||
c.component<disabled<camera>>().ensure();
|
||||
} else {
|
||||
c.owner().component<disabled<camera>>().remove();
|
||||
c.component<disabled<camera>>().remove();
|
||||
}
|
||||
}
|
||||
),
|
||||
|
||||
"input", sol::property(
|
||||
[](const gcomponent<camera>& c) -> bool {
|
||||
return c.owner().component<camera::input>().exists();
|
||||
return c.component<camera::input>().exists();
|
||||
},
|
||||
[](gcomponent<camera>& c, bool yesno){
|
||||
if ( yesno ) {
|
||||
c.owner().component<camera::input>().ensure();
|
||||
c.component<camera::input>().ensure();
|
||||
} else {
|
||||
c.owner().component<camera::input>().remove();
|
||||
c.component<camera::input>().remove();
|
||||
}
|
||||
}
|
||||
),
|
||||
|
||||
"gizmos", sol::property(
|
||||
[](const gcomponent<camera>& c) -> bool {
|
||||
return c.owner().component<camera::gizmos>().exists();
|
||||
return c.component<camera::gizmos>().exists();
|
||||
},
|
||||
[](gcomponent<camera>& c, bool yesno){
|
||||
if ( yesno ) {
|
||||
c.owner().component<camera::gizmos>().ensure();
|
||||
c.component<camera::gizmos>().ensure();
|
||||
} else {
|
||||
c.owner().component<camera::gizmos>().remove();
|
||||
c.component<camera::gizmos>().remove();
|
||||
}
|
||||
}
|
||||
),
|
||||
|
||||
@@ -19,35 +19,35 @@ namespace
|
||||
sol::no_constructor,
|
||||
|
||||
"enable", [](gcomponent<rect_collider>& c){
|
||||
c.owner().component<disabled<rect_collider>>().remove();
|
||||
c.component<disabled<rect_collider>>().remove();
|
||||
},
|
||||
|
||||
"disable", [](gcomponent<rect_collider>& c){
|
||||
c.owner().component<disabled<rect_collider>>().ensure();
|
||||
c.component<disabled<rect_collider>>().ensure();
|
||||
},
|
||||
|
||||
"enabled", sol::property(
|
||||
[](const gcomponent<rect_collider>& c) -> bool {
|
||||
return !c.owner().component<disabled<rect_collider>>().exists();
|
||||
return !c.component<disabled<rect_collider>>().exists();
|
||||
},
|
||||
[](gcomponent<rect_collider>& c, bool yesno){
|
||||
if ( yesno ) {
|
||||
c.owner().component<disabled<rect_collider>>().remove();
|
||||
c.component<disabled<rect_collider>>().remove();
|
||||
} else {
|
||||
c.owner().component<disabled<rect_collider>>().ensure();
|
||||
c.component<disabled<rect_collider>>().ensure();
|
||||
}
|
||||
}
|
||||
),
|
||||
|
||||
"disabled", sol::property(
|
||||
[](const gcomponent<rect_collider>& c) -> bool {
|
||||
return c.owner().component<disabled<rect_collider>>().exists();
|
||||
return c.component<disabled<rect_collider>>().exists();
|
||||
},
|
||||
[](gcomponent<rect_collider>& c, bool yesno){
|
||||
if ( yesno ) {
|
||||
c.owner().component<disabled<rect_collider>>().ensure();
|
||||
c.component<disabled<rect_collider>>().ensure();
|
||||
} else {
|
||||
c.owner().component<disabled<rect_collider>>().remove();
|
||||
c.component<disabled<rect_collider>>().remove();
|
||||
}
|
||||
}
|
||||
),
|
||||
@@ -75,35 +75,35 @@ namespace
|
||||
sol::no_constructor,
|
||||
|
||||
"enable", [](gcomponent<circle_collider>& c){
|
||||
c.owner().component<disabled<circle_collider>>().remove();
|
||||
c.component<disabled<circle_collider>>().remove();
|
||||
},
|
||||
|
||||
"disable", [](gcomponent<circle_collider>& c){
|
||||
c.owner().component<disabled<circle_collider>>().ensure();
|
||||
c.component<disabled<circle_collider>>().ensure();
|
||||
},
|
||||
|
||||
"enabled", sol::property(
|
||||
[](const gcomponent<circle_collider>& c) -> bool {
|
||||
return !c.owner().component<disabled<circle_collider>>().exists();
|
||||
return !c.component<disabled<circle_collider>>().exists();
|
||||
},
|
||||
[](gcomponent<circle_collider>& c, bool yesno){
|
||||
if ( yesno ) {
|
||||
c.owner().component<disabled<circle_collider>>().remove();
|
||||
c.component<disabled<circle_collider>>().remove();
|
||||
} else {
|
||||
c.owner().component<disabled<circle_collider>>().ensure();
|
||||
c.component<disabled<circle_collider>>().ensure();
|
||||
}
|
||||
}
|
||||
),
|
||||
|
||||
"disabled", sol::property(
|
||||
[](const gcomponent<circle_collider>& c) -> bool {
|
||||
return c.owner().component<disabled<circle_collider>>().exists();
|
||||
return c.component<disabled<circle_collider>>().exists();
|
||||
},
|
||||
[](gcomponent<circle_collider>& c, bool yesno){
|
||||
if ( yesno ) {
|
||||
c.owner().component<disabled<circle_collider>>().ensure();
|
||||
c.component<disabled<circle_collider>>().ensure();
|
||||
} else {
|
||||
c.owner().component<disabled<circle_collider>>().remove();
|
||||
c.component<disabled<circle_collider>>().remove();
|
||||
}
|
||||
}
|
||||
),
|
||||
@@ -131,35 +131,35 @@ namespace
|
||||
sol::no_constructor,
|
||||
|
||||
"enable", [](gcomponent<polygon_collider>& c){
|
||||
c.owner().component<disabled<polygon_collider>>().remove();
|
||||
c.component<disabled<polygon_collider>>().remove();
|
||||
},
|
||||
|
||||
"disable", [](gcomponent<polygon_collider>& c){
|
||||
c.owner().component<disabled<polygon_collider>>().ensure();
|
||||
c.component<disabled<polygon_collider>>().ensure();
|
||||
},
|
||||
|
||||
"enabled", sol::property(
|
||||
[](const gcomponent<polygon_collider>& c) -> bool {
|
||||
return !c.owner().component<disabled<polygon_collider>>().exists();
|
||||
return !c.component<disabled<polygon_collider>>().exists();
|
||||
},
|
||||
[](gcomponent<polygon_collider>& c, bool yesno){
|
||||
if ( yesno ) {
|
||||
c.owner().component<disabled<polygon_collider>>().remove();
|
||||
c.component<disabled<polygon_collider>>().remove();
|
||||
} else {
|
||||
c.owner().component<disabled<polygon_collider>>().ensure();
|
||||
c.component<disabled<polygon_collider>>().ensure();
|
||||
}
|
||||
}
|
||||
),
|
||||
|
||||
"disabled", sol::property(
|
||||
[](const gcomponent<polygon_collider>& c) -> bool {
|
||||
return c.owner().component<disabled<polygon_collider>>().exists();
|
||||
return c.component<disabled<polygon_collider>>().exists();
|
||||
},
|
||||
[](gcomponent<polygon_collider>& c, bool yesno){
|
||||
if ( yesno ) {
|
||||
c.owner().component<disabled<polygon_collider>>().ensure();
|
||||
c.component<disabled<polygon_collider>>().ensure();
|
||||
} else {
|
||||
c.owner().component<disabled<polygon_collider>>().remove();
|
||||
c.component<disabled<polygon_collider>>().remove();
|
||||
}
|
||||
}
|
||||
),
|
||||
|
||||
@@ -17,24 +17,24 @@ namespace e2d::bindings::high
|
||||
sol::no_constructor,
|
||||
|
||||
"enable", [](gcomponent<layout>& c){
|
||||
c.owner().component<disabled<layout>>().remove();
|
||||
c.component<disabled<layout>>().remove();
|
||||
layouts::mark_dirty(c);
|
||||
},
|
||||
|
||||
"disable", [](gcomponent<layout>& c){
|
||||
c.owner().component<disabled<layout>>().ensure();
|
||||
c.component<disabled<layout>>().ensure();
|
||||
layouts::mark_dirty(c);
|
||||
},
|
||||
|
||||
"enabled", sol::property(
|
||||
[](const gcomponent<layout>& c) -> bool {
|
||||
return !c.owner().component<disabled<layout>>().exists();
|
||||
return !c.component<disabled<layout>>().exists();
|
||||
},
|
||||
[](gcomponent<layout>& c, bool yesno){
|
||||
if ( yesno ) {
|
||||
c.owner().component<disabled<layout>>().remove();
|
||||
c.component<disabled<layout>>().remove();
|
||||
} else {
|
||||
c.owner().component<disabled<layout>>().ensure();
|
||||
c.component<disabled<layout>>().ensure();
|
||||
}
|
||||
layouts::mark_dirty(c);
|
||||
}
|
||||
@@ -42,13 +42,13 @@ namespace e2d::bindings::high
|
||||
|
||||
"disabled", sol::property(
|
||||
[](const gcomponent<layout>& c) -> bool {
|
||||
return c.owner().component<disabled<layout>>().exists();
|
||||
return c.component<disabled<layout>>().exists();
|
||||
},
|
||||
[](gcomponent<layout>& c, bool yesno){
|
||||
if ( yesno ) {
|
||||
c.owner().component<disabled<layout>>().ensure();
|
||||
c.component<disabled<layout>>().ensure();
|
||||
} else {
|
||||
c.owner().component<disabled<layout>>().remove();
|
||||
c.component<disabled<layout>>().remove();
|
||||
}
|
||||
layouts::mark_dirty(c);
|
||||
}
|
||||
|
||||
@@ -17,35 +17,35 @@ namespace e2d::bindings::high
|
||||
sol::no_constructor,
|
||||
|
||||
"enable", [](gcomponent<renderer>& c){
|
||||
c.owner().component<disabled<renderer>>().remove();
|
||||
c.component<disabled<renderer>>().remove();
|
||||
},
|
||||
|
||||
"disable", [](gcomponent<renderer>& c){
|
||||
c.owner().component<disabled<renderer>>().ensure();
|
||||
c.component<disabled<renderer>>().ensure();
|
||||
},
|
||||
|
||||
"enabled", sol::property(
|
||||
[](const gcomponent<renderer>& c) -> bool {
|
||||
return !c.owner().component<disabled<renderer>>().exists();
|
||||
return !c.component<disabled<renderer>>().exists();
|
||||
},
|
||||
[](gcomponent<renderer>& c, bool yesno){
|
||||
if ( yesno ) {
|
||||
c.owner().component<disabled<renderer>>().remove();
|
||||
c.component<disabled<renderer>>().remove();
|
||||
} else {
|
||||
c.owner().component<disabled<renderer>>().ensure();
|
||||
c.component<disabled<renderer>>().ensure();
|
||||
}
|
||||
}
|
||||
),
|
||||
|
||||
"disabled", sol::property(
|
||||
[](const gcomponent<renderer>& c) -> bool {
|
||||
return c.owner().component<disabled<renderer>>().exists();
|
||||
return c.component<disabled<renderer>>().exists();
|
||||
},
|
||||
[](gcomponent<renderer>& c, bool yesno){
|
||||
if ( yesno ) {
|
||||
c.owner().component<disabled<renderer>>().ensure();
|
||||
c.component<disabled<renderer>>().ensure();
|
||||
} else {
|
||||
c.owner().component<disabled<renderer>>().remove();
|
||||
c.component<disabled<renderer>>().remove();
|
||||
}
|
||||
}
|
||||
),
|
||||
|
||||
@@ -17,35 +17,35 @@ namespace e2d::bindings::high
|
||||
sol::no_constructor,
|
||||
|
||||
"enable", [](gcomponent<scene>& c){
|
||||
c.owner().component<disabled<scene>>().remove();
|
||||
c.component<disabled<scene>>().remove();
|
||||
},
|
||||
|
||||
"disable", [](gcomponent<scene>& c){
|
||||
c.owner().component<disabled<scene>>().ensure();
|
||||
c.component<disabled<scene>>().ensure();
|
||||
},
|
||||
|
||||
"enabled", sol::property(
|
||||
[](const gcomponent<scene>& c) -> bool {
|
||||
return !c.owner().component<disabled<scene>>().exists();
|
||||
return !c.component<disabled<scene>>().exists();
|
||||
},
|
||||
[](gcomponent<scene>& c, bool yesno){
|
||||
if ( yesno ) {
|
||||
c.owner().component<disabled<scene>>().remove();
|
||||
c.component<disabled<scene>>().remove();
|
||||
} else {
|
||||
c.owner().component<disabled<scene>>().ensure();
|
||||
c.component<disabled<scene>>().ensure();
|
||||
}
|
||||
}
|
||||
),
|
||||
|
||||
"disabled", sol::property(
|
||||
[](const gcomponent<scene>& c) -> bool {
|
||||
return c.owner().component<disabled<scene>>().exists();
|
||||
return c.component<disabled<scene>>().exists();
|
||||
},
|
||||
[](gcomponent<scene>& c, bool yesno){
|
||||
if ( yesno ) {
|
||||
c.owner().component<disabled<scene>>().ensure();
|
||||
c.component<disabled<scene>>().ensure();
|
||||
} else {
|
||||
c.owner().component<disabled<scene>>().remove();
|
||||
c.component<disabled<scene>>().remove();
|
||||
}
|
||||
}
|
||||
),
|
||||
|
||||
@@ -17,35 +17,35 @@ namespace e2d::bindings::high
|
||||
sol::no_constructor,
|
||||
|
||||
"enable", [](gcomponent<touchable>& c){
|
||||
c.owner().component<disabled<touchable>>().remove();
|
||||
c.component<disabled<touchable>>().remove();
|
||||
},
|
||||
|
||||
"disable", [](gcomponent<touchable>& c){
|
||||
c.owner().component<disabled<touchable>>().ensure();
|
||||
c.component<disabled<touchable>>().ensure();
|
||||
},
|
||||
|
||||
"enabled", sol::property(
|
||||
[](const gcomponent<touchable>& c) -> bool {
|
||||
return !c.owner().component<disabled<touchable>>().exists();
|
||||
return !c.component<disabled<touchable>>().exists();
|
||||
},
|
||||
[](gcomponent<touchable>& c, bool yesno){
|
||||
if ( yesno ) {
|
||||
c.owner().component<disabled<touchable>>().remove();
|
||||
c.component<disabled<touchable>>().remove();
|
||||
} else {
|
||||
c.owner().component<disabled<touchable>>().ensure();
|
||||
c.component<disabled<touchable>>().ensure();
|
||||
}
|
||||
}
|
||||
),
|
||||
|
||||
"disabled", sol::property(
|
||||
[](const gcomponent<touchable>& c) -> bool {
|
||||
return c.owner().component<disabled<touchable>>().exists();
|
||||
return c.component<disabled<touchable>>().exists();
|
||||
},
|
||||
[](gcomponent<touchable>& c, bool yesno){
|
||||
if ( yesno ) {
|
||||
c.owner().component<disabled<touchable>>().ensure();
|
||||
c.component<disabled<touchable>>().ensure();
|
||||
} else {
|
||||
c.owner().component<disabled<touchable>>().remove();
|
||||
c.component<disabled<touchable>>().remove();
|
||||
}
|
||||
}
|
||||
),
|
||||
|
||||
@@ -17,35 +17,35 @@ namespace e2d::bindings::high
|
||||
sol::no_constructor,
|
||||
|
||||
"enable", [](gcomponent<widget>& c){
|
||||
c.owner().component<disabled<widget>>().remove();
|
||||
c.component<disabled<widget>>().remove();
|
||||
},
|
||||
|
||||
"disable", [](gcomponent<widget>& c){
|
||||
c.owner().component<disabled<widget>>().ensure();
|
||||
c.component<disabled<widget>>().ensure();
|
||||
},
|
||||
|
||||
"enabled", sol::property(
|
||||
[](const gcomponent<widget>& c) -> bool {
|
||||
return !c.owner().component<disabled<widget>>().exists();
|
||||
return !c.component<disabled<widget>>().exists();
|
||||
},
|
||||
[](gcomponent<widget>& c, bool yesno){
|
||||
if ( yesno ) {
|
||||
c.owner().component<disabled<widget>>().remove();
|
||||
c.component<disabled<widget>>().remove();
|
||||
} else {
|
||||
c.owner().component<disabled<widget>>().ensure();
|
||||
c.component<disabled<widget>>().ensure();
|
||||
}
|
||||
}
|
||||
),
|
||||
|
||||
"disabled", sol::property(
|
||||
[](const gcomponent<widget>& c) -> bool {
|
||||
return c.owner().component<disabled<widget>>().exists();
|
||||
return c.component<disabled<widget>>().exists();
|
||||
},
|
||||
[](gcomponent<widget>& c, bool yesno){
|
||||
if ( yesno ) {
|
||||
c.owner().component<disabled<widget>>().ensure();
|
||||
c.component<disabled<widget>>().ensure();
|
||||
} else {
|
||||
c.owner().component<disabled<widget>>().remove();
|
||||
c.component<disabled<widget>>().remove();
|
||||
}
|
||||
}
|
||||
),
|
||||
|
||||
@@ -185,25 +185,25 @@ namespace e2d
|
||||
const char* component_inspector<camera>::title = ICON_FA_VIDEO " camera";
|
||||
|
||||
void component_inspector<camera>::operator()(gcomponent<camera>& c) const {
|
||||
if ( bool input = c.owner().component<camera::input>().exists();
|
||||
if ( bool input = c.component<camera::input>().exists();
|
||||
ImGui::Checkbox("input", &input) )
|
||||
{
|
||||
if ( input ) {
|
||||
c.owner().component<camera::input>().ensure();
|
||||
c.component<camera::input>().ensure();
|
||||
} else {
|
||||
c.owner().component<camera::input>().remove();
|
||||
c.component<camera::input>().remove();
|
||||
}
|
||||
}
|
||||
|
||||
ImGui::SameLine();
|
||||
|
||||
if ( bool gizmos = c.owner().component<camera::gizmos>().exists();
|
||||
if ( bool gizmos = c.component<camera::gizmos>().exists();
|
||||
ImGui::Checkbox("gizmos", &gizmos) )
|
||||
{
|
||||
if ( gizmos ) {
|
||||
c.owner().component<camera::gizmos>().ensure();
|
||||
c.component<camera::gizmos>().ensure();
|
||||
} else {
|
||||
c.owner().component<camera::gizmos>().remove();
|
||||
c.component<camera::gizmos>().remove();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -201,7 +201,7 @@ namespace e2d
|
||||
const char* component_inspector<label>::title = ICON_FA_PARAGRAPH " label";
|
||||
|
||||
void component_inspector<label>::operator()(gcomponent<label>& c) const {
|
||||
if ( bool dirty = c.owner().component<label::dirty>().exists();
|
||||
if ( bool dirty = c.component<label::dirty>().exists();
|
||||
ImGui::Checkbox("dirty", &dirty) )
|
||||
{
|
||||
if ( dirty ) {
|
||||
@@ -337,20 +337,20 @@ namespace e2d::labels
|
||||
{
|
||||
gcomponent<label> mark_dirty(gcomponent<label> self) {
|
||||
if ( self ) {
|
||||
self.owner().component<label::dirty>().ensure();
|
||||
self.component<label::dirty>().ensure();
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
gcomponent<label> unmark_dirty(gcomponent<label> self) {
|
||||
if ( self ) {
|
||||
self.owner().component<label::dirty>().remove();
|
||||
self.component<label::dirty>().remove();
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
bool is_dirty(const const_gcomponent<label>& self) noexcept {
|
||||
return self.owner().component<label::dirty>().exists();
|
||||
return self.component<label::dirty>().exists();
|
||||
}
|
||||
|
||||
gcomponent<label> change_text(gcomponent<label> self, str value) {
|
||||
|
||||
@@ -172,7 +172,7 @@ namespace e2d
|
||||
const char* component_inspector<layout>::title = ICON_FA_BARS " layout";
|
||||
|
||||
void component_inspector<layout>::operator()(gcomponent<layout>& c) const {
|
||||
if ( bool dirty = c.owner().component<layout::dirty>().exists();
|
||||
if ( bool dirty = c.component<layout::dirty>().exists();
|
||||
ImGui::Checkbox("dirty", &dirty) )
|
||||
{
|
||||
if ( dirty ) {
|
||||
@@ -226,20 +226,20 @@ namespace e2d::layouts
|
||||
{
|
||||
gcomponent<layout> mark_dirty(gcomponent<layout> self) {
|
||||
if ( self ) {
|
||||
self.owner().component<layout::dirty>().ensure();
|
||||
self.component<layout::dirty>().ensure();
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
gcomponent<layout> unmark_dirty(gcomponent<layout> self) {
|
||||
if ( self ) {
|
||||
self.owner().component<layout::dirty>().remove();
|
||||
self.component<layout::dirty>().remove();
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
bool is_dirty(const const_gcomponent<layout>& self) noexcept {
|
||||
return self.owner().component<layout::dirty>().exists();
|
||||
return self.component<layout::dirty>().exists();
|
||||
}
|
||||
|
||||
gcomponent<layout> change_direction(gcomponent<layout> self, layout::directions value) {
|
||||
@@ -285,7 +285,7 @@ namespace e2d::layouts
|
||||
}
|
||||
|
||||
gcomponent<layout> find_parent_layout(const_gcomponent<layout> self) noexcept {
|
||||
const_gcomponent<actor> self_actor = self.owner().component<actor>();
|
||||
const_gcomponent<actor> self_actor = self.component<actor>();
|
||||
return self_actor
|
||||
? nodes::find_component_from_parents<layout>(self_actor->node())
|
||||
: gcomponent<layout>();
|
||||
|
||||
@@ -96,7 +96,7 @@ namespace e2d
|
||||
const char* component_inspector<widget>::title = ICON_FA_VECTOR_SQUARE " widget";
|
||||
|
||||
void component_inspector<widget>::operator()(gcomponent<widget>& c) const {
|
||||
if ( bool dirty = c.owner().component<widget::dirty>().exists();
|
||||
if ( bool dirty = c.component<widget::dirty>().exists();
|
||||
ImGui::Checkbox("dirty", &dirty) )
|
||||
{
|
||||
if ( dirty ) {
|
||||
@@ -161,20 +161,20 @@ namespace e2d::widgets
|
||||
{
|
||||
gcomponent<widget> mark_dirty(gcomponent<widget> self) {
|
||||
if ( self ) {
|
||||
self.owner().component<widget::dirty>().ensure();
|
||||
self.component<widget::dirty>().ensure();
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
gcomponent<widget> unmark_dirty(gcomponent<widget> self) {
|
||||
if ( self ) {
|
||||
self.owner().component<widget::dirty>().remove();
|
||||
self.component<widget::dirty>().remove();
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
bool is_dirty(const const_gcomponent<widget>& self) noexcept {
|
||||
return self.owner().component<widget::dirty>().exists();
|
||||
return self.component<widget::dirty>().exists();
|
||||
}
|
||||
|
||||
gcomponent<widget> change_size(gcomponent<widget> self, const v2f& value) {
|
||||
@@ -199,7 +199,7 @@ namespace e2d::widgets
|
||||
}
|
||||
|
||||
gcomponent<layout> find_parent_layout(const_gcomponent<widget> self) noexcept {
|
||||
const_gcomponent<actor> self_actor = self.owner().component<actor>();
|
||||
const_gcomponent<actor> self_actor = self.component<actor>();
|
||||
return self_actor
|
||||
? nodes::find_component_from_parents<layout>(self_actor->node())
|
||||
: gcomponent<layout>();
|
||||
|
||||
@@ -61,7 +61,7 @@ namespace
|
||||
// parents
|
||||
//
|
||||
|
||||
static thread_local std::vector<const_gcomponent<touchable>> parents;
|
||||
static thread_local std::vector<gcomponent<touchable>> parents;
|
||||
E2D_DEFER([](){ parents.clear(); });
|
||||
|
||||
nodes::extract_components_from_parents<touchable>(
|
||||
@@ -102,7 +102,7 @@ namespace
|
||||
disabled<touchable>
|
||||
>()(iter->owner().raw_entity());
|
||||
if ( !parent_disabled ) {
|
||||
iter->owner().component<events<touchable_events::event>>().ensure().add(event);
|
||||
iter->component<events<touchable_events::event>>().ensure().add(event);
|
||||
if ( !(*iter)->bubbling() ) {
|
||||
return;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user