1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 import wx
20
21 from timelinelib.drawing import get_drawer
22 from timelinelib.view.drawingarea import DrawingArea
23 from timelinelib.wxgui.dialogs.duplicateevent import open_duplicate_event_dialog_for_event
24 from timelinelib.wxgui.dialogs.eventeditor import open_create_event_editor
25 from timelinelib.wxgui.dialogs.eventeditor import open_event_editor_for
26 from timelinelib.wxgui.utils import _ask_question
27
28
30
31 - def __init__(self, parent, status_bar_adapter, divider_line_slider,
32 fn_handle_db_error, config, main_frame):
33 wx.Panel.__init__(self, parent, style=wx.NO_BORDER)
34 self.fn_handle_db_error = fn_handle_db_error
35 self.config = config
36 self.main_frame = main_frame
37 self.controller = DrawingArea(
38 self, status_bar_adapter, config, get_drawer(),
39 divider_line_slider, fn_handle_db_error)
40 self.surface_bitmap = None
41 self._create_gui()
42
45
48
51
53 return self.surface_bitmap
54
57
60
63
66
69
72
74 width, height = self.GetSizeTuple()
75 self.surface_bitmap = wx.EmptyBitmap(width, height)
76 memdc = wx.MemoryDC()
77 memdc.SelectObject(self.surface_bitmap)
78 memdc.BeginDrawing()
79 memdc.SetBackground(wx.Brush(wx.WHITE, wx.SOLID))
80 memdc.Clear()
81 fn_draw(memdc)
82 memdc.EndDrawing()
83 del memdc
84 self.Refresh()
85 self.Update()
86
89
97
104
113
115 self.balloon_show_timer.Start(milliseconds, oneShot)
116
118 self.balloon_hide_timer.Start(milliseconds, oneShot)
119
122
125
127 self.SetCursor(wx.StockCursor(wx.CURSOR_IBEAM))
128
130 self.SetCursor(wx.StockCursor(wx.CURSOR_SIZEWE))
131
133 self.SetCursor(wx.StockCursor(wx.CURSOR_SIZING))
134
136 self.SetCursor(wx.StockCursor(wx.CURSOR_ARROW))
137
139 return _ask_question(question, self)
140
142 self.balloon_show_timer = wx.Timer(self, -1)
143 self.balloon_hide_timer = wx.Timer(self, -1)
144 self.dragscroll_timer = wx.Timer(self, -1)
145 self.Bind(wx.EVT_TIMER, self._on_balloon_show_timer, self.balloon_show_timer)
146 self.Bind(wx.EVT_TIMER, self._on_balloon_hide_timer, self.balloon_hide_timer)
147 self.Bind(wx.EVT_TIMER, self._on_dragscroll, self.dragscroll_timer)
148 self.Bind(wx.EVT_ERASE_BACKGROUND, self._on_erase_background)
149 self.Bind(wx.EVT_PAINT, self._on_paint)
150 self.Bind(wx.EVT_SIZE, self._on_size)
151 self.Bind(wx.EVT_LEFT_DOWN, self._on_left_down)
152 self.Bind(wx.EVT_RIGHT_DOWN, self._on_right_down)
153 self.Bind(wx.EVT_LEFT_DCLICK, self._on_left_dclick)
154 self.Bind(wx.EVT_MIDDLE_UP, self._on_middle_up)
155 self.Bind(wx.EVT_LEFT_UP, self._on_left_up)
156 self.Bind(wx.EVT_ENTER_WINDOW, self._on_enter)
157 self.Bind(wx.EVT_MOTION, self._on_motion)
158 self.Bind(wx.EVT_MOUSEWHEEL, self._on_mousewheel)
159 self.Bind(wx.EVT_KEY_DOWN, self._on_key_down)
160 self.Bind(wx.EVT_KEY_UP, self._on_key_up)
161
164
167
170
174
176 dc = wx.AutoBufferedPaintDC(self)
177 dc.BeginDrawing()
178 if self.surface_bitmap:
179 dc.DrawBitmap(self.surface_bitmap, 0, 0, True)
180 else:
181 pass
182 dc.EndDrawing()
183
186
188 self.controller.left_mouse_down(evt.m_x, evt.m_y, evt.m_controlDown,
189 evt.m_shiftDown, evt.m_altDown)
190 evt.Skip()
191
194
196 self.controller.left_mouse_dclick(evt.m_x, evt.m_y, evt.m_controlDown,
197 evt.m_altDown)
198
201
204
206 self.controller.mouse_enter(evt.m_x, evt.LeftIsDown())
207
209 self.controller.mouse_moved(evt.m_x, evt.m_y, evt.m_altDown)
210
212 self.controller.mouse_wheel_moved(evt.m_wheelRotation, evt.ControlDown(), evt.ShiftDown(), evt.GetX())
213
215 self.controller.key_down(evt.GetKeyCode(), evt.AltDown())
216 evt.Skip()
217
219 self.controller.key_up(evt.GetKeyCode())
220