// Adds the assemblies that are initially loaded with the // component inspector code public static void AddCurrentAssemblies() { foreach (Assembly assembly in AppDomain.CurrentDomain.GetAssemblies()) { // Don't add the current assembly if (!(LocalPrefs.Get(LocalPrefs.DEV) != null)) { if (assembly.Equals(Assembly.GetCallingAssembly())) { continue; } } // Skip the dynamically created assembly used by the // internal dynamic classes if (assembly.GetName().Name.Equals(AssemblySupport.DUMMY_ASSY_NAME)) { continue; } try { AssemblyTreeNode node = AddAssy(assembly, null); // Don't allow close since these are always loaded // automatically node.NoClose = true; } catch (Exception ex) { TraceUtil.WriteLineWarning(null, "Error adding local assembly: " + assembly + ": " + ex); } } }
protected static bool ShouldShow(DetailElement de) { if (!de._internal || (LocalPrefs.Get(LocalPrefs.SHOW_INTERNAL_DETAILS) != null)) { return(true); } return(false); }
void OnGUI() { Type prefsBase = typeof(LocalPrefs); FieldInfo dicField = prefsBase.GetField("s_dicCategory", BindingFlags.Static | BindingFlags.NonPublic); var dic = dicField.GetValue(null) as Dictionary <Type, LocalPrefs.LocalPrefsContainer>; Type[] nested = prefsBase.GetNestedTypes(); if (categoryFold == null) { categoryFold = new bool[nested.Length]; } EditorGUILayout.HelpBox("\n Current Local Preference Value List\n", MessageType.None); scroll = EditorGUILayout.BeginScrollView(scroll); for (int i = 0; i < nested.Length; i++) { if (nested[i].Name.Equals(typeof(LocalPrefs.LocalPrefsContainer).Name) == true) { continue; } EditorGUILayout.Space(); if (categoryFold[i] = EditorGUILayout.Foldout(categoryFold[i], nested[i].Name)) { var container = LocalPrefs.Get(nested[i]) as LocalPrefs.LocalPrefsContainer; FieldInfo[] fields = container.GetType().GetFields(); for (int j = 0; j < fields.Length; j++) { GUI.color = Color.white; EditorGUILayout.BeginHorizontal(); { string val = fields[j].GetValue(container).ToString(); EditorGUILayout.LabelField(" " + fields[j].Name); if (string.IsNullOrEmpty(val) == true) { GUI.color = new Color(.8f, .8f, .8f); } EditorGUILayout.TextField(val); } EditorGUILayout.EndHorizontal(); } } } EditorGUILayout.EndScrollView(); }
BoolUI InstatiateBoolUI(string key) { GameObject prefab = Instantiate(boolPrefab, boolsUI.content); var newBool = new BoolUI() { key = key, parent = prefab, input = prefab.GetComponentInChildren <InputField>(), toggle = prefab.GetComponentInChildren <Toggle>(), removeButton = prefab.GetComponentInChildren <Button>(), }; newBool.input.text = newBool.key; newBool.toggle.isOn = LocalPrefs.Get(newBool.key, false); return(newBool); }
void Start() { // Local prefs load DateTime before = DateTime.Now; LocalPrefs.Load(stressTestFileName, encrypt); DateTime after = DateTime.Now; TimeSpan duration = after.Subtract(before); Debug.Log("LocalPrefs Load time: " + duration.TotalMilliseconds + " ms"); // Local prefs get floats before = DateTime.Now; int prefsCount = LocalPrefs.Get <int>("RandomPrefsCount"); localPrefs = new float[prefsCount]; for (int i = 0; i < prefsCount; i++) { localPrefs[i] = LocalPrefs.Get <float>("RandomFloat" + i); } after = DateTime.Now; duration = after.Subtract(before); Debug.Log("LocalPrefs GetFloat: " + duration.TotalMilliseconds + " ms"); if (testPlayerPrefs) { // Player prefs get floats before = DateTime.Now; LocalPrefs.Load(stressTestFileName); prefsCount = PlayerPrefs.GetInt("RandomPrefsCount"); localPrefs = new float[prefsCount]; for (int i = 0; i < prefsCount; i++) { localPrefs[i] = PlayerPrefs.GetFloat("RandomFloat" + i); } after = DateTime.Now; duration = after.Subtract(before); Debug.Log("PlayerPrefs GetFloat: " + duration.TotalMilliseconds + " ms"); } Application.wantsToQuit += Save; m_randomTime = Time.time + randomTime; }
void InitializeComponent(bool showStatusPanel, bool tabbedLayout) { SuspendLayout(); CausesValidation = false; AutoScaleDimensions = new SizeF(6F, 13F); AutoScaleMode = AutoScaleMode.Font; Name = "ObjectBrowserControl"; Size = new Size(800, 700); // All of the dimensions are here int objTreeWidth = (int)(ClientSize.Width * 2 / WIDTH_UNITS); int assyTreeWidth = (int)(ClientSize.Width * 3 / WIDTH_UNITS); int paramsWidth = (int)(ClientSize.Width * 1 / WIDTH_UNITS); int imageWidth = (int)(ClientSize.Width * 2 / WIDTH_UNITS); int topHeight = (int)(ClientSize.Height * 2.5 / HEIGHT_UNITS); int bottomHeight = (int)(ClientSize.Height * 2.5 / HEIGHT_UNITS); int detailHeight = (int)(ClientSize.Height * 1 / HEIGHT_UNITS); int objTreeHeight = ClientSize.Height - detailHeight; // Contents of treePanel, on the left _objTree = new BrowserTree(TOP_OBJ_NAME); // Hook up the routines that get called when preferences change ComponentInspectorProperties.ShowPropertyAccessorMethodsChanged += ObjectTreeInvalidated; ComponentInspectorProperties.ShowFieldsChanged += ObjectTreeInvalidated; ComponentInspectorProperties.ShowPropertiesChanged += ObjectTreeInvalidated; ComponentInspectorProperties.ShowMethodsChanged += ObjectTreeInvalidated; ComponentInspectorProperties.ShowEventsChanged += ObjectTreeInvalidated; ComponentInspectorProperties.ShowBaseClassesChanged += ObjectTreeInvalidated; ComponentInspectorProperties.ShowPublicMembersOnlyChanged += ObjectTreeInvalidated; ComponentInspectorProperties.ShowMemberCategoriesChanged += ObjectTreePreferencesChanged; ComponentInspectorProperties.ShowBaseCategoriesChanged += ObjectTreePreferencesChanged; ComponentInspectorProperties.CategoryThresholdChanged += ObjectTreePreferencesChanged; ComponentInspectorProperties.ShowBaseClassNamesChanged += ObjectTreeInvalidated; ComponentInspectorProperties.DisplayHexChanged += ObjectTreeInvalidated; ComponentInspectorProperties.ShowAssemblyPanelChanged += TabPanelChanged; ComponentInspectorProperties.ShowControlPanelChanged += TabPanelChanged; ComponentInspectorProperties.ShowGacPanelChanged += TabPanelChanged; ComponentInspectorProperties.TypeHandlerChanged += ObjectTreeInvalidated; ColumnHeader ch = new ColumnHeader(); ch.Text = StringParser.Parse("${res:ComponentInspector.ObjectBrowser.ValueColumnHeader}"); ch.TextAlign = HorizontalAlignment.Left; _objTree.Columns.Add(ch); _objTree.BorderStyle = BorderStyle.None; _objTree.AllowDrop = true; _objTree.IsObjectContainer = true; _objTree.IsDropTarget = true; _objTree.UseCompareTo = true; _objTree.GotFocus += new EventHandler(TreeFocused); UpdateObjectTreePreferences(); _objTree.SetupPanel(); _objTree.Panel.Dock = DockStyle.Fill; _objTree.Panel.Width = objTreeWidth; _objTree.Panel.Height = objTreeHeight; _objTree.Panel.BorderStyle = BorderStyle.None; _objTreePanel = new Panel(); _objTreePanel.Dock = DockStyle.Left; _objTreePanel.Width = _objTree.Panel.Width; // Note we add the parent, because the tree comes with a // panel that's the parent of the tree _objTreePanel.Controls.Add(_objTree.Panel); _objTreePanel.BorderStyle = BorderStyle.Fixed3D; new PanelLabel(_objTreePanel, StringParser.Parse("${res:ComponentInspector.ObjectBrowser.ObjectsTreePanel}")); // Image panel _imagePanel = NoGoop.ObjBrowser.ImagePanel.CreateImagePanel(objTreeWidth, !tabbedLayout); _imagePanel.WrapperPanel.Dock = DockStyle.Fill; // For text associated with each tree node _detailPanel = new DetailPanel(); _detailPanel.Dock = DockStyle.Bottom; _params = new ParamPanel(); _params.Dock = DockStyle.Fill; _params.Width = paramsWidth; _eventLog = new EventLogList(this); AssemblySupport.Init(); AssemblySupport.AssyTree.GotFocus += new EventHandler(TreeFocused); // Splitter between main tree and the rest, vertical Splitter mainSplitter = new Splitter(); mainSplitter.Dock = DockStyle.Left; mainSplitter.Width = Utils.SPLITTER_SIZE; Panel paramPanel = new Panel(); paramPanel.Dock = DockStyle.Left; paramPanel.Width = _params.Width; paramPanel.Controls.Add(_params); paramPanel.BorderStyle = BorderStyle.Fixed3D; new PanelLabel(paramPanel, StringParser.Parse("${res:ComponentInspector.ObjectBrowser.ParametersPanel}")); Splitter propImageSplitter = new Splitter(); propImageSplitter.Dock = DockStyle.Left; propImageSplitter.Width = Utils.SPLITTER_SIZE; // Contains the property panel and image panel Panel propImagePanel = new Panel(); propImagePanel.Dock = DockStyle.Top; propImagePanel.Height = topHeight; propImagePanel.Controls.Add(_imagePanel.WrapperPanel); propImagePanel.Controls.Add(propImageSplitter); propImagePanel.Controls.Add(paramPanel); // Splitter between node details and the rest _topTabSplitter = new Splitter(); _topTabSplitter.Dock = DockStyle.Top; _topTabSplitter.Height = Utils.SPLITTER_SIZE; GacList gacList = new GacList(); gacList.Width = assyTreeWidth; gacList.Dock = DockStyle.Fill; gacList.BorderStyle = BorderStyle.None; _gacTabPage = new TabPage(); _gacTabPage.Controls.Add(gacList); _gacTabPage.Text = "GAC"; _gacTabPage.BorderStyle = BorderStyle.None; // Object tab page. if (tabbedLayout) { _objTreeTabPage = new TabPage(); _objTreeTabPage.Controls.Add(_objTreePanel); _objTreeTabPage.Text = StringParser.Parse("${res:ComponentInspector.ObjectBrowser.ObjectsTreePanel}"); _objTreeTabPage.BorderStyle = BorderStyle.None; } // Not presently used _outputList = new OutputList(); _outputList.Width = assyTreeWidth; _outputList.Dock = DockStyle.Fill; _outputList.BorderStyle = BorderStyle.None; TabPage outputTabPage = new TabPage(); outputTabPage.Controls.Add(_outputList); outputTabPage.Text = StringParser.Parse("${res:ComponentInspector.ObjectBrowser.OutputTab}"); outputTabPage.BorderStyle = BorderStyle.None; _tabControl = new TabControl(); _tabControl.Dock = DockStyle.Fill; _tabControl.Width = assyTreeWidth; _tabControl.SelectedIndexChanged += new EventHandler(TabIndexChangedHandler); // Contains the property panel and image panel Panel tabPanel = new Panel(); tabPanel.Dock = DockStyle.Fill; if (tabbedLayout) { propImagePanel.Dock = DockStyle.Fill; } else { tabPanel.Controls.Add(_tabControl); tabPanel.Controls.Add(_topTabSplitter); } tabPanel.Controls.Add(propImagePanel); // All of the panels on the top _topPanel = new Panel(); _topPanel.Dock = DockStyle.Fill; _topPanel.Height = topHeight + bottomHeight; _topPanel.Controls.Add(tabPanel); _topPanel.Controls.Add(mainSplitter); if (tabbedLayout) { _tabControl.Dock = DockStyle.Left; _objTreePanel.Dock = DockStyle.Fill; _topPanel.Controls.Add(_tabControl); } else { _topPanel.Controls.Add(_objTreePanel); } if (!tabbedLayout) { _topBottomSplitter = new Splitter(); _topBottomSplitter.Dock = DockStyle.Bottom; _topBottomSplitter.Height = Utils.SPLITTER_SIZE; _topBottomSplitter.MinSize = detailHeight; } if (showStatusPanel) { _statusPanel = new StatusPanel(); _statusPanelLabel = new PanelLabel(_statusPanel); _statusPanelLabel.Dock = DockStyle.Top; } Controls.Add(_topPanel); if (showStatusPanel) { Controls.Add(_statusPanelLabel); } if (!tabbedLayout) { Controls.Add(_topBottomSplitter); Controls.Add(_detailPanel); } // To allow file dropping DragEnter += new DragEventHandler(DragEnterEvent); DragDrop += new DragEventHandler(DragDropEvent); DragOver += new DragEventHandler(DragOverEvent); AllowDrop = true; _objTree.BeginUpdate(); // Add top level nodes ArrayList tlList = new ArrayList(); ObjectInfo objInfo = ObjectInfoFactory.GetObjectInfo(false, tlList); objInfo.ObjectName = TOP_OBJ_NAME; BrowserTreeNode node = new ObjectTreeNode(false, objInfo); // Make sure this is the first node node.NodeOrder = 0; node.AllowDelete = false; _objTree.Nodes.Add(node); // Just for testing if (LocalPrefs.Get(LocalPrefs.DEV) != null) { tlList.Add(this); } _objTree.EndUpdate(); ComSupport.Init(); ComSupport.ComTree.GotFocus += new EventHandler(TreeFocused); SetTabPanels(); ResumeLayout(); }
void CreateMenus() { ToolStripMenuItem open = new ToolStripMenuItem(); open.ShortcutKeys = Keys.Control | Keys.O; //open.Text = "&Open..."; open.Text = StringParser.Parse("${res:XML.MainMenu.FileMenu.Open}"); open.Click += new System.EventHandler(OpenClick); ToolStripMenuItem close = new ToolStripMenuItem(); close.Text = StringParser.Parse("${res:Global.CloseButtonText}"); close.Enabled = false; close.Click += new EventHandler(CloseClick); ToolStripMenuItem exit = new ToolStripMenuItem(); exit.Text = StringParser.Parse("${res:XML.MainMenu.FileMenu.Exit}"); exit.Click += new System.EventHandler(ExitClick); ToolStripMenuItem fileMenuItem = new ToolStripMenuItem(); fileMenuItem.DropDownItems.AddRange(new ToolStripMenuItem[] { open, close, exit }); fileMenuItem.Text = StringParser.Parse("${res:XML.MainMenu.FileMenu}"); ToolStripMenuItem viewMenuItem = new ToolStripMenuItem(); ToolStripMenuItem mi = new ToolStripMenuItem(); mi.Text = StringParser.Parse("${res:ComponentInspector.ObjectBrowserForm.ObjectTreeMenuItem}"); mi.Click += new System.EventHandler(CustObjectClick); viewMenuItem.DropDownItems.Add(mi); mi = new ToolStripMenuItem(); mi.Text = StringParser.Parse("${res:ComponentInspector.ObjectBrowserForm.TypeHandlersMenuItem}"); mi.Click += new System.EventHandler(CustTypeHandlerClick); viewMenuItem.DropDownItems.Add(mi); mi = new ToolStripMenuItem(); mi.Text = StringParser.Parse("${res:ComponentInspector.ObjectBrowserForm.PanelsMenuItem}"); mi.Click += new System.EventHandler(CustPanelClick); viewMenuItem.DropDownItems.Add(mi); mi = new ToolStripMenuItem(); mi.Text = StringParser.Parse("${res:ComponentInspector.ObjectBrowserForm.DirectoriesMenuItem}"); mi.Click += new System.EventHandler(CustDirClick); viewMenuItem.DropDownItems.Add(mi); mi = new ToolStripMenuItem(); mi.Text = "&ActiveX/COM..."; mi.Click += new System.EventHandler(CustActiveXClick); viewMenuItem.DropDownItems.Add(mi); // Create the customization form _customizeForm = new CustomizeDialog(); viewMenuItem.Text = StringParser.Parse("${res:ComponentInspector.ObjectBrowserForm.OptionsMenuItem}"); ToolStripMenuItem actionMenu = new ToolStripMenuItem(); actionMenu.Text = StringParser.Parse("${res:ComponentInspector.ObjectBrowserForm.ActionMenuItem}"); ActionMenuHelper actionMenuHelper = new ActionMenuHelper(close); actionMenuHelper.BuildActionMenu(actionMenu); ActionMenuHelper.Helper = actionMenuHelper; ToolStripMenuItem editMenu = new ToolStripMenuItem(); editMenu.Text = StringParser.Parse("${res:XML.MainMenu.EditMenu}"); actionMenuHelper.BuildEditMenu(editMenu); editMenu.DropDownItems.Add("-"); // Create the find form mi = new ToolStripMenuItem(); mi.Text = StringParser.Parse("${res:ComponentInspector.InspectorMenu.Find}"); mi.ShortcutKeys = Keys.Control | Keys.F; mi.Click += new System.EventHandler(FindClick); editMenu.DropDownItems.Add(mi); // Create the attach form _attachForm = new AttachDialog(); ToolStripMenuItem remoteMenuItem = new ToolStripMenuItem(); remoteMenuItem.Text = "&Development"; mi = new ToolStripMenuItem(); mi.Text = StringParser.Parse("${res:ComponentInspector.ObjectBrowserForm.AttachMenuItem}"); mi.Click += new System.EventHandler(AttachClick); remoteMenuItem.DropDownItems.Add(mi); // Create the attach form _tracingForm = new TracingDialog(); mi = new ToolStripMenuItem(); mi.Text = StringParser.Parse("${res:ComponentInspector.ObjectBrowserForm.TracingMenuItem}"); mi.Click += new System.EventHandler(TracingClick); remoteMenuItem.DropDownItems.Add(mi); ToolStripMenuItem about = new ToolStripMenuItem(); about.Text = StringParser.Parse("${res:XML.MainMenu.HelpMenu.About}"); about.Click += new System.EventHandler(AboutClick); ToolStripMenuItem help = new ToolStripMenuItem(); help.Text = StringParser.Parse("${res:ComponentInspector.ObjectBrowserForm.ShowHelpMenuItem}"); help.Click += new System.EventHandler(HelpClick); ToolStripMenuItem helpMenuItem = new ToolStripMenuItem(); helpMenuItem.DropDownItems.AddRange(new ToolStripMenuItem[] { help, about }); helpMenuItem.Text = StringParser.Parse("${res:XML.MainMenu.HelpMenu}"); MainMenuStrip = new MenuStrip(); Controls.Add(MainMenuStrip); MainMenuStrip.Items.Add(fileMenuItem); MainMenuStrip.Items.Add(editMenu); MainMenuStrip.Items.Add(actionMenu); MainMenuStrip.Items.Add(viewMenuItem); if (LocalPrefs.Get(LocalPrefs.DEV_MENU) != null) { MainMenuStrip.Items.Add(remoteMenuItem); } MainMenuStrip.Items.Add(helpMenuItem); }