control-point-selection.h revision 16a8c7d5e433b176636a4a1260c42ea43932110b
/** @file
* Node selection - stores a set of nodes and applies transformations
* to them
*/
/* Authors:
* Krzysztof KosiĆski <tweenk.pl@gmail.com>
*
* Copyright (C) 2009 Authors
* Released under GNU GPL, read the file 'COPYING' for more information
*/
#ifndef SEEN_UI_TOOL_NODE_SELECTION_H
#define SEEN_UI_TOOL_NODE_SELECTION_H
#include <memory>
#include <tr1/unordered_map>
#include <boost/shared_ptr.hpp>
#include <boost/weak_ptr.hpp>
#include <boost/optional.hpp>
#include "display/display-forward.h"
#include "util/accumulators.h"
#include "ui/tool/commit-events.h"
#include "ui/tool/manipulator.h"
// boilerplate typedefs
typedef SelectableControlPoint *value_type;
typedef SelectableControlPoint *key_type;
// size
// iterators
// insert
}
}
// erase
void clear();
// find
void showTransformHandles(bool v, bool one_node);
// the two methods below do not modify the state; they are for use in manipulators
// that need to temporarily hide the handles
void hideTransformHandles();
void restoreTransformHandles();
// TODO this is really only applicable to nodes... maybe derive a NodeSelection?
void setSculpting(bool v) { _sculpt_enabled = v; }
void _selectionUngrabbed();
void _updateTransformHandles(bool preserve_center);
bool _keyboardRotate(GdkEventKey const &, int);
bool _keyboardScale(GdkEventKey const &, int);
unsigned _dragging : 1;
unsigned _handles_visible : 1;
unsigned _one_node_handles : 1;
unsigned _sculpt_enabled : 1;
unsigned _sculpting : 1;
};
} // namespace UI
} // 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:encoding=utf-8:textwidth=99 :