Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/gui/canvas.c

    re31ea20d r10cb47e  
    5858        source_init(&source);
    5959        source_set_transform(&source, transform);
    60         source_set_texture(&source, canvas->surface, false);
     60        source_set_texture(&source, canvas->surface,
     61            PIXELMAP_EXTEND_TRANSPARENT_BLACK);
    6162       
    6263        drawctx_t drawctx;
     
    105106static void canvas_handle_keyboard_event(widget_t *widget, kbd_event_t event)
    106107{
    107         /* No-op */
     108        canvas_t *canvas = (canvas_t *) widget;
     109       
     110        sig_send(&canvas->keyboard_event, &event);
    108111}
    109112
    110113static void canvas_handle_position_event(widget_t *widget, pos_event_t event)
    111114{
    112         /* No-op */
     115        canvas_t *canvas = (canvas_t *) widget;
     116        pos_event_t tevent;
     117       
     118        tevent = event;
     119        tevent.hpos -= widget->hpos;
     120        tevent.vpos -= widget->vpos;
     121       
     122        sig_send(&canvas->position_event, &tevent);
    113123}
    114124
    115 bool init_canvas(canvas_t *canvas, widget_t *parent, sysarg_t width,
    116     sysarg_t height, surface_t *surface)
     125bool init_canvas(canvas_t *canvas, widget_t *parent, const void *data,
     126    sysarg_t width, sysarg_t height, surface_t *surface)
    117127{
    118         widget_init(&canvas->widget, parent);
     128        widget_init(&canvas->widget, parent, data);
    119129       
    120130        canvas->widget.width = width;
     
    142152}
    143153
    144 canvas_t *create_canvas(widget_t *parent, sysarg_t width, sysarg_t height,
    145     surface_t *surface)
     154bool update_canvas(canvas_t *canvas, surface_t *surface)
     155{
     156        if (surface != NULL)
     157                canvas->surface = surface;
     158       
     159        canvas_repaint(&canvas->widget);
     160        return true;
     161}
     162
     163canvas_t *create_canvas(widget_t *parent, const void *data, sysarg_t width,
     164    sysarg_t height, surface_t *surface)
    146165{
    147166        canvas_t *canvas = (canvas_t *) malloc(sizeof(canvas_t));
     
    149168                return NULL;
    150169       
    151         if (init_canvas(canvas, parent, width, height, surface))
     170        if (init_canvas(canvas, parent, data, width, height, surface))
    152171                return canvas;
    153172       
Note: See TracChangeset for help on using the changeset viewer.