summaryrefslogtreecommitdiffstats
path: root/src/live_effects/lpe-measure-segments.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/live_effects/lpe-measure-segments.h')
-rw-r--r--src/live_effects/lpe-measure-segments.h118
1 files changed, 118 insertions, 0 deletions
diff --git a/src/live_effects/lpe-measure-segments.h b/src/live_effects/lpe-measure-segments.h
new file mode 100644
index 0000000..01b23cc
--- /dev/null
+++ b/src/live_effects/lpe-measure-segments.h
@@ -0,0 +1,118 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+#ifndef INKSCAPE_LPE_MEASURE_SEGMENTS_H
+#define INKSCAPE_LPE_MEASURE_SEGMENTS_H
+
+/*
+ * Author(s):
+ * Jabiertxo Arraiza Cenoz <jabier.arraiza@marker.es>
+ *
+ * Copyright (C) 2014 Author(s)
+ *
+ * Released under GNU GPL v2+, read the file 'COPYING' for more information.
+ */
+#include <gtkmm.h>
+
+#include "live_effects/effect.h"
+#include "live_effects/parameter/bool.h"
+#include "live_effects/parameter/colorpicker.h"
+#include "live_effects/parameter/enum.h"
+#include "live_effects/parameter/fontbutton.h"
+#include "live_effects/parameter/message.h"
+#include "live_effects/parameter/satellitearray.h"
+#include "live_effects/parameter/text.h"
+#include "live_effects/parameter/unit.h"
+
+namespace Inkscape {
+namespace LivePathEffect {
+
+enum OrientationMethod {
+ OM_HORIZONTAL,
+ OM_VERTICAL,
+ OM_PARALLEL,
+ OM_END
+};
+
+class LPEMeasureSegments : public Effect {
+public:
+ LPEMeasureSegments(LivePathEffectObject *lpeobject);
+ ~LPEMeasureSegments() override;
+ void doOnApply(SPLPEItem const* lpeitem) override;
+ void doBeforeEffect (SPLPEItem const* lpeitem) override;
+ void doOnRemove(SPLPEItem const* /*lpeitem*/) override;
+ void doEffect (SPCurve * curve) override {};
+ void doOnVisibilityToggled(SPLPEItem const* /*lpeitem*/) override;
+ bool doOnOpen(SPLPEItem const *lpeitem) override;
+ void processObjects(LPEAction lpe_action) override;
+ Gtk::Widget * newWidget() override;
+ void createLine(Geom::Point start,Geom::Point end, Glib::ustring name, size_t counter, bool main, bool remove, bool arrows = false);
+ void createTextLabel(Geom::Point pos, size_t counter, double length, Geom::Coord angle, bool remove, bool valid);
+ void createArrowMarker(Glib::ustring mode);
+ bool isWhitelist(size_t i, std::string listsegments, bool whitelist);
+ void on_my_switch_page(Gtk::Widget* page, guint page_number);
+private:
+ UnitParam unit;
+ EnumParam<OrientationMethod> orientation;
+ ColorPickerParam coloropacity;
+ FontButtonParam fontbutton;
+ ScalarParam precision;
+ ScalarParam fix_overlaps;
+ ScalarParam position;
+ ScalarParam text_top_bottom;
+ ScalarParam helpline_distance;
+ ScalarParam helpline_overlap;
+ ScalarParam line_width;
+ ScalarParam scale;
+ TextParam format;
+ TextParam blacklist;
+ BoolParam scale_sensitive;
+ BoolParam active_projection;
+ BoolParam whitelist;
+ BoolParam showindex;
+ BoolParam arrows_outside;
+ BoolParam flip_side;
+ BoolParam local_locale;
+ BoolParam rotate_anotation;
+ BoolParam hide_back;
+ BoolParam hide_arrows;
+ BoolParam onbbox;
+ BoolParam bboxonly;
+ BoolParam centers;
+ BoolParam maxmin;
+ BoolParam smallx100;
+ std::vector<Glib::ustring> items;
+ SatelliteArrayParam linked_items;
+ ScalarParam distance_projection;
+ ScalarParam angle_projection;
+ BoolParam avoid_overlapping;
+ MessageParam helpdata;
+ Glib::ustring display_unit;
+ double fontsize;
+ double anotation_width;
+ double previous_size;
+ guint32 rgb32;
+ double arrow_gap;
+ guint pagenumber;
+ gchar const* locale_base;
+ size_t prevsatellitecount = 0;
+ bool prev_active_projection = false;
+ SPObject *parent = nullptr;
+ LPEMeasureSegments(const LPEMeasureSegments &) = delete;
+ LPEMeasureSegments &operator=(const LPEMeasureSegments &) = delete;
+
+};
+
+} //namespace LivePathEffect
+} //namespace Inkscape
+
+#endif
+
+/*
+ Local Variables:
+ mode:c++
+ c-file-style:"stroustrup"
+ c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +))
+ indent-tabs-mode:nil
+ fill-column:99
+ End:
+*/
+// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4 :