Commits

Alban Nanty committed 68e2704

+ write the code for the new options in the part lib global option tab
+ add the bubble info options in the settings
| make the part lib option to display the bubble info a global option for all the part lib tab

  • Participants
  • Parent commits 777badd

Comments (0)

Files changed (7)

File BlueBrick/GlobalOptionsForm.Designer.cs

 			this.label15 = new System.Windows.Forms.Label();
 			this.colorSchemeComboBox = new System.Windows.Forms.ComboBox();
 			this.partLibTabPage = new System.Windows.Forms.TabPage();
+			this.groupBox13 = new System.Windows.Forms.GroupBox();
+			this.label26 = new System.Windows.Forms.Label();
+			this.PartLibBackColorPictureBox = new System.Windows.Forms.PictureBox();
+			this.groupBox12 = new System.Windows.Forms.GroupBox();
+			this.displayPartDescriptionCheckBox = new System.Windows.Forms.CheckBox();
+			this.displayPartColorCheckBox = new System.Windows.Forms.CheckBox();
+			this.displayPartIDCheckBox = new System.Windows.Forms.CheckBox();
+			this.displayBubbleInfoCheckBox = new System.Windows.Forms.CheckBox();
 			this.groupBox11 = new System.Windows.Forms.GroupBox();
 			this.alphabeticOrderButton = new System.Windows.Forms.Button();
 			this.PartLibTabListBox = new System.Windows.Forms.ListBox();
 			((System.ComponentModel.ISupportInitialize)(this.gridColorPictureBox)).BeginInit();
 			((System.ComponentModel.ISupportInitialize)(this.backgroundColorPictureBox)).BeginInit();
 			this.partLibTabPage.SuspendLayout();
+			this.groupBox13.SuspendLayout();
+			((System.ComponentModel.ISupportInitialize)(this.PartLibBackColorPictureBox)).BeginInit();
+			this.groupBox12.SuspendLayout();
 			this.groupBox11.SuspendLayout();
 			this.shortcutKeysTabPage.SuspendLayout();
 			((System.ComponentModel.ISupportInitialize)(this.numericUpDown1)).BeginInit();
 			// 
 			// partLibTabPage
 			// 
+			this.partLibTabPage.Controls.Add(this.groupBox13);
+			this.partLibTabPage.Controls.Add(this.groupBox12);
 			this.partLibTabPage.Controls.Add(this.groupBox11);
 			resources.ApplyResources(this.partLibTabPage, "partLibTabPage");
 			this.partLibTabPage.Name = "partLibTabPage";
 			this.partLibTabPage.UseVisualStyleBackColor = true;
 			// 
