Changeset cd74fa8 in mainline


Ignore:
Timestamp:
2021-03-01T22:20:27Z (3 years ago)
Author:
Jiri Svoboda <jiri@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
d6f46c8
Parents:
9c7dc8e
Message:

Downsize more controls to make calculator look better

Location:
uspace
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • uspace/app/calculator/calculator.c

    r9c7dc8e rcd74fa8  
    11/*
    2  * Copyright (c) 2020 Jiri Svoboda
     2 * Copyright (c) 2021 Jiri Svoboda
    33 * Copyright (c) 2016 Martin Decky
    44 * All rights reserved.
     
    738738        params.rect.p0.x = 0;
    739739        params.rect.p0.y = 0;
    740         params.rect.p1.x = 250;
    741         params.rect.p1.y = 270;
    742740
    743741        if (ui_is_textmode(ui)) {
     742                params.rect.p1.x = 38;
     743                params.rect.p1.y = 18;
     744
    744745                calc.geom.entry_rect.p0.x = 4;
    745                 calc.geom.entry_rect.p0.y = 2;
    746                 calc.geom.entry_rect.p1.x = 60;
     746                calc.geom.entry_rect.p0.y = 3;
     747                calc.geom.entry_rect.p1.x = 34;
    747748                calc.geom.entry_rect.p1.y = 4;
    748749                calc.geom.btn_orig.x = 4;
    749                 calc.geom.btn_orig.y = 4;
    750                 calc.geom.btn_dim.x = 12;
    751                 calc.geom.btn_dim.y = 7;
    752                 calc.geom.btn_stride.x = 15;
    753                 calc.geom.btn_stride.y = 6;
     750                calc.geom.btn_orig.y = 5;
     751                calc.geom.btn_dim.x = 6;
     752                calc.geom.btn_dim.y = 2;
     753                calc.geom.btn_stride.x = 8;
     754                calc.geom.btn_stride.y = 3;
    754755        } else {
     756                params.rect.p1.x = 250;
     757                params.rect.p1.y = 270;
     758
    755759                calc.geom.entry_rect.p0.x = 15;
    756760                calc.geom.entry_rect.p0.y = 45;
  • uspace/lib/ui/src/entry.c

    r9c7dc8e rcd74fa8  
    189189        }
    190190
    191         /* Paint inset frame */
    192 
    193         rc = ui_paint_inset_frame(entry->res, &entry->rect, &inside);
    194         if (rc != EOK)
    195                 goto error;
     191        if (entry->res->textmode == false) {
     192                /* Paint inset frame */
     193                rc = ui_paint_inset_frame(entry->res, &entry->rect, &inside);
     194                if (rc != EOK)
     195                        goto error;
     196        } else {
     197                inside = entry->rect;
     198        }
    196199
    197200        /* Paint entry background */
     
    214217                break;
    215218        case gfx_halign_right:
    216                 pos.x = inside.p1.x - hpad;
     219                pos.x = inside.p1.x - hpad - 1;
    217220                break;
    218221        }
  • uspace/lib/ui/src/pbutton.c

    r9c7dc8e rcd74fa8  
    239239}
    240240
    241 /** Paint push button.
    242  *
    243  * @param pbutton Push button
    244  * @return EOK on success or an error code
    245  */
    246 errno_t ui_pbutton_paint(ui_pbutton_t *pbutton)
     241/** Paint button text shadow.
     242 *
     243 * @param pbutton Push button
     244 * @return EOK on success or an error code
     245 */
     246static errno_t ui_pbutton_paint_text_shadow(ui_pbutton_t *pbutton)
     247{
     248        gfx_rect_t rect;
     249        errno_t rc;
     250
     251        rect.p0.x = pbutton->rect.p0.x + 1;
     252        rect.p0.y = pbutton->rect.p0.y + 1;
     253        rect.p1.x = pbutton->rect.p1.x;
     254        rect.p1.y = pbutton->rect.p1.y;
     255
     256        rc = gfx_set_color(pbutton->res->gc, pbutton->res->btn_shadow_color);
     257        if (rc != EOK)
     258                goto error;
     259
     260        rc = gfx_fill_rect(pbutton->res->gc, &rect);
     261        if (rc != EOK)
     262                goto error;
     263
     264        return EOK;
     265error:
     266        return rc;
     267}
     268
     269/** Paint push button in graphic mode.
     270 *
     271 * @param pbutton Push button
     272 * @return EOK on success or an error code
     273 */
     274static errno_t ui_pbutton_paint_gfx(ui_pbutton_t *pbutton)
    247275{
    248276        gfx_coord2_t pos;
     
    308336error:
    309337        return rc;
     338}
     339
     340/** Paint push button in text mode.
     341 *
     342 * @param pbutton Push button
     343 * @return EOK on success or an error code
     344 */
     345static errno_t ui_pbutton_paint_text(ui_pbutton_t *pbutton)
     346{
     347        gfx_coord2_t pos;
     348        gfx_text_fmt_t fmt;
     349        gfx_rect_t rect;
     350        bool depressed;
     351        errno_t rc;
     352
     353        depressed = pbutton->held && pbutton->inside;
     354
     355        rc = gfx_set_color(pbutton->res->gc, pbutton->res->wnd_face_color);
     356        if (rc != EOK)
     357                goto error;
     358
     359        rc = gfx_fill_rect(pbutton->res->gc, &pbutton->rect);
     360        if (rc != EOK)
     361                goto error;
     362
     363        rect.p0.x = pbutton->rect.p0.x + (depressed ? 1 : 0);
     364        rect.p0.y = pbutton->rect.p0.y;
     365        rect.p1.x = pbutton->rect.p1.x - 1 + (depressed ? 1 : 0);
     366        rect.p1.y = pbutton->rect.p0.y + 1;
     367
     368        rc = gfx_set_color(pbutton->res->gc, pbutton->res->btn_highlight_color);
     369        if (rc != EOK)
     370                goto error;
     371
     372        rc = gfx_fill_rect(pbutton->res->gc, &rect);
     373        if (rc != EOK)
     374                goto error;
     375
     376        /* Center of button rectangle */
     377        pos.x = (rect.p0.x + rect.p1.x) / 2;
     378        pos.y = (rect.p0.y + rect.p1.y) / 2;
     379
     380        gfx_text_fmt_init(&fmt);
     381        fmt.color = pbutton->res->btn_text_color;
     382        fmt.halign = gfx_halign_center;
     383        fmt.valign = gfx_valign_center;
     384
     385        rc = gfx_puttext(pbutton->res->font, &pos, &fmt, pbutton->caption);
     386        if (rc != EOK)
     387                goto error;
     388
     389        if (!depressed) {
     390                rc = ui_pbutton_paint_text_shadow(pbutton);
     391                if (rc != EOK)
     392                        goto error;
     393        }
     394
     395        rc = gfx_update(pbutton->res->gc);
     396        if (rc != EOK)
     397                goto error;
     398
     399        return EOK;
     400error:
     401        return rc;
     402}
     403
     404/** Paint push button.
     405 *
     406 * @param pbutton Push button
     407 * @return EOK on success or an error code
     408 */
     409errno_t ui_pbutton_paint(ui_pbutton_t *pbutton)
     410{
     411        if (pbutton->res->textmode)
     412                return ui_pbutton_paint_text(pbutton);
     413        else
     414                return ui_pbutton_paint_gfx(pbutton);
    310415}
    311416
  • uspace/lib/ui/src/wdecor.c

    r9c7dc8e rcd74fa8  
    5959        wdecor_corner_h = 24,
    6060        wdecor_edge_w = 4,
    61         wdecor_edge_h = 4
     61        wdecor_edge_h = 4,
     62        wdecor_tbar_h = 22,
     63        wdecor_tbar_h_text = 1,
     64        wdecor_frame_w = 4,
     65        wdecor_frame_w_text = 1
    6266};
    6367
     
    180184                        return rc;
    181185
    182                 rc = ui_paint_bevel(wdecor->res->gc, &rect,
    183                     wdecor->res->wnd_highlight_color,
    184                     wdecor->res->wnd_shadow_color, 1, &rect);
    185                 if (rc != EOK)
    186                         return rc;
    187 
    188                 rc = ui_paint_bevel(wdecor->res->gc, &rect,
    189                     wdecor->res->wnd_face_color,
    190                     wdecor->res->wnd_face_color, 2, &rect);
    191                 if (rc != EOK)
    192                         return rc;
     186                if (wdecor->res->textmode == false) {
     187                        rc = ui_paint_bevel(wdecor->res->gc, &rect,
     188                            wdecor->res->wnd_highlight_color,
     189                            wdecor->res->wnd_shadow_color, 1, &rect);
     190                        if (rc != EOK)
     191                                return rc;
     192
     193                        rc = ui_paint_bevel(wdecor->res->gc, &rect,
     194                            wdecor->res->wnd_face_color,
     195                            wdecor->res->wnd_face_color, 2, &rect);
     196                        if (rc != EOK)
     197                                return rc;
     198                }
    193199        }
    194200
     
    196202                trect = geom.title_bar_rect;
    197203
    198                 rc = ui_paint_bevel(wdecor->res->gc, &trect,
    199                     wdecor->res->wnd_shadow_color,
    200                     wdecor->res->wnd_highlight_color, 1, &trect);
    201                 if (rc != EOK)
    202                         return rc;
     204                if (wdecor->res->textmode == false) {
     205                        rc = ui_paint_bevel(wdecor->res->gc, &trect,
     206                            wdecor->res->wnd_shadow_color,
     207                            wdecor->res->wnd_highlight_color, 1, &trect);
     208                        if (rc != EOK)
     209                                return rc;
     210                }
    203211
    204212                rc = gfx_set_color(wdecor->res->gc, wdecor->active ?
     
    292300void ui_wdecor_get_geom(ui_wdecor_t *wdecor, ui_wdecor_geom_t *geom)
    293301{
     302        gfx_coord_t frame_w;
     303        gfx_coord_t tbar_h;
     304
    294305        /* Does window have a frame? */
    295306        if ((wdecor->style & ui_wds_frame) != 0) {
    296                 geom->interior_rect.p0.x = wdecor->rect.p0.x + 4;
    297                 geom->interior_rect.p0.y = wdecor->rect.p0.y + 4;
    298                 geom->interior_rect.p1.x = wdecor->rect.p1.x - 4;
    299                 geom->interior_rect.p1.y = wdecor->rect.p1.y - 4;
     307                frame_w = wdecor->res->textmode ?
     308                    wdecor_frame_w_text : wdecor_frame_w;
     309
     310                geom->interior_rect.p0.x = wdecor->rect.p0.x + frame_w;
     311                geom->interior_rect.p0.y = wdecor->rect.p0.y + frame_w;
     312                geom->interior_rect.p1.x = wdecor->rect.p1.x - frame_w;
     313                geom->interior_rect.p1.y = wdecor->rect.p1.y - frame_w;
    300314        } else {
    301315                geom->interior_rect = wdecor->rect;
     
    304318        /* Does window have a title bar? */
    305319        if ((wdecor->style & ui_wds_titlebar) != 0) {
     320                tbar_h = wdecor->res->textmode ?
     321                    wdecor_tbar_h_text : wdecor_tbar_h;
     322
    306323                geom->title_bar_rect.p0 = geom->interior_rect.p0;
    307324                geom->title_bar_rect.p1.x = geom->interior_rect.p1.x;
    308                 geom->title_bar_rect.p1.y = geom->interior_rect.p0.y + 22;
     325                geom->title_bar_rect.p1.y = geom->interior_rect.p0.y + tbar_h;
    309326
    310327                geom->app_area_rect.p0.x = geom->interior_rect.p0.x;
     
    322339        /* Does window have a close button? */
    323340        if ((wdecor->style & ui_wds_close_btn) != 0) {
    324                 geom->btn_close_rect.p0.x = geom->title_bar_rect.p1.x - 1 - 20;
    325                 geom->btn_close_rect.p0.y = geom->title_bar_rect.p0.y + 1;
    326                 geom->btn_close_rect.p1.x = geom->title_bar_rect.p1.x - 1;
    327                 geom->btn_close_rect.p1.y = geom->title_bar_rect.p0.y + 1 + 20;
     341                if (wdecor->res->textmode == false) {
     342                        geom->btn_close_rect.p0.x =
     343                            geom->title_bar_rect.p1.x - 1 - 20;
     344                        geom->btn_close_rect.p0.y =
     345                            geom->title_bar_rect.p0.y + 1;
     346                        geom->btn_close_rect.p1.x =
     347                            geom->title_bar_rect.p1.x - 1;
     348                        geom->btn_close_rect.p1.y =
     349                            geom->title_bar_rect.p0.y + 1 + 20;
     350                } else {
     351                        geom->btn_close_rect.p0.x =
     352                            geom->title_bar_rect.p1.x - 1 - 3;
     353                        geom->btn_close_rect.p0.y =
     354                            geom->title_bar_rect.p0.y;
     355                        geom->btn_close_rect.p1.x =
     356                            geom->title_bar_rect.p1.x - 1;
     357                        geom->btn_close_rect.p1.y =
     358                            geom->title_bar_rect.p0.y + 1;
     359                }
    328360        } else {
    329361                geom->btn_close_rect.p0.x = 0;
Note: See TracChangeset for help on using the changeset viewer.