Changeset f2cb80a in mainline for uspace/app/taskbar-cfg/smeedit.c


Ignore:
Timestamp:
2024-02-23T17:57:23Z (11 months ago)
Author:
GitHub <noreply@…>
Children:
192019f
Parents:
86f862c (diff), 90ba06c (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent.
git-author:
boba-buba <120932204+boba-buba@…> (2024-02-23 17:57:23)
git-committer:
GitHub <noreply@…> (2024-02-23 17:57:23)
Message:

Merge branch 'HelenOS:master' into topic/packet-capture

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/app/taskbar-cfg/smeedit.c

    r86f862c rf2cb80a  
    11/*
    2  * Copyright (c) 2023 Jiri Svoboda
     2 * Copyright (c) 2024 Jiri Svoboda
    33 * All rights reserved.
    44 *
     
    3636#include <stdio.h>
    3737#include <stdlib.h>
     38#include <ui/checkbox.h>
    3839#include <ui/fixed.h>
    3940#include <ui/resource.h>
     
    9495        const char *cmd;
    9596        const char *caption;
     97        bool terminal;
    9698        errno_t rc;
    9799
     
    101103                cmd = smenu_entry_get_cmd(smentry->entry);
    102104                caption = smenu_entry_get_caption(smentry->entry);
     105                terminal = smenu_entry_get_terminal(smentry->entry);
    103106        } else {
    104107                cmd = "";
    105108                caption = "";
     109                terminal = false;
    106110        }
    107111
     
    116120
    117121        ui_wnd_params_init(&params);
    118         params.caption = smentry != NULL ? "Edit Start Menu Entry"
    119             : "Create Start Menu Entry";
     122        params.caption = smentry != NULL ? "Edit Start Menu Entry" :
     123            "Create Start Menu Entry";
    120124        if (ui_is_textmode(ui)) {
    121125                params.rect.p0.x = 0;
    122126                params.rect.p0.y = 0;
    123127                params.rect.p1.x = 50;
    124                 params.rect.p1.y = 12;
     128                params.rect.p1.y = 13;
    125129        } else {
    126130                params.rect.p0.x = 0;
    127131                params.rect.p0.y = 0;
    128132                params.rect.p1.x = 370;
    129                 params.rect.p1.y = 200;
     133                params.rect.p1.y = 230;
    130134        }
    131135
     
    255259        }
    256260
     261        /* Start in terminal checkbox */
     262
     263        rc = ui_checkbox_create(res, "Start in terminal", &smee->cbterminal);
     264        if (rc != EOK)
     265                goto error;
     266
     267        /* FIXME: Auto layout */
     268        if (ui_is_textmode(ui)) {
     269                rect.p0.x = 3;
     270                rect.p0.y = 8;
     271                rect.p1.x = 6;
     272                rect.p1.y = 9;
     273        } else {
     274                rect.p0.x = 10;
     275                rect.p0.y = 155;
     276                rect.p1.x = 360;
     277                rect.p1.y = 170;
     278        }
     279
     280        ui_checkbox_set_rect(smee->cbterminal, &rect);
     281        ui_checkbox_set_checked(smee->cbterminal, terminal);
     282
     283        rc = ui_fixed_add(smee->fixed, ui_checkbox_ctl(smee->cbterminal));
     284        if (rc != EOK) {
     285                printf("Error adding control to layout.\n");
     286                goto error;
     287        }
     288
    257289        /* OK button */
    258290
     
    264296        if (ui_is_textmode(ui)) {
    265297                rect.p0.x = 23;
    266                 rect.p0.y = 9;
     298                rect.p0.y = 10;
    267299                rect.p1.x = 35;
    268                 rect.p1.y = 10;
     300                rect.p1.y = 11;
    269301        } else {
    270302                rect.p0.x = 190;
    271                 rect.p0.y = 155;
     303                rect.p0.y = 190;
    272304                rect.p1.x = 270;
    273                 rect.p1.y = 180;
     305                rect.p1.y = 215;
    274306        }
    275307
     
    293325        if (ui_is_textmode(ui)) {
    294326                rect.p0.x = 36;
    295                 rect.p0.y = 9;
     327                rect.p0.y = 10;
    296328                rect.p1.x = 48;
    297                 rect.p1.y = 10;
     329                rect.p1.y = 11;
    298330        } else {
    299331                rect.p0.x = 280;
    300                 rect.p0.y = 155;
     332                rect.p0.y = 190;
    301333                rect.p1.x = 360;
    302                 rect.p1.y = 180;
     334                rect.p1.y = 215;
    303335        }
    304336
     
    345377{
    346378        smeedit_t *smee;
     379        smenu_entry_t *entry;
     380        startmenu_entry_t *smentry;
    347381        const char *cmd;
    348382        const char *caption;
     383        bool terminal;
    349384        errno_t rc;
    350385
     
    354389        cmd = ui_entry_get_text(smee->ecmd);
    355390        caption = ui_entry_get_text(smee->ecaption);
     391        terminal = ui_checkbox_get_checked(smee->cbterminal);
    356392
    357393        if (smee->smentry == NULL) {
    358394                /* Create new entry */
    359395                rc = smenu_entry_create(smee->startmenu->tbarcfg->tbarcfg,
    360                     caption, cmd);
     396                    caption, cmd, terminal, &entry);
    361397                if (rc != EOK)
    362398                        return;
     399
     400                rc = startmenu_insert(smee->startmenu, entry, &smentry);
     401                if (rc != EOK)
     402                        return;
     403
     404                startmenu_repaint(smee->startmenu);
    363405        } else {
    364406                /* Edit existing entry */
    365 
    366 
    367407                rc = smenu_entry_set_cmd(smee->smentry->entry, cmd);
    368408                if (rc != EOK)
     
    370410
    371411                smenu_entry_set_caption(smee->smentry->entry, caption);
     412                if (rc != EOK)
     413                        return;
     414
     415                smenu_entry_set_terminal(smee->smentry->entry, terminal);
    372416                if (rc != EOK)
    373417                        return;
Note: See TracChangeset for help on using the changeset viewer.