Esempio n. 1
0
void ShowTime(int ShowAlways)
{
    static SYSTEMTIME lasttm= {};

    if (ShowAlways==2)
    {
        ClearStruct(lasttm);
        return;
    }

    if (Global->ScreenSaverActive)
        return;

    SYSTEMTIME tm;
    FAR_CHAR_INFO colon;
    GetLocalTime(&tm);
    GetText(ScrX-4+2,0,ScrX-4+2,0,&colon,sizeof(colon));
    if (!ShowAlways && lasttm.wMinute==tm.wMinute && lasttm.wHour==tm.wHour && colon.Char==L':')
        return;

    Global->ProcessShowClock++;

    lasttm=tm;
    string strClockText = str_printf(L"%02d:%02d",tm.wHour,tm.wMinute);
    GotoXY(ScrX-4,0);

    Frame *CurFrame = Global->FrameManager->GetTopModal();
    if (CurFrame)
    {
        int ModType=CurFrame->GetType();
        SetColor(ModType==MODALTYPE_VIEWER?COL_VIEWERCLOCK:(ModType==MODALTYPE_EDITOR?COL_EDITORCLOCK:COL_CLOCK));
        Text(strClockText);
    }

    Global->ProcessShowClock--;
}