/usr/include/ganv-1/ganv/Item.hpp is in libganv-dev 1.4.2~dfsg0-2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 | /* This file is part of Ganv.
* Copyright 2007-2012 David Robillard <http://drobilla.net>
*
* Ganv is free software: you can redistribute it and/or modify it under the
* terms of the GNU General Public License as published by the Free Software
* Foundation, either version 3 of the License, or any later version.
*
* Ganv is distributed in the hope that it will be useful, but WITHOUT ANY
* WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU General Public License for details.
*
* You should have received a copy of the GNU General Public License along
* with Ganv. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef GANV_ITEM_HPP
#define GANV_ITEM_HPP
#include <assert.h>
#include <glib.h>
#include <sigc++/signal.h>
#include <sigc++/trackable.h>
#include "ganv/Canvas.hpp"
#include "ganv/item.h"
#include "ganv/wrap.hpp"
GANV_GLIB_WRAP(Item)
namespace Ganv {
class Canvas;
/** An item on the canvas.
*/
class Item : public sigc::trackable {
public:
Item(GanvItem* gobj)
: _gobj(gobj)
{
GQuark wrapper_key = g_quark_from_string("ganvmm");
if (gobj && ganv_item_get_parent(gobj)) {
g_object_set_qdata(G_OBJECT(_gobj), wrapper_key, this);
g_signal_connect(
G_OBJECT(_gobj), "event", G_CALLBACK(on_item_event), this);
}
}
virtual ~Item() {
gtk_object_destroy(GTK_OBJECT(_gobj));
}
RW_PROPERTY(double, x)
RW_PROPERTY(double, y)
METHOD0(ganv_item, raise);
METHOD0(ganv_item, lower);
METHOD2(ganv_item, move, double, dx, double, dy);
METHOD0(ganv_item, show);
METHOD0(ganv_item, hide);
METHOD2(ganv_item, i2w, double*, x, double*, y);
METHOD2(ganv_item, w2i, double*, x, double*, y);
METHOD0(ganv_item, grab_focus);
Canvas* canvas() const {
return Glib::wrap(ganv_item_get_canvas(_gobj));
}
GanvItem* gobj() const { return _gobj; }
SIGNAL1(event, GdkEvent*)
SIGNAL1(click, GdkEventButton*)
protected:
GanvItem* const _gobj;
private:
static gboolean
on_item_event(GanvItem* canvasitem,
GdkEvent* ev,
void* item)
{
return ((Item*)item)->signal_event().emit(ev);
}
};
} // namespace Ganv
#endif // GANV_ITEM_HPP
|