This is CookieFileListView.m in view mode; [Download] [Up]
/* Generated by Interface Builder */ #import "CookieFileListView.h" #import "ExportCell.h" #import <appkit/appkit.h> #import "CookieFile.h" #import <string.h> #undef ABS #import <c.h> @implementation CookieFileListView - (Matrix *)matrix { return DocMatrix; } - initFrame :(NXRect *)theFrame { NXRect scrollRect,matrixRect; NXSize cellSize; [super initFrame:theFrame]; // Set the scrollView's attributes [self setBorderType:NX_BEZEL]; [self setVertScrollerRequired:YES]; [self setHorizScrollerRequired:NO]; // get the scrollView's dimensions [self getFrame:&scrollRect]; // Determine the matrix bounds [ScrollView getContentSize:&(matrixRect.size) forFrameSize:&(scrollRect.size) horizScroller:NO vertScroller:YES borderType:NX_BEZEL]; // Prepare a Matrix to go inside our scrollView DocMatrix = [[Matrix alloc] initFrame:&matrixRect mode:NX_HIGHLIGHTMODE cellClass:[ExportCell class] numRows:0 numCols:1]; // resize the matrix's cells and size the matrix to contain them [DocMatrix getCellSize:&cellSize]; cellSize.width = NX_WIDTH(&matrixRect); [DocMatrix setCellSize:&cellSize]; [DocMatrix sizeToCells]; [DocMatrix setAutosizeCells:YES]; /* * when the user clicks in the matrix and then drags the mouse out of * scrollView's contentView, we want the matrix to scroll */ [DocMatrix setAutoscroll:YES]; // stick the matrix in our scrollview [self setDocView:DocMatrix]; // set things up so that the matrix will resize properly [[DocMatrix superview] setAutoresizeSubviews:YES]; [DocMatrix setAutosizing:NX_WIDTHSIZABLE]; return self; } - syncView :(List *)mylist { int count,maxcount = [mylist count]; while([DocMatrix cellCount] < maxcount) [DocMatrix addRow]; while([DocMatrix cellCount] > maxcount) [DocMatrix removeRowAt:0 andFree:TRUE]; [DocMatrix sizeToCells]; for(count = 0; count < maxcount; count++) { CookieFile *cookieFile = [mylist objectAt:count]; ExportCell *myCell; myCell = [DocMatrix cellAt:count:0]; [myCell setTitle:[cookieFile filename]]; if([cookieFile selected]) [myCell setState:TRUE]; else [myCell setState:FALSE]; [DocMatrix drawCellAt :count :0]; } return self; } @end
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.