+			// groupBox13
+			// 
+			this.groupBox13.Controls.Add(this.label26);
+			this.groupBox13.Controls.Add(this.PartLibBackColorPictureBox);
+			resources.ApplyResources(this.groupBox13, "groupBox13");
+			this.groupBox13.Name = "groupBox13";
+			this.groupBox13.TabStop = false;
+			// 
+			// label26
+			// 
+			resources.ApplyResources(this.label26, "label26");
+			this.label26.Name = "label26";
+			// 
+			// PartLibBackColorPictureBox
+			// 
+			this.PartLibBackColorPictureBox.BackColor = System.Drawing.Color.White;
+			this.PartLibBackColorPictureBox.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
+			resources.ApplyResources(this.PartLibBackColorPictureBox, "PartLibBackColorPictureBox");
+			this.PartLibBackColorPictureBox.Name = "PartLibBackColorPictureBox";
+			this.PartLibBackColorPictureBox.TabStop = false;
+			this.PartLibBackColorPictureBox.Click += new System.EventHandler(this.PartLibBackColorPictureBox_Click);
+			// 
+			// groupBox12
+			// 
+			this.groupBox12.Controls.Add(this.displayPartDescriptionCheckBox);
+			this.groupBox12.Controls.Add(this.displayPartColorCheckBox);
+			this.groupBox12.Controls.Add(this.displayPartIDCheckBox);
+			this.groupBox12.Controls.Add(this.displayBubbleInfoCheckBox);
+			resources.ApplyResources(this.groupBox12, "groupBox12");
+			this.groupBox12.Name = "groupBox12";
+			this.groupBox12.TabStop = false;
+			// 
+			// displayPartDescriptionCheckBox
+			// 
+			resources.ApplyResources(this.displayPartDescriptionCheckBox, "displayPartDescriptionCheckBox");
+			this.displayPartDescriptionCheckBox.Checked = true;
+			this.displayPartDescriptionCheckBox.CheckState = System.Windows.Forms.CheckState.Checked;
+			this.displayPartDescriptionCheckBox.Name = "displayPartDescriptionCheckBox";
+			this.displayPartDescriptionCheckBox.UseVisualStyleBackColor = true;
+			// 
+			// displayPartColorCheckBox
+			// 
+			resources.ApplyResources(this.displayPartColorCheckBox, "displayPartColorCheckBox");
+			this.displayPartColorCheckBox.Name = "displayPartColorCheckBox";
+			this.displayPartColorCheckBox.UseVisualStyleBackColor = true;
+			// 
+			// displayPartIDCheckBox
+			// 
+			resources.ApplyResources(this.displayPartIDCheckBox, "displayPartIDCheckBox");
+			this.displayPartIDCheckBox.Name = "displayPartIDCheckBox";
+			this.displayPartIDCheckBox.UseVisualStyleBackColor = true;
+			// 
+			// displayBubbleInfoCheckBox
+			// 
+			resources.ApplyResources(this.displayBubbleInfoCheckBox, "displayBubbleInfoCheckBox");
+			this.displayBubbleInfoCheckBox.Name = "displayBubbleInfoCheckBox";
+			this.displayBubbleInfoCheckBox.UseVisualStyleBackColor = true;
+			this.displayBubbleInfoCheckBox.CheckedChanged += new System.EventHandler(this.displayBubbleInfoCheckBox_CheckedChanged);
+			// 
 			// groupBox11
 			// 
 			this.groupBox11.Controls.Add(this.alphabeticOrderButton);
 			((System.ComponentModel.ISupportInitialize)(this.gridColorPictureBox)).EndInit();
 			((System.ComponentModel.ISupportInitialize)(this.backgroundColorPictureBox)).EndInit();
 			this.partLibTabPage.ResumeLayout(false);
+			this.groupBox13.ResumeLayout(false);
+			((System.ComponentModel.ISupportInitialize)(this.PartLibBackColorPictureBox)).EndInit();
+			this.groupBox12.ResumeLayout(false);
+			this.groupBox12.PerformLayout();
 			this.groupBox11.ResumeLayout(false);
 			this.shortcutKeysTabPage.ResumeLayout(false);
 			this.shortcutKeysTabPage.PerformLayout();
 		private System.Windows.Forms.ListBox PartLibTabListBox;
 		private System.Windows.Forms.Button MoveDownButton;
 		private System.Windows.Forms.Button alphabeticOrderButton;
+		private System.Windows.Forms.GroupBox groupBox12;
+		private System.Windows.Forms.CheckBox displayBubbleInfoCheckBox;
+		private System.Windows.Forms.CheckBox displayPartDescriptionCheckBox;
+		private System.Windows.Forms.CheckBox displayPartColorCheckBox;
+		private System.Windows.Forms.CheckBox displayPartIDCheckBox;
+		private System.Windows.Forms.GroupBox groupBox13;
+		private System.Windows.Forms.Label label26;
+		private System.Windows.Forms.PictureBox PartLibBackColorPictureBox;
 	}
 }

File BlueBrick/GlobalOptionsForm.cs

 
 			// -- tab part lib
 			fillPartLibraryListBox(isForResetingDefaultSetting);
