public static GuiDispatch ( |
||
del | ||
return |
private void AddNetwork(Network network) { lock (this) { if (debug) { Console.Out.WriteLine("*** Adding network {0}.", network.NetworkName); } PointD position = new PointD(rng.Next(200), rng.Next(200)); Hashtable nodegroups = Hashtable.Synchronized(new Hashtable()); Hashtable node2nodegroup = Hashtable.Synchronized(new Hashtable()); network.Properties["nodegroups"] = nodegroups; network.Properties["node2nodegroup"] = node2nodegroup; network.Properties["rect"] = new Rectangle(position.X, position.Y, 0, 0); networkZOrder.Add(network); foreach (Node node in network.Nodes.Values) { AddNode(node, network); } network.NewIncomingConnection += delegate(Network eNetwork, LocalNodeConnection connection) { Gtk.Application.Invoke(delegate { this.QueueDraw(); }); }; network.ConnectingTo += delegate(Network eNetwork, LocalNodeConnection connection) { Gtk.Application.Invoke(delegate { this.QueueDraw(); }); }; network.UserOnline += (NodeOnlineOfflineEventHandler)DispatchService.GuiDispatch(new NodeOnlineOfflineEventHandler(network_UserOnline)); network.UserOffline += (NodeOnlineOfflineEventHandler)DispatchService.GuiDispatch(new NodeOnlineOfflineEventHandler(network_UserOffline)); network.UpdateNodeInfo += (UpdateNodeInfoEventHandler)DispatchService.GuiDispatch(new UpdateNodeInfoEventHandler(network_UpdateNodeInfo)); network.ConnectionUp += delegate(INodeConnection connection) { Gtk.Application.Invoke(delegate { this.QueueDraw(); }); }; network.ConnectionDown += delegate(INodeConnection connection) { Gtk.Application.Invoke(delegate { this.QueueDraw(); }); }; network.CleanupFinished += delegate(object sender, EventArgs e) { Gtk.Application.Invoke(delegate { this.QueueDraw(); }); }; } this.QueueDraw(); }
private void Core_NetworkAdded(Network network) { network.ReceivedNonCriticalError += (ReceivedNonCriticalErrorEventHandler)DispatchService.GuiDispatch(new ReceivedNonCriticalErrorEventHandler(network_ReceivedNonCriticalError)); network.UserOnline += network_UserOnlineOffline; network.UserOffline += network_UserOnlineOffline; if (currentDirectory == Core.FileSystem.RootDirectory) { Application.Invoke(delegate { Refresh(); }); } }
public MainWindow() { ToolItem spacerItem; FileSearchEntry searchEntry; ToolItem searchEntryItem; Alignment searchEntryBox; object[] attrs = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyTitleAttribute), true); AssemblyTitleAttribute attr = (AssemblyTitleAttribute)attrs[0]; AssemblyName asmName = Assembly.GetExecutingAssembly().GetName(); string title = String.Format("{0} (BETA) {1} (Protocol Version: {2})", attr.Title, asmName.Version, Core.ProtocolVersion); // Create the interface window = new Window(title); window.SetDefaultSize(850, 550); window.DeleteEvent += on_win_delete; window.ConfigureEvent += on_MainWindow_configure_event; window.FocusInEvent += window_FocusInEvent; ((ToggleAction)Runtime.BuiltinActions["ToggleMainToolbar"]).Active = Gui.Settings.ShowToolbar; Runtime.BuiltinActions["ToggleMainToolbar"].Activated += ToggleMainToolbar_Activated; ((ToggleAction)Runtime.BuiltinActions["ToggleMainStatusbar"]).Active = Gui.Settings.ShowStatusBar; Runtime.BuiltinActions["ToggleMainStatusbar"].Activated += ToggleMainStatusbar_Activated; window.AddAccelGroup(Runtime.UIManager.AccelGroup); mainVBox = new VBox(); window.Add(mainVBox); mainVBox.Show(); if (Common.OSName == "Darwin") { MenuBar menubar = (MenuBar)Runtime.UIManager.GetWidget("/OSXAppMenu"); Imendio.MacIntegration.Menu.SetMenuBar(menubar); MenuItem preferencesItem = (MenuItem)Runtime.UIManager.GetWidget("/OSXAppMenu/NetworkMenu/Preferences"); MenuItem aboutItem = (MenuItem)Runtime.UIManager.GetWidget("/OSXAppMenu/NetworkMenu/About"); IntPtr group = Imendio.MacIntegration.Menu.AddAppMenuGroup(); Imendio.MacIntegration.Menu.AddAppMenuItem(group, aboutItem, "About Meshwork"); group = Imendio.MacIntegration.Menu.AddAppMenuGroup(); Imendio.MacIntegration.Menu.AddAppMenuItem(group, preferencesItem, "Preferences"); MenuItem quitItem = (MenuItem)Runtime.UIManager.GetWidget("/OSXAppMenu/NetworkMenu/Quit"); Imendio.MacIntegration.Menu.SetQuitMenuItem(quitItem); } else { MenuBar menubar = (MenuBar)Runtime.UIManager.GetWidget("/MainWindowMenuBar"); mainVBox.PackStart(menubar, false, false, 0); menubar.Show(); } toolbar = (Toolbar)Runtime.UIManager.GetWidget("/MainWindowToolbar"); toolbar.ToolbarStyle = ToolbarStyle.BothHoriz; toolbar.IconSize = IconSize.LargeToolbar; spacerItem = new ToolItem(); spacerItem.Expand = true; toolbar.Insert(spacerItem, -1); spacerItem.Show(); searchEntry = new FileSearchEntry(); searchEntryBox = new Alignment(0.5f, 0.5f, 0, 0); searchEntryBox.LeftPadding = 4; searchEntryBox.RightPadding = 1; searchEntryBox.Add(searchEntry); searchEntryItem = new ToolItem(); searchEntryItem.Add(searchEntryBox); toolbar.Insert(searchEntryItem, -1); searchEntryItem.ShowAll(); mainVBox.PackStart(toolbar, false, false, 0); mainPaned = new HPaned(); mainPaned.Mapped += delegate(object sender, EventArgs args) { // XXX: Remember the user's last setting instead mainPaned.Position = 190; // Set some colors //infoBoxSeparator.ModifyBg(StateType.Normal, GtkHelper.DarkenColor (mainbar.Style.Background(StateType.Normal), 2)); //infoSwitcherTree.ModifyBase(StateType.Normal, infoSwitcherTree.Style.Base(StateType.Active)); //infoSwitcherTree.ModifyBase(StateType.Active, infoBoxSeparator.Style.Base(StateType.Selected)); }; mainPaned.Show(); mainVBox.PackStart(mainPaned, true, true, 0); // Create page notebook pageNotebook = new Notebook(); pageNotebook.ShowTabs = false; pageNotebook.ShowBorder = false; mainPaned.Pack2(pageNotebook, true, true); pageNotebook.ShowAll(); // Create sidebar sidebar = new MainSidebar(); sidebar.ItemAdded += sidebar_ItemAdded; sidebar.SelectedItemChanged += sidebar_SelectedItemChanged; sidebar.AddBuiltinItems(); mainPaned.Pack1(sidebar, false, false); sidebar.ShowAll(); CreateStatusbar(); // Apply "view" settings toolbar.Visible = Gui.Settings.ShowToolbar; statusBar.Visible = Gui.Settings.ShowStatusBar; // Hook up Core events Core.ShareBuilder.StartedIndexing += (EventHandler)DispatchService.GuiDispatch(new EventHandler(sb_StartedIndexing)); Core.ShareBuilder.FinishedIndexing += (EventHandler)DispatchService.GuiDispatch(new EventHandler(sb_FinishedIndexing)); Core.ShareBuilder.StoppedIndexing += (EventHandler)DispatchService.GuiDispatch(new EventHandler(sb_StoppedIndexing)); Core.ShareBuilder.ErrorIndexing += (EventHandler <ErrorEventArgs>)DispatchService.GuiDispatch(new EventHandler <ErrorEventArgs>(sb_ErrorIndexing)); Core.ShareHasher.StartedHashingFile += (EventHandler <FilenameEventArgs>)DispatchService.GuiDispatch(new EventHandler <FilenameEventArgs>(sh_StartedFinished)); Core.ShareHasher.FinishedHashingFile += (EventHandler <FilenameEventArgs>)DispatchService.GuiDispatch(new EventHandler <FilenameEventArgs>(sh_StartedFinished)); Core.ShareHasher.QueueChanged += (EventHandler)DispatchService.GuiDispatch(new EventHandler(sh_QueueChanged)); Core.FileSearchManager.SearchAdded += (EventHandler <FileSearchEventArgs>)DispatchService.GuiDispatch(new EventHandler <FileSearchEventArgs>(FileSearchManager_SearchAdded)); Core.FileSearchManager.SearchRemoved += (EventHandler <FileSearchEventArgs>)DispatchService.GuiDispatch(new EventHandler <FileSearchEventArgs>(FileSearchManager_SearchRemoved)); window.Resize(Gui.Settings.WindowSize.Width, Gui.Settings.WindowSize.Height); window.Move(Gui.Settings.WindowPosition.X, Gui.Settings.WindowPosition.Y); SelectedPage = NetworkOverviewPage.Instance; }
private void Core_NetworkAdded(Network network) { network.JoinedChat += (JoinPartChatEventHandler)DispatchService.GuiDispatch(new JoinPartChatEventHandler(network_JoinedChat)); network.LeftChat += (JoinPartChatEventHandler)DispatchService.GuiDispatch(new JoinPartChatEventHandler(network_LeftChat)); }
public SearchResultsPage(FileSearch search) { VPaned paned; TreeViewColumn column; ToolItem spacerItem; ToolItem filterItem; Alignment filterAlignment; ToolButton searchAgainToolButton; this.search = search; downloadToolButton = new ToolButton(new Image("gtk-save", IconSize.LargeToolbar), "Download"); downloadToolButton.IsImportant = true; downloadToolButton.Sensitive = false; downloadToolButton.Clicked += DownloadToolButtonClicked; searchAgainToolButton = new ToolButton(new Image("gtk-refresh", IconSize.LargeToolbar), "Search Again"); searchAgainToolButton.IsImportant = true; searchAgainToolButton.Clicked += SearchAgainToolButtonClicked; spacerItem = new ToolItem(); spacerItem.Expand = true; filterButton = new ToggleButton("Filter Results"); filterButton.Image = new Image(Gui.LoadIcon(16, "application-x-executable")); filterButton.Toggled += delegate(object o, EventArgs args) { this.ShowFilter = filterButton.Active; }; filterAlignment = new Alignment(0.5f, 0.5f, 0, 0); filterAlignment.Add(filterButton); filterItem = new ToolItem(); filterItem.Add(filterAlignment); browseToolButton = new ToolButton(new Image("gtk-open", IconSize.LargeToolbar), "Browse"); browseToolButton.IsImportant = true; browseToolButton.Sensitive = false; browseToolButton.Clicked += BrowseToolButtonClicked; toolbar = new Toolbar(); toolbar.ToolbarStyle = ToolbarStyle.BothHoriz; toolbar.Insert(downloadToolButton, -1); toolbar.Insert(browseToolButton, -1); toolbar.Insert(spacerItem, -1); toolbar.Insert(filterItem, -1); toolbar.Insert(new SeparatorToolItem(), -1); toolbar.Insert(searchAgainToolButton, -1); toolbar.ShowAll(); this.PackStart(toolbar, false, false, 0); resultCountByTypeCache = new Dictionary <FilterType, int>(); Gdk.Pixbuf audioPixbuf = Gui.LoadIcon(16, "audio-x-generic"); Gdk.Pixbuf videoPixbuf = Gui.LoadIcon(16, "video-x-generic"); Gdk.Pixbuf imagePixbuf = Gui.LoadIcon(16, "image-x-generic"); Gdk.Pixbuf docPixbuf = Gui.LoadIcon(16, "x-office-document"); unknownPixbuf = Gui.LoadIcon(16, "text-x-generic"); folderPixbuf = Gui.LoadIcon(16, "folder"); typeStore = new ListStore(typeof(Gdk.Pixbuf), typeof(string), typeof(FilterType)); typeStore.AppendValues(null, "All Results", FilterType.All); typeStore.AppendValues(null, "-"); typeStore.AppendValues(audioPixbuf, "Audio", FilterType.Audio); typeStore.AppendValues(videoPixbuf, "Video", FilterType.Video); typeStore.AppendValues(imagePixbuf, "Images", FilterType.Image); typeStore.AppendValues(docPixbuf, "Documents", FilterType.Document); typeStore.AppendValues(folderPixbuf, "Folders", FilterType.Folder); typeStore.AppendValues(unknownPixbuf, "Other", FilterType.Other); typeTree = new TreeView(); typeTree.HeadersVisible = false; typeTree.RowSeparatorFunc = delegate(TreeModel m, TreeIter i) { string text = (string)m.GetValue(i, 1); return(text == "-"); }; typeTree.Selection.Changed += TypeSelectionChanged; typeTree.Model = typeStore; CellRendererPixbuf pixbufCell = new CellRendererPixbuf(); CellRendererText textCell = new CellRendererText(); CellRendererText countTextCell = new CellRendererText(); countTextCell.Sensitive = false; countTextCell.Alignment = Pango.Alignment.Right; countTextCell.Xalign = 1; column = new TreeViewColumn(); column.PackStart(pixbufCell, false); column.PackStart(textCell, true); column.PackStart(countTextCell, false); column.AddAttribute(pixbufCell, "pixbuf", 0); column.AddAttribute(textCell, "text", 1); column.SetCellDataFunc(countTextCell, new TreeCellDataFunc(TypeCountCellFunc)); typeTree.AppendColumn(column); TreeView artistTree = new TreeView(); artistTree.HeadersVisible = false; TreeView albumTree = new TreeView(); albumTree.HeadersVisible = false; HBox topBox = new HBox(); topBox.PackStart(Gui.AddScrolledWindow(typeTree), true, true, 0); topBox.PackStart(Gui.AddScrolledWindow(artistTree), true, true, 1); topBox.PackStart(Gui.AddScrolledWindow(albumTree), true, true, 0); topBox.Homogeneous = true; resultsStore = new ListStore(typeof(SearchResult)); resultsStore.RowInserted += delegate { Refilter(); }; resultsStore.RowDeleted += delegate { Refilter(); }; resultsTree = new TreeView(); resultsTree.RowActivated += resultsTree_RowActivated; resultsTree.ButtonPressEvent += resultsTree_ButtonPressEvent; resultsTree.Selection.Changed += ResultsTreeSelectionChanged; imageColumns = new List <TreeViewColumn>(); audioColumns = new List <TreeViewColumn>(); videoColumns = new List <TreeViewColumn>(); fileOnlyColumns = new List <TreeViewColumn>(); folderOnlyColumns = new List <TreeViewColumn>(); column = new TreeViewColumn(); column.Title = "File Name"; column.Clickable = true; column.Sizing = TreeViewColumnSizing.Autosize; column.Resizable = true; column.SortColumnId = 0; //resultsTree.ExpanderColumn = column; CellRenderer cell = new CellRendererPixbuf(); column.PackStart(cell, false); column.SetCellDataFunc(cell, new TreeCellDataFunc(IconFunc)); cell = new CellRendererText(); column.PackStart(cell, true); column.SetCellDataFunc(cell, new TreeCellDataFunc(FileNameFunc)); resultsTree.AppendColumn(column); column = resultsTree.AppendColumn("Codec", new CellRendererText(), new TreeCellDataFunc(CodecFunc)); column.Clickable = true; column.Sizing = TreeViewColumnSizing.Fixed; column.FixedWidth = 120; column.Resizable = true; column.SortColumnId = 1; videoColumns.Add(column); column = resultsTree.AppendColumn("Format", new CellRendererText(), new TreeCellDataFunc(FormatFunc)); column.Clickable = true; column.Sizing = TreeViewColumnSizing.Fixed; column.FixedWidth = 90; column.Resizable = true; column.SortColumnId = 2; imageColumns.Add(column); column = resultsTree.AppendColumn("Resolution", new CellRendererText(), new TreeCellDataFunc(ResolutionFunc)); column.Clickable = true; column.Sizing = TreeViewColumnSizing.Fixed; column.FixedWidth = 90; column.Resizable = true; column.SortColumnId = 3; videoColumns.Add(column); imageColumns.Add(column); column = resultsTree.AppendColumn("Artist", new CellRendererText(), new TreeCellDataFunc(ArtistFunc)); column.Clickable = true; column.Sizing = TreeViewColumnSizing.Fixed; column.FixedWidth = 110; column.Resizable = true; column.SortColumnId = 4; audioColumns.Add(column); column = resultsTree.AppendColumn("Album", new CellRendererText(), new TreeCellDataFunc(AlbumFunc)); column.Clickable = true; column.Sizing = TreeViewColumnSizing.Fixed; column.FixedWidth = 110; column.Resizable = true; column.SortColumnId = 5; audioColumns.Add(column); column = resultsTree.AppendColumn("Bitrate", new CellRendererText(), new TreeCellDataFunc(BitrateFunc)); column.Clickable = true; column.Sizing = TreeViewColumnSizing.Fixed; column.FixedWidth = 70; column.Resizable = true; column.SortColumnId = 6; audioColumns.Add(column); column = resultsTree.AppendColumn("Size", new CellRendererText(), new TreeCellDataFunc(SizeFunc)); column.Clickable = true; column.Sizing = TreeViewColumnSizing.Fixed; column.FixedWidth = 70; column.SortColumnId = 7; column.Resizable = true; fileOnlyColumns.Add(column); column = resultsTree.AppendColumn("Sources", new CellRendererText(), new TreeCellDataFunc(SourcesFunc)); column.Clickable = true; column.Sizing = TreeViewColumnSizing.Fixed; column.FixedWidth = 85; column.SortColumnId = 8; column.Resizable = true; fileOnlyColumns.Add(column); column = resultsTree.AppendColumn("User", new CellRendererText(), new TreeCellDataFunc(UserFunc)); column.Clickable = true; column.Sizing = TreeViewColumnSizing.Fixed; column.FixedWidth = 85; column.SortColumnId = 8; column.Resizable = true; folderOnlyColumns.Add(column); column = resultsTree.AppendColumn("Full Path", new CellRendererText(), new TreeCellDataFunc(FullPathFunc)); column.Clickable = true; column.Resizable = true; column.SortColumnId = 9; column = resultsTree.AppendColumn("Info Hash", new CellRendererText(), new TreeCellDataFunc(InfoHashFunc)); column.Clickable = true; column.Resizable = true; column.SortColumnId = 10; fileOnlyColumns.Add(column); resultsFilter = new TreeModelFilter(resultsStore, null); resultsFilter.VisibleFunc = resultsFilterFunc; resultsSort = new TreeModelSort(resultsFilter); for (int x = 0; x < resultsTree.Columns.Length; x++) { resultsSort.SetSortFunc(x, resultsSortFunc); } resultsTree.Model = resultsSort; ScrolledWindow resultsTreeSW = new ScrolledWindow(); resultsTreeSW.Add(resultsTree); paned = new VPaned(); paned.Add1(topBox); paned.Add2(resultsTreeSW); paned.Position = 160; paned.ShowAll(); filterWidget = new FilterWidget(search); filterWidget.FiltersChanged += filterWidget_FiltersChanged; filterWidget.Hidden += filterWidget_Hidden; this.PackStart(filterWidget, false, false, 0); this.PackStart(paned, true, true, 0); TypeSelectionChanged(typeTree, EventArgs.Empty); search.NewResults += (EventHandler <SearchResultsEventArgs>)DispatchService.GuiDispatch(new EventHandler <SearchResultsEventArgs>(search_NewResults)); search.ClearedResults += (EventHandler)DispatchService.GuiDispatch(new EventHandler(search_ClearedResults)); resultPopupMenu = new Menu(); browseResultMenuItem = new ImageMenuItem("Browse"); browseResultMenuItem.Image = new Image(Gui.LoadIcon(16, "document-open")); browseResultMenuItem.Activated += BrowseToolButtonClicked; resultPopupMenu.Append(browseResultMenuItem); downloadResultMenuItem = new ImageMenuItem("Download"); downloadResultMenuItem.Image = new Image(Gui.LoadIcon(16, "go-down")); downloadResultMenuItem.Activated += DownloadToolButtonClicked; resultPopupMenu.Append(downloadResultMenuItem); resultPropertiesMenuItem = new ImageMenuItem(Gtk.Stock.Properties, null); resultPropertiesMenuItem.Activated += FilePropertiesButtonClicked; resultPopupMenu.Append(resultPropertiesMenuItem); }
private static bool FinishLoading() { Core.Started += (EventHandler)DispatchService.GuiDispatch(new EventHandler(Core_Started)); if (tmpSettings.FirstRun) { Core.LoggingService.LogDebug("First run"); // Generate key if (!tmpSettings.HasKey) { GenerateKeyDialog keyDialog = new GenerateKeyDialog(null); keyDialog.Run(); tmpSettings.SetKey(keyDialog.Key); } /* Init the core */ if (!Core.Init(tmpSettings)) { throw new Exception("Core failed to init on first run!"); } /* Show change password dialog */ var dialog = new ChangeKeyPasswordDialog(splashWindow.Window); dialog.Run(); splashWindow.Close(); PreferencesDialog preferences = new PreferencesDialog(); if (preferences.Run() != (int)ResponseType.Ok) { // Abort !! Gtk.Application.Quit(); Environment.Exit(1); return(false); } Core.ReloadSettings(); } else { /* Init the core */ Core.PasswordPrompt += delegate { var dialog = new FileFind.Meshwork.GtkClient.Windows.UnlockKeyDialog(splashWindow.Window); dialog.Run(); }; bool didInit = Core.Init(tmpSettings); if (!didInit) { // Right now this means the password dialog was aborted, or already running. Gtk.Application.Quit(); Environment.Exit(1); return(false); } } tmpSettings = null; Core.AvatarManager = (IAvatarManager) new AvatarManager(); /* Load the gui */ Gui.MainWindow = new MainWindow(); Gdk.Screen screen = Gdk.Screen.Default; /* * if (Common.OSName == "Linux") { * Gdk.Colormap colormap = screen.RgbaColormap; * if (colormap != null) { * Widget.DefaultColormap = colormap; * Gtk.Widget.PushColormap(colormap); * } * } */ splashWindow.Close(); if ((!Gui.Settings.StartInTray && options.MainWindowState != "hidden") || (Gui.Settings.StartInTray && (options.MainWindowState == "shown" | options.MainWindowState == "iconified"))) { Gui.MainWindow.Show(); if (options.MainWindowState == "iconified") { Gui.MainWindow.Iconify(); } } Thread thread = new Thread(delegate() { Core.Start(); }); thread.Start(); return(false); }
private NetworkOverviewPage() { /* Build the UI */ CreateUserList(); /* Create mainbar */ Widget mapWidget = null; try { map = new ZoomableNetworkMap(); map.SelectedNodeChanged += map_SelectedNodeChanged; map.NodeDoubleClicked += map_NodeDoubleClicked; mapWidget = map; } catch (Exception ex) { Core.LoggingService.LogError("Failed to load map !!!", ex); mapWidget = new Label("Error loading map."); } this.Pack1(mapWidget, true, true); /* Create sidebar */ sidebar = new EventBox(); sidebar.WidthRequest = 190; var sidebarBox = new Gtk.VBox(); sidebar.Add(sidebarBox); var headerAlign = new Banshee.Widgets.FadingAlignment(); sidebarBox.PackStart(headerAlign, false, false, 0); var headerLabel = new Gtk.Label(); headerLabel.Markup = "<b>Users</b>"; headerLabel.Xalign = 0; headerLabel.Ypad = 6; headerLabel.Xpad = 6; headerAlign.Add(headerLabel); sidebarBox.PackStart(AddScrolledWindow(userList), true, true, 0); this.Pack2(sidebar, false, true); sidebar.ShowAll(); foreach (Network network in Core.Networks) { Core_NetworkAdded(network); } Core.TransportManager.TransportError += (EventHandler <ErrorEventArgs>)DispatchService.GuiDispatch( new EventHandler <ErrorEventArgs>(Core_TransportError) ); Core.NetworkAdded += (NetworkEventHandler)DispatchService.GuiDispatch( new NetworkEventHandler(Core_NetworkAdded) ); Core.NetworkRemoved += (NetworkEventHandler)DispatchService.GuiDispatch( new NetworkEventHandler(Core_NetworkRemoved) ); Core.AvatarManager.AvatarsChanged += (EventHandler)DispatchService.GuiDispatch( new EventHandler(AvatarManager_AvatarsChanged) ); this.ShowAll(); }
private void Core_NetworkAdded(Network network) { foreach (LocalNodeConnection connection in network.LocalConnections) { AddConnectionEventHandlers(connection); } // Add Event Handlers network.ReceivedKey += network_ReceivedKey; network.NewIncomingConnection += (NetworkLocalNodeConnectionEventHandler)DispatchService.GuiDispatch(new NetworkLocalNodeConnectionEventHandler(network_NewIncomingConnection)); network.ConnectingTo += (NetworkLocalNodeConnectionEventHandler)DispatchService.GuiDispatch(new NetworkLocalNodeConnectionEventHandler(network_ConnectingTo)); network.UserOnline += (NodeOnlineOfflineEventHandler)DispatchService.GuiDispatch(new NodeOnlineOfflineEventHandler(network_UserOnline)); network.UserOffline += (NodeOnlineOfflineEventHandler)DispatchService.GuiDispatch(new NodeOnlineOfflineEventHandler(network_UserOffline)); network.UpdateNodeInfo += (UpdateNodeInfoEventHandler)DispatchService.GuiDispatch(new UpdateNodeInfoEventHandler(network_UpdateNodeInfo)); network.ConnectionUp += (ConnectionUpDownEventHandler)DispatchService.GuiDispatch(new ConnectionUpDownEventHandler(network_ConnectionUp)); network.ConnectionDown += (ConnectionUpDownEventHandler)DispatchService.GuiDispatch(new ConnectionUpDownEventHandler(network_ConnectionDown)); //network.FileOffered += (FileOfferedEventHandler)DispatchService.GuiDispatch(new FileOfferedEventHandler(network_FileOffered)); network.ReceivedChatInvite += (ReceivedChatInviteEventHandler)DispatchService.GuiDispatch(new ReceivedChatInviteEventHandler(network_ReceivedChatInvite)); network.ChatMessage += (ChatMessageEventHandler)DispatchService.GuiDispatch(new ChatMessageEventHandler(network_ChatMessage)); network.PrivateMessage += (PrivateMessageEventHandler)DispatchService.GuiDispatch(new PrivateMessageEventHandler(network_PrivateMessage)); network.ReceivedNonCriticalError += (ReceivedNonCriticalErrorEventHandler)DispatchService.GuiDispatch(new ReceivedNonCriticalErrorEventHandler(network_ReceivedNonCriticalError)); network.ReceivedCriticalError += (ReceivedCriticalErrorEventHandler)DispatchService.GuiDispatch(new ReceivedCriticalErrorEventHandler(network_ReceivedCriticalError)); TreeIter iter = userListStore.AppendValues(network); foreach (Node node in network.Nodes.Values) { userListStore.AppendValues(iter, node); } userList.ExpandRow(userListStore.GetPath(iter), false); }