示例#1
0
		public static SavedTabGroupsState FromXml(XElement child) {
			var savedState = new SavedTabGroupsState();

			savedState.Index = (int)child.Attribute("index");
			savedState.IsHorizontal = (bool)child.Attribute("is-horizontal");

			foreach (var group in child.Elements("TabGroup"))
				savedState.Groups.Add(SavedTabGroupState.FromXml(group));

			return savedState;
		}
示例#2
0
        void RestoreTabGroups(SavedTabGroupsState savedGroups)
        {
            Debug.Assert(tabGroupsManager.AllTabGroups.Count == 1);
            bool first = true;
            foreach (var savedGroupState in savedGroups.Groups) {
                var tabManager = first ? tabGroupsManager.ActiveTabGroup : tabGroupsManager.CreateTabGroup(savedGroups.IsHorizontal);
                first = false;
                foreach (var savedTabState in savedGroupState.Tabs) {
                    var savedDecompileTabState = savedTabState as SavedDecompileTabState;
                    if (savedDecompileTabState != null) {
                        var tabState = CreateNewDecompileTabState(tabManager, Languages.GetLanguage(savedDecompileTabState.Language));
                        CreateDecompileTabState(tabState, savedDecompileTabState);
                        continue;
                    }

                    var savedHexTabState = savedTabState as SavedHexTabState;
                    if (savedHexTabState != null && File.Exists(savedHexTabState.FileName)) {
                        var tabState = CreateNewHexTabState(tabManager);
                        CreateHexTabState(tabState, savedHexTabState);
                        continue;
                    }

                    Debug.Fail("Unknown saved state");
                }

                tabManager.SetSelectedIndex(savedGroupState.Index);
            }

            tabGroupsManager.SetSelectedIndex(savedGroups.Index);
        }
示例#3
0
 SavedTabGroupsState CreateSavedTabGroupsState()
 {
     var state = new SavedTabGroupsState();
     state.IsHorizontal = tabGroupsManager.IsHorizontal;
     state.Index = tabGroupsManager.ActiveIndex;
     foreach (var tabManager in tabGroupsManager.AllTabGroups)
         state.Groups.Add(CreateSavedTabGroupState(tabManager));
     return state;
 }