+			this.PartLibBackColorPictureBox.BackColor = Settings.Default.PartLibBackColor;
+			this.displayPartIDCheckBox.Checked = Settings.Default.PartLibBubbleInfoPartID;
+			this.displayPartColorCheckBox.Checked = Settings.Default.PartLibBubbleInfoPartColor;
+			this.displayPartDescriptionCheckBox.Checked = Settings.Default.PartLibBubbleInfoPartDescription;
+			this.displayBubbleInfoCheckBox.Checked = Settings.Default.PartLibDisplayBubbleInfo;
 
 			// -- tab shortcut key
 			// init the list view
 
 		private void copySettings(Settings destination, Settings source)
 		{
+			// general
 			destination.AddBrickLayerOnNewMap = source.AddBrickLayerOnNewMap;
 			destination.AddGridLayerOnNewMap = source.AddGridLayerOnNewMap;
 			destination.DefaultBackgroundColor = source.DefaultBackgroundColor;
 			destination.DefaultAuthor = source.DefaultAuthor.Clone() as string;
-			destination.DefaultGridColor = source.DefaultGridColor;
-			destination.DefaultGridSize = source.DefaultGridSize;
 			destination.DefaultLUG = source.DefaultLUG.Clone() as string;
 			destination.DefaultShow = source.DefaultShow.Clone() as string;
-			destination.DefaultSubDivisionNumber = source.DefaultSubDivisionNumber;
-			destination.DefaultSubGridColor = source.DefaultSubGridColor;
-			destination.DefaultTextColor = source.DefaultTextColor;
-			destination.DefaultTextFont = source.DefaultTextFont.Clone() as Font;
 			destination.Language = source.Language.Clone() as string;
 			destination.MouseMultipleSelectionKey = source.MouseMultipleSelectionKey;
 			destination.UndoStackDepth = source.UndoStackDepth;
 			destination.UndoStackDisplayedDepth = source.UndoStackDisplayedDepth;
 			destination.WheelMouseIsZoomOnCursor = source.WheelMouseIsZoomOnCursor;
 			destination.WheelMouseZoomSpeed = source.WheelMouseZoomSpeed;
+			destination.StartSavedMipmapLevel = source.StartSavedMipmapLevel;
+			destination.MaxRecentFilesNum = source.MaxRecentFilesNum;
+			// appearance
 			destination.DefaultAreaTransparency = source.DefaultAreaTransparency;
 			destination.DefaultAreaSize = source.DefaultAreaSize;
 			destination.DisplayFreeConnexionPoints = source.DisplayFreeConnexionPoints;
 			destination.GammaForSelection = source.GammaForSelection;
 			destination.GammaForSnappingPart = source.GammaForSnappingPart;
-			destination.StartSavedMipmapLevel = source.StartSavedMipmapLevel;
-			destination.MaxRecentFilesNum = source.MaxRecentFilesNum;
+			destination.DefaultGridColor = source.DefaultGridColor;
+			destination.DefaultGridSize = source.DefaultGridSize;
+			destination.DefaultSubDivisionNumber = source.DefaultSubDivisionNumber;
+			destination.DefaultSubGridColor = source.DefaultSubGridColor;
+			destination.DefaultTextColor = source.DefaultTextColor;
+			destination.DefaultTextFont = source.DefaultTextFont.Clone() as Font;
+			// part lib
 			destination.PartLibTabOrder = new System.Collections.Specialized.StringCollection();
 			foreach (string text in source.PartLibTabOrder)
 				destination.PartLibTabOrder.Add(text.Clone() as string);
+			destination.PartLibBackColor = source.PartLibBackColor;
+			destination.PartLibBubbleInfoPartID = source.PartLibBubbleInfoPartID;
+			destination.PartLibBubbleInfoPartColor = source.PartLibBubbleInfoPartColor;
+			destination.PartLibBubbleInfoPartDescription = source.PartLibBubbleInfoPartDescription;
+			destination.PartLibDisplayBubbleInfo = source.PartLibDisplayBubbleInfo;
+			// shortcut
 			destination.ShortcutKey = new System.Collections.Specialized.StringCollection();
 			foreach (string text in source.ShortcutKey)
 				destination.ShortcutKey.Add(text.Clone() as string);
 
 			// -- tab PartLib
 			savePartLibraryTabOrderAndSortThem();
+			Settings.Default.PartLibBackColor = this.PartLibBackColorPictureBox.BackColor;
+			Settings.Default.PartLibBubbleInfoPartID = this.displayPartIDCheckBox.Checked;
+			Settings.Default.PartLibBubbleInfoPartColor = this.displayPartColorCheckBox.Checked;
+			Settings.Default.PartLibBubbleInfoPartDescription = this.displayPartDescriptionCheckBox.Checked;
+			Settings.Default.PartLibDisplayBubbleInfo = this.displayBubbleInfoCheckBox.Checked;
+			// call the function on the part lib to reflect the change
+			BlueBrick.MainForm.Instance.PartsTabControl.updateAppearanceAccordingToSettings();
 
 			// -- tab shortcut key
 			// save the list view
 			// iterate on the list in the control
 			foreach (object item in this.PartLibTabListBox.Items)
 				Settings.Default.PartLibTabOrder.Add(item as string);
-
-			// call the function on the part lib to sort the names
-			BlueBrick.MainForm.Instance.PartsTabControl.sortTabsAccordingToSettings();
 		}
 
 		private void MoveUpButton_Click(object sender, EventArgs e)
 			this.PartLibTabListBox.Sorted = true;
 			this.PartLibTabListBox.Sorted = false;
 		}
