241
241
_queued_draw = false;
244
long LayeredLayout::ProcessOne (Area *_area,
247
long process_event_info)
249
long ret = traverse_info;
253
InputArea *area = NUX_STATIC_CAST (InputArea *, _area);
254
ret = area->OnEvent (ievent, ret, process_event_info);
256
else if (_area->IsView())
258
View *ic = NUX_STATIC_CAST (View *, _area);
259
ret = ic->ProcessEvent (ievent, ret, process_event_info);
261
else if (_area->IsLayout())
263
Layout *layout = NUX_STATIC_CAST (Layout *, _area);
264
ret = layout->ProcessEvent (ievent, ret, process_event_info);
270
long LayeredLayout::ProcessEvent (IEvent &ievent, long traverse_info, long process_event_info)
272
long ret = traverse_info;
274
if (m_input_mode == INPUT_MODE_ACTIVE)
276
if (m_active_area && m_active_area->IsVisible () && m_active_area->IsSensitive ())
277
ret = ProcessOne (m_active_area, ievent, ret, process_event_info);
281
std::list<Area *>::reverse_iterator it, eit = _layout_element_list.rend ();
283
for (it = _layout_element_list.rbegin (); it != eit; ++it)
287
if (area->IsVisible () && area->IsSensitive ())
289
ret = ProcessOne (area, ievent, ret, process_event_info);
296
244
Area* LayeredLayout::FindAreaUnderMouse(const Point& mouse_position, NuxEventType event_type)
298
246
if(m_active_area == NULL)