void ti_dial_draw(TWidget * wid, ttk_surface srf) { int sc, n, i, j, ty; int m = ti_dial_max()+1; uc16 s[2] = {0,0}; ttk_ap_fillrect(srf, ti_ap_getx(0), wid->x, wid->y, wid->x+wid->w, wid->y+wid->h); n = wid->w / CW; sc = ti_dial_charlist_pos - n/2; ty = 0; if (sc > (m-n) ) { sc = (m-n); } if (sc < 0) { sc = 0; } if (ti_dial_cursormode()) { ttk_text(srf, ttk_menufont, wid->x+(wid->w - ttk_text_width(ttk_menufont, ti_dial_cmstring))/2, wid->y+ty, ti_ap_get(1), ti_dial_cmstring); } else { for (i = sc, j = 0; ((i<m) && (j<n)); i++, j++) { s[0] = ti_dial_get_char(i); if (i == ti_dial_charlist_pos) { ttk_ap_fillrect(srf, ti_ap_getx(2), wid->x+j*CW, wid->y, wid->x+j*CW+CW, wid->y+wid->h); ttk_text_uc16(srf, ttk_menufont, wid->x+j*CW+(10-ttk_text_width_uc16(ttk_menufont, s))/2, wid->y+ty, ti_ap_get(3), s); } else { ttk_text_uc16(srf, ttk_menufont, wid->x+j*CW+(10-ttk_text_width_uc16(ttk_menufont, s))/2, wid->y+ty, ti_ap_get(1), s); } } } }
void ti_mlwlb_draw(TWidget * wid, ttk_surface srf) { ttk_color tcol; unsigned short disp[33]; ttk_ap_fillrect(srf, ti_ap_getx(0), wid->x, wid->y, wid->x+wid->w, wid->y+wid->h); if (ti_mlwlb_position<1) { ttk_ap_fillrect(srf, ti_ap_getx(2), wid->x, wid->y, wid->x+wid->w/2, wid->y+wid->h); tcol = ti_ap_get(3); } else { tcol = ti_ap_get(1); } memcpy(disp, &ti_mlwlb_charset.chars[ti_mlwlb_startpos], ti_mlwlb_limit*2); disp[ti_mlwlb_limit]=0; ttk_text_uc16(srf, ttk_menufont, wid->x+1, wid->y, tcol, disp); if (ti_mlwlb_position>5) { ttk_ap_fillrect(srf, ti_ap_getx(2), wid->x+wid->w/2, wid->y, wid->x+wid->w, wid->y+wid->h); tcol = ti_ap_get(3); } else { tcol = ti_ap_get(1); } memcpy(disp, &ti_mlwlb_charset.chars[ti_mlwlb_limit+ti_mlwlb_startpos], ti_mlwlb_limit*2); disp[ti_mlwlb_limit]=0; ttk_text_uc16(srf, ttk_menufont, wid->x+wid->w/2+1, wid->y, tcol, disp); /* Position */ ttk_line(srf, wid->x+wid->w/2, wid->y, wid->x+((ti_mlwlb_position*wid->w)/6), wid->y, ttk_makecol(GREY)); ttk_line(srf, wid->x+wid->w/2, wid->y+1, wid->x+((ti_mlwlb_position*wid->w)/6), wid->y+1, ttk_makecol(GREY)); ttk_line(srf, wid->x+wid->w/2, wid->y+wid->h-2, wid->x+((ti_mlwlb_position*wid->w)/6), wid->y+wid->h-2, ttk_makecol(GREY)); ttk_line(srf, wid->x+wid->w/2, wid->y+wid->h-1, wid->x+((ti_mlwlb_position*wid->w)/6), wid->y+wid->h-1, ttk_makecol(GREY)); }
void ti_thumbscript_draw(TWidget * wid, ttk_surface srf) { char s[2]; ttk_ap_fillrect(srf, ti_ap_getx(0), wid->x, wid->y, wid->x+wid->w, wid->y+wid->h); switch (ti_thumbscript_mode) { case 1: ttk_text_lat1(srf, ttk_menufont, wid->x+wid->w/2, wid->y, ti_ap_get(1), "shift"); break; case 3: case 2: case 4: case 5: case 6: ttk_text_lat1(srf, ttk_menufont, wid->x+wid->w/2, wid->y, ti_ap_get(1), "mod"); break; } if (ti_thumbscript_last != 0) { s[0] = (ti_thumbscript_last + '0'); s[1] = 0; ttk_text_lat1(srf, ttk_menufont, wid->x+(wid->w*3)/4, wid->y, ti_ap_get(1), s); } }
void podwrite_widget_draw(TWidget * wid, ttk_surface srf) { int h = wid->h - (((TiBuffer *)wid->data)->idata[2]) - 1; ttk_ap_fillrect(srf, ti_ap_getx(0), wid->x, wid->y, wid->x+wid->w, wid->y+wid->h); ti_multiline_text(srf, ttk_textfont, wid->x+5, wid->y+5, wid->w-15, wid->h-10-(((TiBuffer *)wid->data)->idata[2]), ti_ap_get(1), ((TiBuffer *)wid->data)->text, ((TiBuffer *)wid->data)->cpos, ((podwrite_linecount > podwrite_screenlines)?podwrite_scroll:0), &podwrite_linecount, &podwrite_screenlines, &podwrite_cursor_out_of_bounds); if (podwrite_linecount > podwrite_screenlines) { ttk_ap_fillrect (srf, ttk_ap_get ("scroll.bg"), wid->x + wid->w - 10, wid->y + ttk_ap_getx ("header.line") -> spacing, wid->x + wid->w, wid->y + h); ttk_ap_rect (srf, ttk_ap_get ("scroll.box"), wid->x + wid->w - 10, wid->y + ttk_ap_getx ("header.line") -> spacing, wid->x + wid->w, wid->y + h); ttk_ap_fillrect (srf, ttk_ap_get ("scroll.bar"), wid->x + wid->w - 10, wid->y + ttk_ap_getx ("header.line") -> spacing + ((podwrite_scroll) * (h-2) / podwrite_linecount), wid->x + wid->w, wid->y - ttk_ap_getx ("header.line") -> spacing + ((podwrite_scroll + podwrite_screenlines) * (h-2) / podwrite_linecount) ); } }
ttk_color ti_ap_get(int i) { TApItem * tai = ti_ap_getx(i); if (!tai) { switch (i) { case 0: case 3: return ttk_makecol(WHITE); break; case 4: case 5: return ttk_makecol(GREY); break; case 2: return ttk_makecol(DKGREY); break; default: return ttk_makecol(BLACK); break; } } else { return tai->color; } }