+
+		private void displayBubbleInfoCheckBox_CheckedChanged(object sender, EventArgs e)
+		{
+			bool isEnabled = this.displayBubbleInfoCheckBox.Checked;
+			this.displayPartIDCheckBox.Enabled = isEnabled;
+			this.displayPartColorCheckBox.Enabled = isEnabled;
+			this.displayPartDescriptionCheckBox.Enabled = isEnabled;
+		}
+
+		private void PartLibBackColorPictureBox_Click(object sender, EventArgs e)
+		{
+			// set the color with the current back color of the picture box
+			this.colorDialog.Color = PartLibBackColorPictureBox.BackColor;
+			// open the color box in modal
+			DialogResult result = this.colorDialog.ShowDialog(this);
+			if (result == DialogResult.OK)
+			{
+				// if the user choose a color, set it back in the back color of the picture box
+				PartLibBackColorPictureBox.BackColor = this.colorDialog.Color;
+			}
+		}
 		#endregion
 
 		#region tab Shortcut key

File BlueBrick/GlobalOptionsForm.resx

   <data name="&gt;&gt;appearanceTabPage.ZOrder" xml:space="preserve">
     <value>1</value>
   </data>
+  <data name="label26.ImageAlign" type="System.Drawing.ContentAlignment, System.Drawing">
+    <value>MiddleLeft</value>
+  </data>
+  <data name="label26.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
+    <value>NoControl</value>
+  </data>
+  <data name="label26.Location" type="System.Drawing.Point, System.Drawing">
+    <value>41, 28</value>
+  </data>
+  <data name="label26.Size" type="System.Drawing.Size, System.Drawing">
+    <value>241, 13</value>
+  </data>
+  <data name="label26.TabIndex" type="System.Int32, mscorlib">
+    <value>17</value>
+  </data>
+  <data name="label26.Text" xml:space="preserve">
+    <value>Part Library Background Color</value>
+  </data>
+  <data name="label26.TextAlign" type="System.Drawing.ContentAlignment, System.Drawing">
+    <value>MiddleLeft</value>
+  </data>
+  <data name="&gt;&gt;label26.Name" xml:space="preserve">
+    <value>label26</value>
+  </data>
+  <data name="&gt;&gt;label26.Type" xml:space="preserve">
+    <value>System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </data>
+  <data name="&gt;&gt;label26.Parent" xml:space="preserve">
+    <value>groupBox13</value>
+  </data>
+  <data name="&gt;&gt;label26.ZOrder" xml:space="preserve">
+    <value>0</value>
+  </data>
+  <data name="PartLibBackColorPictureBox.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
+    <value>NoControl</value>
+  </data>
+  <data name="PartLibBackColorPictureBox.Location" type="System.Drawing.Point, System.Drawing">
+    <value>17, 25</value>
+  </data>
+  <data name="PartLibBackColorPictureBox.Size" type="System.Drawing.Size, System.Drawing">
+    <value>22, 22</value>
+  </data>
+  <data name="PartLibBackColorPictureBox.TabIndex" type="System.Int32, mscorlib">
+    <value>16</value>
+  </data>
+  <data name="&gt;&gt;PartLibBackColorPictureBox.Name" xml:space="preserve">
+    <value>PartLibBackColorPictureBox</value>
+  </data>
+  <data name="&gt;&gt;PartLibBackColorPictureBox.Type" xml:space="preserve">
+    <value>System.Windows.Forms.PictureBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </data>
+  <data name="&gt;&gt;PartLibBackColorPictureBox.Parent" xml:space="preserve">
+    <value>groupBox13</value>
+  </data>
+  <data name="&gt;&gt;PartLibBackColorPictureBox.ZOrder" xml:space="preserve">
+    <value>1</value>
+  </data>
+  <data name="groupBox13.Location" type="System.Drawing.Point, System.Drawing">
+    <value>289, 9</value>
+  </data>
+  <data name="groupBox13.Size" type="System.Drawing.Size, System.Drawing">
+    <value>286, 64</value>
+  </data>
+  <data name="groupBox13.TabIndex" type="System.Int32, mscorlib">
+    <value>2</value>
+  </data>
+  <data name="groupBox13.Text" xml:space="preserve">
+    <value>Appearance</value>
+  </data>
+  <data name="&gt;&gt;groupBox13.Name" xml:space="preserve">
+    <value>groupBox13</value>
+  </data>
+  <data name="&gt;&gt;groupBox13.Type" xml:space="preserve">
+    <value>System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </data>
+  <data name="&gt;&gt;groupBox13.Parent" xml:space="preserve">
+    <value>partLibTabPage</value>
+  </data>
+  <data name="&gt;&gt;groupBox13.ZOrder" xml:space="preserve">
+    <value>0</value>
+  </data>
+  <data name="displayPartDescriptionCheckBox.AutoSize" type="System.Boolean, mscorlib">
+    <value>True</value>
+  </data>
+  <data name="displayPartDescriptionCheckBox.Enabled" type="System.Boolean, mscorlib">
+    <value>False</value>
+  </data>
+  <data name="displayPartDescriptionCheckBox.Location" type="System.Drawing.Point, System.Drawing">
+    <value>48, 101</value>
+  </data>
+  <data name="displayPartDescriptionCheckBox.Size" type="System.Drawing.Size, System.Drawing">
+    <value>101, 17</value>
+  </data>
+  <data name="displayPartDescriptionCheckBox.TabIndex" type="System.Int32, mscorlib">
+    <value>3</value>
+  </data>
+  <data name="displayPartDescriptionCheckBox.Text" xml:space="preserve">
+    <value>Part Description</value>
+  </data>
+  <data name="&gt;&gt;displayPartDescriptionCheckBox.Name" xml:space="preserve">
+    <value>displayPartDescriptionCheckBox</value>
+  </data>
+  <data name="&gt;&gt;displayPartDescriptionCheckBox.Type" xml:space="preserve">
+    <value>System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </data>
+  <data name="&gt;&gt;displayPartDescriptionCheckBox.Parent" xml:space="preserve">
+    <value>groupBox12</value>
+  </data>
+  <data name="&gt;&gt;displayPartDescriptionCheckBox.ZOrder" xml:space="preserve">
+    <value>0</value>
+  </data>
+  <data name="displayPartColorCheckBox.AutoSize" type="System.Boolean, mscorlib">
+    <value>True</value>
+  </data>
+  <data name="displayPartColorCheckBox.Enabled" type="System.Boolean, mscorlib">
+    <value>False</value>
+  </data>
+  <data name="displayPartColorCheckBox.Location" type="System.Drawing.Point, System.Drawing">
+    <value>48, 77</value>
+  </data>
+  <data name="displayPartColorCheckBox.Size" type="System.Drawing.Size, System.Drawing">
+    <value>72, 17</value>
+  </data>
+  <data name="displayPartColorCheckBox.TabIndex" type="System.Int32, mscorlib">
+    <value>2</value>
+  </data>
+  <data name="displayPartColorCheckBox.Text" xml:space="preserve">
+    <value>Part Color</value>
+  </data>
+  <data name="&gt;&gt;displayPartColorCheckBox.Name" xml:space="preserve">
+    <value>displayPartColorCheckBox</value>
+  </data>
+  <data name="&gt;&gt;displayPartColorCheckBox.Type" xml:space="preserve">
+    <value>System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </data>
+  <data name="&gt;&gt;displayPartColorCheckBox.Parent" xml:space="preserve">
+    <value>groupBox12</value>
+  </data>
+  <data name="&gt;&gt;displayPartColorCheckBox.ZOrder" xml:space="preserve">
+    <value>1</value>
+  </data>
+  <data name="displayPartIDCheckBox.AutoSize" type="System.Boolean, mscorlib">
+    <value>True</value>
+  </data>
+  <data name="displayPartIDCheckBox.Enabled" type="System.Boolean, mscorlib">
+    <value>False</value>
+  </data>
+  <data name="displayPartIDCheckBox.Location" type="System.Drawing.Point, System.Drawing">
+    <value>48, 53</value>
+  </data>
+  <data name="displayPartIDCheckBox.Size" type="System.Drawing.Size, System.Drawing">
+    <value>59, 17</value>
+  </data>
+  <data name="displayPartIDCheckBox.TabIndex" type="System.Int32, mscorlib">
+    <value>1</value>
+  </data>
+  <data name="displayPartIDCheckBox.Text" xml:space="preserve">
+    <value>Part ID</value>
+  </data>
+  <data name="&gt;&gt;displayPartIDCheckBox.Name" xml:space="preserve">
+    <value>displayPartIDCheckBox</value>
+  </data>
+  <data name="&gt;&gt;displayPartIDCheckBox.Type" xml:space="preserve">
+    <value>System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </data>
+  <data name="&gt;&gt;displayPartIDCheckBox.Parent" xml:space="preserve">
+    <value>groupBox12</value>
+  </data>
+  <data name="&gt;&gt;displayPartIDCheckBox.ZOrder" xml:space="preserve">
+    <value>2</value>
+  </data>
+  <data name="displayBubbleInfoCheckBox.AutoSize" type="System.Boolean, mscorlib">
+    <value>True</value>
+  </data>
+  <data name="displayBubbleInfoCheckBox.Location" type="System.Drawing.Point, System.Drawing">
+    <value>17, 29</value>
+  </data>
+  <data name="displayBubbleInfoCheckBox.Size" type="System.Drawing.Size, System.Drawing">
+    <value>142, 17</value>
+  </data>
+  <data name="displayBubbleInfoCheckBox.TabIndex" type="System.Int32, mscorlib">
+    <value>0</value>
+  </data>
+  <data name="displayBubbleInfoCheckBox.Text" xml:space="preserve">
+    <value>Display Bubble Info with:</value>
+  </data>
+  <data name="&gt;&gt;displayBubbleInfoCheckBox.Name" xml:space="preserve">
+    <value>displayBubbleInfoCheckBox</value>
+  </data>
+  <data name="&gt;&gt;displayBubbleInfoCheckBox.Type" xml:space="preserve">
+    <value>System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </data>
+  <data name="&gt;&gt;displayBubbleInfoCheckBox.Parent" xml:space="preserve">
+    <value>groupBox12</value>
+  </data>
+  <data name="&gt;&gt;displayBubbleInfoCheckBox.ZOrder" xml:space="preserve">
+    <value>3</value>
+  </data>
+  <data name="groupBox12.Location" type="System.Drawing.Point, System.Drawing">
+    <value>289, 255</value>
+  </data>
+  <data name="groupBox12.Size" type="System.Drawing.Size, System.Drawing">
+    <value>287, 137</value>
+  </data>
+  <data name="groupBox12.TabIndex" type="System.Int32, mscorlib">
+    <value>1</value>
+  </data>
+  <data name="groupBox12.Text" xml:space="preserve">
+    <value>Bubble Info</value>
+  </data>
+  <data name="&gt;&gt;groupBox12.Name" xml:space="preserve">
+    <value>groupBox12</value>
+  </data>
+  <data name="&gt;&gt;groupBox12.Type" xml:space="preserve">
+    <value>System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </data>
+  <data name="&gt;&gt;groupBox12.Parent" xml:space="preserve">
+    <value>partLibTabPage</value>
+  </data>
+  <data name="&gt;&gt;groupBox12.ZOrder" xml:space="preserve">
+    <value>1</value>
+  </data>
   <data name="alphabeticOrderButton.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
     <value>NoControl</value>
   </data>
     <value>partLibTabPage</value>
   </data>
   <data name="&gt;&gt;groupBox11.ZOrder" xml:space="preserve">
