OSDN Git Service

Started work on moving notifications to new blue dialog in upper right corner
authorLatif Khalifa <latifer@streamgrid.net>
Sat, 6 Jun 2009 10:36:38 +0000 (10:36 +0000)
committerLatif Khalifa <latifer@streamgrid.net>
Sat, 6 Jun 2009 10:36:38 +0000 (10:36 +0000)
git-svn-id: https://radegast.googlecode.com/svn/trunk@15 f7a694da-4d33-11de-9ad6-1127a62b9fcd

17 files changed:
Radegast/Core/Types/CircularList.cs [new file with mode: 0644]
Radegast/GUI/Consoles/TPTabWindow.Designer.cs [deleted file]
Radegast/GUI/Consoles/TPTabWindow.cs [deleted file]
Radegast/GUI/Consoles/TabsConsole.cs
Radegast/GUI/Dialogs/FriendshipOfferDialog.Designer.cs [deleted file]
Radegast/GUI/Dialogs/FriendshipOfferDialog.cs [deleted file]
Radegast/GUI/Dialogs/MainForm.Designer.cs
Radegast/GUI/Dialogs/MainForm.Designer.cs.mine [deleted file]
Radegast/GUI/Dialogs/MainForm.cs
Radegast/GUI/Dialogs/Objects.cs.mine [deleted file]
Radegast/GUI/Notifications/FriendshipOfferNotification.Designer.cs [new file with mode: 0644]
Radegast/GUI/Notifications/FriendshipOfferNotification.cs [new file with mode: 0644]
Radegast/GUI/Notifications/FriendshipOfferNotification.resx [moved from Radegast/GUI/Dialogs/FriendshipOfferDialog.resx with 100% similarity]
Radegast/GUI/Notifications/TeleportNotification.Designer.cs [new file with mode: 0644]
Radegast/GUI/Notifications/TeleportNotification.cs [new file with mode: 0644]
Radegast/GUI/Notifications/TeleportNotification.resx [moved from Radegast/GUI/Consoles/TPTabWindow.resx with 94% similarity]
Radegast/Radegast.csproj

diff --git a/Radegast/Core/Types/CircularList.cs b/Radegast/Core/Types/CircularList.cs
new file mode 100644 (file)
index 0000000..81067c7
--- /dev/null
@@ -0,0 +1,77 @@
+using System;\r
+using System.Collections.Generic;\r
+using System.Linq;\r
+using System.Text;\r
+\r
+namespace Radegast\r
+{\r
+    /// <summary>\r
+    /// A list which acts like the List class, but with more of a java\r
+    /// influence. This allows you to set\r
+    /// a looping variable to true, and creates\r
+    /// a circular list. Also it utilizes the java iterator pattern of\r
+    /// Next and HasNext.\r
+    /// \r
+    /// Author: Wesley Tansey\r
+    /// </summary>\r
+    /// <typeparam name="T">The type of item that\r
+    /// will be stored in the list</typeparam>\r
+\r
+    public class CircularList<T> : List<T>\r
+    {\r
+        #region Member Variables\r
+        private bool loop = true;\r
+        private int index;\r
+        #endregion\r
+\r
+        #region Properties\r
+\r
+        /// <summary>\r
+        /// If true, the list will loop to the beginning when Next\r
+        /// is called after the last element has been accessed.\r
+        /// </summary>\r
+        public bool Loop\r
+        {\r
+            get { return loop; }\r
+            set { loop = value; }\r
+        }\r
+\r
+        /// <summary>\r
+        /// The next element in the list. The user is responsible for\r
+        /// making sure that HasNext is true\r
+        /// before getting the next element.\r
+        /// </summary>\r
+\r
+        public T Next\r
+        {\r
+            get\r
+            {\r
+                if (index >= Count)\r
+                {\r
+                    if (!loop)\r
+                    {\r
+                        return default(T);\r
+                    }\r
+                    index = 0;\r
+                }\r
+                return this[index++];\r
+            }\r
+        }\r
+\r
+        /// <summary>\r
+        /// Tells whether there is another element in the list\r
+        /// </summary>\r
+        public bool HasNext\r
+        {\r
+            get\r
+            {\r
+                if (Count == 0 || (!loop && index >= Count))\r
+                {\r
+                    return false;\r
+                }\r
+                return true;\r
+            }\r
+        }\r
+        #endregion\r
+    }\r
+}\r
diff --git a/Radegast/GUI/Consoles/TPTabWindow.Designer.cs b/Radegast/GUI/Consoles/TPTabWindow.Designer.cs
deleted file mode 100644 (file)
index e0e08cb..0000000
+++ /dev/null
@@ -1,130 +0,0 @@
-namespace Radegast\r
-{\r
-    partial class TPTabWindow\r
-    {\r
-        /// <summary> \r
-        /// Required designer variable.\r
-        /// </summary>\r
-        private System.ComponentModel.IContainer components = null;\r
-\r
-        /// <summary> \r
-        /// Clean up any resources being used.\r
-        /// </summary>\r
-        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>\r
-        protected override void Dispose(bool disposing)\r
-        {\r
-            if (disposing && (components != null))\r
-            {\r
-                components.Dispose();\r
-            }\r
-            base.Dispose(disposing);\r
-        }\r
-\r
-        #region Component Designer generated code\r
-\r
-        /// <summary> \r
-        /// Required method for Designer support - do not modify \r
-        /// the contents of this method with the code editor.\r
-        /// </summary>\r
-        private void InitializeComponent()\r
-        {\r
-            this.lblSubheading = new System.Windows.Forms.Label();\r
-            this.rtbOfferMessage = new System.Windows.Forms.RichTextBox();\r
-            this.btnAccept = new System.Windows.Forms.Button();\r
-            this.btnDecline = new System.Windows.Forms.Button();\r
-            this.toolStrip1 = new System.Windows.Forms.ToolStrip();\r
-            this.toolStripLabel1 = new System.Windows.Forms.ToolStripLabel();\r
-            this.toolStrip1.SuspendLayout();\r
-            this.SuspendLayout();\r
-            // \r
-            // lblSubheading\r
-            // \r
-            this.lblSubheading.AutoSize = true;\r
-            this.lblSubheading.Location = new System.Drawing.Point(3, 25);\r
-            this.lblSubheading.Name = "lblSubheading";\r
-            this.lblSubheading.Size = new System.Drawing.Size(225, 13);\r
-            this.lblSubheading.TabIndex = 1;\r
-            this.lblSubheading.Text = "Received teleport offer from x with message:";\r
-            // \r
-            // rtbOfferMessage\r
-            // \r
-            this.rtbOfferMessage.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)\r
-                        | System.Windows.Forms.AnchorStyles.Right)));\r
-            this.rtbOfferMessage.BackColor = System.Drawing.Color.White;\r
-            this.rtbOfferMessage.Location = new System.Drawing.Point(3, 41);\r
-            this.rtbOfferMessage.Name = "rtbOfferMessage";\r
-            this.rtbOfferMessage.ReadOnly = true;\r
-            this.rtbOfferMessage.Size = new System.Drawing.Size(534, 64);\r
-            this.rtbOfferMessage.TabIndex = 2;\r
-            this.rtbOfferMessage.Text = "";\r
-            // \r
-            // btnAccept\r
-            // \r
-            this.btnAccept.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));\r
-            this.btnAccept.Location = new System.Drawing.Point(381, 111);\r
-            this.btnAccept.Name = "btnAccept";\r
-            this.btnAccept.Size = new System.Drawing.Size(75, 23);\r
-            this.btnAccept.TabIndex = 3;\r
-            this.btnAccept.Text = "Accept";\r
-            this.btnAccept.UseVisualStyleBackColor = true;\r
-            this.btnAccept.Click += new System.EventHandler(this.btnAccept_Click);\r
-            // \r
-            // btnDecline\r
-            // \r
-            this.btnDecline.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));\r
-            this.btnDecline.Location = new System.Drawing.Point(462, 111);\r
-            this.btnDecline.Name = "btnDecline";\r
-            this.btnDecline.Size = new System.Drawing.Size(75, 23);\r
-            this.btnDecline.TabIndex = 4;\r
-            this.btnDecline.Text = "Decline";\r
-            this.btnDecline.UseVisualStyleBackColor = true;\r
-            this.btnDecline.Click += new System.EventHandler(this.btnDecline_Click);\r
-            // \r
-            // toolStrip1\r
-            // \r
-            this.toolStrip1.GripStyle = System.Windows.Forms.ToolStripGripStyle.Hidden;\r
-            this.toolStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {\r
-            this.toolStripLabel1});\r
-            this.toolStrip1.Location = new System.Drawing.Point(0, 0);\r
-            this.toolStrip1.Name = "toolStrip1";\r
-            this.toolStrip1.RenderMode = System.Windows.Forms.ToolStripRenderMode.System;\r
-            this.toolStrip1.Size = new System.Drawing.Size(540, 25);\r
-            this.toolStrip1.TabIndex = 5;\r
-            this.toolStrip1.Text = "toolStrip1";\r
-            // \r
-            // toolStripLabel1\r
-            // \r
-            this.toolStripLabel1.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Bold);\r
-            this.toolStripLabel1.Name = "toolStripLabel1";\r
-            this.toolStripLabel1.Size = new System.Drawing.Size(86, 22);\r
-            this.toolStripLabel1.Text = "Teleport Offer";\r
-            // \r
-            // TPTabWindow\r
-            // \r
-            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);\r
-            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;\r
-            this.Controls.Add(this.toolStrip1);\r
-            this.Controls.Add(this.btnDecline);\r
-            this.Controls.Add(this.btnAccept);\r
-            this.Controls.Add(this.rtbOfferMessage);\r
-            this.Controls.Add(this.lblSubheading);\r
-            this.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));\r
-            this.Name = "TPTabWindow";\r
-            this.Size = new System.Drawing.Size(540, 408);\r
-            this.toolStrip1.ResumeLayout(false);\r
-            this.toolStrip1.PerformLayout();\r
-            this.ResumeLayout(false);\r
-            this.PerformLayout();\r
-\r
-        }\r
-\r
-        #endregion\r
-\r
-        private System.Windows.Forms.Label lblSubheading;\r
-        private System.Windows.Forms.RichTextBox rtbOfferMessage;\r
-        private System.Windows.Forms.Button btnAccept;\r
-        private System.Windows.Forms.Button btnDecline;\r
-        private System.Windows.Forms.ToolStrip toolStrip1;\r
-        private System.Windows.Forms.ToolStripLabel toolStripLabel1;\r
-    }\r
-}\r
diff --git a/Radegast/GUI/Consoles/TPTabWindow.cs b/Radegast/GUI/Consoles/TPTabWindow.cs
deleted file mode 100644 (file)
index b00da26..0000000
+++ /dev/null
@@ -1,67 +0,0 @@
-using System;\r
-using System.Collections.Generic;\r
-using System.ComponentModel;\r
-using System.Drawing;\r
-using System.Data;\r
-using System.Text;\r
-using System.Windows.Forms;\r
-using OpenMetaverse;\r
-using RadegastNc;\r
-\r
-namespace Radegast\r
-{\r
-    public partial class TPTabWindow : UserControl\r
-    {\r
-        private RadegastInstance instance;\r
-        private GridClient client { get { return instance.Client; } }\r
-        private string targetName;\r
-        private UUID targetUUID;\r
-\r
-        public TPTabWindow(RadegastInstance instance, InstantMessageEventArgs e)\r
-        {\r
-            InitializeComponent();\r
-\r
-            this.instance = instance;\r
-            ProcessEventArgs(e);\r
-        }\r
-\r
-        private void ProcessEventArgs(InstantMessageEventArgs e)\r
-        {\r
-            targetName = e.IM.FromAgentName;\r
-            targetUUID = e.IM.FromAgentID;\r
-\r
-            lblSubheading.Text =\r
-                "Received teleport offer from " + targetName + " with message:";\r
-\r
-            rtbOfferMessage.AppendText(e.IM.Message);\r
-        }\r
-\r
-        public void CloseTab()\r
-        {\r
-            instance.TabConsole.GetTab("chat").Select();\r
-            instance.TabConsole.GetTab(targetUUID.ToString()).Close();\r
-        }\r
-\r
-        private void btnAccept_Click(object sender, EventArgs e)\r
-        {\r
-            client.Self.TeleportLureRespond(targetUUID, true);\r
-            CloseTab();\r
-        }\r
-\r
-        private void btnDecline_Click(object sender, EventArgs e)\r
-        {\r
-            client.Self.TeleportLureRespond(targetUUID, false);\r
-            CloseTab();\r
-        }\r
-\r
-        public string TargetName\r
-        {\r
-            get { return targetName; }\r
-        }\r
-\r
-        public UUID TargetUUID\r
-        {\r
-            get { return targetUUID; }\r
-        }\r
-    }\r
-}\r
index 368061d..91bac99 100644 (file)
@@ -219,7 +219,7 @@ namespace Radegast
                     break;\r
 \r
                 case InstantMessageDialog.RequestTeleport:\r
