123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318 |
- using System;
- using System.Collections;
- using System.Collections.Generic;
- using UnityEngine;
- using wf;
- public class PopupAndTabList : MonoBehaviour
- {
- public virtual void Awake()
- {
- this.is_select_func_call_ = true;
- this.PopUpList.onChangePopUpListValue.Add(new Action<KeyValuePair<string, UnityEngine.Object>>(this.OnChangePopUpList));
- }
- public virtual void Start()
- {
- }
- public void ResaveButton(int element)
- {
- NDebug.Assert(this.TabPanel.gameObject.transform.childCount == 0, "eorro");
- for (int i = 0; i < element; i++)
- {
- GameObject gameObject = Utility.CreatePrefab(this.TabPanel.gameObject, "ScenePhotoMode/WindowListItem", true);
- gameObject.name = i.ToString();
- gameObject.GetComponentInChildren<UILabel>().text = gameObject.name;
- EventDelegate.Add(gameObject.GetComponent<UIWFTabButton>().onSelect, new EventDelegate.Callback(this.OnSelectItem));
- }
- Transform transform = base.transform;
- BasePhotoWindow component;
- do
- {
- component = transform.GetComponent<BasePhotoWindow>();
- transform = transform.parent;
- }
- while (component == null);
- component.UpdateChildren();
- this.TabPanel.UpdateChildren();
- for (int j = 0; j < this.TabPanel.transform.childCount; j++)
- {
- this.TabPanel.transform.GetChild(j).gameObject.SetActive(false);
- }
- }
- public void ResaveButton<T>(Dictionary<string, T> popup_and_button_name_list, int magnification) where T : ICollection
- {
- NDebug.Assert(this.TabPanel.gameObject.transform.childCount == 0, "eorro");
- int num = 0;
- foreach (KeyValuePair<string, T> keyValuePair in popup_and_button_name_list)
- {
- int num2 = num;
- T value = keyValuePair.Value;
- if (num2 < value.Count)
- {
- T value2 = keyValuePair.Value;
- num = value2.Count;
- }
- }
- num *= magnification;
- for (int i = 0; i < num; i++)
- {
- GameObject gameObject = Utility.CreatePrefab(this.TabPanel.gameObject, "ScenePhotoMode/WindowListItem", true);
- gameObject.name = i.ToString();
- gameObject.GetComponentInChildren<UILabel>().text = gameObject.name;
- EventDelegate.Add(gameObject.GetComponent<UIWFTabButton>().onSelect, new EventDelegate.Callback(this.OnSelectItem));
- }
- Transform transform = base.transform;
- BasePhotoWindow component;
- do
- {
- component = transform.GetComponent<BasePhotoWindow>();
- transform = transform.parent;
- }
- while (component == null);
- component.UpdateChildren();
- this.TabPanel.UpdateChildren();
- for (int j = 0; j < this.TabPanel.transform.childCount; j++)
- {
- this.TabPanel.transform.GetChild(j).gameObject.SetActive(false);
- }
- }
- public void SetData(Dictionary<string, List<KeyValuePair<string, object>>> popup_and_button_name_list, bool create_margin = false)
- {
- if (popup_and_button_name_list != null && this.TabPanel.gameObject.transform.childCount == 0)
- {
- this.ResaveButton<List<KeyValuePair<string, object>>>(popup_and_button_name_list, create_margin ? 3 : 1);
- }
- this.popup_and_button_name_list_ = new Dictionary<string, List<PopupAndTabList.ElementData>>();
- if (popup_and_button_name_list == null)
- {
- this.ResetSelect();
- this.cur_select_btn_name_ = string.Empty;
- return;
- }
- foreach (KeyValuePair<string, List<KeyValuePair<string, object>>> keyValuePair in popup_and_button_name_list)
- {
- List<PopupAndTabList.ElementData> list = new List<PopupAndTabList.ElementData>();
- for (int i = 0; i < keyValuePair.Value.Count; i++)
- {
- list.Add(new PopupAndTabList.ElementData
- {
- draw_title = keyValuePair.Value[i].Key,
- guid = Guid.NewGuid(),
- value = keyValuePair.Value[i].Value
- });
- }
- this.popup_and_button_name_list_.Add(keyValuePair.Key, list);
- }
- }
- public void AddData(string popup_category_name, KeyValuePair<string, object> value_data)
- {
- List<PopupAndTabList.ElementData> list = this.popup_and_button_name_list_[popup_category_name];
- list.Add(new PopupAndTabList.ElementData
- {
- draw_title = value_data.Key,
- guid = Guid.NewGuid(),
- value = value_data.Value
- });
- }
- public void ResetSelect()
- {
- if (this.TabPanel.GetSelectButtonObject() != null)
- {
- this.TabPanel.GetSelectButtonObject().SetSelect(false);
- }
- this.TabPanel.ResetSelect();
- }
- protected void OnChangePopUpList(KeyValuePair<string, UnityEngine.Object> popup_val)
- {
- if (this.TabPanel.GetSelectButtonObject() != null)
- {
- this.cur_select_btn_name_ = this.TabPanel.GetSelectButtonObject().name;
- }
- this.TabPanel.ResetSelect();
- UIGrid component = this.TabPanel.GetComponent<UIGrid>();
- for (int i = 0; i < this.TabPanel.transform.childCount; i++)
- {
- this.TabPanel.transform.GetChild(i).GetComponent<UIWFTabButton>().SetSelect(false);
- this.TabPanel.transform.GetChild(i).gameObject.name = string.Empty;
- this.TabPanel.transform.GetChild(i).gameObject.SetActive(false);
- }
- if (this.popup_and_button_name_list_ == null || !this.popup_and_button_name_list_.ContainsKey(popup_val.Key))
- {
- component.Reposition();
- this.ScrollView.ResetPosition();
- this.cur_select_btn_name_ = string.Empty;
- for (int j = 0; j < this.onChangePopUpListValue.Count; j++)
- {
- this.onChangePopUpListValue[j](popup_val);
- }
- return;
- }
- UIWFTabButton uiwftabButton = null;
- List<PopupAndTabList.ElementData> list = this.popup_and_button_name_list_[popup_val.Key];
- for (int k = 0; k < list.Count; k++)
- {
- GameObject gameObject = this.TabPanel.transform.GetChild(k).gameObject;
- gameObject.SetActive(true);
- gameObject.name = list[k].guid.ToString();
- gameObject.GetComponentInChildren<UILabel>().text = list[k].draw_title;
- if (gameObject.name == this.cur_select_btn_name_)
- {
- uiwftabButton = gameObject.GetComponent<UIWFTabButton>();
- }
- }
- component.Reposition();
- this.ScrollView.ResetPosition();
- if (uiwftabButton != null)
- {
- this.is_select_func_call_ = false;
- this.TabPanel.Select(uiwftabButton);
- this.is_select_func_call_ = true;
- }
- for (int l = 0; l < this.onChangePopUpListValue.Count; l++)
- {
- this.onChangePopUpListValue[l](popup_val);
- }
- }
- private void OnSelectItem()
- {
- if (!UIWFSelectButton.current.isSelected)
- {
- return;
- }
- this.cur_select_btn_name_ = UIWFSelectButton.current.gameObject.name;
- if (this.is_select_func_call_)
- {
- foreach (KeyValuePair<string, List<PopupAndTabList.ElementData>> keyValuePair in this.popup_and_button_name_list_)
- {
- for (int i = 0; i < keyValuePair.Value.Count; i++)
- {
- if (this.cur_select_btn_name_ == keyValuePair.Value[i].guid.ToString())
- {
- for (int j = 0; j < this.onSelect.Count; j++)
- {
- this.onSelect[j](keyValuePair.Value[i].value);
- }
- }
- }
- }
- }
- }
- public virtual bool SetPopupValue(string name)
- {
- return this.PopUpList.SetPopupValue(name);
- }
- public virtual string GetCategoryNameFromSelectButton(object value_object)
- {
- if (value_object == null)
- {
- return string.Empty;
- }
- foreach (KeyValuePair<string, List<PopupAndTabList.ElementData>> keyValuePair in this.popup_and_button_name_list_)
- {
- for (int i = 0; i < keyValuePair.Value.Count; i++)
- {
- if (keyValuePair.Value[i].value == value_object)
- {
- return keyValuePair.Key;
- }
- }
- }
- return string.Empty;
- }
- public virtual bool SetSelectButton(object value_object, bool fire_event)
- {
- if (value_object == null)
- {
- return false;
- }
- PopupAndTabList.ElementData elementData = null;
- string categoryNameFromSelectButton = this.GetCategoryNameFromSelectButton(value_object);
- if (!string.IsNullOrEmpty(categoryNameFromSelectButton))
- {
- int num = 0;
- while (num < this.popup_and_button_name_list_[categoryNameFromSelectButton].Count && elementData == null)
- {
- if (this.popup_and_button_name_list_[categoryNameFromSelectButton][num].value == value_object)
- {
- elementData = this.popup_and_button_name_list_[categoryNameFromSelectButton][num];
- }
- num++;
- }
- }
- if (elementData == null)
- {
- return false;
- }
- string key = this.PopUpList.popup_select_value.Key;
- if (key != categoryNameFromSelectButton)
- {
- this.SetPopupValue(categoryNameFromSelectButton);
- }
- bool result = false;
- Transform transform = this.TabPanel.transform;
- for (int i = 0; i < transform.childCount; i++)
- {
- if (transform.GetChild(i).gameObject.name == elementData.guid.ToString())
- {
- this.is_select_func_call_ = fire_event;
- this.TabPanel.Select(transform.GetChild(i).GetComponent<UIWFTabButton>());
- this.is_select_func_call_ = true;
- result = true;
- break;
- }
- }
- if (key != categoryNameFromSelectButton)
- {
- this.SetPopupValue(key);
- }
- return result;
- }
- public List<KeyValuePair<string, UnityEngine.Object>> popup_value_list
- {
- get
- {
- return this.PopUpList.popup_value_list;
- }
- set
- {
- this.PopUpList.popup_value_list = value;
- }
- }
- public WindowPartsPopUpList PopUpList;
- public UIWFTabPanel TabPanel;
- public UIScrollView ScrollView;
- public List<Action<KeyValuePair<string, UnityEngine.Object>>> onChangePopUpListValue = new List<Action<KeyValuePair<string, UnityEngine.Object>>>();
- public List<Action<object>> onSelect = new List<Action<object>>();
- private Dictionary<string, List<PopupAndTabList.ElementData>> popup_and_button_name_list_;
- private string cur_select_btn_name_;
- private bool is_select_func_call_;
- private class ElementData
- {
- public Guid guid;
- public string draw_title;
- public object value;
- }
- }
|