-    <value>0</value>
+    <value>2</value>
   </data>
   <data name="partLibTabPage.Location" type="System.Drawing.Point, System.Drawing">
     <value>4, 22</value>

File BlueBrick/PartLibraryPanel.cs

 			// menu item to display tooltips
 			ToolStripMenuItem bubbleInfoMenuItem = new ToolStripMenuItem(Resources.PartLibMenuItemDisplayTooltips, null, menuItem_DisplayTooltipsClick);
 			bubbleInfoMenuItem.CheckOnClick = true;
-			bubbleInfoMenuItem.Checked = false;
 			contextMenu.Items.Add(bubbleInfoMenuItem);
 			// return the well form context menu
 			return contextMenu;
 				}
 
 				// after creating all the tabs, sort them according to the settings
-				sortTabsAccordingToSettings();
+				updateAppearanceAccordingToSettings();
 			}
 		}
 
 			return resultList;
 		}
 
-		public void sortTabsAccordingToSettings()
+		public void updateAppearanceAccordingToSettings()
 		{
+			// first sort the tabs
 			// get the sorted name list from the settings
 			System.Collections.Specialized.StringCollection sortedNameList = BlueBrick.Properties.Settings.Default.PartLibTabOrder;
 
 						insertIndex++;
 				}
 			}
