Changeset 8009dc27 in mainline for uspace/lib/ui/src/pbutton.c


Ignore:
Timestamp:
2020-10-31T01:03:26Z (5 years ago)
Author:
Jiri Svoboda <jiri@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
4df6607
Parents:
f03d1308
Message:

Prototype control base class and fixed layout class

So far only position event delivery is handled via layout

File:
1 edited

Legend:

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

    rf03d1308 r8009dc27  
    4242#include <stdlib.h>
    4343#include <str.h>
     44#include <ui/control.h>
    4445#include <ui/paint.h>
    4546#include <ui/pbutton.h>
     
    5354};
    5455
     56static ui_evclaim_t ui_pbutton_ctl_pos_event(void *, pos_event_t *);
     57
     58/** Push button control ops */
     59ui_control_ops_t ui_pbutton_ops = {
     60        .pos_event = ui_pbutton_ctl_pos_event
     61};
     62
    5563/** Create new push button.
    5664 *
     
    6472{
    6573        ui_pbutton_t *pbutton;
     74        errno_t rc;
    6675
    6776        pbutton = calloc(1, sizeof(ui_pbutton_t));
     
    6978                return ENOMEM;
    7079
     80        rc = ui_control_new(&ui_pbutton_ops, (void *) pbutton,
     81            &pbutton->control);
     82        if (rc != EOK) {
     83                free(pbutton);
     84                return rc;
     85        }
     86
    7187        pbutton->caption = str_dup(caption);
    7288        if (pbutton->caption == NULL) {
     89                ui_control_delete(pbutton->control);
    7390                free(pbutton);
    7491                return ENOMEM;
     
    89106                return;
    90107
     108        ui_control_delete(pbutton->control);
    91109        free(pbutton);
     110}
     111
     112/** Get base control from push button.
     113 *
     114 * @param pbutton Push button
     115 * @return Control
     116 */
     117ui_control_t *ui_pbutton_ctl(ui_pbutton_t *pbutton)
     118{
     119        return pbutton->control;
    92120}
    93121
     
    388416}
    389417
     418/** Handle push button control position event.
     419 *
     420 * @param arg Argument (ui_pbutton_t *)
     421 * @param pos_event Position event
     422 * @return @c ui_claimed iff the event is claimed
     423 */
     424ui_evclaim_t ui_pbutton_ctl_pos_event(void *arg, pos_event_t *event)
     425{
     426        ui_pbutton_t *pbutton = (ui_pbutton_t *) arg;
     427
     428        return ui_pbutton_pos_event(pbutton, event);
     429}
     430
    390431/** @}
    391432 */
Note: See TracChangeset for help on using the changeset viewer.