private Hashtable tabs; // [TabLabel.Button] = UserInfo // ============================================ // PUBLIC Constructors // ============================================ public NotebookViewer() { // Initialize Notebook this.ShowTabs = true; this.Scrollable = true; // Initialize Notebook Members this.pages = Hashtable.Synchronized(new Hashtable()); this.tabs = Hashtable.Synchronized(new Hashtable()); this.tabsCustom = Hashtable.Synchronized(new Hashtable()); this.pagesCustom = ArrayList.Synchronized(new ArrayList()); // Initialize Network Viewer // ========================================================= networkViewer = new NetworkViewer(); networkViewer.ItemActivated += new PeerSelectedHandler(OnNetItemActivated); // Initialize Network Viewer Tab Label TabLabel tabLabel = new TabLabel("<b>Network</b>"); tabLabel.Button.Sensitive = false; // Add Network Viewer (Default Fixed Page) AppendPage(this.networkViewer, tabLabel); }
/// Append Custom Widget public int AppendCustom(Gtk.Widget page, string label, Gtk.Image icon) { int npage; if (this.pagesCustom.IndexOf(page) < 0) { // Initialize Tab Label TabLabel tabLabel = new TabLabel(label, icon); tabLabel.Button.Clicked += new EventHandler(OnCustomCloseTab); // Add TabLabel -> Page this.tabsCustom.Add(tabLabel.Button, page); // Add Page this.pagesCustom.Add(page); // Append Page To Notebook npage = AppendPage(page, tabLabel); } else { npage = PageNum(page); // Set New Page as Current Page CurrentPage = npage; } // Show All (Refresh Notebook Viewer) this.ShowAll(); return(npage); }
/// Remove Custom Widget public void RemoveCustom(Gtk.Widget page) { if (page != null) { // Remove TabLabel -> Page TabLabel tabLabel = (TabLabel)GetTabLabel(page); tabLabel.Button.Clicked -= new EventHandler(OnCustomCloseTab); this.tabsCustom.Remove(tabLabel.Button); // Remove UserInfo -> FolderViewer this.pagesCustom.Remove(page); // Remove Folder Viewer int npage = PageNum(page); RemovePage(npage); // Remove Tab Event if (TabRemoved != null) { TabRemoved(this, page); } // Show All (Refresh Notebook Viewer) this.ShowAll(); } }
/// Append User Folder Viewer public int Append(UserInfo userInfo, string label) { FolderViewer folderViewer = LookupPage(userInfo); int npage; // Page Already Exists if (folderViewer != null) { npage = PageNum(folderViewer); // Set New Page as Current Page CurrentPage = npage; } else { // Initialize Tab Label TabLabel tabLabel = new TabLabel(label); tabLabel.Button.Clicked += new EventHandler(OnCloseTab); // Initialize Folder Viewer folderViewer = new FolderViewer(userInfo); folderViewer.SaveFile += new StringEventHandler(OnFileSave); folderViewer.FileSend += new FileSendEventHandler(OnFileSend); folderViewer.DirChanged += new BoolEventHandler(OnBoolEventHandler); folderViewer.FolderRefresh += new StringEventHandler(OnFolderRefresh); folderViewer.DirectoryAdded += new ObjectEventHandler(OnStoreDirAdded); folderViewer.FileAdded += new ObjectEventHandler(OnStoreFileAdded); // Refresh Folder Viewer folderViewer.Refresh(); // Add TabLabel -> UserInfo this.tabs.Add(tabLabel.Button, userInfo); // Add UserInfo -> FolderViewer this.pages.Add(userInfo, folderViewer); // Append Page To Notebook npage = AppendPage(folderViewer, tabLabel); } // Show All (Refresh Notebook Viewer) this.ShowAll(); return(npage); }
/// Remove User Folder Viewer public void Remove(UserInfo userInfo) { FolderViewer folderViewer = LookupPage(userInfo); if (folderViewer != null) { // Remove Folder Viewer Event folderViewer.SaveFile -= new StringEventHandler(OnFileSave); folderViewer.FileSend -= new FileSendEventHandler(OnFileSend); folderViewer.DirChanged -= new BoolEventHandler(OnBoolEventHandler); folderViewer.FolderRefresh -= new StringEventHandler(OnFolderRefresh); folderViewer.DirectoryAdded -= new ObjectEventHandler(OnStoreDirAdded); folderViewer.FileAdded -= new ObjectEventHandler(OnStoreFileAdded); // Remove TabLabel -> UserInfo TabLabel tabLabel = (TabLabel)GetTabLabel(folderViewer); tabLabel.Button.Clicked -= new EventHandler(OnCloseTab); this.tabs.Remove(tabLabel.Button); // Remove UserInfo -> FolderViewer this.pages.Remove(userInfo); // Remove Folder Viewer int npage = PageNum(folderViewer); RemovePage(npage); // Remove Tab Event if (TabRemoved != null) { TabRemoved(this, folderViewer); } // Show All (Refresh Notebook Viewer) this.ShowAll(); } }