3 This file is part of the MSP Märklin suite
4 Copyright © 2006-2008 Mikkosoft Productions, Mikko Rasa
5 Distributed under the GPL
11 #include <sigc++/sigc++.h>
30 Marklin::Track *track;
34 MTrack(Marklin::Track *);
39 Marklin::Track *track;
42 TrackOrder(Marklin::Track *t, bool r): track(t), rev(r) { }
46 sigc::signal<void, const std::string &> signal_status;
47 sigc::signal<void, bool> signal_done;
51 Msp::Graphics::EventSource &event_source;
53 std::vector<MTrack> tracks;
54 Marklin::Point center;
56 Marklin::Point gpointer;
59 Marklin::Point move_origin;
63 std::set<Marklin::Track *> neighbors;
64 std::vector<Marklin::Track *> extend_tracks;
67 Manipulator(Designer &, Msp::Graphics::EventSource &, Selection &);
75 void even_slope(bool =false);
79 void button_press(int, int, unsigned, unsigned);
80 void pointer_motion(int, int);
81 void selection_changed();
83 void update_neighbors();
84 void set_slope(TrackOrder &, float, float);
85 std::vector<Marklin::Track *> create_straight(const Marklin::Point &, float, float, float);