2016-12-08 3 views
1

行形式または列形式を指定してセルの色を付けることができますが、行または列全体に色付け/書式設定が適用されます。私はいくつかの基準に基づいて各セルの色を設定したいと思います。 setCDKMatrixCell()という名前のカラーリングタグをインクルードすると、それらの文字はセルの書式設定に使用されないセルテキストに設定されます。NCurses CDK Matrixでは、個々の細胞を着色できますか?

別の方法がありますか?またはこれを行うdrawCDKMatrixCellを変更する方法に関する任意のアイデアですか?

void drawCDKMatrixCell() { 
... 

if (matrix->dominant == ROW) { 
    highlight = matrix->rowtitle[absolute_row][0] & A_ATTRIBUTES; 
} 
else if (matrix->dominant == COL) { 
    highlight = matrix->coltitle[col][0] & A_ATTRIBUTES; 
} 

/* Draw in the cell info. */ 
for (x = 1; x <= matrix->colwidths[col]; x++) { 
     chtype ch = (((x <= infolen) && !isHiddenDisplayType(disptype)) 
        ? (CharOf(MATRIX_INFO(matrix, vrow, vcol)[x - 1]) | highlight) 
        : matrix->filler); 


    (void) mvwaddch(cell, 1, x, ch | highlight); 
} 
... 

答えて

1

細胞はプライベート関数を使用して描かれているだけで、セル内の各文字のためmvwaddchを使用しています

static void drawCDKMatrixCell (CDKMATRIX *matrix, 
           int row, 
           int col, 
           int vrow, 
           int vcol, 
           chtype attr, 
           boolean Box) 

。そのための情報が

int setCDKMatrixCell (CDKMATRIX *matrix, int row, int col, const char *value) 

を使用して設定し、char(ないchtype)として行列に格納されます。 drawCDKMatrixCell関数が変更された場合、例えば、char2Chtypeを使ってデータを構築すると、あなたは何を求めているのでしょうか。

+0

アドバイスありがとうございます。私は、私が色付けを担当していると信じているコードハンクを含めました。 char2Chtypeを使って色を設定する方法を教えていただけますか?私の混乱はb/cです。テキストはcharでcharと書かれ、 "highlight"とORされます。 – jterm