-                    HandleTP(e);\r
+                    instance.MainForm.AddNotification(new ntfTeleport(instance, e.IM));\r
                     break;\r
 \r
                 case InstantMessageDialog.GroupInvitation:\r
@@ -227,7 +227,7 @@ namespace Radegast
                     break;\r
 \r
                 case InstantMessageDialog.FriendshipOffered:\r
-                    (new FriendshipOfferDialog(client, e.IM)).ShowDialog();\r
+                    instance.MainForm.AddNotification(new ntfFriendshipOffer(instance, e.IM));\r
                     break;\r
 \r
                 case InstantMessageDialog.InventoryAccepted:\r
@@ -303,19 +303,6 @@ namespace Radegast
             tabs[e.IM.IMSessionID.ToString()].Highlight();\r
         }\r
 \r
-\r
-        private void HandleTP(InstantMessageEventArgs e)\r
-        {\r
-            string fromAgentID = e.IM.FromAgentID.ToString();\r
-\r
-            if (TabExists(fromAgentID))\r
-                tabs[fromAgentID].Close();\r
-\r
-            TPTabWindow tpTab = AddTPTab(e);\r
-            tabs[tpTab.TargetUUID.ToString()].Highlight();\r
-            tabs[tpTab.TargetUUID.ToString()].Select();\r
-        }\r
-\r
         private void InitializeMainTab()\r
         {\r
             MainConsole mainConsole = new MainConsole(instance);\r
@@ -601,17 +588,6 @@ namespace Radegast
             return imTab;\r
         }\r
 \r
-        public TPTabWindow AddTPTab(InstantMessageEventArgs e)\r
-        {\r
-            TPTabWindow tpTab = new TPTabWindow(instance, e);\r
-            tpTab.Dock = DockStyle.Fill;\r
-\r
-            toolStripContainer1.ContentPanel.Controls.Add(tpTab);\r
-            SleekTab tab = AddTab(tpTab.TargetUUID.ToString(), "TP: " + tpTab.TargetName, tpTab);\r
-\r
-            return tpTab;\r
-        }\r
-\r
         public OutfitTextures AddOTTab(Avatar avatar)\r
         {\r
             OutfitTextures otTab = new OutfitTextures(instance, avatar);\r
diff --git a/Radegast/GUI/Dialogs/FriendshipOfferDialog.Designer.cs b/Radegast/GUI/Dialogs/FriendshipOfferDialog.Designer.cs
deleted file mode 100644 (file)
index cbe4661..0000000
+++ /dev/null
@@ -1,98 +0,0 @@
-namespace Radegast\r
-{\r
-    partial class FriendshipOfferDialog\r
-    {\r
-        /// <summary>\r
-        /// Required designer variable.\r
-        /// </summary>\r
-        private System.ComponentModel.IContainer components = null;\r
-\r
-        /// <summary>\r
-        /// Clean up any resources being used.\r
-        /// </summary>\r
-        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>\r
-        protected override void Dispose(bool disposing)\r
-        {\r
-            if (disposing && (components != null)) {\r
-                components.Dispose();\r
-            }\r
-            base.Dispose(disposing);\r
-        }\r
-\r
-        #region Windows Form Designer generated code\r
-\r
-        /// <summary>\r
-        /// Required method for Designer support - do not modify\r
-        /// the contents of this method with the code editor.\r
-        /// </summary>\r
-        private void InitializeComponent()\r
-        {\r
-            this.descBox = new System.Windows.Forms.TextBox();\r
-            this.yesBtn = new System.Windows.Forms.Button();\r
-            this.noBtn = new System.Windows.Forms.Button();\r
-            this.SuspendLayout();\r
-            // \r
-            // descBox\r
-            // \r
-            this.descBox.BackColor = System.Drawing.SystemColors.Control;\r
-            this.descBox.BorderStyle = System.Windows.Forms.BorderStyle.None;\r
-            this.descBox.Location = new System.Drawing.Point(12, 12);\r
-            this.descBox.Multiline = true;\r
-            this.descBox.Name = "descBox";\r
-            this.descBox.Size = new System.Drawing.Size(268, 88);\r
-            this.descBox.TabIndex = 99;\r
-            this.descBox.TabStop = false;\r
-            // \r
-            // yesBtn\r
-            // \r
-            this.yesBtn.DialogResult = System.Windows.Forms.DialogResult.Yes;\r
-            this.yesBtn.Location = new System.Drawing.Point(53, 116);\r
-            this.yesBtn.Name = "yesBtn";\r
-            this.yesBtn.Size = new System.Drawing.Size(75, 23);\r
-            this.yesBtn.TabIndex = 1;\r
-            this.yesBtn.Text = "&Yes";\r
-            this.yesBtn.UseVisualStyleBackColor = true;\r
-            this.yesBtn.Click += new System.EventHandler(this.yesBtn_Click);\r
-            // \r
-            // noBtn\r
-            // \r
-            this.noBtn.DialogResult = System.Windows.Forms.DialogResult.Cancel;\r
-            this.noBtn.Location = new System.Drawing.Point(159, 116);\r
-            this.noBtn.Name = "noBtn";\r
-            this.noBtn.Size = new System.Drawing.Size(75, 23);\r
-            this.noBtn.TabIndex = 2;\r
-            this.noBtn.Text = "&No";\r
-            this.noBtn.UseVisualStyleBackColor = true;\r
-            this.noBtn.Click += new System.EventHandler(this.noBtn_Click);\r
-            // \r
-            // FriendshipOfferDialog\r
-            // \r
-            this.AcceptButton = this.noBtn;\r
-            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);\r
-            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;\r
-            this.CancelButton = this.noBtn;\r
-            this.ClientSize = new System.Drawing.Size(292, 154);\r
-            this.Controls.Add(this.noBtn);\r
-            this.Controls.Add(this.yesBtn);\r
-            this.Controls.Add(this.descBox);\r
-            this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;\r
-            this.KeyPreview = true;\r
-            this.MaximizeBox = false;\r
-            this.MinimizeBox = false;\r
-            this.Name = "FriendshipOfferDialog";\r
-            this.ShowIcon = false;\r
-            this.Text = "Friendship Offer";\r
-            this.TopMost = true;\r
-            this.ResumeLayout(false);\r
-            this.PerformLayout();\r
-\r
-        }\r
-\r
-        #endregion\r
-\r
-        private System.Windows.Forms.TextBox descBox;\r
-        private System.Windows.Forms.Button yesBtn;\r
-        private System.Windows.Forms.Button noBtn;\r
-\r
-    }\r
-}
\ No newline at end of file
diff --git a/Radegast/GUI/Dialogs/FriendshipOfferDialog.cs b/Radegast/GUI/Dialogs/FriendshipOfferDialog.cs
deleted file mode 100644 (file)
index 82649fa..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-using System;\r
-using System.Collections.Generic;\r
-using System.ComponentModel;\r
-using System.Data;\r
-using System.Drawing;\r
-using System.Text;\r
-using System.Windows.Forms;\r
-using RadegastNc;\r
-using OpenMetaverse;\r
-\r
-namespace Radegast\r
-{\r
-    public partial class FriendshipOfferDialog : Form\r
-    {\r
-        private GridClient client;\r
-        InstantMessage im;\r
-\r
-        public FriendshipOfferDialog(GridClient iclient, InstantMessage iim)\r
-        {\r
-            InitializeComponent();\r
-            this.Focus();\r
-            client = iclient;\r
-            im = iim;\r
-\r
-            descBox.Text = im.FromAgentName + " would like to add you to their friends list.\r\nDo you wish to accept?";\r
-\r
-        }\r
-\r
-        private void noBtn_Click(object sender, EventArgs e)\r
-        {\r
-            client.Friends.DeclineFriendship(im.FromAgentID, im.IMSessionID);\r
-            this.Close();\r
-        }\r
-\r
-        private void yesBtn_Click(object sender, EventArgs e)\r
-        {\r
-            client.Friends.AcceptFriendship(im.FromAgentID, im.IMSessionID);\r
-            this.Close();\r
-        }\r
-    }\r
-}
\ No newline at end of file
index 72a7b8e..03ec847 100644 (file)
@@ -74,10 +74,13 @@ namespace Radegast
             this.tlblParcel = new System.Windows.Forms.ToolStripStatusLabel();\r
             this.toolStripContainer1 = new System.Windows.Forms.ToolStripContainer();\r
             this.toolTip1 = new System.Windows.Forms.ToolTip(this.components);\r
+            this.pnlDialog = new System.Windows.Forms.Panel();\r
+            this.btnDialogNextControl = new System.Windows.Forms.Button();\r
             this.toolStrip1.SuspendLayout();\r
             this.statusStrip1.SuspendLayout();\r
             this.toolStripContainer1.TopToolStripPanel.SuspendLayout();\r
             this.toolStripContainer1.SuspendLayout();\r
+            this.pnlDialog.SuspendLayout();\r
             this.SuspendLayout();\r
             // \r
             // toolStrip1\r
@@ -439,11 +442,39 @@ namespace Radegast
             this.toolTip1.ToolTipIcon = System.Windows.Forms.ToolTipIcon.Info;\r
             this.toolTip1.ToolTipTitle = "Detailed Info";\r
             // \r
