コード例 #1
0
		private void DrawTagsPopup() {
			
			if (this.showTagsPopup == false) return;
			
			if (string.IsNullOrEmpty(this.tagCaption) == true) return;
			
			var oldColor = GUI.color;
			
			var tagStyles = FlowSystemEditor.GetTagStylesEdited();

			var tagStyle = tagStyles[0];
			tagStyle.stretchWidth = false;
			tagStyle.margin = new RectOffset(0, 0, 2, 2);
			
			var shadow = ME.Utilities.CacheStyle("FlowEditor.DrawTagsPopup.Styles", "ObjectPickerPreviewBackground");
			
			var allTags = FlowSystem.GetTags();
			if (allTags != null) {
				
				var window = FlowSystem.GetWindow(this.showTagsPopupId);
				
				var topOffset = 15f;
				var backTopOffset = 12f;
				var offset = 5f;
				
				var count = 0;
				foreach (var tag in allTags) {
					
					if (tag.title.ToLower().Contains(this.tagCaption.ToLower()) == true && window != null && window.tags.Contains(tag.id) == false) {
						
						++count;
						
					}
					
				}
				
				if (count > 0) {

					var r = this.showTagsPopupRect;
					var elementHeight = r.height + tagStyle.margin.top + tagStyle.margin.bottom;
					
					r.y += this.showTagsPopupRect.height * 2f + offset;
					r.height = elementHeight * count + topOffset;
					
					var scrollPos = -FlowSystem.GetScrollPosition();
					var drawRect = new Rect(r.x - scrollPos.x, r.y - scrollPos.y - topOffset, r.width, r.height);
					
					tagStyle.fixedWidth = drawRect.width;
					
					GUI.BeginGroup(drawRect.PixelPerfect());
					{
						GUI.color = Color.black;
						GUI.Label(new Rect(10f, backTopOffset, drawRect.width - 10f * 2f, drawRect.height - backTopOffset * 2f), string.Empty, shadow);

						var buttonRect = new Rect(0f, topOffset, drawRect.width, elementHeight);

						GUI.color = oldColor;
						foreach (var tag in allTags) {
							
							if (tag.title.ToLower().Contains(this.tagCaption.ToLower()) == true && window != null && window.tags.Contains(tag.id) == false) {
								
								var style = tagStyles[tag.color];
								if (GUI.Button(buttonRect, tag.title, style) == true) {
									
									this.tagCaption = string.Empty;
									this.showTagsPopupId = -1;
									
									window.AddTag(tag);
									
								}

								buttonRect.y += elementHeight;
								
							}
							
						}
					}
					GUI.EndGroup();
					
				}
				
			}
			
			GUI.color = oldColor;
			
			this.Repaint();
			
		}
コード例 #2
0
		public override void OnGUI() {

			if (ABTesting.styles == null) ABTesting.styles = new Styles();

			if (this.opened == true) {
				
				var data = FlowSystem.GetData();
				if (data == null) return;

				const float closeSize = 50f;

				var screenRect = new Rect(0f, 0f, Screen.width, Screen.height);
				var settingsSize = new Vector2(350f, 500f);
				var settingsRect = new Rect(screenRect.width * 0.5f - settingsSize.x * 0.5f, screenRect.height * 0.5f - settingsSize.y * 0.5f, settingsSize.x, settingsSize.y).PixelPerfect();
				var settingsBackRect = new Rect(settingsRect.x - MARGIN, settingsRect.y - MARGIN, settingsRect.width + MARGIN * 2f, settingsRect.height + MARGIN * 2f).PixelPerfect();
				var rectCloseButton = new Rect(settingsRect.x + settingsRect.width, settingsRect.y - closeSize * 0.5f, closeSize, closeSize).PixelPerfect();
				
				GUI.Box(screenRect, string.Empty, ABTesting.styles.backLock);
				GUI.Box(settingsBackRect, string.Empty, ABTesting.styles.dropShadow);
				GUI.Box(settingsBackRect, string.Empty, ABTesting.styles.contentScreen);
				GUI.Box(settingsRect, string.Empty, ABTesting.styles.layoutBack);

				GUILayout.BeginArea(settingsRect.PixelPerfect());
				this.tabs.selectedItem = this.selectedItem;
				this.tabs.OnGUI();
				GUILayout.EndArea();

				if (GUI.Button(rectCloseButton, string.Empty, ABTesting.styles.closeButton) == true) {
					
					this.flowEditor.SetEnabled();
					this.opened = false;
					
				}

			}
			
		}