From c8f8e8ac42af87ebf2fb4519da27235143a0f1e5 Mon Sep 17 00:00:00 2001 From: arch1t3cht Date: Thu, 18 May 2023 23:39:00 +0200 Subject: [PATCH] visual tools: Add setting for shape handle size --- src/libresrc/default_config.json | 1 + src/libresrc/osx/default_config.json | 1 + src/preferences.cpp | 5 ++++- src/visual_feature.cpp | 13 +++++++++---- src/visual_feature.h | 3 +++ src/visual_tool_vector_clip.cpp | 5 +++-- src/visual_tool_vector_clip.h | 1 + 7 files changed, 22 insertions(+), 7 deletions(-) diff --git a/src/libresrc/default_config.json b/src/libresrc/default_config.json index 9c0d81244..eda5981f5 100644 --- a/src/libresrc/default_config.json +++ b/src/libresrc/default_config.json @@ -580,6 +580,7 @@ "Grid": false, "Org Mode": 0 }, + "Shape Handle Size": 3, "Autohide": false } }, diff --git a/src/libresrc/osx/default_config.json b/src/libresrc/osx/default_config.json index ae04eb0b2..d3b0100e3 100644 --- a/src/libresrc/osx/default_config.json +++ b/src/libresrc/osx/default_config.json @@ -580,6 +580,7 @@ "Grid": false, "Org Mode": 0 }, + "Shape Handle Size": 3, "Autohide": false } }, diff --git a/src/preferences.cpp b/src/preferences.cpp index f6320dd75..f6f819c04 100644 --- a/src/preferences.cpp +++ b/src/preferences.cpp @@ -92,7 +92,7 @@ void General_DefaultStyles(wxTreebook *book, Preferences *parent) { instructions->Wrap(400); staticbox->Add(instructions, 0, wxALL, 5); staticbox->AddSpacer(16); - + auto general = new wxFlexGridSizer(2, 5, 5); general->AddGrowableCol(0, 1); staticbox->Add(general, 1, wxEXPAND, 5); @@ -228,6 +228,9 @@ void Interface(wxTreebook *book, Preferences *parent) { auto tl_assistant = p->PageSizer(_("Translation Assistant")); p->OptionAdd(tl_assistant, _("Skip over whitespace"), "Tool/Translation Assistant/Skip Whitespace"); + auto visual_tools = p->PageSizer(_("Visual Tools")); + p->OptionAdd(visual_tools, _("Shape handle size"), "Tool/Visual/Shape Handle Size"); + p->SetSizerAndFit(p->sizer); } diff --git a/src/visual_feature.cpp b/src/visual_feature.cpp index 21c97abf6..4ad9e8536 100644 --- a/src/visual_feature.cpp +++ b/src/visual_feature.cpp @@ -33,8 +33,13 @@ /// #include "gl_wrap.h" +#include "options.h" #include "visual_feature.h" +VisualDraggableFeature::VisualDraggableFeature() +: size(OPT_GET("Tool/Visual/Shape Handle Size")->GetInt()) +{} + bool VisualDraggableFeature::IsMouseOver(Vector2D mouse_pos) const { if (!pos) return false; @@ -54,10 +59,10 @@ bool VisualDraggableFeature::IsMouseOver(Vector2D mouse_pos) const { } case DRAG_SMALL_SQUARE: - return fabs(delta.X()) < 3 && fabs(delta.Y()) < 3; + return fabs(delta.X()) < size && fabs(delta.Y()) < size; case DRAG_SMALL_CIRCLE: - return delta.SquareLen() < 9; + return delta.SquareLen() < 3 * size; default: return false; @@ -88,11 +93,11 @@ void VisualDraggableFeature::Draw(OpenGLWrapper const& gl) const { break; case DRAG_SMALL_SQUARE: - gl.DrawRectangle(pos - 3, pos + 3); + gl.DrawRectangle(pos - size, pos + size); break; case DRAG_SMALL_CIRCLE: - gl.DrawCircle(pos, 3); + gl.DrawCircle(pos, size); break; default: break; diff --git a/src/visual_feature.h b/src/visual_feature.h index 4b3fb6ed0..667f62e5d 100644 --- a/src/visual_feature.h +++ b/src/visual_feature.h @@ -61,10 +61,13 @@ class VisualDraggableFeature : public boost::intrusive::make_list_base_hook(parent, context) , spline(this) +, featureSize(OPT_GET("Tool/Visual/Shape Handle Size")->GetInt()) { } @@ -154,11 +155,11 @@ void VisualToolVectorClip::Draw() { if (feature.type == DRAG_SMALL_SQUARE) { gl.SetLineColour(line_color, .5f, 1); - gl.DrawRectangle(feature.pos - 3, feature.pos + 3); + gl.DrawRectangle(feature.pos - featureSize, feature.pos + featureSize); } else { gl.SetLineColour(feature_color, .5f, 1); - gl.DrawCircle(feature.pos, 2.f); + gl.DrawCircle(feature.pos, featureSize * 2.f / 3.f); } } diff --git a/src/visual_tool_vector_clip.h b/src/visual_tool_vector_clip.h index 2cc8bab7b..7a684a036 100644 --- a/src/visual_tool_vector_clip.h +++ b/src/visual_tool_vector_clip.h @@ -51,6 +51,7 @@ class VisualToolVectorClip final : public VisualTool box_added;