/*-----------------------------------------------------------------------------------*/ void ctk_draw_dialog(struct ctk_window *dialog) { unsigned char x, y; unsigned char i; unsigned char x1, y1, x2, y2; /* textcolor(DIALOGCOLOR);*/ textcolor(VNC_OUT_WINDOWCOLOR + CTK_FOCUS_DIALOG); x = dialog->x; y = dialog->y + 1; x1 = x + 1; y1 = y + 1; x2 = x1 + dialog->w; y2 = y1 + dialog->h; /* Draw dialog frame. */ for(i = y1; i < y1 + dialog->h; ++i) { cputcxy(x, i, CH_DIALOGLBORDER); cputcxy(x2, i, CH_DIALOGRBORDER); } /* cvlinexy(x, y1, dialog->h); cvlinexy(x2, y1, dialog->h);*/ for(i = x1; i < x2; ++i) { cputcxy(i, y, CH_DIALOGUPPERBORDER); cputcxy(i, y2, CH_DIALOGLOWERBORDER); } /* chlinexy(x1, y, dialog->w); chlinexy(x1, y2, dialog->w);*/ cputcxy(x, y, CH_DIALOG_ULCORNER); cputcxy(x, y2, CH_DIALOG_LLCORNER); cputcxy(x2, y, CH_DIALOG_URCORNER); cputcxy(x2, y2, CH_DIALOG_LRCORNER); /* Clear dialog contents. */ for(i = y1; i < y2; ++i) { cclearxy(x1, i, dialog->w); } draw_window_contents(dialog, CTK_FOCUS_DIALOG, 0, sizey, x1, x2, y1, y2); update_area(dialog->x, dialog->y, dialog->w + 4, dialog->h + 4); }
static void update_window( WindowPtr wp) { BeginUpdate(wp); draw_window_contents(wp); EndUpdate(wp); return; }
/*-----------------------------------------------------------------------------------*/ static void s_ctk_draw_dialog(struct ctk_window *dialog) { unsigned char x, y; unsigned char i; unsigned char x1, y1, x2, y2; (void)textcolor(DIALOGCOLOR); x = dialog->x; y = dialog->y + 1; x1 = x + 1; y1 = y + 1; x2 = x1 + dialog->w; y2 = y1 + dialog->h; /* Draw dialog frame. */ cvlinexy(x, y1, dialog->h); cvlinexy(x2, y1, dialog->h); chlinexy(x1, y, dialog->w); chlinexy(x1, y2, dialog->w); cputcxy(x, y, CH_ULCORNER); cputcxy(x, y2, CH_LLCORNER); cputcxy(x2, y, CH_URCORNER); cputcxy(x2, y2, CH_LRCORNER); /* Clear dialog contents. */ for(i = y1; i < y2; ++i) { cclearxy(x1, i, dialog->w); } draw_window_contents(dialog, CTK_FOCUS_DIALOG, 0, sizey, x1, x2, y1, y2); }
/*-----------------------------------------------------------------------------------*/ void ctk_draw_window(struct ctk_window *window, unsigned char focus, unsigned char clipy1, unsigned char clipy2, unsigned char draw_borders) { #if CTK_CONF_WINDOWS unsigned char x, y; unsigned char x1, y1, x2, y2; unsigned char h; if(window->y + CTK_CONF_MENUS >= clipy2) { return; } x = window->x; y = window->y + CTK_CONF_MENUS; x1 = x + 1; y1 = y + 1; x2 = x1 + window->w; y2 = y1 + window->h; if(draw_borders) { /* Draw window frame. */ if(focus & CTK_FOCUS_WINDOW) { (void)textcolor(WINDOWCOLOR_FOCUS); } else { (void)textcolor(WINDOWCOLOR); } if(y >= clipy1) { cputcxy(x, y, (char)CH_ULCORNER); gotoxy(wherex() + window->titlelen + CTK_CONF_WINDOWMOVE * 2, wherey()); chline(window->w - (wherex() - x) - 2); cputcxy(x2, y, (char)CH_URCORNER); } h = window->h; if(clipy1 > y1) { if(clipy1 - y1 < h) { h = clipy1 - y1; y1 = clipy1; } else { h = 0; } } if(clipy2 < y1 + h) { if(y1 >= clipy2) { h = 0; } else { h = clipy2 - y1; } } cvlinexy(x, y1, h); cvlinexy(x2, y1, h); if(y + window->h >= clipy1 && y + window->h < clipy2) { cputcxy(x, y2, (char)CH_LLCORNER); chlinexy(x1, y2, window->w); cputcxy(x2, y2, (char)CH_LRCORNER); } } draw_window_contents(window, focus, clipy1, clipy2, x1, x2, y + 1, y2); #else /* CTK_CONF_WINDOWS */ draw_window_contents(window, focus, clipy1, clipy2, 0, window->w, 0, window->h); #endif /* CTK_CONF_WINDOWS */ }
/*-----------------------------------------------------------------------------------*/ void ctk_draw_window(struct ctk_window *window, unsigned char focus, unsigned char clipy1, unsigned char clipy2, unsigned char draw_borders) { unsigned char x, y; unsigned char h; unsigned char x1, y1, x2, y2; unsigned char i; if(window->y + 1 >= clipy2) { return; } x = window->x; y = window->y + 1; x1 = x + 1; y1 = y + 1; x2 = x1 + window->w; y2 = y1 + window->h; if(draw_borders) { /* Draw window frame. */ textcolor(VNC_OUT_WINDOWCOLOR + focus); /* if(focus & CTK_FOCUS_WINDOW) { textcolor(WINDOWCOLOR_FOCUS); } else { textcolor(WINDOWCOLOR); }*/ if(y >= clipy1) { cputcxy(x, y, CH_ULCORNER); for(i = wherex() + window->titlelen + CTK_CONF_WINDOWMOVE * 2; i < x2; ++i) { cputcxy(i, y, CH_TITLEBAR); } cputcxy(x2, y, CH_URCORNER); } h = window->h; if(clipy1 > y1) { if(clipy1 - y1 < h) { h = clipy1 - y1; y1 = clipy1; } else { h = 0; } } if(clipy2 < y1 + h) { if(y1 >= clipy2) { h = 0; } else { h = clipy2 - y1; } } for(i = y1; i < y1 + h; ++i) { cputcxy(x, i, CH_WINDOWLBORDER); cputcxy(x2, i, CH_WINDOWRBORDER); } /* cvlinexy(x, y1, h); cvlinexy(x2, y1, h); */ if(y + window->h >= clipy1 && y + window->h < clipy2) { cputcxy(x, y2, CH_LLCORNER); for(i = x1; i < x2; ++i) { cputcxy(i, y2, CH_WINDOWLOWERBORDER); } /* chlinexy(x1, y2, window->w);*/ cputcxy(x2, y2, CH_LRCORNER); } } draw_window_contents(window, focus, clipy1, clipy2, x1, x2, y + 1, y2); update_area(window->x, window->y, window->w + 2, window->h + 2); }