control-point.h revision 70d31ae8a7a27e57cfcdc921ea0d2f47c92442a4
/** @file
* Desktop-bound visual control object
*/
/* 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_CONTROL_POINT_H
#define SEEN_UI_TOOL_CONTROL_POINT_H
#include <boost/utility.hpp>
#include <gdkmm.h>
#include <gtkmm.h>
#include "display/display-forward.h"
#include "forward.h"
#include "util/accumulators.h"
#include "display/sodipodi-ctrl.h"
// most of the documentation is in the .cpp file
// these have to be public, because GCC doesn't allow protected types in constructors,
// even if the constructors are protected themselves.
struct ColorEntry {
};
struct ColorSet {
};
enum State {
};
virtual ~ControlPoint();
/// @name Adjust the position of the control point
/// @{
/** Current position of the control point. */
/// @}
/// @name Toggle the point's visibility
/// @{
bool visible() const;
virtual void setVisible(bool v);
/// @}
/// @name Transfer grab from another event handler
/// @{
/// @}
/// @name Receive notifications about control point events
/// @{
/// @}
/// @name Inspect the state of the control point
/// @{
/// @}
static ControlPoint *mouseovered_point;
// temporarily public, until snapping is refactored a little
/// @name Manipulate the control point's appearance in subclasses
/// @{
void _setColors(ColorEntry c);
unsigned int _size() const;
SPCtrlShapeType _shape() const;
GtkAnchorType _anchor() const;
/// @}
virtual bool _hasDragTips() { return false; }
static int const _grab_event_mask;
static void _clearMouseover();
bool _updateTip(unsigned state);
void _setDefaultColors();
void _commonInit();
static bool _event_grab;
static bool _drag_initiated;
};
} // 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 :