Changeset 7e38970d in mainline for uspace/lib/ui/private/window.h


Ignore:
Timestamp:
2020-12-07T00:08:37Z (3 years ago)
Author:
Jiri Svoboda <jiri@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
25f26600
Parents:
7a873f0 (diff), 8596474 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent.
Message:

Merge branch 'jxsvoboda-gfx' into master

File:
1 moved

Legend:

Unmodified
Added
Removed
  • uspace/lib/ui/private/window.h

    r7a873f0 r7e38970d  
    11/*
    2  * Copyright (c) 2012 Petr Koupy
     2 * Copyright (c) 2020 Jiri Svoboda
    33 * All rights reserved.
    44 *
     
    2727 */
    2828
    29 /** @addtogroup draw
     29/** @addtogroup libui
    3030 * @{
    3131 */
    3232/**
    33  * @file
     33 * @file Window structure
     34 *
    3435 */
    3536
    36 #ifndef DRAW_DRAWCTX_H_
    37 #define DRAW_DRAWCTX_H_
     37#ifndef _UI_PRIVATE_WINDOW_H
     38#define _UI_PRIVATE_WINDOW_H
    3839
    39 #include <stdbool.h>
     40#include <errno.h>
     41#include <display.h>
     42#include <gfx/context.h>
     43#include <io/kbd_event.h>
     44#include <io/pos_event.h>
    4045
    41 #include <compose.h>
    42 
    43 #include "surface.h"
    44 #include "source.h"
    45 #include "path.h"
    46 #include "font.h"
    47 
    48 struct drawctx {
    49         link_t link;
    50         list_t list;
    51 
    52         surface_t *surface;
    53         compose_t compose;
    54         surface_t *mask;
    55         source_t *source;
    56         font_t *font;
    57 
    58         bool shall_clip;
    59         sysarg_t clip_x;
    60         sysarg_t clip_y;
    61         sysarg_t clip_width;
    62         sysarg_t clip_height;
     46/** Actual structure of window.
     47 *
     48 * This is private to libui.
     49 */
     50struct ui_window {
     51        /** Containing user interface */
     52        struct ui *ui;
     53        /** Callbacks */
     54        struct ui_window_cb *cb;
     55        /** Callback argument */
     56        void *arg;
     57        /** Display window */
     58        display_window_t *dwindow;
     59        /** Window GC */
     60        gfx_context_t *gc;
     61        /** Window rectangle */
     62        gfx_rect_t rect;
     63        /** Application area bitmap */
     64        gfx_bitmap_t *app_bmp;
     65        /** Application area GC */
     66        gfx_context_t *app_gc;
     67        /** UI resource. Ideally this would be in ui_t. */
     68        struct ui_resource *res;
     69        /** Window decoration */
     70        struct ui_wdecor *wdecor;
     71        /** Top-level control in the application area */
     72        struct ui_control *control;
     73        /** Current cursor */
     74        ui_stock_cursor_t cursor;
    6375};
    6476
    65 extern void drawctx_init(drawctx_t *, surface_t *);
    66 
    67 extern void drawctx_save(drawctx_t *);
    68 extern void drawctx_restore(drawctx_t *);
    69 
    70 extern void drawctx_set_compose(drawctx_t *, compose_t);
    71 extern void drawctx_set_clip(drawctx_t *, sysarg_t, sysarg_t, sysarg_t, sysarg_t);
    72 extern void drawctx_set_mask(drawctx_t *, surface_t *);
    73 extern void drawctx_set_source(drawctx_t *, source_t *);
    74 extern void drawctx_set_font(drawctx_t *, font_t *);
    75 
    76 extern void drawctx_transfer(drawctx_t *, sysarg_t, sysarg_t, sysarg_t, sysarg_t);
    77 extern void drawctx_stroke(drawctx_t *, path_t *);
    78 extern void drawctx_fill(drawctx_t *, path_t *);
    79 extern void drawctx_print(drawctx_t *, const char *, sysarg_t, sysarg_t);
     77extern void ui_window_send_close(ui_window_t *);
     78extern void ui_window_send_focus(ui_window_t *);
     79extern void ui_window_send_kbd(ui_window_t *, kbd_event_t *);
     80extern errno_t ui_window_send_paint(ui_window_t *);
     81extern void ui_window_send_pos(ui_window_t *, pos_event_t *);
     82extern void ui_window_send_unfocus(ui_window_t *);
    8083
    8184#endif
Note: See TracChangeset for help on using the changeset viewer.