2 * Copyright (c) 2016 Samsung Electronics Co., Ltd.
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
18 %define STAGE_EVENTHANDLER_TYPEMAP_EVENTARG(NameSpace, ClassName)
19 %typemap(csimports) NameSpace::ClassName %{
21 using System.Runtime.InteropServices;
26 %define STAGE_EVENTHANDLER_TYPEMAP_HELPER(NameSpace, ClassName)
27 %typemap(cscode) NameSpace::ClassName %{
31 * @brief Event arguments that passed via Touch signal
34 public class TouchEventArgs : EventArgs
36 private TouchData _touchData;
39 * @brief TouchData - contains the information of touch points
42 public TouchData TouchData
55 private event EventHandler<TouchEventArgs> _stageTouchEventHandler;
56 private EventCallbackDelegateType1<IntPtr> _stageTouchCallbackDelegate;
59 * @brief Event for TouchEvent signal which can be used to subscribe/unsubscribe the event handler
60 * TouchEvent signal is emitted when the screen is touched and when the touch ends
61 * (i.e. the down & up touch events only).
64 public event EventHandler<TouchEventArgs> TouchEvent
70 _stageTouchEventHandler += value;
71 _stageTouchCallbackDelegate = OnStageTouch;
72 this.TouchSignal().Connect(_stageTouchCallbackDelegate);
79 if (_stageTouchEventHandler != null)
81 this.TouchSignal().Disconnect(_stageTouchCallbackDelegate);
83 _stageTouchEventHandler -= value;
88 private void OnStageTouch(IntPtr data)
90 TouchEventArgs e = new TouchEventArgs();
94 e.TouchData = TouchData.GetTouchDataFromPtr( data );
97 if (_stageTouchEventHandler != null)
99 _stageTouchEventHandler(this, e);
105 * @brief WheelEvent arguments that passed via Wheel signal
108 public class WheelEventArgs : EventArgs
110 private WheelEvent _wheelEvent;
113 * @brief WheelEvent - store a wheel rolling type MOUSE_WHEEL or CUSTOM_WHEEL
116 public WheelEvent WheelEvent
129 private event EventHandler<WheelEventArgs> _stageWheelEventHandler;
130 private EventCallbackDelegateType1<IntPtr> _stageWheelCallbackDelegate;
133 * @brief Event for WheelEvent signal which can be used to subscribe/unsubscribe the event handler
134 * WheelEvent signal is emitted is emitted when wheel event is received.
137 public event EventHandler<WheelEventArgs> WheelEvent
143 _stageWheelEventHandler += value;
144 _stageWheelCallbackDelegate = OnStageWheel;
145 this.WheelEventSignal().Connect(_stageWheelCallbackDelegate);
152 if (_stageWheelEventHandler != null)
154 this.WheelEventSignal().Disconnect(_stageWheelCallbackDelegate);
156 _stageWheelEventHandler -= value;
161 private void OnStageWheel(IntPtr data)
163 WheelEventArgs e = new WheelEventArgs();
167 e.WheelEvent = Dali.WheelEvent.GetWheelEventFromPtr( data );
170 if (_stageWheelEventHandler != null)
172 _stageWheelEventHandler(this, e);
177 * @brief Event arguments that passed via KeyEvent signal
180 public class KeyEventArgs : EventArgs
182 private KeyEvent _keyEvent;
185 * @brief KeyEvent - is the keyevent sent to Stage.
188 public KeyEvent KeyEvent
201 private event EventHandler<KeyEventArgs> _stageKeyEventHandler;
202 private EventCallbackDelegateType1<IntPtr> _stageKeyCallbackDelegate;
205 * @brief Event for KeyEvent signal which can be used to subscribe/unsubscribe the event handler
206 * KeyEvent signal is emitted is emitted when key event is received.
209 public event EventHandler<KeyEventArgs> KeyEvent
215 _stageKeyEventHandler += value;
216 _stageKeyCallbackDelegate = OnStageKey;
217 this.KeyEventSignal().Connect(_stageKeyCallbackDelegate);
224 if (_stageKeyEventHandler != null)
226 this.KeyEventSignal().Disconnect(_stageKeyCallbackDelegate);
228 _stageKeyEventHandler -= value;
233 // Callback for Stage KeyEventsignal
234 private void OnStageKey(IntPtr data)
236 KeyEventArgs e = new KeyEventArgs();
240 e.KeyEvent = Dali.KeyEvent.GetKeyEventFromPtr( data );
243 if (_stageKeyEventHandler != null)
245 //here we send all data to user event handlers
246 _stageKeyEventHandler(this, e);
251 private event EventHandler _stageEventProcessingFinishedEventHandler;
252 private EventCallbackDelegateType0 _stageEventProcessingFinishedEventCallbackDelegate;
255 * @brief Event for EventProcessingFinished signal which can be used to subscribe/unsubscribe the event handler
256 * provided by the user. EventProcessingFinished signal is emitted just after the event processing is finished.
259 public event EventHandler EventProcessingFinished
265 _stageEventProcessingFinishedEventHandler += value;
266 _stageEventProcessingFinishedEventCallbackDelegate = OnEventProcessingFinished;
267 this.EventProcessingFinishedSignal().Connect(_stageEventProcessingFinishedEventCallbackDelegate);
274 if (_stageEventProcessingFinishedEventHandler != null)
276 this.EventProcessingFinishedSignal().Disconnect(_stageEventProcessingFinishedEventCallbackDelegate);
278 _stageEventProcessingFinishedEventHandler -= value;
283 // Callback for Stage EventProcessingFinishedSignal
284 private void OnEventProcessingFinished()
286 if (_stageEventProcessingFinishedEventHandler != null)
288 _stageEventProcessingFinishedEventHandler(this, null);
293 private EventHandler _stageContextLostEventHandler;
294 private EventCallbackDelegateType0 _stageContextLostEventCallbackDelegate;
297 * @brief Event for ContextLost signal which can be used to subscribe/unsubscribe the event handler
298 * ContextLost signal is emitted when the GL context is lost (Platform specific behaviour).
301 public event EventHandler ContextLost
307 _stageContextLostEventHandler += value;
308 _stageContextLostEventCallbackDelegate = OnContextLost;
309 this.ContextLostSignal().Connect(_stageContextLostEventCallbackDelegate);
316 if (_stageContextLostEventHandler != null)
318 this.ContextLostSignal().Disconnect(_stageContextLostEventCallbackDelegate);
321 _stageContextLostEventHandler -= value;
326 // Callback for Stage ContextLostSignal
327 private void OnContextLost()
329 if (_stageContextLostEventHandler != null)
331 _stageContextLostEventHandler(this, null);
336 private EventHandler _stageContextRegainedEventHandler;
337 private EventCallbackDelegateType0 _stageContextRegainedEventCallbackDelegate;
340 * @brief Event for ContextRegained signal which can be used to subscribe/unsubscribe the event handler
341 * provided by the user. ContextRegained signal is emitted when the GL context is regained (Platform specific
345 public event EventHandler ContextRegained
351 _stageContextRegainedEventHandler += value;
352 _stageContextRegainedEventCallbackDelegate = OnContextRegained;
353 this.ContextRegainedSignal().Connect(_stageContextRegainedEventCallbackDelegate);
360 if (_stageContextRegainedEventHandler != null)
362 this.ContextRegainedSignal().Disconnect(_stageContextRegainedEventCallbackDelegate);
365 _stageContextRegainedEventHandler -= value;
370 // Callback for Stage ContextRegainedSignal
371 private void OnContextRegained()
373 if (_stageContextRegainedEventHandler != null)
375 _stageContextRegainedEventHandler(this, null);
380 private EventHandler _stageSceneCreatedEventHandler;
381 private EventCallbackDelegateType0 _stageSceneCreatedEventCallbackDelegate;
384 * @brief Event for SceneCreated signal which can be used to subscribe/unsubscribe the event handler
385 * SceneCreated signal is emitted after the initial scene is created.
388 public event EventHandler SceneCreated
394 _stageSceneCreatedEventHandler += value;
395 _stageSceneCreatedEventCallbackDelegate = OnSceneCreated;
396 this.SceneCreatedSignal().Connect(_stageSceneCreatedEventCallbackDelegate);
403 if (_stageSceneCreatedEventHandler != null)
405 this.SceneCreatedSignal().Disconnect(_stageSceneCreatedEventCallbackDelegate);
408 _stageSceneCreatedEventHandler -= value;
413 // Callback for Stage SceneCreatedSignal
414 private void OnSceneCreated()
416 if (_stageSceneCreatedEventHandler != null)
418 _stageSceneCreatedEventHandler(this, null);
427 Vector2 ret = GetSize();
432 public Vector4 BackgroundColor
436 SetBackgroundColor(value);
440 Vector4 ret = GetBackgroundColor();
450 %define DALI_STAGE_EVENTHANDLER_PARAM( NameSpace, ClassName)
452 STAGE_EVENTHANDLER_TYPEMAP_EVENTARG( NameSpace, ClassName);
453 STAGE_EVENTHANDLER_TYPEMAP_HELPER( NameSpace, ClassName);
459 DALI_STAGE_EVENTHANDLER_PARAM( Dali, Stage);