int GetRefreshProgressPercent() { return((int)(CTL_RefreshWorker.GetTotalProgress() * 100)); }
//CTL...DRAW panel main void DrawMainPanel() { if (sIsRefreshing) { string msg = sRefreshStepName; float progressDisplayed = CTL_RefreshWorker.GetTotalProgress(); Rect progressBarRect = new Rect(position.width * .125f, position.height * .4f, position.width * .75f, 20); Rect progressBarTextRect = new Rect(position.width * .125f, position.height * .4f, position.width * .75f, 20); EditorGUI.ProgressBar(progressBarRect, progressDisplayed, msg); EditorGUI.LabelField(progressBarTextRect, GetRefreshProgressPercent() + "%", new GUIStyle("label") { alignment = TextAnchor.MiddleRight }); return; } if (sProgressBarNeedClear) { if (Event.current.type == EventType.Repaint) { sProgressBarNeedClear = false; } return; } Rect headerRect = mMultiColumnHeader_TodoObjects.Draw(position, CTL_Styles.HEADER_HEIGHT, mScrollPosMainTab.x); GUILayout.Space(headerRect.height); mScrollPosMainTab = EditorGUILayout.BeginScrollView(mScrollPosMainTab); float headerWidth = mMultiColumnHeader_TodoObjects.GetHeaderWidth(); CTL_TodoObject.GenerateDisplayedElementListIfNeeded(); EditorGUILayout.LabelField("", GUILayout.Width(headerWidth - 8)); //CTL...space only horizontal GUIStyle style = new GUIStyle(); style.border = new RectOffset(0, 0, 0, 0); EditorGUILayout.BeginVertical(style); GUILayout.Space(CTL_Styles.MAIN_TAB_ELEMENT_HEIGHT * (CTL_TodoObject.sDisplayedElementList.Count - 1)); int startElement = (int)mScrollPosMainTab.y / CTL_Styles.MAIN_TAB_ELEMENT_HEIGHT; int totalHeight = 0; int hoveredElementId = -1; Rect hoveredElementRect = new Rect();; Rect curElemRect; //CTL...draw only visible elements for (int i = startElement; i < CTL_TodoObject.sDisplayedElementList.Count; i++) { curElemRect = DrawElement(CTL_TodoObject.sDisplayedElementList[i], i * CTL_Styles.MAIN_TAB_ELEMENT_HEIGHT, position.width, headerWidth); totalHeight += (int)curElemRect.height; if (curElemRect.Contains(Event.current.mousePosition)) { hoveredElementId = i; hoveredElementRect = new Rect(curElemRect); } if (totalHeight > position.height - CTL_Styles.HEADER_HEIGHT - CTL_Styles.MAIN_TAB_MCH_HEIGHT) { break; } } if (hoveredElementId >= 0 && CTL_Settings.EnableCommentTooltip && Event.current.modifiers == CTL_Settings.DisplayTooltipModifier) { DrawElementTooltip(hoveredElementRect, position, CTL_TodoObject.sDisplayedElementList[hoveredElementId]); } EditorGUILayout.EndVertical(); EditorGUILayout.EndScrollView(); }