Commit graph

75 commits

Author SHA1 Message Date
Lephenixnoir
c6195b1b30
juic: add type annotations (syntax only) 2024-09-21 17:20:35 +02:00
Lephenixnoir
4728c6ecbe
jlabel: align top by default and wrap lines in a smarter way
With this change, unless wrapped_newline_spadcing is set (which it's not
by default), spaces around explicit newlines will no longer be skipped.
2024-09-14 12:21:07 +02:00
Lephenixnoir
33e9962209
jlabel: default line spacing to new font_t.line_distance property 2024-09-14 07:19:39 +02:00
Lephenixnoir
57a460894f
the entire new keyboard focus system, save for a few bits
I need to move on to gintctl so that'll be enough for now.
2024-09-13 22:00:29 +02:00
Lephenixnoir
7a5101360a
add notes about keyboard focus system 2024-09-11 13:21:03 +02:00
Lephenixnoir
f28d7a9cb8
jfkeys: add event processing to jfkeys
This requires jfkeys to _get_ the events, which needs to be done
manually by its owner to some degree (in gintctl, gscreen handles it).

Currently there are just 6 values 0..5 for F1..F6, but future expansion
for rotating menus with more than 6 entries and nested menus might add
to this set.
2024-09-06 16:19:01 +02:00
Lephenixnoir
93eb0df38a
jinput: fix incorrect return value in new event() convention 2024-09-06 10:02:55 +02:00
Lephenixnoir
626da6f378
jpainted: try out a macro-based widget definition scheme 2024-09-06 09:58:33 +02:00
Lephenixnoir
683e89d725
update built-in widgets' event handlers to default to jwidget 2024-09-06 09:58:32 +02:00
Lephenixnoir
216918123f
remove inheritance from jwidget API
This is the first step in improving the widget definition process. By
forcing the default behavior to be the widget behavior (thus
discouraging inheritance that doesn't work in C anyway), the default of
jwidget_poly_event() is exposed to the contract. This will allow further
features in using events, specifically for more complex focus cases.
2024-09-06 09:58:32 +02:00
Lephenixnoir
a2129f1ed2
jscene: give a default layout 2024-09-05 09:03:03 +02:00
Lephenixnoir
7b8070f02c
jevent: conveniences for testing for keys 2024-09-04 14:45:27 +02:00
Lephenixnoir
f32dcc69ce
jwidget: use dclear() fror background when widget is full screen 2024-09-04 08:57:58 +02:00
Lephenixnoir
e12a58c1f0
jfkeys: parameterize width to better fit on fx-CP display 2024-09-04 08:56:04 +02:00
Lephenixnoir
7f2131d6a0
jscene: add autopaint option
This handles JSCENE_PAINT events in the usual manner. This requires that
no painting other than the scene is desired, which is generally the
case.
2024-09-04 08:55:56 +02:00
Lephenixnoir
7587dfa17c
jlist: add user data pointer
This allows the info and paint functions to access user data associated
with the list without going through globals.
2024-09-04 08:51:41 +02:00
Lephenixnoir
12b29f8223
jlist: autofill info structure to 0 before calling info function
This avoids having to specify all fields in the info function.
2024-09-04 08:50:38 +02:00
Lephenixnoir
ba7b0a02d0
jlist, jscrolledlist: make parent the last constructor argument
To stay in line with constructors for other widgets.
2024-09-04 08:49:52 +02:00
Lephenixnoir
3488c6515a
jlist: add background/inversion selection feature 2024-09-04 08:46:26 +02:00
Lephenixnoir
0c8371edce
jscene: add missing jscene_set_poweroff function 2024-09-03 17:00:53 +02:00
Lephenixnoir
aa736bd12a
juic: intended implementation of record ctors, working for now 2024-08-28 19:55:38 +02:00
Lephenixnoir
5f198ff6b0
juic: small improvements to record ctors, not working yet 2024-08-28 15:38:52 +02:00
Lephenixnoir
ce39929bb4
juic: fix all errors raised by mypy 2024-08-28 14:59:55 +02:00
Lephenixnoir
4579acc0f4
juic: add some record processing, start checking with mypy 2024-08-28 14:59:55 +02:00
Lephenixnoir
e79ba0056b
juic: add basic unit tests to consolidate
This way when I get the record constructors right (which I think I have
in my mind now) I can keep around non-regression tests.
2024-08-28 10:43:23 +02:00
Lephenixnoir
24f3e14061
juic: WIP 2024-08-28 08:52:07 +02:00
Lephenixnoir
550c08e200
jscene: atomic queue access for interrupt-safety 2024-08-28 08:39:09 +02:00
Lephenixnoir
5e2488cdf4
jframe: add missing child check in poly_render 2024-08-17 17:43:17 +02:00
Lephenixnoir
5a885b541f
enable LTO 2024-05-26 18:18:39 +02:00
Lephenixnoir
5b092a5a4e
enable the fx-CP build 2024-05-26 18:18:31 +02:00
Lephenixnoir
e324f9a3a2
don't use FX9860G/FXCG50 and slightly more unified APIs
We still have a few platform-specific occurrences that I'll want to get
rid of in the future. This should ultimately leave me with only one
version of the library (but this also precludes the use of macros like
DWIDTH/DHEIGHT which will require further changes).
2024-03-24 11:05:43 +01:00
Lephenixnoir
0e5ccf4cc3
jinput: add keymap customization function 2024-03-17 19:09:20 +01:00
Lephenixnoir
bea113f09e
jfileselect: visualize errors 2024-02-04 19:59:45 +01:00
Lephenixnoir
ef71bc11c0
jscene: poweroff upon SHIFT+AC/ON 2024-01-16 11:43:23 +01:00
Lephenixnoir
4c44b3e413
jfileselect: improve behavior for empty listings 2024-01-04 19:22:45 +01:00
Lephenixnoir
d9c18117c5
bump version to 1.3.0 2023-04-10 14:19:54 +02:00
Lephenixnoir
a84b0adb3a
jlist: fix jlist_clear() 2022-12-02 09:56:33 +01:00
Lephenixnoir
f5d6fb2e87
jscrolledlist: hack to allow scroll before re-layout 2022-12-01 23:59:31 +01:00
Lephenixnoir
40ffe54250
jfkeys: fix key levels not working at all 2022-12-01 11:00:41 +01:00
Lephenixnoir
beeb0c0724
jlist, jscrolledlist: add versatile paintable list widgets 2022-12-01 11:00:27 +01:00
Lephenixnoir
51fbf2f582
jframe: new widget that adds scrolling to a large child (basics) 2022-11-20 14:56:42 +01:00
Lephenixnoir
950c5b7152
jwidget: add a per-widget clipping setting 2022-11-19 23:42:38 +01:00
Lephenixnoir
67219834be
jscene: honor the getkey feature function in jscene_run() 2022-11-19 18:58:19 +01:00
Lephenixnoir
2e15bb8c96
jscene: fix delivery of focus change events 2022-11-19 18:57:36 +01:00
Lephenixnoir
5b591a6fb4
jinput: fix out-of-bounds bug in weird cursor positions 2022-11-19 18:53:58 +01:00
Lephenixnoir
7c0e8257f7
jevent: add generic integer data option in events 2022-11-06 19:51:28 +01:00
Lephenixnoir
cfeba2695c
jfileselect: add a scrollbar option (enabled by default) 2022-11-05 20:58:34 +01:00
Lephenixnoir
fd9191cc43
jfileselect: friendlier fx-9860G defaults 2022-11-05 19:06:33 +01:00
Lephenixnoir
a588c24f59
jfileselect: add a programmable filter 2022-11-05 18:50:40 +01:00
Lephenixnoir
34ee43d67f
jscene: update for extra parameters in keydev_read() 2022-11-04 11:10:21 +01:00