Changeset 1499
- Timestamp:
- 1/11/2010 6:46:03 AM (3 years ago)
- Location:
- trunk/eraser6/Eraser.DefaultPlugins
- Files:
-
- 3 edited
-
CustomMethodEditorForm.Designer.cs (modified) (8 diffs)
-
CustomMethodEditorForm.cs (modified) (3 diffs)
-
CustomMethodEditorForm.resx (modified) (10 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/eraser6/Eraser.DefaultPlugins/CustomMethodEditorForm.Designer.cs
r1360 r1499 60 60 this.passesRemoveBtn = new System.Windows.Forms.Button(); 61 61 this.passesDuplicateBtn = new System.Windows.Forms.Button(); 62 this.passesMoveUpBtn = new System.Windows.Forms.Button();63 this.passesMoveDownBtn = new System.Windows.Forms.Button();64 62 this.passGrp = new System.Windows.Forms.GroupBox(); 63 this.passEditor = new Eraser.DefaultPlugins.CustomMethodPassEditor(); 65 64 this.randomizeChk = new System.Windows.Forms.CheckBox(); 66 65 this.okBtn = new System.Windows.Forms.Button(); 67 66 this.cancelBtn = new System.Windows.Forms.Button(); 68 67 this.errorProvider = new System.Windows.Forms.ErrorProvider(this.components); 69 this.passEditor = new Eraser.DefaultPlugins.CustomMethodPassEditor();70 68 this.passGrp.SuspendLayout(); 71 69 ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).BeginInit(); … … 84 82 // passesLv 85 83 // 84 this.passesLv.AllowDrop = true; 86 85 resources.ApplyResources(this.passesLv, "passesLv"); 87 86 this.passesLv.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] { … … 89 88 this.passesColType}); 90 89 this.passesLv.FullRowSelect = true; 90 this.passesLv.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.Nonclickable; 91 91 this.passesLv.HideSelection = false; 92 92 this.passesLv.Name = "passesLv"; 93 93 this.passesLv.UseCompatibleStateImageBehavior = false; 94 94 this.passesLv.View = System.Windows.Forms.View.Details; 95 this.passesLv.DragDrop += new System.Windows.Forms.DragEventHandler(this.passesLv_DragDrop); 95 96 this.passesLv.ItemSelectionChanged += new System.Windows.Forms.ListViewItemSelectionChangedEventHandler(this.passesLv_ItemSelectionChanged); 97 this.passesLv.DragEnter += new System.Windows.Forms.DragEventHandler(this.passesLv_DragEnter); 98 this.passesLv.GiveFeedback += new System.Windows.Forms.GiveFeedbackEventHandler(this.passesLv_GiveFeedback); 99 this.passesLv.ItemDrag += new System.Windows.Forms.ItemDragEventHandler(this.passesLv_ItemDrag); 96 100 // 97 101 // passesColNumber … … 124 128 this.passesDuplicateBtn.Click += new System.EventHandler(this.passesDuplicateBtn_Click); 125 129 // 126 // passesMoveUpBtn127 //128 resources.ApplyResources(this.passesMoveUpBtn, "passesMoveUpBtn");129 this.passesMoveUpBtn.Name = "passesMoveUpBtn";130 this.passesMoveUpBtn.UseVisualStyleBackColor = true;131 this.passesMoveUpBtn.Click += new System.EventHandler(this.passesMoveUpBtn_Click);132 //133 // passesMoveDownBtn134 //135 resources.ApplyResources(this.passesMoveDownBtn, "passesMoveDownBtn");136 this.passesMoveDownBtn.Name = "passesMoveDownBtn";137 this.passesMoveDownBtn.UseVisualStyleBackColor = true;138 this.passesMoveDownBtn.Click += new System.EventHandler(this.passesMoveDownBtn_Click);139 //140 130 // passGrp 141 131 // … … 145 135 this.passGrp.TabStop = false; 146 136 // 137 // passEditor 138 // 139 resources.ApplyResources(this.passEditor, "passEditor"); 140 this.passEditor.Name = "passEditor"; 141 this.passEditor.PassData = null; 142 this.passEditor.PassType = Eraser.DefaultPlugins.CustomMethodPassEditorPassType.Text; 143 // 147 144 // randomizeChk 148 145 // … … 168 165 // 169 166 this.errorProvider.ContainerControl = this; 170 //171 // passEditor172 //173 resources.ApplyResources(this.passEditor, "passEditor");174 this.passEditor.Name = "passEditor";175 this.passEditor.PassData = null;176 this.passEditor.PassType = Eraser.DefaultPlugins.CustomMethodPassEditorPassType.Text;177 167 // 178 168 // CustomMethodEditorForm … … 186 176 this.Controls.Add(this.randomizeChk); 187 177 this.Controls.Add(this.passGrp); 188 this.Controls.Add(this.passesMoveDownBtn);189 this.Controls.Add(this.passesMoveUpBtn);190 178 this.Controls.Add(this.passesDuplicateBtn); 191 179 this.Controls.Add(this.passesRemoveBtn); … … 214 202 private System.Windows.Forms.Button passesRemoveBtn; 215 203 private System.Windows.Forms.Button passesDuplicateBtn; 216 private System.Windows.Forms.Button passesMoveUpBtn;217 private System.Windows.Forms.Button passesMoveDownBtn;218 204 private System.Windows.Forms.GroupBox passGrp; 219 205 private System.Windows.Forms.CheckBox randomizeChk; -
trunk/eraser6/Eraser.DefaultPlugins/CustomMethodEditorForm.cs
r1495 r1499 152 152 private void EnableButtons() 153 153 { 154 passesRemoveBtn.Enabled = passesDuplicateBtn.Enabled = passesMoveUpBtn.Enabled = 155 passesMoveDownBtn.Enabled = passesLv.SelectedItems.Count >= 1; 154 passesRemoveBtn.Enabled = passesDuplicateBtn.Enabled = passesLv.SelectedItems.Count >= 1; 156 155 passGrp.Enabled = passEditor.Enabled = passesLv.SelectedItems.Count == 1; 157 158 ListView.SelectedListViewItemCollection items = passesLv.SelectedItems;159 if (items.Count > 0)160 {161 foreach (ListViewItem item in items)162 {163 int index = item.Index;164 passesMoveUpBtn.Enabled = passesMoveUpBtn.Enabled && index > 0;165 passesMoveDownBtn.Enabled = passesMoveDownBtn.Enabled && index < passesLv.Items.Count - 1;166 }167 }168 156 } 169 157 … … 210 198 } 211 199 212 private void passes MoveUpBtn_Click(object sender,EventArgs e)213 { 214 //Save the current pass to prevent data loss200 private void passesLv_ItemDrag(object sender, ItemDragEventArgs e) 201 { 202 //Save the currently edited pass before allowing the drag & drop operation. 215 203 SavePass(currentPass); 216 204 217 foreach (ListViewItem item in passesLv.SelectedItems) 218 { 219 //Insert the current item into the index before, only if the item has got 220 //space to move up! 221 int index = item.Index; 222 if (index >= 1) 205 //Then initiate the drag & drop. 206 passesLv.DoDragDrop(passesLv.SelectedItems, DragDropEffects.All); 207 } 208 209 private void passesLv_DragEnter(object sender, DragEventArgs e) 210 { 211 ListView.SelectedListViewItemCollection items = 212 e.Data.GetData(typeof(ListView.SelectedListViewItemCollection)) as 213 ListView.SelectedListViewItemCollection; 214 if (items == null) 215 return; 216 217 e.Effect = DragDropEffects.Move; 218 } 219 220 ListViewItem lastInsertionPoint = null; 221 private void passesLv_GiveFeedback(object sender, GiveFeedbackEventArgs e) 222 { 223 e.UseDefaultCursors = true; 224 Point mousePoint = passesLv.PointToClient(Cursor.Position); 225 ListViewItem insertionPoint = GetInsertionPoint(mousePoint); 226 227 if (insertionPoint != lastInsertionPoint) 228 { 229 passesLv.Invalidate(); 230 passesLv.Update(); 231 232 using (Graphics g = passesLv.CreateGraphics()) 223 233 { 224 passesLv.Items.RemoveAt(index); 225 passesLv.Items.Insert(index - 1, item); 234 //Only handle the exception: when insertionPoint is null, the item should 235 //be appended to the back of the listview. 236 if (insertionPoint == null) 237 { 238 if (passesLv.Items.Count > 0) 239 { 240 ListViewItem lastItem = passesLv.Items[passesLv.Items.Count - 1]; 241 g.FillRectangle(new SolidBrush(Color.Black), 242 lastItem.Bounds.Left, lastItem.Bounds.Bottom - 1, passesLv.Width, 2); 243 } 244 else 245 { 246 g.FillRectangle(new SolidBrush(Color.Black), 247 0, 0, passesLv.Width, 2); 248 } 249 } 250 else 251 { 252 g.FillRectangle(new SolidBrush(Color.Black), 253 insertionPoint.Bounds.Left, insertionPoint.Bounds.Top - 1, passesLv.Width, 2); 254 } 226 255 } 227 } 228 256 257 lastInsertionPoint = insertionPoint; 258 } 259 } 260 261 private void passesLv_DragDrop(object sender, DragEventArgs e) 262 { 263 //Remove the insertion mark 264 lastInsertionPoint = null; 265 266 //Get the item we dragged and the item we dropped over. 267 ListView.SelectedListViewItemCollection draggedItems = 268 e.Data.GetData(typeof(ListView.SelectedListViewItemCollection)) as 269 ListView.SelectedListViewItemCollection; 270 List<ListViewItem> items = new List<ListViewItem>(draggedItems.Count); 271 foreach (ListViewItem item in draggedItems) 272 items.Add(item); 273 Point mousePoint = passesLv.PointToClient(Cursor.Position); 274 ListViewItem dropItem = GetInsertionPoint(mousePoint); 275 276 //If we do not have an item, it is not a valid drag & drop operation. 277 if (items == null || items.Count == 0) 278 return; 279 280 //Ignore the operation if the drag source and the destination items match. 281 if (items.IndexOf(dropItem) != -1) 282 return; 283 284 //Prevent the listview from refreshing to speed things up. 285 passesLv.BeginUpdate(); 286 passesLv.Invalidate(); 287 288 //Remove the item we dragged 289 foreach (ListViewItem item in items) 290 item.Remove(); 291 292 //If we don't have an item we dropped over, it's the last item in the list. 293 if (dropItem == null) 294 { 295 foreach (ListViewItem item in items) 296 passesLv.Items.Add(item); 297 } 298 else 299 { 300 foreach (ListViewItem item in items) 301 passesLv.Items.Insert(dropItem.Index, item); 302 } 303 304 //Renumber the passes for congruency 229 305 RenumberPasses(); 230 306 EnableButtons(); 231 } 232 233 private void passesMoveDownBtn_Click(object sender, EventArgs e) 234 { 235 //Save the current pass to prevent data loss 236 SavePass(currentPass); 237 238 ListView.SelectedListViewItemCollection items = passesLv.SelectedItems; 239 for (int i = items.Count; i-- != 0; ) 240 { 241 //Insert the current item into the index after, only if the item has got 242 //space to move down. 243 ListViewItem item = items[i]; 244 int index = item.Index; 245 if (index < passesLv.Items.Count - 1) 246 { 247 passesLv.Items.RemoveAt(index); 248 passesLv.Items.Insert(index + 1, item); 249 } 250 } 251 252 RenumberPasses(); 253 EnableButtons(); 307 passesLv.EndUpdate(); 254 308 } 255 309 … … 272 326 } 273 327 } 274 328 329 /// <summary> 330 /// Calculates the item to insert the new dragged item before, based on 331 /// mouse coordinates. 332 /// </summary> 333 /// <param name="point">The current location of the cursor.</param> 334 /// <returns>The item to insert the new item before, or null if the item 335 /// should be appended to the list.</returns> 336 private ListViewItem GetInsertionPoint(Point point) 337 { 338 ListViewItem item = passesLv.GetItemAt(0, point.Y); 339 if (item == null) 340 return null; 341 342 bool beforeItem = point.Y < item.Bounds.Height / 2 + item.Bounds.Y; 343 if (beforeItem) 344 { 345 return item; 346 } 347 else if (item.Index == passesLv.Items.Count - 1) 348 { 349 return null; 350 } 351 else 352 { 353 return passesLv.Items[item.Index + 1]; 354 } 355 } 356 275 357 private void okBtn_Click(object sender, EventArgs e) 276 358 { -
trunk/eraser6/Eraser.DefaultPlugins/CustomMethodEditorForm.resx
r585 r1499 149 149 </data> 150 150 <data name=">>nameLbl.ZOrder" xml:space="preserve"> 151 <value> 11</value>151 <value>9</value> 152 152 </data> 153 153 <data name="nameTxt.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms"> … … 173 173 </data> 174 174 <data name=">>nameTxt.ZOrder" xml:space="preserve"> 175 <value> 10</value>175 <value>8</value> 176 176 </data> 177 177 <data name="passesLv.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms"> … … 197 197 </data> 198 198 <data name=">>passesLv.ZOrder" xml:space="preserve"> 199 <value> 9</value>199 <value>7</value> 200 200 </data> 201 201 <data name="passesColNumber.Text" xml:space="preserve"> 202 <value >Pass Number</value>202 <value /> 203 203 </data> 204 204 <data name="passesColNumber.Width" type="System.Int32, mscorlib"> 205 <value> 90</value>205 <value>30</value> 206 206 </data> 207 207 <data name="passesColType.Text" xml:space="preserve"> … … 209 209 </data> 210 210 <data name="passesColType.Width" type="System.Int32, mscorlib"> 211 <value>1 35</value>211 <value>195</value> 212 212 </data> 213 213 <data name="passesAddBtn.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms"> … … 239 239 </data> 240 240 <data name=">>passesAddBtn.ZOrder" xml:space="preserve"> 241 <value> 8</value>241 <value>6</value> 242 242 </data> 243 243 <data name="passesRemoveBtn.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms"> … … 272 272 </data> 273 273 <data name=">>passesRemoveBtn.ZOrder" xml:space="preserve"> 274 <value> 7</value>274 <value>5</value> 275 275 </data> 276 276 <data name="passesDuplicateBtn.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms"> … … 305 305 </data> 306 306 <data name=">>passesDuplicateBtn.ZOrder" xml:space="preserve"> 307 <value>6</value>308 </data>309 <data name="passesMoveUpBtn.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">310 <value>Top, Right</value>311 </data>312 <data name="passesMoveUpBtn.Enabled" type="System.Boolean, mscorlib">313 <value>False</value>314 </data>315 <data name="passesMoveUpBtn.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">316 <value>NoControl</value>317 </data>318 <data name="passesMoveUpBtn.Location" type="System.Drawing.Point, System.Drawing">319 <value>272, 147</value>320 </data>321 <data name="passesMoveUpBtn.Size" type="System.Drawing.Size, System.Drawing">322 <value>90, 23</value>323 </data>324 <data name="passesMoveUpBtn.TabIndex" type="System.Int32, mscorlib">325 <value>7</value>326 </data>327 <data name="passesMoveUpBtn.Text" xml:space="preserve">328 <value>Move Up</value>329 </data>330 <data name=">>passesMoveUpBtn.Name" xml:space="preserve">331 <value>passesMoveUpBtn</value>332 </data>333 <data name=">>passesMoveUpBtn.Type" xml:space="preserve">334 <value>System.Windows.Forms.Button, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>335 </data>336 <data name=">>passesMoveUpBtn.Parent" xml:space="preserve">337 <value>$this</value>338 </data>339 <data name=">>passesMoveUpBtn.ZOrder" xml:space="preserve">340 <value>5</value>341 </data>342 <data name="passesMoveDownBtn.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">343 <value>Top, Right</value>344 </data>345 <data name="passesMoveDownBtn.Enabled" type="System.Boolean, mscorlib">346 <value>False</value>347 </data>348 <data name="passesMoveDownBtn.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">349 <value>NoControl</value>350 </data>351 <data name="passesMoveDownBtn.Location" type="System.Drawing.Point, System.Drawing">352 <value>272, 176</value>353 </data>354 <data name="passesMoveDownBtn.Size" type="System.Drawing.Size, System.Drawing">355 <value>90, 23</value>356 </data>357 <data name="passesMoveDownBtn.TabIndex" type="System.Int32, mscorlib">358 <value>8</value>359 </data>360 <data name="passesMoveDownBtn.Text" xml:space="preserve">361 <value>Move Down</value>362 </data>363 <data name=">>passesMoveDownBtn.Name" xml:space="preserve">364 <value>passesMoveDownBtn</value>365 </data>366 <data name=">>passesMoveDownBtn.Type" xml:space="preserve">367 <value>System.Windows.Forms.Button, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>368 </data>369 <data name=">>passesMoveDownBtn.Parent" xml:space="preserve">370 <value>$this</value>371 </data>372 <data name=">>passesMoveDownBtn.ZOrder" xml:space="preserve">373 307 <value>4</value> 374 308 </data> … … 376 310 <value>Bottom, Left, Right</value> 377 311 </data> 312 <data name=">>passEditor.Name" xml:space="preserve"> 313 <value>passEditor</value> 314 </data> 315 <data name=">>passEditor.Type" xml:space="preserve"> 316 <value>Eraser.DefaultPlugins.CustomMethodPassEditor, Eraser.DefaultPlugins, Version=6.0.6.1498, Culture=neutral, PublicKeyToken=3ac89a0351e689b6</value> 317 </data> 318 <data name=">>passEditor.Parent" xml:space="preserve"> 319 <value>passGrp</value> 320 </data> 321 <data name=">>passEditor.ZOrder" xml:space="preserve"> 322 <value>0</value> 323 </data> 324 <data name="passGrp.Enabled" type="System.Boolean, mscorlib"> 325 <value>False</value> 326 </data> 327 <data name="passGrp.Location" type="System.Drawing.Point, System.Drawing"> 328 <value>15, 205</value> 329 </data> 330 <data name="passGrp.Size" type="System.Drawing.Size, System.Drawing"> 331 <value>347, 142</value> 332 </data> 333 <data name="passGrp.TabIndex" type="System.Int32, mscorlib"> 334 <value>9</value> 335 </data> 336 <data name="passGrp.Text" xml:space="preserve"> 337 <value>Pass Data</value> 338 </data> 339 <data name=">>passGrp.Name" xml:space="preserve"> 340 <value>passGrp</value> 341 </data> 342 <data name=">>passGrp.Type" xml:space="preserve"> 343 <value>System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> 344 </data> 345 <data name=">>passGrp.Parent" xml:space="preserve"> 346 <value>$this</value> 347 </data> 348 <data name=">>passGrp.ZOrder" xml:space="preserve"> 349 <value>3</value> 350 </data> 351 <data name="passEditor.Font" type="System.Drawing.Font, System.Drawing"> 352 <value>Segoe UI, 9pt</value> 353 </data> 378 354 <data name="passEditor.Location" type="System.Drawing.Point, System.Drawing"> 379 355 <value>6, 13</value> … … 389 365 </data> 390 366 <data name=">>passEditor.Type" xml:space="preserve"> 391 <value>Eraser.DefaultPlugins.CustomMethodPassEditor, Eraser.DefaultPlugins, Version=6.0. 0.1, Culture=neutral, PublicKeyToken=4411c113eac74bb2</value>367 <value>Eraser.DefaultPlugins.CustomMethodPassEditor, Eraser.DefaultPlugins, Version=6.0.6.1498, Culture=neutral, PublicKeyToken=3ac89a0351e689b6</value> 392 368 </data> 393 369 <data name=">>passEditor.Parent" xml:space="preserve"> … … 396 372 <data name=">>passEditor.ZOrder" xml:space="preserve"> 397 373 <value>0</value> 398 </data>399 <data name="passGrp.Enabled" type="System.Boolean, mscorlib">400 <value>False</value>401 </data>402 <data name="passGrp.Location" type="System.Drawing.Point, System.Drawing">403 <value>15, 205</value>404 </data>405 <data name="passGrp.Size" type="System.Drawing.Size, System.Drawing">406 <value>347, 142</value>407 </data>408 <data name="passGrp.TabIndex" type="System.Int32, mscorlib">409 <value>9</value>410 </data>411 <data name="passGrp.Text" xml:space="preserve">412 <value>Pass Data</value>413 </data>414 <data name=">>passGrp.Name" xml:space="preserve">415 <value>passGrp</value>416 </data>417 <data name=">>passGrp.Type" xml:space="preserve">418 <value>System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>419 </data>420 <data name=">>passGrp.Parent" xml:space="preserve">421 <value>$this</value>422 </data>423 <data name=">>passGrp.ZOrder" xml:space="preserve">424 <value>3</value>425 374 </data> 426 375 <data name="randomizeChk.AutoSize" type="System.Boolean, mscorlib">
Note: See TracChangeset
for help on using the changeset viewer.
