Changeset b48e680f in mainline for uspace/lib/ui/src


Ignore:
Timestamp:
2021-11-03T10:23:28Z (4 years ago)
Author:
Jiri Svoboda <jiri@…>
Branches:
master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
ec8a1bf
Parents:
ce862ac
git-author:
Jiri Svoboda <jiri@…> (2021-11-02 19:19:50)
git-committer:
Jiri Svoboda <jiri@…> (2021-11-03 10:23:28)
Message:

Allow console application to set the terminal window caption

Location:
uspace/lib/ui/src
Files:
3 edited

Legend:

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

    rce862ac rb48e680f  
    5050#include <ui/wdecor.h>
    5151#include <ui/window.h>
     52#include "../private/wdecor.h"
    5253#include "../private/window.h"
    5354#include "../private/ui.h"
     
    372373                return EOK;
    373374
     375        (void) console_set_caption(ui->console, "");
    374376        return console_gc_suspend(ui->cgc);
    375377}
     
    386388{
    387389        errno_t rc;
     390        ui_window_t *awnd;
    388391
    389392        if (ui->cgc == NULL)
     
    393396        if (rc != EOK)
    394397                return rc;
     398
     399        awnd = ui_window_get_active(ui);
     400        if (awnd != NULL)
     401                (void) console_set_caption(ui->console, awnd->wdecor->caption);
    395402
    396403        return gfx_cursor_set_visible(console_gc_get_ctx(ui->cgc), false);
  • uspace/lib/ui/src/wdecor.c

    rce862ac rb48e680f  
    157157{
    158158        wdecor->active = active;
     159}
     160
     161/** Change caption.
     162 *
     163 * @param wdecor Window decoration
     164 * @param caption New caption
     165 *
     166 * @return EOK on success or an error code
     167 */
     168errno_t ui_wdecor_set_caption(ui_wdecor_t *wdecor, const char *caption)
     169{
     170        char *cdup;
     171
     172        cdup = str_dup(caption);
     173        if (cdup == NULL)
     174                return ENOMEM;
     175
     176        free(wdecor->caption);
     177        wdecor->caption = cdup;
     178
     179        ui_wdecor_paint(wdecor);
     180        return EOK;
    159181}
    160182
  • uspace/lib/ui/src/window.c

    rce862ac rb48e680f  
    262262                        gfx_coord2_add(&dparams.rect.p0, &scr_dims,
    263263                            &dparams.rect.p1);
     264                        (void) console_set_caption(ui->console,
     265                            params->caption);
    264266                }
    265267        } else {
     
    355357        window->wdecor = wdecor;
    356358        window->cursor = ui_curs_arrow;
     359        window->placement = params->placement;
    357360        *rwindow = window;
    358361
     
    412415                ui_paint(ui);
    413416        }
     417
     418        if (ui->console != NULL &&
     419            window->placement == ui_wnd_place_full_screen) {
     420                (void) console_set_caption(ui->console, "");
     421        }
    414422}
    415423
     
    599607        window->cb = cb;
    600608        window->arg = arg;
     609}
     610
     611/** Change window caption.
     612 *
     613 * @param window Window
     614 * @param caption New caption
     615 *
     616 * @return EOK on success or an error code
     617 */
     618errno_t ui_window_set_caption(ui_window_t *window, const char *caption)
     619{
     620        return ui_wdecor_set_caption(window->wdecor, caption);
    601621}
    602622
Note: See TracChangeset for help on using the changeset viewer.