回精華區
作者itoc.bbs@processor.tfcis.org (綠巨人好客?) 看板: plan
標題Re: [功能]能自訂看板分類顏色嗎
時間XEON (Tue, 15 Jul 2003 01:55:47 +0800 (CST)) Updated: 2005/06/16
※ 引述《starunion.bbs@xeon.tfcis.org (             )》之銘言:
> 能自訂看板分類顏色嗎?

: board.c:class_item()

- prints("%6d%c%s%-13s\033[1;3%dm%-5s\033[m%s %-*.*s %s %.*s\n",
+ prints("%6d%c%s%-13s\033[%sm%-4s\033[m %s %-*.*s %s %.*s\n",
    num, token, str, brd->brdname,
-   brd->class[3] & 7, brd->class,
+   class_color(brd->class), brd->class,
    brd->bvote ? "\033[1;33m投" :
    (brd->battr & BRD_NOTRAN ? ICON_NOTRAN_BRD : ICON_TRAN_BRD),
    brd->title, brd->BM);

: board.c:class_body()

        short *chx;
        char *img, *str;
+       char class[BCLEN + 1];

        img = class_img;
        chx = (short *) img + (CH_END - chn);
        str = img + *chx;
+       str_ncpy(class, str + BNLEN + 1, BCLEN + 1);
-       prints("%6d%c  %-13.13s\033[1;3%dm%-5.5s\033[m%s\n",
+       prints("%6d%c  %-13.13s\033[%sm%-5.5s\033[m%s\n",
          cnt, class_bits[-chn] & BRD_Z_BIT ? TOKEN_ZAP_BRD : ' ',
-         str, str[BNLEN + 4] & 7, str + BNLEN + 1, ...);
+         str, class_color(class), str + BNLEN + 1, ...);

: board.c:class_color() 加在 class_item() 前面

static char *       /* 回傳顏色 */
class_color(class)
  char *class;
{
  // 自行改 table[] 及 color[] 對應 
  /* 分類與其對應顏色,一個對一個,NULL 則是對應其他未列出的分類 */
  static char *table[] =
  {
    "人文",    "文學",
    "站務",
    "個人",
    "音樂",    "藝人",    "電影",
    NULL
  };
  static char *color[] =
  {
    "1;35",    "1;35",
    "1;34;41",
    "1;32",
    "1;31",    "1;31",    "1;31",
    "1;33;45"
  };

  int i;
  char *str;

  for (i = 0; str = table[i]; i++)
  {
    if (!strcmp(class, str))
      break;
  }
  return color[i];
}

--
| Origin |  MapleBBS-itoc 動力核心  processor.tfcis.org 
| Author | itoc.dorm11.nctu.edu.tw
精華選讀←離開[主題上]主題下(k)上篇(j)下篇S/a搜尋 G串列 TAB精華 ↑↓捲 Pg/Space翻