From 247d63be60587c5ced582a817ba386b953a89990 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Sun, 3 Jun 2018 20:55:08 -0400 Subject: [PATCH] Added a table.h and simplified uiprivTableColumn into an abstract interface. --- darwin/table.h | 25 +++++++++++++++++++++++++ darwin/table.m | 19 +++---------------- darwin/tablecolumn.m | 38 ++++++++++---------------------------- 3 files changed, 38 insertions(+), 44 deletions(-) create mode 100644 darwin/table.h diff --git a/darwin/table.h b/darwin/table.h new file mode 100644 index 00000000..dbc26520 --- /dev/null +++ b/darwin/table.h @@ -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 diff --git a/darwin/table.m b/darwin/table.m index 62b465fc..ac2aef63 100644 --- a/darwin/table.m +++ b/darwin/table.m @@ -1,5 +1,6 @@ -xx 3 june 2018 +// 3 june 2018 #import "uipriv_darwin.h" +#import "table.h" @interface uiprivTableModel : NSObject { uiTableModel *m; @@ -7,21 +8,7 @@ xx 3 june 2018 - (id)initWithModel:(uiTableModel *)model; @end -struct uiTableModel { - uiTableModelHandler *mh; - uiprivTableModel *m; - NSMutableArray *tables; -}; - -struct uiTable { - uiDarwinControl c; - NSScrollView *sv; - NSTableView *tv; - uiprivScrollViewData *d; - int backgroundColumn; -}; - -@implementation tableModel +@implementation uiprivTableModel - (id)initWithModel:(uiTableModel *)m { diff --git a/darwin/tablecolumn.m b/darwin/tablecolumn.m index cb7624b3..e01fb546 100644 --- a/darwin/tablecolumn.m +++ b/darwin/tablecolumn.m @@ -1,5 +1,6 @@ // 3 june 2018 #import "uipriv_darwin.h" +#import "table.h" // values from interface builder #define textColumnLeading 2 @@ -43,18 +44,7 @@ static void layoutCellSubview(NSView *superview, NSView *subview, NSView *leadin @"uiTable cell subview bottom constraint")]; } -@interface uiprivColumnCellView : NSTableCellView -- (void)uiprivUpdate:(NSInteger)row; -@end - -@interface uiprivTableColumn : NSTableColumn { - uiprivColumnCellView *(^mkCell)(void); -} -- (id)initWithIdentifier:(NSUserInterfaceItemIdentifier)ident mkCellView:(uiprivColumnCellView *(^)(void))f; -- (uiprivColumnCellView *)uiprivMakeCellView; -@end - -@implementation uiprivColumnCellView +@implementation uiprivTableCellView - (void)uiprivUpdate:(NSInteger)row { @@ -65,17 +55,9 @@ static void layoutCellSubview(NSView *superview, NSView *subview, NSView *leadin @implementation uiprivTableColumn -- (id)initWithIdentifier:(NSUserInterfaceItemIdentifier)ident mkCellView:(uiprivColumnCellView *(^)(void))f +- (uiprivTableCellView *)uiprivMakeCellView { - self = [super initWithIdentifier:ident]; - if (self) - self->mkCell = f; - return self; -} - -- (uiprivColumnCellView *)uiprivMakeCellView -{ - return (self->mkCell)(); + [self doesNotRecognizeSelector:_cmd]; } @end @@ -119,7 +101,7 @@ struct textColumnCreateParams { int checkboxEditableColumn; }; -@interface uiprivTextImageCheckboxColumnCellView : uiprivColumnCellView { +@interface uiprivTextImageCheckboxTableCellView : uiprivTableCellView { uiTable *t; uiTableModel *m; @@ -140,7 +122,7 @@ struct textColumnCreateParams { - (IBAction)uiprivOnCheckboxAction:(id)sender; @end -@implementation uiprivTextColumnCellView +@implementation uiprivTextTableCellView - (id)initWithFrame:(NSRect)r params:(struct textColumnCreateParams *)p { @@ -334,7 +316,7 @@ struct textColumnCreateParams { @end -@interface uiprivProgressBarColumnCellView : uiprivColumnCellView { +@interface uiprivProgressBarTableCellView : uiprivTableCellView { uiTable *t; uiTableModel *m; NSProgressIndicator *p; @@ -343,7 +325,7 @@ struct textColumnCreateParams { - (id)initWithFrame:(NSRect)r table:(uiTable *)table model:(uiTableModel *)model modelColumn:(int)mc; @end -@implementation uiprivProgressBarColumnCellView +@implementation uiprivProgressBarTableCellView - (id)initWithFrame:(NSRect)r table:(uiTable *)table model:(uiTableModel *)model modelColumn:(int)mc { @@ -398,7 +380,7 @@ struct textColumnCreateParams { @end -@interface uiprivButtonColumnCellView : uiprivColumnCellView { +@interface uiprivButtonTableCellView : uiprivTableCellView { uiTable *t; uiTableModel *m; NSButton *b; @@ -409,7 +391,7 @@ struct textColumnCreateParams { - (IBAction)uiprivOnClicked:(id)sender; @end -@implementation uiprivProgressBarColumnCellView +@implementation uiprivProgressBarTableCellView - (id)initWithFrame:(NSRect)r table:(uiTable *)table model:(uiTableModel *)model modelColumn:(int)mc editableColumn:(int)ec {