예제 #1
0
 void PotionTab()
 {
     if (GUILayout.Button("Potions"))
     {
         tabState = TabState.POTION;
     }
 }
예제 #2
0
 void AboutTab()
 {
     if (GUILayout.Button("About"))
     {
         tabState = TabState.ABOUT;
     }
 }
예제 #3
0
 void ArmorTab()
 {
     if (GUILayout.Button("Armor"))
     {
         tabState = TabState.ARMOR;
     }
 }
예제 #4
0
 /// <summary>
 /// Quality tab
 /// </summary>
 void QualityTab()
 {
     if (GUILayout.Button("Quality"))
     {
         tabState = TabState.QUALITY;
     }
 }
예제 #5
0
        /// <summary>
        /// Saves the pane switcher state of all tabs to the INI file.
        /// </summary>
        public void SaveTabStates()
        {
            if (_curTabState != null)
            {
                _curTabState.SidebarState = _querySidebar.CurrentState;
            }

            int activeWorkspaceID = (_activeWorkspace == null) ? 0 : _activeWorkspace.Id;

            _workspaceTabs[activeWorkspaceID] = _tabBar.SelectedIndex;
            Core.SettingStore.WriteInt("WorkspaceTabs", "ActiveWorkspace", activeWorkspaceID);

            foreach (IntHashTableOfInt.Entry e in _workspaceTabs)
            {
                Core.SettingStore.WriteInt("WorkspaceTabs", e.Key.ToString(), e.Value);
            }

            foreach (DictionaryEntry de in _tabStates)
            {
                WorkspaceTabState stateKey = (WorkspaceTabState)de.Key;
                TabState          state    = (TabState)de.Value;

                if (state.SidebarState != null)
                {
                    state.SidebarState.SaveToIni(stateKey.GetIniString());
                }
            }
        }
예제 #6
0
 void AoeTab()
 {
     if (GUILayout.Button("AOEs"))
     {
         _tabState = TabState.Aoe;
     }
 }
예제 #7
0
 void WeaponTab()
 {
     if (GUILayout.Button("Weapons"))
     {
         tabState = TabState.WEAPON;
     }
 }
예제 #8
0
파일: HexBoxUndo.cs 프로젝트: xornand/dnSpy
        void HexBox_OnWrite(object sender, HexBoxWriteEventArgs e)
        {
            const string key = "HexBoxUndo";
            var          hts = (HexTabState)TabState.GetTabState((HexBox)sender);
            var          doc = hts.HexBox.Document;

            if (doc == null)
            {
                return;
            }
            if (e.IsBeforeWrite)
            {
                var info = new UndoInfo();
                info.OriginalData          = hts.HexBox.Document.ReadBytes(e.StartOffset, e.Size);
                info.OriginalCaretPosition = hts.HexBox.CaretPosition;
                e.Context[key]             = info;
            }
            else
            {
                var info = (UndoInfo)e.Context[key];

                bool updated = TryUpdateOldTextInputCommand(e.Type, hts.HexBox, info.OriginalCaretPosition, e.StartOffset, info.OriginalData);
                if (!updated)
                {
                    ClearTextInputCommand();
                    var cmd = new HexBoxUndoCommand(hts.HexBox, info.OriginalCaretPosition, e.StartOffset, info.OriginalData, GetDescription(e));
                    UndoCommandManager.Instance.Add(cmd);
                    if (e.Type == HexWriteType.ByteInput || e.Type == HexWriteType.AsciiInput)
                    {
                        SetTextInputCommand(cmd);
                    }
                }
            }
        }
예제 #9
0
        void OnTabStateChanged(TabState oldTabState, TabState newTabState)
        {
            var oldTsd = oldTabState as DecompileTabState;

            if (oldTsd != null)
            {
                oldTsd.TextView.OnBeforeShowOutput -= DecompilerTextView_OnBeforeShowOutput;
                oldTsd.TextView.OnShowOutput       -= DecompilerTextView_OnShowOutput;
            }
            var newTsd = newTabState as DecompileTabState;

            if (newTsd != null)
            {
                newTsd.TextView.OnBeforeShowOutput += DecompilerTextView_OnBeforeShowOutput;
                newTsd.TextView.OnShowOutput       += DecompilerTextView_OnShowOutput;
            }

            if (oldTsd != null)
            {
                Remove(oldTsd.TextView);
            }
            if (newTsd != null)
            {
                UpdateStackFrameLines(newTsd.TextView);
            }
        }
예제 #10
0
 void VitalTab()
 {
     if (GUILayout.Button("Vitals"))
     {
         _tabState = TabState.Vital;
     }
 }
