示例#1
0
    /// <summary>
    /// 快捷栏的item List
    /// </summary>
    void InitShortcutItemGridList()
    {
        m_lstShortcutSetItemGrid.Clear();                                                       //用于UI缓存的grid

        m_lstShortcutSetItem = DataManager.Manager <SettingManager>().GetShortcutSetItemList(); //我们需要的数据list

        m_fixedShortcutItemCount = DataManager.Manager <SettingManager>().FixedShortcutItemCount;

        for (int i = 0; i < m_trans_CoteContent.childCount; i++)
        {
            Transform gridTransf = m_trans_CoteContent.GetChild(i);

            UIShortcutSetItemGrid grid = gridTransf.gameObject.GetComponent <UIShortcutSetItemGrid>();
            if (grid == null)
            {
                grid = gridTransf.gameObject.AddComponent <UIShortcutSetItemGrid>();
            }

            if (i < m_lstShortcutSetItem.Count)
            {
                grid.SetGridData(m_lstShortcutSetItem[i]);
                grid.RegisterUIEventDelegate(OnShortcutItemGirdEventDlg);

                m_lstShortcutSetItemGrid.Add(grid); //用于UI缓存的grid
            }
        }
    }
示例#2
0
    void SetSelectSetItemGrid1(ShortCuts item)
    {
        //CleanSetItemGridSelectState();

        UIShortcutSetItemGrid newSetItemGrid = m_lstShortcutSetItemGrid.Find((data) => { return(data.itemData.itemid == item.itemid && data.itemData.id == item.id); });

        if (newSetItemGrid != null)
        {
            newSetItemGrid.SetSelect(true);
        }
    }
示例#3
0
    void UpdateShortcutSetItemGridList(ShortCuts oldItemData, ShortCuts itemData)
    {
        UIShortcutSetItemGrid grid = m_lstShortcutSetItemGrid.Find((d) => { return(d.itemData.itemid == itemData.itemid); });

        if (grid != null)
        {
            if (grid.itemData.id != itemData.id)
            {
                ShortCuts tempItem = new ShortCuts();
                tempItem.id     = grid.itemData.id;
                tempItem.itemid = oldItemData.itemid;

                //点到的grid设置为最新
                UIShortcutSetItemGrid tempGrid = m_lstShortcutSetItemGrid.Find((d) => { return(d.itemData.id == itemData.id); });
                tempGrid.SetGridData(itemData);

                //已经存在的,设置为点到的grid之前的数据
                grid.SetGridData(tempItem);

                for (int i = 0; i < m_lstShortcutSetItemGrid.Count; i++)
                {
                    if (m_lstShortcutSetItemGrid[i].itemData.id == itemData.id)
                    {
                        m_lstShortcutSetItemGrid[i].itemData.itemid = itemData.itemid;
                    }

                    if (m_lstShortcutSetItemGrid[i].itemData.id == tempItem.id)
                    {
                        m_lstShortcutSetItemGrid[i].itemData.itemid = tempItem.itemid;
                    }
                }
            }
        }
        else
        {
            //找到当前位置
            UIShortcutSetItemGrid newGrid = m_lstShortcutSetItemGrid.Find((d) => { return(d.itemData.id == itemData.id); });
            newGrid.SetGridData(itemData);

            for (int i = 0; i < m_lstShortcutSetItemGrid.Count; i++)
            {
                if (m_lstShortcutSetItemGrid[i].itemData.id == itemData.id)
                {
                    m_lstShortcutSetItemGrid[i].itemData.itemid = itemData.itemid;
                }
            }
        }
    }
示例#4
0
    /// <summary>
    /// 清除快捷栏选中状态
    /// </summary>
    //void CleanSetItemGridSelectState()
    //{
    //    for (int i = 0; i < m_lstShortcutSetItemGrid.Count; i++)
    //    {
    //        m_lstShortcutSetItemGrid[i].SetSelect(false);
    //        m_lstShortcutSetItemGrid[i].clicks = 0;
    //    }
    //}

    //void CleanOtherSetItemGridSelectClicks(ShortCuts item)
    //{
    //    for (int i = 0; i < m_lstShortcutSetItemGrid.Count; i++)
    //    {
    //        if (item.id == m_lstShortcutSetItemGrid[i].itemData.id)
    //        {
    //            continue;
    //        }
    //        m_lstShortcutSetItemGrid[i].clicks = 0;
    //    }
    //}

    void RemoveSetItem(UIShortcutSetItemGrid grid)
    {
        ShortCuts itemData = new ShortCuts {
            id = grid.itemData.id, itemid = 0
        };

        grid.SetGridData(itemData);

        for (int i = 0; i < m_lstShortcutSetItemGrid.Count; i++)
        {
            if (m_lstShortcutSetItemGrid[i].itemData.id == grid.itemData.id)
            {
                m_lstShortcutSetItemGrid[i].itemData.itemid = 0;
            }
        }
    }
示例#5
0
    /// <summary>
    /// 交换
    /// </summary>
    void ExchangeItem(uint newIndex, uint newItemId, uint oldIndex, uint oldItemId)
    {
        //oldItem  赋最新点击的值
        UIShortcutSetItemGrid oldSetItemGrid = m_lstShortcutSetItemGrid.Find((data) => { return(data.itemData.id == oldIndex); });

        if (oldSetItemGrid != null)
        {
            ShortCuts itemData = new ShortCuts {
                id = oldIndex, itemid = newItemId
            };
            oldSetItemGrid.SetGridData(itemData);
        }

        //newItem   赋上次点击的值
        UIShortcutSetItemGrid newSetItemGrid = m_lstShortcutSetItemGrid.Find((data) => { return(data.itemData.id == newIndex); });

        if (newSetItemGrid != null)
        {
            ShortCuts itemData = new ShortCuts {
                id = newIndex, itemid = oldItemId
            };
            newSetItemGrid.SetGridData(itemData);
        }
    }
示例#6
0
    /// <summary>
    /// 快捷栏点击事件
    /// </summary>
    /// <param name="eventType"></param>
    /// <param name="data"></param>
    /// <param name="param"></param>
    private void OnShortcutItemGirdEventDlg(UIEventType eventType, object data, object param)
    {
        if (eventType == UIEventType.Click)
        {
            UIShortcutSetItemGrid grid = data as UIShortcutSetItemGrid;
            if (grid == null)
            {
                return;
            }

            //如果点击的是grid的移除按钮
            if (param != null)
            {
                int removeBtn = (int)param;
                if (removeBtn == 1)
                {
                    RemoveSetItem(grid);
                    return;
                }
            }

            //点的是grid
            //第二次点击取消选中
            //if (grid.clicks >= 1)
            //{
            //    CleanSetItemGridSelectState();
            //    this.m_selectSetItem = new ShortCuts { id = 0, itemid = 0 };
            //    return;
            //}

            //快捷栏选中
            //SetSelectSetItemGrid(grid.itemData);

            //设置
            if (m_clickShortcutBefore == false)
            {
                ShortCuts itemData = new ShortCuts {
                    id = grid.itemData.id, itemid = m_selectItemId
                };
                UpdateShortcutSetItemGridList(grid.itemData, itemData);
            }

            /*
             * //1、上次点的是物品栏,2、快捷栏为空
             * if (m_clickShortcutBefore == false && grid.itemData.itemid == 0)
             * {
             *  ShortCuts itemData = new ShortCuts { id = grid.itemData.id, itemid = m_selectItemId };
             *  grid.SetGridData(itemData);
             * }
             *
             * //1、上次点的是物品栏,2、对应快捷栏不为空或为空
             * UIShortcutSetItemGrid tempGrid = m_lstShortcutSetItemGrid.Find((gridData) => { return gridData.itemData.itemid == m_selectItemId; });
             * if (m_clickShortcutBefore == false)
             * {
             *  if (tempGrid != null) //对应快捷栏不为空
             *  {
             *      ExchangeItem(grid.itemData.id, grid.itemData.itemid, tempGrid.itemData.id, tempGrid.itemData.itemid);
             *  }
             *  else //对应快捷栏为空
             *  {
             *      ShortCuts itemData = new ShortCuts { id = grid.itemData.id, itemid = m_selectItemId };
             *      grid.SetGridData(itemData);
             *  }
             * }
             */

            //上次点击的是快捷栏,交换
            //if (m_clickShortcutBefore == true)
            //{
            //    UIShortcutSetItemGrid oldSetItemGrid = m_lstShortcutSetItemGrid.Find((d) => { return d.itemData.itemid == m_selectSetItem.itemid && d.itemData.id == m_selectSetItem.id; });
            //    if (oldSetItemGrid != null)
            //    {
            //        ExchangeItem(grid.itemData.id, grid.itemData.itemid, oldSetItemGrid.itemData.id, oldSetItemGrid.itemData.itemid);
            //    }
            //}

            //设置物品栏选中
            if (grid.itemData.itemid != 0)
            {
                SetSelectItemGird(grid.itemData.itemid);
            }

            this.m_selectSetItem = grid.itemData;  //把最新选中的Item 赋值给m_selectSetItemId

            m_clickShortcutBefore = true;
        }
    }