void jGuiToolbar_PlayerList(jGuiToolbar tb) { jxE eChild = tb.m_jxE.GetChild(tb.GetToolBarIndex()); string[] cmdList = (string[])eChild.GetUserData("PlayerCmd"); SetPlayerCmdList(cmdList, tb.GetToolBarIndex()); }
public void InsertChild(jxE eInsert, int iOrder = -1) // -1이면 맨마지막에 추가, 0이면 첫번째노드 다음에 추가. { eInsert.m_Parent = this; jxE eInsertNextPos = GetChild(iOrder); if (eInsertNextPos == null) { m_Child = eInsert; eInsert.m_Prev = eInsert.m_Next = null; eInsert.m_iOrder = 0; m_iChildCount = 1; } else { ++m_iChildCount; eInsert.m_Prev = eInsertNextPos; eInsert.m_Next = eInsertNextPos.m_Next; if (eInsertNextPos.m_Next != null) { eInsertNextPos.m_Next.m_Prev = eInsert; } eInsertNextPos.m_Next = eInsert; } reorderChild(); }
public IEnumerator GetEnumerator() { for (jxE e = m_Child; e != null; e = e.m_Next) { yield return(e); } }
//~jxElement() { clear(); } private void clear() { if (IsEType(EDataType.e_null)) { bool isOk = m_Parent == null && m_Prev == null && m_Next == null && m_Child == null && m_iChildCount == 0 && m_AttrList == null; if (!isOk) { throw new System.Exception("ERROR : m_Parent==null && m_Prev==null && m_Next==null && m_Child==null && m_iChildCount==0 && m_AttrList==null"); } return; } m_iOrder = -1; m_iChildCount = 0; m_Parent = null; jxE ePrev = m_Prev; if (m_Prev != null) { m_Prev.m_Next = m_Next; m_Prev = null; } if (m_Next != null) { m_Next.m_Prev = ePrev; m_Next = null; } for (jxE e = m_Child; e != null; e = m_Child.m_Next) { e = null; } m_AttrList = null; m_NamedUserData = null; m_UserData = null; }
//depth==-1이면 모든 자식들에 대해. 1이면바로밑자식에 대해서만 수행. public jxE find_if(find_if_jxE func, int depth = -1) { if (depth == 0) { return(null); } jxE e; for (e = m_Child; e != null; e = e.m_Next) { if (func(e) == true) { return(e); } } if (depth - 1 == 0) { return(null); } for (e = m_Child; e != null; e = e.m_Next) { jxE eFind = e.find_if(func, depth - 1); if (eFind != null) { return(eFind); } } return(null); }
void jGuiButton_ServerOk(jGuiButton ctrl) { var lbl = (jGuiControl)ctrl.GetParent().FindCtrl("ServerStatus"); if (lbl.GetText().Contains("Offline")) { return; } m_jGuiStage.HideModalWindow(); int iOrder = ctrl.GetParent().m_jxE.GetOrder(); jxE eServerList = m_CMD.GetCurrServerList(); if (iOrder >= eServerList.size()) { m_CMD.LogWarning("ctrl.m_jxE.GetOrder() is overflow : " + iOrder + "eServerList.size() = " + eServerList.size()); return; } jxE server = eServerList.GetChild(iOrder); m_CMD.m_ServerIP = server.Attr("IP"); m_CMD.m_ServerName = server.Attr("NAME"); m_CMD.m_ServerPort = server.AttrVar("PORT").Get_int(); //Debug.Log("ip : " + m_CMD.m_ServerIP + " " + m_CMD.m_ServerPort + " " + m_CMD.m_ServerName); var c = GetComponent <GuiEvent_CommandWindow>(); c.Reload_PlayerCmd(); GuiEvent_CommandWindow cmdWin = GetComponent <GuiEvent_CommandWindow>(); cmdWin.SetWindowText(m_CMD.m_ServerName + " - " + m_CMD.m_ServerIP + ":" + m_CMD.m_ServerPort); }
public Rect GetGuiRect(jxE g) { jxV vRect = g.AttrVar("Rect"); if (vRect == null) { vRect = g.AttrVar("Name"); } if (vRect == null) { //jDebug.jWARN(" attribute not found Rect : " + g.GetTagName()); return(new Rect(0, 0, 0, 0)); } if (vRect.GetEType() == nXML.EDataType.e_Rect) { return(vRect.GetRect()); } if (vRect.GetEType() != nXML.EDataType.e_string) { throw new System.Exception("xml : vRect.GetEType() != nXML.EDataType.e_string : " + m_Doc.m_name); } jxE eRect = m_eNamedRect.Find(vRect.Get_string()); if (eRect == null) { throw new System.Exception(m_Doc.m_name + " eRect==null"); } return(eRect.GetRect()); }
public jxE FindByAttr(string attribute_name, string value, out jxA a) { a = AttrVar(attribute_name); if (a != null) { if (value == null) { return(this); } if (a.IsEType(EDataType.e_string)) { if (a.Get_string() == value) { return(this); } } } for (jxE e = m_Child; e != null; e = e.m_Next) { jxE eFind = e.FindByAttr(attribute_name, value, out a); if (eFind != null) { return(eFind); } } return(null); }
//#-------------------------------------------------------------------------- // public member function //#-------------------------------------------------------------------------- public void Reload_PlayerCmd() { jGuiToolbar tb = (jGuiToolbar)m_jGuiWindow.FindCtrl("PlayerList"); jxE eChild = tb.m_jxE.GetChild(tb.GetToolBarIndex()); string[] cmdList = (string[])eChild.GetUserData("PlayerCmd"); SetPlayerCmdList(cmdList, tb.GetToolBarIndex()); }
public jGuiControl GetPrev() { jxE e = m_jxE.GetPrev(); if (e == null) { return(null); } return((jGuiControl)e.m_UserData); }
//#-------------------------------------------------------------------------- // private member function. //#-------------------------------------------------------------------------- private void reorderChild() { int iCount = 0; for (jxE e = m_Child; e != null; e = e.m_Next) { e.m_iOrder = iCount++; } jDebug.jCHECK(iCount == m_iChildCount); m_iChildCount = iCount; }
public IEnumerator GetEnumerator() { for (jxE e = m_jxE.GetChild(); e != null; e = e.GetNext()) { if (e.m_UserData == null) { continue; } yield return((jGuiControl)e.m_UserData); } }
public jxE FindFromParent(string name) { for (jxE e = m_Parent; e != null; e = e.m_Parent) { if (e.IsTagName(name)) { return(e); } } return(null); }
public jxE MakeClone() { string outString = ""; this.WriteToString(ref outString); jxParser p = new jxParser(outString); jxE e = p.Parse(); // string outString1 = ""; // e.WriteToString(ref outString1); return(e); }
public jGuiControl FindCtrl(string name) { jxA findA; jxE e = m_ejGuiList.FindByAttr("Name", name, out findA); if (e == null) { return(null); } jGuiControl ctrl = (jGuiControl)e.m_UserData; return(ctrl); }
override public jGuiControl FindCtrl(string name) { jxA findA; jxE e = m_jxE.FindByAttr("Name", name, out findA); if (e == null) { Debug.Log("jGuiControl FindCtrl : " + name + " is not found"); return(null); } jGuiControl ctrl = (jGuiControl)e.m_UserData; return(ctrl); }
void changeLogFilter(jGuiToolbar ctrl) { List <string> logList = m_jFilteredLog.ChangeLogFilter(ctrl.GetToolBarIndex()); if (logList == null) { return; } refreshLog(logList); jxE eChild = ctrl.m_jxE.GetChild(ctrl.GetToolBarIndex()); m_btn_ClearLog.SetText("Clear (" + eChild.Get_string() + ")"); }
public jxE GetChild(int iOrder) // -1이면 맨마지막 , 0이면 첫번째 { int i = 0; jxE prev = null; for (jxE e = m_Child; e != null; e = e.m_Next, ++i) { prev = e; if (i == iOrder) { return(e); } } return(prev); }
public void ShowModalWindow(string windowName) //gui xml에서 <Modal_Window>의 자식항목중에 해당 이름의 윈도우를 뛰운다. { if (m_eModal_Window == null) { Debug.LogWarning("gui xml file has not Modal_Window node"); return; } jxA findA; jxE e = m_eModal_Window.FindByAttr("Name", windowName, out findA); if (e == null) { Debug.LogWarning("Modal_Window is not found : " + windowName); return; } var modal = (jGuiWindow)e.m_UserData; if (modal == null) { Debug.LogWarning("Modal_Window jGuiControl==null : " + windowName); return; } foreach (jxE eCtrl in m_ejGuiList) { jGuiControl w = (jGuiControl)eCtrl.m_UserData; if (w == null) { continue; } if (w.IsEnabled()) { m_BackupEnableWindowStatus.Add(w); w.SetEnabled(false); } } Rect rect = modal.GetXmlRect(); rect.x = (Screen.width - rect.width) / 2; rect.y = (Screen.height - rect.height) / 2; modal.SetRect(rect); CallEventHandler_jGuiWindow("OnShowModal_" + modal.GetName(), modal); m_ModalWindowList.Add(modal); }
protected void loadChild(jGuiStage stage, jGuiControl parent, jxE g) { jGuiControl ctrl; foreach (jxE e in m_jxE) { ctrl = m_jGuiStage.CreateRTTI(e); if (ctrl == null) { continue; } ctrl.m_isLayouted = this.m_isLayouted; ctrl.Load(stage, this.m_jGuiWindow, this, e, this.m_OverrideAttribute); } }
//#-------------------------------------------------------------------------- // jGui Event Handler //#-------------------------------------------------------------------------- void OnLoadedGUI_CommandWindow(jGuiWindow win) // "CommandWindow"라는 jGuiWindow 로딩이 완료되면 호출됨. { base.Set_jGuiWindow(win); m_scroll_CmdList = (jGuiScrollView)m_jGuiWindow.FindCtrl("CmdList"); if (m_scroll_CmdList == null) { throw new System.Exception("CmdList(jGuiScrollView) not found"); } m_txt_CommandLine = (jGuiTextField)m_jGuiWindow.FindCtrl("CommandLine"); if (m_txt_CommandLine == null) { throw new System.Exception("CommandLine(jGuiTextField) not found"); } //load_PlayerCmdFile(); { string[] cmdList; jGuiToolbar tb = (jGuiToolbar)m_jGuiWindow.FindCtrl("PlayerList"); if (tb == null) { throw new System.Exception("PlayerList == null"); } if (m_CMD == null) { throw new System.Exception("m_CMD == null"); } foreach (jxE e in tb.m_jxE) { string fileText = m_CMD.m_PlayerCmdFile[e.GetOrder()].text_file.text; cmdList = fileText.Split('\n'); e.SetUserData("PlayerCmd", cmdList); } int toolbarIndex = tb.GetToolBarIndex(); m_CMD.Get_jPlayerPrefs().Get("PlayerList_TookBarIndex", ref toolbarIndex); tb.SetToolBarIndex(toolbarIndex); jxE eChild = tb.m_jxE.GetChild(tb.GetToolBarIndex()); cmdList = (string[])eChild.GetUserData("PlayerCmd"); SetPlayerCmdList(cmdList, tb.GetToolBarIndex()); } this.SetWindowText(m_CMD.m_ServerName + " - " + m_CMD.m_ServerIP + ":" + m_CMD.m_ServerPort); }
//#-------------------------------------------------------------------------- // member function //#-------------------------------------------------------------------------- public jxV AttrVarOverride(string attribute_name) { jxA v = m_jxE.AttrVar(attribute_name); if (v != null || m_OverrideAttribute == null) { return(v); } jxE e = m_OverrideAttribute.Find(m_jxE.GetTagID(), 1); if (e == null) { return(null); } //Debug.Log(e.GetTagName() + " : OverrideAttribute : " + attribute_name); return(e.AttrVar(attribute_name)); }
//#-------------------------------------------------------------------------- // private member function //#-------------------------------------------------------------------------- void AddPlayerCmd(string cmd, int idx) { // 맨처음 노드는 cmd용 original 탬플릿이다. jxE eCmdGroup; bool isReloadGui = false; if (idx >= m_scroll_CmdList.m_jxE.size()) { eCmdGroup = m_scroll_CmdList.m_jxE.begin().MakeClone(); m_scroll_CmdList.m_jxE.InsertChild(eCmdGroup); isReloadGui = true; } else { eCmdGroup = m_scroll_CmdList.m_jxE.GetChild(idx); } eCmdGroup.AttrVar("Enable").Set_bool(true); jxA a; jxE eCmdText = eCmdGroup.FindByAttr("Name", "CmdRun", out a); a = eCmdText.AttrVar("Text"); a.Set_string(cmd); if (isReloadGui) { // jGuiContorl 리로딩. jGuiControl ctrl = m_scroll_CmdList.GetStage().CreateRTTI(eCmdGroup); jDebug.jASSERT(ctrl != null); ctrl.m_isLayouted = m_scroll_CmdList.m_isLayouted; ctrl.Load(m_scroll_CmdList.GetStage() , m_scroll_CmdList.GetWindow() , m_scroll_CmdList , eCmdGroup , m_scroll_CmdList.Get_OverrideAttribute()); } else { jGuiButton btn = (jGuiButton)eCmdText.m_UserData; btn.SetText(cmd); } }
// "dummy_client"라는 jGuiStage xml파일을 로딩했을때 호출됨. protected void OnLoadStageXML_dummy_client(nNWM.nXML.jxDocument stageXml) { jxE xml = stageXml.m_Root; jxV v = null; jxE ePlayerList = xml.FindByAttr("Name", "PlayerList", out v); int iTot = m_CMD.m_PlayerCmdFile.Length - 1; Debug.Log("m_CMD.m_PlayerCmdFile.Length = " + m_CMD.m_PlayerCmdFile.Length); for (int i = 0; i < iTot; ++i) { jxE eClone = ePlayerList.begin().MakeClone(); ePlayerList.InsertChild(eClone); } int idx = 0; foreach (jxE e in ePlayerList) { e.Set_string(m_CMD.m_PlayerCmdFile[idx++].USER_ID); } }
protected void loadDefaultParam(jGuiStage stage, jGuiWindow win, jGuiControl parent, jxE g, jxE overrideAttribute) { m_OverrideAttribute = g.Find("OverrideAttribute", 1); if (m_OverrideAttribute == null) { m_OverrideAttribute = overrideAttribute; } m_TextAnchor.t1 = false; m_jxE = g; m_jGuiStage = stage; m_jGuiParent = parent; m_Enable = m_jxE.AttrVar("Enable"); m_Text = AttrOverride("Text"); m_Name = m_jxE.Attr("Name"); if (m_Text == null) { m_Text = m_Name; } load_GUIStyle(); }
public void Init(jxE eLogFilter) { m_FilteredLogList = new jFilteredLogNode[eLogFilter.size()]; foreach (jxE e in eLogFilter) { string sFilter = e.Attr("FILTER"); if (sFilter == null) { throw new System.Exception(e.ToString() + " : FILTER attribute not found."); } string[] strList = nNWM.jString.jSplit(sFilter, "| "); if (strList == null) { throw new System.Exception(e.ToString() + " : split filter is null : " + sFilter); } m_FilteredLogList[e.GetOrder()] = new jFilteredLogNode(strList); } m_CurrFilteredLog = m_FilteredLogList[0]; }
// iDepth=-1이면 모든 자식에 대해 검색. public jxE Find(string_id_t id, int iDepth = -1) { if (iDepth == 0) { return(null); } if (id == 0) { return(null); } for (jxE e = m_Child; e != null; e = e.m_Next) { if (e.GetIndex() != id) { continue; } return(e); } --iDepth; if (iDepth == 0) { return(null); } for (jxE e = m_Child; e != null; e = e.m_Next) { jxE eFind = e.Find(id, iDepth); if (eFind == null) { continue; } return(eFind); } return(null); }
IEnumerator _gettering_server_state() { jxE eServerList = m_CMD.GetCurrServerList(); int idx = 0; foreach (jGuiControl gui in m_guiServerList) { var lbl = (jGuiLabel)gui.FindCtrl("ServerStatus"); if (lbl == null) { continue; } jxE server = eServerList.GetChild(idx); bool isOk = tryConnectToServer(server.Attr("IP"), server.AttrVar("PORT").Get_int()); if (isOk) { lbl.SetText("Online"); } else { lbl.SetText("Offline"); } if (m_CMD.m_ServerName == server.Attr("Name")) { lbl.SetText("[" + lbl.GetText() + "]"); } ++idx; //yield return new WaitForSeconds(1.0f); yield return(0); } m_jGuiWindow.SetText("Select Server : Status update Completed."); }
public override void Load(jGuiStage stage, jGuiWindow win, jGuiControl parent, jxE g, jxE overrideAttribute) { base.Load(stage, win, parent, g, overrideAttribute); }
public override void Load(jGuiStage stage, jGuiWindow win, jGuiControl parent, jxE g, jxE overrideAttribute) { base.Load(stage, win, parent, g, overrideAttribute); m_ToggleValue = g.AttrVar("ToggleValue"); if (m_ToggleValue == null) { throw new System.Exception("jGuiToggle : attribute b_ToggleValue is null"); } }