Added a way to set the text color of a part.
This commit is contained in:
parent
9d22d741c6
commit
4914d0c64c
|
@ -19,6 +19,7 @@ enum {
|
||||||
@interface tablePart : NSObject
|
@interface tablePart : NSObject
|
||||||
@property int type;
|
@property int type;
|
||||||
@property int textColumn;
|
@property int textColumn;
|
||||||
|
@property int textColorColumn;
|
||||||
@property int expand;
|
@property int expand;
|
||||||
- (NSView *)mkView:(uiTableModel *)m row:(int)row;
|
- (NSView *)mkView:(uiTableModel *)m row:(int)row;
|
||||||
@end
|
@end
|
||||||
|
@ -150,6 +151,16 @@ done:
|
||||||
|
|
||||||
@implementation tablePart
|
@implementation tablePart
|
||||||
|
|
||||||
|
- (id)init
|
||||||
|
{
|
||||||
|
self = [super init];
|
||||||
|
if (self) {
|
||||||
|
self.textColumn = -1;
|
||||||
|
self.textColorColumn = -1;
|
||||||
|
}
|
||||||
|
return self;
|
||||||
|
}
|
||||||
|
|
||||||
- (NSView *)mkView:(uiTableModel *)m row:(int)row
|
- (NSView *)mkView:(uiTableModel *)m row:(int)row
|
||||||
{
|
{
|
||||||
void *data;
|
void *data;
|
||||||
|
@ -163,7 +174,15 @@ done:
|
||||||
str = toNSString((char *) data);
|
str = toNSString((char *) data);
|
||||||
uiFree(data);
|
uiFree(data);
|
||||||
tf = newLabel(str);
|
tf = newLabel(str);
|
||||||
// TODO set wrap and ellipsize modes
|
// TODO set wrap and ellipsize modes?
|
||||||
|
if (self.textColorColumn != -1) {
|
||||||
|
NSColor *color;
|
||||||
|
|
||||||
|
color = (NSColor *) ((*(m->mh->CellValue))(m->mh, m, row, self.textColorColumn));
|
||||||
|
if (color != nil)
|
||||||
|
[tf setTextColor:color];
|
||||||
|
// TODO release color
|
||||||
|
}
|
||||||
view = tf;
|
view = tf;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -268,6 +287,14 @@ void uiTableColumnAppendTextPart(uiTableColumn *c, int modelColumn, int expand)
|
||||||
[c->parts addObject:part];
|
[c->parts addObject:part];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void uiTableColumnPartSetTextColor(uiTableColumn *c, int part, int modelColumn)
|
||||||
|
{
|
||||||
|
tablePart *p;
|
||||||
|
|
||||||
|
p = (tablePart *) [c->parts objectAtIndex:part];
|
||||||
|
p.textColorColumn = modelColumn;
|
||||||
|
}
|
||||||
|
|
||||||
uiDarwinControlAllDefaultsExceptDestroy(uiTable, sv)
|
uiDarwinControlAllDefaultsExceptDestroy(uiTable, sv)
|
||||||
|
|
||||||
static void uiTableDestroy(uiControl *c)
|
static void uiTableDestroy(uiControl *c)
|
||||||
|
|
|
@ -5,12 +5,12 @@ static uiTableModelHandler mh;
|
||||||
|
|
||||||
static int modelNumColumns(uiTableModelHandler *mh, uiTableModel *m)
|
static int modelNumColumns(uiTableModelHandler *mh, uiTableModel *m)
|
||||||
{
|
{
|
||||||
return 4;
|
return 5;
|
||||||
}
|
}
|
||||||
|
|
||||||
static uiTableModelColumnType modelColumnType(uiTableModelHandler *mh, uiTableModel *m, int column)
|
static uiTableModelColumnType modelColumnType(uiTableModelHandler *mh, uiTableModel *m, int column)
|
||||||
{
|
{
|
||||||
if (column == 3)
|
if (column == 3 || column == 4)
|
||||||
return uiTableModelColumnColor;
|
return uiTableModelColumnColor;
|
||||||
return uiTableModelColumnString;
|
return uiTableModelColumnString;
|
||||||
}
|
}
|
||||||
|
@ -31,6 +31,11 @@ static void *modelCellValue(uiTableModelHandler *mh, uiTableModel *m, int row, i
|
||||||
return uiTableModelGiveColor(0, 0.5, 1, 0.5);
|
return uiTableModelGiveColor(0, 0.5, 1, 0.5);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
if (col == 4) {
|
||||||
|
if ((row % 2) == 1)
|
||||||
|
return uiTableModelGiveColor(0.5, 0, 0.75, 1);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
switch (col) {
|
switch (col) {
|
||||||
case 0:
|
case 0:
|
||||||
sprintf(buf, "Row %d", row);
|
sprintf(buf, "Row %d", row);
|
||||||
|
@ -72,6 +77,7 @@ uiBox *makePage16(void)
|
||||||
tc = uiTableAppendColumn(t, "Column 2");
|
tc = uiTableAppendColumn(t, "Column 2");
|
||||||
uiTableColumnAppendTextPart(tc, 1, 0);
|
uiTableColumnAppendTextPart(tc, 1, 0);
|
||||||
uiTableColumnAppendTextPart(tc, 2, 1);
|
uiTableColumnAppendTextPart(tc, 2, 1);
|
||||||
|
uiTableColumnPartSetTextColor(tc, 1, 4);
|
||||||
|
|
||||||
uiTableSetRowBackgroundColorModelColumn(t, 3);
|
uiTableSetRowBackgroundColorModelColumn(t, 3);
|
||||||
|
|
||||||
|
|
|
@ -31,6 +31,7 @@ _UI_EXTERN void uiTableModelRowDeleted(uiTableModel *m, int oldIndex);
|
||||||
typedef struct uiTableColumn uiTableColumn;
|
typedef struct uiTableColumn uiTableColumn;
|
||||||
|
|
||||||
_UI_EXTERN void uiTableColumnAppendTextPart(uiTableColumn *c, int modelColumn, int expand);
|
_UI_EXTERN void uiTableColumnAppendTextPart(uiTableColumn *c, int modelColumn, int expand);
|
||||||
|
_UI_EXTERN void uiTableColumnPartSetTextColor(uiTableColumn *c, int part, int modelColumn);
|
||||||
|
|
||||||
typedef struct uiTable uiTable;
|
typedef struct uiTable uiTable;
|
||||||
#define uiTable(this) ((uiTable *) (this))
|
#define uiTable(this) ((uiTable *) (this))
|
||||||
|
|
Loading…
Reference in New Issue