From: shiva.jm Date: Wed, 26 Oct 2016 10:10:53 +0000 (+0530) Subject: Add High Level classes for Color, Size, Position X-Git-Tag: dali_1.2.12~3 X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=commitdiff_plain;h=1820cf3dc1c6b820bf57191cf4b498d9fa197e1b;hp=bf2eda7638e589025bfe84eb10d44922400faec9 Add High Level classes for Color, Size, Position Change-Id: I9713750c2a405f7f1b3fa3fa586fb9130229fc93 Signed-off-by: shiva.jm --- diff --git a/plugins/dali-swig/SWIG/events/stage-event.i b/plugins/dali-swig/SWIG/events/stage-event.i index 1ee8579..c370aae 100644 --- a/plugins/dali-swig/SWIG/events/stage-event.i +++ b/plugins/dali-swig/SWIG/events/stage-event.i @@ -524,16 +524,17 @@ public class SceneCreatedEventArgs : EventArgs } } - public Vector2 Size + public Dali.Size Size { get { - Vector2 ret = GetSize(); + Vector2 ret1 = GetSize(); + Dali.Size ret= new Size(ret1); return ret; } } - public Vector4 BackgroundColor + public Dali.Color BackgroundColor { set { @@ -541,7 +542,8 @@ public class SceneCreatedEventArgs : EventArgs } get { - Vector4 ret = GetBackgroundColor(); + Vector4 ret1 = GetBackgroundColor(); + Dali.Color ret = new Color(ret1); return ret; } } diff --git a/plugins/dali-swig/examples/dali-test.cs b/plugins/dali-swig/examples/dali-test.cs index 491bd95..2ad3b17 100644 --- a/plugins/dali-swig/examples/dali-test.cs +++ b/plugins/dali-swig/examples/dali-test.cs @@ -62,9 +62,9 @@ namespace MyCSharpExample Console.WriteLine("Actor name: " + actor.Name); Stage stage = Stage.GetCurrent(); - stage.BackgroundColor = NDalic.WHITE ; + stage.BackgroundColor = new Color("white") ; - Vector2 stageSize = stage.Size; + Size stageSize = stage.Size; Console.WriteLine("Stage size: " + stageSize.x + ", " + stageSize.y); stage.Add(actor); @@ -128,16 +128,16 @@ namespace MyCSharpExample Console.WriteLine( " Area = " + rd2.Area() ); Console.WriteLine( " *************************" ); - Vector2 vector2 = new Vector2(100, 50); - Console.WriteLine( " Created " + vector2 ); - Console.WriteLine( " Vector2 x = " + vector2.x + ", y = " + vector2.y ); - vector2 += new Vector2(20, 20); - Console.WriteLine( " Vector2 x = " + vector2[0] + ", y = " + vector2[1] ); - vector2.x += 10; - vector2.y += 10; - Console.WriteLine( " Vector2 width = " + vector2.width + ", height = " + vector2.height ); - vector2 += new Vector2(15, 15); - Console.WriteLine( " Vector2 width = " + vector2[0] + ", height = " + vector2[1] ); + Size Size = new Size(100, 50); + Console.WriteLine( " Created " + Size ); + Console.WriteLine( " Size x = " + Size.x + ", y = " + Size.y ); + Size += new Size(20, 20); + Console.WriteLine( " Size x = " + Size[0] + ", y = " + Size[1] ); + Size.x += 10; + Size.y += 10; + Console.WriteLine( " Size width = " + Size.width + ", height = " + Size.height ); + Size += new Size(15, 15); + Console.WriteLine( " Size width = " + Size[0] + ", height = " + Size[1] ); Console.WriteLine( " *************************" ); Vector3 vector3 = new Vector3(20, 100, 50); diff --git a/plugins/dali-swig/examples/hello-world.cs b/plugins/dali-swig/examples/hello-world.cs index 6ab2569..7853ce3 100755 --- a/plugins/dali-swig/examples/hello-world.cs +++ b/plugins/dali-swig/examples/hello-world.cs @@ -38,7 +38,7 @@ namespace MyCSharpExample { Console.WriteLine("Customized Application Initialize event handler"); Stage stage = Stage.GetCurrent(); - stage.BackgroundColor = NDalic.WHITE; + stage.BackgroundColor = new Color("white"); stage.Touched += OnStageTouched; diff --git a/plugins/dali-swig/examples/scroll-view.cs b/plugins/dali-swig/examples/scroll-view.cs index 93554fc..342c82b 100644 --- a/plugins/dali-swig/examples/scroll-view.cs +++ b/plugins/dali-swig/examples/scroll-view.cs @@ -50,12 +50,12 @@ namespace MyCSharpExample private void CreateScrollView() { Stage stage = Stage.GetCurrent(); - stage.BackgroundColor = NDalic.WHITE; + stage.BackgroundColor = new Color("white"); // Create a scroll view _scrollView = new ScrollView(); - Vector2 stageSize = stage.Size; - _scrollView.Size = new Vector3(stageSize.x, stageSize.y, 0.0f); + Size stageSize = stage.Size; + _scrollView.Size = new Position(stageSize.x, stageSize.y, 0.0f); _scrollView.ParentOrigin = NDalic.ParentOriginCenter; _scrollView.AnchorPoint = NDalic.AnchorPointCenter; stage.Add(_scrollView); @@ -71,13 +71,13 @@ namespace MyCSharpExample pageActor.SetResizePolicy(ResizePolicyType.FILL_TO_PARENT, DimensionType.ALL_DIMENSIONS); pageActor.ParentOrigin = NDalic.ParentOriginCenter; pageActor.AnchorPoint = NDalic.AnchorPointCenter; - pageActor.Position = new Vector3(pageColumn * stageSize.x, pageRow * stageSize.y, 0.0f); + pageActor.Position = new Position(pageColumn * stageSize.x, pageRow * stageSize.y, 0.0f); // Add images in a 3x4 grid layout for each page int imageRows = 4; int imageColumns = 3; float margin = 10.0f; - Vector3 imageSize = new Vector3((stageSize.x / imageColumns) - margin, (stageSize.y / imageRows) - margin, 0.0f); + Position imageSize = new Position((stageSize.x / imageColumns) - margin, (stageSize.y / imageRows) - margin, 0.0f); for(int row = 0; row < imageRows; row++) { @@ -88,7 +88,7 @@ namespace MyCSharpExample imageView.ParentOrigin = NDalic.ParentOriginCenter; imageView.AnchorPoint = NDalic.AnchorPointCenter; imageView.Size = imageSize; - imageView.Position = new Vector3( margin * 0.5f + (imageSize.x + margin) * column - stageSize.x * 0.5f + imageSize.x * 0.5f, + imageView.Position = new Position( margin * 0.5f + (imageSize.x + margin) * column - stageSize.x * 0.5f + imageSize.x * 0.5f, margin * 0.5f + (imageSize.y + margin) * row - stageSize.y * 0.5f + imageSize.y * 0.5f, 0.0f ); pageActor.Add(imageView); } @@ -115,7 +115,7 @@ namespace MyCSharpExample _scrollBar.AnchorPoint = NDalic.AnchorPointTopLeft; _scrollBar.SetResizePolicy(ResizePolicyType.FIT_TO_CHILDREN, DimensionType.WIDTH); _scrollBar.SetResizePolicy(ResizePolicyType.FILL_TO_PARENT, DimensionType.HEIGHT); - _scrollBar.Orientation = new Quaternion( new Radian( new Degree( 270.0f ) ), Vector3.ZAXIS ); + _scrollBar.Orientation = new Quaternion( new Radian( new Degree( 270.0f ) ), Position.ZAXIS ); _scrollBar.SetScrollDirection(ScrollBar.Direction.Horizontal); _scrollView.Add(_scrollBar); @@ -166,8 +166,8 @@ namespace MyCSharpExample _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)); + _animation.AnimateTo(new Property(_text, Actor.Property.ORIENTATION), new Property.Value(new Quaternion( new Radian( new Degree( 180.0f ) ), Position.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 ) ), Position.XAXIS )), new AlphaFunction(AlphaFunction.BuiltinFunction.LINEAR), new TimePeriod(0.5f, 0.5f)); // Connect the signal callback for animaiton finished signal _animation.Finished += AnimationFinished; @@ -183,7 +183,7 @@ namespace MyCSharpExample Console.WriteLine("View OnRelayoutEventArgs EVENT callback...."); // Set the correct scroll bar size after size negotiation of scroll view is done - _scrollBar.Size = new Vector3(0.0f, _scrollView.GetRelayoutSize(DimensionType.WIDTH), 0.0f); + _scrollBar.Size = new Position(0.0f, _scrollView.GetRelayoutSize(DimensionType.WIDTH), 0.0f); } public void MainLoop() diff --git a/plugins/dali-swig/manual/csharp/Color.cs b/plugins/dali-swig/manual/csharp/Color.cs new file mode 100644 index 0000000..2d8ef92 --- /dev/null +++ b/plugins/dali-swig/manual/csharp/Color.cs @@ -0,0 +1,173 @@ +namespace Dali { + +using System; + +public class Color : Vector4 + { + /** + * @brief constructor + * + * @since 1.0.0 + */ + public Color() + : base() + { } + /** + * @brief constructor + * + * @since 1.0.0 + * @param [in] red The Color r. + * @param [in] green The Color g. + * @param [in] blue The Color b. + * @param [in] alpha The Color a. + */ + public Color(float red, float green, float blue, float alpha) + : base(red, green, blue, alpha) + { } + + /** + * @brief constructor + * + * @since 1.0.0 + * @param [in] o The Vector Position r, g, b, a. + */ + public Color(Vector4 o) + : base(o.x, o.y, o.z, o.w) + { + + } + + /** + * @brief constructor + * + * @since 1.0.0 + * @param [in] color as string. + */ + public Color(string color) + : base(0, 0, 0, 0) + { + switch (color) + { + case "red": + SetColor(255, 0, 0, 255); + break; + case "white": + SetColor(255, 255, 255, 255); + break; + case "blue": + SetColor(0, 0, 255, 255); + break; + case "green": + SetColor(0, 255, 0, 255); + break; + case "black": + SetColor(0, 0, 0, 255); + break; + case "grey": + SetColor(128, 128, 128, 255); + break; + case "yellow": + SetColor(255, 255, 0, 255); + break; + case "azure": + SetColor(0, 255, 255, 255); + break; + case "rose": + SetColor(255, 0, 255, 255); + break; + } + } + + /** + * @brief SetColor + * + * @since 1.0.0 + * @param [in] red The Color r. + * @param [in] green The Color g. + * @param [in] blue The Color b. + * @param [in] alpha The Color a. + */ + public void SetColor(float red, float green, float blue, float alpha) + { + r = red; + g = green; + b = blue; + a = alpha; + } + + ///< name "R", type float (Color R value) + //@since 1.0.0 + public float R + { + get { return r; } + set { r = value; } + } + + ///< name "G", type float (Color G value) + //@since 1.0.0 + public float G + { + get { return g; } + set { g = value; } + } + + ///< name "B", type float (Color B value) + //@since 1.0.0 + public float B + { + get { return b; } + set { b = value; } + } + + ///< name "A", type float (Color A value) + //@since 1.0.0 + public float A + { + get { return a; } + set { a = value; } + } + + /** + * @brief Equals + * + * @since 1.0.0 + * @param [in] o The Color object to compare. + * @param [in] r The Color to add + * @return bool, whether object equal or not + */ + public override bool Equals(object obj) + { + Color l = this; + Color r = obj as Color; + if (r == null) + { + return false; + } + return l.R == r.R && l.G == r.G && l.B == r.B && l.A == r.A; + } + + /** + * @brief GetHashCode + * + * @since 1.0.0 + * @return int, hascode of Color + */ + public override int GetHashCode() + { + return base.GetHashCode(); + } + + /** + * @brief Clone + * + * @since 1.0.0 + * @return Color object + */ + public Color Clone() + { + Color copy = new Color(R, G, B, A); + return copy; + } + } + +} diff --git a/plugins/dali-swig/manual/csharp/Position.cs b/plugins/dali-swig/manual/csharp/Position.cs new file mode 100644 index 0000000..0cde598 --- /dev/null +++ b/plugins/dali-swig/manual/csharp/Position.cs @@ -0,0 +1,160 @@ +namespace Dali { + +using System; + +public class Position : Vector3 + { + + /** + * @brief constructor + * + * @since 1.0.0 + */ + public Position() + : base() + { + } + + /** + * @brief constructor + * + * @since 1.0.0 + * @param [in] a The Position X. + * @param [in] b The Position Y. + * @param [in] c The Position Z. + */ + public Position(float a, float b, float c) + : base(a, b, c) + { + } + + /** + * @brief constructor + * + * @since 1.0.0 + * @param [in] o The Vector Position X, Y, Z. + */ + public Position(Vector3 o) + : base(o.x, o.y, o.z) + { + } + + ///< name "X", type float (Position X value) + //@since 1.0.0 + public float X + { + get { return width; } + set { width = value; } + } + + ///< name "Y", type float (Position Y value) + //@since 1.0.0 + public float Y + { + get { return height; } + set { height = value; } + } + + ///< name "Z", type float (Position Z value) + //@since 1.0.0 + public float Z + { + get { return depth; } + set { depth = value; } + } + + /** + * @brief operator+ + * + * @since 1.0.0 + * @param [in] l The Position to add. + * @param [in] r The Position to add + * @return A reference to this + */ + public static Position operator +(Position l, Position r) + { + return new Position(l.X + r.X, l.Y + r.Y, l.Z + r.Z); + } + + /** + * @brief operator- + * + * @since 1.0.0 + * @param [in] l The Position to add. + * @param [in] r The Position to add + * @return A reference to this + */ + public static Position operator -(Position l, Position r) + { + return new Position(l.X - r.X, l.Y - r.Y, l.Z - r.Z); + } + + /** + * @brief operator* + * + * @since 1.0.0 + * @param [in] l The Position to add. + * @param [in] r The Position to add + * @return A reference to this + */ + public static Position operator *(Position a, double b) + { + return new Position((int)(a.X * b), (int)(a.Y * b), (int)(a.Z * b)); + } + + /** + * @brief operator/ + * + * @since 1.0.0 + * @param [in] l The Position to add. + * @param [in] r The Position to add + * @return A reference to this + */ + public static float operator /(Position a, Position b) + { + return (float)System.Math.Sqrt((a.X / b.X) * (a.Y / b.Y) * (a.Z / b.Z)); + } + + /** + * @brief Equals + * + * @since 1.0.0 + * @param [in] o The Position object to compare. + * @param [in] r The Position to add + * @return bool, whether object equal or not + */ + public override bool Equals(object obj) + { + Position r = obj as Position; + if (r == null) + { + return false; + } + return this.X == r.X && this.Y == r.Y && this.Z == r.Z; + } + + /** + * @brief GetHashCode + * + * @since 1.0.0 + * @return int, hascode of position + */ + public override int GetHashCode() + { + return base.GetHashCode(); + } + + /** + * @brief Clone + * + * @since 1.0.0 + * @return Positin object + */ + public Position Clone() + { + Position copy = new Position(X, Y, Z); + return copy; + } + } + +} diff --git a/plugins/dali-swig/manual/csharp/Size.cs b/plugins/dali-swig/manual/csharp/Size.cs new file mode 100644 index 0000000..79f2dff --- /dev/null +++ b/plugins/dali-swig/manual/csharp/Size.cs @@ -0,0 +1,161 @@ +namespace Dali { + +using System; + +public class Size : Vector2 + { + + /** + * @brief constructor + * + * @since 1.0.0 + * @param [in] a The Size X. + * @param [in] b The Size Y. + */ + public Size(float a, float b) + : base(a, b) + { + } + /** + * @brief constructor + * + * @since 1.0.0 + */ + public Size() + : base() + { + } + + /** + * @brief constructor + * + * @since 1.0.0 + * @param [in] o The Vector Size X, Y. + */ + public Size(Vector2 o) + : base(o.x, o.y) + { + + } + + /** + * @brief constructor + * + * @since 1.0.0 + * @param [in] o The Size X, Y. + */ + public Size(Size a) + : base(a.width, a.height) + { + } + + ///< name "W", type float (Size W value) + //@since 1.0.0 + public float W + { + get { return width; } + set { width = value; } + } + + ///< name "H", type float (Size W value) + //@since 1.0.0 + public float H + { + get { return height; } + set { height = value; } + } + + /** + * @brief operator+ + * + * @since 1.0.0 + * @param [in] l The Size to add. + * @param [in] r The Size to add + * @return A reference to this + */ + public static Size operator +(Size l, Size r) + { + return new Size(l.W + r.W, l.H + r.H); + } + + /** + * @brief operator- + * + * @since 1.0.0 + * @param [in] l The Size to add. + * @param [in] r The Size to add + * @return A reference to this + */ + public static Size operator -(Size l, Size r) + { + return new Size(l.W - r.W, l.H - r.H); + } + + /** + * @brief operator* + * + * @since 1.0.0 + * @param [in] l The Size to add. + * @param [in] r The Size to add + * @return A reference to this + */ + public static Size operator *(Size a, double b) + { + return new Size((int)(a.W * b), (int)(a.H * b)); + } + + /** + * @brief operator/ + * + * @since 1.0.0 + * @param [in] l The Size to add. + * @param [in] r The Size to add + * @return A reference to this + */ + public static float operator /(Size a, Size b) + { + return (float)System.Math.Sqrt((a.W / b.W) * (a.H / b.H)); + } + + /** + * @brief Equals + * + * @since 1.0.0 + * @param [in] o The Size object to compare. + * @param [in] r The Size to add + * @return bool, whether object equal or not + */ + public override bool Equals(object obj) + { + Size that = obj as Size; + if (that == null) + { + return false; + } + return this.W == that.W && this.H == that.H; + } + + /** + * @brief GetHashCode + * + * @since 1.0.0 + * @return int, hascode of Size + */ + public override int GetHashCode() + { + return (int)(W + H); + } + + /** + * @brief Clone + * + * @since 1.0.0 + * @return Size object + */ + public Size Clone() + { + Size copy = new Size(W, H); + return copy; + } + } +}