X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=blobdiff_plain;f=plugins%2Fdali-swig%2Fexamples%2Fhello-world.cs;h=60c779129ed110ef9f31f0ba81887fc1fe60cde8;hp=d96d9777daa78425c9e0947bce4ffb13921c3af4;hb=1730389b12a4a189b54c04ce357a7dba026dd7b8;hpb=b34b7545bf6bb2526b2a0544868a4aec8ee16335 diff --git a/plugins/dali-swig/examples/hello-world.cs b/plugins/dali-swig/examples/hello-world.cs index d96d977..60c7791 100755 --- a/plugins/dali-swig/examples/hello-world.cs +++ b/plugins/dali-swig/examples/hello-world.cs @@ -1,99 +1,113 @@ /* - * Copyright (c) 2016 Samsung Electronics Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ +* Copyright (c) 2016 Samsung Electronics Co., Ltd. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +* +*/ using System; using System.Runtime.InteropServices; using Dali; +using Dali.Constants; namespace MyCSharpExample { class Example { - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - delegate void CallbackDelegate(IntPtr data); - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - delegate void TouchCallbackDelegate(IntPtr data); - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - delegate void AnimationCallbackDelegate(IntPtr data); - private Dali.Application _application; - private Animation _animation; private TextLabel _text; + private Stage _stage; public Example(Dali.Application application) { _application = application; - - CallbackDelegate initializeCallback = new CallbackDelegate( Initialize ); - _application.InitSignal().Connect( initializeCallback ); + _application.Initialized += Initialize; } - private void Initialize(IntPtr appPtr) + public void Initialize(object source, NUIApplicationInitEventArgs e) { - Stage stage = Stage.GetCurrent(); - stage.SetBackgroundColor( NDalic.WHITE ); - - // Connect the signal callback for stage touched signal - TouchCallbackDelegate stageTouchedCallback = new TouchCallbackDelegate( OnStageTouched ); - stage.TouchSignal().Connect( stageTouchedCallback ); + Console.WriteLine("Customized Application Initialize event handler"); + _stage = Stage.Instance; + _stage.BackgroundColor = Color.White; + _stage.Touch += OnStageTouched; // Add a _text label to the stage _text = new TextLabel("Hello Mono World"); - _text.ParentOrigin = NDalic.ParentOriginCenter; - _text.AnchorPoint = NDalic.AnchorPointCenter; + _text.ParentOrigin = ParentOrigin.Center; + _text.AnchorPoint = AnchorPoint.Center; _text.HorizontalAlignment = "CENTER"; _text.PointSize = 32.0f; + _text.TextColor = Color.Magenta; + _stage.Add(_text); - stage.Add(_text); + _animation = new Animation + { + StartTime = 0, + EndTime = 500, + TargetProperty = "Orientation", + Destination = new Rotation(new Radian(new Degree(180.0f)), PositionAxis.X) + }; + _animation.AnimateTo(_text); + + _animation.StartTime = 500; + _animation.EndTime = 1000; + _animation.TargetProperty = "Orientation"; + _animation.Destination = new Rotation(new Radian(new Degree(0.0f)), PositionAxis.X); + _animation.AnimateTo(_text); + + _animation.StartTime = 1000; + _animation.EndTime = 1500; + _animation.TargetProperty = "ScaleX"; + _animation.Destination = 3.0f; + _animation.AnimateBy(_text); + + _animation.StartTime = 1500; + _animation.EndTime = 2000; + _animation.TargetProperty = "ScaleY"; + _animation.Destination = 4.0f; + _animation.AnimateBy(_text); + + _animation.EndAction = Animation.EndActions.Discard; + + // Connect the signal callback for animaiton finished signal + _animation.Finished += AnimationFinished; } // Callback for _animation finished signal handling - private void AnimationFinished(IntPtr data) + public void AnimationFinished(object sender, EventArgs e) { - Animation _animation = Animation.GetAnimationFromPtr( data ); - Console.WriteLine("Animation finished: duration = " + _animation.GetDuration()); + Console.WriteLine("AnimationFinished()!"); + if (_animation) + { + Console.WriteLine("Duration= " + _animation.Duration); + Console.WriteLine("EndAction= " + _animation.EndAction); + } } // Callback for stage touched signal handling - private void OnStageTouched(IntPtr data) + public void OnStageTouched(object sender, Stage.TouchEventArgs e) { - TouchData touchData = TouchData.GetTouchDataFromPtr( data ); - // Only animate the _text label when touch down happens - if( touchData.GetState(0) == PointStateType.DOWN ) + if (e.Touch.GetState(0) == PointStateType.DOWN) { + Console.WriteLine("Customized Stage Touch event handler"); + // Create a new _animation - if( _animation ) + if (_animation) { - _animation.Reset(); + _animation.Stop(); } - - _animation = new Animation(1.0f); // 1 second of duration - - _animation.AnimateTo(new Property(_text, Actor.Property.ORIENTATION), new Property.Value(new Quaternion( new Radian( new Degree( 180.0f ) ), Vector3.XAXIS )), new AlphaFunction(AlphaFunction.BuiltinFunction.LINEAR), new TimePeriod(0.0f, 0.5f)); - _animation.AnimateTo(new Property(_text, Actor.Property.ORIENTATION), new Property.Value(new Quaternion( new Radian( new Degree( 0.0f ) ), Vector3.XAXIS )), new AlphaFunction(AlphaFunction.BuiltinFunction.LINEAR), new TimePeriod(0.5f, 0.5f)); - - // Connect the signal callback for animaiton finished signal - AnimationCallbackDelegate animFinishedDelegate = new AnimationCallbackDelegate( AnimationFinished ); - _animation.FinishedSignal().Connect( animFinishedDelegate ); - // Play the _animation _animation.Play(); } @@ -101,20 +115,20 @@ namespace MyCSharpExample public void MainLoop() { - _application.MainLoop (); + _application.MainLoop(); } /// /// The main entry point for the application. /// - [STAThread] static void Main(string[] args) { - Console.WriteLine ("Hello Mono World"); + Console.WriteLine("Main() called!"); Example example = new Example(Application.NewApplication()); - example.MainLoop (); + example.MainLoop(); } } } +