diff options
author | darkleem <cdark.lim@samsung.com> | 2017-05-30 16:07:58 +0900 |
---|---|---|
committer | darkleem <cdark.lim@samsung.com> | 2017-06-02 16:19:48 +0900 |
commit | a926e500087ee8523a02c37df98aeadb420f59f2 (patch) | |
tree | 395aaeefd3ce2d3ccef7dc17d60ea74af8c51f1a | |
parent | 2e64ba1ee3b6ff540e792d6ac53c3fef7e35a46c (diff) | |
download | elm-sharp-a926e500087ee8523a02c37df98aeadb420f59f2.tar.gz elm-sharp-a926e500087ee8523a02c37df98aeadb420f59f2.tar.bz2 elm-sharp-a926e500087ee8523a02c37df98aeadb420f59f2.zip |
Add border related function of ElmSharp.Image
- TASK=TCAPI-2285
Change-Id: Ic65b43e6d4c9d7b1d34e0890e0d01fcb7bf9f875
Signed-off-by: darkleem <cdark.lim@samsung.com>
-rwxr-xr-x | ElmSharp.Test/ElmSharp.Test.csproj | 1 | ||||
-rw-r--r-- | ElmSharp.Test/TC/ImageTest4.cs | 86 | ||||
-rw-r--r-- | ElmSharp/ElmSharp/Image.cs | 29 | ||||
-rw-r--r-- | ElmSharp/Interop/Interop.Evas.Image.cs | 6 |
4 files changed, 122 insertions, 0 deletions
diff --git a/ElmSharp.Test/ElmSharp.Test.csproj b/ElmSharp.Test/ElmSharp.Test.csproj index 9e0b6cf..5ab706f 100755 --- a/ElmSharp.Test/ElmSharp.Test.csproj +++ b/ElmSharp.Test/ElmSharp.Test.csproj @@ -47,6 +47,7 @@ <Compile Include="TC\BackgroundTest3.cs" /> <Compile Include="TC\EcoreTimerTest1.cs" /> <Compile Include="TC\GenListTest10.cs" /> + <Compile Include="TC\ImageTest4.cs" /> <Compile Include="TC\LabelTest4.cs" /> <Compile Include="TC\Log.cs" /> <Compile Include="TC\LabelTest5.cs" /> diff --git a/ElmSharp.Test/TC/ImageTest4.cs b/ElmSharp.Test/TC/ImageTest4.cs new file mode 100644 index 0000000..6c54c35 --- /dev/null +++ b/ElmSharp.Test/TC/ImageTest4.cs @@ -0,0 +1,86 @@ +/* + * Copyright (c) 2016 Samsung Electronics Co., Ltd All Rights Reserved + * + * 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.Diagnostics; +using System.IO; + +namespace ElmSharp.Test +{ + public class ImageTest4 : TestCaseBase + { + public override string TestName => "ImageTest4"; + public override string TestDescription => "To test border operation of Image"; + + Image image, image2; + + public override void Run(Window window) + { + Background bg = new Background(window); + bg.Color = Color.White; + bg.Move(0, 0); + bg.Resize(window.ScreenSize.Width, window.ScreenSize.Height); + bg.Show(); + + Button btnBorder = new Button(window) + { + Text = "Border Set : off", + }; + btnBorder.Move(10, 10); + btnBorder.Resize(300, 100); + btnBorder.Show(); + + Button btnBorderCenterFillMode = new Button(window) + { + Text = "BoderCenterFillMode", + }; + btnBorderCenterFillMode.Move(310, 10); + btnBorderCenterFillMode.Resize(300, 100); + btnBorderCenterFillMode.Show(); + + image2 = new Image(window); + image2.Load(Path.Combine(TestRunner.ResourceDir, "TED/large/a.jpg")); + image2.MinimumWidth = 300; + image2.MinimumHeight = 300; + image2.Move(50, 500); + image2.Resize(600, 500); + image2.Show(); + + image = new Image(window); + image.Load(Path.Combine(TestRunner.ResourceDir, "picture.png")); + image.MinimumWidth = image.ObjectSize.Width; + image.MinimumHeight = image.ObjectSize.Height; + image.Move(100, 600); + image.Resize(image.ObjectSize.Width, image.ObjectSize.Height); + image.Show(); + + + btnBorder.Clicked += (s, e) => + { + int nX = image.ObjectSize.Width / 6; + int nY = image.ObjectSize.Height / 6; + image.SetBorder(nX, nX, nY, nY); + btnBorder.Text = "Border Set : on"; + }; + + btnBorderCenterFillMode.Clicked += (s, e) => + { + image.BorderCenterFillMode = ((ImageBorderFillMode)Enum.ToObject(typeof(ImageBorderFillMode), ((int)image.BorderCenterFillMode + 1) % Enum.GetValues(typeof(ImageBorderFillMode)).Length)); + btnBorderCenterFillMode.Text = image.BorderCenterFillMode.ToString(); + }; + } + } +}
\ No newline at end of file diff --git a/ElmSharp/ElmSharp/Image.cs b/ElmSharp/ElmSharp/Image.cs index 7b5ce28..315e999 100644 --- a/ElmSharp/ElmSharp/Image.cs +++ b/ElmSharp/ElmSharp/Image.cs @@ -345,6 +345,28 @@ namespace ElmSharp } /// <summary> + /// Sets or gets if the center part of the given image object (not the border) should be drawn. + /// </summary> + /// <remarks> + /// When rendering, the image may be scaled to fit the size of the image object. + /// This function sets if the center part of the scaled image is to be drawn or left completely blank, or forced to be solid. + /// Very useful for frames and decorations. + /// </remarks> + public ImageBorderFillMode BorderCenterFillMode + { + get + { + IntPtr evasObj = Interop.Elementary.elm_image_object_get(RealHandle); + return (ImageBorderFillMode)Interop.Evas.evas_object_image_border_center_fill_get(evasObj); + } + set + { + IntPtr evasObj = Interop.Elementary.elm_image_object_get(RealHandle); + Interop.Evas.evas_object_image_border_center_fill_set(evasObj, (int)value); + } + } + + /// <summary> /// Sets the file that is used as the image's source. /// </summary> /// <param name="file">The path to the file that is used as an image source</param> @@ -593,6 +615,13 @@ namespace ElmSharp } } + public enum ImageBorderFillMode + { + None, + Default, + Solid, + } + /// <summary> /// Enumeration for the possible orientation options /// </summary> diff --git a/ElmSharp/Interop/Interop.Evas.Image.cs b/ElmSharp/Interop/Interop.Evas.Image.cs index 447be2a..c18cbdd 100644 --- a/ElmSharp/Interop/Interop.Evas.Image.cs +++ b/ElmSharp/Interop/Interop.Evas.Image.cs @@ -28,6 +28,12 @@ internal static partial class Interop internal static extern void evas_object_image_border_set(IntPtr obj, int l, int r, int t, int b); [DllImport(Libraries.Evas)] + internal static extern int evas_object_image_border_center_fill_get(IntPtr obj); + + [DllImport(Libraries.Evas)] + internal static extern void evas_object_image_border_center_fill_set(IntPtr obj, int filled); + + [DllImport(Libraries.Evas)] internal static extern void evas_object_image_alpha_set(IntPtr obj, bool has_alpha); [DllImport(Libraries.Evas)] |