예제 #11
0
 void WeaponsTab()
 {
     if (GUILayout.Button("Weapons"))
     {
         tabstate = TabState.WEAPON;
     }
 }
예제 #12
0
 void ConsumableTab()
 {
     if (GUILayout.Button("Consumables"))
     {
         tabState = TabState.CONSUMABLE;
     }
 }
예제 #13
0
 void QualityTab()
 {
     if (GUILayout.Button("Quality"))
     {
         _tabState = TabState.Quality;
     }
 }
예제 #14
0
 void ArmorsTab()
 {
     if (GUILayout.Button("Armor"))
     {
         tabstate = TabState.ARMOR;
     }
 }
예제 #15
0
 void LinkerTab()
 {
     if (GUILayout.Button("Linkers"))
     {
         _tabState = TabState.Linker;
     }
 }
예제 #16
0
 void QuestsTab()
 {
     if (GUILayout.Button("Quests"))
     {
         tabstate = TabState.QUESTS;
     }
 }
예제 #17
0
        static void OnTabStateChanged(TabState oldTabState, TabState newTabState)
        {
            var oldTsd = oldTabState as DecompileTabState;

            if (oldTsd != null)
            {
                oldTsd.TextView.OnBeforeShowOutput -= DecompilerTextView_OnBeforeShowOutput;
                oldTsd.TextView.OnShowOutput       -= DecompilerTextView_OnShowOutput;
            }
            var newTsd = newTabState as DecompileTabState;

            if (newTsd != null)
            {
                newTsd.TextView.OnBeforeShowOutput += DecompilerTextView_OnBeforeShowOutput;
                newTsd.TextView.OnShowOutput       += DecompilerTextView_OnShowOutput;
            }

            if (oldTsd != null)
            {
                Remove(oldTsd.TextView);
            }
            if (newTsd != null)
            {
                UpdateReturnStatementBookmarks(newTsd.TextView);
            }
        }
예제 #18
0
 void WeaponTab()
 {
     if (GUILayout.Button("Weapons"))
     {
         _tabState = TabState.Weapon;
     }
 }
예제 #19
0
 void BuffTab()
 {
     if (GUILayout.Button("Buffs"))
     {
         _tabState = TabState.Buff;
     }
 }
예제 #20
0
		void OnTabStateRemoved(TabState tabState) {
			var hts = tabState as HexTabState;
			if (hts == null)
				return;

			hts.HexBox.OnWrite -= HexBox_OnWrite;
		}
예제 #21
0
 void QuestItemTab()
 {
     if (GUILayout.Button("Quest Items"))
     {
         tabState = TabState.QUEST_ITEMS;
     }
 }
예제 #22
0
 void PotionsTab()
 {
     if (GUILayout.Button("Potions"))
     {
         tabstate = TabState.POTION;
     }
 }
예제 #23
0
 void AboutTab()
 {
     if (GUILayout.Button("About"))
     {
         tabstate = TabState.ABOUT;
     }
 }
예제 #24
0
 void AttributeTab()
 {
     if (GUILayout.Button("Attributes"))
     {
         _tabState = TabState.Attribute;
     }
 }
예제 #25
0
 void ArmorTab()
 {
     if (GUILayout.Button("Armors"))
     {
         _tabState = TabState.Armor;
     }
 }
예제 #26
0
 void ModifierTab()
 {
     if (GUILayout.Button("Modifiers"))
     {
         _tabState = TabState.Modifier;
     }
 }
예제 #27
0
 void PotionTab()
 {
     if (GUILayout.Button("Potions"))
     {
         _tabState = TabState.Potion;
     }
 }
예제 #28
0
 void BoltTab()
 {
     if (GUILayout.Button("Bolts"))
     {
         _tabState = TabState.Bolt;
     }
 }
예제 #29
0
 /// <summary>
 /// Constructor.
 /// </summary>
 /// <param name="name">Name for item in tab listing.</param>
 /// <param name="enabled"><see langword="true"/> to set enabled, <see langword="false"/> to set disabled.</param>
 public WhidbeyTabPage(string name, bool enabled)
     : this( name )
 {
     if (enabled == false)
     {
         m_nState = TabState.Disabled;
     }
 }
예제 #30
0
			void OnTabStateChanged(TabState oldTabState, TabState newTabState) {
				var oldTsd = oldTabState as DecompileTabState;
				if (oldTsd != null)
					oldTsd.TextView.OnShowOutput -= DecompilerTextView_OnShowOutput;
				var newTsd = newTabState as DecompileTabState;
				if (newTsd != null)
					newTsd.TextView.OnShowOutput += DecompilerTextView_OnShowOutput;
			}
