Changeset 3fd38b2 in mainline for uspace/lib/ui


Ignore:
Timestamp:
2022-09-29T07:45:07Z (3 years ago)
Author:
Jiri Svoboda <jiri@…>
Branches:
master, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
c77cfd8
Parents:
50a16d9
git-author:
Jiri Svoboda <jiri@…> (2022-09-28 07:44:28)
git-committer:
Jiri Svoboda <jiri@…> (2022-09-29 07:45:07)
Message:

Size taskbar based on display size, fix text mode

Location:
uspace/lib/ui
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/ui/include/ui/ui.h

    r50a16d9 r3fd38b2  
    3939#include <display.h>
    4040#include <errno.h>
     41#include <gfx/coord.h>
    4142#include <io/console.h>
    4243#include <stdbool.h>
     
    5354extern bool ui_is_textmode(ui_t *);
    5455extern bool ui_is_fullscreen(ui_t *);
     56extern errno_t ui_get_rect(ui_t *, gfx_rect_t *);
    5557extern errno_t ui_suspend(ui_t *);
    5658extern errno_t ui_resume(ui_t *);
  • uspace/lib/ui/src/ui.c

    r50a16d9 r3fd38b2  
    524524}
    525525
     526/** Get UI screen rectangle.
     527 *
     528 * @param ui User interface
     529 * @param rect Place to store bounding rectangle
     530 */
     531errno_t ui_get_rect(ui_t *ui, gfx_rect_t *rect)
     532{
     533        display_info_t info;
     534        sysarg_t cols, rows;
     535        errno_t rc;
     536
     537        if (ui->display != NULL) {
     538                rc = display_get_info(ui->display, &info);
     539                if (rc != EOK)
     540                        return rc;
     541
     542                *rect = info.rect;
     543        } else if (ui->console != NULL) {
     544                rc = console_get_size(ui->console, &cols, &rows);
     545                if (rc != EOK)
     546                        return rc;
     547
     548                rect->p0.x = 0;
     549                rect->p0.y = 0;
     550                rect->p1.x = cols;
     551                rect->p1.y = rows;
     552        } else {
     553                return ENOTSUP;
     554        }
     555
     556        return EOK;
     557}
     558
    526559/** Get clickmatic from UI.
    527560 *
  • uspace/lib/ui/test/ui.c

    r50a16d9 r3fd38b2  
    169169}
    170170
     171/** ui_is_get_rect() */
     172PCUT_TEST(get_rect)
     173{
     174        ui_t *ui = NULL;
     175        gfx_rect_t rect;
     176        errno_t rc;
     177
     178        rc = ui_create_disp(NULL, &ui);
     179        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
     180        PCUT_ASSERT_NOT_NULL(ui);
     181
     182        /* This won't work without a display service */
     183        rc = ui_get_rect(ui, &rect);
     184        PCUT_ASSERT_ERRNO_VAL(ENOTSUP, rc);
     185
     186        ui_destroy(ui);
     187}
     188
    171189/** ui_lock(), ui_unlock() */
    172190PCUT_TEST(lock_unlock)
Note: See TracChangeset for help on using the changeset viewer.