void status() { _settextwindow(1,1,25,80); _settextposition(25,1); printf("Datei: %s | Zeile: %d/%d",file,von,ges); _settextwindow(1,1,24,1); }
void cwindow::onpagedown() { int i, nmoverows = m_nmaxrows - m_nactiverow + m_nmaxrows; for(i = 0; i < nmoverows; i ++) //move to next page'end { if(m_pitemactive->pnext == NULL) break; m_pitemactive = m_pitemactive->pnext; } if(m_nactiverow + i <= m_nmaxrows)//this is last a page { modifyattrib(m_npage, m_nactiverow + m_nrow1, 1 + m_ncol1, TEXTCOLOR, BKCOLOR, m_nmaxcols); m_nactiverow += i; modifyattrib(m_npage, m_nactiverow + m_nrow1, 1 + m_ncol1, SELCOLOR, WHITE, m_nmaxcols); return; } _settextwindow(m_nrow1 + 1, m_ncol1 + 1, m_nrow2 - 1, m_ncol2 - 1); _clearscreen(_GWINDOW); for(i = m_nmaxrows; i > 0; i --)//from next page'end to head outtext { _settextposition(i, 2); _outtext(m_pitemactive->szitemtext); if(m_pitemactive->ppre != NULL) m_pitemactive = m_pitemactive->ppre; } for(i = 0; i < m_nactiverow; i++) //modify pointer m_pitemactive = m_pitemactive->pnext; modifyattrib(m_npage, m_nactiverow + m_nrow1, 1 + m_ncol1, SELCOLOR, WHITE, m_nmaxcols); _settextwindow(1, 1, g_SysInfo.nmaxrows, g_SysInfo.nmaxcols); }
void cwindow::writeitem(int nrow,char * szstr) { _settextwindow(m_nrow1 + 1, m_ncol1 + 1, m_nrow2 - 1, m_ncol2 - 1); _settextposition(nrow, 2); _outtext(szstr); _settextwindow(1, 1, g_SysInfo.nmaxrows, g_SysInfo.nmaxcols); }
void cwindow::onpageup() { int i, nmoverows = m_nactiverow - 1 + m_nmaxrows; for(i = 0; i < nmoverows; i ++) //move to pre page'head { if(m_pitemactive->ppre == NULL) break; m_pitemactive = m_pitemactive->ppre; } if(m_nactiverow - i == 1)//this is first page { modifyattrib(m_npage, m_nactiverow + m_nrow1, 1 + m_ncol1, TEXTCOLOR, BKCOLOR, m_nmaxcols); m_nactiverow = 1; modifyattrib(m_npage, m_nactiverow + m_nrow1, 1 + m_ncol1, SELCOLOR, WHITE, m_nmaxcols); return; } _settextwindow(m_nrow1 + 1, m_ncol1 + 1, m_nrow2 - 1, m_ncol2 - 1); _clearscreen(_GWINDOW); for(i = 1; i <= m_nmaxrows; i ++)//from pre page'head to end outtext { _settextposition(i, 2); _outtext(m_pitemactive->szitemtext); if(m_pitemactive->pnext != NULL) m_pitemactive = m_pitemactive->pnext; } for(i = 0; i <= m_nmaxrows - m_nactiverow; i++) //modify pointer m_pitemactive = m_pitemactive->ppre; modifyattrib(m_npage, m_nactiverow + m_nrow1, 1 + m_ncol1, SELCOLOR, WHITE, m_nmaxcols); _settextwindow(1, 1, g_SysInfo.nmaxrows, g_SysInfo.nmaxcols); }
main() { int i; short r1, c1, r2, c2; char buf[ 80 ]; _setvideomode( _TEXTC80 ); _gettextwindow( &r1, &c1, &r2, &c2 ); _settextwindow( 5, 20, 20, 40 ); for( i = 1; i <= 20; ++i ) { sprintf( buf, "Line %d\n", i ); _outtext( buf ); } getch(); _settextwindow( r1, c1, r2, c2 ); _setvideomode( _DEFAULTMODE ); }
void cwindow::onkeyup() { if((m_pitemactive == NULL) || (m_pitemactive->ppre == NULL)) return; m_pitemactive = m_pitemactive->ppre; if(m_nactiverow - 1 < 1)//scroll down 1 row { modifyattrib(m_npage, m_nactiverow + m_nrow1, 1 + m_ncol1, TEXTCOLOR, BKCOLOR, m_nmaxcols); _settextwindow(m_nrow1 + 1, m_ncol1 + 1, m_nrow2 - 1, m_ncol2 - 1); _scrolltextwindow(-1);//scroll up 1 row _settextwindow(1, 1, g_SysInfo.nmaxrows, g_SysInfo.nmaxcols); writeitem(1, m_pitemactive->szitemtext); modifyattrib(m_npage, m_nactiverow + m_nrow1, 1 + m_ncol1, SELCOLOR, WHITE, m_nmaxcols); } else { modifyattrib(m_npage, m_nactiverow + m_nrow1, 1 + m_ncol1, TEXTCOLOR, BKCOLOR, m_nmaxcols); m_nactiverow --; modifyattrib(m_npage, m_nactiverow + m_nrow1, 1 + m_ncol1, SELCOLOR, WHITE, m_nmaxcols); } }
void cwindow::onctrl_home() { int i; _settextwindow(m_nrow1 + 1, m_ncol1 + 1, m_nrow2 - 1, m_ncol2 - 1); _clearscreen(_GWINDOW); m_pitemactive = m_pitemhead; for(i = 1; i <= m_nmaxrows; i ++) { if(i > m_nitemcount) break; _settextposition(i, 2); _outtext(m_pitemactive->szitemtext); if(m_pitemactive->pnext != NULL) m_pitemactive = m_pitemactive->pnext; } m_pitemactive = m_pitemhead; m_nactiverow = 1; modifyattrib(m_npage, m_nactiverow + m_nrow1, 1 + m_ncol1, SELCOLOR, WHITE, m_nmaxcols); _settextwindow(1, 1, g_SysInfo.nmaxrows, g_SysInfo.nmaxcols); }
void cwindow::onkeydown() { if((m_pitemactive == NULL) || (m_pitemactive->pnext == NULL)) { return; } m_pitemactive = m_pitemactive->pnext; if(m_nactiverow == m_nmaxrows)//scroll up { modifyattrib(m_npage, m_nactiverow + m_nrow1, 1 + m_ncol1, TEXTCOLOR, BKCOLOR, m_nmaxcols); _settextwindow(m_nrow1 + 1, m_ncol1 + 1, m_nrow2 - 1, m_ncol2 - 1); _scrolltextwindow(1);//scroll up 1 row _settextwindow(1, 1, g_SysInfo.nmaxrows, g_SysInfo.nmaxcols); writeitem(m_nmaxrows, m_pitemactive->szitemtext); modifyattrib(m_npage, m_nactiverow + m_nrow1, 1 + m_ncol1, SELCOLOR, WHITE, m_nmaxcols); } else//normal display { modifyattrib(m_npage, m_nactiverow + m_nrow1, 1 + m_ncol1, TEXTCOLOR, BKCOLOR, m_nmaxcols); m_nactiverow ++; modifyattrib(m_npage, m_nactiverow + m_nrow1, 1 + m_ncol1, SELCOLOR, WHITE, m_nmaxcols); } }
void main() { _clearscreen(0); for (i=0; i<8; i++) { _settextcolor(i); _outtext("FARBTEST!\n"); } _settextwindow(1,10,25,80); for (i=8; i<16; i++) { _settextcolor(i); _outtext("FARBTEST!\n"); } }
void cwindow::onctrl_end() { int i, j; _settextwindow(m_nrow1 + 1, m_ncol1 + 1, m_nrow2 - 1, m_ncol2 - 1); _clearscreen(_GWINDOW); m_pitemactive = m_pitemend; for(i = 1; i < m_nmaxrows; i ++) { if(m_pitemactive->ppre == NULL) break; m_pitemactive = m_pitemactive->ppre; } for(j = 1; j <= i; j ++)//from next page'end to head outtext { _settextposition(j, 2); _outtext(m_pitemactive->szitemtext); if(m_pitemactive->pnext != NULL) m_pitemactive = m_pitemactive->pnext; } m_pitemactive = m_pitemend; m_nactiverow = i; modifyattrib(m_npage, m_nactiverow + m_nrow1, 1 + m_ncol1, SELCOLOR, WHITE, m_nmaxcols); _settextwindow(1, 1, g_SysInfo.nmaxrows, g_SysInfo.nmaxcols); }
int destroy_windows( void ) { #ifdef DIAGNOSTICS fprintf(stderr, "entering DESTROY_WINDOWS\n"); #endif _settextwindow ( 1, 1, 24, 80 ); _settextposition ( 24, 1 ); #ifdef DIAGNOSTICS fprintf(stderr, "exit DESTROY_WINDOWS\n"); #endif return ( 0 ) ; }
void TW_Close_Window(void) { if (TW_anz_fenster>-1) { /* TM_Prot(); */ LoadWindow(fenster[TW_anz_fenster].adr, (char)(fenster[TW_anz_fenster].x-1), (char)(fenster[TW_anz_fenster].y-1), (char)(fenster[TW_anz_fenster].br+2), (char)(fenster[TW_anz_fenster].ho+2)); TW_anz_fenster--; if (TW_anz_fenster<0) _settextwindow(1,1,25,80); else _settextwindow((short)(fenster[TW_anz_fenster].y), (short)(fenster[TW_anz_fenster].x), (short)(fenster[TW_anz_fenster].y+ fenster[TW_anz_fenster].ho-1), (short)(fenster[TW_anz_fenster].x+ fenster[TW_anz_fenster].br-1)); } /* TM_Prot(); */ }
main() { int i; char buf[ 80 ]; _setvideomode( _TEXTC80 ); _settextwindow( 5, 20, 20, 40 ); for( i = 1; i <= 10; ++i ) { sprintf( buf, "Line %d\n", i ); _outtext( buf ); } getch(); _scrolltextwindow( _GSCROLLDOWN ); getch(); _scrolltextwindow( _GSCROLLUP ); getch(); _setvideomode( _DEFAULTMODE ); }
void quit() { _settextwindow(1,1,25,80); printf("\nEDIT -- %s",RB_COPYRIGHT); exit(0); }
int create_window( Window how_big, char *title, short border_color, long background_color, short foreground_color ) { static int window_counter; int i, j; #ifdef DIAGNOSTICS fprintf(stderr, "entering CREATE_WINDOW\n"); #endif _settextwindow(how_big.row1-1, how_big.col1-1, how_big.row2+1, how_big.col2+1); _wrapon ( _GWRAPOFF ); _setbkcolor ( background_color ); _clearscreen ( _GWINDOW ); _settextwindow(how_big.row1-1, how_big.col1-1, how_big.row2+2, how_big.col2+4); _settextcolor( border_color ); _settextposition(1,1); _outtext("É"); for (i=1; i<=(how_big.col2-how_big.col1) / 2 - strlen(title) / 2 - 1; i++) _outtext("Í"); if ( strlen ( title ) % 2 == 0 ) _outtext("Í"); _outtext(" "); _settextcolor( BRIGHT_WHITE ); _outtext(strupr(title)); _settextcolor( border_color ); _outtext(" "); for (i=1; i<=(how_big.col2-how_big.col1) / 2 - strlen(title) / 2 - 1; i++) _outtext("Í"); if ( strlen ( title ) % 2 == 0 ) _outtext("Í"); _outtext("»"); for (j=2; j<=how_big.row2-how_big.row1+2; j++) { _settextposition(j, 1); _outtext("º"); _settextposition(j, how_big.col2-how_big.col1+3); _outtext("º"); } _settextposition(how_big.row2-how_big.row1+3, 1); _outtext("È"); for (i=1; i<=how_big.col2-how_big.col1+1; i++) _outtext("Í"); _outtext("¼"); /* ** Draw shadows (shadows are necessary to avoid end-of-window wrapping). */ _setbkcolor ( BLACK ); for (i=2; i<=how_big.row2+2; i++) { _settextposition ( i, how_big.col2-how_big.col1+4 ); _outtext ( " " ); } for (j=2; j<=how_big.col2-how_big.col1+3; j++) { _settextposition ( how_big.row2+2, j ); _outtext ( " " ); } _setbkcolor ( background_color ); _settextcolor ( foreground_color ); _settextwindow(how_big.row1, how_big.col1, how_big.row2, how_big.col2); _settextposition(1,1); return(0); #ifdef DIAGNOSTICS fprintf(stderr, "exit CREATE_WINDOW\n"); #endif return(window_counter++); }
char TW_Open_Window (char x,char y,char br,char ho,char rahmen, char titelart,char ofs,char *titel) { unsigned char _far *adr; char ret=0,z,zw, rstr[11]; /* TM_Prot(); */ _settextwindow(1,1,25,80); adr=SaveWindow((char)(x-1),(char)(y-1),(char)(br+2),(char)(ho+2)); if (adr!=NULL) { TW_anz_fenster++; ret=1; fenster[TW_anz_fenster].x=x; fenster[TW_anz_fenster].y=y; fenster[TW_anz_fenster].ho=ho; fenster[TW_anz_fenster].br=br; fenster[TW_anz_fenster].adr=adr; switch(rahmen) { case TW_RAHMEN_S1:strcpy(rstr,"дЁз©ыю╢цаб"); break; case TW_RAHMEN_D1:strcpy(rstr,"м╨и╩╪х╣фпр"); break; case TW_RAHMEN_D2:strcpy(rstr,"мЁу╦╬т╢цаб"); break; default:strcpy(rstr," "); } _settextposition(y-1,x-1); printchar(rstr[2]); _settextposition(y-1,x+br); printchar(rstr[3]); _settextposition(y+ho,x+br); printchar(rstr[4]); _settextposition(y+ho,x-1); printchar(rstr[5]); for (z=x;z<x+br;z++) { _settextposition(y-1,z); printchar(rstr[0]); _settextposition(y+ho,z); printchar(rstr[0]); } for (z=y;z<y+ho;z++) { _settextposition(z,x-1); printchar(rstr[1]); for (zw=1;zw<=br;zw++) _outtext(" "); printchar(rstr[1]); } /* Titel setzten */ if (strcmp(titel,"")) { switch (titelart) { case TW_TITEL_OBEN: { _settextposition(y-1,x+ofs); printchar(rstr[6]); _outtext(titel); printchar(rstr[7]); } break; case TW_TITEL_UNTEN: { _settextposition(y+ho,x+ofs); printchar(rstr[6]); _outtext(titel); printchar(rstr[7]); } break; case TW_TITEL_RECHTS: { _settextposition(y+ofs,x-1); printchar(rstr[8]); for (z=1;(size_t)z<strlen(titel);z++) { _settextposition(y+ofs+z,x-1); printchar(titel[z]); } _settextposition(y+ofs+z,x-1); printchar(rstr[9]); } break; case TW_TITEL_LINKS: { _settextposition(y+ofs,x+br); printchar(rstr[8]); for (z=1;(size_t)z<strlen(titel);z++) { _settextposition(y+ofs+z,x+br); printchar(titel[z]); } _settextposition(y+ofs+z,x+br); printchar(rstr[9]); } break; } /*von SWITCH */ } /*von IF*/ _settextwindow((short)y, (short)x, (short)(y+ho-1), (short)(x+br-1)); } /* TM_Prot(); */ return(ret); }
void progressbar (int current, int total) { /* display a progress bar on screen */ char bar[51]; int percent; int width; int col; int row; /* assumes current >= 0, current <= total, and both current & total are non-negative, otherwise behavior may not be as expected. */ if (total > 0) { percent = 100 * current / total; } else { percent = 0; } if (percent < 0) { percent = 0; } else if (percent > 100) { percent = 100; } width = percent / 2; /* generate a string to display */ for (col = 0; col < width; col++) { /* bar[col] = '#'; */ bar[col] = 219; /* filled box */ } for ( ; col < 50; col++) { /* bar[col] = '-'; */ bar[col] = 176; /* shaded box */ } bar[50] = 0; /* print the string */ /* bar is 50 cols wide, so offset is 80 - 50 = 30 ; 30 / 2 = 15 */ _settextwindow (15,1 , 20,80); /* y1,x1 , y2,x2 */ _settextcolor (_YELLOW_); _setbkcolor (_BLUE_); /* only initalize/clear screen if 'current' is 0 */ if (current == 0) { _clearscreen (_GWINDOW); } for (row = 1; row <= 3; row++) { _settextposition (row, 15); /* relative to window */ cputs (bar); } _settextposition (3, 67); /* relative to window */ cprintf ("%d%%", percent); }