+
+			// then update the background color and the bubble info status
+			bool displayBubbleInfo = BlueBrick.Properties.Settings.Default.PartLibDisplayBubbleInfo;
+			foreach (TabPage tabPage in this.TabPages)
+			{
+				try
+				{
+					ListView listView = tabPage.Controls[0] as ListView;
+					listView.BackColor = BlueBrick.Properties.Settings.Default.PartLibBackColor;
+					listView.ShowItemToolTips = displayBubbleInfo;
+					(tabPage.ContextMenuStrip.Items[2] as ToolStripMenuItem).Checked = displayBubbleInfo;
+				}
+				catch
+				{
+				}
+			}
 		}
 		#endregion
 		#region event handler for parts library
 
 		private void menuItem_DisplayTooltipsClick(object sender, EventArgs e)
 		{
-			ListView listView = this.SelectedTab.Controls[0] as ListView;
-			listView.ShowItemToolTips = !listView.ShowItemToolTips;
+			// get the checked status
+			bool displayBubbleInfo = (sender as ToolStripMenuItem).Checked;
+			// update the setting
+			BlueBrick.Properties.Settings.Default.PartLibDisplayBubbleInfo = displayBubbleInfo;
+			// the display tooltip is global to all the tabpage, so update all the pages
+			foreach (TabPage tabPage in this.TabPages)
+			{
+				try
+				{
+					(tabPage.Controls[0] as ListView).ShowItemToolTips = displayBubbleInfo;
+					(tabPage.ContextMenuStrip.Items[2] as ToolStripMenuItem).Checked = displayBubbleInfo;
+				}
+				catch
+				{
+				}
+			}
 		}
 
 		private void listView_MouseClick(object sender, MouseEventArgs e)

