Search Unity

New UI Widgets

Discussion in 'Assets and Asset Store' started by ilih, Feb 11, 2015.

  1. ilih

    ilih

    Joined:
    Aug 6, 2013
    Posts:
    1,413
    Fixed:
    Utilites.cs, add line after line 101
    Code (CSharp):
    1. rectTransform.sizeDelta = defaultRectTransform.sizeDelta;
    Changes in package:
    • DefaultItem - remove two ContentSizeFitter's, enable ControlHeight in EasyLayout
    • DefaultItem.Text - remove ContentSizeFitter, set anchor top stretch, Left = 5, Right = 5
    • DefaultItem.LayoutElement.prefferedHeight = 36
     

    Attached Files:

  2. RazaTech

    RazaTech

    Joined:
    Feb 27, 2015
    Posts:
    178
     
  3. ilih

    ilih

    Joined:
    Aug 6, 2013
    Posts:
    1,413
    Equivalent Content Size Fitter with Horizotal / Vertical Fit = Preferred
     
  4. RazaTech

    RazaTech

    Joined:
    Feb 27, 2015
    Posts:
    178
    i m using easylaout , and i want a gameobject to ignore Layout what should i do ?
     
  5. ilih

    ilih

    Joined:
    Aug 6, 2013
    Posts:
    1,413
    Same as standart layouts. Add Layout Element component to gameobject and enable "Ignore Layout".
     
    RazaTech likes this.
  6. RazaTech

    RazaTech

    Joined:
    Feb 27, 2015
    Posts:
    178
    please check it
     

    Attached Files:

  7. ilih

    ilih

    Joined:
    Aug 6, 2013
    Posts:
    1,413
    Replace line 110 in ListViewCustomHeight.cs
    old line
    Code (CSharp):
    1. return Math.Max(0, height + (layout.Spacing.y * (topHiddenItems - 1)));
    new line
    Code (CSharp):
    1. return Math.Max(0, height + (layout.Spacing.y * (bottomHiddenItems - 1)));
     
    RazaTech likes this.
  8. Christoph_CH

    Christoph_CH

    Joined:
    Jun 26, 2015
    Posts:
    14
    Hi, I had an issue with SpinnerFloat component.
    I have to enter different values with different float format Settings. At the moment the mask is fixed set to "0.00" in source. Is it possible to make it changeable in editor ??
    Thanks
     
  9. ilih

    ilih

    Joined:
    Aug 6, 2013
    Posts:
    1,413
    Add following code in SpinnerFloat.cs at line 104
    Code (CSharp):
    1.         [SerializeField]
    2.         string format = "0.00";
    3.  
    4.         public string Format {
    5.             get {
    6.                 return format;
    7.             }
    8.             set {
    9.                 format = value;
    10.                 text = _value.ToString(format);
    11.             }
    12.         }
    Replace line 101 in SpinnerFloat.cs
    old line
    Code (CSharp):
    1. text = _value.ToString("0.00");
    new line
    Code (CSharp):
    1. text = _value.ToString(format);
    Replace code in Editor/SpinnerFloatEditor.cs
    Code (CSharp):
    1. using UnityEngine;
    2. using UnityEngine.UI;
    3. using UnityEditor;
    4. using UnityEditor.UI;
    5. using System.Collections.Generic;
    6. using System;
    7.  
    8. namespace UIWidgets
    9. {
    10.     [CanEditMultipleObjects]
    11.     [CustomEditor(typeof(SpinnerFloat), true)]
    12.     public class SpinnerFloatEditor : SelectableEditor
    13.     {
    14.         Dictionary<string,SerializedProperty> serializedProperties = new Dictionary<string,SerializedProperty>();
    15.        
    16.         protected string[] properties = new string[]{
    17.             //InputField
    18.             "m_TextComponent",
    19.             "m_CaretBlinkRate",
    20.             "m_SelectionColor",
    21.             "m_HideMobileInput",
    22.             "m_Placeholder",
    23.             "m_OnValueChange",
    24.             "m_EndEdit",
    25.            
    26.             //Spinner
    27.             "_min",
    28.             "_max",
    29.             "_step",
    30.             "_value",
    31.             "format",
    32.             "_plusButton",
    33.             "_minusButton",
    34.             "HoldStartDelay",
    35.             "HoldChangeDelay",
    36.            
    37.             "onPlusClick",
    38.             "onMinusClick",
    39.         };
    40.        
    41.         protected override void OnEnable()
    42.         {
    43.             base.OnEnable();
    44.            
    45.             Array.ForEach(properties, x => {
    46.                 serializedProperties.Add(x, serializedObject.FindProperty(x));
    47.             });
    48.         }
    49.        
    50.         public override void OnInspectorGUI()
    51.         {
    52.             serializedObject.Update();
    53.            
    54.             base.OnInspectorGUI();
    55.            
    56.             EditorGUILayout.Space();
    57.            
    58.             EditorGUILayout.PropertyField(serializedProperties["_min"]);
    59.             EditorGUILayout.PropertyField(serializedProperties["_max"]);
    60.             EditorGUILayout.PropertyField(serializedProperties["_step"]);
    61.             EditorGUILayout.PropertyField(serializedProperties["_value"]);
    62.             EditorGUILayout.PropertyField(serializedProperties["format"]);
    63.             EditorGUILayout.PropertyField(serializedProperties["HoldStartDelay"]);
    64.             EditorGUILayout.PropertyField(serializedProperties["HoldChangeDelay"]);
    65.             EditorGUILayout.PropertyField(serializedProperties["_plusButton"]);
    66.             EditorGUILayout.PropertyField(serializedProperties["_minusButton"]);
    67.            
    68.             EditorGUILayout.PropertyField(serializedProperties["m_TextComponent"]);
    69.            
    70.             if (serializedProperties["m_TextComponent"] != null && serializedProperties["m_TextComponent"].objectReferenceValue != null)
    71.             {
    72.                 Text text = serializedProperties["m_TextComponent"].objectReferenceValue as Text;
    73.                 if (text.supportRichText)
    74.                 {
    75.                     EditorGUILayout.HelpBox("Using Rich Text with input is unsupported.", MessageType.Warning);
    76.                 }
    77.                
    78.                 if (text.alignment != TextAnchor.UpperLeft &&
    79.                     text.alignment != TextAnchor.UpperCenter &&
    80.                     text.alignment != TextAnchor.UpperRight)
    81.                 {
    82.                     EditorGUILayout.HelpBox("Using a non upper alignment with input is unsupported.", MessageType.Warning);
    83.                 }
    84.             }
    85.            
    86.             EditorGUI.BeginDisabledGroup(serializedProperties["m_TextComponent"] == null || serializedProperties["m_TextComponent"].objectReferenceValue == null);
    87.            
    88.             EditorGUILayout.Space();
    89.            
    90.             EditorGUILayout.PropertyField(serializedProperties["m_Placeholder"]);
    91.             EditorGUILayout.PropertyField(serializedProperties["m_CaretBlinkRate"]);
    92.             EditorGUILayout.PropertyField(serializedProperties["m_SelectionColor"]);
    93.             EditorGUILayout.PropertyField(serializedProperties["m_HideMobileInput"]);
    94.            
    95.             EditorGUILayout.Space();
    96.            
    97.             EditorGUILayout.PropertyField(serializedProperties["m_OnValueChange"]);
    98.             EditorGUILayout.PropertyField(serializedProperties["m_EndEdit"]);
    99.            
    100.             EditorGUILayout.PropertyField(serializedProperties["onPlusClick"]);
    101.             EditorGUILayout.PropertyField(serializedProperties["onMinusClick"]);
    102.            
    103.             EditorGUI.EndDisabledGroup();
    104.            
    105.             serializedObject.ApplyModifiedProperties();
    106.         }
    107.     }
    108. }
     
  10. RazaTech

    RazaTech

    Joined:
    Feb 27, 2015
    Posts:
    178
    what if we have to detect startScrolling , endScrolling ?

    These events will enable me to load images only when list is not scrolling
    plz provide events for StartScrolling, and EndScrolling just like Starling do

    Thanx :)
     
  11. ilih

    ilih

    Joined:
    Aug 6, 2013
    Posts:
    1,413
    Invalid link
     
    RazaTech likes this.
  12. RazaTech

    RazaTech

    Joined:
    Feb 27, 2015
    Posts:
    178
  13. Christoph_CH

    Christoph_CH

    Joined:
    Jun 26, 2015
    Posts:
    14
    Thanks, works great !!
    Very quick Response !!
    Will it be part of next release ?
     
  14. RazaTech

    RazaTech

    Joined:
    Feb 27, 2015
    Posts:
    178
    hi !
    TabsControll works with array of tab objects .
    Arrays are not resizeable, cant you provide a list feature? Like a browser we have a + button to add a new Tab (Resizeable List)

    Secondly currently all we can do is pass a name, what i want is pass an object with name and custom information that i can use in the tab heading like an icon? or a tab heading with close button etc
     
    Last edited: Aug 24, 2015
  15. ilih

    ilih

    Joined:
    Aug 6, 2013
    Posts:
    1,413
    I'll think about it.

    Yes.

    I'll add this features.
     
  16. RazaTech

    RazaTech

    Joined:
    Feb 27, 2015
    Posts:
    178
    my current app is suffering due to performance issues related to images loading in the list , only way to make it fast is to utlize start scrolling and end scrolling events , i highly appreciate if you can provide this feature on priority bases , even before "tab " or any other feature.
     
  17. RazaTech

    RazaTech

    Joined:
    Feb 27, 2015
    Posts:
    178
    I'm a working on a unity based application using your ui widget which is heavily dependant on List Control, Variable Height and Complex ItemRenderer.
    I made a basic complex itemRenderer and tested it on Nexus 7, and performance was really worst. I then made a very basic example to make sure whether its me or the List component is slow, Turned out that its the List Control.
    I'm attaching both apk and project for you to test, with this worst performance whole project will go down, I hope you look at it ASAP.
    Thanks
    this is apk
    https://www.wetransfer.com/download...f66551c22c9c6b4864619ca720150825095012/910627
     

    Attached Files:

  18. ilih

    ilih

    Joined:
    Aug 6, 2013
    Posts:
    1,413
    In Unity project error "Canvas element contains more than 65535 vertices. This is not supported", this is problem with lot of text.
    Test apk on Zenfone 2 - no problem with performance.
    Try to check with Profiler what causes performance problems.
     
    RazaTech likes this.
  19. RazaTech

    RazaTech

    Joined:
    Feb 27, 2015
    Posts:
    178
    I have tested on S3 too, please take look on given project and let me know whats the issue.
     
  20. ilih

    ilih

    Joined:
    Aug 6, 2013
    Posts:
    1,413
    What you see in Profiler?
    Unity version?
    Android version?
    Android SDK version?
    JDK version?
    Problem happen with Android devies or Standalone too?
    Apk should be build with enabled "Development build" to use it with Profiler. And with same scene with attached project.
     
  21. RazaTech

    RazaTech

    Joined:
    Feb 27, 2015
    Posts:
    178

    Attached Files:

  22. RazaTech

    RazaTech

    Joined:
    Feb 27, 2015
    Posts:
    178
    does it support with text mesh pro ,
    i tried it but unity editor get stuck ..
     
  23. ilih

    ilih

    Joined:
    Aug 6, 2013
    Posts:
    1,413
    I suppose you put Text gameobject in DefaultItem to separate Canvas, something like this:

    It help with 65535 vertices limit, but cause performance drop.


    Here is another way, it should solve problem with performance and canvas vertices limit.
    • Remove Shadow component from Text gameobject (Each character use 6 vertices, one shadow per character also use 6 vertices). This allow use twice more charactes.
    • Replace line 54 in ListViewCustomHeight.cs
      old line:
      Code (CSharp):
      1. base.CalculateMaxVisibleItems();
      new lines:
      Code (CSharp):
      1. var height = scrollHeight;
      2.             maxVisibleItems = customItems.OrderBy(x => x.Height).TakeWhile(x => {
      3.                 height -= x.Height;
      4.                 return height > 0;
      5.             }).Count() + 2;
      This will limit count of rendered items, what mean less charactes.
    Unfortunately TextMesh Pro documentation is unavailable, but I think this way should work
    • replace Text component with Text Mesh Pro UGUI
    • replace in ListViewVeriableHeightItem.cs "public Text Text;" with "public TextMeshProUGUI Text;"
     
    RazaTech likes this.
  24. RazaTech

    RazaTech

    Joined:
    Feb 27, 2015
    Posts:
    178
    This is unity pkg.
     

    Attached Files:

  25. Arcanor

    Arcanor

    Joined:
    Nov 4, 2009
    Posts:
    283
    I'm using the version downloaded from the asset store, with no modifications.

    I'm trying to clear a ListViewGameObjects, right before repopulating it with new elements (that may be similar to the old elements). I've tried several approaches, but none is working.

    This seems to do nothing:
    Code (CSharp):
    1. listView.Clear();
    This gives an error saying that Objects can be get, but not set:
    Code (CSharp):
    1. listView.Objects = new List<GameObject>();
    This gives an error with game object destroyed but still trying to access it:
    Code (CSharp):
    1. listView.Items = new List<UIWidgets.ListViewItem>();
    This gives an argument out of range exception, parameter name: index (in ListViewGameObjects.cs, at line 214):
    Code (CSharp):
    1. List<GameObject> tmpObjectsList = listView.Objects;
    2. foreach (GameObject goRemove in tmpObjectsList)
    3. {
    4.   Debug.Log("removing: " + goRemove.name);
    5.   listView.Remove(goRemove);
    6. }
    This fails with the same argument out of range exception as above:
    Code (CSharp):
    1. List<GameObject> tmpObjectsList = listView.Objects;
    2. for (int i = tmpObjectsList.Count; i > 0; i--)
    3. {
    4.     listView.Remove(tmpObjectsList[i - 1]);
    5. }
    What is the recommended way to remove all elements from a game objects list view?
     
  26. ilih

    ilih

    Joined:
    Aug 6, 2013
    Posts:
    1,413
    Sorry, I forgot to add Clear to ListViewGameObjects.
    Please add following method to ListViewGameObjects.cs
    Code (CSharp):
    1.         /// <summary>
    2.         /// Clear items of this instance.
    3.         /// </summary>
    4.         public override void Clear()
    5.         {
    6.             if (DestroyGameObjects)
    7.             {
    8.                 objects.ForEach(Destroy);
    9.             }
    10.             UpdateItems(new List<GameObject>());
    11.         }
     
    Last edited: Aug 30, 2015
  27. Arcanor

    Arcanor

    Joined:
    Nov 4, 2009
    Posts:
    283
    Thanks for your quick response ilih. I've added this, and am now calling it, but I'm still getting the following error:

    Code (CSharp):
    1. ArgumentOutOfRangeException: Argument is out of range.
    2. Parameter name: index
    3. System.Collections.Generic.List`1[UnityEngine.GameObject].get_Item (Int32 index) (at /Users/builduser/buildslave/mono-runtime-and-classlibs/build/mcs/class/corlib/System.Collections.Generic/List.cs:633)
    4. UIWidgets.ListViewGameObjects+<UpdateItems>c__AnonStorey65+<UpdateItems>c__AnonStorey66.<>m__C1 (UnityEngine.GameObject x) (at Assets/UIWidgets/Standart Assets/ListViewGameObjects.cs:227)
    5. System.Collections.Generic.List`1[UnityEngine.GameObject].GetIndex (Int32 startIndex, Int32 count, System.Predicate`1 match) (at /Users/builduser/buildslave/mono-runtime-and-classlibs/build/mcs/class/corlib/System.Collections.Generic/List.cs:313)
    6. System.Collections.Generic.List`1[UnityEngine.GameObject].FindIndex (System.Predicate`1 match) (at /Users/builduser/buildslave/mono-runtime-and-classlibs/build/mcs/class/corlib/System.Collections.Generic/List.cs:294)
    7. UIWidgets.ListViewGameObjects+<UpdateItems>c__AnonStorey65.<>m__BE (Int32 index) (at Assets/UIWidgets/Standart Assets/ListViewGameObjects.cs:227)
    8. System.Collections.Generic.List`1[System.Int32].ForEach (System.Action`1 action) (at /Users/builduser/buildslave/mono-runtime-and-classlibs/build/mcs/class/corlib/System.Collections.Generic/List.cs:361)
    9. UIWidgets.ListViewGameObjects.UpdateItems (System.Collections.Generic.List`1 newItems) (at Assets/UIWidgets/Standart Assets/ListViewGameObjects.cs:226)
    10. UIWidgets.ListViewGameObjects.Add (UnityEngine.GameObject item) (at Assets/UIWidgets/Standart Assets/ListViewGameObjects.cs:134)
    11. UIManager.DisplayInteraction (.InteractionData _interaction) (at Assets/WRKitUtility/Scripts/UIManager.cs:135)
    12. Interactor.OnMouseDown () (at Assets/WRKitUtility/Scripts/Interactor.cs:33)
    13. UnityEngine.SendMouseEvents:DoSendMouseEvents(Int32, Int32)
    Note that the error doesn't occur at the point that the Clear() is called, but it happens shortly after, when I try to Add() a newly instantiated gameobject to the listview.
     
  28. ilih

    ilih

    Joined:
    Aug 6, 2013
    Posts:
    1,413
    Please replace UpdateItems method in ListViewGameObjects.cs
    Code (CSharp):
    1.         void UpdateItems(List<GameObject> newItems)
    2.         {
    3.             RemoveCallbacks();
    4.            
    5.             newItems = SortItems(newItems);
    6.            
    7.             var new_selected_indicies = SelectedIndicies
    8.                 .Select(x => objects.Count > x ? newItems.IndexOf(objects[x]) : -1)
    9.                 .Where(x => x!=-1).ToList();
    10.             SelectedIndicies.Except(new_selected_indicies).ForEach(Deselect);
    11.  
    12.             objects = newItems;
    13.             base.Items = newItems.Select(x => x.GetComponent<ListViewItem>() ?? x.AddComponent<ListViewItem>()).ToList();
    14.  
    15.             SelectedIndicies = new_selected_indicies;
    16.  
    17.             AddCallbacks();
    18.         }
     
  29. Arcanor

    Arcanor

    Joined:
    Nov 4, 2009
    Posts:
    283
    Thank you again, but I'm sorry to say I'm still getting the following error:
    Code (CSharp):
    1. ArgumentOutOfRangeException: Argument is out of range.
    2. Parameter name: index
    3. System.Collections.Generic.List`1[UnityEngine.GameObject].get_Item (Int32 index) (at /Users/builduser/buildslave/mono-runtime-and-classlibs/build/mcs/class/corlib/System.Collections.Generic/List.cs:633)
    4. UIWidgets.ListViewGameObjects.OnDeselectCallback (Int32 index, UIWidgets.ListViewItem item) (at Assets/UIWidgets/Standart Assets/ListViewGameObjects.cs:104)
    5. UnityEngine.Events.InvokableCall`2[System.Int32,UIWidgets.ListViewItem].Invoke (System.Object[] args) (at C:/buildslave/unity/build/Runtime/Export/UnityEvent.cs:200)
    6. UnityEngine.Events.InvokableCallList.Invoke (System.Object[] parameters) (at C:/buildslave/unity/build/Runtime/Export/UnityEvent.cs:602)
    7. UnityEngine.Events.UnityEventBase.Invoke (System.Object[] parameters) (at C:/buildslave/unity/build/Runtime/Export/UnityEvent.cs:744)
    8. UnityEngine.Events.UnityEvent`2[System.Int32,UIWidgets.ListViewItem].Invoke (Int32 arg0, UIWidgets.ListViewItem arg1) (at C:/buildslave/unity/build/Runtime/Export/UnityEvent_2.cs:53)
    9. UIWidgets.ListViewBase.Deselect (Int32 index) (at Assets/UIWidgets/Standart Assets/ListViewBase.cs:498)
    10. UIWidgets.ForEachExtensions.ForEach[Int32] (IEnumerable`1 enumerable, System.Action`1 handler) (at Assets/UIWidgets/Standart Assets/Utilites.cs:184)
    11. UIWidgets.ListViewGameObjects.UpdateItems (System.Collections.Generic.List`1 newItems) (at Assets/UIWidgets/Standart Assets/ListViewGameObjects.cs:228)
    12. UIWidgets.ListViewGameObjects.UpdateItems () (at Assets/UIWidgets/Standart Assets/ListViewGameObjects.cs:122)
    13. UIWidgets.ListViewGameObjects.Clear () (at Assets/UIWidgets/Standart Assets/ListViewGameObjects.cs:216)
    14. UIManager.DisplayInteraction (.InteractionData _interaction) (at Assets/WRKitUtility/Scripts/UIManager.cs:109)
    15. Interactor.OnMouseDown () (at Assets/WRKitUtility/Scripts/Interactor.cs:33)
    16. UnityEngine.SendMouseEvents:DoSendMouseEvents(Int32, Int32)
    The relevant line in ListViewGameObjects.cs, at line 228 is this one (which is inside the new method you provided above):
    Code (CSharp):
    1. SelectedIndicies.Except(new_selected_indicies).ForEach(Deselect);
     
  30. ilih

    ilih

    Joined:
    Aug 6, 2013
    Posts:
    1,413
    Sorry, first version of Clear method have a bug, few minutes later I edit post and correct error, but suppose should have specionally mentioned about it.

    Please replace lines in clear method:
    instead
    Code (CSharp):
    1.             objects.Clear();
    2.             UpdateItems();
    shoud be
    Code (CSharp):
    1. UpdateItems(new List<GameObject>());
     
  31. Arcanor

    Arcanor

    Joined:
    Nov 4, 2009
    Posts:
    283
    Thanks so much. It seems to be working now.
     
  32. alizdesk

    alizdesk

    Joined:
    Mar 26, 2015
    Posts:
    46
    Hi @iih
    When should we expect a new release?
    Thanks
     
  33. ilih

    ilih

    Joined:
    Aug 6, 2013
    Posts:
    1,413
    Couple of weeks.
     
  34. f4lke

    f4lke

    Joined:
    Dec 29, 2013
    Posts:
    35
    Hello there!

    First of all, i want to congratulate you to this package. It's undoubtedly worth the money and in my oppinion the best enhancement for the new UI.

    I'm working on a game right now which will have an editor included. The editor already exists for now, but it's written in .NET C# and WPF, and i now want to port it to unity/mono. For that, i primarily need a treeview and listview. The later is obviously no problem, which brings me to the treeview: Will it be in the update "couple of weeks" away? Do you tend to implement a version which holds gameobjects, like the listview? If so, how will the tree be stored? Will there be a property which returns a Gameobject with Gameobject children (tree) and so on? Can the treeitems be added/deleted on the fly while the tree remains its states, for example foldings and scrollposition? What about horizontal scrolling, in case the tree grows too big? I would be glad if you could explain your plans a little bit. :)

    Best regards,
    Daniel
     
    Last edited: Sep 7, 2015
  35. ilih

    ilih

    Joined:
    Aug 6, 2013
    Posts:
    1,413
    Yes. Now I am working on TreeView and after it update will be released.

    May be.
    Probably tree will be stored like this.
    Code (csharp):
    1. TreeNode<T> {
    2.    bool IsExpanded;
    3.    T Item;
    4.    List<TreeNode<T>> Nodes;
    5. }
    Yes, but not sure about scrollposition.

    I don't know yet.

     
    Last edited: Sep 7, 2015
  36. f4lke

    f4lke

    Joined:
    Dec 29, 2013
    Posts:
    35
    In that case, you just earned yourself a new customer. Thanks for the quick update.
     
  37. RazaTech

    RazaTech

    Joined:
    Feb 27, 2015
    Posts:
    178
    plz check it , what is wrong with preferred height..
     

    Attached Files:

  38. ilih

    ilih

    Joined:
    Aug 6, 2013
    Posts:
    1,413
    ListView and DefaultItem gameobjects does not have any ListView* scripts attached. Possibly those scripts not included in package and removed from gameobjects at scene on export stage.
     
  39. RazaTech

    RazaTech

    Joined:
    Feb 27, 2015
    Posts:
    178
    Check this:
     

    Attached Files:

  40. ilih

    ilih

    Joined:
    Aug 6, 2013
    Posts:
    1,413
    1. Objects under Vertical Layout Group control (or Horizontal Layout Group control) does not return correct size in same frame until you call layout update from code.
      Add in ListViewSportsDataItem.cs
      Code (CSharp):
      1.     [SerializeField]
      2.     VerticalLayoutGroup Layout;
      Replace code in CalculateHeight()
      Code (CSharp):
      1.     private float CalculateHeight()
      2.     {
      3.         Layout.CalculateLayoutInputHorizontal();
      4.         Layout.SetLayoutHorizontal();
      5.         Layout.CalculateLayoutInputVertical();
      6.         Layout.SetLayoutVertical();
      7.  
      Specify Layout in DefaultItem.
    2. Minimal height of DefaultItem is 63.75, but in CalculateHeight it limited to 100. You need add LayoutElement compoent to DefauttItem and specify Min Height = 100.
     
    RazaTech likes this.
  41. sanpats

    sanpats

    Joined:
    Aug 24, 2011
    Posts:
    343
    Any plan to add support for new 5.2 dropdown and 2D mask?
     
  42. ilih

    ilih

    Joined:
    Aug 6, 2013
    Posts:
    1,413
    What support it needed?
    Dropdown have same functionality as Combobox from package without few features.
    2D Mask similar to Mask with some limitations.
     
  43. sanpats

    sanpats

    Joined:
    Aug 24, 2011
    Posts:
    343
    Expand Combobox from the built-in Dropdown may be a better idea in a long run, no? Especially for performance optimization.
     
  44. ilih

    ilih

    Joined:
    Aug 6, 2013
    Posts:
    1,413
    I don't think so.
    I check Dropdown source code and it will be hard expand it if it really possible.
    Dropdown doesn't have performance optimization.
    Dropdown cannot be used with custom data class, unlike ComboboxCustom.
    Dropdown available in 5.2 or newer, not in previous versions.
     
  45. sebastien-barry

    sebastien-barry

    Joined:
    Dec 18, 2013
    Posts:
    54
    Hi, I'm really interested with your asset, just wait for Treeview support.
    Will Treeview support custom items (a different one for parents and childs) ?
    Will treeview support colums and ordering ?
    Will it be soon release ?
    I'm just waiting for Treeview to buy your asset.
     
  46. ilih

    ilih

    Joined:
    Aug 6, 2013
    Posts:
    1,413
    Yes.
    Code (CSharp):
    1.     public interface ITreeViewSampleItem : IObservable {
    2.         void Display(TreeViewSampleComponent component);
    3.     }
    4.  
    5.     public class TreeViewSampleItemContinent : ITreeViewSampleItem {
    6.         public string Name;
    7.         public int Countries;
    8.  
    9.         public void Display(TreeViewSampleComponent component)
    10.         {
    11.             component.Icon.sprite = null;
    12.             component.Icon.color = Color.clear;
    13.             component.Text.text = Name + " (Countries: " + Countries + ") ";
    14.         }
    15.     }
    16.  
    17.     public class TreeViewSampleItemCountry : ITreeViewSampleItem {
    18.         public Sprite Icon;
    19.         public string Name;
    20.      
    21.         public void Display(TreeViewSampleComponent component)
    22.         {
    23.             component.Icon.sprite = Icon;
    24.             component.Text.text = Name;
    25.          
    26.             if (component.SetNativeSize)
    27.             {
    28.                 component.Icon.SetNativeSize();
    29.             }
    30.          
    31.             component.Icon.color = (component.Icon.sprite==null) ? Color.clear : Color.white;
    32.         }
    33.     }
    34.  

    Columns supported. Headers not.
    I don't check ordering, it should work, but requires special collection which raise specific event on Add/Remove/Clear etc.

    Yes. Now I working on documentation and minor fixes, probably tomorrow update will be submitted to AssetStore and then few days to approve.
     
    Last edited: Sep 22, 2015
  47. ilih

    ilih

    Joined:
    Aug 6, 2013
    Posts:
    1,413
    Version 1.5.0 submitted to AssetStore and will be available to download after approve.

    New in 1.5.0:
    • TileView
    • TreeView
    • Resizable Header
    • Direction option for ListView and TileView
    • Value option for ListViewIcons items.
    Demo
     
  48. ilih

    ilih

    Joined:
    Aug 6, 2013
    Posts:
    1,413
  49. RazaTech

    RazaTech

    Joined:
    Feb 27, 2015
    Posts:
    178
    Scrolling start and scrolling end events have been added in 1.5 ?
     
    Last edited: Sep 28, 2015
  50. ilih

    ilih

    Joined:
    Aug 6, 2013
    Posts:
    1,413
    Yes.
     
    RazaTech likes this.