Changeset 0576df9 in mainline for uspace/lib


Ignore:
Timestamp:
2020-11-14T21:28:35Z (5 years ago)
Author:
Jiri Svoboda <jiri@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
63b35c7
Parents:
38f5598
Message:

Decoding images without libdraw

Location:
uspace/lib
Files:
6 added
4 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/meson.build

    r38f5598 r0576df9  
    8383        'ext4',
    8484        'gfxfont',
     85        'gfximage',
    8586        'hound',
    8687        'ipcgfx',
  • uspace/lib/ui/include/ui/window.h

    r38f5598 r0576df9  
    5353extern void ui_window_add(ui_window_t *, ui_control_t *);
    5454extern void ui_window_remove(ui_window_t *, ui_control_t *);
     55extern errno_t ui_window_resize(ui_window_t *, gfx_rect_t *);
    5556extern ui_resource_t *ui_window_get_res(ui_window_t *);
    5657extern gfx_context_t *ui_window_get_gc(ui_window_t *);
  • uspace/lib/ui/src/window.c

    r38f5598 r0576df9  
    215215}
    216216
     217/** Resize/move window.
     218 *
     219 * Resize window to the dimensions of @a rect. If @a rect.p0 is not 0,0,
     220 * the top-left corner of the window will move on the screen accordingly.
     221 *
     222 * @param window Window
     223 * @param rect Rectangle
     224 *
     225 * @return EOK on success or an error code
     226 */
     227errno_t ui_window_resize(ui_window_t *window, gfx_rect_t *rect)
     228{
     229        gfx_coord2_t offs;
     230        gfx_rect_t nrect;
     231        errno_t rc;
     232
     233        /*
     234         * Move rect so that p0=0,0 - keep window's coordinate system origin
     235         * locked to top-left corner of the window.
     236         */
     237        offs = rect->p0;
     238        gfx_rect_rtranslate(&offs, rect, &nrect);
     239
     240        /* dwindow can be NULL in case of unit tests */
     241        if (window->dwindow != NULL) {
     242                rc = display_window_resize(window->dwindow, &offs, &nrect);
     243                if (rc != EOK)
     244                        return rc;
     245        }
     246
     247        ui_wdecor_set_rect(window->wdecor, &nrect);
     248        ui_wdecor_paint(window->wdecor);
     249        return EOK;
     250}
     251
    217252/** Set window callbacks.
    218253 *
  • uspace/lib/ui/test/window.c

    r38f5598 r0576df9  
    175175}
    176176
     177/** ui_window_resize */
     178PCUT_TEST(resize)
     179{
     180        errno_t rc;
     181        ui_t *ui = NULL;
     182        ui_wnd_params_t params;
     183        ui_window_t *window = NULL;
     184        gfx_rect_t nrect;
     185
     186        rc = ui_create_disp(NULL, &ui);
     187        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
     188
     189        ui_wnd_params_init(&params);
     190        params.caption = "Hello";
     191        params.rect.p0.x = 0;
     192        params.rect.p0.y = 0;
     193        params.rect.p1.x = 1;
     194        params.rect.p1.y = 1;
     195
     196        rc = ui_window_create(ui, &params, &window);
     197        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
     198        PCUT_ASSERT_NOT_NULL(window);
     199
     200        nrect.p0.x = -1;
     201        nrect.p0.y = -1;
     202        nrect.p1.x = 2;
     203        nrect.p1.y = 2;
     204        rc = ui_window_resize(window, &nrect);
     205        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
     206
     207        ui_window_destroy(window);
     208        ui_destroy(ui);
     209}
     210
    177211/** ui_window_get_res/gc/rect() return valid objects */
    178212PCUT_TEST(get_res_gc_rect)
Note: See TracChangeset for help on using the changeset viewer.