Changeset 35cffea in mainline for uspace/lib/ui/src/paint.c


Ignore:
Timestamp:
2022-05-19T08:02:31Z (2 years ago)
Author:
Jiri Svoboda <jiri@…>
Branches:
master, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
ad698f4
Parents:
fd05ea6
git-author:
Jiri Svoboda <jiri@…> (2022-05-18 17:02:12)
git-committer:
Jiri Svoboda <jiri@…> (2022-05-19 08:02:31)
Message:

Maximizing/unmaximizing a window

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/ui/src/paint.c

    rfd05ea6 r35cffea  
    529529}
    530530
     531/** Paint maximize icon.
     532 *
     533 * @param resource UI resource
     534 * @param pos Center position
     535 * @param w Icon width
     536 * @param h Icon height
     537 * @return EOK on success or an error code
     538 */
     539errno_t ui_paint_maxicon(ui_resource_t *resource, gfx_coord2_t *pos,
     540    gfx_coord_t w, gfx_coord_t h)
     541{
     542        gfx_rect_t rect;
     543        errno_t rc;
     544
     545        rc = gfx_set_color(resource->gc, resource->btn_text_color);
     546        if (rc != EOK)
     547                return rc;
     548
     549        rect.p0.x = pos->x - w / 2;
     550        rect.p0.y = pos->y - h / 2;
     551        rect.p1.x = rect.p0.x + w;
     552        rect.p1.y = rect.p0.y + h;
     553        rc = gfx_fill_rect(resource->gc, &rect);
     554        if (rc != EOK)
     555                return rc;
     556
     557        rc = gfx_set_color(resource->gc, resource->btn_face_color);
     558        if (rc != EOK)
     559                return rc;
     560
     561        rect.p0.x += 1;
     562        rect.p0.y += 2;
     563        rect.p1.x -= 1;
     564        rect.p1.y -= 1;
     565        rc = gfx_fill_rect(resource->gc, &rect);
     566        if (rc != EOK)
     567                return rc;
     568
     569        return EOK;
     570}
     571
     572/** Paint unmaximize icon.
     573 *
     574 * Unmaximize icon consists of two overlapping window icons.
     575 *
     576 * @param resource UI resource
     577 * @param pos Center position
     578 * @param w Window icon width
     579 * @param h Window icon height
     580 * @param dw Horizontal distance between window icon centers
     581 * @param dh Vertical distance between window icon centers
     582 * @return EOK on success or an error code
     583 */
     584errno_t ui_paint_unmaxicon(ui_resource_t *resource, gfx_coord2_t *pos,
     585    gfx_coord_t w, gfx_coord_t h, gfx_coord_t dw, gfx_coord_t dh)
     586{
     587        gfx_coord2_t p;
     588        errno_t rc;
     589
     590        p.x = pos->x + dw / 2;
     591        p.y = pos->y - dh / 2;
     592        rc = ui_paint_maxicon(resource, &p, w, h);
     593        if (rc != EOK)
     594                return rc;
     595
     596        p.x = pos->x - dw / 2;
     597        p.y = pos->y + dh / 2;
     598        rc = ui_paint_maxicon(resource, &p, w, h);
     599        if (rc != EOK)
     600                return rc;
     601
     602        return EOK;
     603}
     604
    531605/** Paint a text box.
    532606 *
Note: See TracChangeset for help on using the changeset viewer.