Author: gcasa
Date: Tue May 27 00:33:29 2014
New Revision: 37909

URL: http://svn.gna.org/viewcvs/gnustep?rev=37909&view=rev
Log:
Accepted patch for 34877 by Sergei.

Modified:
    apps/gorm/trunk/ChangeLog
    apps/gorm/trunk/Palettes/2Controls/GormFormAttributesInspector.h
    apps/gorm/trunk/Palettes/2Controls/GormFormAttributesInspector.m
    apps/gorm/trunk/Palettes/2Controls/GormNSFormInspector.gorm/data.classes
    apps/gorm/trunk/Palettes/2Controls/GormNSFormInspector.gorm/objects.gorm

Modified: apps/gorm/trunk/ChangeLog
URL: 
http://svn.gna.org/viewcvs/gnustep/apps/gorm/trunk/ChangeLog?rev=37909&r1=37908&r2=37909&view=diff
==============================================================================
--- apps/gorm/trunk/ChangeLog   (original)
+++ apps/gorm/trunk/ChangeLog   Tue May 27 00:33:29 2014
@@ -1,3 +1,11 @@
+2014-05-26 18:32-EDT Gregory John Casamento <[email protected]>
+
+       * Palettes/2Controls/GormFormAttributesInspector.h
+       * Palettes/2Controls/GormFormAttributesInspector.m
+       * Palettes/2Controls/GormNSFormInspector.gorm: Accept patch on
+       bug#38477 by Sergei Golovin. Allows user to modify the
+       number of items in an NSForm using the inspector.
+
 2014-01-19 Fred Kiefer <[email protected]>
 
        * Palettes/2Controls/GormButtonAttributesInspector.h: Use NSButton

Modified: apps/gorm/trunk/Palettes/2Controls/GormFormAttributesInspector.h
URL: 
http://svn.gna.org/viewcvs/gnustep/apps/gorm/trunk/Palettes/2Controls/GormFormAttributesInspector.h?rev=37909&r1=37908&r2=37909&view=diff
==============================================================================
--- apps/gorm/trunk/Palettes/2Controls/GormFormAttributesInspector.h    
(original)
+++ apps/gorm/trunk/Palettes/2Controls/GormFormAttributesInspector.h    Tue May 
27 00:33:29 2014
@@ -42,6 +42,7 @@
 @class NSColorWell;
 @class NSForm;
 @class NSMatrix;
+@class NSStepper;
 
 @interface GormFormAttributesInspector: IBInspector
 {
@@ -55,6 +56,8 @@
   id tagForm;
   id textMatrix;
   id titleMatrix;
+  NSForm *dimensionsForm;
+  NSStepper *numberStepper;
 }
 
 @end

Modified: apps/gorm/trunk/Palettes/2Controls/GormFormAttributesInspector.m
URL: 
http://svn.gna.org/viewcvs/gnustep/apps/gorm/trunk/Palettes/2Controls/GormFormAttributesInspector.m?rev=37909&r1=37908&r2=37909&view=diff
==============================================================================
--- apps/gorm/trunk/Palettes/2Controls/GormFormAttributesInspector.m    
(original)
+++ apps/gorm/trunk/Palettes/2Controls/GormFormAttributesInspector.m    Tue May 
27 00:33:29 2014
@@ -58,6 +58,8 @@
 
 @implementation GormFormAttributesInspector
 
+NSUInteger numberStepperValue;
+
 - (id) init
 {
   if ([super init] == nil)
@@ -69,6 +71,14 @@
       NSLog(@"Could not gorm GormFormInspector");
       return nil;
     }
+  /* It shouldn't break functionality of field number changing 
+     if someone will decide in the future to change the value
+     of the stepper in the gorm file. So we stores those value 
+     from the gorm file in the auxillary variable to use it 
+     later in -[ok:]. 
+     (It allows us to avoid the value being hardcoded).
+   */
+  numberStepperValue = [numberStepper intValue];
 
   return self;
 }
