Use a single widget for resize, always show handle
Signed-off-by: falkTX <falktx@falktx.com>
This commit is contained in:
parent
ec15f95f32
commit
5282da24e9
6 changed files with 77 additions and 58 deletions
|
|
@ -59,6 +59,8 @@ namespace app {
|
|||
|
||||
|
||||
struct ResizeHandle : widget::OpaqueWidget {
|
||||
math::Vec size;
|
||||
|
||||
void draw(const DrawArgs& args) override {
|
||||
nvgStrokeColor(args.vg, nvgRGBf(1, 1, 1));
|
||||
nvgStrokeWidth(args.vg, 1);
|
||||
|
|
@ -95,6 +97,27 @@ struct ResizeHandle : widget::OpaqueWidget {
|
|||
nvgLineTo(args.vg, 0, box.size.y + 11);
|
||||
nvgStroke(args.vg);
|
||||
}
|
||||
|
||||
void onHover(const HoverEvent& e) override {
|
||||
e.consume(this);
|
||||
}
|
||||
|
||||
void onEnter(const EnterEvent& e) override {
|
||||
glfwSetCursor(nullptr, (GLFWcursor*)0x1);
|
||||
}
|
||||
|
||||
void onLeave(const LeaveEvent& e) override {
|
||||
glfwSetCursor(nullptr, nullptr);
|
||||
}
|
||||
|
||||
void onDragStart(const DragStartEvent&) override {
|
||||
size = APP->window->getSize();
|
||||
}
|
||||
|
||||
void onDragMove(const DragMoveEvent& e) override {
|
||||
size = size.plus(e.mouseDelta);
|
||||
APP->window->setSize(size.round());
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
|
|
@ -151,11 +174,6 @@ Scene::Scene() {
|
|||
}
|
||||
|
||||
|
||||
void hideResizeHandle(Scene* scene) {
|
||||
scene->internal->resizeHandle->hide();
|
||||
}
|
||||
|
||||
|
||||
Scene::~Scene() {
|
||||
delete internal;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue