Beispiel #1
0
        /**
         * 全ての描画オブジェクト情報を出力する
         */
        public void showAllList(bool ascending, bool isShowOnly)
        {
            // カレントページのリストを取得
            SortedDictionary <int, DrawList> lists = mDrawList;

            ULog.print(TAG, " ++ showAllList ++");

            IOrderedEnumerable <KeyValuePair <int, DrawList> > descendingList =
                lists.OrderByDescending(selector =>
            {
                DrawList list = lists[selector.Key];

                ULog.print(TAG, " + priority:" + list.getPriority());
                list.showAll(ascending, isShowOnly);

                return(selector.Key);
            });
        }
Beispiel #2
0
        /**
         * 削除要求のリストの描画オブジェクトを削除する
         */
        private void removeRequestedList()
        {
            SortedDictionary <int, DrawList> lists = mDrawList;

            if (lists == null)
            {
                return;
            }

            foreach (UDrawable obj in removeRequest)
            {
                int      _priority = obj.getDrawPriority();
                DrawList list      = lists[_priority];
                if (list != null)
                {
                    list.remove(obj);
                }
            }
            removeRequest.Clear();
        }
Beispiel #3
0
        /**
         * DrawListのプライオリティを変更する
         * @param list1  変更元のリスト
         * @param priority
         */
        public void setPriority(DrawList list1, int priority)
        {
            SortedDictionary <int, DrawList> lists = mDrawList;

            // 変更先のプライオリティーを持つリストを探す
            int      _priority = priority;
            DrawList list2     = lists[_priority];

            if (list2 != null)
            {
                // すでに変更先のプライオリティーのリストがあるので交換
                int srcPriority  = list1.getPriority();
                int _srcPriority = srcPriority;
                lists.Add(_priority, list1);
                lists.Add(_srcPriority, list2);
            }
            else
            {
                lists.Add(_priority, list1);
            }
        }
Beispiel #4
0
        /**
         * 追加済みのオブジェクトのプライオリティーを変更する
         * @param obj
         * @param priority
         */
        public void setPriority(UDrawable obj, int priority)
        {
            SortedDictionary <int, DrawList> lists = mDrawList;

            // 探す
            foreach (int pri in lists.Keys)
            {
                DrawList list = lists[pri];
                if (list.contains(obj))
                {
                    if (pri == priority)
                    {
                        // すでに同じPriorityにいたら末尾に移動
                        list.toLast(obj);
                    }
                    else
                    {
                        list.remove(obj);
                        addDrawable(obj);
                        return;
                    }
                }
            }
        }
Beispiel #5
0
        public DrawList addDrawable(UDrawable obj)
        {
            // カレントページのリストを取得
            SortedDictionary <int, DrawList> lists = mDrawList;

            // 挿入するリストを探す
            int      _priority = obj.getDrawPriority();
            DrawList list;

            if (lists.ContainsKey(_priority) == false)
            {
                // まだ存在していないのでリストを生成
                list = new DrawList(obj.getDrawPriority());
                lists.Add(_priority, list);
            }
            else
            {
                list = lists[_priority];
            }

            list.add(obj);
            obj.setDrawList(list);
            return(list);
        }
 /**
  * Drawableインターフェース
  */
 public void setDrawList(DrawList drawList)
 {
     this.drawList = drawList;
 }