+            // pnlDialog\r
+            // \r
+            this.pnlDialog.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));\r
+            this.pnlDialog.AutoSize = true;\r
+            this.pnlDialog.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(70)))), ((int)(((byte)(170)))), ((int)(((byte)(255)))));\r
+            this.pnlDialog.Controls.Add(this.btnDialogNextControl);\r
+            this.pnlDialog.Location = new System.Drawing.Point(540, 0);\r
+            this.pnlDialog.Name = "pnlDialog";\r
+            this.pnlDialog.Size = new System.Drawing.Size(198, 151);\r
+            this.pnlDialog.TabIndex = 11;\r
+            // \r
+            // btnDialogNextControl\r
+            // \r
+            this.btnDialogNextControl.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));\r
+            this.btnDialogNextControl.FlatAppearance.BorderSize = 0;\r
+            this.btnDialogNextControl.FlatStyle = System.Windows.Forms.FlatStyle.Flat;\r
+            this.btnDialogNextControl.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));\r
+            this.btnDialogNextControl.Location = new System.Drawing.Point(165, 128);\r
+            this.btnDialogNextControl.Margin = new System.Windows.Forms.Padding(0);\r
+            this.btnDialogNextControl.Name = "btnDialogNextControl";\r
+            this.btnDialogNextControl.Size = new System.Drawing.Size(33, 23);\r
+            this.btnDialogNextControl.TabIndex = 0;\r
+            this.btnDialogNextControl.Text = ">>";\r
+            this.btnDialogNextControl.UseVisualStyleBackColor = true;\r
+            this.btnDialogNextControl.Visible = false;\r
+            this.btnDialogNextControl.Click += new System.EventHandler(this.btnDialogNextControl_Click);\r
+            // \r
             // frmMain\r
             // \r
             this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);\r
             this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;\r
             this.ClientSize = new System.Drawing.Size(738, 505);\r
+            this.Controls.Add(this.pnlDialog);\r
             this.Controls.Add(this.toolStripContainer1);\r
             this.Controls.Add(this.statusStrip1);\r
             this.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));\r
@@ -462,6 +493,7 @@ namespace Radegast
             this.toolStripContainer1.TopToolStripPanel.PerformLayout();\r
             this.toolStripContainer1.ResumeLayout(false);\r
             this.toolStripContainer1.PerformLayout();\r
+            this.pnlDialog.ResumeLayout(false);\r
             this.ResumeLayout(false);\r
             this.PerformLayout();\r
 \r
@@ -507,6 +539,8 @@ namespace Radegast
         private System.Windows.Forms.ToolStripMenuItem groundSitToolStripMenuItem;\r
         public System.Windows.Forms.ToolStrip toolStrip1;\r
         public System.Windows.Forms.ToolStripContainer toolStripContainer1;\r
+        private System.Windows.Forms.Button btnDialogNextControl;\r
+        public System.Windows.Forms.Panel pnlDialog;\r
     }\r
 }\r
 \r
