3 * (c) 2010 Alexander Warg <warg@os.inf.tu-dresden.de>
4 * economic rights: Technische Universität Dresden (Germany)
6 * This file is part of TUD:OS and distributed under the terms of the
7 * GNU General Public License 2.
8 * Please see the COPYING-GPL-2 file for details.
12 #include <l4/mag-gfx/geometry>
13 #include <l4/mag/server/view_stack>
15 #include <l4/re/video/view>
16 #include <l4/re/event>
18 namespace Mag_server {
20 using namespace Mag_gfx;
30 Point _next_mouse_pos;
34 User_state(Canvas *screen, L4Re::Video::View *screen_view,
35 View *cursor, View *bg)
36 : _vstack(screen, screen_view, bg), _mouse_pos(0,0),
37 _mouse_cursor(cursor), _pointed_view(0), _next_mouse_pos(0,0),
41 vstack()->push_top(_mouse_cursor, true);
43 vstack()->update_all_views();
46 void forget_view(View *v)
48 _vstack.forget_view(v);
49 if (_pointed_view == v)
50 _pointed_view = _vstack.find(_next_mouse_pos);
55 View_stack *vstack() { return &_vstack; }
56 View_stack const *vstack() const { return &_vstack; }
59 typedef L4Re::Event_buffer::Event Event;
61 virtual void handle_event(Event const &e);
62 virtual ~User_state() {}