private void AttachmentDetail_Load(object sender, EventArgs e)\r
{\r
boxID.Text = attachment.ID.ToString();\r
- client.Objects.SelectObject(client.Network.CurrentSim, attachment.LocalID);\r
+\r
+ if (attachment.Properties == null)\r
+ {\r
+ client.Objects.SelectObject(client.Network.CurrentSim, attachment.LocalID);\r
+ }\r
+ else\r
+ {\r
+ UpdateControls();\r
+ }\r
}\r
\r
private void UpdateControls()\r
{\r
if (InvokeRequired) {\r
- Invoke(new MethodInvoker(delegate()\r
- {\r
- UpdateControls();\r
- }));\r
+ Invoke(new MethodInvoker(UpdateControls));\r
return;\r
}\r
+\r
lblAttachmentPoint.Text = attachment.PrimData.AttachmentPoint.ToString();\r
boxName.Text = attachment.Properties.Name;\r
\r
/// </summary>\r
private void InitializeComponent()\r
{\r
+ this.pnlControls = new System.Windows.Forms.Panel();\r
+ this.btnRefresh = new System.Windows.Forms.Button();\r
+ this.pnlControls.SuspendLayout();\r
this.SuspendLayout();\r
// \r
+ // pnlControls\r
+ // \r
+ this.pnlControls.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)\r
+ | System.Windows.Forms.AnchorStyles.Right)));\r
+ this.pnlControls.Controls.Add(this.btnRefresh);\r
+ this.pnlControls.Location = new System.Drawing.Point(0, 0);\r
+ this.pnlControls.Name = "pnlControls";\r
+ this.pnlControls.Size = new System.Drawing.Size(150, 30);\r
+ this.pnlControls.TabIndex = 0;\r
+ // \r
+ // btnRefresh\r
+ // \r
+ this.btnRefresh.Location = new System.Drawing.Point(3, 3);\r
+ this.btnRefresh.Name = "btnRefresh";\r
+ this.btnRefresh.Size = new System.Drawing.Size(75, 23);\r
+ this.btnRefresh.TabIndex = 0;\r
+ this.btnRefresh.Text = "&Refresh";\r
+ this.btnRefresh.UseVisualStyleBackColor = true;\r
+ this.btnRefresh.Click += new System.EventHandler(this.btnRefresh_Click);\r
+ // \r
// AttachmentTab\r
// \r
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);\r
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;\r
this.AutoScroll = true;\r
+ this.Controls.Add(this.pnlControls);\r
this.Name = "AttachmentTab";\r
this.Load += new System.EventHandler(this.AttachmentTab_Load);\r
+ this.pnlControls.ResumeLayout(false);\r
this.ResumeLayout(false);\r
\r
}\r
\r
#endregion\r
+\r
+ private System.Windows.Forms.Panel pnlControls;\r
+ private System.Windows.Forms.Button btnRefresh;\r
}\r
}\r
\r
private void AttachmentTab_Load(object sender, EventArgs e)\r
{\r
+ RefreshList();\r
+ }\r
+\r
+ private void RefreshList()\r
+ {\r
List<Primitive> attachments = client.Network.CurrentSim.ObjectsPrimitives.FindAll(\r
delegate(Primitive prim)\r
{\r
}\r
);\r
\r
- Controls.Clear();\r
+ List<Control> toRemove = new List<Control>();\r
+\r
+ foreach (Control c in Controls)\r
+ {\r
+ if (c is AttachmentDetail)\r
+ {\r
+ toRemove.Add(c);\r
+ }\r
+ }\r
+\r
+ for (int i = 0; i < toRemove.Count; i++)\r
+ {\r
+ Controls.Remove(toRemove[i]);\r
+ toRemove[i].Dispose();\r
+ }\r
+\r
List<UUID> added = new List<UUID>();\r
\r
int n = 0;\r
- foreach (Primitive prim in attachments) {\r
- if (!added.Contains(prim.ID)) {\r
+ foreach (Primitive prim in attachments)\r
+ {\r
+ if (!added.Contains(prim.ID))\r
+ {\r
AttachmentDetail ad = new AttachmentDetail(instance, av, prim);\r
- ad.Location = new Point(0, n++ * ad.Height);\r
- ad.Dock = DockStyle.Top;\r
+ ad.Location = new Point(0, pnlControls.Height + n * ad.Height);\r
+ ad.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right;\r
+ ad.Width = ClientSize.Width;\r
Controls.Add(ad);\r
added.Add(prim.ID);\r
+ n++;\r
}\r
}\r
\r
AutoScrollPosition = new Point(0, 0);\r
}\r
+\r
+ private void btnRefresh_Click(object sender, EventArgs e)\r
+ {\r
+ RefreshList();\r
+ }\r
}\r
}\r