diff --git a/Radegast/GUI/Dialogs/MainForm.Designer.cs.mine b/Radegast/GUI/Dialogs/MainForm.Designer.cs.mine
deleted file mode 100644 (file)
index bb5b78b..0000000
+++ /dev/null
@@ -1,509 +0,0 @@
-namespace SLeek\r
-{\r
-    partial class frmMain\r
-    {\r
-        /// <summary>\r
-        /// Required designer variable.\r
-        /// </summary>\r
-        private System.ComponentModel.IContainer components = null;\r
-\r
-        /// <summary>\r
-        /// Clean up any resources being used.\r
-        /// </summary>\r
-        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>\r
-        protected override void Dispose(bool disposing)\r
-        {\r
-            if (InvokeRequired)\r
-            {\r
-                Invoke(new System.Windows.Forms.MethodInvoker(delegate() { Dispose(disposing);} ));\r
-                return;\r
-            }\r
-\r
-            if (disposing && (components != null))\r
-            {\r
-                components.Dispose();\r
-            }\r
-            base.Dispose(disposing);\r
-        }\r
-\r
-        #region Windows Form Designer generated code\r
-\r
-        /// <summary>\r
-        /// Required method for Designer support - do not modify\r
-        /// the contents of this method with the code editor.\r
-        /// </summary>\r
-        private void InitializeComponent()\r
-        {\r
-            this.components = new System.ComponentModel.Container();\r
-            System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(frmMain));\r
-            this.toolStrip1 = new System.Windows.Forms.ToolStrip();\r
-            this.tbtnSLeek = new System.Windows.Forms.ToolStripDropDownButton();\r
-            this.tmnuNewWindow = new System.Windows.Forms.ToolStripMenuItem();\r
-            this.toolStripMenuItem3 = new System.Windows.Forms.ToolStripSeparator();\r
-            this.tmnuPrefs = new System.Windows.Forms.ToolStripMenuItem();\r
-            this.toolStripMenuItem2 = new System.Windows.Forms.ToolStripSeparator();\r
-            this.tmnuExit = new System.Windows.Forms.ToolStripMenuItem();\r
-            this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator();\r
-            this.tbtnHelp = new System.Windows.Forms.ToolStripDropDownButton();\r
-            this.tmnuHelpReadme = new System.Windows.Forms.ToolStripMenuItem();\r
-            this.toolStripMenuItem1 = new System.Windows.Forms.ToolStripSeparator();\r
-            this.tmnuDonate = new System.Windows.Forms.ToolStripMenuItem();\r
-            this.tmnuAbout = new System.Windows.Forms.ToolStripMenuItem();\r
-            this.tbtnDebug = new System.Windows.Forms.ToolStripDropDownButton();\r
-            this.tmnuDebugLog = new System.Windows.Forms.ToolStripMenuItem();\r
-            this.tmnuDebugScript = new System.Windows.Forms.ToolStripMenuItem();\r
-            this.tbtnStatus = new System.Windows.Forms.ToolStripDropDownButton();\r
-            this.tmnuStatusAway = new System.Windows.Forms.ToolStripMenuItem();\r
-            this.tmnuStatusBusy = new System.Windows.Forms.ToolStripMenuItem();\r
-            this.tbtnControl = new System.Windows.Forms.ToolStripDropDownButton();\r
-            this.tmnuControlFly = new System.Windows.Forms.ToolStripMenuItem();\r
-            this.tmnuControlAlwaysRun = new System.Windows.Forms.ToolStripMenuItem();\r
-            this.groupsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();\r
-            this.toolStripSeparator2 = new System.Windows.Forms.ToolStripSeparator();\r
-            this.tbtnObjects = new System.Windows.Forms.ToolStripButton();\r
-            this.tbtnAppearance = new System.Windows.Forms.ToolStripButton();\r
-            this.statusStrip1 = new System.Windows.Forms.StatusStrip();\r
-            this.tlblLoginName = new System.Windows.Forms.ToolStripStatusLabel();\r
-            this.tlblMoneyBalance = new System.Windows.Forms.ToolStripStatusLabel();\r
-            this.tlblHealth = new System.Windows.Forms.ToolStripStatusLabel();\r
-            this.tlblRegionInfo = new System.Windows.Forms.ToolStripStatusLabel();\r
-            this.tlblParcel = new System.Windows.Forms.ToolStripStatusLabel();\r
-            this.toolStripContainer1 = new System.Windows.Forms.ToolStripContainer();\r
-            this.toolTip1 = new System.Windows.Forms.ToolTip(this.components);\r
-            this.tbnTeleprotMulti = new System.Windows.Forms.ToolStripDropDownButton();\r
-            this.locationToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();\r
-            this.homeToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();\r
-            this.toolStrip1.SuspendLayout();\r
-            this.statusStrip1.SuspendLayout();\r
-            this.toolStripContainer1.TopToolStripPanel.SuspendLayout();\r
-            this.toolStripContainer1.SuspendLayout();\r
-            this.SuspendLayout();\r
-            // \r
-            // toolStrip1\r
-            // \r
-            this.toolStrip1.Dock = System.Windows.Forms.DockStyle.None;\r
-            this.toolStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {\r
-            this.tbtnSLeek,\r
-            this.toolStripSeparator1,\r
-            this.tbtnHelp,\r
-            this.tbtnDebug,\r
-            this.tbtnStatus,\r
-            this.tbtnControl,\r
-            this.toolStripSeparator2,\r
-            this.tbnTeleprotMulti,\r
-            this.tbtnObjects,\r
-            this.tbtnAppearance});\r
-            this.toolStrip1.Location = new System.Drawing.Point(0, 0);\r
-            this.toolStrip1.Name = "toolStrip1";\r
-            this.toolStrip1.RenderMode = System.Windows.Forms.ToolStripRenderMode.System;\r
-            this.toolStrip1.Size = new System.Drawing.Size(720, 25);\r
-            this.toolStrip1.Stretch = true;\r
-            this.toolStrip1.TabIndex = 8;\r
-            this.toolStrip1.Text = "toolStrip1";\r
-            // \r
-            // tbtnSLeek\r
-            // \r
-            this.tbtnSLeek.AutoToolTip = false;\r
-            this.tbtnSLeek.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text;\r
-            this.tbtnSLeek.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {\r
-            this.tmnuNewWindow,\r
-            this.toolStripMenuItem3,\r
-            this.tmnuPrefs,\r
-            this.toolStripMenuItem2,\r
-            this.tmnuExit});\r
-            this.tbtnSLeek.Image = global::SLeek.Properties.Resources.computer_16;\r
-            this.tbtnSLeek.ImageTransparentColor = System.Drawing.Color.Magenta;\r
-            this.tbtnSLeek.Name = "tbtnSLeek";\r
-            this.tbtnSLeek.Size = new System.Drawing.Size(36, 22);\r
-            this.tbtnSLeek.Text = "&File";\r
-            // \r
-            // tmnuNewWindow\r
-            // \r
-            this.tmnuNewWindow.Name = "tmnuNewWindow";\r
-            this.tmnuNewWindow.Size = new System.Drawing.Size(144, 22);\r
-            this.tmnuNewWindow.Text = "New Window";\r
-            this.tmnuNewWindow.Click += new System.EventHandler(this.tmnuNewWindow_Click);\r
-            // \r
-            // toolStripMenuItem3\r
-            // \r
-            this.toolStripMenuItem3.Name = "toolStripMenuItem3";\r
-            this.toolStripMenuItem3.Size = new System.Drawing.Size(141, 6);\r
-            // \r
-            // tmnuPrefs\r
-            // \r
-            this.tmnuPrefs.Image = global::SLeek.Properties.Resources.applications_16;\r
-            this.tmnuPrefs.Name = "tmnuPrefs";\r
-            this.tmnuPrefs.Size = new System.Drawing.Size(144, 22);\r
-            this.tmnuPrefs.Text = "Preferences...";\r
-            this.tmnuPrefs.Click += new System.EventHandler(this.tmnuPrefs_Click);\r
-            // \r
-            // toolStripMenuItem2\r
-            // \r
-            this.toolStripMenuItem2.Name = "toolStripMenuItem2";\r
-            this.toolStripMenuItem2.Size = new System.Drawing.Size(141, 6);\r
-            // \r
-            // tmnuExit\r
-            // \r
-            this.tmnuExit.Name = "tmnuExit";\r
-            this.tmnuExit.Size = new System.Drawing.Size(144, 22);\r
-            this.tmnuExit.Text = "E&xit";\r
-            this.tmnuExit.Click += new System.EventHandler(this.tmnuExit_Click);\r
-            // \r
-            // toolStripSeparator1\r
-            // \r
-            this.toolStripSeparator1.Name = "toolStripSeparator1";\r
-            this.toolStripSeparator1.Size = new System.Drawing.Size(6, 25);\r
-            // \r
-            // tbtnHelp\r
-            // \r
-            this.tbtnHelp.Alignment = System.Windows.Forms.ToolStripItemAlignment.Right;\r
-            this.tbtnHelp.AutoToolTip = false;\r
-            this.tbtnHelp.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text;\r
-            this.tbtnHelp.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {\r
-            this.tmnuHelpReadme,\r
-            this.toolStripMenuItem1,\r
-            this.tmnuDonate,\r
-            this.tmnuAbout});\r
-            this.tbtnHelp.Image = ((System.Drawing.Image)(resources.GetObject("tbtnHelp.Image")));\r
-            this.tbtnHelp.ImageTransparentColor = System.Drawing.Color.Magenta;\r
-            this.tbtnHelp.Name = "tbtnHelp";\r
-            this.tbtnHelp.Size = new System.Drawing.Size(41, 22);\r
-            this.tbtnHelp.Text = "Help";\r
-            // \r
-            // tmnuHelpReadme\r
-            // \r
-            this.tmnuHelpReadme.Name = "tmnuHelpReadme";\r
-            this.tmnuHelpReadme.Size = new System.Drawing.Size(125, 22);\r
-            this.tmnuHelpReadme.Text = "Readme...";\r
-            this.tmnuHelpReadme.Click += new System.EventHandler(this.tmnuHelpReadme_Click);\r
-            // \r
-            // toolStripMenuItem1\r
-            // \r
-            this.toolStripMenuItem1.Name = "toolStripMenuItem1";\r
-            this.toolStripMenuItem1.Size = new System.Drawing.Size(122, 6);\r
-            // \r
-            // tmnuDonate\r
-            // \r
-            this.tmnuDonate.Name = "tmnuDonate";\r
-            this.tmnuDonate.Size = new System.Drawing.Size(125, 22);\r
-            this.tmnuDonate.Text = "Donate...";\r
-            this.tmnuDonate.Click += new System.EventHandler(this.tmnuDonate_Click);\r
-            // \r
-            // tmnuAbout\r
-            // \r
-            this.tmnuAbout.Name = "tmnuAbout";\r
-            this.tmnuAbout.Size = new System.Drawing.Size(125, 22);\r
-            this.tmnuAbout.Text = "About...";\r
-            this.tmnuAbout.Click += new System.EventHandler(this.tmnuAbout_Click);\r
-            // \r
-            // tbtnDebug\r
-            // \r
-            this.tbtnDebug.Alignment = System.Windows.Forms.ToolStripItemAlignment.Right;\r
-            this.tbtnDebug.AutoToolTip = false;\r
-            this.tbtnDebug.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text;\r
-            this.tbtnDebug.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {\r
-            this.tmnuDebugLog,\r
-            this.tmnuDebugScript});\r
-            this.tbtnDebug.Image = ((System.Drawing.Image)(resources.GetObject("tbtnDebug.Image")));\r
-            this.tbtnDebug.ImageTransparentColor = System.Drawing.Color.Magenta;\r
-            this.tbtnDebug.Name = "tbtnDebug";\r
-            this.tbtnDebug.Size = new System.Drawing.Size(51, 22);\r
-            this.tbtnDebug.Text = "Debug";\r
-            this.tbtnDebug.Visible = false;\r
-            // \r
-            // tmnuDebugLog\r
-            // \r
-            this.tmnuDebugLog.Name = "tmnuDebugLog";\r
-            this.tmnuDebugLog.Size = new System.Drawing.Size(113, 22);\r
-            this.tmnuDebugLog.Text = "Log...";\r
-            this.tmnuDebugLog.Click += new System.EventHandler(this.tmnuDebugLog_Click);\r
-            // \r
-            // tmnuDebugScript\r
-            // \r
-            this.tmnuDebugScript.Name = "tmnuDebugScript";\r
-            this.tmnuDebugScript.Size = new System.Drawing.Size(113, 22);\r
-            this.tmnuDebugScript.Text = "Script...";\r
-            this.tmnuDebugScript.Click += new System.EventHandler(this.tmnuDebugScript_Click);\r
-            // \r
-            // tbtnStatus\r
-            // \r
-            this.tbtnStatus.AutoToolTip = false;\r
-            this.tbtnStatus.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text;\r
-            this.tbtnStatus.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {\r
-            this.tmnuStatusAway,\r
-            this.tmnuStatusBusy});\r
-            this.tbtnStatus.Enabled = false;\r
-            this.tbtnStatus.Image = ((System.Drawing.Image)(resources.GetObject("tbtnStatus.Image")));\r
-            this.tbtnStatus.ImageTransparentColor = System.Drawing.Color.Magenta;\r
-            this.tbtnStatus.Name = "tbtnStatus";\r
-            this.tbtnStatus.Size = new System.Drawing.Size(51, 22);\r
-            this.tbtnStatus.Text = "Status";\r
-            // \r
-            // tmnuStatusAway\r
-            // \r
-            this.tmnuStatusAway.CheckOnClick = true;\r
-            this.tmnuStatusAway.Name = "tmnuStatusAway";\r
-            this.tmnuStatusAway.Size = new System.Drawing.Size(101, 22);\r
-            this.tmnuStatusAway.Text = "Away";\r
-            this.tmnuStatusAway.Click += new System.EventHandler(this.tmnuStatusAway_Click);\r
-            // \r
-            // tmnuStatusBusy\r
-            // \r
-            this.tmnuStatusBusy.CheckOnClick = true;\r
-            this.tmnuStatusBusy.Name = "tmnuStatusBusy";\r
-            this.tmnuStatusBusy.Size = new System.Drawing.Size(101, 22);\r
-            this.tmnuStatusBusy.Text = "Busy";\r
-            this.tmnuStatusBusy.Click += new System.EventHandler(this.tmnuStatusBusy_Click);\r
-            // \r
-            // tbtnControl\r
-            // \r
-            this.tbtnControl.AutoToolTip = false;\r
-            this.tbtnControl.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text;\r
-            this.tbtnControl.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {\r
-            this.tmnuControlFly,\r
-            this.tmnuControlAlwaysRun,\r
-            this.groupsToolStripMenuItem});\r
-            this.tbtnControl.Enabled = false;\r
-            this.tbtnControl.Image = ((System.Drawing.Image)(resources.GetObject("tbtnControl.Image")));\r
-            this.tbtnControl.ImageTransparentColor = System.Drawing.Color.Magenta;\r
-            this.tbtnControl.Name = "tbtnControl";\r
-            this.tbtnControl.Size = new System.Drawing.Size(55, 22);\r
-            this.tbtnControl.Text = "Control";\r
-            // \r
-            // tmnuControlFly\r
-            // \r
-            this.tmnuControlFly.CheckOnClick = true;\r
-            this.tmnuControlFly.Name = "tmnuControlFly";\r
-            this.tmnuControlFly.Size = new System.Drawing.Size(152, 22);\r
-            this.tmnuControlFly.Text = "Fly";\r
-            this.tmnuControlFly.Click += new System.EventHandler(this.tmnuControlFly_Click);\r
-            // \r
-            // tmnuControlAlwaysRun\r
-            // \r
-            this.tmnuControlAlwaysRun.CheckOnClick = true;\r
-            this.tmnuControlAlwaysRun.Name = "tmnuControlAlwaysRun";\r
-            this.tmnuControlAlwaysRun.Size = new System.Drawing.Size(152, 22);\r
-            this.tmnuControlAlwaysRun.Text = "Always Run";\r
-            this.tmnuControlAlwaysRun.Click += new System.EventHandler(this.tmnuControlAlwaysRun_Click);\r
-            // \r
-            // groupsToolStripMenuItem\r
-            // \r
-            this.groupsToolStripMenuItem.Name = "groupsToolStripMenuItem";\r
-            this.groupsToolStripMenuItem.Size = new System.Drawing.Size(152, 22);\r
-            this.groupsToolStripMenuItem.Text = "Groups";\r
-            this.groupsToolStripMenuItem.Click += new System.EventHandler(this.groupsToolStripMenuItem_Click);\r
-            // \r
-            // toolStripSeparator2\r
-            // \r
-            this.toolStripSeparator2.Name = "toolStripSeparator2";\r
-            this.toolStripSeparator2.Size = new System.Drawing.Size(6, 25);\r
-            // \r
-            // tbtnObjects\r
-            // \r
-            this.tbtnObjects.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text;\r
-            this.tbtnObjects.Enabled = false;\r
-            this.tbtnObjects.Image = ((System.Drawing.Image)(resources.GetObject("tbtnObjects.Image")));\r
-            this.tbtnObjects.ImageTransparentColor = System.Drawing.Color.Magenta;\r
-            this.tbtnObjects.Name = "tbtnObjects";\r
-            this.tbtnObjects.Size = new System.Drawing.Size(48, 22);\r
-            this.tbtnObjects.Text = "Objects";\r
-            this.tbtnObjects.Click += new System.EventHandler(this.tbtnObjects_Click);\r
-            // \r
-            // tbtnAppearance\r
-            // \r
-            this.tbtnAppearance.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text;\r
-            this.tbtnAppearance.Enabled = false;\r
-            this.tbtnAppearance.Image = ((System.Drawing.Image)(resources.GetObject("tbtnAppearance.Image")));\r
-            this.tbtnAppearance.ImageTransparentColor = System.Drawing.Color.Magenta;\r
-            this.tbtnAppearance.Name = "tbtnAppearance";\r
-            this.tbtnAppearance.Size = new System.Drawing.Size(69, 22);\r
-            this.tbtnAppearance.Text = "&Appearance";\r
-            this.tbtnAppearance.Click += new System.EventHandler(this.tbtnAppearance_Click);\r
-            // \r
-            // statusStrip1\r
-            // \r
-            this.statusStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {\r
-            this.tlblLoginName,\r
-            this.tlblMoneyBalance,\r
-            this.tlblHealth,\r
-            this.tlblRegionInfo,\r
-            this.tlblParcel});\r
-            this.statusStrip1.Location = new System.Drawing.Point(0, 534);\r
-            this.statusStrip1.Name = "statusStrip1";\r
-            this.statusStrip1.Size = new System.Drawing.Size(720, 22);\r
-            this.statusStrip1.TabIndex = 9;\r
-            this.statusStrip1.Text = "statusStrip1";\r
-            // \r
-            // tlblLoginName\r
-            // \r
-            this.tlblLoginName.BorderSides = System.Windows.Forms.ToolStripStatusLabelBorderSides.Right;\r
-            this.tlblLoginName.BorderStyle = System.Windows.Forms.Border3DStyle.Etched;\r
-            this.tlblLoginName.Name = "tlblLoginName";\r
-            this.tlblLoginName.Size = new System.Drawing.Size(43, 17);\r
-            this.tlblLoginName.Text = "Offline";\r
-            // \r
-            // tlblMoneyBalance\r
-            // \r
-            this.tlblMoneyBalance.BorderSides = System.Windows.Forms.ToolStripStatusLabelBorderSides.Right;\r
-            this.tlblMoneyBalance.BorderStyle = System.Windows.Forms.Border3DStyle.Etched;\r
-            this.tlblMoneyBalance.Name = "tlblMoneyBalance";\r
-            this.tlblMoneyBalance.Size = new System.Drawing.Size(28, 17);\r
-            this.tlblMoneyBalance.Text = "L$0";\r
-            // \r
-            // tlblHealth\r
-            // \r
-            this.tlblHealth.BorderSides = System.Windows.Forms.ToolStripStatusLabelBorderSides.Right;\r
-            this.tlblHealth.BorderStyle = System.Windows.Forms.Border3DStyle.Etched;\r
-            this.tlblHealth.Name = "tlblHealth";\r
-            this.tlblHealth.Size = new System.Drawing.Size(55, 17);\r
-            this.tlblHealth.Text = "Health: 0";\r
-            // \r
-            // tlblRegionInfo\r
-            // \r
-            this.tlblRegionInfo.BorderSides = System.Windows.Forms.ToolStripStatusLabelBorderSides.Right;\r
-            this.tlblRegionInfo.BorderStyle = System.Windows.Forms.Border3DStyle.Etched;\r
-            this.tlblRegionInfo.Name = "tlblRegionInfo";\r
-            this.tlblRegionInfo.Size = new System.Drawing.Size(60, 17);\r
-            this.tlblRegionInfo.Text = "No Region";\r
-            // \r
-            // tlblParcel\r
-            // \r
-            this.tlblParcel.BorderSides = System.Windows.Forms.ToolStripStatusLabelBorderSides.Right;\r
-            this.tlblParcel.BorderStyle = System.Windows.Forms.Border3DStyle.Etched;\r
-            this.tlblParcel.Name = "tlblParcel";\r
-            this.tlblParcel.Size = new System.Drawing.Size(56, 17);\r
-            this.tlblParcel.Text = "No Parcel";\r
-            // \r
-            // toolStripContainer1\r
-            // \r
-            // \r
-            // toolStripContainer1.BottomToolStripPanel\r
-            // \r
-            this.toolStripContainer1.BottomToolStripPanel.RenderMode = System.Windows.Forms.ToolStripRenderMode.System;\r
-            // \r
-            // toolStripContainer1.ContentPanel\r
-            // \r
-            this.toolStripContainer1.ContentPanel.Size = new System.Drawing.Size(720, 509);\r
-            this.toolStripContainer1.Dock = System.Windows.Forms.DockStyle.Fill;\r
-            // \r
-            // toolStripContainer1.LeftToolStripPanel\r
-            // \r
-            this.toolStripContainer1.LeftToolStripPanel.RenderMode = System.Windows.Forms.ToolStripRenderMode.System;\r
-            this.toolStripContainer1.Location = new System.Drawing.Point(0, 0);\r
-            this.toolStripContainer1.Name = "toolStripContainer1";\r
-            // \r
-            // toolStripContainer1.RightToolStripPanel\r
-            // \r
-            this.toolStripContainer1.RightToolStripPanel.RenderMode = System.Windows.Forms.ToolStripRenderMode.System;\r
-            this.toolStripContainer1.Size = new System.Drawing.Size(720, 534);\r
-            this.toolStripContainer1.TabIndex = 10;\r
-            this.toolStripContainer1.Text = "toolStripContainer1";\r
-            // \r
-            // toolStripContainer1.TopToolStripPanel\r
-            // \r
-            this.toolStripContainer1.TopToolStripPanel.Controls.Add(this.toolStrip1);\r
-            this.toolStripContainer1.TopToolStripPanel.RenderMode = System.Windows.Forms.ToolStripRenderMode.System;\r
-            // \r
-            // toolTip1\r
-            // \r
-            this.toolTip1.AutoPopDelay = 5000;\r
-            this.toolTip1.InitialDelay = 500;\r
-            this.toolTip1.ReshowDelay = 100;\r
-            this.toolTip1.ToolTipIcon = System.Windows.Forms.ToolTipIcon.Info;\r
-            this.toolTip1.ToolTipTitle = "Detailed Info";\r
-            // \r
-            // tbnTeleprotMulti\r
-            // \r
-            this.tbnTeleprotMulti.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text;\r
-            this.tbnTeleprotMulti.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {\r
-            this.locationToolStripMenuItem,\r
-            this.homeToolStripMenuItem});\r
-            this.tbnTeleprotMulti.Image = ((System.Drawing.Image)(resources.GetObject("tbnTeleprotMulti.Image")));\r
-            this.tbnTeleprotMulti.ImageTransparentColor = System.Drawing.Color.Magenta;\r
-            this.tbnTeleprotMulti.Name = "tbnTeleprotMulti";\r
-            this.tbnTeleprotMulti.Size = new System.Drawing.Size(60, 22);\r
-            this.tbnTeleprotMulti.Text = "&Teleport";\r
-            // \r
-            // locationToolStripMenuItem\r
-            // \r
-            this.locationToolStripMenuItem.Name = "locationToolStripMenuItem";\r
-            this.locationToolStripMenuItem.Size = new System.Drawing.Size(152, 22);\r
-            this.locationToolStripMenuItem.Text = "&Location";\r
-            this.locationToolStripMenuItem.Click += new System.EventHandler(this.tbtnTeleport_Click);\r
-            // \r
-            // homeToolStripMenuItem\r
-            // \r
-            this.homeToolStripMenuItem.Name = "homeToolStripMenuItem";\r
-            this.homeToolStripMenuItem.Size = new System.Drawing.Size(152, 22);\r
-            this.homeToolStripMenuItem.Text = "&Home";\r
-            this.homeToolStripMenuItem.Click += new System.EventHandler(this.homeToolStripMenuItem_Click);\r
-            // \r
-            // frmMain\r
-            // \r
-            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);\r
-            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;\r
-            this.ClientSize = new System.Drawing.Size(720, 556);\r
-            this.Controls.Add(this.toolStripContainer1);\r
-            this.Controls.Add(this.statusStrip1);\r
-            this.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));\r
-            this.KeyPreview = true;\r
-            this.Name = "frmMain";\r
-            this.Text = "The L Bot";\r
-            this.Load += new System.EventHandler(this.frmMain_Load);\r
-            this.KeyUp += new System.Windows.Forms.KeyEventHandler(this.frmMain_KeyUp);\r
-            this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.frmMain_FormClosing);\r
-            this.toolStrip1.ResumeLayout(false);\r
-            this.toolStrip1.PerformLayout();\r
-            this.statusStrip1.ResumeLayout(false);\r
-            this.statusStrip1.PerformLayout();\r
-            this.toolStripContainer1.TopToolStripPanel.ResumeLayout(false);\r
-            this.toolStripContainer1.TopToolStripPanel.PerformLayout();\r
-            this.toolStripContainer1.ResumeLayout(false);\r
-            this.toolStripContainer1.PerformLayout();\r
-            this.ResumeLayout(false);\r
-            this.PerformLayout();\r
-\r
-        }\r
-\r
-        #endregion\r
-\r
-        private System.Windows.Forms.ToolStrip toolStrip1;\r
-        private System.Windows.Forms.ToolStripDropDownButton tbtnSLeek;\r
-        private System.Windows.Forms.ToolStripSeparator toolStripSeparator1;\r
-        private System.Windows.Forms.ToolStripDropDownButton tbtnHelp;\r
-        private System.Windows.Forms.ToolStripMenuItem tmnuAbout;\r
-        private System.Windows.Forms.ToolStripMenuItem tmnuExit;\r
-        private System.Windows.Forms.StatusStrip statusStrip1;\r
-        private System.Windows.Forms.ToolStripStatusLabel tlblLoginName;\r
-        private System.Windows.Forms.ToolStripStatusLabel tlblRegionInfo;\r
-        private System.Windows.Forms.ToolStripStatusLabel tlblHealth;\r
-        private System.Windows.Forms.ToolStripStatusLabel tlblMoneyBalance;\r
-        private System.Windows.Forms.ToolStripDropDownButton tbtnDebug;\r
-        private System.Windows.Forms.ToolStripMenuItem tmnuDebugScript;\r
-        private System.Windows.Forms.ToolStripMenuItem tmnuPrefs;\r
-        private System.Windows.Forms.ToolStripSeparator toolStripMenuItem2;\r
-        private System.Windows.Forms.ToolStripContainer toolStripContainer1;\r
-        private System.Windows.Forms.ToolStripMenuItem tmnuDebugLog;\r
-        private System.Windows.Forms.ToolStripDropDownButton tbtnStatus;\r
-        private System.Windows.Forms.ToolStripMenuItem tmnuStatusAway;\r
-        private System.Windows.Forms.ToolStripMenuItem tmnuStatusBusy;\r
-        private System.Windows.Forms.ToolStripMenuItem tmnuHelpReadme;\r
-        private System.Windows.Forms.ToolStripSeparator toolStripMenuItem1;\r
-        private System.Windows.Forms.ToolStripDropDownButton tbtnControl;\r
-        private System.Windows.Forms.ToolStripMenuItem tmnuControlFly;\r
-        private System.Windows.Forms.ToolStripSeparator toolStripSeparator2;\r
-        private System.Windows.Forms.ToolStripMenuItem tmnuControlAlwaysRun;\r
-        private System.Windows.Forms.ToolStripMenuItem tmnuNewWindow;\r
-        private System.Windows.Forms.ToolStripSeparator toolStripMenuItem3;\r
-        private System.Windows.Forms.ToolStripMenuItem tmnuDonate;\r
-        private System.Windows.Forms.ToolTip toolTip1;\r
-        private System.Windows.Forms.ToolStripStatusLabel tlblParcel;\r
-        private System.Windows.Forms.ToolStripButton tbtnObjects;\r
-        private System.Windows.Forms.ToolStripButton tbtnAppearance;\r
-        private System.Windows.Forms.ToolStripMenuItem groupsToolStripMenuItem;\r
-        private System.Windows.Forms.ToolStripDropDownButton tbnTeleprotMulti;\r
-        private System.Windows.Forms.ToolStripMenuItem locationToolStripMenuItem;\r
-        private System.Windows.Forms.ToolStripMenuItem homeToolStripMenuItem;\r
-    }\r
-}\r
-\r
index bc250c1..f5ffd6f 100644 (file)
@@ -41,6 +41,8 @@ namespace Radegast
             netcom = this.instance.Netcom;\r
             netcom.NetcomSync = this;\r
 \r
