Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 15
-VisualStudioVersion = 15.0.26430.12
+VisualStudioVersion = 15.0.26730.8
MinimumVisualStudioVersion = 10.0.40219.1
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ElmSharp.Wearable", "ElmSharp.Wearable.csproj", "{01AE2E3A-C08E-431C-97B3-A18D536FCD52}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ElmSharp", "..\ElmSharp\ElmSharp.csproj", "{393A27E0-A1FF-4BC7-9B44-2B2803080AC2}"
EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ElmSharp.Test", "..\..\test\ElmSharp.Test\ElmSharp.Test.csproj", "{7FD75973-F5CE-4D17-81CB-A5905A62D138}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ElmSharp.Wearable.Test", "..\..\test\ElmSharp.Wearable.Test\ElmSharp.Wearable.Test.csproj", "{DC7126DF-8ED8-448A-B7D8-15C7441B6929}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
{393A27E0-A1FF-4BC7-9B44-2B2803080AC2}.Debug|Any CPU.Build.0 = Debug|Any CPU
{393A27E0-A1FF-4BC7-9B44-2B2803080AC2}.Release|Any CPU.ActiveCfg = Release|Any CPU
{393A27E0-A1FF-4BC7-9B44-2B2803080AC2}.Release|Any CPU.Build.0 = Release|Any CPU
+ {7FD75973-F5CE-4D17-81CB-A5905A62D138}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {7FD75973-F5CE-4D17-81CB-A5905A62D138}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {7FD75973-F5CE-4D17-81CB-A5905A62D138}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {7FD75973-F5CE-4D17-81CB-A5905A62D138}.Release|Any CPU.Build.0 = Release|Any CPU
+ {DC7126DF-8ED8-448A-B7D8-15C7441B6929}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {DC7126DF-8ED8-448A-B7D8-15C7441B6929}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {DC7126DF-8ED8-448A-B7D8-15C7441B6929}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {DC7126DF-8ED8-448A-B7D8-15C7441B6929}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {DCFCB5BF-47F2-4C3E-AB44-B126B259C9AA}
+ EndGlobalSection
EndGlobal
namespace ElmSharp.Wearable
{
+ /// <summary>
+ /// The MoreOption is a widget composed of the toggle(cue button) and more option view, and MoreOption can change a visibility through the toggle.
+ /// Inherits Layout
+ /// </summary>
public class MoreOption : Layout
{
-
+ /// <summary>
+ /// Sets or gets the list of more option item
+ /// </summary>
public IList<MoreOptionItem> Items { get; private set; }
+ /// <summary>
+ /// Selected will be triggered when the user selects an item.
+ /// </summary>
public event EventHandler<MoreOptionItemEventArgs> Selected;
+ /// <summary>
+ /// Clicked will be triggered when the user selects the already selected item again or selects a selector.
+ /// </summary>
public event EventHandler<MoreOptionItemEventArgs> Clicked;
+ /// <summary>
+ /// Opened will be triggered when more option view is shown.
+ /// </summary>
public event EventHandler Opened;
+ /// <summary>
+ /// Closed will be triggered when more option view is hidden.
+ /// </summary>
public event EventHandler Closed;
SmartEvent<PointerEventArgs> _selectedEvent;
SmartEvent _openedEvent;
SmartEvent _closedEvent;
+ /// <summary>
+ /// Creates and initializes a new instance of MoreOption class.
+ /// </summary>
+ /// <param name="parent">The parent is a given container which will be attached by MoreOption as a child. It's <see cref="EvasObject"/> type.</param>
public MoreOption(EvasObject parent) : base(parent)
{
Items = new MoreOptionList(this);
return Interop.Eext.eext_more_option_add(parent);
}
+ /// <summary>
+ /// Sets or gets the direction of more option.
+ /// </summary>
public MoreOptionDirection Direction
{
get
}
}
+ /// <summary>
+ /// Sets or gets the visibility of more option view.
+ /// </summary>
public bool IsOpened
{
get
}
}
+ /// <summary>
+ /// Enumeration for More Option Direction type.
+ /// </summary>
public enum MoreOptionDirection
{
Top,
namespace ElmSharp.Wearable
{
+ /// <summary>
+ /// The MoreOptionItem is a item of MoreOption widget.
+ /// </summary>
public class MoreOptionItem
{
const string MainTextPartName = "selector,main_text";
Image _icon;
IntPtr _handle;
+ /// <summary>
+ /// Sets or gets the more option item handle.
+ /// </summary>
public IntPtr Handle
{
get
}
}
+ /// <summary>
+ /// Set the icon to null
+ /// </summary>
public MoreOptionItem()
{
_icon = null;
}
+ /// <summary>
+ /// Sets or gets the main text of a more option object.
+ /// </summary>
public string MainText
{
set
}
}
+ /// <summary>
+ /// Sets or gets the sub text of a more option object.
+ /// </summary>
public string SubText
{
set
}
}
+ /// <summary>
+ /// Sets or gets the icon image
+ /// </summary>
public Image Icon
{
set
namespace ElmSharp.Wearable
{
+ /// <summary>
+ /// The MoreOptionItemEventArgs is a event args class for MoreOptionItem.
+ /// Inherits EventArgs
+ /// </summary>
public class MoreOptionItemEventArgs : EventArgs
{
+ /// <summary>
+ /// Sets or gets the more option item
+ /// </summary>
public MoreOptionItem Item { get; set; }
}
}
List<MoreOptionItem> Items { get; set; }
+ /// <summary>
+ /// Sets or gets the count of Items
+ /// </summary>
public int Count => Items.Count;
+ /// <summary>
+ /// Sets or gets whether it is read only
+ /// </summary>
public bool IsReadOnly => false;
+ /// <summary>
+ /// Sets or gets the item with the index
+ /// </summary>
+ /// <param name="index">the position of item in items</param>
+ /// <returns></returns>
public MoreOptionItem this[int index]
{
get
}
}
+ /// <summary>
+ /// Creates and initializes a new instance of MoreOptionList class.
+ /// </summary>
+ /// <param name="owner">the object of more option</param>
public MoreOptionList(MoreOption owner)
{
Owner = owner;
Items = new List<MoreOptionItem>();
}
+ /// <summary>
+ /// Append a new item to a more option.
+ /// </summary>
+ /// <param name="item">The more option item</param>
public void Add(MoreOptionItem item)
{
item.Handle = Interop.Eext.eext_more_option_item_append(Owner);
Items.Add(item);
}
+ /// <summary>
+ /// add a new item to a more option at the first.
+ /// </summary>
+ /// <param name="item">The more option item</param>
public void AddFirst(MoreOptionItem item)
{
item.Handle = Interop.Eext.eext_more_option_item_prepend(Owner);
Items.Insert(0, item);
}
+ /// <summary>
+ /// add a new item to a more option at the last.
+ /// </summary>
+ /// <param name="item">The more option item</param>
public void AddLast(MoreOptionItem item)
{
Add(item);
}
+ /// <summary>
+ /// Get the index of item
+ /// </summary>
+ /// <param name="item">The more option item</param>
+ /// <returns>the index of item</returns>
public int IndexOf(MoreOptionItem item)
{
return Items.IndexOf(item);
}
+ /// <summary>
+ /// Insert a new item into the more option after more option item with the index.
+ /// </summary>
+ /// <param name="index">the index of item which is insert after</param>
+ /// <param name="item">The more option item</param>
public void Insert(int index, MoreOptionItem item)
{
if (Items.Count < index + 1 || index < 0)
Items.Insert(index, item);
}
+ /// <summary>
+ /// Delete an item which is the given item index
+ /// </summary>
+ /// <param name="index">the item index which will be deleted</param>
public void RemoveAt(int index)
{
if (Items.Count < index + 1 || index < 0)
Items.RemoveAt(index);
}
+ /// <summary>
+ /// Remove all items from a given more option list object.
+ /// </summary>
public void Clear()
{
Interop.Eext.eext_more_option_items_clear(Owner);
Items.Clear();
}
+ /// <summary>
+ /// Check the item whether is contained
+ /// </summary>
+ /// <param name="item">The more option item</param>
+ /// <returns>If contain return true, otherwise false</returns>
public bool Contains(MoreOptionItem item)
{
return Items.Contains(item);
}
+ /// <summary>
+ /// Copy Items
+ /// </summary>
+ /// <param name="array">the target array</param>
+ /// <param name="arrayIndex">which index the item will copy to</param>
public void CopyTo(MoreOptionItem[] array, int arrayIndex)
{
Items.CopyTo(array, arrayIndex);
}
+ /// <summary>
+ /// Remove a item
+ /// </summary>
+ /// <param name="item">the item will be removed</param>
+ /// <returns>if remove success return true, otherwise false</returns>
public bool Remove(MoreOptionItem item)
{
if (Items.Contains(item))
return false;
}
+ /// <summary>
+ /// Return an enumerator that iterates through IEnumerator<MoreOptionItem>
+ /// </summary>
+ /// <returns></returns>
public IEnumerator<MoreOptionItem> GetEnumerator()
{
return Items.GetEnumerator();
+/*
+ * 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.Collections.Generic;
using System.Text;
+/*
+ * 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.Collections.Generic;
using System.Linq;
namespace ElmSharp.Wearable
{
+ /// <summary>
+ /// The Rotary Selector is a widget to display a selector and multiple items surrounding the selector.
+ /// And an item can be selected by rotary event or user item click.
+ /// Inherits <see cref="Layout"/>.
+ /// </summary>
public class RotarySelector : Layout
{
const string IconPartName = "selector,icon";
const string ItemSelectedEventName = "item,selected";
const string ItemClickedEventName = "item,clicked";
+ /// <summary>
+ /// Selected will be triggered when selected an item.
+ /// </summary>
public event EventHandler<RotarySelectorItemEventArgs> Selected;
+
+ /// <summary>
+ /// Clicked will be triggered when selecting again the alredy selected item or selecting a selector.
+ /// </summary>
public event EventHandler<RotarySelectorItemEventArgs> Clicked;
SmartEvent<PointerEventArgs> _selectedEvent;
SmartEvent<PointerEventArgs> _clickedEvent;
Image _normalBgImage;
+ /// <summary>
+ /// Gets the rotary selector item list of a rotary selector object.
+ /// </summary>
public IList<RotarySelectorItem> Items { get; private set; }
+ /// <summary>
+ /// Creates and initializes a new instance of the Rotary Selector class.
+ /// </summary>
+ /// <param name="parent">The parent of new Rotary Selector instance</param>
public RotarySelector(EvasObject parent) : base(parent)
{
Items = new RotarySelectorList(this);
};
}
+ /// <summary>
+ /// Sets or gets the selected item of a rotary selector object.
+ /// </summary>
public RotarySelectorItem SelectedItem
{
get
}
}
+ /// <summary>
+ /// Sets or gets the background image of a rotary selector object.
+ /// </summary>
public Image BackgroundImage { set => setPart(ref _normalBgImage, BgPartName, State.Normal, value); get => _normalBgImage; }
protected override IntPtr CreateHandle(EvasObject parent)
+/*
+ * 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.Collections.Generic;
using System.Text;
namespace ElmSharp.Wearable
{
+ /// <summary>
+ /// A instance to the Rotary Selector Item added. And an item can be selected by rotary event or user item click.
+ /// </summary>
public class RotarySelectorItem
{
const string MainTextPartName = "selector,main_text";
IntPtr _handle;
+ /// <summary>
+ /// Sets or gets the handle of a rotary selector item object.
+ /// </summary>
public IntPtr Handle
{
set
}
}
+ /// <summary>
+ /// Sets or gets the main text of a rotary selector item object.
+ /// </summary>
public string MainText { set => setPart(ref _mainText, MainTextPartName, value); get => _mainText; }
+
+ /// <summary>
+ /// Sets or gets the sub text of a rotary selector item object.
+ /// </summary>
public string SubText { set => setPart(ref _subText, SubTextPartName, value); get => _subText; }
+ /// <summary>
+ /// Sets or gets the sub text color of a rotary selector item object.
+ /// </summary>
public Color MainTextColor { set => setPart(ref _mainTextColor, MainTextPartName, ItemState.Normal, value); get => _mainTextColor; }
- public Color SubextColor { set => setPart(ref _subTextColor, SubTextPartName, ItemState.Normal, value); get => _subTextColor; }
+ /// <summary>
+ /// Sets or gets the sub text color of a rotary selector item object.
+ /// </summary>
+ public Color SubTextColor { set => setPart(ref _subTextColor, SubTextPartName, ItemState.Normal, value); get => _subTextColor; }
+
+ /// <summary>
+ /// Sets or gets the normal icon image of a rotary selector item object.
+ /// </summary>
public Image NormalIconImage { set => setPart(ref _normalIconImage, IconPartName, ItemState.Normal, value); get => _normalIconImage; }
+
+ /// <summary>
+ /// Sets or gets the press icon image of a rotary selector item object.
+ /// </summary>
public Image PressedIconImage { set => setPart(ref _pressedIconImage, IconPartName, ItemState.Pressed, value); get => _pressedIconImage; }
+
+ /// <summary>
+ /// Sets or gets the disable icon image of a rotary selector item object.
+ /// </summary>
public Image DisabledIconImage { set => setPart(ref _disabledIconImage, IconPartName, ItemState.Disabled, value); get => _disabledIconImage; }
- public Image SelectedIconImage { set => setPart(ref _selectedIconImage, IconPartName, ItemState.Selected, value); get => _selectedIconImage; }
+ /// <summary>
+ /// Sets or gets the selected icon image of a rotary selector item object.
+ /// </summary>
+ public Image SelectedIconImage { set => setPart(ref _selectedIconImage, IconPartName, ItemState.Selected, value); get => _selectedIconImage; }
+ /// <summary>
+ /// Sets or gets the normal background image of a rotary selector item object.
+ /// </summary>
public Image NormalBackgroundImage { set => setPart(ref _normalBgImage, BgPartName, ItemState.Normal, value); get => _normalBgImage; }
+
+ /// <summary>
+ /// Sets or gets the pressed background image of a rotary selector item object.
+ /// </summary>
public Image PressedBackgroundImage { set => setPart(ref _pressedBgImage, BgPartName, ItemState.Pressed, value); get => _pressedBgImage; }
+
+ /// <summary>
+ /// Sets or gets the disabled background image of a rotary selector item object.
+ /// </summary>
public Image DisabledBackgroundImage { set => setPart(ref _disabledBgImage, BgPartName, ItemState.Disabled, value); get => _disabledBgImage; }
+
+ /// <summary>
+ /// Sets or gets the selected background image of a rotary selector item object.
+ /// </summary>
public Image SelectedBackgroundImage { set => setPart(ref _selectedBgImage, BgPartName, ItemState.Selected, value); get => _selectedBgImage; }
+ /// <summary>
+ /// Sets or gets the normal background color of a rotary selector item object.
+ /// </summary>
public Color NormalBackgroundColor { set => setPart(ref _normalBgColor, BgPartName, ItemState.Normal, value); get => _normalBgColor; }
+
+ /// <summary>
+ /// Sets or gets the pressed background color of a rotary selector item object.
+ /// </summary>
public Color PressedBackgroundColor { set => setPart(ref _pressedBgColor, BgPartName, ItemState.Pressed, value); get => _pressedBgColor; }
+
+ /// <summary>
+ /// Sets or gets the disabled background color of a rotary selector item object.
+ /// </summary>
public Color DisabledBackgroundColor { set => setPart(ref _disabledBgColor, BgPartName, ItemState.Disabled, value); get => _disabledBgColor; }
+
+ /// <summary>
+ /// Sets or gets the selected background color of a rotary selector item object.
+ /// </summary>
public Color SelectedBackgroundColor { set => setPart(ref _selectedBgColor, BgPartName, ItemState.Selected, value); get => _selectedBgColor; }
+ /// <summary>
+ /// Sets or gets the selector icon image of a rotary selector item object.
+ /// </summary>
public Image SelectorIconImage { set => setPart(ref _selectorIconImage, SelectorIconPartName, ItemState.Normal, value); get => _selectorIconImage; }
internal enum ItemState
+/*
+ * 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.Collections.Generic;
using System.Text;
namespace ElmSharp.Wearable
{
+ /// <summary>
+ /// <see cref="RotarySelector.Selected"> and <see cref="RotarySelector.Clicked"> events of RotarySelector contain RotarySelectorItemEventArgs as a parameter.
+ /// Inherits <see cref="EventArgs"/>.
+ /// </summary>
public class RotarySelectorItemEventArgs : EventArgs
{
public RotarySelectorItem Item { get; set; }
+/*
+ * 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.Collections;
using System.Collections.Generic;
--- /dev/null
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace ElmSharp
+{
+ public interface AnimatorMotionMapper
+ {
+ double Caculate(double position);
+ }
+
+ public class LinearMotionMapper : AnimatorMotionMapper
+ {
+ public double Caculate(double position)
+ {
+ return Interop.Ecore.ecore_animator_pos_map(position, Interop.Ecore.PositionMap.Linear, 0, 0);
+ }
+ }
+
+ public class AccelerateMotionMapper : AnimatorMotionMapper
+ {
+ public double Caculate(double position)
+ {
+ return Interop.Ecore.ecore_animator_pos_map(position, Interop.Ecore.PositionMap.Accelerate, 0, 0);
+ }
+ }
+
+ public class DecelerateMotionMapper : AnimatorMotionMapper
+ {
+ public double Caculate(double position)
+ {
+ return Interop.Ecore.ecore_animator_pos_map(position, Interop.Ecore.PositionMap.Decelerate, 0, 0);
+ }
+ }
+
+ public class SinusoidalMotionMapper : AnimatorMotionMapper
+ {
+ public double Caculate(double position)
+ {
+ return Interop.Ecore.ecore_animator_pos_map(position, Interop.Ecore.PositionMap.Sinusoidal, 0, 0);
+ }
+ }
+
+ public class AccelerateFactorMotionMapper : AnimatorMotionMapper
+ {
+ public double PowerFactor { get; set; } = 0;
+
+ public double Caculate(double position)
+ {
+ return Interop.Ecore.ecore_animator_pos_map(position, Interop.Ecore.PositionMap.AccelerateFactor, PowerFactor, 0);
+ }
+ }
+
+ public class DecelerateFactorMotionMapper : AnimatorMotionMapper
+ {
+ public double PowerFactor { get; set; } = 0;
+
+ public double Caculate(double position)
+ {
+ return Interop.Ecore.ecore_animator_pos_map(position, Interop.Ecore.PositionMap.DecelerateFactor, PowerFactor, 0);
+ }
+ }
+
+ public class SinusoidalFactorMotionMapper : AnimatorMotionMapper
+ {
+ public double PowerFactor { get; set; } = 0;
+
+ public double Caculate(double position)
+ {
+ return Interop.Ecore.ecore_animator_pos_map(position, Interop.Ecore.PositionMap.SinusoidalFactor, PowerFactor, 0);
+ }
+ }
+
+ public class DivisorInterpolatedMotionMapper : AnimatorMotionMapper
+ {
+ public double Divisor { get; set; } = 0;
+ public double Power { get; set; } = 0;
+
+ public double Caculate(double position)
+ {
+ return Interop.Ecore.ecore_animator_pos_map(position, Interop.Ecore.PositionMap.DivisorInterp, Divisor, Power);
+ }
+ }
+
+ public class BounceMotionMapper : AnimatorMotionMapper
+ {
+ public int Bounces { get; set; } = 0;
+ public double DecayFactor { get; set; } = 0;
+ public double Caculate(double position)
+ {
+ return Interop.Ecore.ecore_animator_pos_map(position, Interop.Ecore.PositionMap.Bounce, DecayFactor, Bounces);
+ }
+ }
+
+ public class SpringMotionMapper : AnimatorMotionMapper
+ {
+ public int Wobbles { get; set; } = 0;
+ public double DecayFactor { get; set; } = 0;
+
+ public double Caculate(double position)
+ {
+ return Interop.Ecore.ecore_animator_pos_map(position, Interop.Ecore.PositionMap.Bounce, DecayFactor, Wobbles);
+ }
+ }
+
+ public class CubicBezierMotionMapper : AnimatorMotionMapper
+ {
+ public double X1 { get; set; } = 0;
+ public double Y1 { get; set; } = 0;
+ public double X2 { get; set; } = 0;
+ public double Y2 { get; set; } = 0;
+
+ public double Caculate(double position)
+ {
+ double[] values = { X1, Y1, X2, Y2 };
+ return Interop.Ecore.ecore_animator_pos_map_n(position, Interop.Ecore.PositionMap.Bounce, values.Length, values);
+ }
+ }
+}
/// <summary>
/// Gets or sets date format the string that will be used to display month and year.
- /// By default it uses strftime with "%B %Y" format string.
- /// It should allocate the memory that will be used by the string, that will be freed by the widget after usage.A pointer to the string and a pointer to the time struct will be provided.
/// </summary>
public DateFormatDelegate DateFormat
{
--- /dev/null
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace ElmSharp
+{
+ public class EcoreTimelineAnimator
+ {
+ double _runtime;
+ IntPtr _animator;
+ Action _timelineCallback;
+ Interop.Ecore.EcoreTimelineCallback _nativeCallback;
+ double _position;
+
+ public event EventHandler Finished;
+
+
+ public EcoreTimelineAnimator(double runtime, Action timelineCallback)
+ {
+ _runtime = runtime;
+ _nativeCallback = NativeCallback;
+ _timelineCallback = timelineCallback;
+ _position = 0;
+ }
+
+ public bool IsRunning { get; private set; }
+ public double Position => _position;
+
+ public void Start()
+ {
+ IsRunning = true;
+ _animator = Interop.Ecore.ecore_animator_timeline_add(_runtime, _nativeCallback, IntPtr.Zero);
+ }
+
+ public void Stop()
+ {
+ IsRunning = false;
+ _animator = IntPtr.Zero;
+ }
+
+ public void Freeze()
+ {
+ Interop.Ecore.ecore_animator_freeze(_animator);
+ }
+
+ public void Thaw()
+ {
+ Interop.Ecore.ecore_animator_thaw(_animator);
+ }
+
+ protected void OnTimeline()
+ {
+ _timelineCallback();
+ }
+
+ bool NativeCallback(IntPtr data, double pos)
+ {
+ _position = pos;
+ if (!IsRunning) return false;
+ OnTimeline();
+ if (pos == 1.0)
+ {
+ IsRunning = false;
+ _animator = IntPtr.Zero;
+ Finished?.Invoke(this, EventArgs.Empty);
+ }
+ return true;
+ }
+ }
+}
/// Sets or gets the orientation of a given Panes widget.
/// </summary>
/// <remarks>
- /// Uses this function to change how your panes are to be disposed: vertically or horizontally.
- /// By default it's displayed horizontally.
+ /// Use this function to change how your panes is to be disposed: vertically or horizontally.
+ /// Horizontal panes have "top" and "bottom" contents, vertical panes have "left" and "right" contents.
+ /// By default panes is in a vertical mode.
/// </remarks>
public bool IsHorizontal
{
{
internal static partial class Ecore
{
+ internal enum PositionMap
+ {
+ Linear,
+ Accelerate,
+ Decelerate,
+ Sinusoidal,
+ AccelerateFactor,
+ DecelerateFactor,
+ SinusoidalFactor,
+ DivisorInterp,
+ Bounce,
+ Spring,
+ CubicBezier
+ }
+
internal delegate void EcoreCallback(IntPtr data);
internal delegate bool EcoreTaskCallback(IntPtr data);
internal delegate void EcoreEventCallback(IntPtr data, int type, IntPtr evt);
+ internal delegate bool EcoreTimelineCallback(IntPtr data, double pos);
[DllImport(Libraries.Ecore)]
internal static extern int ecore_init();
[DllImport(Libraries.Ecore)]
internal static extern IntPtr ecore_event_handler_del(IntPtr handler);
+
+ [DllImport(Libraries.Ecore)]
+ internal static extern IntPtr ecore_animator_timeline_add(double runtime, EcoreTimelineCallback func, IntPtr data);
+
+ [DllImport(Libraries.Ecore)]
+ internal static extern void ecore_animator_freeze(IntPtr animator);
+
+ [DllImport(Libraries.Ecore)]
+ internal static extern void ecore_animator_thaw(IntPtr animator);
+
+ [DllImport(Libraries.Ecore)]
+ internal static extern void ecore_animator_frametime_set(double frametime);
+
+ [DllImport(Libraries.Ecore)]
+ internal static extern void ecore_animator_frametime_get();
+
+ [DllImport(Libraries.Ecore)]
+ internal static extern double ecore_animator_pos_map(double pos, PositionMap map, double v1, double v2);
+
+ [DllImport(Libraries.Ecore)]
+ internal static extern double ecore_animator_pos_map_n(double pos, PositionMap map, int v_size, double[] v);
}
}
[DllImport(Libraries.Elementary)]
internal static extern bool elm_datetime_format_set(IntPtr obj, string format);
- [DllImport(Libraries.Elementary)]
+ [DllImport(Libraries.Elementary, EntryPoint = "elm_datetime_format_get")]
internal static extern IntPtr _elm_datetime_format_get(IntPtr obj);
internal static string elm_datetime_format_get(IntPtr obj)
[DllImport(Libraries.Elementary)]
internal static extern void elm_progressbar_unit_format_set(IntPtr obj, string format);
- [DllImport(Libraries.Elementary)]
+ [DllImport(Libraries.Elementary, EntryPoint = "elm_progressbar_unit_format_get")]
internal static extern IntPtr _elm_progressbar_unit_format_get(IntPtr obj);
internal static string elm_progressbar_unit_format_get(IntPtr obj)
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+<Project>
+ <Import Project="Sdk.props" Sdk="Microsoft.NET.Sdk" />
+
+ <!-- Setting Tizen Extension Path -->
+ <PropertyGroup Label="Globals">
+ <TizenProjectExtensionsPath>$(MSBuildExtensionsPath)\Tizen\VisualStudio\</TizenProjectExtensionsPath>
+ </PropertyGroup>
+
+ <!-- Import Tizen property in Tizen.NET SDK -->
+ <Import Project="$(TizenProjectExtensionsPath)Tizen.NET.ProjectType.props" Condition="Exists('$(TizenProjectExtensionsPath)Tizen.NET.ProjectType.props')" />
+
+ <!-- Property Group for .NET Core Project -->
<PropertyGroup>
- <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
- <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
- <ProjectTypeGuids>{2F98DAC9-6F16-457B-AED7-D43CAC379341};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
- <ProjectGuid>{E901BB06-632D-489E-86AC-66AD2EF85BCC}</ProjectGuid>
<OutputType>Exe</OutputType>
- <AppDesignerFolder>Properties</AppDesignerFolder>
- <RootNamespace>ElmSharp.Test</RootNamespace>
- <AssemblyName>ElmSharp.Test</AssemblyName>
- <FileAlignment>512</FileAlignment>
+ <TargetFramework>netcoreapp1.1</TargetFramework>
</PropertyGroup>
+
+ <!-- Property Group for Tizen Project -->
<PropertyGroup>
- <TargetFrameworkIdentifier>.NETCoreApp</TargetFrameworkIdentifier>
- <TargetFrameworkVersion>v1.0</TargetFrameworkVersion>
- <NuGetTargetMoniker>.NETCoreApp,Version=v1.0</NuGetTargetMoniker>
- <AddAdditionalExplicitAssemblyReferences>false</AddAdditionalExplicitAssemblyReferences>
- <NoStdLib>true</NoStdLib>
- <NoWarn>$(NoWarn);1701;1702</NoWarn>
+ <TizenCreateTpkOnBuild>true</TizenCreateTpkOnBuild>
+ <PackageTargetFallback>$(PackageTargetFallback);portable-net45+wp80+win81+wpa81</PackageTargetFallback>
</PropertyGroup>
+
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
- <DebugSymbols>true</DebugSymbols>
- <DebugType>full</DebugType>
- <Optimize>true</Optimize>
- <OutputPath>bin\Debug\</OutputPath>
- <DefineConstants>DEBUG;TRACE</DefineConstants>
- <ErrorReport>prompt</ErrorReport>
- <WarningLevel>4</WarningLevel>
- <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
+ <DebugType>portable</DebugType>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
- <DebugType>pdbonly</DebugType>
- <Optimize>true</Optimize>
- <OutputPath>bin\Release\</OutputPath>
- <DefineConstants>TRACE</DefineConstants>
- <ErrorReport>prompt</ErrorReport>
- <WarningLevel>4</WarningLevel>
- <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
+ <DebugType>None</DebugType>
</PropertyGroup>
+
<ItemGroup>
- <Compile Include="Log.cs" />
- <Compile Include="Properties\AssemblyInfo.cs" />
- <Compile Include="TC\AccessibilityRelationTest.cs" />
- <Compile Include="TC\AccessibilityRoleTest.cs" />
- <Compile Include="TC\AccessibilityTest.cs" />
- <Compile Include="TC\BackgroundTest1.cs" />
- <Compile Include="TC\BackgroundTest2.cs" />
- <Compile Include="TC\BackgroundTest3.cs" />
- <Compile Include="TC\FocusAutoScrollModeTest.cs" />
- <Compile Include="TC\KeyEventTest1.cs" />
- <Compile Include="TC\GestureLayerTest1.cs" />
- <Compile Include="TC\ProgressBarTest2.cs" />
- <Compile Include="TC\ScrollerTest3.cs" />
- <Compile Include="TC\Wearable\CircleTool.cs" />
- <Compile Include="TC\TransitTest.cs" />
- <Compile Include="TC\EcoreTimerTest1.cs" />
- <Compile Include="TC\EntryTest3.cs" />
- <Compile Include="TC\EvasMapTest2.cs" />
- <Compile Include="TC\GenListTest10.cs" />
- <Compile Include="TC\ImageTest4.cs" />
- <Compile Include="TC\LabelTest4.cs" />
- <Compile Include="TC\LabelTest5.cs" />
- <Compile Include="TC\MultibuttonEntryTest1.cs" />
- <Compile Include="TC\DateTimeSelectorTest2.cs" />
- <Compile Include="TC\EntryTest2.cs" />
- <Compile Include="TC\FlipSelectorTest.cs" />
- <Compile Include="TC\FloatingButtonTest.cs" />
- <Compile Include="TC\GenListTest9.cs" />
- <Compile Include="TC\FocusTest1.cs" />
- <Compile Include="TC\HoverselTest1.cs" />
- <Compile Include="TC\MultibuttonEntryTest2.cs" />
- <Compile Include="TC\NaviframeTest3.cs" />
- <Compile Include="TC\ScreenInformationTest.cs" />
- <Compile Include="TC\BoxLayoutTest1.cs" />
- <Compile Include="TC\BoxTest1.cs" />
- <Compile Include="TC\BackgroundColorTest1.cs" />
- <Compile Include="TC\ButtonTest1.cs" />
- <Compile Include="TC\CalendarTest1.cs" />
- <Compile Include="TC\CheckTest1.cs" />
- <Compile Include="TC\ClipperTest1.cs" />
- <Compile Include="TC\ColorSelectorTest1.cs" />
- <Compile Include="TC\ContextPopupTest1.cs" />
- <Compile Include="TC\DateTimeSelectorTest1.cs" />
- <Compile Include="TC\EvasMapTest1.cs" />
- <Compile Include="TC\EntryTest1.cs" />
- <Compile Include="TC\GenGridTest1.cs" />
- <Compile Include="TC\GenGridTest2.cs" />
- <Compile Include="TC\GenListTest7.cs" />
- <Compile Include="TC\GenListTest1.cs" />
- <Compile Include="TC\GenListTest2.cs" />
- <Compile Include="TC\GenListTest3.cs" />
- <Compile Include="TC\GenListTest4.cs" />
- <Compile Include="TC\GenListTest6.cs" />
- <Compile Include="TC\LabelTest3.cs" />
- <Compile Include="TC\ImageTest3.cs" />
- <Compile Include="TC\ImageTest2.cs" />
- <Compile Include="TC\LabelTest2.cs" />
- <Compile Include="TC\TableTest1.cs" />
- <Compile Include="TC\GenListTest8.cs" />
- <Compile Include="TC\PerformanceTest.cs" />
- <Compile Include="TC\GenListTest5.cs" />
- <Compile Include="TC\IconTest1.cs" />
- <Compile Include="TC\ImageTest1.cs" />
- <Compile Include="TC\IndexTest1.cs" />
- <Compile Include="TC\IndexTest2.cs" />
- <Compile Include="TC\LabelTest1.cs" />
- <Compile Include="TC\LabelValignTest1.cs" />
- <Compile Include="TC\ListTest1.cs" />
- <Compile Include="TC\NaviframeTest1.cs" />
- <Compile Include="TC\NaviframeTest2.cs" />
- <Compile Include="TC\PanelTest1.cs" />
- <Compile Include="TC\PanelTest2.cs" />
- <Compile Include="TC\PanesTest1.cs" />
- <Compile Include="TC\PolygonTest1.cs" />
- <Compile Include="TC\PopupTest1.cs" />
- <Compile Include="TC\ProgressBarTest1.cs" />
- <Compile Include="TC\RadioTest1.cs" />
- <Compile Include="TC\RectangleTest1.cs" />
- <Compile Include="TC\ScrollerTest1.cs" />
- <Compile Include="TC\ScrollerTest2.cs" />
- <Compile Include="TC\SliderTest1.cs" />
- <Compile Include="TC\SliderTest2.cs" />
- <Compile Include="TC\SpinnerTest1.cs" />
- <Compile Include="TC\ToolbarTest1.cs" />
- <Compile Include="TC\ToolbarTest2.cs" />
- <Compile Include="TC\ToolbarTest3.cs" />
- <Compile Include="TC\ToolbarTest4.cs" />
- <Compile Include="TC\Wearable\BackgroundColorTest1.cs" />
- <Compile Include="TC\Wearable\BackgroundTest1.cs" />
- <Compile Include="TC\Wearable\BackgroundTest2.cs" />
- <Compile Include="TC\Wearable\BoxLayoutTest1.cs" />
- <Compile Include="TC\Wearable\ButtonTest1.cs" />
- <Compile Include="TC\Wearable\ButtonTest2.cs" />
- <Compile Include="TC\Wearable\CheckTest1.cs" />
- <Compile Include="TC\Wearable\ClipperTest1.cs" />
- <Compile Include="TC\Wearable\ContextPopupTest1.cs" />
- <Compile Include="TC\Wearable\DateTimeSelectorTest1.cs" />
- <Compile Include="TC\Wearable\DateTimeSelectorTest2.cs" />
- <Compile Include="TC\Wearable\EcoreTimerTest1.cs" />
- <Compile Include="TC\Wearable\EntryTest1.cs" />
- <Compile Include="TC\Wearable\EntryTest2.cs" />
- <Compile Include="TC\Wearable\EntryTest3.cs" />
- <Compile Include="TC\Wearable\EntryTest4.cs" />
- <Compile Include="TC\Wearable\EvasMapTest1.cs" />
- <Compile Include="TC\Wearable\EvasMapTest2.cs" />
- <Compile Include="TC\Wearable\FocusTest1.cs" />
- <Compile Include="TC\Wearable\GenGridTest1.cs" />
- <Compile Include="TC\Wearable\GenGridTest2.cs" />
- <Compile Include="TC\Wearable\GenListTest1.cs" />
- <Compile Include="TC\Wearable\GenListTest10.cs" />
- <Compile Include="TC\Wearable\GenListTest9.cs" />
- <Compile Include="TC\Wearable\GenListTest2.cs" />
- <Compile Include="TC\Wearable\GenListTest3.cs" />
- <Compile Include="TC\Wearable\GenListTest4.cs" />
- <Compile Include="TC\Wearable\GenListTest5.cs" />
- <Compile Include="TC\Wearable\GenListTest6.cs" />
- <Compile Include="TC\Wearable\GenListTest7.cs" />
- <Compile Include="TC\Wearable\GenListTest8.cs" />
- <Compile Include="TC\Wearable\GestureLayerTest1.cs" />
- <Compile Include="TC\Wearable\IconTest1.cs" />
- <Compile Include="TC\Wearable\ImageTest1.cs" />
- <Compile Include="TC\Wearable\ImageTest2.cs" />
- <Compile Include="TC\Wearable\ImageTest3.cs" />
- <Compile Include="TC\Wearable\ImageTest4.cs" />
- <Compile Include="TC\Wearable\IndexTest1.cs" />
- <Compile Include="TC\Wearable\IndexTest2.cs" />
- <Compile Include="TC\LabelTest6.cs" />
- <Compile Include="TC\Wearable\ListTest1.cs" />
- <Compile Include="TC\Wearable\NaviframeTest1.cs" />
- <Compile Include="TC\Wearable\NaviframeTest2.cs" />
- <Compile Include="TC\Wearable\NaviframeTest3.cs" />
- <Compile Include="TC\Wearable\PanelTest1.cs" />
- <Compile Include="TC\Wearable\PanelTest2.cs" />
- <Compile Include="TC\Wearable\PanesTest1.cs" />
- <Compile Include="TC\Wearable\PerformanceTest.cs" />
- <Compile Include="TC\Wearable\PolygonTest1.cs" />
- <Compile Include="TC\Wearable\PopupTest1.cs" />
- <Compile Include="TC\Wearable\ProgressBarTest1.cs" />
- <Compile Include="TC\Wearable\ProgressBarTest2.cs" />
- <Compile Include="TC\Wearable\RadioTest1.cs" />
- <Compile Include="TC\Wearable\RectangleTest1.cs" />
- <Compile Include="TC\Wearable\ScreenInformationTest.cs" />
- <Compile Include="TC\Wearable\ScrollerTest1.cs" />
- <Compile Include="TC\Wearable\ScrollerTest2.cs" />
- <Compile Include="TC\Wearable\ScrollerTest3.cs" />
- <Compile Include="TC\Wearable\SliderTest1.cs" />
- <Compile Include="TC\Wearable\SliderTest2.cs" />
- <Compile Include="TC\Wearable\SpinnerTest1.cs" />
- <Compile Include="TC\Wearable\TransitTest.cs" />
- <Compile Include="TC\Wearable\WindowInternalTest.cs" />
- <Compile Include="TC\Wearable\LabelTest1.cs" />
- <Compile Include="TC\Wearable\LabelTest2.cs" />
- <Compile Include="TC\Wearable\LabelTest3.cs" />
- <Compile Include="TC\Wearable\LabelTest4.cs" />
- <Compile Include="TC\Wearable\LabelTest5.cs" />
- <Compile Include="TC\Wearable\LabelValignTest1.cs" />
- <Compile Include="TC\Wearable\TableTest1.cs" />
- <Compile Include="TC\WindowInternalTest.cs" />
- <Compile Include="TestCaseBase.cs" />
- <Compile Include="TestRunner.cs" />
- </ItemGroup>
- <ItemGroup>
- <None Include="ElmSharp.Test.project.json" />
- <None Include="test.sh" />
+ <Folder Include="shared\" />
+ <Folder Include="res\" />
</ItemGroup>
+
+ <!-- Include Nuget Package for Tizen Project building -->
<ItemGroup>
- <Content Include="res\btn_delete.png" />
- <Content Include="res\picture.png">
- <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
- </Content>
- <Content Include="res\TED\app_icn_ted.png">
- <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
- </Content>
- <Content Include="res\TED\large\a.jpg">
- <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
- </Content>
- <Content Include="res\TED\large\b.jpg">
- <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
- </Content>
- <Content Include="res\TED\large\c.jpg">
- <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
- </Content>
- <Content Include="res\TED\large\d.jpg">
- <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
- </Content>
- <Content Include="res\TED\large\e.jpg">
- <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
- </Content>
- <Content Include="res\TED\large\f.jpg">
- <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
- </Content>
- <Content Include="res\TED\large\g.jpg">
- <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
- </Content>
- <Content Include="res\TED\thumbnail\a.jpg">
- <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
- </Content>
- <Content Include="res\TED\thumbnail\b.jpg">
- <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
- </Content>
- <Content Include="res\TED\thumbnail\c.jpg">
- <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
- </Content>
- <Content Include="res\TED\thumbnail\d.jpg">
- <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
- </Content>
- <Content Include="res\TED\thumbnail\e.jpg">
- <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
- </Content>
- <Content Include="res\TED\thumbnail\f.jpg">
- <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
- </Content>
- <Content Include="res\TED\thumbnail\g.jpg">
- <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
- </Content>
- <Content Include="shared\res\ElmSharp.Test.png" />
- <Content Include="tizen-manifest.xml" />
+ <PackageReference Include="Tizen.NET" Version="3.0.0" />
+ <PackageReference Include="Tizen.NET.Sdk" Version="0.9.16-pre1" />
</ItemGroup>
<ItemGroup>
- <Reference Include="ElmSharp, Version=1.2.0.0, Culture=neutral, PublicKeyToken=3836ec6cd2c91e8b, processorArchitecture=MSIL">
- <SpecificVersion>False</SpecificVersion>
- <HintPath>..\ElmSharp\bin\Debug\netstandard1.3\ElmSharp.dll</HintPath>
- </Reference>
+ <ProjectReference Include="..\..\src\ElmSharp\ElmSharp.csproj" />
</ItemGroup>
- <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
- <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
- Other similar extension points exist, see Microsoft.Common.targets.
- <Target Name="BeforeBuild">
+
+ <Import Project="Sdk.targets" Sdk="Microsoft.NET.Sdk" />
+ <Import Project="$(TizenProjectExtensionsPath)Tizen.NET.ProjectType.targets" Condition="Exists('$(TizenProjectExtensionsPath)Tizen.NET.ProjectType.targets')" />
+
+ <!-- Install Check 'Visual Studio for Tizen' for developing on Visual Studio -->
+ <Target Name="TizenVsixInstallCheck" BeforeTargets="CompileDesignTime">
+ <Warning Condition="!Exists('$(TizenProjectExtensionsPath)Tizen.NET.ProjectType.props')" Text="$(TizenProjectExtensionsPath)Tizen.NET.ProjectType.props is not exist.
 you need to check if 'Visual Studio for Tizen' is installed" />
+ <Warning Condition="!Exists('$(TizenProjectExtensionsPath)Tizen.NET.ProjectType.targets')" Text="$(TizenProjectExtensionsPath)Tizen.NET.ProjectType.targets is not exist.\
 you need to check if 'Visual Studio for Tizen' is installed" />
</Target>
- <Target Name="AfterBuild">
- </Target>
- -->
- <PropertyGroup>
- <!-- https://github.com/dotnet/corefxlab/tree/master/samples/NetCoreSample and
- https://docs.microsoft.com/en-us/dotnet/articles/core/tutorials/target-dotnetcore-with-msbuild
- -->
- <!-- We don't use any of MSBuild's resolution logic for resolving the framework, so just set these two
- properties to any folder that exists to skip the GetReferenceAssemblyPaths task (not target) and
- to prevent it from outputting a warning (MSB3644).
- -->
- <_TargetFrameworkDirectories>$(MSBuildThisFileDirectory)</_TargetFrameworkDirectories>
- <_FullFrameworkReferenceAssemblyPaths>$(MSBuildThisFileDirectory)</_FullFrameworkReferenceAssemblyPaths>
- <AutoUnifyAssemblyReferences>true</AutoUnifyAssemblyReferences>
- </PropertyGroup>
- <ProjectExtensions>
- <VisualStudio>
- <FlavorProperties GUID="{2F98DAC9-6F16-457B-AED7-D43CAC379341}" Configuration="Debug|Any CPU">
- <ProjectCommonFlavorCfg />
- </FlavorProperties>
- <FlavorProperties GUID="{2F98DAC9-6F16-457B-AED7-D43CAC379341}" Configuration="Release|Any CPU">
- <ProjectCommonFlavorCfg />
- </FlavorProperties>
- </VisualStudio>
- </ProjectExtensions>
-</Project>
+</Project>
\ No newline at end of file
+++ /dev/null
-{
- "dependencies": {
- "Microsoft.NETCore.App": "1.0.0",
- "Tizen.Applications.Common": "1.5.8",
- "Tizen.Applications.UI": "1.5.8"
- },
- "frameworks": {
- "netcoreapp1.0": {}
- },
- "runtimes": {
- "win": {}
- }
-}
\ No newline at end of file
+++ /dev/null
-using System.Reflection;
-using System.Runtime.CompilerServices;
-using System.Runtime.InteropServices;
-
-// General Information about an assembly is controlled through the following
-// set of attributes. Change these attribute values to modify the information
-// associated with an assembly.
-[assembly: AssemblyTitle("ElmSharp.Test")]
-[assembly: AssemblyDescription("")]
-[assembly: AssemblyConfiguration("")]
-[assembly: AssemblyCompany("Microsoft")]
-[assembly: AssemblyProduct("ElmSharp.Test")]
-[assembly: AssemblyCopyright("Copyright © Microsoft 2016")]
-[assembly: AssemblyTrademark("")]
-[assembly: AssemblyCulture("")]
-
-// Setting ComVisible to false makes the types in this assembly not visible
-// to COM components. If you need to access a type in this assembly from
-// COM, set the ComVisible attribute to true on that type.
-[assembly: ComVisible(false)]
-
-// The following GUID is for the ID of the typelib if this project is exposed to COM
-[assembly: Guid("2e1a161a-baa9-40ef-a8b4-082ce7c813b8")]
-
-// Version information for an assembly consists of the following four values:
-//
-// Major Version
-// Minor Version
-// Build Number
-// Revision
-//
-// You can specify all the values or you can default the Build and Revision Numbers
-// by using the '*' as shown below:
-// [assembly: AssemblyVersion("1.0.*")]
-[assembly: AssemblyVersion("1.0.0.0")]
-[assembly: AssemblyFileVersion("1.0.0.0")]
--- /dev/null
+using System;
+using System.Collections.Generic;
+using System.Text;
+using ElmSharp;
+
+namespace ElmSharp.Test
+{
+ class EcoreTimelineAnimatorTest1 : TestCaseBase
+
+ {
+ public override string TestName => "Timeline Animator Test1";
+
+ public override string TestDescription => "Ecore Timeline Animator Test1";
+
+ EcoreTimelineAnimator timelineAnimator;
+
+ int X1, Y1, X2, Y2;
+
+ Tuple<string, AnimatorMotionMapper>[] mappers =
+ {
+ new Tuple<string, AnimatorMotionMapper>("Linear", new LinearMotionMapper()),
+ new Tuple<string, AnimatorMotionMapper>("Accelerate", new AccelerateMotionMapper()),
+ new Tuple<string, AnimatorMotionMapper>("Decelerate", new DecelerateMotionMapper()),
+ new Tuple<string, AnimatorMotionMapper>("Sinusoida", new SinusoidalMotionMapper()),
+ new Tuple<string, AnimatorMotionMapper>("Bounce", new BounceMotionMapper{ Bounces = 3, DecayFactor = 1.8 }),
+ new Tuple<string, AnimatorMotionMapper>("Spring", new SpringMotionMapper{ Wobbles = 3, DecayFactor = 1.8 }),
+ new Tuple<string, AnimatorMotionMapper>("AccelerateFactor", new AccelerateFactorMotionMapper{ PowerFactor = 1.5 }),
+ new Tuple<string, AnimatorMotionMapper>("DecelerateFactor", new DecelerateFactorMotionMapper{ PowerFactor = 1.5 }),
+ new Tuple<string, AnimatorMotionMapper>("SinusoidaFactor", new SinusoidalFactorMotionMapper{ PowerFactor = 1.5 }),
+ new Tuple<string, AnimatorMotionMapper>("DivisorInterpolate", new DivisorInterpolatedMotionMapper{ Divisor = 1.0, Power = 2.0 }),
+ new Tuple<string, AnimatorMotionMapper>("CubicBezier", new CubicBezierMotionMapper{ X1 = 0, X2 = 1, Y1 = 0, Y2 = 1})
+ };
+
+ int map_index = 0;
+
+ Rectangle square;
+
+ public override void Run(Window window)
+ {
+ Rect rect = new Rect(0, 0, window.ScreenSize.Width, window.ScreenSize.Height);
+
+ X1 = rect.X;
+ Y1 = rect.Y;
+ X2 = rect.X + rect.Width - rect.Width / 10;
+ Y2 = rect.Y;
+
+ square = new Rectangle(window)
+ {
+ Geometry = new Rect(X1, Y1, rect.Width / 10, rect.Height / 6),
+ Color = Color.Red
+ };
+ square.Show();
+
+ Button btn = new Button(window)
+ {
+ Geometry = new Rect(rect.X, rect.Y + rect.Height - rect.Height / 4, rect.Width, rect.Height / 4),
+ Text = mappers[map_index].Item1
+ };
+ btn.Show();
+
+ timelineAnimator = new EcoreTimelineAnimator(1.0, OnTimeline);
+
+ btn.Clicked += Btn_Clicked;
+ timelineAnimator.Finished += (s, e) =>
+ {
+ map_index = (map_index + 1) % mappers.Length;
+ btn.IsEnabled = true;
+ };
+ }
+
+ private void Btn_Clicked(object sender, EventArgs e)
+ {
+ timelineAnimator.Start();
+ ((Button)sender).IsEnabled = false;
+ Log.Debug(mappers[map_index].Item1);
+ }
+
+ void OnTimeline()
+ {
+ double o = mappers[map_index].Item2.Caculate(timelineAnimator.Position);
+ int x = (int)((X2 * o) + (X1 * (1.0 - o)));
+ int y = (int)((Y2 * o) + (Y1 * (1.0 - o)));
+
+ square.Move(x, y);
+ }
+ }
+}
--- /dev/null
+/*
+ * 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 ElmSharp;
+using System.Collections.Generic;
+
+namespace ElmSharp.Test
+{
+ class GenListTest11 : TestCaseBase
+ {
+ public override string TestName => "GenListTest11";
+ public override string TestDescription => "To test InsertSorted operation of GenList";
+
+ public int myCompare(object t1, object t2)
+ {
+ int c1 = Convert.ToInt32((string)t1);
+ int c2 = Convert.ToInt32((string)t2);
+
+ return c1 - c2;
+ }
+
+ public override void Run(Window window)
+ {
+ Conformant conformant = new Conformant(window);
+ conformant.Show();
+ Box box = new Box(window)
+ {
+ AlignmentX = -1,
+ AlignmentY = -1,
+ WeightX = 1,
+ WeightY = 1,
+ };
+ box.Show();
+ conformant.SetContent(box);
+
+ GenList list = new GenList(window)
+ {
+ Homogeneous = true,
+ AlignmentX = -1,
+ AlignmentY = -1,
+ WeightX = 1,
+ WeightY = 1
+ };
+
+ GenItemClass defaultClass = new GenItemClass("default")
+ {
+ GetTextHandler = (obj, part) =>
+ {
+ return string.Format("{0} - {1}", (string)obj, part);
+ }
+ };
+
+ List<GenListItem> items = new List<GenListItem>();
+ int idx = 20;
+ for (int t = 1; t < 10; t++)
+ {
+ items.Add(list.InsertSorted(defaultClass, idx.ToString(), myCompare, GenListItemType.Normal, null));
+ idx--;
+ }
+ list.Show();
+ list.ItemSelected += List_ItemSelected;
+
+ box.PackEnd(list);
+ Button first = new Button(window)
+ {
+ Text = "Check first and last item",
+ AlignmentX = -1,
+ WeightX = 1,
+ };
+
+ Button Add = new Button(window)
+ {
+ Text = "Add",
+ AlignmentX = -1,
+ WeightX = 1,
+ };
+ Add.Clicked += (s, e) =>
+ {
+ items.Add(list.InsertSorted(defaultClass, idx.ToString(), myCompare, GenListItemType.Normal, null));
+ idx--;
+ };
+
+ first.Clicked += (s, e) =>
+ {
+ Console.WriteLine("Last Item's Data : " + list.LastItem.Data);
+ Console.WriteLine("First date of Items " + items[0].Data);
+ Console.WriteLine("Result for comparinson " + (bool)(list.LastItem == list.LastItem));
+ };
+
+ first.Show();
+ Add.Show();
+ box.PackEnd(first);
+ box.PackEnd(Add);
+ }
+
+ private void List_ItemSelected(object sender, GenListItemEventArgs e)
+ {
+ Console.WriteLine("{0} Item was selected", (string)(e.Item.Data));
+ }
+ }
+}
Console.WriteLine("Image has been clicked. (IsFixedAspect = {0}", image.IsFixedAspect);
image.IsFixedAspect = image.IsFixedAspect == true ? false : true;
};
+ image.LoadingCompleted += (s, e) =>
+ {
+ Console.WriteLine("Image has been loaded successfully.");
+ };
+ image.LoadingFailed += (s, e) =>
+ {
+ Console.WriteLine("Image loading has been failed.");
+ };
btnFile1.Clicked += (s, e) => LoadFile("TED/large/a.jpg");
btnFile2.Clicked += (s, e) => LoadFile("TED/large/b.jpg");
btnUri1.Clicked += (s, e) => LoadUri("http://pe.tedcdn.com/images/ted/2e306b9655267cee35e45688ace775590b820510_615x461.jpg");
- btnStream1.Clicked += (s, e) => LoadStream(new FileStream(Path.Combine(TestRunner.ResourceDir, "TED/large/c.jpg"), FileMode.Open));
+ btnStream1.Clicked += (s, e) => LoadStream(new FileStream(Path.Combine(TestRunner.ResourceDir, "TED/large/c.jpg"), FileMode.Open, FileAccess.Read));
btnFileAsync1.Clicked += (s, e) => LoadFileAsync("TED/large/d.jpg");
btnFileAsync2.Clicked += (s, e) => LoadFileAsync("TED/large/e.jpg");
btnUriAsync1.Clicked += (s, e) => LoadUriAsync("http://pe.tedcdn.com/images/ted/2e306b9655267cee35e45688ace775590b820510_615x461.jpg");
- btnStreamAsync1.Clicked += (s, e) => LoadStreamAsync(new FileStream(Path.Combine(TestRunner.ResourceDir, "TED/large/f.jpg"), FileMode.Open));
+ btnStreamAsync1.Clicked += (s, e) => LoadStreamAsync(new FileStream(Path.Combine(TestRunner.ResourceDir, "TED/large/f.jpg"), FileMode.Open, FileAccess.Read));
box.PackEnd(buttonBox1);
box.PackEnd(buttonBox2);
box.PackEnd(lbInfo);
--- /dev/null
+/*
+ * 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 ElmSharp;
+
+namespace ElmSharp.Test
+{
+ public class ScrollerTest4 : TestCaseBase
+ {
+ public override string TestName => "ScrollerTest4";
+ public override string TestDescription => "To test basic operation of Scroller";
+
+ public override void Run(Window window)
+ {
+ //Conformant conformant = new Conformant(window);
+ //conformant.Show();
+ Box outterBox = new Box(window)
+ {
+ AlignmentX = -1,
+ AlignmentY = -1,
+ WeightX = 1,
+ WeightY = 1,
+ IsHorizontal = false,
+ };
+ outterBox.Show();
+
+ var button = new Button(window)
+ {
+ Text = "Button1",
+ Color = Color.White,
+ };
+ button.Show();
+ button.Resize(200, 100);
+ button.Move(300, 100);
+
+ var button2 = new Button(window)
+ {
+ Text = "Button2",
+ Color = Color.White,
+ };
+ button2.Show();
+ button2.Resize(200, 100);
+ button2.Move(300, 300);
+
+ var button3 = new Button(window)
+ {
+ Text = "Button3",
+ Color = Color.White,
+ };
+ button3.Show();
+ button3.Resize(200, 100);
+ button3.Move(300, 500);
+
+ Scroller scroller = new Scroller(window);
+ scroller.Show();
+ scroller.Resize(200, 400);
+ scroller.Move(100, 600);
+
+ Box box = new Box(window)
+ {
+ AlignmentX = -1,
+ AlignmentY = -1,
+ WeightX = 1,
+ WeightY = 1
+ };
+ box.Show();
+ scroller.SetContent(box);
+
+ var rnd = new Random();
+ for (int i = 0; i < 20; i++)
+ {
+ int r = rnd.Next(255);
+ int g = rnd.Next(255);
+ int b = rnd.Next(255);
+ Color color = Color.FromRgb(r, g, b);
+ var colorBox1 = new Label(window)
+ {
+ Text = "Label" + i.ToString(),
+ BackgroundColor = color,
+ MinimumHeight = 40,
+ };
+ colorBox1.Show();
+ box.PackEnd(colorBox1);
+ }
+
+ Scroller scroller2 = new Scroller(window);
+ scroller2.Show();
+ scroller2.Resize(200, 400);
+ scroller2.Move(700, 600);
+
+ Box box2 = new Box(window)
+ {
+ MinimumWidth = 400,
+ MinimumHeight = 200,
+ };
+ box2.BackgroundColor = Color.White;
+ box2.Show();
+ scroller2.SetContent(box2);
+
+ rnd = new Random();
+ for (int i = 0; i < 20; i++)
+ {
+ int r = rnd.Next(255);
+ int g = rnd.Next(255);
+ int b = rnd.Next(255);
+ Color color = Color.FromRgb(r, g, b);
+ var colorBox2 = new Label(scroller2)
+ {
+ BackgroundColor = color,
+ MinimumHeight = 40,
+ Text = "GOGOGO"
+ };
+ colorBox2.Show();
+ box2.PackEnd(colorBox2);
+ }
+
+ //conformant.SetContent(outterBox);
+ //outterBox.PackEnd(button);
+ //outterBox.PackEnd(button2);
+ //outterBox.PackEnd(button3);
+ //outterBox.PackEnd(scroller);
+ //outterBox.PackEnd(scroller2);
+
+ //outterBox.SetLayoutCallback(() =>
+ //{
+ // scroller.Move(100, 800);
+ // button.Move(300, 100);
+ // button2.Move(300, 300);
+ // button3.Move(300, 500);
+ // scroller2.Move(700, 800);
+ //});
+ }
+ }
+}
\ No newline at end of file
--- /dev/null
+using System;
+using System.Collections.Generic;
+using System.Text;
+using ElmSharp;
+
+namespace ElmSharp.Test.Wearable
+{
+ class EcoreTimelineAnimatorTest1 : WearableTestCase
+
+ {
+ public override string TestName => "Timeline Animator Test1";
+
+ public override string TestDescription => "Ecore Timeline Animator Test1";
+
+ EcoreTimelineAnimator timelineAnimator;
+
+ int X1, Y1, X2, Y2;
+
+ Tuple<string, AnimatorMotionMapper>[] mappers =
+ {
+ new Tuple<string, AnimatorMotionMapper>("Linear", new LinearMotionMapper()),
+ new Tuple<string, AnimatorMotionMapper>("Accelerate", new AccelerateMotionMapper()),
+ new Tuple<string, AnimatorMotionMapper>("Decelerate", new DecelerateMotionMapper()),
+ new Tuple<string, AnimatorMotionMapper>("Sinusoida", new SinusoidalMotionMapper()),
+ new Tuple<string, AnimatorMotionMapper>("Bounce", new BounceMotionMapper{ Bounces = 3, DecayFactor = 1.8 }),
+ new Tuple<string, AnimatorMotionMapper>("Spring", new SpringMotionMapper{ Wobbles = 3, DecayFactor = 1.8 }),
+ new Tuple<string, AnimatorMotionMapper>("AccelerateFactor", new AccelerateFactorMotionMapper{ PowerFactor = 1.5 }),
+ new Tuple<string, AnimatorMotionMapper>("DecelerateFactor", new DecelerateFactorMotionMapper{ PowerFactor = 1.5 }),
+ new Tuple<string, AnimatorMotionMapper>("SinusoidaFactor", new SinusoidalFactorMotionMapper{ PowerFactor = 1.5 }),
+ new Tuple<string, AnimatorMotionMapper>("DivisorInterpolate", new DivisorInterpolatedMotionMapper{ Divisor = 1.0, Power = 2.0 }),
+ new Tuple<string, AnimatorMotionMapper>("CubicBezier", new CubicBezierMotionMapper{ X1 = 0, X2 = 1, Y1 = 0, Y2 = 1})
+ };
+
+ int map_index = 0;
+
+ Rectangle square;
+
+ public override void Run(Window window)
+ {
+ Rect rect = window.GetInnerSquare();
+
+ X1 = rect.X;
+ Y1 = rect.Y;
+ X2 = rect.X + rect.Width - rect.Width / 10;
+ Y2 = rect.Y;
+
+ square = new Rectangle(window)
+ {
+ Geometry = new Rect(X1, Y1, rect.Width / 10, rect.Height / 6),
+ Color = Color.Red
+ };
+ square.Show();
+
+ Button btn = new Button(window)
+ {
+ Geometry = new Rect(rect.X, rect.Y + rect.Height - rect.Height / 4, rect.Width, rect.Height / 4),
+ Text = mappers[map_index].Item1
+ };
+ btn.Show();
+
+ timelineAnimator = new EcoreTimelineAnimator(1.0, OnTimeline);
+
+ btn.Clicked += Btn_Clicked;
+ timelineAnimator.Finished += (s, e) =>
+ {
+ map_index = (map_index + 1) % mappers.Length;
+ btn.IsEnabled = true;
+ };
+ }
+
+ private void Btn_Clicked(object sender, EventArgs e)
+ {
+ timelineAnimator.Start();
+ ((Button)sender).IsEnabled = false;
+ Log.Debug(mappers[map_index].Item1);
+ }
+
+ void OnTimeline()
+ {
+ double o = mappers[map_index].Item2.Caculate(timelineAnimator.Position);
+ int x = (int)((X2 * o) + (X1 * (1.0 - o)));
+ int y = (int)((Y2 * o) + (Y1 * (1.0 - o)));
+
+ square.Move(x, y);
+ }
+ }
+}
btns[0].Clicked += (s, e) => LoadFile("TED/large/a.jpg");
btns[1].Clicked += (s, e) => LoadFile("TED/large/b.jpg");
btns[2].Clicked += (s, e) => LoadUri("http://pe.tedcdn.com/images/ted/2e306b9655267cee35e45688ace775590b820510_615x461.jpg");
- btns[3].Clicked += (s, e) => LoadStream(new FileStream(Path.Combine(TestRunner.ResourceDir, "TED/large/c.jpg"), FileMode.Open));
+ btns[3].Clicked += (s, e) => LoadStream(new FileStream(Path.Combine(TestRunner.ResourceDir, "TED/large/c.jpg"), FileMode.Open, FileAccess.Read));
btns[4].Clicked += (s, e) => LoadFileAsync("TED/large/d.jpg");
btns[5].Clicked += (s, e) => LoadFileAsync("TED/large/e.jpg");
btns[6].Clicked += (s, e) => LoadUriAsync("http://pe.tedcdn.com/images/ted/2e306b9655267cee35e45688ace775590b820510_615x461.jpg");
- btns[7].Clicked += (s, e) => LoadStreamAsync(new FileStream(Path.Combine(TestRunner.ResourceDir, "TED/large/f.jpg"), FileMode.Open));
+ btns[7].Clicked += (s, e) => LoadStreamAsync(new FileStream(Path.Combine(TestRunner.ResourceDir, "TED/large/f.jpg"), FileMode.Open, FileAccess.Read));
}
void LoadFile(string file)
<?xml version="1.0" encoding="utf-8"?>
-<manifest xmlns="http://tizen.org/ns/packages" api-version="3.0" package="ElmSharpTest" version="1.0.0">
- <profile name="common" />
- <ui-application appid="org.tizen.ElmSharp.Test"
- exec="ElmSharp.Test.exe"
- type="dotnet"
- multiple="false"
- taskmanage="true"
- launch_mode="single">
- <icon>ElmSharp.Test.png</icon>
- <label>ElmSharp.Test</label>
- </ui-application>
+<manifest package="ElmSharpTest" version="1.0.0" api-version="3.0" xmlns="http://tizen.org/ns/packages">
+ <profile name="common" />
+ <ui-application appid="org.tizen.ElmSharp.Test" exec="ElmSharp.Test.dll" multiple="false" taskmanage="true" splash-screen-display="true" type="dotnet" launch_mode="single">
+ <icon>ElmSharp.Test.png</icon>
+ <label>ElmSharp.Test</label>
+ </ui-application>
+ <shortcut-list />
</manifest>
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+<Project>
+ <Import Project="Sdk.props" Sdk="Microsoft.NET.Sdk" />
+
+ <!-- Setting Tizen Extension Path -->
+ <PropertyGroup Label="Globals">
+ <TizenProjectExtensionsPath>$(MSBuildExtensionsPath)\Tizen\VisualStudio\</TizenProjectExtensionsPath>
+ </PropertyGroup>
+
+ <!-- Import Tizen property in Tizen.NET SDK -->
+ <Import Project="$(TizenProjectExtensionsPath)Tizen.NET.ProjectType.props" Condition="Exists('$(TizenProjectExtensionsPath)Tizen.NET.ProjectType.props')" />
+
+ <!-- Property Group for .NET Core Project -->
<PropertyGroup>
- <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
- <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
- <ProjectTypeGuids>{2F98DAC9-6F16-457B-AED7-D43CAC379341};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
- <ProjectGuid>{C6E111B7-21E2-4CD6-93BF-2CD5ED255749}</ProjectGuid>
<OutputType>Exe</OutputType>
- <AppDesignerFolder>Properties</AppDesignerFolder>
- <RootNamespace>ElmSharp.Wearable.Test</RootNamespace>
- <AssemblyName>ElmSharp.Wearable.Test</AssemblyName>
- <FileAlignment>512</FileAlignment>
+ <TargetFramework>netcoreapp1.1</TargetFramework>
</PropertyGroup>
+
+ <!-- Property Group for Tizen Project -->
<PropertyGroup>
- <TargetFrameworkIdentifier>.NETCoreApp</TargetFrameworkIdentifier>
- <TargetFrameworkVersion>v1.0</TargetFrameworkVersion>
- <NuGetTargetMoniker>.NETCoreApp,Version=v1.0</NuGetTargetMoniker>
- <AddAdditionalExplicitAssemblyReferences>false</AddAdditionalExplicitAssemblyReferences>
- <NoStdLib>true</NoStdLib>
- <NoWarn>$(NoWarn);1701;1702</NoWarn>
+ <TizenCreateTpkOnBuild>true</TizenCreateTpkOnBuild>
+ <PackageTargetFallback>$(PackageTargetFallback);portable-net45+wp80+win81+wpa81</PackageTargetFallback>
</PropertyGroup>
+
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
- <DebugSymbols>true</DebugSymbols>
- <DebugType>full</DebugType>
- <Optimize>true</Optimize>
- <OutputPath>bin\Debug\</OutputPath>
- <DefineConstants>DEBUG;TRACE</DefineConstants>
- <ErrorReport>prompt</ErrorReport>
- <WarningLevel>4</WarningLevel>
- <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
+ <DebugType>portable</DebugType>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
- <DebugType>pdbonly</DebugType>
- <Optimize>true</Optimize>
- <OutputPath>bin\Release\</OutputPath>
- <DefineConstants>TRACE</DefineConstants>
- <ErrorReport>prompt</ErrorReport>
- <WarningLevel>4</WarningLevel>
- <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
+ <DebugType>None</DebugType>
</PropertyGroup>
+
<ItemGroup>
- <Compile Include="Properties\AssemblyInfo.cs" />
- <Compile Include="TC\CircleDateTimeSelectorTest1.cs" />
- <Compile Include="TC\CircleDateTimeSelectorTest2.cs" />
- <Compile Include="TC\CircleDateTimeSelectorTest3.cs" />
- <Compile Include="TC\CircleDateTimeSelectorTest4.cs" />
- <Compile Include="TC\CircleGenListTest1.cs" />
- <Compile Include="TC\CircleGenListTest2.cs" />
- <Compile Include="TC\CircleGenListTest3.cs" />
- <Compile Include="TC\CircleGenListTest4.cs" />
- <Compile Include="TC\CircleScrollerTest1.cs" />
- <Compile Include="TC\CircleScrollerTest2.cs" />
- <Compile Include="TC\CircleScrollerTest3.cs" />
- <Compile Include="TC\CircleScrollerTest4.cs" />
- <Compile Include="TC\CircleSliderTest1.cs" />
- <Compile Include="TC\CircleSliderTest2.cs" />
- <Compile Include="TC\CircleProgressBarTest1.cs" />
- <Compile Include="TC\CircleProgressBarTest2.cs" />
- <Compile Include="TC\CircleProgressBarTest3.cs" />
- <Compile Include="TC\CircleProgressBarTest4.cs" />
- <Compile Include="TC\CircleSpinnerTest1.cs" />
- <Compile Include="TC\CircleSpinnerTest2.cs" />
- <Compile Include="TC\Log.cs" />
- <Compile Include="TC\MoreOptionTest.cs" />
- <Compile Include="TC\RotarySelectorTest.cs" />
- <Compile Include="TestCaseBase.cs" />
- <Compile Include="TestRunner.cs" />
- </ItemGroup>
- <ItemGroup>
- <None Include="ElmSharp.Wearable.Test.project.json" />
+ <Folder Include="shared\" />
+ <Folder Include="res\" />
</ItemGroup>
+
+ <!-- Include Nuget Package for Tizen Project building -->
<ItemGroup>
- <Content Include="res\icons\bg_black.png" />
- <Content Include="res\icons\bg_red.png" />
- <Content Include="res\icons\bg_white.png" />
- <Content Include="res\icons\icon_aquamarine_260_me.png" />
- <Content Include="res\icons\icon_auamarine_260_me.png" />
- <Content Include="res\icons\icon_azure_215_me.png" />
- <Content Include="res\icons\icon_beige_330_me.png" />
- <Content Include="res\icons\icon_blue_45_me.png" />
- <Content Include="res\icons\icon_brown_90_me.png" />
- <Content Include="res\icons\icon_cyan_230_me.png" />
- <Content Include="res\icons\icon_firebrick_95_me.png" />
- <Content Include="res\icons\icon_gold_75_me.png" />
- <Content Include="res\icons\icon_green_60_me.png" />
- <Content Include="res\icons\icon_honeydew_285_me.png" />
- <Content Include="res\icons\icon_ivory_315_me.png" />
- <Content Include="res\icons\icon_khaki_360_me.png" />
- <Content Include="res\icons\icon_lime_300_me.png" />
- <Content Include="res\icons\icon_maroon_120_me.png" />
- <Content Include="res\icons\icon_me.png" />
- <Content Include="res\icons\icon_orchid_160_me.png" />
- <Content Include="res\icons\icon_pink_145_me.png" />
- <Content Include="res\icons\icon_purple_200_me.png" />
- <Content Include="res\icons\icon_red_30_me.png" />
- <Content Include="res\icons\icon_snow_75_me.png" />
- <Content Include="res\icons\icon_snow_80_me.png" />
- <Content Include="res\icons\icon_teal_245_me.png" />
- <Content Include="res\icons\icon_violet_180_me.png" />
- <Content Include="res\icons\icon_yellow_345_me.png" />
- <Content Include="res\icons\pressed.png" />
- <Content Include="res\icons\round_bg_green.png" />
- <Content Include="res\icons\round_bg_white.png" />
- <Content Include="res\icons\round_bg_yellow.png" />
- <Content Include="res\icons\round_content_black.png" />
- <Content Include="res\icons\round_content_blue.png" />
- <Content Include="res\icons\round_content_red.png" />
- <Content Include="shared\res\ElmSharp.Test.png" />
- <Content Include="tizen-manifest.xml" />
+ <PackageReference Include="Tizen.NET" Version="3.0.0" />
+ <PackageReference Include="Tizen.NET.Sdk" Version="0.9.16-pre1" />
</ItemGroup>
<ItemGroup>
- <ProjectReference Include="..\ElmSharp.Wearable\ElmSharp.Wearable.csproj">
- <Project>{9a1c45ac-93e3-4b09-b896-769df60cf1b2}</Project>
- <Name>ElmSharp.Wearable</Name>
- </ProjectReference>
- <ProjectReference Include="..\ElmSharp\ElmSharp.csproj">
- <Project>{d00c29dd-4b2e-41c0-a323-bad1a74c69bf}</Project>
- <Name>ElmSharp</Name>
- </ProjectReference>
+ <ProjectReference Include="..\..\src\ElmSharp\ElmSharp.csproj" />
+ <ProjectReference Include="..\..\src\ElmSharp.Wearable\ElmSharp.Wearable.csproj" />
</ItemGroup>
- <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
- <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
- Other similar extension points exist, see Microsoft.Common.targets.
- <Target Name="BeforeBuild">
+
+ <Import Project="Sdk.targets" Sdk="Microsoft.NET.Sdk" />
+ <Import Project="$(TizenProjectExtensionsPath)Tizen.NET.ProjectType.targets" Condition="Exists('$(TizenProjectExtensionsPath)Tizen.NET.ProjectType.targets')" />
+
+ <!-- Install Check 'Visual Studio for Tizen' for developing on Visual Studio -->
+ <Target Name="TizenVsixInstallCheck" BeforeTargets="CompileDesignTime">
+ <Warning Condition="!Exists('$(TizenProjectExtensionsPath)Tizen.NET.ProjectType.props')" Text="$(TizenProjectExtensionsPath)Tizen.NET.ProjectType.props is not exist.
 you need to check if 'Visual Studio for Tizen' is installed" />
+ <Warning Condition="!Exists('$(TizenProjectExtensionsPath)Tizen.NET.ProjectType.targets')" Text="$(TizenProjectExtensionsPath)Tizen.NET.ProjectType.targets is not exist.\
 you need to check if 'Visual Studio for Tizen' is installed" />
</Target>
- <Target Name="AfterBuild">
- </Target>
- -->
- <PropertyGroup>
- <!-- https://github.com/dotnet/corefxlab/tree/master/samples/NetCoreSample and
- https://docs.microsoft.com/en-us/dotnet/articles/core/tutorials/target-dotnetcore-with-msbuild
- -->
- <!-- We don't use any of MSBuild's resolution logic for resolving the framework, so just set these two
- properties to any folder that exists to skip the GetReferenceAssemblyPaths task (not target) and
- to prevent it from outputting a warning (MSB3644).
- -->
- <_TargetFrameworkDirectories>$(MSBuildThisFileDirectory)</_TargetFrameworkDirectories>
- <_FullFrameworkReferenceAssemblyPaths>$(MSBuildThisFileDirectory)</_FullFrameworkReferenceAssemblyPaths>
- <AutoUnifyAssemblyReferences>true</AutoUnifyAssemblyReferences>
- </PropertyGroup>
- <ProjectExtensions>
- <VisualStudio>
- <FlavorProperties GUID="{2F98DAC9-6F16-457B-AED7-D43CAC379341}" Configuration="Debug|Any CPU">
- <ProjectCommonFlavorCfg />
- </FlavorProperties>
- <FlavorProperties GUID="{2F98DAC9-6F16-457B-AED7-D43CAC379341}" Configuration="Release|Any CPU">
- <ProjectCommonFlavorCfg />
- </FlavorProperties>
- </VisualStudio>
- </ProjectExtensions>
-</Project>
\ No newline at end of file
+</Project>
+++ /dev/null
-{
- "dependencies": {
- "Microsoft.NETCore.App": "1.0.0",
- "Tizen.Applications.Common": "1.5.8",
- "Tizen.Applications.UI": "1.5.8"
- },
- "frameworks": {
- "netcoreapp1.0": {}
- },
- "runtimes": {
- "win": {}
- }
-}
\ No newline at end of file
+++ /dev/null
-using System.Reflection;
-using System.Runtime.CompilerServices;
-using System.Runtime.InteropServices;
-
-// General Information about an assembly is controlled through the following
-// set of attributes. Change these attribute values to modify the information
-// associated with an assembly.
-[assembly: AssemblyTitle("ElmSharp.Wearable.Test")]
-[assembly: AssemblyDescription("")]
-[assembly: AssemblyConfiguration("")]
-[assembly: AssemblyCompany("Microsoft")]
-[assembly: AssemblyProduct("ElmSharp.Wearable.Test")]
-[assembly: AssemblyCopyright("Copyright © Microsoft 2016")]
-[assembly: AssemblyTrademark("")]
-[assembly: AssemblyCulture("")]
-
-// Setting ComVisible to false makes the types in this assembly not visible
-// to COM components. If you need to access a type in this assembly from
-// COM, set the ComVisible attribute to true on that type.
-[assembly: ComVisible(false)]
-
-// The following GUID is for the ID of the typelib if this project is exposed to COM
-[assembly: Guid("2e1a161a-baa9-40ef-a8b4-082ce7c813b8")]
-
-// Version information for an assembly consists of the following four values:
-//
-// Major Version
-// Minor Version
-// Build Number
-// Revision
-//
-// You can specify all the values or you can default the Build and Revision Numbers
-// by using the '*' as shown below:
-// [assembly: AssemblyVersion("1.0.*")]
-[assembly: AssemblyVersion("1.0.0.0")]
-[assembly: AssemblyFileVersion("1.0.0.0")]