diff options
| author | bulia byak <buliabyak@gmail.com> | 2007-10-24 00:56:44 +0000 |
|---|---|---|
| committer | buliabyak <buliabyak@users.sourceforge.net> | 2007-10-24 00:56:44 +0000 |
| commit | c07f56967ee699f37a95daf3ecbd44871c9d6b87 (patch) | |
| tree | 547ac714b1881ee502e5c98460ff9f2fe8e507e9 /src/ui/widget/rotateable.h | |
| parent | rename master opacity to opacity (diff) | |
| download | inkscape-c07f56967ee699f37a95daf3ecbd44871c9d6b87.tar.gz inkscape-c07f56967ee699f37a95daf3ecbd44871c9d6b87.zip | |
new class for widgets adjustable by rotation-like gestures
(bzr r3949)
Diffstat (limited to 'src/ui/widget/rotateable.h')
| -rw-r--r-- | src/ui/widget/rotateable.h | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/src/ui/widget/rotateable.h b/src/ui/widget/rotateable.h new file mode 100644 index 000000000..65f3c598c --- /dev/null +++ b/src/ui/widget/rotateable.h @@ -0,0 +1,66 @@ +/** + * \brief widget adjustable by dragging it to rotate away from a zero-change axis + * + * Authors: + * buliabyak@gmail.com + * + * Copyright (C) 2007 authors + * + * Released under GNU GPL. Read the file 'COPYING' for more information. + */ + +#ifndef INKSCAPE_UI_ROTATEABLE_H +#define INKSCAPE_UI_ROTATEABLE_H + +#include <gtkmm/box.h> +#include <gtkmm/eventbox.h> +#include <glibmm/i18n.h> + +namespace Inkscape { +namespace UI { +namespace Widget { + +class Rotateable: public Gtk::EventBox +{ +public: + Rotateable(); + + ~Rotateable(); + + bool on_click(GdkEventButton *event); + bool on_motion(GdkEventMotion *event); + bool on_release(GdkEventButton *event); + + double axis; + double current_axis; + double maxdecl; + +private: + double drag_started_x; + double drag_started_y; + guint modifier; + bool dragging; + bool working; + + guint get_single_modifier(guint old, guint state); + + virtual void do_motion (double by, guint state) {} + virtual void do_release (double by, guint state) {} +}; + +} // namespace Widget +} // namespace UI +} // namespace Inkscape + +#endif // INKSCAPE_UI_ROTATEABLE_H + +/* + Local Variables: + mode:c++ + c-file-style:"stroustrup" + c-file-offsets:((innamespace . 0)(inline-open . 0)) + indent-tabs-mode:nil + fill-column:99 + End: +*/ +// vim: filetype=c++:expandtab:shiftwidth=4:tabstop=8:softtabstop=4 : |
