home *** CD-ROM | disk | FTP | other *** search
/ OpenStep 4.2J (Developer) / os42jdev.iso / NextDeveloper / Examples / AppKit / TextSizingExample / VertScrollAspect.m < prev   
Text File  |  1996-04-17  |  3KB  |  85 lines

  1. /*
  2.         VertScrollAspect.m
  3.         TextSizingExample
  4.  
  5.         Author: Mike Ferris
  6.  
  7.     You may freely copy, distribute and reuse the code in this example.
  8.     NeXT disclaims any warranty of any kind, expressed or implied,
  9.     as to its fitness for any particular use.
  10. */
  11.  
  12. #import "VertScrollAspect.h"
  13. #import "Controller.h"
  14.  
  15. @implementation VertScrollAspect
  16.  
  17. - (void)dealloc {
  18.     [[[self controller] textStorage] removeLayoutManager:_layoutManager];
  19.     [_layoutManager release];
  20.     [super dealloc];
  21. }
  22.  
  23. - (NSString *)aspectName {
  24.     return NSLocalizedString(@"Wrapping Scrolling Text", @"Display name for VertScrollAspect.");
  25. }
  26.  
  27. - (void)didLoadNib {
  28.     NSTextStorage *textStorage = [[self controller] textStorage];
  29.     NSView *aspectView = [self aspectView];
  30.     NSRect frame;
  31.     NSTextContainer *textContainer;
  32.     NSTextView *textView;
  33.     NSScrollView *scrollView;
  34.  
  35.     [super didLoadNib];
  36.  
  37.     // Create NSScrollView
  38.     frame = NSInsetRect([aspectView bounds], 8.0, 8.0);
  39.     scrollView = [[NSScrollView allocWithZone:[self zone]] initWithFrame:frame];
  40.     [scrollView setBorderType:NSBezelBorder];
  41.     [scrollView setHasVerticalScroller:YES];
  42.     [scrollView setHasHorizontalScroller:NO];
  43.     [scrollView setAutoresizingMask:(NSViewWidthSizable | NSViewHeightSizable)];
  44.     [[scrollView contentView] setAutoresizesSubviews:YES];
  45.     [aspectView addSubview:scrollView];
  46.     [scrollView release];
  47.     
  48.     // Set frame for content area of scroll view
  49.     frame.origin = NSMakePoint(0.0, 0.0);
  50.     frame.size = [scrollView contentSize];
  51.     
  52.     // Create NSSLayoutManager
  53.     _layoutManager = [[NSLayoutManager allocWithZone:[self zone]] init];
  54.     [textStorage addLayoutManager:_layoutManager];
  55.  
  56.     // Create and configure NSTextContainer
  57.     textContainer = [[NSTextContainer allocWithZone:[self zone]] initWithContainerSize:NSMakeSize(frame.size.width, LargeNumberForText)];
  58.     [textContainer setWidthTracksTextView:YES];
  59.     [textContainer setHeightTracksTextView:NO];
  60.     [_layoutManager addTextContainer:textContainer];
  61.     [textContainer release];
  62.  
  63.     // Create and configure NSTextView
  64.     textView = [[NSTextView allocWithZone:[self zone]] initWithFrame:frame textContainer:textContainer];
  65.     [textView setMinSize:frame.size];
  66.     [textView setMaxSize:NSMakeSize(LargeNumberForText, LargeNumberForText)];
  67.     [textView setHorizontallyResizable:NO];
  68.     [textView setVerticallyResizable:YES];
  69.     [textView setAutoresizingMask:NSViewWidthSizable];
  70.     [textView setSelectable:YES];
  71.     [textView setEditable:YES];
  72.     [textView setRichText:YES];
  73.     [textView setImportsGraphics:YES];
  74.     [textView setUsesFontPanel:YES];
  75.     [textView setUsesRuler:YES];
  76.     [scrollView setDocumentView:textView];
  77.     [textView release];
  78. }
  79.  
  80. - (void)didSwapIn {
  81.     [[[self aspectView] window] makeFirstResponder:[_layoutManager firstTextView]];
  82. }
  83.  
  84. @end
  85.