From 6a1a97d83c97a4a2aa8db20300336556a5c79cb0 Mon Sep 17 00:00:00 2001 From: Umar Date: Wed, 15 Mar 2017 11:05:01 +0000 Subject: [PATCH] Visuals using Custom View example Change-Id: I9a98c47f572cba0ddb25fc8c35538c5e88df1758 --- plugins/dali-swig/Makefile.am | 4 + .../dali-swig/examples/images/gallery-small-43.jpg | Bin 0 -> 24249 bytes .../visuals-using-custom-view/ContactData.cs | 111 ++++++++++++ .../visuals-using-custom-view/ContactView.cs | 195 +++++++++++++++++++++ .../visuals-using-custom-view.cs | 82 +++++++++ plugins/dali-swig/manual/csharp/CustomView.cs | 3 + plugins/dali-swig/manual/csharp/ViewWrapperImpl.cs | 5 +- 7 files changed, 399 insertions(+), 1 deletion(-) create mode 100644 plugins/dali-swig/examples/images/gallery-small-43.jpg create mode 100644 plugins/dali-swig/examples/visuals-using-custom-view/ContactData.cs create mode 100644 plugins/dali-swig/examples/visuals-using-custom-view/ContactView.cs create mode 100644 plugins/dali-swig/examples/visuals-using-custom-view/visuals-using-custom-view.cs diff --git a/plugins/dali-swig/Makefile.am b/plugins/dali-swig/Makefile.am index 27bec6c..2ed3252 100755 --- a/plugins/dali-swig/Makefile.am +++ b/plugins/dali-swig/Makefile.am @@ -55,11 +55,15 @@ check-local: examples/dali-test.exe \ examples/user-alphafunction.exe \ examples/image-view.exe \ examples/visuals-example.exe \ + examples/visuals-using-custom-view.exe \ examples/libNDalic.so examples/NDali.dll examples/%.exe: examples/%.cs $(MCS) -nologo -target:exe -out:$@ -reference:NDali.dll $< +examples/visuals-using-custom-view.exe: examples/visuals-using-custom-view/*.cs + $(MCS) -nologo -target:exe -out:$@ -reference:NDali.dll $^ + examples/libNDalic.so: libNDalic.so cd examples && ln -sf ../libNDalic.so diff --git a/plugins/dali-swig/examples/images/gallery-small-43.jpg b/plugins/dali-swig/examples/images/gallery-small-43.jpg new file mode 100644 index 0000000000000000000000000000000000000000..c59b841d1a5f3bd6670db27fa7f34cd7128dd50d GIT binary patch literal 24249 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 Hb{PNJ2!?b~ literal 0 HcmV?d00001 diff --git a/plugins/dali-swig/examples/visuals-using-custom-view/ContactData.cs b/plugins/dali-swig/examples/visuals-using-custom-view/ContactData.cs new file mode 100644 index 0000000..4a1e058 --- /dev/null +++ b/plugins/dali-swig/examples/visuals-using-custom-view/ContactData.cs @@ -0,0 +1,111 @@ +/* + * Copyright (c) 2017 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 Dali; +using Dali.Constants; + +namespace VisualsUsingCustomView +{ + // The collection of contacts + static class ContactsList + { + public static readonly ContactItem[] s_contactData = new ContactItem[] + { + new ContactItem ("Emmett Yates", "./images/gallery-small-43.jpg", + new Color((73.0f/255.0f),(182.0f/255.0f), (245.0f/255.0f), 1.0f), + (int)PrimitiveVisualShapeType.CONE), + new ContactItem ("Leslie Wong", "./images/gallery-2.jpg", + new Color((51.0f/255.0f), (51.0f/255.0f), (102.0f/255.0f), 1.0f), + (int)PrimitiveVisualShapeType.SPHERE), + new ContactItem ("Walter Jensen", "./images/gallery-0.jpg", + new Color((151.0f/255.0f), (214.0f/255.0f), (240.0f/255.0f), 1.0f), + (int)PrimitiveVisualShapeType.CYLINDER), + new ContactItem ("Dan Haynes", "./images/gallery-1.jpg", + new Color((102.0f/255.0f), (251.0f/255.0f), (102.0f/255.0f), 1.0f), + (int)PrimitiveVisualShapeType.CONICAL_FRUSTRUM), + new ContactItem ("Mable Hodges", "./images/gallery-3.jpg", + new Color((255.0f/255.0f), (102.0f/255.0f), (102.0f/255.0f), 1.0f), + (int)PrimitiveVisualShapeType.CUBE) + }; + } + + // The information for an individual contact + class ContactItem + { + private string _name; + private string _imageURL; + private Color _color; + private int _shape; + + public ContactItem (string name, string imageURL, Color color, int shape) + { + _name = name; + _imageURL = imageURL; + _color = color; + _shape = shape; + } + + public string ImageURL + { + get + { + return _imageURL; + } + set + { + _imageURL = value; + } + } + + public string Name + { + get + { + return _name; + } + set + { + _name = value; + } + } + + public Color Color + { + get + { + return _color; + } + set + { + _color = value; + } + } + + public int Shape + { + get + { + return _shape; + } + set + { + _shape = value; + } + } + } +} \ No newline at end of file diff --git a/plugins/dali-swig/examples/visuals-using-custom-view/ContactView.cs b/plugins/dali-swig/examples/visuals-using-custom-view/ContactView.cs new file mode 100644 index 0000000..f659b70 --- /dev/null +++ b/plugins/dali-swig/examples/visuals-using-custom-view/ContactView.cs @@ -0,0 +1,195 @@ +/* + * Copyright (c) 2017 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 Dali; +using Dali.Constants; + +// A ContactView is a Custom View which consists of four visuals (Image, Primitive, Text and Color). +// All of these visuals can be configured via properties - ImageURL (Image), Shape (Primitive), Name (Text) and Color. +// Tap gesture is also enabled on the ContactView which changes the color visual to some random color when ContactView is tapped. + +namespace VisualsUsingCustomView +{ + public class ContactView : CustomView + { + private const int ColorVisualPropertyIndex = 0; + private const int PrimitiveVisualPropertyIndex = 1; + private const int ImageVisualPropertyIndex = 2; + private const int TextVisualPropertyIndex = 3; + private VisualBase _imageVisual; + private VisualBase _colorVisual; + private VisualBase _primitiveVisual; + private VisualBase _textVisual; + private int _shape; + private string _imageURL; + private string _name; + private Color _color; + + public ContactView() : base(typeof(ContactView).Name, ViewWrapperImpl.CustomViewBehaviour.REQUIRES_KEYBOARD_NAVIGATION_SUPPORT) + { + } + + public string ImageURL + { + get + { + return _imageURL; + } + set + { + _imageURL = value; + + // Create and Register Image Visual + Dali.Property.Map imageVisual = new Dali.Property.Map(); + imageVisual.Add( Visual.Property.Type, new Dali.Property.Value( (int)Visual.Type.Image )) + .Add( ImageVisualProperty.URL, new Dali.Property.Value( _imageURL )); + _imageVisual = VisualFactory.Get().CreateVisual( imageVisual ); + RegisterVisual( ImageVisualPropertyIndex, _imageVisual ); + + // Set the depth index for Image visual + _imageVisual.SetDepthIndex(ImageVisualPropertyIndex); + } + } + + public string Name + { + get + { + return _name; + } + set + { + _name = value; + + // Create and Register Text Visual + Dali.Property.Map textVisual = new Dali.Property.Map(); + textVisual.Add(Visual.Property.Type, new Dali.Property.Value((int)Visual.Type.Text)) + .Add(TextVisualProperty.Text, new Dali.Property.Value(_name)) + .Add(TextVisualProperty.TextColor, new Dali.Property.Value(Dali.Color.White)) + .Add(TextVisualProperty.PointSize, new Dali.Property.Value(15)) + .Add( TextVisualProperty.HorizontalAlignment, new Dali.Property.Value("CENTER")) + .Add( TextVisualProperty.VerticalAlignment, new Dali.Property.Value("CENTER")); + _textVisual = VisualFactory.Get().CreateVisual( textVisual ); + RegisterVisual( TextVisualPropertyIndex, _textVisual ); + + // Set the depth index for Text visual + _textVisual.SetDepthIndex(TextVisualPropertyIndex); + } + } + + public Color Color + { + get + { + return _color; + } + set + { + _color = value; + + // Create and Register Color Visual + Dali.Property.Map colorVisual = new Dali.Property.Map(); + colorVisual.Add( Visual.Property.Type, new Dali.Property.Value( (int)Visual.Type.Color )) + .Add( ColorVisualProperty.MixColor, new Dali.Property.Value( _color )); + _colorVisual = VisualFactory.Get().CreateVisual( colorVisual ); + RegisterVisual( ColorVisualPropertyIndex, _colorVisual ); + + // Set the depth index for Color visual + _colorVisual.SetDepthIndex(ColorVisualPropertyIndex); + } + } + + public int Shape + { + get + { + return _shape; + } + set + { + _shape = value; + + // Create and Register Primitive Visual + Dali.Property.Map primitiveVisual = new Dali.Property.Map(); + primitiveVisual.Add( Visual.Property.Type, new Dali.Property.Value( (int)Visual.Type.Primitive )) + .Add( PrimitiveVisualProperty.Shape, new Dali.Property.Value(_shape)) + .Add( PrimitiveVisualProperty.BevelPercentage, new Dali.Property.Value(0.3f)) + .Add( PrimitiveVisualProperty.BevelSmoothness, new Dali.Property.Value(0.0f)) + .Add( PrimitiveVisualProperty.ScaleDimensions, new Dali.Property.Value(new Vector3(1.0f,1.0f,0.3f))) + .Add( PrimitiveVisualProperty.MixColor, new Dali.Property.Value(new Vector4((245.0f/255.0f), (188.0f/255.0f), (73.0f/255.0f), 1.0f))); + _primitiveVisual = VisualFactory.Get().CreateVisual( primitiveVisual ); + RegisterVisual( PrimitiveVisualPropertyIndex, _primitiveVisual ); + + // Set the depth index for Primitive visual + _primitiveVisual.SetDepthIndex(PrimitiveVisualPropertyIndex); + } + } + + public override void OnInitialize() + { + // Enable Tap gesture on ContactView + EnableGestureDetection(Gesture.GestureType.Tap); + } + + public override void OnTap(TapGesture tap) + { + // Change the Color visual of ContactView with some random color + Random random = new Random(); + Color = new Color((random.Next(0, 256) / 255.0f), (random.Next(0, 256) / 255.0f), (random.Next(0, 256) / 255.0f), 1.0f); + } + + public override void OnRelayout(Vector2 size, RelayoutContainer container) + { + // Configure the transform and size of Image visual. + Dali.Property.Map imageVisualTransform = new Dali.Property.Map(); + imageVisualTransform.Add((int)VisualTransformPropertyType.OFFSET, new Dali.Property.Value(new Vector2(10.0f, 0.0f))) + .Add((int)VisualTransformPropertyType.OFFSET_SIZE_MODE, new Dali.Property.Value(new Vector4(1.0f, 1.0f, 1.0f, 1.0f))) + .Add((int)VisualTransformPropertyType.SIZE, new Dali.Property.Value(new Vector2(40.0f, 40.0f))) + .Add((int)VisualTransformPropertyType.ORIGIN, new Dali.Property.Value((int)AlignType.CENTER_BEGIN)) + .Add((int)VisualTransformPropertyType.ANCHOR_POINT, new Dali.Property.Value((int)AlignType.CENTER_BEGIN)); + _imageVisual.SetTransformAndSize(imageVisualTransform, size); + + // Configure the transform and size of Text visual. + Dali.Property.Map textVisualTransform = new Dali.Property.Map(); + textVisualTransform.Add((int)VisualTransformPropertyType.OFFSET, new Dali.Property.Value(new Vector2(0.0f, 0.0f))) + .Add((int)VisualTransformPropertyType.OFFSET_SIZE_MODE, new Dali.Property.Value(new Vector4(0.0f, 0.0f, 1.0f, 1.0f))) + .Add((int)VisualTransformPropertyType.SIZE, new Dali.Property.Value(new Vector2(size.X - 100.0f, 50.0f))) + .Add((int)VisualTransformPropertyType.ORIGIN, new Dali.Property.Value((int)Align.Type.Center)) + .Add((int)VisualTransformPropertyType.ANCHOR_POINT, new Dali.Property.Value((int)Align.Type.Center)); + _textVisual.SetTransformAndSize(textVisualTransform, size); + + // Configure the transform and size of Primitive visual. + Dali.Property.Map primitiveVisualTransform = new Dali.Property.Map(); + primitiveVisualTransform.Add((int)VisualTransformPropertyType.OFFSET, new Dali.Property.Value(new Vector2(size.X - 60.0f, 0.0f))) + .Add((int)VisualTransformPropertyType.OFFSET_SIZE_MODE, new Dali.Property.Value(new Vector4(1.0f, 1.0f, 1.0f, 1.0f))) + .Add((int)VisualTransformPropertyType.SIZE, new Dali.Property.Value(new Vector2(40.0f, 40.0f))) + .Add((int)VisualTransformPropertyType.ORIGIN, new Dali.Property.Value((int)AlignType.CENTER_BEGIN)) + .Add((int)VisualTransformPropertyType.ANCHOR_POINT, new Dali.Property.Value((int)AlignType.CENTER_BEGIN)); + _primitiveVisual.SetTransformAndSize(primitiveVisualTransform, size); + + // Configure the transform and size of Color visual. This is also the default value. + Dali.Property.Map colorVisualTransform = new Dali.Property.Map(); + colorVisualTransform.Add( (int)VisualTransformPropertyType.OFFSET, new Dali.Property.Value(new Vector2(0.0f,0.0f))) + .Add((int)VisualTransformPropertyType.OFFSET_SIZE_MODE, new Dali.Property.Value(new Vector4(0.0f, 0.0f, 0.0f, 0.0f))) + .Add( (int)VisualTransformPropertyType.SIZE, new Dali.Property.Value(new Vector2(1.0f, 1.0f)) ) + .Add( (int)VisualTransformPropertyType.ORIGIN, new Dali.Property.Value((int)AlignType.TOP_BEGIN) ) + .Add( (int)VisualTransformPropertyType.ANCHOR_POINT, new Dali.Property.Value((int)AlignType.TOP_BEGIN) ); + _colorVisual.SetTransformAndSize(colorVisualTransform, size); + } + } +} \ No newline at end of file diff --git a/plugins/dali-swig/examples/visuals-using-custom-view/visuals-using-custom-view.cs b/plugins/dali-swig/examples/visuals-using-custom-view/visuals-using-custom-view.cs new file mode 100644 index 0000000..b98a9ef --- /dev/null +++ b/plugins/dali-swig/examples/visuals-using-custom-view/visuals-using-custom-view.cs @@ -0,0 +1,82 @@ +/* + * Copyright (c) 2017 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 Dali; +using Dali.Constants; + +namespace VisualsUsingCustomView +{ + class VisualsExample + { + public VisualsExample(Application application) + { + application.Initialized += Initialize; + } + + private void Initialize(object source, NUIApplicationInitEventArgs e) + { + Stage stage = Stage.Instance; + stage.BackgroundColor = Color.White; + + TableView contentLayout = new TableView(14, 1); + contentLayout.Name = "ContentLayout"; + contentLayout.WidthResizePolicy = "FILL_TO_PARENT"; + contentLayout.HeightResizePolicy = "FILL_TO_PARENT"; + contentLayout.SetCellPadding(new Size(5.0f, 5.0f)); + contentLayout.BackgroundColor = new Color(0.949f, 0.949f, 0.949f, 1.0f); + + stage.GetDefaultLayer().Add(contentLayout); + + TextLabel title = new TextLabel("Contacts List with Visuals"); + title.Name = "Title"; + title.StyleName = "Title"; + title.WidthResizePolicy = "FILL_TO_PARENT"; + title.HeightResizePolicy = "USE_NATURAL_SIZE"; + title.HorizontalAlignment = "CENTER"; + contentLayout.Add(title); + contentLayout.SetFitHeight(0); + + // Create ContactView(s) from ContactItem(s) in ContactsList and add them to TableView + ContactView contactView; + foreach (ContactItem contact in ContactsList.s_contactData) + { + contactView = new ContactView(); + contactView.WidthResizePolicy = "FILL_TO_PARENT"; + contactView.HeightResizePolicy = "FILL_TO_PARENT"; + + // Configure visuals of ContactView via properties + contactView.Name = contact.Name; + contactView.ImageURL = contact.ImageURL; + contactView.Color = contact.Color; + contactView.Shape = contact.Shape; + contentLayout.Add(contactView); + } + } + + ///

+ /// The main entry point for the application. + /// + [STAThread] + static void Main(string[] args) + { + Application application = Application.NewApplication(); + VisualsExample visualsExample = new VisualsExample(application); + application.MainLoop(); + } + } +} \ No newline at end of file diff --git a/plugins/dali-swig/manual/csharp/CustomView.cs b/plugins/dali-swig/manual/csharp/CustomView.cs index 83540d3..a93b4f9 100644 --- a/plugins/dali-swig/manual/csharp/CustomView.cs +++ b/plugins/dali-swig/manual/csharp/CustomView.cs @@ -61,6 +61,9 @@ namespace Dali viewWrapperImpl.OnTap = new ViewWrapperImpl.OnTapDelegate(OnTap); viewWrapperImpl.OnLongPress = new ViewWrapperImpl.OnLongPressDelegate(OnLongPress); + // By default, we do not want the position to use the anchor point + this.PositionUsesAnchorPoint = false; + // Make sure CustomView is initialized. OnInitialize(); diff --git a/plugins/dali-swig/manual/csharp/ViewWrapperImpl.cs b/plugins/dali-swig/manual/csharp/ViewWrapperImpl.cs index 68fcef1..982c304 100644 --- a/plugins/dali-swig/manual/csharp/ViewWrapperImpl.cs +++ b/plugins/dali-swig/manual/csharp/ViewWrapperImpl.cs @@ -308,7 +308,10 @@ namespace Dali private void DirectorOnPropertySet(int index, global::System.IntPtr propertyValue) { - OnPropertySet(index, new Property.Value(propertyValue, true)); + if (OnPropertySet != null) + { + OnPropertySet(index, new Property.Value(propertyValue, true)); + } } private void DirectorOnSizeSet(global::System.IntPtr targetSize) -- 2.7.4