1 #ifndef __DALI_INTERNAL_ACTOR_ATTACHMENT_H__
2 #define __DALI_INTERNAL_ACTOR_ATTACHMENT_H__
5 // Copyright (c) 2014 Samsung Electronics Co., Ltd.
7 // Licensed under the Flora License, Version 1.0 (the License);
8 // you may not use this file except in compliance with the License.
9 // You may obtain a copy of the License at
11 // http://floralicense.org/license/
13 // Unless required by applicable law or agreed to in writing, software
14 // distributed under the License is distributed on an AS IS BASIS,
15 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 // See the License for the specific language governing permissions and
17 // limitations under the License.
21 #include <dali/public-api/object/ref-object.h>
32 * An abstract base class for attachments, such a renderable objects and lights.
33 * ActorAttachments must be attached to an actor, in order to be displayed.
35 class ActorAttachment : public Dali::RefObject
40 * Query whether the attachment is connected to the stage.
41 * @return True if the attachment is connected to the stage.
46 * Called by the attached actor, when connected to the Stage.
51 * Called by the attached actor, when the actor is disconnected from the Stage.
56 * Sets whether a renderable attachment is visible.
57 * By default attachments are visible.
58 * @param[in] visible True if the object is visible.
60 void SetVisible(bool visible);
63 * Retrieve whether a renderable attachment is visible.
64 * @return True if the object is visible.
66 bool IsVisible() const;
71 * Construct a new attachment.
72 * @param[in] stage Used to send messages to scene-graph.
74 ActorAttachment( Stage& stage );
77 * A reference counted object may only be deleted by calling Unreference()
79 virtual ~ActorAttachment();
84 ActorAttachment(const ActorAttachment&);
87 ActorAttachment& operator=(const ActorAttachment& rhs);
90 * For use in derived classes, called after ConnectToStage()
92 virtual void OnStageConnection() = 0;
95 * For use in derived classes, called after DisconnectFromStage()
97 virtual void OnStageDisconnection() = 0;
101 Stage* mStage; ///< Used to send messages to scene-graph; valid until Core destruction
103 bool mIsOnStage : 1; ///< Flag to identify whether the attachment is on-stage
106 } // namespace Internal
110 #endif // __DALI_INTERNAL_ACTOR_ATTACHMENT_H__