作者itoc, 信區: itoc
標題[功能] menu.c 使選單下面狀態列的時間一直在跑
時間05/05/28
作者: itoc (拯救一個靈魂) 看板: plan
標題: [功能] 使選單最後一行 feeter 的時間一直在跑
時間: Wed Jun 12 02:22:11 2002 Updated: 2005/05/28
※ 引述《tandrian.bbs@ntcb.twbbs.org.tw (幻域魔城後祖)》之銘言:
> 我想要讓左下角的時間一直跑~~!!
> 不知道我這點子可行嗎?
: menu.c:status_foot()
int ufo;
time_t now;
+ struct tm *ptime;
+ struct timeval tv = {1, 0};
...
...
if (now > uptime) /* 過了子夜要更新生日旗標 */
{
- struct tm *ptime;
...
...
- ufo = (now - (uptime - 86400)) / 60; /* 借用 ufo 來做時間(分) */
- sprintf(feeter, COLOR1 " %8.8s %02d:%02d " COLOR2
- " 人數 %-4d 我是 %-12s %s [呼叫]%-9s ",
- fshm->today, ufo / 60, ufo % 60,
- total_user, cuser.userid, coinmsg, flagmsg);
- outf(feeter);
+ while (1)
+ {
+ now++;
+ ptime = localtime(&now);
+
+ // 版面可自行調整
+ sprintf(feeter, COLOR1 " %8.8s %02d:%02d:%02d " COLOR2
+ " 人: %-4d 我是 %-12s %s [呼]%-9s ",
+ fshm->today, ptime->tm_hour, ptime->tm_min, ptime->tm_sec,
+ total_user, cuser.userid, coinmsg, flagmsg);
+
+ outz(feeter);
+ refresh();
+
+ ufo = 1;
+ if (select(1, (fd_set *) &ufo, NULL, NULL, &tv) > 0)
+ return vkey();
+ }
}
: menu.c:movie() 最後一行的 status_foot() 拿掉
if ((bbsmode <= M_XMENU) && (cuser.ufo & UFO_MOVIE))
film_out(FILM_MOVIE, MENU_XNOTE);
- status_foot();
: menu.c:menu() 最後 cmd = vkey(); 換成 cmd = status_foot();
#else
move(MENU_XPOS + cc, MENU_YPOS + 1);
#endif
}
menu_key:
- cmd = vkey();
+ cmd = status_foot();
}
}
--
其實時間靜態好..動態數秒其實沒什麼用
但是要付出每秒更新一次 feeter 的代價
--
□ 本文章由 itoc 從 nctu5566.Dorm3.NCTU.edu.tw 發表精華選讀←離開[主題上]主題下(k)上篇(j)下篇S/a搜尋 G串列 TAB精華 ↑↓捲 Pg/Space翻