예제 #31
0
        protected override void OnMouseDown(MouseEventArgs e)
        {
            base.OnMouseDown(e);

            if (e.Button == MouseButtons.Left)
            {
                this.State = TabState.Actived;
            }
        }
예제 #32
0
        void OnEnable()
        {
            tabState = TabState.QUALITY;

            weaponDatabase = new ISObjectDatabaseType<ISWeaponDatabase, ISWeapon>(DatabaseManager.weaponDatabase, "Weapon");
            armorDatabase = new ISObjectDatabaseType<ISArmorDatabase, ISArmor>(DatabaseManager.armorDatabase, "Armor");
            consumableDatabase = new ISObjectDatabaseType<ISConsumableDatabase, ISConsumable>(DatabaseManager.consumableDatabase, "Consumable");
            qualityDatabase = new ISObjectDatabaseType<ISQualityDatabase, ISQuality>(DatabaseManager.qualityDatabase, "Quality");
        }
        public PlayerInventoryModule()
        {
            tab          = TabState.Inventory;
            returnButton = new Button(20, 20, 80, 80, TextureManager.texBackArrow);
            amountOfTabs = 4; // Change this one if you add/remove tabs!!!
            CreateTabs();     // Change this one if you add/remove tabs!!!

            InitiateTabButtons();
        }
예제 #34
0
        private void RefreshTabState(TabItem Tab, TabState State)
        {
            if (State.SortColumns[Tab] == null || State.SortDirections[Tab] == null)
            {
                return;
            }

            State.SortColumns[Tab].SortDirection = State.SortDirections[Tab];
        }
예제 #35
0
 protected override void OnMouseLeave(EventArgs e)
 {
     base.OnMouseLeave(e);
     if (this._state != TabState.Actived)
     {
         this._state = TabState.Deactivated;
     }
     this.Invalidate();
 }
예제 #36
0
 public TabManager()
 {
     charTab         = new CharacterTab();
     invTab          = new InventoryTab();
     qlogTab         = new QuestTab();
     tabState        = TabState.CharacterTab;
     inventoryButton = new Rectangle(128, 896, 96, 128);
     characterButton = new Rectangle(32, 896, 96, 128);
     questLogButton  = new Rectangle(224, 896, 96, 128);
 }
예제 #37
0
        protected override void OnMouseEnter(EventArgs e)
        {
            base.OnMouseEnter(e);

            if (this._state == TabState.Deactivated)
            {
                this._state = TabState.Hover;
                this.Invalidate();
            }
        }
예제 #38
0
        void OnTabStateChanged(TabState oldTabState, TabState newTabState)
        {
            var oldTsd = oldTabState as DecompileTabState;
            if (oldTsd != null) {
                oldTsd.TextView.OnBeforeShowOutput -= DecompilerTextView_OnBeforeShowOutput;
                oldTsd.TextView.OnShowOutput -= DecompilerTextView_OnShowOutput;
            }
            var newTsd = newTabState as DecompileTabState;
            if (newTsd != null) {
                newTsd.TextView.OnBeforeShowOutput += DecompilerTextView_OnBeforeShowOutput;
                newTsd.TextView.OnShowOutput += DecompilerTextView_OnShowOutput;
            }

            if (oldTsd != null)
                Remove(oldTsd.TextView);
            if (newTsd != null)
                UpdateStackFrameLines(newTsd.TextView);
        }
예제 #39
0
 internal bool SetActiveTab(TabState tabState)
 {
     if (tabGroupsManager.SetActiveTab(tabState)) {
         SetTabFocus(tabState);
         return true;
     }
     return false;
 }
예제 #40
0
 internal bool IgnoreSelectionChanged_HACK(TabState tabState)
 {
     var tabManager = tabState.Owner;
     bool value;
     tabManager_dontSelectHack.TryGetValue(tabManager, out value);
     tabManager_dontSelectHack[tabManager] = true;
     return value;
 }
예제 #41
0
		void ActivateWindow(TabInfo info) {
			LastActivatedTabState = info.TabState;
			MainWindow.Instance.SetActiveTab(info.TabState);
		}
예제 #42
0
        void UninitializeActiveTab(TabState tabState, bool forceIsInActiveTabGroup)
        {
            var tabManager = tabState == null ? null : tabState.Owner as TabManager<TabState>;
            bool isInActiveTabGroup = tabGroupsManager.ActiveTabGroup == tabManager || forceIsInActiveTabGroup;

            if (isInActiveTabGroup) {
                UninstallTabCommandBindings(tabState);
                var dts = tabState as DecompileTabState;
                if (dts != null)
                    UninstallTextEditorListeners(dts.TextView);
            }
        }
