static public void RegisterWizardPane(string header, OptionsPaneCreator creator, int order) { if (_registeredPanes.Contains(header)) { throw new InvalidOperationException( "Startup Wizard Pane '" + header + "' is already registered."); } int index = header.LastIndexOf('/'); if (index > 0) { string parentHeader = header.Substring(0, index); if (!_registeredPanes.Contains(parentHeader)) { throw new InvalidOperationException( "Can't register Startup Wizard Pane '" + header + "' because parent pane '" + parentHeader + "' was not registered."); } } _registeredPanes[header] = new Pair(order, creator); if (_activeWizard != null) { CreatePane(header); } }
static private OptionsPaneWizardAdapter CreatePane(string fullHeader) { Pair pair = (Pair)_registeredPanes[fullHeader]; int order = (int)pair.First; OptionsPaneCreator creator = (OptionsPaneCreator)pair.Second; string parentHeader = string.Empty; string header = fullHeader; int index = fullHeader.LastIndexOf('/'); if (index > 0) { parentHeader = fullHeader.Substring(0, index); header = fullHeader.Substring(index + 1); } OptionsPaneWizardAdapter pane = new OptionsPaneWizardAdapter(header, creator); pane.IsStartupPane = true; if (parentHeader.Length == 0) { _activeWizard.RegisterPane(order, pane); } else { OptionsPaneWizardAdapter parentPane = (OptionsPaneWizardAdapter)_activePanes[parentHeader]; if (parentPane == null) { parentPane = CreatePane(parentHeader); } parentPane.RegisterPane(order, pane); } _activePanes[fullHeader] = pane; return(pane); }
public void Register() { _folderChanged = SelectedFolderChanged; _fileRenamed = SelectedFolderRenamed; RegisterTypes(); IUIManager uiMgr = Core.UIManager; OptionsPaneCreator filePaneCreator = SetFoldersForm.SetFoldersFormCreator; uiMgr.RegisterOptionsGroup("Folders & Files", "The Folders & Files options enable you to control the indexing of folders and files."); uiMgr.RegisterOptionsPane("Folders & Files", "Indexed Folders", filePaneCreator, "The Indexed Folders options enable you to specify what folders on your computer should be indexed by [product name], or specifically excluded from indexing."); uiMgr.RegisterWizardPane("Indexed Folders", filePaneCreator, 0); uiMgr.RegisterOptionsPane("Folders & Files", "File Options", FileOptionsPane.FileOptionsPaneCreator, "The File Options enable you to control the indexing and display of hidden files, and to specify the extensions of files that [product name] should treat as plain text files."); uiMgr.RegisterResourceSelectPane(_folderResourceType, typeof(FileFoldersSelectorPane)); Core.TabManager.RegisterResourceTypeTab("Files", "Files", new[] { _folderResourceType }, _propParentFolder, 5); IResource filesRoot = FoldersCollection.Instance.FilesRoot; Image img = Utils.TryGetEmbeddedResourceImageFromAssembly(Assembly.GetExecutingAssembly(), "FilePlugin.Icons.Folders24.png"); _pane = Core.LeftSidebar.RegisterResourceStructureTreePane("FileFolders", "Files", "Indexed Folders", img, filesRoot); _pane.ParentProperty = _propParentFolder; _pane.AddNodeFilter(new FoldersFilter()); _pane.WorkspaceFilterTypes = new[] { _folderResourceType }; Core.ResourceTreeManager.SetResourceNodeSort(filesRoot, "DisplayName"); Core.LeftSidebar.RegisterViewPaneShortcut("FileFolders", Keys.Control | Keys.Alt | Keys.I); IPluginLoader loader = Core.PluginLoader; loader.RegisterStreamProvider(_folderResourceType, this); loader.RegisterResourceUIHandler(_folderResourceType, this); loader.RegisterResourceDragDropHandler(_folderResourceType, new DragDropLinkAdapter(this)); Core.UIManager.RegisterResourceLocationLink(_folderResourceType, 0, _folderResourceType); Core.ResourceIconManager.RegisterPropTypeIcon(_propParentFolder, LoadIconFromAssembly("file.ico")); Core.ResourceIconManager.RegisterResourceIconProvider(_folderResourceType, this); Core.ResourceBrowser.RegisterLinksPaneFilter("FileFolder", new FileFolderLinksFilter()); ((FileResourceManager)Core.FileResourceManager).RegisterFileTypeColumns(_folderResourceType); LoadResourceIcons(); _filesProcessor = new FileAsyncProcessor(); _filesProcessor.ThreadName = "Files AsyncProcessor"; Core.UIManager.RegisterIndicatorLight("Files Processor", _filesProcessor, 60, LoadIconFromAssembly("files_idle.ico"), LoadIconFromAssembly("files_busy.ico"), LoadIconFromAssembly("files_stuck.ico")); Core.ResourceStore.LinkAdded += ResourceStore_LinkAdded; Core.ResourceBrowser.ContentChanged += ResourceBrowser_ContentChanged; }
private static void RegisterOptionsPanes() { IUIManager uiManager = Core.UIManager; uiManager.RegisterOptionsGroup("MS Outlook", "This option group contains several pages of setting that control the way [product name] works with Microsoft Outlook's e-mail client."); OptionsPaneCreator outlookPaneCreator = OutlookOptionsPane.OutlookOptionsPaneCreator; uiManager.RegisterOptionsPane("MS Outlook", STR.OUTLOOK_GENERAL, outlookPaneCreator, "The Outlook General options enable you to control e-mail delivery, change e-mail addresses that [product name] recognizes as yours, control the display of embedded pictures, control the marking of messages after forwards or replies, and to create [product name] categories from Outlook mailing lists."); uiManager.RegisterWizardPane(STR.OUTLOOK_GENERAL, OutlookOptionsPane.OutlookOptionsPaneCreator, 3); if (Core.ResourceStore.GetAllResources(STR.MAPIInfoStore).Count > 1) { uiManager.RegisterOptionsPane("MS Outlook", "Outlook Information Stores", OutlookOptionsPane_InfoStores.CreateOptionsPane, "The Outlook Information Stores options enable you to select which information stores are included in indexing."); uiManager.RegisterWizardPane("Outlook Information Stores", OutlookOptionsPane_InfoStores.CreateOptionsPane, 4); } else { OutlookSession.OutlookProcessor.SynchronizeFolderStructure(); OutlookSession.OutlookProcessor.SynchronizeOutlookAddressBooks(); } OptionsPaneCreator outlookPaneCreatorIgnoredFolders = OutlookOptionsPane_IgnoredFolders.OptionsPaneCreator; uiManager.RegisterOptionsPane("MS Outlook", STR.OUTLOOK_FOLDERS, outlookPaneCreatorIgnoredFolders, "The Outlook Folders options enable you specify which Outlook folders are indexed by [product name]."); uiManager.RegisterWizardPane(STR.OUTLOOK_FOLDERS, outlookPaneCreatorIgnoredFolders, 5); OptionsPaneCreator outlookPaneCreatorAddressBooks = OutlookOptionsPane_AddressBooks.OptionsPaneCreator; uiManager.RegisterOptionsPane("MS Outlook", STR.OUTLOOK_ADDRESS_BOOKS, outlookPaneCreatorAddressBooks, "The Address Books options enable you to select which Outlook address books are accessible from within [product name]."); uiManager.RegisterWizardPane(STR.OUTLOOK_ADDRESS_BOOKS, outlookPaneCreatorAddressBooks, 6); OptionsPaneCreator outlookPaneCreatorTasks = OutlookOptionsPane_Tasks.OptionsPaneCreator; uiManager.RegisterOptionsPane("MS Outlook", STR.OUTLOOK_TASKS_PANE, outlookPaneCreatorTasks, "The Tasks options enable you to select which Outlook task folders are accessible from within [product name]."); uiManager.RegisterWizardPane(STR.OUTLOOK_TASKS_PANE, outlookPaneCreatorTasks, 7); }
public void Register() { _bookmarkService = new BookmarkService(); RegisterTypes(); IUIManager uiMgr = Core.UIManager; uiMgr.RegisterWizardPane("Import Bookmarks", ImportBookmarksOptionsPane.StartupWizardPaneCreator, 1); uiMgr.RegisterOptionsGroup("Internet", "The Internet options enable you to control how [product name] works with several types of online content."); OptionsPaneCreator favoritesPaneCreator = FavoritesOptionsPane.FavoritesOptionsPaneCreator; uiMgr.RegisterOptionsPane("Internet", "Favorites", favoritesPaneCreator, "The Favorites options enable you to control how your Internet Explorer Favorites are imported and synchronized with Internet Explorer."); ImportBookmarksOptionsPane.AddPane(favoritesPaneCreator); if (OperaBookmarkProfile.OperaBookmarksPath().Length > 0) { OptionsPaneCreator operaPaneCreator = OperaOptionsPane.CreatePane; uiMgr.RegisterOptionsPane("Internet", "Opera Bookmarks", operaPaneCreator, "The Opera Bookmarks options enable you to control how your Opera Bookmarks are imported."); ImportBookmarksOptionsPane.AddPane(operaPaneCreator); } OptionsPaneCreator downloadOptionsPaneCreator = DownloadOptionsPane.DownloadOptionsPaneCreator; uiMgr.RegisterOptionsPane("Internet", "Web Pages", downloadOptionsPaneCreator, "The Web Pages options enable you to control how your bookmarked Web pages are downloaded."); IPropTypeCollection propTypes = Core.ResourceStore.PropTypes; int sourceId = propTypes["Source"].Id; propTypes.RegisterDisplayName(sourceId, "Web Bookmark"); Core.TabManager.RegisterResourceTypeTab("Web", "Web", new[] { "Weblink", "Folder" }, sourceId, 4); uiMgr.RegisterResourceLocationLink("Weblink", _propParent, "Folder"); uiMgr.RegisterResourceLocationLink("Folder", _propParent, "Folder"); uiMgr.RegisterResourceSelectPane("Weblink", typeof(ResourceTreeSelectPane)); Core.WorkspaceManager.RegisterWorkspaceType("Weblink", new[] { Core.ResourceStore.PropTypes["Source"].Id }, WorkspaceResourceType.Container); Core.WorkspaceManager.RegisterWorkspaceFolderType("Folder", "Weblink", new[] { _propParent }); IPluginLoader loader = Core.PluginLoader; loader.RegisterResourceDisplayer("Weblink", this); loader.RegisterStreamProvider("Weblink", this); loader.RegisterResourceUIHandler("Folder", this); loader.RegisterResourceUIHandler("Weblink", this); loader.RegisterResourceTextProvider(null, this); _favIconManager = (FavIconManager)Core.GetComponentImplementation(typeof(FavIconManager)); Image img = Utils.TryGetEmbeddedResourceImageFromAssembly(Assembly.GetExecutingAssembly(), "Favorites.Icons.Favorites24.png"); _favoritesTreePane = Core.LeftSidebar.RegisterResourceStructureTreePane("Favorites", "Web", "Bookmarks", img, "Weblink"); _favoritesTreePane.WorkspaceFilterTypes = new[] { "Weblink", "Folder" }; _favoritesTreePane.EnableDropOnEmpty(this); JetResourceTreePane realPane = (JetResourceTreePane)_favoritesTreePane; realPane.AddNodeDecorator(new WeblinkNodeDecorator()); realPane.AddNodeFilter(new BookmarkProfileFilter()); _favoritesTreePane.ToolTipCallback = DisplayWeblinkError; Core.LeftSidebar.RegisterViewPaneShortcut("Favorites", Keys.Control | Keys.Alt | Keys.B); Core.ResourceIconManager.RegisterResourceIconProvider("Weblink", this); Core.ResourceIconManager.RegisterPropTypeIcon(Core.ResourceStore.PropTypes["Source"].Id, LoadIconFromAssembly("favorites1.ico")); _emptyWeblinkIcon = LoadIconFromAssembly("weblink_empty.ico"); _errorWeblinkIcon = LoadIconFromAssembly("weblink_error.ico"); WebLinksPaneFilter filter = new WebLinksPaneFilter(); Core.ResourceBrowser.RegisterLinksPaneFilter("Weblink", filter); Core.ResourceBrowser.RegisterLinksPaneFilter("Folder", filter); Core.ResourceBrowser.RegisterResourceDisplayForwarder("Weblink", ForwardWeblinkDisplay); Core.FilterEngine.RegisterRuleApplicableResourceType("Weblink"); Core.RemoteControllerManager.AddRemoteCall("Favorites.ExportMozillaBookmarkChanges.1", new RemoteExportMozillaBookmarkChangesDelegate(RemoteExportMozillaBookmarkChanges)); Core.RemoteControllerManager.AddRemoteCall("Favorites.SetMozillaBookmarkId.1", new RemoteSetMozillaBookmarkIdDelegate(RemoteSetMozillaBookmarkId)); Core.RemoteControllerManager.AddRemoteCall("Favorites.RefreshMozillaBookmarks.1", new RemoteRefreshBookmarksDelegate(RemoteRefreshBookmarks)); Core.RemoteControllerManager.AddRemoteCall("Favorites.AnnotateWeblink.1", new RemoteAnnotateWeblinkDelegate(RemoteAnnotateWeblink)); Core.DisplayColumnManager.RegisterDisplayColumn("Weblink", 0, new ColumnDescriptor(new[] { "Name", "DisplayName" }, 300, ColumnDescriptorFlags.AutoSize)); Core.DisplayColumnManager.RegisterDisplayColumn("Weblink", 1, new ColumnDescriptor("LastUpdated", 120)); /** * bookmark profiles */ Core.PluginLoader.RegisterPluginService(_bookmarkService); _favoritesProfile = new IEFavoritesBookmarkProfile(_bookmarkService); _bookmarkService.RegisterProfile(_favoritesProfile); if (OperaBookmarkProfile.OperaBookmarksPath().Length > 0) { _operaProfile = new OperaBookmarkProfile(_bookmarkService); _bookmarkService.RegisterProfile(_operaProfile); } if (MozillaProfiles.PresentOnComputer) { OptionsPaneCreator mozillaPaneCreator = MozillaOptionsPane.MozillaOptionsPaneCreator; uiMgr.RegisterOptionsPane("Internet", "Mozilla Bookmarks", mozillaPaneCreator, "The Mozilla Bookmarks options enable you to select Mozilla or Firefox profile which bookmarks are imported."); ImportBookmarksOptionsPane.AddPane(mozillaPaneCreator); RegisterMozillaProfiles(MozillaProfiles.GetMozillaProfiles()); RegisterMozillaProfiles(MozillaProfiles.GetFirefoxProfiles()); RegisterMozillaProfiles(MozillaProfiles.GetFirefox09Profiles()); RegisterMozillaProfiles(MozillaProfiles.GetAbsoluteFirefoxProfiles()); MozillaBookmarkProfile.SetImportPropertiesOfProfiles(); } }
internal PreviewSubscriptionsPaneAdapter(string header, OptionsPaneCreator creator) : base(header, creator) { }
public static void AddPane(OptionsPaneCreator paneCreator) { _creators.Add(paneCreator); }
public void Register() { _thePlugin = this; _folderWatchers = new HashMap(); _dbLocations = new HashSet(); _icqContacts = new ArrayList(); _icqMessages = new ArrayList(); _idResources = new IntHashSet(); RegisterTypes(); IUIManager uiMgr = Core.UIManager; uiMgr.RegisterOptionsGroup("Instant Messaging", "The Instant Messaging options enable you to control how [product name] works with supported instant messaging programs."); OptionsPaneCreator icqPaneCreator = ICQOptionsPane.ICQOptionsPaneCreator; uiMgr.RegisterOptionsPane("Instant Messaging", "ICQ", icqPaneCreator, "The ICQ options enable you to specify which ICQ accounts should be indexed, and how [product name] should build conversations from ICQ messages."); uiMgr.AddOptionsChangesListener("Instant Messaging", "ICQ", ICQOptionsChanged); if (UINsCollection.GetUINs().Count > 0) { uiMgr.RegisterWizardPane("ICQ", icqPaneCreator, 10); Core.TabManager.RegisterResourceTypeTab("IM", "IM", _icqConversationResName, 2); _correspondentPane = new CorrespondentCtrl(); _correspondentPane.IniSection = "ICQ"; _correspondentPane.SetCorresponentFilterList(Core.ResourceStore.FindResourcesWithProp(null, "ICQAcct")); Image img = Utils.TryGetEmbeddedResourceImageFromAssembly(Assembly.GetExecutingAssembly(), "ICQPlugin.Icons.Correspondents24.png"); Core.LeftSidebar.RegisterResourceStructurePane("ICQCorrespondents", "IM", "ICQ Correspondents", img, _correspondentPane); Core.LeftSidebar.RegisterViewPaneShortcut("ICQCorrespondents", Keys.Control | Keys.Alt | Keys.Q); } IPluginLoader loader = Core.PluginLoader; IActionManager actionManager = Core.ActionManager; loader.RegisterResourceDisplayer(_icqConversationResName, this); actionManager.RegisterLinkClickAction(new ConversationLinkClickAction(), _icqConversationResName, null); _conversationManager = new IMConversationsManager(_icqConversationResName, "ICQ Conversation", "Subject", GetConversationTimeSpan(), _propICQAcct, _propFromICQ, _propToICQ, this); _conversationManager.ReverseMode = GetReverseMode(); SaveConversationAction saveConvAction = new SaveConversationAction(_conversationManager, _propNickName); actionManager.RegisterContextMenuAction(saveConvAction, ActionGroups.ITEM_OPEN_ACTIONS, ListAnchor.Last, "Save to File...", null, _icqConversationResName, null); actionManager.RegisterActionComponent(saveConvAction, "SaveAs", _icqConversationResName, null); EmailConversationAction mailConvAction = new EmailConversationAction(_conversationManager, _propNickName); actionManager.RegisterContextMenuAction(mailConvAction, ActionGroups.ITEM_OPEN_ACTIONS, ListAnchor.Last, "Send by Email", null, _icqConversationResName, null); actionManager.RegisterActionComponent(mailConvAction, "SendByMail", _icqConversationResName, null); loader.RegisterResourceSerializer(_icqAccountResName, new ICQAccountSerializer()); loader.RegisterResourceTextProvider(_icqConversationResName, _conversationManager); loader.RegisterResourceTextProvider(_contactResName, this); Core.ResourceBrowser.RegisterLinksPaneFilter(_icqConversationResName, new ItemRecipientsFilter()); Core.ResourceBrowser.RegisterLinksGroup("Accounts", new[] { _propICQAcct }, ListAnchor.First); // Upgrade information about ICQ address book - set its // ContentType property so that it could be filtered out when // this plugin is switched off. IResource ab = Core.ResourceStore.FindUniqueResource("AddessBook", "Name", "ICQ Contacts"); if (ab != null) { ab.SetProp("ContentType", _icqConversationResName); } Core.ResourceBrowser.SetDefaultViewSettings("IM", AutoPreviewMode.Off, true); }
public OptionsPaneWizardAdapter(string header, OptionsPaneCreator creator) { _header = header; _creator = creator; }