+            pnlDialog.Visible = false;\r
+\r
             // Callbacks\r
             netcom.ClientLoginStatus += new EventHandler<ClientLoginEventArgs>(netcom_ClientLoginStatus);\r
             netcom.ClientLoggedOut += new EventHandler(netcom_ClientLoggedOut);\r
@@ -475,5 +477,87 @@ namespace Radegast
         {\r
             client.Self.SitOnGround();\r
         }\r
+\r
+        #region Notifications\r
+        CircularList<Control> notifications = new CircularList<Control>();\r
+\r
+        public Color NotificationBackground\r
+        {\r
+            get { return pnlDialog.BackColor; }\r
+        }\r
+\r
+        void ResizeNotificationByControl(Control active)\r
+        {\r
+            int Width = active.Size.Width + 6;\r
+            int Height = notifications.HasNext ? active.Size.Height + 20 : active.Size.Height + 6;\r
+            pnlDialog.Size = new Size(Width, Height);\r
+            pnlDialog.Top = 0;\r
+            pnlDialog.Left = pnlDialog.Parent.ClientSize.Width - Width;\r
+            btnDialogNextControl.BringToFront();\r
+        }\r
+\r
+        public void AddNotification(Control control)\r
+        {\r
+            this.Focus();\r
+            pnlDialog.Visible = true;\r
+\r
+            foreach (Control existing in notifications)\r
+            {\r
+                existing.Visible = false;\r
+            }\r
+\r
+            notifications.Add(control);\r
+            control.Visible = true;\r
+            control.Anchor = AnchorStyles.Top | AnchorStyles.Left;\r
+            control.Top = 3;\r
+            control.Left = 3;\r
+            pnlDialog.Controls.Add(control);\r
+            ResizeNotificationByControl(control);\r
+\r
+            btnDialogNextControl.Visible = notifications.Count > 1;\r
+        }\r
+\r
+        public void RemoveNotification(Control control)\r
+        {\r
+            pnlDialog.Controls.Remove(control);\r
+            notifications.Remove(control);\r
+            control.Dispose();\r
+\r
+            if (notifications.HasNext)\r
+            {\r
+                pnlDialog.Visible = true;\r
+                Control active = notifications.Next;\r
+                active.Visible = true;\r
+                ResizeNotificationByControl(active);\r
+            }\r
+            else\r
+            {\r
+                pnlDialog.Visible = false;\r
+            }\r
+\r
+            btnDialogNextControl.Visible = notifications.Count > 1;\r
+        }\r
+\r
+        private void btnDialogNextControl_Click(object sender, EventArgs e)\r
+        {\r
+            foreach (Control existing in notifications)\r
+            {\r
+                existing.Visible = false;\r
+            }\r
+\r
+            if (notifications.HasNext)\r
+            {\r
+                pnlDialog.Visible = true;\r
+                Control active = notifications.Next;\r
+                active.Visible = true;\r
+                ResizeNotificationByControl(active);\r
+            }\r
+            else\r
+            {\r
+                pnlDialog.Visible = false;\r
+            }\r
+\r
+        }\r
+        #endregion Notifications\r
     }\r
 }
