// Copyright (c) 2003 Juraj Kolesár (koli) #include "tt.h" int tt_datum_get(POS point, char *date) { int Pos = 0; int DotGap = 0; int Input; bool End = false; char new_Input[8]; if (tt_date_valid(date)) { new_Input[0]=date[6]; new_Input[1]=date[7]; new_Input[2]=date[4]; new_Input[3]=date[5]; new_Input[4]=date[0]; new_Input[5]=date[1]; new_Input[6]=date[2]; new_Input[7]=date[3]; mvwprintw(GET_POS(point), "%c%c.%c%c.%c%c%c%c", new_Input[0],new_Input[1],new_Input[2],new_Input[3], new_Input[4],new_Input[5],new_Input[6],new_Input[7]); } else { for (Pos=0; Pos < 8; Pos++) new_Input[Pos]=' '; new_Input[8]='\0'; Pos = 0; mvwprintw(GET_POS(point), "__.__.____"); } do { wmove(GET_POS(point) + DotGap + Pos); wrefresh(point.win); Input = tt_input(); switch (Input) { case __TT_LEFT: if ((Pos == 2) || (Pos == 4)) DotGap--; if (Pos > 0) Pos--; break; case __TT_RIGHT: if ((Pos == 1) || (Pos == 3)) DotGap++; if (Pos < 7) Pos++; break; case __TT_BACKSPACE: if (Pos > 0) { if ((Pos == 2) || (Pos == 4)) DotGap--; Pos--; new_Input[Pos]=0; mvwprintw(GET_POS(point) + DotGap + Pos, "%c", '_'); } break; case __TT_SPACE: //spacebar new_Input[Pos]=0; mvwprintw(GET_POS(point) + DotGap + Pos, "%c", '_'); if (Pos < 7) { if ((Pos == 1) || (Pos == 3)) DotGap++; Pos++; } break; case __TT_INS: //TODO UGLY CODE blueee tt_date_now(new_Input); tt_datum_draw(point, new_Input); tt_datum_now(new_Input); break; case __TT_TAB: End = true; break; case __TT_ENTER: End = true; break; case __TT_ESC: return(Input); break; default: if ((47 < Input) && (Input < 58)) { //number inputs new_Input[Pos] = Input; mvwprintw(GET_POS(point) + DotGap + Pos, "%c", Input); if ((Pos == 1) || (Pos == 3)) DotGap++; if (Pos < 7) Pos++; } } } while (!End); // if (strlen(new_Input) != 8) date[0] = '\0'; // else date[0]=new_Input[4]; date[1]=new_Input[5]; date[2]=new_Input[6]; date[3]=new_Input[7]; date[4]=new_Input[2]; date[5]=new_Input[3]; date[6]=new_Input[0]; date[7]=new_Input[1]; return(Input); } int tt_date_valid(char *date) { if (strlen(date) > 0) return(true); return(false); } int tt_datum_draw(POS point, char *date) { if (strlen(date) > 0) { mvwprintw(GET_POS(point), "%c%c.%c%c.%c%c%c%c", date[6],date[7],date[4],date[5], date[0],date[1],date[2],date[3]); } else mvwprintw(GET_POS(point), "__.__.____"); return __TT_OK; } int tt_date_now(char *date) { time_t now = time(0); strftime(date, 9, "%Y%m%d", localtime(&now)); } int tt_datum_now(char *date) { time_t now = time(0); strftime(date, 9, "%d%m%Y", localtime(&now)); }