Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008 #ifdef HAVE_CONFIG_H
00009 # include <config.h>
00010 #endif
00011
00012
00013 #import "CocoaScrollBox.h"
00014
00015 #ifndef COCOA_SCROLL_BOX_M
00016 #define COCOA_SCROLL_BOX_M
00017
00018 @implementation CocoaScrollBox
00019
00020 @synthesize fillX;
00021 @synthesize fillY;
00022
00023 - (id)initWithFrame:(NSRect)frame {
00024 self = [super initWithFrame:frame];
00025 if (self) {
00026 fillX = NO;
00027 fillY = NO;
00028
00029 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(layoutSubviews) name:NSViewFrameDidChangeNotification object:self];
00030 }
00031 return self;
00032 }
00033
00034 -(void) dealloc {
00035 [[NSNotificationCenter defaultCenter] removeObserver:self];
00036
00037 [super dealloc];
00038 }
00039
00040
00041
00042
00043
00044
00045
00046 #define borderDistance 8.0
00047 #define cellDistance 4.0
00048
00049 -(void) layoutSubviews {
00050
00051 NSView *documentView = [self documentView];
00052
00053 if (documentView && [documentView conformsToProtocol:@protocol(CocoaGwenGUIProtocol)]) {
00054 NSSize neededMinSize = [(<CocoaGwenGUIProtocol>)documentView minSize];
00055 NSSize contentSize = [self contentSize];
00056
00057 NSRect newFrame = NSMakeRect(0.0, 0.0, neededMinSize.width, neededMinSize.height);
00058 if ([(<CocoaGwenGUIProtocol>)documentView fillX] && neededMinSize.width < contentSize.width)
00059 newFrame.size.width = contentSize.width;
00060 if ([(<CocoaGwenGUIProtocol>)documentView fillY] && neededMinSize.height < contentSize.height)
00061 newFrame.size.height = contentSize.height;
00062
00063 [documentView setFrame:newFrame];
00064 }
00065 }
00066
00067 -(void) setLayoutedDocumentView:(NSView*)new_documentView {
00068 [self setDocumentView:new_documentView];
00069 [self layoutSubviews];
00070 }
00071
00072 #pragma mark Protocoll Methods
00073
00074 - (NSSize) minSize {
00075 return NSMakeSize(50.0, 50.0);
00076 }
00077
00078
00079
00080
00081
00082
00083
00084
00085
00086
00087
00088
00089 @end
00090
00091 #endif