\ No newline at end of file
diff --git a/Radegast/GUI/Dialogs/Objects.cs.mine b/Radegast/GUI/Dialogs/Objects.cs.mine
deleted file mode 100644 (file)
index 61cace2..0000000
+++ /dev/null
@@ -1,351 +0,0 @@
-using System;\r
-using System.Collections.Generic;\r
-using System.ComponentModel;\r
-using System.Data;\r
-using System.Drawing;\r
-using System.Text;\r
-using System.Windows.Forms;\r
-using libsecondlife;\r
-\r
-namespace SLeek\r
-{\r
-    public partial class frmObjects : Form\r
-    {\r
-        private SleekInstance instance;\r
-        private SecondLife client;\r
-        private float searchRadius = 35.0f;\r
-\r
-        private Dictionary<uint, ObjectsListItem> listItems = new Dictionary<uint,ObjectsListItem>();\r
-\r
-        public frmObjects(SleekInstance instance)\r
-        {\r
-            InitializeComponent();\r
-\r
-            this.instance = instance;\r
-            client = this.instance.Client;\r
-            \r
-            client.Network.OnDisconnected += new NetworkManager.DisconnectedCallback(Network_OnDisconnected);\r
-\r
-            btnPointAt.Text = (this.instance.State.IsPointing ? "Unpoint" : "Point At");\r
-            btnSitOn.Text = (this.instance.State.IsSitting ? "Stand Up" : "Sit On");\r
-        }\r
-\r
-        private void AddObjectEvents()\r
-        {\r
-            client.Objects.OnNewPrim += new ObjectManager.NewPrimCallback(Objects_OnNewPrim);\r
-            client.Objects.OnObjectKilled += new ObjectManager.KillObjectCallback(Objects_OnObjectKilled);\r
-        }\r
-\r
-        private void RemoveObjectEvents()\r
-        {\r
-            client.Objects.OnNewPrim -= new ObjectManager.NewPrimCallback(Objects_OnNewPrim);\r
-            client.Objects.OnObjectKilled -= new ObjectManager.KillObjectCallback(Objects_OnObjectKilled);\r
-        }\r
-\r
-        private void Network_OnDisconnected(NetworkManager.DisconnectType reason, string message)\r
-        {\r
-            this.Close();\r
-        }\r
-\r
-        private void lbxPrims_DrawItem(object sender, DrawItemEventArgs e)\r
-        {\r
-            e.DrawBackground();\r
-\r
-            if (e.Index < 0) return;\r
-\r
-            ObjectsListItem itemToDraw = (ObjectsListItem)lbxPrims.Items[e.Index];\r
-            Brush textBrush = null;\r
-            Font boldFont = new Font(e.Font, FontStyle.Bold);\r
-            Font regularFont = new Font(e.Font, FontStyle.Regular);\r
-\r
-            if ((e.State & DrawItemState.Selected) == DrawItemState.Selected)\r
-            {\r
-                textBrush = new SolidBrush(Color.FromKnownColor(KnownColor.HighlightText));\r
-            }\r
-            else\r
-            {\r
-                textBrush = new SolidBrush(Color.FromKnownColor(KnownColor.ControlText));\r
-            }\r
-\r
-            string name;\r
-            string description;\r
-            int distance = (int)LLVector3.Dist(itemToDraw.Prim.Position, client.Self.SimPosition);\r
-\r
-            if (string.IsNullOrEmpty(itemToDraw.Prim.PropertiesFamily.Name))\r
-            {\r
-                name = "... (" + distance.ToString() + "m)";\r
-                description = "...";\r
-            }\r
-            else\r
-            {\r
-                name = itemToDraw.Prim.PropertiesFamily.Name + " (" + distance.ToString() + "m)";\r
-                description = itemToDraw.Prim.PropertiesFamily.Description;\r
-            }\r
-\r
-            SizeF nameSize = e.Graphics.MeasureString(name, boldFont);\r
-            float nameX = e.Bounds.Left + 4;\r
-            float nameY = e.Bounds.Top + 2;\r
-\r
-            e.Graphics.DrawString(name, boldFont, textBrush, nameX, nameY);\r
-            e.Graphics.DrawString(description, regularFont, textBrush, nameX + nameSize.Width + 8, nameY);\r
-\r
-            e.DrawFocusRectangle();\r
-\r
-            boldFont.Dispose();\r
-            regularFont.Dispose();\r
-            textBrush.Dispose();\r
-            boldFont = null;\r
-            regularFont = null;\r
-            textBrush = null;\r
-        }\r
-\r
-        private void AddAllObjects()\r
-        {\r
-            LLVector3 location = client.Self.SimPosition;\r
-\r
-            client.Network.CurrentSim.ObjectsPrimitives.ForEach(\r
-                new Action<Primitive>(\r
-                delegate(Primitive prim)\r
-                {\r
-                    LLVector3 pos = prim.Position;\r
-    \r
-                    if (prim.ParentID == 0 && (pos != LLVector3.Zero) && (LLVector3.Dist(pos, location) < searchRadius)) //root prims only\r
-                    {\r
-                        ObjectsListItem item = new ObjectsListItem(prim, client, lbxPrims);\r
-                        try {\r
-                            listItems.Add(prim.LocalID, item);\r
-                            item.PropertiesReceived += new EventHandler(item_PropertiesReceived);\r
-                            item.RequestProperties();\r
-                        } catch {\r
-                        }\r
-                    }\r
-                }\r
-                ));\r
-        }\r
-\r
-        private void item_PropertiesReceived(object sender, EventArgs e)\r
-        {\r
-            lbxPrims.Items.Add(sender);\r
-        }\r
-\r
-        private void ResetObjects()\r
-        {\r
-            lbxPrims.Items.Clear();\r
-            listItems.Clear();\r
-            AddAllObjects();\r
-        }\r
-\r
-        private void frmObjects_Load(object sender, EventArgs e)\r
-        {\r
-            lbxPrims.BeginUpdate();\r
-\r
-            AddAllObjects();\r
-            AddObjectEvents();\r
-        }\r
-\r
-        //Separate thread\r
-        private void Objects_OnNewPrim(Simulator simulator, Primitive prim, ulong regionHandle, ushort timeDilation)\r
-        {\r
-            if (prim.ParentID != 0 || LLVector3.Dist(client.Self.SimPosition, prim.Position) > searchRadius) {\r
-                return;\r
-            }\r
-\r
-            lock (listItems)\r
-            {\r
-                if (listItems.ContainsKey(prim.LocalID)) return;\r
-\r
-                BeginInvoke(new MethodInvoker(delegate()\r
-                {\r
-                    ObjectsListItem item = new ObjectsListItem(prim, client, lbxPrims);\r
-                    try {\r
-                        listItems.Add(prim.LocalID, item);\r
-                        item.PropertiesReceived += new EventHandler(item_PropertiesReceived);\r
-                        item.RequestProperties();\r
-                    } catch {\r
-                    }\r
-\r
-                }));\r
-            }\r
-        }\r
-\r
-        //Separate thread\r
-        private void Objects_OnObjectKilled(Simulator simulator, uint objectID)\r
-        {\r
-            lock (listItems)\r
-            {\r
-                if (!listItems.ContainsKey(objectID)) return;\r
-\r
-                BeginInvoke(new MethodInvoker(delegate()\r
-                {\r
-                    ObjectsListItem item = listItems[objectID];\r
-                    lbxPrims.Items.Remove(item);\r
-                    listItems.Remove(objectID);\r
-                }));\r
-            }\r
-        }\r
-\r
-        private void lbxPrims_SelectedIndexChanged(object sender, EventArgs e)\r
-        {\r
-            gbxInworld.Enabled = (lbxPrims.SelectedItem != null);\r
-        }\r
-\r
-        private void btnPointAt_Click(object sender, EventArgs e)\r
-        {\r
-            ObjectsListItem item = lbxPrims.SelectedItem as ObjectsListItem;\r
-            if (item == null) return;\r
-\r
-            if (btnPointAt.Text == "Point At")\r
-            {\r
-                instance.State.SetPointing(true, item.Prim.ID);\r
-                btnPointAt.Text = "Unpoint";\r
-            }\r
-            else if (btnPointAt.Text == "Unpoint")\r
-            {\r
-                instance.State.SetPointing(false, item.Prim.ID);\r
-                btnPointAt.Text = "Point At";\r
-            }\r
-        }\r
-\r
-        private void btnSitOn_Click(object sender, EventArgs e)\r
-        {\r
-            ObjectsListItem item = lbxPrims.SelectedItem as ObjectsListItem;\r
-            if (item == null) return;\r
-\r
-            if (btnSitOn.Text == "Sit On")\r
-            {\r
-                instance.State.SetSitting(true, item.Prim.ID);\r
-                btnSitOn.Text = "Stand Up";\r
-            }\r
-            else if (btnSitOn.Text == "Stand Up")\r
-            {\r
-                instance.State.SetSitting(false, item.Prim.ID);\r
-                btnSitOn.Text = "Sit On";\r
-            }\r
-        }\r
-\r
-        private void btnTouch_Click(object sender, EventArgs e)\r
-        {\r
-            ObjectsListItem item = lbxPrims.SelectedItem as ObjectsListItem;\r
-            if (item == null) return;\r
-\r
-            client.Self.Touch(item.Prim.LocalID);\r
-        }\r
-\r
-        private void frmObjects_FormClosing(object sender, FormClosingEventArgs e)\r
-        {\r
-            RemoveObjectEvents();\r
-        }\r
-\r
-        private void txtSearch_TextChanged(object sender, EventArgs e)\r
-        {\r
-            string query = txtSearch.Text.Trim();\r
-\r
-            if (query.Length == 0)\r
-            {\r
-                lbxPrims.BeginUpdate();\r
-\r
-                RemoveObjectEvents();\r
-                ResetObjects();\r
-                AddObjectEvents();\r
-\r
-                lbxPrims.EndUpdate();\r
-            }\r
-            else\r
-            {\r
-                SearchFor(query);\r
-            }\r
-        }\r
-\r
-        private void SearchFor(string text)\r
-        {\r
-            RemoveObjectEvents();\r
-\r
-            lbxPrims.BeginUpdate();\r
-            lbxPrims.Items.Clear();\r
-            listItems.Clear();\r
-\r
-            string query = text.ToLower();\r
-\r
-            List<Primitive> results =\r
-                client.Network.CurrentSim.ObjectsPrimitives.FindAll(\r
-                new Predicate<Primitive>(delegate(Primitive prim)\r
-                {\r
-                    //evil comparison of death!\r
-                    return (prim.ParentID == 0 && prim.PropertiesFamily.Name != null) &&\r
-                        (prim.PropertiesFamily.Name.ToLower().Contains(query) ||\r
-                        prim.PropertiesFamily.Description.ToLower().Contains(query));\r
-                }));\r
-\r
-            lock (listItems)\r
-            {\r
-                foreach (Primitive prim in results)\r
-                {\r
-                    ObjectsListItem item = new ObjectsListItem(prim, client, lbxPrims);\r
-                    listItems.Add(prim.LocalID, item);\r
-                    lbxPrims.Items.Add(item);\r
-                }\r
-            }\r
-\r
-            lbxPrims.EndUpdate();\r
-        }\r
-\r
-        private void timer1_Tick(object sender, EventArgs e)\r
-        {\r
-            timer1.Enabled = false;\r
-\r
-            lblStatus.Visible = false;\r
-            lbxPrims.EndUpdate();\r
-            lbxPrims.Visible = true;\r
-            txtSearch.Enabled = true;\r
-        }\r
-\r
-        private void btnClear_Click(object sender, EventArgs e)\r
-        {\r
-            txtSearch.Clear();\r
-            txtSearch.Select();\r
-        }\r
-\r
-        private void btnClose_Click(object sender, EventArgs e)\r
-        {\r
-            this.Close();\r
-        }\r
-\r
-        private void btnRefresh_Click(object sender, EventArgs e)\r
-        {\r
-            AddAllObjects();\r
-        }\r
-\r
-        private void btnExport_Click(object sender, EventArgs e)\r
-        {\r
-            ObjectsListItem item = lbxPrims.SelectedItem as ObjectsListItem;\r
-            if (item == null) return;\r
-            PrimSerializer s = new PrimSerializer(client);\r
-        }\r
-\r
-        private void btnClone_Click(object sender, EventArgs e)\r
-        {\r
-            ObjectsListItem item = lbxPrims.SelectedItem as ObjectsListItem;\r
-            if (item == null) return;\r
-\r
-            System.Threading.Thread t = new System.Threading.Thread(new System.Threading.ThreadStart(delegate()\r
-            {\r
-                PrimSerializer s = new PrimSerializer(client);\r
-                PrimDeserializer d = new PrimDeserializer(client);\r
-                try {\r
-                    string primsXmls = s.GetSerializedPrims(item.Prim.ID);\r
-                    d.CreateObjectFromXml(primsXmls);\r
-                    MessageBox.Show("Successfully cloned object.", "Success", MessageBoxButtons.OK, MessageBoxIcon.Information);\r
-\r
-                } catch (Exception excp) {\r
-                    MessageBox.Show(excp.Message, "Cloning failed", MessageBoxButtons.OK, MessageBoxIcon.Error);\r
-                }\r
-\r
-                s = null;\r
-                d = null;\r
-            }\r
-            ));\r
-            t.IsBackground = true;\r
-            t.Start();\r
-        }\r
-    }\r
-}
\ No newline at end of file
diff --git a/Radegast/GUI/Notifications/FriendshipOfferNotification.Designer.cs b/Radegast/GUI/Notifications/FriendshipOfferNotification.Designer.cs
new file mode 100644 (file)
index 0000000..4b0186f
--- /dev/null
@@ -0,0 +1,117 @@
+namespace Radegast\r
+{\r
+    partial class ntfFriendshipOffer\r
+    {\r
+        /// <summary> \r
+        /// Required designer variable.\r
+        /// </summary>\r
+        private System.ComponentModel.IContainer components = null;\r
+\r
+        /// <summary> \r
+        /// Clean up any resources being used.\r
+        /// </summary>\r
+        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>\r
+        protected override void Dispose(bool disposing)\r
+        {\r
+            if (disposing && (components != null))\r
+            {\r
+                components.Dispose();\r
+            }\r
+            base.Dispose(disposing);\r
+        }\r
+\r
+        #region Component Designer generated code\r
+\r
+        /// <summary> \r
+        /// Required method for Designer support - do not modify \r
+        /// the contents of this method with the code editor.\r
+        /// </summary>\r
+        private void InitializeComponent()\r
+        {\r
+            this.btnNo = new System.Windows.Forms.Button();\r
+            this.btnYes = new System.Windows.Forms.Button();\r
+            this.txtMessage = new System.Windows.Forms.TextBox();\r
+            this.txtHead = new System.Windows.Forms.TextBox();\r
+            this.btnIgnore = new System.Windows.Forms.Button();\r
+            this.SuspendLayout();\r
+            // \r
+            // btnNo\r
+            // \r
+            this.btnNo.Location = new System.Drawing.Point(88, 94);\r
+            this.btnNo.Name = "btnNo";\r
+            this.btnNo.Size = new System.Drawing.Size(75, 23);\r
+            this.btnNo.TabIndex = 4;\r
+            this.btnNo.Text = "&No";\r
+            this.btnNo.UseVisualStyleBackColor = true;\r
+            this.btnNo.Click += new System.EventHandler(this.btnNo_Click);\r
+            // \r
+            // btnYes\r
+            // \r
+            this.btnYes.DialogResult = System.Windows.Forms.DialogResult.Yes;\r
+            this.btnYes.Location = new System.Drawing.Point(7, 94);\r
+            this.btnYes.Name = "btnYes";\r
+            this.btnYes.Size = new System.Drawing.Size(75, 23);\r
+            this.btnYes.TabIndex = 3;\r
+            this.btnYes.Text = "&Yes";\r
+            this.btnYes.UseVisualStyleBackColor = true;\r
+            this.btnYes.Click += new System.EventHandler(this.btnYes_Click);\r
+            // \r
+            // txtMessage\r
+            // \r
+            this.txtMessage.BorderStyle = System.Windows.Forms.BorderStyle.None;\r
+            this.txtMessage.Location = new System.Drawing.Point(7, 54);\r
+            this.txtMessage.Multiline = true;\r
+            this.txtMessage.Name = "txtMessage";\r
+            this.txtMessage.ReadOnly = true;\r
+            this.txtMessage.Size = new System.Drawing.Size(244, 34);\r
+            this.txtMessage.TabIndex = 6;\r
+            this.txtMessage.TabStop = false;\r
+            this.txtMessage.Text = "Will you be my friend?";\r
+            // \r
+            // txtHead\r
+            // \r
+            this.txtHead.BorderStyle = System.Windows.Forms.BorderStyle.None;\r
+            this.txtHead.Location = new System.Drawing.Point(7, 14);\r
+            this.txtHead.Multiline = true;\r
+            this.txtHead.Name = "txtHead";\r
+            this.txtHead.ReadOnly = true;\r
+            this.txtHead.Size = new System.Drawing.Size(244, 34);\r
+            this.txtHead.TabIndex = 5;\r
+            this.txtHead.TabStop = false;\r
+            this.txtHead.Text = "First Last has offered you friendship.";\r
+            // \r
+            // btnIgnore\r
+            // \r
+            this.btnIgnore.Location = new System.Drawing.Point(169, 94);\r
+            this.btnIgnore.Name = "btnIgnore";\r
+            this.btnIgnore.Size = new System.Drawing.Size(75, 23);\r
+            this.btnIgnore.TabIndex = 4;\r
+            this.btnIgnore.Text = "&Ignore";\r
+            this.btnIgnore.UseVisualStyleBackColor = true;\r
+            this.btnIgnore.Click += new System.EventHandler(this.btnIgnore_Click);\r
+            // \r
+            // ntfFriendshopOffer\r
+            // \r
+            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);\r
+            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;\r
+            this.Controls.Add(this.btnIgnore);\r
+            this.Controls.Add(this.btnNo);\r
+            this.Controls.Add(this.btnYes);\r
+            this.Controls.Add(this.txtMessage);\r
+            this.Controls.Add(this.txtHead);\r
+            this.Name = "ntfFriendshopOffer";\r
+            this.Size = new System.Drawing.Size(263, 131);\r
+            this.ResumeLayout(false);\r
+            this.PerformLayout();\r
+\r
+        }\r
+\r
+        #endregion\r
+\r
+        private System.Windows.Forms.Button btnNo;\r
+        private System.Windows.Forms.Button btnYes;\r
+        private System.Windows.Forms.TextBox txtMessage;\r
+        private System.Windows.Forms.TextBox txtHead;\r
+        private System.Windows.Forms.Button btnIgnore;\r
+    }\r
+}\r
diff --git a/Radegast/GUI/Notifications/FriendshipOfferNotification.cs b/Radegast/GUI/Notifications/FriendshipOfferNotification.cs
new file mode 100644 (file)
index 0000000..0c63688
--- /dev/null
@@ -0,0 +1,48 @@
+using System;\r
+using System.Collections.Generic;\r
+using System.ComponentModel;\r
+using System.Drawing;\r
+using System.Data;\r
+using System.Linq;\r
+using System.Text;\r
+using System.Windows.Forms;\r
+using OpenMetaverse;\r
+\r
+namespace Radegast\r
+{\r
+    public partial class ntfFriendshipOffer : UserControl\r
+    {\r
+        private RadegastInstance instance;\r
+        private InstantMessage msg;\r
+\r
+        public ntfFriendshipOffer(RadegastInstance instance, InstantMessage msg)\r
+        {\r
+            InitializeComponent();\r
+            this.instance = instance;\r
+            this.msg = msg;\r
+\r
+            txtHead.BackColor = instance.MainForm.NotificationBackground;\r
+            txtHead.Text = String.Format("{0} has offered you friendship.", msg.FromAgentName);\r
+            txtMessage.BackColor = instance.MainForm.NotificationBackground;\r
+            txtMessage.Text = msg.Message;\r
+            btnYes.Focus();\r
+        }\r
+\r
+        private void btnYes_Click(object sender, EventArgs e)\r
+        {\r
+            instance.Client.Friends.AcceptFriendship(msg.FromAgentID, msg.IMSessionID);\r
+            instance.MainForm.RemoveNotification(this);\r
+        }\r
+\r
+        private void btnNo_Click(object sender, EventArgs e)\r
+        {\r
+            instance.Client.Friends.DeclineFriendship(msg.FromAgentID, msg.IMSessionID);\r
+            instance.MainForm.RemoveNotification(this);\r
+        }\r
+\r
+        private void btnIgnore_Click(object sender, EventArgs e)\r
+        {\r
+            instance.MainForm.RemoveNotification(this);\r
+        }\r
+    }\r
+}\r
diff --git a/Radegast/GUI/Notifications/TeleportNotification.Designer.cs b/Radegast/GUI/Notifications/TeleportNotification.Designer.cs
new file mode 100644 (file)
index 0000000..7354756
--- /dev/null
@@ -0,0 +1,103 @@
+namespace Radegast\r
+{\r
+    partial class ntfTeleport\r
+    {\r
+        /// <summary> \r
+        /// Required designer variable.\r
+        /// </summary>\r
+        private System.ComponentModel.IContainer components = null;\r
+\r
+        /// <summary> \r
+        /// Clean up any resources being used.\r
+        /// </summary>\r
+        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>\r
+        protected override void Dispose(bool disposing)\r
+        {\r
+            if (disposing && (components != null))\r
+            {\r
+                components.Dispose();\r
+            }\r
+            base.Dispose(disposing);\r
+        }\r
+\r
+        #region Component Designer generated code\r
+\r
+        /// <summary> \r
+        /// Required method for Designer support - do not modify \r
+        /// the contents of this method with the code editor.\r
+        /// </summary>\r
+        private void InitializeComponent()\r
+        {\r
+            this.btnTeleport = new System.Windows.Forms.Button();\r
+            this.btnCancel = new System.Windows.Forms.Button();\r
+            this.txtHead = new System.Windows.Forms.TextBox();\r
+            this.txtMessage = new System.Windows.Forms.TextBox();\r
+            this.SuspendLayout();\r
+            // \r
+            // btnTeleport\r
+            // \r
+            this.btnTeleport.Location = new System.Drawing.Point(11, 106);\r
+            this.btnTeleport.Name = "btnTeleport";\r
+            this.btnTeleport.Size = new System.Drawing.Size(75, 23);\r
+            this.btnTeleport.TabIndex = 0;\r
+            this.btnTeleport.Text = "Teleport";\r
+            this.btnTeleport.UseVisualStyleBackColor = true;\r
+            this.btnTeleport.Click += new System.EventHandler(this.btnTeleport_Click);\r
+            // \r
+            // btnCancel\r
+            // \r
+            this.btnCancel.Location = new System.Drawing.Point(92, 106);\r
+            this.btnCancel.Name = "btnCancel";\r
+            this.btnCancel.Size = new System.Drawing.Size(75, 23);\r
+            this.btnCancel.TabIndex = 1;\r
+            this.btnCancel.Text = "Cancel";\r
+            this.btnCancel.UseVisualStyleBackColor = true;\r
+            this.btnCancel.Click += new System.EventHandler(this.btnCancel_Click);\r
+            // \r
+            // txtHead\r
+            // \r
+            this.txtHead.BorderStyle = System.Windows.Forms.BorderStyle.None;\r
+            this.txtHead.Location = new System.Drawing.Point(11, 11);\r
+            this.txtHead.Multiline = true;\r
+            this.txtHead.Name = "txtHead";\r
+            this.txtHead.ReadOnly = true;\r
+            this.txtHead.Size = new System.Drawing.Size(256, 34);\r
+            this.txtHead.TabIndex = 2;\r
+            this.txtHead.TabStop = false;\r
+            this.txtHead.Text = "First Last has offered to teleport you to their location.";\r
+            // \r
+            // txtMessage\r
+            // \r
+            this.txtMessage.BorderStyle = System.Windows.Forms.BorderStyle.None;\r
+            this.txtMessage.Location = new System.Drawing.Point(11, 51);\r
+            this.txtMessage.Multiline = true;\r
+            this.txtMessage.Name = "txtMessage";\r
+            this.txtMessage.ReadOnly = true;\r
+            this.txtMessage.Size = new System.Drawing.Size(256, 34);\r
+            this.txtMessage.TabIndex = 3;\r
+            this.txtMessage.TabStop = false;\r
+            this.txtMessage.Text = "Join me in Perun";\r
+            // \r
+            // ntfTeleport\r
+            // \r
+            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);\r
+            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;\r
+            this.Controls.Add(this.txtMessage);\r
+            this.Controls.Add(this.txtHead);\r
+            this.Controls.Add(this.btnCancel);\r
+            this.Controls.Add(this.btnTeleport);\r
+            this.Name = "ntfTeleport";\r
+            this.Size = new System.Drawing.Size(275, 137);\r
+            this.ResumeLayout(false);\r
+            this.PerformLayout();\r
+\r
+        }\r
+\r
+        #endregion\r
+\r
+        private System.Windows.Forms.Button btnTeleport;\r
+        private System.Windows.Forms.Button btnCancel;\r
+        private System.Windows.Forms.TextBox txtHead;\r
+        private System.Windows.Forms.TextBox txtMessage;\r
+    }\r
+}\r
diff --git a/Radegast/GUI/Notifications/TeleportNotification.cs b/Radegast/GUI/Notifications/TeleportNotification.cs
new file mode 100644 (file)
index 0000000..9bda446
--- /dev/null
@@ -0,0 +1,43 @@
+using System;\r
+using System.Collections.Generic;\r
+using System.ComponentModel;\r
+using System.Drawing;\r
+using System.Data;\r
+using System.Linq;\r
+using System.Text;\r
+using System.Windows.Forms;\r
+using OpenMetaverse;\r
+\r
+namespace Radegast\r
+{\r
+    public partial class ntfTeleport : UserControl\r
+    {\r
+        private RadegastInstance instance;\r
+        private InstantMessage msg;\r
+\r
+        public ntfTeleport(RadegastInstance instance, InstantMessage msg)\r
+        {\r
+            InitializeComponent();\r
+            this.instance = instance;\r
+            this.msg = msg;\r
+\r
+            txtHead.BackColor = instance.MainForm.NotificationBackground;\r
+            txtHead.Text = String.Format("{0} has offered to teleport you to their location.", msg.FromAgentName);\r
+            txtMessage.BackColor = instance.MainForm.NotificationBackground;\r
+            txtMessage.Text = msg.Message;\r
+            btnTeleport.Focus();\r
+        }\r
+\r
+        private void btnTeleport_Click(object sender, EventArgs e)\r
+        {\r
+            instance.Client.Self.TeleportLureRespond(msg.FromAgentID, true);\r
+            instance.MainForm.RemoveNotification(this);\r
+        }\r
+\r
+        private void btnCancel_Click(object sender, EventArgs e)\r
+        {\r
+            instance.Client.Self.TeleportLureRespond(msg.FromAgentID, false);\r
+            instance.MainForm.RemoveNotification(this);\r
+        }\r
+    }\r
+}\r
   <resheader name="writer">\r
     <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\r
   </resheader>\r