File BlueBrick/Properties/Settings.Designer.cs

                 this["PartLibBackColor"] = value;
             }
         }
+        
+        [global::System.Configuration.UserScopedSettingAttribute()]
+        [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+        [global::System.Configuration.DefaultSettingValueAttribute("False")]
+        public bool PartLibDisplayBubbleInfo {
+            get {
+                return ((bool)(this["PartLibDisplayBubbleInfo"]));
+            }
+            set {
+                this["PartLibDisplayBubbleInfo"] = value;
+            }
+        }
+        
+        [global::System.Configuration.UserScopedSettingAttribute()]
+        [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+        [global::System.Configuration.DefaultSettingValueAttribute("False")]
+        public bool PartLibBubbleInfoPartID {
+            get {
+                return ((bool)(this["PartLibBubbleInfoPartID"]));
+            }
+            set {
+                this["PartLibBubbleInfoPartID"] = value;
+            }
+        }
+        
+        [global::System.Configuration.UserScopedSettingAttribute()]
+        [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+        [global::System.Configuration.DefaultSettingValueAttribute("False")]
+        public bool PartLibBubbleInfoPartColor {
+            get {
+                return ((bool)(this["PartLibBubbleInfoPartColor"]));
+            }
+            set {
+                this["PartLibBubbleInfoPartColor"] = value;
+            }
+        }
+        
+        [global::System.Configuration.UserScopedSettingAttribute()]
+        [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+        [global::System.Configuration.DefaultSettingValueAttribute("True")]
+        public bool PartLibBubbleInfoPartDescription {
+            get {
+                return ((bool)(this["PartLibBubbleInfoPartDescription"]));
+            }
+            set {
+                this["PartLibBubbleInfoPartDescription"] = value;
+            }
+        }
     }
 }

File BlueBrick/Properties/Settings.settings

     <Setting Name="PartLibBackColor" Type="System.Drawing.Color" Scope="User">
       <Value Profile="(Default)">White</Value>
     </Setting>
+    <Setting Name="PartLibDisplayBubbleInfo" Type="System.Boolean" Scope="User">
+      <Value Profile="(Default)">False</Value>
+    </Setting>
+    <Setting Name="PartLibBubbleInfoPartID" Type="System.Boolean" Scope="User">
+      <Value Profile="(Default)">False</Value>
+    </Setting>
+    <Setting Name="PartLibBubbleInfoPartColor" Type="System.Boolean" Scope="User">
+      <Value Profile="(Default)">False</Value>
+    </Setting>
+    <Setting Name="PartLibBubbleInfoPartDescription" Type="System.Boolean" Scope="User">
+      <Value Profile="(Default)">True</Value>
+    </Setting>
   </Settings>
 </SettingsFile>

File BlueBrick/app.config

             <setting name="PartLibBackColor" serializeAs="String">
                 <value>White</value>
             </setting>
+            <setting name="PartLibDisplayBubbleInfo" serializeAs="String">
+                <value>False</value>
+            </setting>
+            <setting name="PartLibBubbleInfoPartID" serializeAs="String">
+                <value>False</value>
+            </setting>
+            <setting name="PartLibBubbleInfoPartColor" serializeAs="String">
+                <value>False</value>
+            </setting>
+            <setting name="PartLibBubbleInfoPartDescription" serializeAs="String">
+                <value>True</value>
+            </setting>
         </BlueBrick.Properties.Settings>
     </userSettings>
 </configuration>