Changes in uspace/lib/ui/src/slider.c [ff6e91b:2ab8ab3] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/ui/src/slider.c
rff6e91b r2ab8ab3 38 38 #include <gfx/context.h> 39 39 #include <gfx/render.h> 40 #include <gfx/text.h>41 40 #include <io/pos_event.h> 42 41 #include <stdlib.h> … … 58 57 /** Slider button height */ 59 58 ui_slider_btn_h = 23, 60 /** Slider button width in text mode */61 ui_slider_btn_w_text = 3,62 59 /** Slider button frame thickness */ 63 60 ui_slider_btn_frame_thickness = 1, … … 254 251 { 255 252 gfx_coord2_t dims; 256 gfx_coord_t w;257 253 258 254 gfx_rect_dims(&slider->rect, &dims); 259 w = slider->res->textmode ? ui_slider_btn_w_text : 260 ui_slider_btn_w; 261 return dims.x - w; 262 } 263 264 /** Paint slider in graphics mode. 255 return dims.x - ui_slider_btn_w; 256 } 257 258 /** Paint slider. 265 259 * 266 260 * @param slider Slider 267 261 * @return EOK on success or an error code 268 262 */ 269 errno_t ui_slider_paint _gfx(ui_slider_t *slider)263 errno_t ui_slider_paint(ui_slider_t *slider) 270 264 { 271 265 gfx_coord2_t pos; … … 321 315 } 322 316 323 /** Paint slider in text mode.324 *325 * @param slider Slider326 * @return EOK on success or an error code327 */328 errno_t ui_slider_paint_text(ui_slider_t *slider)329 {330 gfx_coord2_t pos;331 gfx_text_fmt_t fmt;332 gfx_coord_t w, i;333 char *buf;334 const char *gchar;335 size_t gcharsz;336 errno_t rc;337 338 /* Paint slider groove */339 340 pos = slider->rect.p0;341 342 gfx_text_fmt_init(&fmt);343 fmt.color = slider->res->wnd_text_color;344 fmt.halign = gfx_halign_left;345 fmt.valign = gfx_valign_top;346 347 w = slider->rect.p1.x - slider->rect.p0.x;348 gchar = "\u2550";349 gcharsz = str_size(gchar);350 351 buf = malloc(w * gcharsz + 1);352 if (buf == NULL)353 return ENOMEM;354 355 for (i = 0; i < w; i++)356 str_cpy(buf + i * gcharsz, (w - i) * gcharsz + 1, gchar);357 buf[w * gcharsz] = '\0';358 359 rc = gfx_puttext(slider->res->font, &pos, &fmt, buf);360 free(buf);361 if (rc != EOK)362 goto error;363 364 /* Paint slider button */365 366 pos.x += slider->pos;367 368 rc = gfx_puttext(slider->res->font, &pos, &fmt,369 "[O]");370 if (rc != EOK)371 goto error;372 373 rc = gfx_update(slider->res->gc);374 if (rc != EOK)375 goto error;376 377 return EOK;378 error:379 return rc;380 }381 382 /** Paint slider.383 *384 * @param slider Slider385 * @return EOK on success or an error code386 */387 errno_t ui_slider_paint(ui_slider_t *slider)388 {389 if (slider->res->textmode)390 return ui_slider_paint_text(slider);391 else392 return ui_slider_paint_gfx(slider);393 }394 395 317 /** Clear slider button. 396 318 * … … 402 324 gfx_rect_t rect; 403 325 errno_t rc; 404 405 /* No need to clear button in text mode */406 if (slider->res->textmode)407 return EOK;408 326 409 327 ui_slider_btn_rect(slider, &rect);
Note:
See TracChangeset
for help on using the changeset viewer.