-  <metadata name="toolStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">\r
-    <value>17, 17</value>\r
-  </metadata>\r
 </root>
\ No newline at end of file
index 759b3e1..3a21a9b 100644 (file)
     <Compile Include="Core\Tabs\ISleekTabControl.cs" />\r
     <Compile Include="Core\Tabs\SleekTab.cs" />\r
     <Compile Include="Core\Tabs\SleekTabEvents.cs" />\r
+    <Compile Include="Core\Types\CircularList.cs" />\r
     <Compile Include="Core\WebBrowser2.cs">\r
       <SubType>Component</SubType>\r
     </Compile>\r
     <Compile Include="GUI\Consoles\TabsConsole.Designer.cs">\r
       <DependentUpon>TabsConsole.cs</DependentUpon>\r
     </Compile>\r
-    <Compile Include="GUI\Dialogs\FriendshipOfferDialog.cs">\r
-      <SubType>Form</SubType>\r
-    </Compile>\r
-    <Compile Include="GUI\Dialogs\FriendshipOfferDialog.Designer.cs">\r
-      <DependentUpon>FriendshipOfferDialog.cs</DependentUpon>\r
-    </Compile>\r
     <Compile Include="GUI\Dialogs\GroupInvitationDialog.cs">\r
       <SubType>Form</SubType>\r
     </Compile>\r
       <DependentUpon>MainForm.cs</DependentUpon>\r
     </Compile>\r
     <Compile Include="Core\RichTextBoxPrinter.cs" />\r
