Changeset 1499


Ignore:
Timestamp:
1/11/2010 6:46:03 AM (5 years ago)
Author:
lowjoel
Message:

Use drag&drop to order passes instead of the clumsy move up/move down buttons.

Location:
trunk/eraser6/Eraser.DefaultPlugins
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/eraser6/Eraser.DefaultPlugins/CustomMethodEditorForm.Designer.cs

    r1360 r1499  
    6060            this.passesRemoveBtn = new System.Windows.Forms.Button(); 
    6161            this.passesDuplicateBtn = new System.Windows.Forms.Button(); 
    62             this.passesMoveUpBtn = new System.Windows.Forms.Button(); 
    63             this.passesMoveDownBtn = new System.Windows.Forms.Button(); 
    6462            this.passGrp = new System.Windows.Forms.GroupBox(); 
     63            this.passEditor = new Eraser.DefaultPlugins.CustomMethodPassEditor(); 
    6564            this.randomizeChk = new System.Windows.Forms.CheckBox(); 
    6665            this.okBtn = new System.Windows.Forms.Button(); 
    6766            this.cancelBtn = new System.Windows.Forms.Button(); 
    6867            this.errorProvider = new System.Windows.Forms.ErrorProvider(this.components); 
    69             this.passEditor = new Eraser.DefaultPlugins.CustomMethodPassEditor(); 
    7068            this.passGrp.SuspendLayout(); 
    7169            ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).BeginInit(); 
     
    8482            // passesLv 
    8583            //  
     84            this.passesLv.AllowDrop = true; 
    8685            resources.ApplyResources(this.passesLv, "passesLv"); 
    8786            this.passesLv.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] { 
     
    8988            this.passesColType}); 
    9089            this.passesLv.FullRowSelect = true; 
     90            this.passesLv.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.Nonclickable; 
    9191            this.passesLv.HideSelection = false; 
    9292            this.passesLv.Name = "passesLv"; 
    9393            this.passesLv.UseCompatibleStateImageBehavior = false; 
    9494            this.passesLv.View = System.Windows.Forms.View.Details; 
     95            this.passesLv.DragDrop += new System.Windows.Forms.DragEventHandler(this.passesLv_DragDrop); 
    9596            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); 
    96100            //  
    97101            // passesColNumber 
     
    124128            this.passesDuplicateBtn.Click += new System.EventHandler(this.passesDuplicateBtn_Click); 
    125129            //  
    126             // passesMoveUpBtn 
    127             //  
    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             // passesMoveDownBtn 
    134             //  
    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             //  
    140130            // passGrp 
    141131            //  
     
    145135            this.passGrp.TabStop = false; 
    146136            //  
     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            //  
    147144            // randomizeChk 
    148145            //  
     
    168165            //  
    169166            this.errorProvider.ContainerControl = this; 
    170             //  
    171             // passEditor 
    172             //  
    173             resources.ApplyResources(this.passEditor, "passEditor"); 
    174             this.passEditor.Name = "passEditor"; 
    175             this.passEditor.PassData = null; 
    176             this.passEditor.PassType = Eraser.DefaultPlugins.CustomMethodPassEditorPassType.Text; 
    177167            //  
    178168            // CustomMethodEditorForm 
     
    186176            this.Controls.Add(this.randomizeChk); 
    187177            this.Controls.Add(this.passGrp); 
    188             this.Controls.Add(this.passesMoveDownBtn); 
    189             this.Controls.Add(this.passesMoveUpBtn); 
    190178            this.Controls.Add(this.passesDuplicateBtn); 
    191179            this.Controls.Add(this.passesRemoveBtn); 
     
    214202        private System.Windows.Forms.Button passesRemoveBtn; 
    215203        private System.Windows.Forms.Button passesDuplicateBtn; 
    216         private System.Windows.Forms.Button passesMoveUpBtn; 
    217         private System.Windows.Forms.Button passesMoveDownBtn; 
    218204        private System.Windows.Forms.GroupBox passGrp; 
    219205        private System.Windows.Forms.CheckBox randomizeChk; 
  • trunk/eraser6/Eraser.DefaultPlugins/CustomMethodEditorForm.cs

    r1495 r1499  
    152152        private void EnableButtons() 
    153153        { 
    154             passesRemoveBtn.Enabled = passesDuplicateBtn.Enabled = passesMoveUpBtn.Enabled = 
    155                 passesMoveDownBtn.Enabled = passesLv.SelectedItems.Count >= 1; 
     154            passesRemoveBtn.Enabled = passesDuplicateBtn.Enabled = passesLv.SelectedItems.Count >= 1; 
    156155            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             } 
    168156        } 
    169157 
     
    210198        } 
    211199 
    212         private void passesMoveUpBtn_Click(object sender, EventArgs e) 
    213         { 
    214             //Save the current pass to prevent data loss 
     200        private void passesLv_ItemDrag(object sender, ItemDragEventArgs e) 
     201        { 
     202            //Save the currently edited pass before allowing the drag & drop operation. 
    215203            SavePass(currentPass); 
    216204 
    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()) 
    223233                { 
    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                    } 
    226255                } 
    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 
    229305            RenumberPasses(); 
    230306            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(); 
    254308        } 
    255309 
     
    272326            } 
    273327        } 
    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 
    275357        private void okBtn_Click(object sender, EventArgs e) 
    276358        { 
  • trunk/eraser6/Eraser.DefaultPlugins/CustomMethodEditorForm.resx

    r585 r1499  
    149149  </data> 
    150150  <data name="&gt;&gt;nameLbl.ZOrder" xml:space="preserve"> 
    151     <value>11</value> 
     151    <value>9</value> 
    152152  </data> 
    153153  <data name="nameTxt.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms"> 
     
    173173  </data> 
    174174  <data name="&gt;&gt;nameTxt.ZOrder" xml:space="preserve"> 
    175     <value>10</value> 
     175    <value>8</value> 
    176176  </data> 
    177177  <data name="passesLv.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms"> 
     
    197197  </data> 
    198198  <data name="&gt;&gt;passesLv.ZOrder" xml:space="preserve"> 
    199     <value>9</value> 
     199    <value>7</value> 
    200200  </data> 
    201201  <data name="passesColNumber.Text" xml:space="preserve"> 
    202     <value>Pass Number</value> 
     202    <value /> 
    203203  </data> 
    204204  <data name="passesColNumber.Width" type="System.Int32, mscorlib"> 
    205     <value>90</value> 
     205    <value>30</value> 
    206206  </data> 
    207207  <data name="passesColType.Text" xml:space="preserve"> 
     
    209209  </data> 
    210210  <data name="passesColType.Width" type="System.Int32, mscorlib"> 
    211     <value>135</value> 
     211    <value>195</value> 
    212212  </data> 
    213213  <data name="passesAddBtn.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms"> 
     
    239239  </data> 
    240240  <data name="&gt;&gt;passesAddBtn.ZOrder" xml:space="preserve"> 
    241     <value>8</value> 
     241    <value>6</value> 
    242242  </data> 
    243243  <data name="passesRemoveBtn.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms"> 
     
    272272  </data> 
    273273  <data name="&gt;&gt;passesRemoveBtn.ZOrder" xml:space="preserve"> 
    274     <value>7</value> 
     274    <value>5</value> 
    275275  </data> 
    276276  <data name="passesDuplicateBtn.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms"> 
     
    305305  </data> 
    306306  <data name="&gt;&gt;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="&gt;&gt;passesMoveUpBtn.Name" xml:space="preserve"> 
    331     <value>passesMoveUpBtn</value> 
    332   </data> 
    333   <data name="&gt;&gt;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="&gt;&gt;passesMoveUpBtn.Parent" xml:space="preserve"> 
    337     <value>$this</value> 
    338   </data> 
    339   <data name="&gt;&gt;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="&gt;&gt;passesMoveDownBtn.Name" xml:space="preserve"> 
    364     <value>passesMoveDownBtn</value> 
    365   </data> 
    366   <data name="&gt;&gt;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="&gt;&gt;passesMoveDownBtn.Parent" xml:space="preserve"> 
    370     <value>$this</value> 
    371   </data> 
    372   <data name="&gt;&gt;passesMoveDownBtn.ZOrder" xml:space="preserve"> 
    373307    <value>4</value> 
    374308  </data> 
     
    376310    <value>Bottom, Left, Right</value> 
    377311  </data> 
     312  <data name="&gt;&gt;passEditor.Name" xml:space="preserve"> 
     313    <value>passEditor</value> 
     314  </data> 
     315  <data name="&gt;&gt;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="&gt;&gt;passEditor.Parent" xml:space="preserve"> 
     319    <value>passGrp</value> 
     320  </data> 
     321  <data name="&gt;&gt;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="&gt;&gt;passGrp.Name" xml:space="preserve"> 
     340    <value>passGrp</value> 
     341  </data> 
     342  <data name="&gt;&gt;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="&gt;&gt;passGrp.Parent" xml:space="preserve"> 
     346    <value>$this</value> 
     347  </data> 
     348  <data name="&gt;&gt;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> 
    378354  <data name="passEditor.Location" type="System.Drawing.Point, System.Drawing"> 
    379355    <value>6, 13</value> 
     
    389365  </data> 
    390366  <data name="&gt;&gt;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> 
    392368  </data> 
    393369  <data name="&gt;&gt;passEditor.Parent" xml:space="preserve"> 
     
    396372  <data name="&gt;&gt;passEditor.ZOrder" xml:space="preserve"> 
    397373    <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="&gt;&gt;passGrp.Name" xml:space="preserve"> 
    415     <value>passGrp</value> 
    416   </data> 
    417   <data name="&gt;&gt;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="&gt;&gt;passGrp.Parent" xml:space="preserve"> 
    421     <value>$this</value> 
    422   </data> 
    423   <data name="&gt;&gt;passGrp.ZOrder" xml:space="preserve"> 
    424     <value>3</value> 
    425374  </data> 
    426375  <data name="randomizeChk.AutoSize" type="System.Boolean, mscorlib"> 
Note: See TracChangeset for help on using the changeset viewer.