예제 #43
0
 internal void CloseTab(TabState tabState)
 {
     var tabManager = (TabManager<TabState>)tabState.Owner;
     tabManager.CloseTab(tabState);
 }
예제 #44
0
        void SetScaleValue(TabState tabState, double scale)
        {
            var scaleElem = tabState.ScaleElement;
            if (scaleElem == null)
                return;
            if (scale == 1) {
                scaleElem.LayoutTransform = Transform.Identity;
                scaleElem.ClearValue(TextOptions.TextFormattingModeProperty);
            }
            else {
                var st = scaleElem.LayoutTransform as ScaleTransform;
                if (st == null)
                    scaleElem.LayoutTransform = st = new ScaleTransform();

                if (scale < MIN_ZOOM)
                    scale = MIN_ZOOM;
                else if (scale > MAX_ZOOM)
                    scale = MAX_ZOOM;

                // We must set it to Ideal or the text will be blurry
                TextOptions.SetTextFormattingMode(scaleElem, TextFormattingMode.Ideal);
                st.ScaleX = scale;
                st.ScaleY = scale;
            }
        }
예제 #45
0
 double GetScaleValue(TabState tabState)
 {
     var scaleElem = tabState.ScaleElement;
     if (scaleElem == null)
         return 1;
     var st = scaleElem.LayoutTransform as ScaleTransform;
     if (st != null)
         return st.ScaleX;
     return 1;
 }
예제 #46
0
 public TabStateChangedEventArgs(TabState oldTabState, TabState newTabState)
 {
     this.OldTabState = oldTabState;
     this.NewTabState = newTabState;
 }
예제 #47
0
        void SetTabFocus(TabState tabState)
        {
            if (disable_SetTabFocus)
                return;
            if (tabState == null)
                return;
            if (!IsActiveTab(tabState))
                return;
            if (tabState.TabItem.Content == null)
                return;

            var uiElem = tabState.FocusedElement;
            Debug.Assert(uiElem != null);
            if (uiElem == null)
                return;

            if (!uiElem.IsVisible)
                new SetFocusWhenVisible(tabState, uiElem);
            else
                SetFocusIfNoMenuIsOpened(uiElem);
        }
예제 #48
0
        void ZoomReset(TabState tabState)
        {
            if (tabState == null)
                return;

            SetScaleValue(tabState, 1);
        }
예제 #49
0
        void ZoomIncrease(TabState tabState)
        {
            if (tabState == null)
                return;

            var scale = GetScaleValue(tabState);
            scale += scale / 10;
            SetScaleValue(tabState, scale);
        }
예제 #50
0
        void UninstallTabCommandBindings(TabState tabState)
        {
            if (tabState == null)
                return;

            switch (tabState.Type) {
            case TabStateType.DecompiledCode:
                RemoveCommandBindings(CodeBindings, ((DecompileTabState)tabState).TextView);
                break;

            case TabStateType.HexEditor:
                RemoveCommandBindings(HexBindings, ((HexTabState)tabState).HexBox);
                break;

            default:
                throw new InvalidOperationException();
            }
        }
예제 #51
0
 bool IsActiveTab(TabState tabState)
 {
     return tabGroupsManager.ActiveTabGroup.ActiveTabState == tabState;
 }
예제 #52
0
 void DelaySetFocus(TabState tabState)
 {
     if (tabState != null) {
         // The TreeView steals the focus so we can't just set the focus to the text view
         // right here, we have to wait a little bit.
         // This is ugly, but we must use Normal prio to get rid of flickering (tab getting
         // inactive followed by getting active). However, this doesn't work all the time
         // (test: right-click tab, open new tab), so we must start another one at a lower
         // priority in case the treeview steals the focus.......
         this.Dispatcher.BeginInvoke(DispatcherPriority.Normal, new Action(delegate {
             if (ActiveTabState == tabState)
                 SetTabFocus(tabState);
         }));
         this.Dispatcher.BeginInvoke(DispatcherPriority.Background, new Action(delegate {
             if (ActiveTabState == tabState)
                 SetTabFocus(tabState);
         }));
     }
 }