@@ -151,6 +161,60 @@
     {
       BOOL flag = ([autosizeSwitch state] == NSOnState) ? YES : NO;
       [object setAutosizesCells: flag];
+    }
+  /* number of fields */
+  else if(sender == dimensionsForm)
+    {
+      int fields = [[sender cellAtIndex: 0] intValue];
+      
+      if(fields) // make changes only if the user actions do something 
meaningful
+       {
+         NSRect rect = [object frame];
+         NSSize cell = [object cellSize];
+         NSSize inter = [object intercellSpacing];
+
+         while(((rows = [object numberOfRows]) != fields))
+           {
+             if(rows > fields)
+               {
+                 [object removeEntryAtIndex: rows - 1]; // remove last field
+               }
+             else
+               {
+                 [object addEntry: [NSString stringWithFormat: @"Field (%i)", 
rows]];
+               }
+           }
+         cell.height = (rect.size.height + inter.height) / fields - 
inter.height;
+         [object setCellSize: cell];
+       }
+      [object setNeedsDisplay: YES];
+      [[object superview] setNeedsDisplay: YES];
+    }
+  else if(sender == numberStepper)
+    {
+      int delta = [sender intValue] - numberStepperValue;
+      NSRect rect = [object frame];
+      NSSize cell = [object cellSize];
+      NSSize inter = [object intercellSpacing];
+
+      while(delta > 0)
+       {
+         [object addEntry: [NSString stringWithFormat: @"Field (%i)", rows]];
+         delta--;
+         rows++;
+       }
+      while((delta < 0) && (rows > 1))
+       {
+         [object removeEntryAtIndex: rows - 1];
+         rows--;
+         delta++;
+       }
+      cell.height = (rect.size.height + inter.height) / rows - inter.height;
+      [object setCellSize: cell];
+      [[dimensionsForm cellAtIndex: 0] setIntValue: rows];
+      [sender setIntValue: numberStepperValue];
+      [dimensionsForm setNeedsDisplay: YES];
+      [object setNeedsDisplay: YES];
     }
 
   [super ok:sender];
@@ -200,6 +264,9 @@
         [cellPositionSwitch setState:NSOnState];
       }
   }
+  
+  /* number of fields */
+  [[dimensionsForm cellAtIndex: 0] setIntValue: [object numberOfRows]];
 
   /* tag */
   [[tagForm cellAtRow: 0 column: 0] setIntValue: [object tag]];
@@ -269,5 +336,4 @@
   [object setButtonType: type];
 }
 
-
 @end

Modified: 
apps/gorm/trunk/Palettes/2Controls/GormNSFormInspector.gorm/data.classes
URL: 
http://svn.gna.org/viewcvs/gnustep/apps/gorm/trunk/Palettes/2Controls/GormNSFormInspector.gorm/data.classes?rev=37909&r1=37908&r2=37909&view=diff
==============================================================================
--- apps/gorm/trunk/Palettes/2Controls/GormNSFormInspector.gorm/data.classes    
(original)
+++ apps/gorm/trunk/Palettes/2Controls/GormNSFormInspector.gorm/data.classes    
Tue May 27 00:33:29 2014
@@ -13,7 +13,9 @@
            editableSwitch,
            scrollableSwitch,
            selectableSwitch,
-           autosizeSwitch
+           autosizeSwitch,
+           dimensionsForm,
+           numberStepper
        );
        Super = IBInspector;
     };

Modified: 
apps/gorm/trunk/Palettes/2Controls/GormNSFormInspector.gorm/objects.gorm
URL: 
http://svn.gna.org/viewcvs/gnustep/apps/gorm/trunk/Palettes/2Controls/GormNSFormInspector.gorm/objects.gorm?rev=37909&r1=37908&r2=37909&view=diff
==============================================================================
Binary files - no diff available.


_______________________________________________
Gnustep-cvs mailing list
[email protected]
https://mail.gna.org/listinfo/gnustep-cvs

Reply via email to