Added a table.h and simplified uiprivTableColumn into an abstract interface.

This commit is contained in:
Pietro Gagliardi 2018-06-03 20:55:08 -04:00
parent da2a4c1e36
commit 247d63be60
3 changed files with 38 additions and 44 deletions

25
darwin/table.h Normal file
View File

@ -0,0 +1,25 @@
// 3 june 2018
// table.m
// TODO get rid of forward declaration
@class uiprivTableModel;
struct uiTableModel {
uiTableModelHandler *mh;
uiprivTableModel *m;
NSMutableArray *tables;
};
struct uiTable {
uiDarwinControl c;
NSScrollView *sv;
NSTableView *tv;
uiprivScrollViewData *d;
int backgroundColumn;
};
// tablecolumn.m
@interface uiprivTableCellView : NSTableCellView
- (void)uiprivUpdate:(NSInteger)row;
@end
@interface uiprivTableColumn : NSTableColumn
- (uiprivColumnCellView *)uiprivMakeCellView;
@end

View File

@ -1,5 +1,6 @@
xx 3 june 2018 // 3 june 2018
#import "uipriv_darwin.h" #import "uipriv_darwin.h"
#import "table.h"
@interface uiprivTableModel : NSObject<NSTableViewDataSource, NSTableViewDelegate> { @interface uiprivTableModel : NSObject<NSTableViewDataSource, NSTableViewDelegate> {
uiTableModel *m; uiTableModel *m;
@ -7,21 +8,7 @@ xx 3 june 2018
- (id)initWithModel:(uiTableModel *)model; - (id)initWithModel:(uiTableModel *)model;
@end @end
struct uiTableModel { @implementation uiprivTableModel
uiTableModelHandler *mh;
uiprivTableModel *m;
NSMutableArray *tables;
};
struct uiTable {
uiDarwinControl c;
NSScrollView *sv;
NSTableView *tv;
uiprivScrollViewData *d;
int backgroundColumn;
};
@implementation tableModel
- (id)initWithModel:(uiTableModel *)m - (id)initWithModel:(uiTableModel *)m
{ {

View File

@ -1,5 +1,6 @@
// 3 june 2018 // 3 june 2018
#import "uipriv_darwin.h" #import "uipriv_darwin.h"
#import "table.h"
// values from interface builder // values from interface builder
#define textColumnLeading 2 #define textColumnLeading 2
@ -43,18 +44,7 @@ static void layoutCellSubview(NSView *superview, NSView *subview, NSView *leadin
@"uiTable cell subview bottom constraint")]; @"uiTable cell subview bottom constraint")];
} }
@interface uiprivColumnCellView : NSTableCellView @implementation uiprivTableCellView
- (void)uiprivUpdate:(NSInteger)row;
@end
@interface uiprivTableColumn : NSTableColumn {
uiprivColumnCellView *(^mkCell)(void);
}
- (id)initWithIdentifier:(NSUserInterfaceItemIdentifier)ident mkCellView:(uiprivColumnCellView *(^)(void))f;
- (uiprivColumnCellView *)uiprivMakeCellView;
@end
@implementation uiprivColumnCellView
- (void)uiprivUpdate:(NSInteger)row - (void)uiprivUpdate:(NSInteger)row
{ {
@ -65,17 +55,9 @@ static void layoutCellSubview(NSView *superview, NSView *subview, NSView *leadin
@implementation uiprivTableColumn @implementation uiprivTableColumn
- (id)initWithIdentifier:(NSUserInterfaceItemIdentifier)ident mkCellView:(uiprivColumnCellView *(^)(void))f - (uiprivTableCellView *)uiprivMakeCellView
{ {
self = [super initWithIdentifier:ident]; [self doesNotRecognizeSelector:_cmd];
if (self)
self->mkCell = f;
return self;
}
- (uiprivColumnCellView *)uiprivMakeCellView
{
return (self->mkCell)();
} }
@end @end
@ -119,7 +101,7 @@ struct textColumnCreateParams {
int checkboxEditableColumn; int checkboxEditableColumn;
}; };
@interface uiprivTextImageCheckboxColumnCellView : uiprivColumnCellView { @interface uiprivTextImageCheckboxTableCellView : uiprivTableCellView {
uiTable *t; uiTable *t;
uiTableModel *m; uiTableModel *m;
@ -140,7 +122,7 @@ struct textColumnCreateParams {
- (IBAction)uiprivOnCheckboxAction:(id)sender; - (IBAction)uiprivOnCheckboxAction:(id)sender;
@end @end
@implementation uiprivTextColumnCellView @implementation uiprivTextTableCellView
- (id)initWithFrame:(NSRect)r params:(struct textColumnCreateParams *)p - (id)initWithFrame:(NSRect)r params:(struct textColumnCreateParams *)p
{ {
@ -334,7 +316,7 @@ struct textColumnCreateParams {
@end @end
@interface uiprivProgressBarColumnCellView : uiprivColumnCellView { @interface uiprivProgressBarTableCellView : uiprivTableCellView {
uiTable *t; uiTable *t;
uiTableModel *m; uiTableModel *m;
NSProgressIndicator *p; NSProgressIndicator *p;
@ -343,7 +325,7 @@ struct textColumnCreateParams {
- (id)initWithFrame:(NSRect)r table:(uiTable *)table model:(uiTableModel *)model modelColumn:(int)mc; - (id)initWithFrame:(NSRect)r table:(uiTable *)table model:(uiTableModel *)model modelColumn:(int)mc;
@end @end
@implementation uiprivProgressBarColumnCellView @implementation uiprivProgressBarTableCellView
- (id)initWithFrame:(NSRect)r table:(uiTable *)table model:(uiTableModel *)model modelColumn:(int)mc - (id)initWithFrame:(NSRect)r table:(uiTable *)table model:(uiTableModel *)model modelColumn:(int)mc
{ {
@ -398,7 +380,7 @@ struct textColumnCreateParams {
@end @end
@interface uiprivButtonColumnCellView : uiprivColumnCellView { @interface uiprivButtonTableCellView : uiprivTableCellView {
uiTable *t; uiTable *t;
uiTableModel *m; uiTableModel *m;
NSButton *b; NSButton *b;
@ -409,7 +391,7 @@ struct textColumnCreateParams {
- (IBAction)uiprivOnClicked:(id)sender; - (IBAction)uiprivOnClicked:(id)sender;
@end @end
@implementation uiprivProgressBarColumnCellView @implementation uiprivProgressBarTableCellView
- (id)initWithFrame:(NSRect)r table:(uiTable *)table model:(uiTableModel *)model modelColumn:(int)mc editableColumn:(int)ec - (id)initWithFrame:(NSRect)r table:(uiTable *)table model:(uiTableModel *)model modelColumn:(int)mc editableColumn:(int)ec
{ {