2 * Copyright (C) 2009 by Aiwota Programmer
3 * aiwotaprog@tetteke.tk
5 * This file is part of Dialektos.
7 * Dialektos is free software: you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation, either version 3 of the License, or
10 * (at your option) any later version.
12 * Dialektos is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
17 * You should have received a copy of the GNU General Public License
18 * along with Dialektos. If not, see <http://www.gnu.org/licenses/>.
21 #ifndef TEXT_VIEW_POINTER_TRACKABLE_HXX
22 #define TEXT_VIEW_POINTER_TRACKABLE_HXX
24 #include "text_view_layoutable.hxx"
29 namespace text_element {
37 class PointerTrackable: public Layoutable {
40 virtual ~PointerTrackable();
42 virtual bool on_button_press_event(GdkEventButton*);
43 virtual bool on_button_release_event(GdkEventButton*);
44 virtual bool on_motion_notify_event(GdkEventMotion*);
46 virtual void on_anchor_click_event(const text_element::Anchor&);
47 virtual void on_anchor_hovered_event(const text_element::Anchor&);
50 bool on_left_button_press_event(GdkEventButton*);
51 bool on_right_button_press_event(GdkEventButton*);
55 * param x position on the widget
56 * param y position on the widget
58 void set_hovered(gdouble x, gdouble y);
59 void set_cursor(gdouble x, gdouble y);
62 const text_element::Plain* pressed_element_;
64 const text_element::Plain* hovered_element_;
66 const text_element::Anchor* pressed_anchor_;
70 } // namespace text_view
73 } // namespace dialektos