ptk/examples/button.c
jacekpoz 3231124346
Squashed commit of the following:
commit ef2fdaab86
Author: jacekpoz <jacekpoz@proton.me>
Date:   Tue Aug 13 14:22:09 2024 +0200

    improve all vector types by deunionifying them

commit e994825668
Author: jacekpoz <jacekpoz@proton.me>
Date:   Tue Aug 13 14:19:56 2024 +0200

    use w and h for radii in ellipse intersects

commit 2eb53fb8a3
Author: jacekpoz <jacekpoz@proton.me>
Date:   Tue Aug 13 13:47:03 2024 +0200

    add PTK_LIST_CLEAR

commit a63f65067d
Author: jacekpoz <jacekpoz@proton.me>
Date:   Tue Aug 13 13:46:29 2024 +0200

    remove semicolon from filled macro

commit 4ac6a1bb70
Author: jacekpoz <jacekpoz@proton.me>
Date:   Tue Aug 13 13:31:13 2024 +0200

    ...

commit 5142127ae0
Author: jacekpoz <jacekpoz@proton.me>
Date:   Tue Aug 13 12:50:08 2024 +0200

    add clickable to components if encountered

commit b1f31b7965
Author: jacekpoz <jacekpoz@proton.me>
Date:   Tue Aug 13 12:41:52 2024 +0200

    stupid fucking switch syntax

commit 8ff74e7235
Author: jacekpoz <jacekpoz@proton.me>
Date:   Tue Aug 13 12:40:05 2024 +0200

    remove redundant vertex update

commit 448e9fed14
Author: jacekpoz <jacekpoz@proton.me>
Date:   Tue Aug 13 12:10:48 2024 +0200

    handle button hitboxes properly

commit a4025fa924
Author: jacekpoz <jacekpoz@proton.me>
Date:   Tue Aug 13 12:04:11 2024 +0200

    add more const on local variables

commit c7386ddfbf
Author: jacekpoz <jacekpoz@proton.me>
Date:   Tue Aug 13 12:02:24 2024 +0200

    fix rect triangle comments (xd)

commit ca212ac65e
Author: jacekpoz <jacekpoz@proton.me>
Date:   Tue Aug 13 11:57:33 2024 +0200

    spam const over local variables and function parameters

commit 43707826d9
Author: jacekpoz <jacekpoz@proton.me>
Date:   Tue Aug 13 11:31:50 2024 +0200

    improve rect triangle init readability

commit 2b3f4c58c4
Author: jacekpoz <jacekpoz@proton.me>
Date:   Tue Aug 13 02:08:18 2024 +0200

    set ellipse rect's type to the ellipse's type

commit 4872e59e16
Merge: 336aadc 565aa4d
Author: jacekpoz <jacekpoz@proton.me>
Date:   Tue Aug 13 01:29:01 2024 +0200

    Merge branch 'main' into button

commit 336aadc7a0
Author: jacekpoz <jacekpoz@proton.me>
Date:   Tue Aug 13 01:25:13 2024 +0200

    whoops forgot about this one

commit 29f0d9f56a
Author: jacekpoz <jacekpoz@proton.me>
Date:   Tue Aug 13 01:22:45 2024 +0200

    improve component initialization

    compound literals zero-initialize all omitted fields including
    children.size, now we don't have to explicitly do that in each function

commit 913286e9e7
Merge: 425e670 520b0b9
Author: jacekpoz <jacekpoz@proton.me>
Date:   Tue Aug 13 01:18:39 2024 +0200

    Merge branch 'main' into button

commit 425e6709b4
Author: jacekpoz <jacekpoz@proton.me>
Date:   Tue Aug 13 01:16:38 2024 +0200

    initialize children size to 0 on childless components

commit 70ef0e030f
Author: jacekpoz <jacekpoz@proton.me>
Date:   Tue Aug 13 01:13:39 2024 +0200

    fix vertex input attribute description

commit 44204b5677
Merge: 0788992 f95c47d
Author: jacekpoz <jacekpoz@proton.me>
Date:   Tue Aug 13 01:03:26 2024 +0200

    Merge branch 'main' into button

commit 0788992af4
Author: jacekpoz <jacekpoz@proton.me>
Date:   Tue Aug 13 00:45:13 2024 +0200

    remove vk_clickable from components

commit 7cc71d3177
Merge: 3020724 b74186b
Author: jacekpoz <jacekpoz@proton.me>
Date:   Tue Aug 13 00:44:02 2024 +0200

    Merge branch 'main' into button

commit 3020724319
Merge: 83c7968 80a8069
Author: jacekpoz <jacekpoz@proton.me>
Date:   Tue Aug 13 00:18:31 2024 +0200

    Merge branch 'main' into button

commit 83c7968d48
Author: jacekpoz <jacekpoz@proton.me>
Date:   Tue Aug 13 00:03:51 2024 +0200

    a few component changes before separating them from shapes

commit 4b1fdf8e04
Author: jacekpoz <jacekpoz@proton.me>
Date:   Mon Aug 12 23:49:52 2024 +0200

    rename button to clickable in one more place

commit 6aeb2124d9
Author: jacekpoz <jacekpoz@proton.me>
Date:   Mon Aug 12 23:49:39 2024 +0200

    improve box creation

commit af3066ab7b
Author: jacekpoz <jacekpoz@proton.me>
Date:   Mon Aug 12 23:48:39 2024 +0200

    add pointer versions of add and remove all in ptk list

commit b95ddb45a0
Author: jacekpoz <jacekpoz@proton.me>
Date:   Mon Aug 12 23:48:14 2024 +0200

    rename button to clickable

commit 50197a6a21
Author: jacekpoz <jacekpoz@proton.me>
Date:   Sun Aug 11 21:09:02 2024 +0200

    change default component members and add PTK_COMPONENT_DEFINE

commit 2b5be4c732
Author: jacekpoz <jacekpoz@proton.me>
Date:   Sun Aug 11 21:07:53 2024 +0200

    extract PTK_LIST_STATIC_INIT into PTK_ARRAY

commit 276138043d
Author: jacekpoz <jacekpoz@proton.me>
Date:   Fri Aug 9 22:04:01 2024 +0200

    make the example target not remove the binary

commit c101379150
Author: jacekpoz <jacekpoz@proton.me>
Date:   Fri Aug 9 17:16:35 2024 +0200

    initial button test
2024-08-13 14:39:11 +02:00

30 lines
744 B
C

#include <stdlib.h>
#include <ptk.h>
#include <ptk_log.h>
static PtkRect *r;
static void on_press(const int button, const int action, const int mods) {
(void)button; (void)action; (void)mods;
PTK_DEBUG("pressed!");
r->color.r = r->color.r + (1.0f / 255.0f);
if (r->color.r == 256.0f) {
r->color.r = 0.0f;
}
}
int main(void) {
if (!ptk_init(800, 600, "button", (PtkVersion){ .major = 0, .minor = 1, .patch = 0 })) {
return EXIT_FAILURE;
}
r = (PtkRect *)ptk_rect(
(PtkPos){ .x = 100.0f, .y = 100.0f },
(PtkSize){ .w = 100.0f, .h = 50.0f },
(PtkColor){ .r = 1.0f, .g = 0.0f, .b = 0.0f }
);
return ptk_run(
ptk_clickable((PtkHandle)r, on_press)
);
}