mirror of
https://github.com/ArthurSonzogni/FTXUI.git
synced 2025-09-28 16:29:34 +08:00
Merge dom and component focus (#978)
Instead of two levels of focus with `focus` and `selected`, use a recursive level. The components set the one "active" and hbox/vbox/dbox Co-authored-by: ArthurSonzogni <sonzogniarthur@gmail.com>
This commit is contained in:
@@ -36,13 +36,12 @@ Decorator focusPositionRelative(float x, float y) {
|
||||
|
||||
void ComputeRequirement() override {
|
||||
NodeDecorator::ComputeRequirement();
|
||||
requirement_.selection = Requirement::Selection::NORMAL;
|
||||
|
||||
Box& box = requirement_.selected_box;
|
||||
box.x_min = int(float(requirement_.min_x) * x_);
|
||||
box.y_min = int(float(requirement_.min_y) * y_);
|
||||
box.x_max = int(float(requirement_.min_x) * x_);
|
||||
box.y_max = int(float(requirement_.min_y) * y_);
|
||||
requirement_.focused.enabled = false;
|
||||
requirement_.focused.node = this;
|
||||
requirement_.focused.box.x_min = int(float(requirement_.min_x) * x_);
|
||||
requirement_.focused.box.y_min = int(float(requirement_.min_y) * y_);
|
||||
requirement_.focused.box.x_max = int(float(requirement_.min_x) * x_);
|
||||
requirement_.focused.box.y_max = int(float(requirement_.min_y) * y_);
|
||||
}
|
||||
|
||||
private:
|
||||
@@ -75,9 +74,9 @@ Decorator focusPosition(int x, int y) {
|
||||
|
||||
void ComputeRequirement() override {
|
||||
NodeDecorator::ComputeRequirement();
|
||||
requirement_.selection = Requirement::Selection::NORMAL;
|
||||
requirement_.focused.enabled = false;
|
||||
|
||||
Box& box = requirement_.selected_box;
|
||||
Box& box = requirement_.focused.box;
|
||||
box.x_min = x_;
|
||||
box.y_min = y_;
|
||||
box.x_max = x_;
|
||||
|
Reference in New Issue
Block a user