-    <Compile Include="GUI\Consoles\TPTabWindow.cs">\r
+    <Compile Include="GUI\Notifications\FriendshipOfferNotification.cs">\r
+      <SubType>UserControl</SubType>\r
+    </Compile>\r
+    <Compile Include="GUI\Notifications\FriendshipOfferNotification.Designer.cs">\r
+      <DependentUpon>FriendshipOfferNotification.cs</DependentUpon>\r
+    </Compile>\r
+    <Compile Include="GUI\Notifications\TeleportNotification.cs">\r
       <SubType>UserControl</SubType>\r
     </Compile>\r
-    <Compile Include="GUI\Consoles\TPTabWindow.Designer.cs">\r
-      <DependentUpon>TPTabWindow.cs</DependentUpon>\r
+    <Compile Include="GUI\Notifications\TeleportNotification.Designer.cs">\r
+      <DependentUpon>TeleportNotification.cs</DependentUpon>\r
     </Compile>\r
     <Compile Include="Program.cs" />\r
     <Compile Include="Properties\AssemblyInfo.cs" />\r
       <SubType>Designer</SubType>\r
       <DependentUpon>MainConsole.cs</DependentUpon>\r
     </EmbeddedResource>\r
-    <EmbeddedResource Include="GUI\Dialogs\FriendshipOfferDialog.resx">\r
-      <DependentUpon>FriendshipOfferDialog.cs</DependentUpon>\r
-      <SubType>Designer</SubType>\r
-    </EmbeddedResource>\r
     <EmbeddedResource Include="GUI\Dialogs\GroupInvitationDialog.resx">\r
       <DependentUpon>GroupInvitationDialog.cs</DependentUpon>\r
       <SubType>Designer</SubType>\r
       <SubType>Designer</SubType>\r
       <DependentUpon>Teleport.cs</DependentUpon>\r
     </EmbeddedResource>\r
-    <EmbeddedResource Include="GUI\Consoles\TPTabWindow.resx">\r
+    <EmbeddedResource Include="GUI\Notifications\FriendshipOfferNotification.resx">\r
+      <DependentUpon>FriendshipOfferNotification.cs</DependentUpon>\r
+      <SubType>Designer</SubType>\r
+    </EmbeddedResource>\r
+    <EmbeddedResource Include="GUI\Notifications\TeleportNotification.resx">\r
+      <DependentUpon>TeleportNotification.cs</DependentUpon>\r
       <SubType>Designer</SubType>\r
-      <DependentUpon>TPTabWindow.cs</DependentUpon>\r
     </EmbeddedResource>\r
     <EmbeddedResource Include="Properties\Resources.resx">\r
       <Generator>PublicResXFileCodeGenerator</Generator>\r