Ignore:
File:
1 edited

Legend:

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

    r0415776 r06176e1  
    7474};
    7575
     76static void wd_minimize(ui_wdecor_t *, void *);
    7677static void wd_maximize(ui_wdecor_t *, void *);
    7778static void wd_unmaximize(ui_wdecor_t *, void *);
     
    8384
    8485static ui_wdecor_cb_t wdecor_cb = {
     86        .minimize = wd_minimize,
    8587        .maximize = wd_maximize,
    8688        .unmaximize = wd_unmaximize,
     
    222224        display_wnd_params_init(&dparams);
    223225        dparams.rect = params->rect;
     226        dparams.caption = params->caption;
    224227        /* Only allow making the window larger */
    225228        gfx_rect_dims(&params->rect, &dparams.min_size);
     
    227230        if ((params->flags & ui_wndf_popup) != 0)
    228231                dparams.flags |= wndf_popup;
     232        if ((params->flags & ui_wndf_topmost) != 0)
     233                dparams.flags |= wndf_topmost;
     234        if ((params->flags & ui_wndf_system) != 0)
     235                dparams.flags |= wndf_system;
     236        if ((params->flags & ui_wndf_avoid) != 0)
     237                dparams.flags |= wndf_avoid;
    229238
    230239        if (ui->display != NULL) {
     
    651660errno_t ui_window_set_caption(ui_window_t *window, const char *caption)
    652661{
     662        errno_t rc;
     663
     664        /* Set console caption if fullscreen window on console */
     665        if (window->ui->console != NULL && window->placement ==
     666            ui_wnd_place_full_screen) {
     667                rc = console_set_caption(window->ui->console, caption);
     668                if (rc != EOK)
     669                        return rc;
     670        }
     671
     672        /* Set display window caption if running on display service */
     673        if (window->dwindow != NULL) {
     674                rc = display_window_set_caption(window->dwindow, caption);
     675                if (rc != EOK)
     676                        return rc;
     677        }
     678
    653679        return ui_wdecor_set_caption(window->wdecor, caption);
    654680}
     
    891917        ui_window_send_unfocus(window);
    892918        ui_unlock(ui);
     919}
     920
     921/** Window decoration requested window minimization.
     922 *
     923 * @param wdecor Window decoration
     924 * @param arg Argument (window)
     925 */
     926static void wd_minimize(ui_wdecor_t *wdecor, void *arg)
     927{
     928        ui_window_t *window = (ui_window_t *) arg;
     929
     930        ui_window_send_minimize(window);
    893931}
    894932
     
    10171055}
    10181056
     1057/** Send window minimize event.
     1058 *
     1059 * @param window Window
     1060 */
     1061void ui_window_send_minimize(ui_window_t *window)
     1062{
     1063        if (window->cb != NULL && window->cb->maximize != NULL)
     1064                window->cb->minimize(window, window->arg);
     1065        else
     1066                ui_window_def_minimize(window);
     1067}
     1068
    10191069/** Send window maximize event.
    10201070 *
     
    11071157        else
    11081158                return ui_window_def_unfocus(window);
     1159}
     1160
     1161/** Default window minimize routine.
     1162 *
     1163 * @param window Window
     1164 * @return EOK on success or an error code
     1165 */
     1166errno_t ui_window_def_minimize(ui_window_t *window)
     1167{
     1168        errno_t rc;
     1169
     1170        if (window->dwindow != NULL) {
     1171                rc = display_window_minimize(window->dwindow);
     1172                if (rc != EOK)
     1173                        goto error;
     1174        }
     1175
     1176        return EOK;
     1177error:
     1178        return rc;
    11091179}
    11101180
Note: See TracChangeset for help on using the changeset viewer.