summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xElmSharp.Test/ElmSharp.Test.csproj3
-rw-r--r--ElmSharp.Test/TC/ImageTest4.cs86
-rw-r--r--ElmSharp/ElmSharp/Image.cs29
-rw-r--r--ElmSharp/Interop/Interop.Evas.Image.cs6
4 files changed, 123 insertions, 1 deletions
diff --git a/ElmSharp.Test/ElmSharp.Test.csproj b/ElmSharp.Test/ElmSharp.Test.csproj
index c40186b..7c54640 100755
--- a/ElmSharp.Test/ElmSharp.Test.csproj
+++ b/ElmSharp.Test/ElmSharp.Test.csproj
@@ -48,6 +48,7 @@
<Compile Include="TC\EcoreTimerTest1.cs" />
<Compile Include="TC\EvasMapTest2.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" />
@@ -210,4 +211,4 @@
</FlavorProperties>
</VisualStudio>
</ProjectExtensions>
-</Project> \ No newline at end of file
+</Project>
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)]