1 // Copyright (c) 2016 Samsung Electronics Co., Ltd All Rights Reserved
\r
2 // PROPRIETARY/CONFIDENTIAL
\r
3 // This software is the confidential and proprietary
\r
4 // information of SAMSUNG ELECTRONICS ("Confidential Information"). You shall
\r
5 // not disclose such Confidential Information and shall use it only in
\r
6 // accordance with the terms of the license agreement you entered into with
\r
7 // SAMSUNG ELECTRONICS. SAMSUNG make no representations or warranties about the
\r
8 // suitability of the software, either express or implied, including but not
\r
9 // limited to the implied warranties of merchantability, fitness for a
\r
10 // particular purpose, or non-infringement. SAMSUNG shall not be liable for any
\r
11 // damages suffered by licensee as a result of using, modifying or distributing
\r
12 // this software or its derivatives.
\r
14 // Copyright (c) 2017 Samsung Electronics Co., Ltd.
\r
16 // Licensed under the Apache License, Version 2.0 (the "License");
\r
17 // you may not use this file except in compliance with the License.
\r
18 // You may obtain a copy of the License at
\r
20 // http://www.apache.org/licenses/LICENSE-2.0
\r
22 // Unless required by applicable law or agreed to in writing, software
\r
23 // distributed under the License is distributed on an "AS IS" BASIS,
\r
24 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
\r
25 // See the License for the specific language governing permissions and
\r
26 // limitations under the License.
\r
29 // This File has been auto-generated by SWIG and then modified using DALi Ruby Scripts
\r
30 // Some have been manually changed
\r
34 public class CustomView : ViewWrapper
\r
36 public CustomView(ViewBehaviour behaviour) : base(new ViewWrapperImpl(behaviour))
\r
38 // Registering CustomView virtual functions to viewWrapperImpl delegates.
\r
39 viewWrapperImpl.OnStageConnection = new ViewWrapperImpl.OnStageConnectionDelegate(OnStageConnection);
\r
40 viewWrapperImpl.OnStageDisconnection = new ViewWrapperImpl.OnStageDisconnectionDelegate(OnStageDisconnection);
\r
41 viewWrapperImpl.OnChildAdd = new ViewWrapperImpl.OnChildAddDelegate(OnChildAdd);
\r
42 viewWrapperImpl.OnChildRemove = new ViewWrapperImpl.OnChildRemoveDelegate(OnChildRemove);
\r
43 viewWrapperImpl.OnPropertySet = new ViewWrapperImpl.OnPropertySetDelegate(OnPropertySet);
\r
44 viewWrapperImpl.OnSizeSet = new ViewWrapperImpl.OnSizeSetDelegate(OnSizeSet);
\r
45 viewWrapperImpl.OnSizeAnimation = new ViewWrapperImpl.OnSizeAnimationDelegate(OnSizeAnimation);
\r
46 viewWrapperImpl.OnTouch = new ViewWrapperImpl.OnTouchDelegate(OnTouch);
\r
47 viewWrapperImpl.OnHover = new ViewWrapperImpl.OnHoverDelegate(OnHover);
\r
48 viewWrapperImpl.OnKey = new ViewWrapperImpl.OnKeyDelegate(OnKey);
\r
49 viewWrapperImpl.OnWheel = new ViewWrapperImpl.OnWheelDelegate(OnWheel);
\r
50 viewWrapperImpl.OnRelayout = new ViewWrapperImpl.OnRelayoutDelegate(OnRelayout);
\r
51 viewWrapperImpl.OnSetResizePolicy = new ViewWrapperImpl.OnSetResizePolicyDelegate(OnSetResizePolicy);
\r
52 viewWrapperImpl.GetNaturalSize = new ViewWrapperImpl.GetNaturalSizeDelegate(GetNaturalSize);
\r
53 viewWrapperImpl.CalculateChildSize = new ViewWrapperImpl.CalculateChildSizeDelegate(CalculateChildSize);
\r
54 viewWrapperImpl.GetHeightForWidth = new ViewWrapperImpl.GetHeightForWidthDelegate(GetHeightForWidth);
\r
55 viewWrapperImpl.GetWidthForHeight = new ViewWrapperImpl.GetWidthForHeightDelegate(GetWidthForHeight);
\r
56 viewWrapperImpl.RelayoutDependentOnChildrenDimension = new ViewWrapperImpl.RelayoutDependentOnChildrenDimensionDelegate(RelayoutDependentOnChildren);
\r
57 viewWrapperImpl.RelayoutDependentOnChildren = new ViewWrapperImpl.RelayoutDependentOnChildrenDelegate(RelayoutDependentOnChildren);
\r
58 viewWrapperImpl.OnCalculateRelayoutSize = new ViewWrapperImpl.OnCalculateRelayoutSizeDelegate(OnCalculateRelayoutSize);
\r
59 viewWrapperImpl.OnLayoutNegotiated = new ViewWrapperImpl.OnLayoutNegotiatedDelegate(OnLayoutNegotiated);
\r
60 viewWrapperImpl.OnControlChildAdd = new ViewWrapperImpl.OnControlChildAddDelegate(OnControlChildAdd);
\r
61 viewWrapperImpl.OnControlChildRemove = new ViewWrapperImpl.OnControlChildRemoveDelegate(OnControlChildRemove);
\r
62 viewWrapperImpl.OnStyleChange = new ViewWrapperImpl.OnStyleChangeDelegate(OnStyleChange);
\r
63 viewWrapperImpl.OnAccessibilityActivated = new ViewWrapperImpl.OnAccessibilityActivatedDelegate(OnAccessibilityActivated);
\r
64 viewWrapperImpl.OnAccessibilityPan = new ViewWrapperImpl.OnAccessibilityPanDelegate(OnAccessibilityPan);
\r
65 viewWrapperImpl.OnAccessibilityTouch = new ViewWrapperImpl.OnAccessibilityTouchDelegate(OnAccessibilityTouch);
\r
66 viewWrapperImpl.OnAccessibilityValueChange = new ViewWrapperImpl.OnAccessibilityValueChangeDelegate(OnAccessibilityValueChange);
\r
67 viewWrapperImpl.OnAccessibilityZoom = new ViewWrapperImpl.OnAccessibilityZoomDelegate(OnAccessibilityZoom);
\r
68 viewWrapperImpl.OnKeyInputFocusGained = new ViewWrapperImpl.OnKeyInputFocusGainedDelegate(OnFocusGained);
\r
69 viewWrapperImpl.OnKeyInputFocusLost = new ViewWrapperImpl.OnKeyInputFocusLostDelegate(OnFocusLost);
\r
70 viewWrapperImpl.GetNextFocusableView = new ViewWrapperImpl.GetNextFocusableViewDelegate(GetNextFocusableView);
\r
71 viewWrapperImpl.OnFocusChangeCommitted = new ViewWrapperImpl.OnFocusChangeCommittedDelegate(OnFocusChangeCommitted);
\r
72 viewWrapperImpl.OnKeyboardEnter = new ViewWrapperImpl.OnKeyboardEnterDelegate(OnKeyEnter);
\r
73 viewWrapperImpl.OnPinch = new ViewWrapperImpl.OnPinchDelegate(OnPinch);
\r
74 viewWrapperImpl.OnPan = new ViewWrapperImpl.OnPanDelegate(OnPan);
\r
75 viewWrapperImpl.OnTap = new ViewWrapperImpl.OnTapDelegate(OnTap);
\r
76 viewWrapperImpl.OnLongPress = new ViewWrapperImpl.OnLongPressDelegate(OnLongPress);
\r
77 viewWrapperImpl.SignalConnected = new ViewWrapperImpl.SignalConnectedDelegate(SignalConnected);
\r
78 viewWrapperImpl.SignalDisconnected = new ViewWrapperImpl.SignalDisconnectedDelegate(SignalDisconnected);
\r
80 // Make sure CustomView is initialized.
\r
83 // Make sure the style of actors/visuals initialized above are applied by the style manager.
\r
84 viewWrapperImpl.ApplyThemeStyle();
\r
88 * @brief Set the background with a property map.
\r
90 * @param[in] map The background property map.
\r
92 public void SetBackground(Tizen.NUI.PropertyMap map)
\r
94 viewWrapperImpl.SetBackground(map);
\r
98 * @brief Allows deriving classes to enable any of the gesture detectors that are available.
\r
100 * Gesture detection can be enabled one at a time or in bitwise format as shown:
\r
102 * EnableGestureDetection(Gesture.Type.Pinch | Gesture.Type.Tap | Gesture.Type.Pan));
\r
104 * @param[in] type The gesture type(s) to enable.
\r
106 internal void EnableGestureDetection(Gesture.GestureType type)
\r
108 viewWrapperImpl.EnableGestureDetection(type);
\r
112 * @brief Allows deriving classes to disable any of the gesture detectors.
\r
114 * Like EnableGestureDetection, this can also be called using bitwise or.
\r
115 * @param[in] type The gesture type(s) to disable.
\r
116 * @see EnableGetureDetection
\r
118 internal void DisableGestureDetection(Gesture.GestureType type)
\r
120 viewWrapperImpl.DisableGestureDetection(type);
\r
124 * @brief Sets whether this control supports two dimensional
\r
125 * keyboard navigation (i.e. whether it knows how to handle the
\r
126 * keyboard focus movement between its child actors).
\r
128 * The control doesn't support it by default.
\r
129 * @param[in] isSupported Whether this control supports two dimensional keyboard navigation.
\r
132 public bool FocusNavigationSupport
\r
136 return IsKeyboardNavigationSupported();
\r
140 SetKeyboardNavigationSupport(value);
\r
144 internal void SetKeyboardNavigationSupport(bool isSupported)
\r
146 viewWrapperImpl.SetKeyboardNavigationSupport(isSupported);
\r
151 * @brief Gets whether this control supports two dimensional keyboard navigation.
\r
153 * @return true if this control supports two dimensional keyboard navigation.
\r
155 internal bool IsKeyboardNavigationSupported()
\r
157 return viewWrapperImpl.IsKeyboardNavigationSupported();
\r
161 public bool FocusGroup
\r
165 return IsKeyboardFocusGroup();
\r
169 SetAsKeyboardFocusGroup(value);
\r
174 * @brief Sets whether this control is a focus group for keyboard navigation.
\r
176 * (i.e. the scope of keyboard focus movement
\r
177 * can be limitied to its child actors). The control is not a focus group by default.
\r
178 * @param[in] isFocusGroup Whether this control is set as a focus group for keyboard navigation.
\r
180 internal void SetAsKeyboardFocusGroup(bool isFocusGroup)
\r
182 viewWrapperImpl.SetAsKeyboardFocusGroup(isFocusGroup);
\r
186 * @brief Gets whether this control is a focus group for keyboard navigation.
\r
188 * @return true if this control is set as a focus group for keyboard navigation.
\r
190 internal bool IsKeyboardFocusGroup()
\r
192 return viewWrapperImpl.IsKeyboardFocusGroup();
\r
196 * @brief Called by the AccessibilityManager to activate the Control.
\r
199 internal void AccessibilityActivate()
\r
201 viewWrapperImpl.AccessibilityActivate();
\r
205 * @brief Called by the KeyboardFocusManager.
\r
207 public void KeyboardEnter()
\r
209 viewWrapperImpl.KeyboardEnter();
\r
213 * @brief Called by the KeyInputFocusManager to emit key event signals.
\r
215 * @param[in] key The key event.
\r
216 * @return True if the event was consumed.
\r
218 public bool EmitKeyEventSignal(Key key)
\r
220 return viewWrapperImpl.EmitKeyEventSignal(key);
\r
224 * @brief Request a relayout, which means performing a size negotiation on this actor, its parent and children (and potentially whole scene).
\r
226 * This method can also be called from a derived class every time it needs a different size.
\r
227 * At the end of event processing, the relayout process starts and
\r
228 * all controls which requested Relayout will have their sizes (re)negotiated.
\r
230 * @note RelayoutRequest() can be called multiple times; the size negotiation is still
\r
231 * only performed once, i.e. there is no need to keep track of this in the calling side.
\r
233 protected void RelayoutRequest()
\r
235 viewWrapperImpl.RelayoutRequest();
\r
239 * @brief Provides the Actor implementation of GetHeightForWidth.
\r
240 * @param width Width to use.
\r
241 * @return The height based on the width.
\r
243 protected float GetHeightForWidthBase(float width)
\r
245 return viewWrapperImpl.GetHeightForWidthBase(width);
\r
249 * @brief Provides the Actor implementation of GetWidthForHeight.
\r
250 * @param height Height to use.
\r
251 * @return The width based on the height.
\r
253 protected float GetWidthForHeightBase(float height)
\r
255 return viewWrapperImpl.GetWidthForHeightBase(height);
\r
259 * @brief Calculate the size for a child using the base actor object.
\r
261 * @param[in] child The child actor to calculate the size for
\r
262 * @param[in] dimension The dimension to calculate the size for. E.g. width or height
\r
263 * @return Return the calculated size for the given dimension. If more than one dimension is requested, just return the first one found.
\r
265 protected float CalculateChildSizeBase(Actor child, DimensionType dimension)
\r
267 return viewWrapperImpl.CalculateChildSizeBase(child, dimension);
\r
271 * @brief Determine if this actor is dependent on it's children for relayout from the base class.
\r
273 * @param dimension The dimension(s) to check for
\r
274 * @return Return if the actor is dependent on it's children.
\r
276 protected bool RelayoutDependentOnChildrenBase(DimensionType dimension)
\r
278 return viewWrapperImpl.RelayoutDependentOnChildrenBase(dimension);
\r
282 * @brief Determine if this actor is dependent on it's children for relayout from the base class.
\r
284 * @param dimension The dimension(s) to check for
\r
285 * @return Return if the actor is dependent on it's children.
\r
287 protected bool RelayoutDependentOnChildrenBase()
\r
289 return viewWrapperImpl.RelayoutDependentOnChildrenBase();
\r
293 * @brief Register a visual by Property Index, linking an Actor to visual when required.
\r
294 * In the case of the visual being an actor or control deeming visual not required then visual should be an empty handle.
\r
295 * No parenting is done during registration, this should be done by derived class.
\r
297 * @param[in] index The Property index of the visual, used to reference visual
\r
298 * @param[in] visual The visual to register
\r
299 * @note Derived class should not call visual.SetOnStage(actor). It is the responsibility of the base class to connect/disconnect registered visual to stage.
\r
300 * Use below API with enabled set to false if derived class wishes to control when visual is staged.
\r
302 protected void RegisterVisual(int index, VisualBase visual)
\r
304 viewWrapperImpl.RegisterVisual(index, visual);
\r
308 * @brief Register a visual by Property Index, linking an Actor to visual when required.
\r
309 * In the case of the visual being an actor or control deeming visual not required then visual should be an empty handle.
\r
310 * If enabled is false then the visual is not set on stage until enabled by the derived class.
\r
311 * @see EnableVisual
\r
313 * @param[in] index The Property index of the visual, used to reference visual
\r
314 * @param[in] visual The visual to register
\r
315 * @param[in] enabled false if derived class wants to control when visual is set on stage.
\r
318 protected void RegisterVisual(int index, VisualBase visual, bool enabled)
\r
320 viewWrapperImpl.RegisterVisual(index, visual, enabled);
\r
324 * @brief Erase the entry matching the given index from the list of registered visuals
\r
325 * @param[in] index The Property index of the visual, used to reference visual
\r
328 protected void UnregisterVisual(int index)
\r
330 viewWrapperImpl.UnregisterVisual(index);
\r
334 * @brief Retrieve the visual associated with the given property index.
\r
336 * @param[in] index The Property index of the visual.
\r
337 * @return The registered visual if exist, otherwise empty handle.
\r
338 * @note For managing object life-cycle, do not store the returned visual as a member which increments its reference count.
\r
340 protected VisualBase GetVisual(int index)
\r
342 return viewWrapperImpl.GetVisual(index);
\r
346 * @brief Sets the given visual to be displayed or not when parent staged.
\r
348 * @param[in] index The Property index of the visual
\r
349 * @param[in] enable flag to set enabled or disabled.
\r
351 protected void EnableVisual(int index, bool enable)
\r
353 viewWrapperImpl.EnableVisual(index, enable);
\r
357 * @brief Queries if the given visual is to be displayed when parent staged.
\r
359 * @param[in] index The Property index of the visual
\r
360 * @return bool whether visual is enabled or not
\r
362 protected bool IsVisualEnabled(int index)
\r
364 return viewWrapperImpl.IsVisualEnabled(index);
\r
368 * @brief Create a transition effect on the control.
\r
370 * @param[in] transitionData The transition data describing the effect to create
\r
371 * @return A handle to an animation defined with the given effect, or an empty
\r
372 * handle if no properties match.
\r
374 protected Animation CreateTransition(TransitionData transitionData)
\r
376 return viewWrapperImpl.CreateTransition(transitionData);
\r
380 * @brief Emits KeyInputFocusGained signal if true else emits KeyInputFocusLost signal
\r
382 * Should be called last by the control after it acts on the Input Focus change.
\r
384 * @param[in] focusGained True if gained, False if lost
\r
386 protected void EmitKeyInputFocusSignal(bool focusGained)
\r
388 viewWrapperImpl.EmitKeyInputFocusSignal(focusGained);
\r
392 * @brief This method is called after the Control has been initialized.
\r
394 * Derived classes should do any second phase initialization by overriding this method.
\r
396 public virtual void OnInitialize()
\r
401 * @brief Called after the actor has been connected to the stage.
\r
403 * When an actor is connected, it will be directly or indirectly parented to the root Actor.
\r
404 * @param[in] depth The depth in the hierarchy for the actor
\r
406 * @note The root Actor is provided automatically by Dali::Stage, and is always considered to be connected.
\r
407 * When the parent of a set of actors is connected to the stage, then all of the children
\r
408 * will received this callback.
\r
409 * For the following actor tree, the callback order will be A, B, D, E, C, and finally F.
\r
420 * @param[in] depth The depth in the hierarchy for the actor
\r
422 public virtual void OnStageConnection(int depth)
\r
427 * @brief Called after the actor has been disconnected from Stage.
\r
429 * If an actor is disconnected it either has no parent, or is parented to a disconnected actor.
\r
431 * @note When the parent of a set of actors is disconnected to the stage, then all of the children
\r
432 * will received this callback, starting with the leaf actors.
\r
433 * For the following actor tree, the callback order will be D, E, B, F, C, and finally A.
\r
445 public virtual void OnStageDisconnection()
\r
450 * @brief Called after a child has been added to the owning actor.
\r
452 * @param[in] child The child which has been added
\r
454 public virtual void OnChildAdd(Actor actor)
\r
459 * @brief Called after the owning actor has attempted to remove a child( regardless of whether it succeeded or not ).
\r
461 * @param[in] child The child being removed
\r
463 public virtual void OnChildRemove(Actor actor)
\r
468 * @brief Called when the owning actor property is set.
\r
470 * @param[in] index The Property index that was set
\r
471 * @param[in] propertyValue The value to set
\r
473 public virtual void OnPropertySet(int index, Tizen.NUI.PropertyValue propertyValue)
\r
478 * @brief Called when the owning actor's size is set e.g. using Actor::SetSize().
\r
480 * @param[in] targetSize The target size. Note that this target size may not match the size returned via Actor.GetTargetSize.
\r
482 public virtual void OnSizeSet(Vector3 targetSize)
\r
487 * @brief Called when the owning actor's size is animated e.g. using Animation::AnimateTo( Property( actor, Actor::Property::SIZE ), ... ).
\r
489 * @param[in] animation The object which is animating the owning actor.
\r
490 * @param[in] targetSize The target size. Note that this target size may not match the size returned via @ref Actor.GetTargetSize.
\r
492 public virtual void OnSizeAnimation(Animation animation, Vector3 targetSize)
\r
497 * @DEPRECATED_1_1.37 Connect to TouchSignal() instead.
\r
499 * @brief Called after a touch-event is received by the owning actor.
\r
501 * @param[in] touch The touch event
\r
502 * @return True if the event should be consumed.
\r
503 * @note CustomViewBehaviour.REQUIRES_TOUCH_EVENTS must be enabled during construction. See CustomView(ViewWrapperImpl.CustomViewBehaviour behaviour).
\r
505 public virtual bool OnTouch(Touch touch)
\r
507 return false; // Do not consume
\r
511 * @brief Called after a hover-event is received by the owning actor.
\r
513 * @param[in] hover The hover event
\r
514 * @return True if the hover event should be consumed.
\r
515 * @note CustomViewBehaviour.REQUIRES_HOVER_EVENTS must be enabled during construction. See CustomView(ViewWrapperImpl.CustomViewBehaviour behaviour).
\r
517 public virtual bool OnHover(Hover hover)
\r
519 return false; // Do not consume
\r
523 * @brief Called after a key-event is received by the actor that has had its focus set.
\r
525 * @param[in] key the Key Event
\r
526 * @return True if the event should be consumed.
\r
528 public virtual bool OnKey(Key key)
\r
530 return false; // Do not consume
\r
534 * @brief Called after a wheel-event is received by the owning actor.
\r
536 * @param[in] wheel The wheel event
\r
537 * @return True if the event should be consumed.
\r
538 * @note CustomViewBehaviour.REQUIRES_WHEEL_EVENTS must be enabled during construction. See CustomView(ViewWrapperImpl.CustomViewBehaviour behaviour).
\r
540 public virtual bool OnWheel(Wheel wheel)
\r
542 return false; // Do not consume
\r
546 * @brief Called after the size negotiation has been finished for this control.
\r
548 * The control is expected to assign this given size to itself/its children.
\r
550 * Should be overridden by derived classes if they need to layout
\r
551 * actors differently after certain operations like add or remove
\r
552 * actors, resize or after changing specific properties.
\r
554 * @param[in] size The allocated size.
\r
555 * @param[in,out] container The control should add actors to this container that it is not able
\r
556 * to allocate a size for.
\r
557 * @note As this function is called from inside the size negotiation algorithm, you cannot
\r
558 * call RequestRelayout (the call would just be ignored).
\r
560 public virtual void OnRelayout(Vector2 size, RelayoutContainer container)
\r
565 * @brief Notification for deriving classes
\r
567 * @param[in] policy The policy being set
\r
568 * @param[in] dimension The dimension the policy is being set for
\r
570 public virtual void OnSetResizePolicy(ResizePolicyType policy, DimensionType dimension)
\r
575 * @brief Return the natural size of the actor.
\r
577 * @return The actor's natural size
\r
579 public virtual Size GetNaturalSize()
\r
581 return new Size(0.0f, 0.0f, 0.0f);
\r
585 * @brief Calculate the size for a child.
\r
587 * @param[in] child The child actor to calculate the size for
\r
588 * @param[in] dimension The dimension to calculate the size for. E.g. width or height.
\r
589 * @return Return the calculated size for the given dimension.
\r
591 public virtual float CalculateChildSize(Actor child, DimensionType dimension)
\r
593 return viewWrapperImpl.CalculateChildSizeBase(child, dimension);
\r
597 * @brief This method is called during size negotiation when a height is required for a given width.
\r
599 * Derived classes should override this if they wish to customize the height returned.
\r
601 * @param width Width to use.
\r
602 * @return The height based on the width.
\r
604 public virtual float GetHeightForWidth(float width)
\r
606 return viewWrapperImpl.GetHeightForWidthBase(width);
\r
610 * @brief This method is called during size negotiation when a width is required for a given height.
\r
612 * Derived classes should override this if they wish to customize the width returned.
\r
614 * @param height Height to use.
\r
615 * @return The width based on the width.
\r
617 public virtual float GetWidthForHeight(float height)
\r
619 return viewWrapperImpl.GetWidthForHeightBase(height);
\r
623 * @brief Determine if this actor is dependent on it's children for relayout.
\r
625 * @param dimension The dimension(s) to check for
\r
626 * @return Return if the actor is dependent on it's children.
\r
628 public virtual bool RelayoutDependentOnChildren(DimensionType dimension)
\r
630 return viewWrapperImpl.RelayoutDependentOnChildrenBase(dimension);
\r
634 * @brief Determine if this actor is dependent on it's children for relayout from the base class.
\r
636 * @return Return if the actor is dependent on it's children.
\r
638 public virtual bool RelayoutDependentOnChildren()
\r
640 return viewWrapperImpl.RelayoutDependentOnChildrenBase();
\r
644 * @brief Virtual method to notify deriving classes that relayout dependencies have been
\r
645 * met and the size for this object is about to be calculated for the given dimension
\r
647 * @param dimension The dimension that is about to be calculated
\r
649 public virtual void OnCalculateRelayoutSize(DimensionType dimension)
\r
654 * @brief Virtual method to notify deriving classes that the size for a dimension
\r
655 * has just been negotiated
\r
657 * @param[in] size The new size for the given dimension
\r
658 * @param[in] dimension The dimension that was just negotiated
\r
660 public virtual void OnLayoutNegotiated(float size, DimensionType dimension)
\r
665 * @brief This method should be overridden by deriving classes requiring notifications when the style changes.
\r
667 * @param[in] styleManager The StyleManager object.
\r
668 * @param[in] change Information denoting what has changed.
\r
670 public virtual void OnStyleChange(StyleManager styleManager, StyleChangeType change)
\r
675 * @brief This method is called when the control is accessibility activated.
\r
677 * Derived classes should override this to perform custom accessibility activation.
\r
678 * @return true if this control can perform accessibility activation.
\r
680 internal virtual bool OnAccessibilityActivated()
\r
686 * @brief This method should be overridden by deriving classes when they wish to respond the accessibility
\r
689 * @param[in] gesture The pan gesture.
\r
690 * @return true if the pan gesture has been consumed by this control
\r
692 internal virtual bool OnAccessibilityPan(PanGesture gestures)
\r
698 * @brief This method should be overridden by deriving classes when they wish to respond the accessibility
\r
701 * @param[in] touch The touch event.
\r
702 * @return true if the touch event has been consumed by this control
\r
704 internal virtual bool OnAccessibilityTouch(Touch touch)
\r
710 * @brief This method should be overridden by deriving classes when they wish to respond
\r
711 * the accessibility up and down action (i.e. value change of slider control).
\r
713 * @param[in] isIncrease Whether the value should be increased or decreased
\r
714 * @return true if the value changed action has been consumed by this control
\r
716 internal virtual bool OnAccessibilityValueChange(bool isIncrease)
\r
722 * @brief This method should be overridden by deriving classes when they wish to respond
\r
723 * the accessibility zoom action.
\r
725 * @return true if the zoom action has been consumed by this control
\r
727 internal virtual bool OnAccessibilityZoom()
\r
733 * @brief This method should be overridden by deriving classes when they wish to respond
\r
734 * the accessibility zoom action.
\r
736 * @return true if the zoom action has been consumed by this control
\r
738 public virtual void OnFocusGained()
\r
743 * @brief Called when the control loses key input focus.
\r
745 * Should be overridden by derived classes if they need to customize what happens when focus is lost.
\r
747 public virtual void OnFocusLost()
\r
752 * @brief Gets the next keyboard focusable actor in this control towards the given direction.
\r
754 * A control needs to override this function in order to support two dimensional keyboard navigation.
\r
755 * @param[in] currentFocusedActor The current focused actor.
\r
756 * @param[in] direction The direction to move the focus towards.
\r
757 * @param[in] loopEnabled Whether the focus movement should be looped within the control.
\r
758 * @return the next keyboard focusable actor in this control or an empty handle if no actor can be focused.
\r
760 public virtual View GetNextFocusableView(View currentFocusedView, View.FocusDirection direction, bool loopEnabled)
\r
766 * @brief Informs this control that its chosen focusable actor will be focused.
\r
768 * This allows the application to preform any actions if wishes
\r
769 * before the focus is actually moved to the chosen actor.
\r
771 * @param[in] commitedFocusableActor The commited focusable actor.
\r
773 public virtual void OnFocusChangeCommitted(View commitedFocusableView)
\r
779 * @brief This method is called when the control has enter pressed on it.
\r
781 * Derived classes should override this to perform custom actions.
\r
782 * @return true if this control supported this action.
\r
784 public virtual bool OnKeyEnter()
\r
791 * @brief Called whenever a pinch gesture is detected on this control.
\r
793 * This can be overridden by deriving classes when pinch detection
\r
794 * is enabled. The default behaviour is to scale the control by the
\r
797 * @param[in] pinch The pinch gesture.
\r
798 * @note If overridden, then the default behaviour will not occur.
\r
799 * @note Pinch detection should be enabled via EnableGestureDetection().
\r
800 * @see EnableGestureDetection
\r
802 internal virtual void OnPinch(PinchGesture pinch)
\r
807 * @brief Called whenever a pan gesture is detected on this control.
\r
809 * This should be overridden by deriving classes when pan detection
\r
812 * @param[in] pan The pan gesture.
\r
813 * @note There is no default behaviour with panning.
\r
814 * @note Pan detection should be enabled via EnableGestureDetection().
\r
815 * @see EnableGestureDetection
\r
817 internal virtual void OnPan(PanGesture pan)
\r
822 * @brief Called whenever a tap gesture is detected on this control.
\r
824 * This should be overridden by deriving classes when tap detection
\r
827 * @param[in] tap The tap gesture.
\r
828 * @note There is no default behaviour with a tap.
\r
829 * @note Tap detection should be enabled via EnableGestureDetection().
\r
830 * @see EnableGestureDetection
\r
832 internal virtual void OnTap(TapGesture tap)
\r
837 * @brief Called whenever a long press gesture is detected on this control.
\r
839 * This should be overridden by deriving classes when long press
\r
840 * detection is enabled.
\r
842 * @param[in] longPress The long press gesture.
\r
843 * @note There is no default behaviour associated with a long press.
\r
844 * @note Long press detection should be enabled via EnableGestureDetection().
\r
845 * @see EnableGestureDetection
\r
847 internal virtual void OnLongPress(LongPressGesture longPress)
\r
851 private void SignalConnected(SlotObserver slotObserver, SWIGTYPE_p_Dali__CallbackBase callback)
\r
855 private void SignalDisconnected(SlotObserver slotObserver, SWIGTYPE_p_Dali__CallbackBase callback)
\r
859 private void OnControlChildAdd(Actor child)
\r
863 private void OnControlChildRemove(Actor child)
\r
867 public enum ViewBehaviour
\r
869 ViewBehaviourDefault = 0,
\r
870 DisableSizeNegotiation = 1 << 0,
\r
871 RequiresKeyboardNavigationSupport = 1 << 5,
\r
872 DisableStyleChangeSignals = 1 << 6,
\r
873 LastViewBehaviourFlag
\r