예제 #53
0
        void InitializeActiveTab(TabState tabState, bool forceIsInActiveTabGroup)
        {
            var tabManager = tabState == null ? null : tabState.Owner as TabManager<TabState>;
            bool isInActiveTabGroup = tabGroupsManager.ActiveTabGroup == tabManager || forceIsInActiveTabGroup;

            var dts = tabState as DecompileTabState;
            var newView = dts == null ? null : dts.TextView;

            if (isInActiveTabGroup) {
                InstallTabCommandBindings(tabState);
                if (dts != null)
                    SetLanguage(dts.Language);
            }

            bool dontSelect;
            if (tabManager != null && tabManager_dontSelectHack.TryGetValue(tabManager, out dontSelect) && dontSelect) {
            }
            else if (tabState == null || dts == null) {
                if ((isInActiveTabGroup && tabState != null) || (tabGroupsManager.AllTabGroups.Count == 1 && tabGroupsManager.ActiveTabGroup.ActiveTabState == null)) {
                    var old = TreeView_SelectionChanged_ignore;
                    try {
                        TreeView_SelectionChanged_ignore = true;
                        treeView.SelectedItems.Clear();
                    }
                    finally {
                        TreeView_SelectionChanged_ignore = old;
                    }
                }
                else if (isInActiveTabGroup)
                    treeView.SelectedItems.Clear();
            }
            else
                SelectTreeViewNodes(dts, dts.DecompiledNodes);

            if (isInActiveTabGroup)
                ClosePopups();
            if (newView != null && isInActiveTabGroup)
                InstallTextEditorListeners(newView);
        }
예제 #54
0
 internal TabState CloneTabMakeActive(TabState tabState, bool decompile = true)
 {
     var clonedTabState = CloneTab(tabState, decompile);
     if (clonedTabState != null)
         tabGroupsManager.ActiveTabGroup.SetSelectedTab(clonedTabState);
     return clonedTabState;
 }
예제 #55
0
 public TabStateEventArgs(TabState tabState)
 {
     this.TabState = tabState;
 }
예제 #56
0
        void tabManager_OnAddRemoveTabState(TabManager<TabState> tabManager, TabManagerAddType addType, TabState tabState)
        {
            if (addType == TabManagerAddType.Add) {
                tabState.PropertyChanged += tabState_PropertyChanged;

                var dts = tabState as DecompileTabState;
                if (dts != null) {
                    var view = dts.TextView;
                    RemoveCommands(view);
                    view.TextEditor.TextArea.MouseRightButtonDown += (s, e) => view.GoToMousePosition();
                    view.TextEditor.Options.EnableRectangularSelection = false;
                    view.TextEditor.SetBinding(ICSharpCode.AvalonEdit.TextEditor.WordWrapProperty, new Binding("WordWrap") { Source = sessionSettings });
                }

                if (OnTabStateAdded != null)
                    OnTabStateAdded(this, new TabStateEventArgs(tabState));
            }
            else if (addType == TabManagerAddType.Remove) {
                tabState.PropertyChanged -= tabState_PropertyChanged;
                if (OnTabStateRemoved != null)
                    OnTabStateRemoved(this, new TabStateEventArgs(tabState));
            }
            else if (addType == TabManagerAddType.Attach) {
                if (OnTabStateAttached != null)
                    OnTabStateAttached(this, new TabStateEventArgs(tabState));
            }
            else if (addType == TabManagerAddType.Detach) {
                if (OnTabStateDetached != null)
                    OnTabStateDetached(this, new TabStateEventArgs(tabState));
            }
            else
                throw new InvalidOperationException();
        }
예제 #57
0
 public SetFocusWhenVisible(TabState tabState, UIElement uiElem)
 {
     this.tabState = tabState;
     this.uiElem = uiElem;
     uiElem.IsVisibleChanged += uiElem_IsVisibleChanged;
 }
예제 #58
0
        internal TabState CloneTab(TabState tabState, bool decompile = true)
        {
            if (tabState == null)
                return null;

            var savedTabState = tabState.CreateSavedTabState();

            var dts = tabState as DecompileTabState;
            if (dts != null)
                return CreateDecompileTabState((SavedDecompileTabState)savedTabState, dts.DecompiledNodes, decompile);

            var hts = tabState as HexTabState;
            if (hts != null)
                return CreateHexTabState((SavedHexTabState)savedTabState);

            Debug.Fail("Unknown tab state");
            return null;
        }
예제 #59
0
 internal void ZoomMouseWheel(TabState tabState, int delta)
 {
     if (delta > 0)
         ZoomIncrease(tabState);
     else if (delta < 0)
         ZoomDecrease(tabState);
 }
예제 #60
0
        internal void tabManager_OnSelectionChanged(TabManager<TabState> tabManager, TabState oldState, TabState newState)
        {
            UninitializeActiveTab(oldState, false);
            InitializeActiveTab(newState, false);

            if (IsActiveTab(newState))
                SetTabFocus(newState);

            if (OnTabStateChanged != null)
                OnTabStateChanged(this, new TabStateChangedEventArgs(oldState, newState));
        }