Commit Graph

636 Commits (363a3d484eac74b34c87b9db45ab0cc901876994)

Author SHA1 Message Date
Myk Taylor 6c6c4e159f
add reminder why we can't clear mouse_lbut 2023-01-13 12:17:51 -08:00
Myk Taylor 508777897b
allow tile list icons to be rendered properly 2023-01-12 22:30:47 -08:00
Myk 68e373100b
Merge pull request #2591 from myk002/myk_penn
support foreground and background writing from pens
2023-01-12 21:00:38 -08:00
Myk Taylor c98e389ac8
move untested warning back to run_script
so we don't waste our warning on the initial env scans
2023-01-12 14:15:43 -08:00
Myk Taylor 52a39438f7
don't make EditField's transparent
this is actually a very old bug, but now that I know how transparency
works, it's obvious how to fix this
2023-01-12 12:47:43 -08:00
Myk Taylor 15998f2ebe
add gui.TRANSPARENT_PEN for clearing the UI layer 2023-01-12 12:44:50 -08:00
Myk Taylor 079d5e4178
support foreground and background writing from pens 2023-01-12 12:30:07 -08:00
Myk Taylor 88f158921f
move warning to run_script_with_env 2023-01-11 19:48:15 -08:00
Myk Taylor 679e91d2e7
warn against running untested scripts
but allow after the first try
2023-01-10 23:21:30 -08:00
Myk Taylor 7cf703ef23
turn down Ruby support 2023-01-09 23:59:55 -08:00
Myk c26ed36893
Merge pull request #2577 from myk002/myk_get_any
get rudimentary getAny(Unit|Item|Building) working
2023-01-09 23:50:02 -08:00
Myk Taylor fecc733192
detect clicks on part of pin that sticks up 2023-01-09 12:52:26 -08:00
Myk Taylor f39684dbfd
pass getAny calls through ZScreens 2023-01-09 09:35:55 -08:00
Myk Taylor 2234328a91
use an actual pin texture for ZScreen pins 2023-01-09 00:47:13 -08:00
Myk Taylor 72d5760ff6
add CycleHotkeyLabel:setOption() 2023-01-07 01:00:40 -08:00
Myk fe9d1e186e
Merge pull request #2562 from myk002/myk_greenify
allow color options for CycleHotkeyLabel
2023-01-06 19:10:39 -08:00
Myk Taylor 093eac3eb2
use a black background for non-top ZScreen titles 2023-01-06 18:58:08 -08:00
Myk Taylor 810430f1a2
make windows lockable (can ignore r-click and esc) 2023-01-06 18:48:53 -08:00
Myk Taylor 1f5ae4165f
return self from raise, update docs 2023-01-06 15:43:08 -08:00
Myk Taylor fccefd1155
don't pass through handled r-clicks 2023-01-06 15:43:08 -08:00
Myk Taylor f43358002d
Allow dialogs to close on r-click 2023-01-06 15:43:08 -08:00
Myk Taylor 574be3fe73
provide a useful default impl of isMouseOver 2023-01-06 15:42:40 -08:00
Myk Taylor f15e9e3577
don't revert to plain strings for pens 2023-01-06 15:42:30 -08:00
Myk Taylor e111a73763
allow color options for CycleHotkeyLabel
and use the option to render `On` in green for ToggleHotkeyLabel
2023-01-06 15:42:27 -08:00
Myk Taylor 1934014659
framework for passthru, z-order swapping windows 2023-01-05 18:07:38 -08:00
Myk Taylor c4a2bdd08e
update lua too 2023-01-05 17:35:33 -08:00
Myk b62cfa3699
Merge pull request #2552 from myk002/myk_mouse
Get correct mouse button down behavior in Lua without overwriting enabler fields
2023-01-04 19:39:43 -08:00
Myk Taylor 9fd3ef7b4b
correct mouse down behavior without hosing enabler
before, we inhibited multiple mouse button down events by overwriting
the values in enabler. now we keep state internally and inhibit multiple
events on our own.

also add events and state tracking for middle mouse button
2023-01-03 14:52:49 -08:00
Myk Taylor 55cdaea636
refactor EditField text insertion 2023-01-03 12:57:02 -08:00
Myk Taylor a0343b06a6
adjust text wrap to new scrollbar width 2023-01-03 00:56:07 -08:00
Myk 35ce361b09
Merge pull request #2542 from myk002/myk_dwarfmode_dims
clear out obsolete area map and menu logic from the Gui module
2023-01-02 20:42:30 -08:00
Myk Taylor da63d6294b
ensure the scrollbar midpoint is always rendered
this mimics the vanilla scrollbar behavior (and looks better)
2023-01-01 17:55:06 -08:00
Myk Taylor 7d5d2d0a9b
clear out obsolete area map and menu logic
in particular, return the correct map dimensions in getDwarfmodeDims()
2022-12-31 22:49:30 -08:00
Myk bf995a0968
Merge pull request #2533 from myk002/myk_lua_input
adjust Lua widgets to new input scheme
2022-12-30 22:37:12 -08:00
Myk a7dd14d699
Merge pull request #2535 from myk002/myk_smart_refresh
only do a full refresh when needed
2022-12-30 22:36:42 -08:00
Myk Taylor cf65f48aa0
don't use defunct MENU_CONFIRM keybinding 2022-12-30 22:35:08 -08:00
Myk Taylor 21f137644f
remove trailing whitespace 2022-12-30 22:35:08 -08:00
Myk Taylor 3a76fc086f
fix keyboard movement of Panel widgets 2022-12-30 22:35:08 -08:00
Myk Taylor 6871bc20c4
use new KEYBOARD interface keys in move delta 2022-12-30 22:35:08 -08:00
Myk Taylor 04f2d555c6
implement context-aware mouse wheel scrolling 2022-12-30 22:35:08 -08:00
Myk Taylor 38b525bdb5
adapt lua library widgets to new keyboard keybindings 2022-12-30 22:35:08 -08:00
Myk Taylor 1d7a7c8a49
Don't leave artifats behind when dimissing mboxes 2022-12-30 22:20:50 -08:00
Myk Taylor dd0cc087d5
Revert "consolidate full refresh logic in widgets.Panel"
This reverts commit 33787473f0.

I've already found another use case where we need a more general
implementation -- modal dialogs that inherit from FramedScreen that
appear and disappear
2022-12-30 22:13:53 -08:00
Myk Taylor 33787473f0
consolidate full refresh logic in widgets.Panel 2022-12-30 20:44:15 -08:00
Myk Taylor 88dcdfd158
move trigger code from Window to Panel
where the drag/resize code actually is. Panels can be dragged around the
parent screen without them being a Window
2022-12-30 20:01:09 -08:00
Myk Taylor 70a0f4a718
only do a full refresh when needed
this significantly reduces CPU utilization when DFHack-owned screens are
visible.
2022-12-30 17:06:41 -08:00
Myk Taylor 3aac79fe4f
skin our scrollbars to look and hover like DF's 2022-12-30 05:33:17 -08:00
Myk Taylor cff603e243
allow Labels to write tile textures 2022-12-28 23:16:13 -08:00
Myk Taylor d7b67e9528
remove cached USE_GRAPHICS from gui.lua
it's no longer constant
2022-12-28 16:27:44 -08:00
Myk Taylor 99ffe769fa
rendering the parent now involves a full refresh
in order to get the background
2022-12-27 15:23:34 -08:00
Myk Taylor 033eb2aefd
use default background colors
and ensure texpos_lower doesn't peek through
2022-12-27 15:05:13 -08:00
Myk Taylor 75afa88790
use tiles for our default frame 2022-12-27 14:40:35 -08:00
lethosor 6a61c750e9
widgets.render_text(): error early if key is invalid
This helps identify _which_ key is invalid - otherwise, getKeyDisplay()
complains that it was called with `nil`, which is less helpful.
2022-12-23 13:17:26 -05:00
Myk Taylor 663e1dd541
ascii is now in color 2022-12-20 16:33:11 -08:00
Myk 42203b13f4
Merge pull request #2500 from myk002/myk_panel_drag
Support resizing for DFHack Panel widgets
2022-12-15 14:36:33 -08:00
Myk Taylor 06346c6269
implement double clicking on the title to maximize
also double click on a maximized window to jump to the minimum size
the location of the window isn't guaranteed to be the same after
maximizing and un-maximizing, but we could implement that if there is
call for it.
2022-12-14 19:03:38 -08:00
Myk Taylor 434e9322cc
fix error in error message formatting 2022-12-14 17:51:07 -08:00
Myk Taylor 4c6daf30d9
add widgets.Window and fix paint_frame offset 2022-12-14 12:04:29 -08:00
Myk Taylor 12e62c7f9d
highlight anchor point when resizing with keyboard 2022-12-14 10:34:06 -08:00
Myk Taylor c030704705
implement panel resizing 2022-12-14 10:34:04 -08:00
Myk Taylor 99b599e9ab
add docs for panel dragging 2022-12-13 13:01:49 -08:00
Myk Taylor 3f43f72731
fix the math 2022-12-13 12:39:17 -08:00
Myk Taylor 38a3bec953
dragging logic 2022-12-12 18:07:05 -08:00
Myk Taylor ffd646462a
ensure `enable` doesn't miss newly-added scripts
and add some more documentation
2022-12-10 22:13:38 -08:00
myk002 e88b1fdfe5
move script-manager into core 2022-12-10 21:59:51 -08:00
myk002 2b87307e11
allow visible and active to be dynamic properties 2022-12-04 15:46:19 -08:00
Myk aac89d4942
Merge branch 'develop' into myk_default_search_key 2022-11-29 15:07:12 -08:00
Myk 5b311163a9
Merge pull request #2431 from myk002/myk_widget_fixes
fix minor errors in ResizablePanel, Label, and HotkeyLabel widgets
2022-11-29 15:06:15 -08:00
myk002 726771c8d3
supply default search key for tokenized text 2022-11-28 16:02:47 -08:00
myk002 adb9c5ea12
fix frame size calculation when frame_inset is set
also fix error when clicking on HotkeyLabels where no on_activate
callback has been set
2022-11-28 15:12:22 -08:00
myk002 fb6483fe6c
allow frames to be drawn without DFHack signature 2022-11-28 15:04:28 -08:00
myk002 c9cf5ecca8
we kept editfield as MOUSE_L for click and drag 2022-11-21 17:51:24 -08:00
myk002 24dc879888
adapt library code to newly correct mouse events 2022-11-21 17:36:46 -08:00
myk002 5b1ebdf72a
don't return list idx when mouse is on scrollbar 2022-11-11 10:40:10 -08:00
Myk ccd43f1710
Merge pull request #2381 from myk002/myk_framed_panel
[widgets.Panel] support frames around panel widgets
2022-11-09 10:32:23 -08:00
Myk 9fed02435e
Merge pull request #2378 from myk002/myk_list_mouse
Allow widgets.List to report hover target and respond to shift-click
2022-11-09 10:32:06 -08:00
myk002 32dc80729a
support drawing frames around panels 2022-11-07 16:50:21 -08:00
myk002 83f560a6f4
allow shift-click to trigger submit2 for List 2022-11-07 16:14:16 -08:00
myk002 1b7b75d8ab
factor out detection of the list index under mouse 2022-11-07 16:13:45 -08:00
myk002 28aadea6af
allow an alternate ViewRect for getMousePos 2022-11-07 15:54:56 -08:00
myk002 be18f4e900
return self from Screen:show() as a convenience 2022-11-07 15:54:55 -08:00
Myk a854e379b2
Merge pull request #2354 from myk002/myk_scrollbars_redux
make scrollbars more responsive when dragging
2022-10-22 20:28:52 -07:00
myk002 64b923b9eb
make the materials dialog filter lcase only
this allows the capital letter hotkeys to be processed by the list
widget without the special-casing of the ignore_keys attribute.
2022-10-21 12:43:53 -07:00
myk002 593b80cfa0
make scrollbars more responsive when dragging 2022-10-21 12:22:57 -07:00
myk002 1e21e6546e
fix materials selection dialog
where the filter was swallowing the sublist hotkeys
2022-10-19 17:31:28 -07:00
myk002 142b45ef49
move list item hotkey hint left by one tile
so it doesn't get covered by the scrollbar
2022-10-19 17:30:51 -07:00
myk002 d650ba2377
ensure scrollbar can never get ahead of the cursor 2022-10-10 16:42:32 -07:00
myk002 ba36e72b33
support click and drag for scrollbars 2022-10-07 16:27:19 -07:00
myk002 35eb4e08dd
hold down the mouse button to continue scrolling 2022-10-07 15:40:05 -07:00
myk002 2bff70a290
add unit tests for widgets.Scrollbar 2022-10-07 13:14:52 -07:00
myk002 5722d6914b
transition Label to use the new generic Scrollbar 2022-10-07 12:45:43 -07:00
myk002 24232e894a
create Scrollbar widget and integrate with List 2022-10-06 11:13:16 -07:00
myk002 9817106c30
add --exclude option for ls 2022-10-05 13:30:14 -07:00
myk002 dc535004e9
better formatting for ls output for tags 2022-10-05 12:51:30 -07:00
myk002 278b7528ac
implement basic domain index structure 2022-09-23 08:46:50 -07:00
myk002 fae26b2375
replace die's underline with tombstones
easter egg suggested by thurin : )
2022-09-23 08:34:22 -07:00
Myk b07f3b5b6c
stub help formatted same as real help 2022-09-22 17:43:56 -07:00
Myk 4d662adfe5
Fix marker checking for ruby help text 2022-09-22 17:39:54 -07:00
Myk Taylor 3b650c8d0b
don't let changes to the lua cursor bleed through
before, we could end up changing the state of whoever last called
guidm.setCursorPos()
2022-09-18 08:20:33 -07:00
myk002 6fff83de5a
fix EditField rendering with TWBT 2022-09-16 15:24:33 -07:00
myk002 b88d343ddd
fix off-by-one error on scrollbar click detection 2022-09-14 09:25:43 -07:00
myk002 bb52e7bac8 list tools in categories with tags builtin 2022-09-13 23:17:19 -07:00
myk002 d4914e7511
implement mouse click reactions for scrollbar 2022-09-11 19:33:01 -07:00
myk002 e2fbade219
fix scrollbar display when all text is visible
also align behavior with documentation when 'left' or 'right' is
explicitly specified (i.e. always show the scrollbar)
2022-09-11 18:56:43 -07:00
myk002 f71f034d1d
show full scrollbars instead of just scroll icons 2022-09-11 17:58:10 -07:00
myk002 23994d4f4c
dynamically wrap helpdb long help text (default 80) 2022-09-11 13:41:20 -07:00
myk002 3c99a7214f
ensure params are strings when invoking scripts 2022-09-10 10:10:28 -07:00
lethosor 2fdbcaebf5 Accept negative indices, add vector tests 2022-09-07 09:14:09 -07:00
lethosor 483652e193 Rewrite utils.df_expr_to_ref() for consistency, add tests 2022-09-07 09:14:09 -07:00
myk002 b1a8662c4a
Merge branch 'develop' into docs 2022-08-31 23:00:39 -07:00
myk002 074a6ec5cd allow EditFields to ignore specified keys
like "+" and "-", so you can use them as hotkeys in the parent view
2022-08-31 10:22:41 -07:00
myk002 27e189fef2
no cursor position reset when updating list filter 2022-08-29 15:17:17 -07:00
myk002 4a1a322cd7
adapt to the new summary layout 2022-08-26 16:51:42 -07:00
myk002 0d3aa0fb28
Merge remote-tracking branch 'upstream/develop' into docs 2022-08-25 21:59:01 -07:00
myk002 8acda4d6c8
Interpret '4' & '6' as strings, not movement keys 2022-08-19 22:40:53 -07:00
myk002 751c2eb7d1
fix detection of short description start
now that labels are no longer bolded in the text rendering, the header
detection code needs updating
2022-08-19 16:19:19 -07:00
myk002 df9c37a8b7
Merge branch 'develop' into docs 2022-08-15 17:09:36 -07:00
myk002 8672282fd8
add helpdb, unit test, and document API
note that we have to dynamically sort some of the expected lists for
locale agnosticism
2022-08-15 16:31:52 -07:00
myk002 7f0791f6c3 use setText() accessor method instead of direct access 2022-08-15 16:24:34 -07:00
myk002 22f9f3b042 add unit tests for new widget functionality 2022-08-15 16:24:34 -07:00
myk002 0ae4fed3cf add mouse support for CycleHotkeyLabel widgets 2022-08-15 16:24:34 -07:00
myk002 79b6cd13e9 support scrolling by half pages in Label 2022-08-15 16:24:34 -07:00
myk002 a5af5a1373 don't bork on no frame, set cursor to end of text 2022-08-15 16:24:34 -07:00
myk002 4e382c7b3b make HotkeyLabels react to clicking
also be better about initializing EditField frame height
2022-08-15 16:24:34 -07:00
myk002 8de8b22566 click to correct cursor position on long strings
where the left side of the string has been trimmed
2022-08-15 16:24:34 -07:00
myk002 b7f74fe2ce allow mouse lclick to select a List item 2022-08-15 16:24:34 -07:00
myk002 1dd3d6656b move the cursor in an EditField on mouse lclick 2022-08-15 16:24:34 -07:00
myk002 0aa9a187cf support cursor movement in EditFields 2022-08-15 16:24:34 -07:00
myk002 43b1abcdcf support submit2 for EditFields 2022-08-15 16:24:34 -07:00
myk002 214dd3c579 reset scroll position when the text is changed 2022-08-15 16:24:34 -07:00
myk002 23ced99131 fix call to new functions in existing coord fn 2022-08-15 16:15:41 -07:00
myk002 a4c8535977 add argparse int checking methods, more docs 2022-08-15 16:15:41 -07:00
myk002 ef56addb14
prep for new format; accept pipe as tag separator 2022-08-07 22:13:46 -07:00
myk002 a8d0cc7980
support scrolling by half pages in Label 2022-08-06 23:48:25 -07:00
myk002 625b4d439d
fix typo in API function name 2022-08-05 22:31:39 -07:00
myk002 1a777257b4
add get_entry_types API method to helpdb 2022-08-05 22:06:02 -07:00
myk002 ebfe00b112
editing pass of short descriptions
and fix some short description parsing
2022-08-05 10:08:23 -07:00
myk002 aa3a389b6f
fix parsing bold text and indenting of ls output 2022-07-29 17:37:50 -07:00
myk002 10f8417cc2
create helpdb entries for all plugins
even those that have no commands and are not enableable
2022-07-26 22:22:43 -07:00
myk002 8cf7f59c39
wrap ls and tags output 2022-07-25 17:48:39 -07:00
Myk 3c92d4f195
Fix typo 2022-07-23 16:35:40 -07:00
myk002 9b7cc6180d
don't create entries for non-enableable plugins 2022-07-22 21:21:38 -07:00
myk002 4b1696f783
add '?' alias for help 2022-07-21 22:36:17 -07:00
myk002 2ce7518562
read plugin command docs from single plugin file 2022-07-21 22:33:43 -07:00
myk002 64b793b409
support EditField:setText() so scripts can use it
and be compatible with both the develop and docs branch
2022-07-20 15:40:49 -07:00
myk002 9dcb63da53
don't bork on no frame, set cursor to end of text 2022-07-20 15:36:17 -07:00
myk002 048b20ac45
no help entries for non-enableable plugins 2022-07-20 13:34:29 -07:00
myk002 0dd153cc0d
ensure we pick up the plugin help entry
even when it has a command and that command is not equal to the plugin
name
2022-07-20 12:34:40 -07:00
myk002 954e246140
reformat builtins and properly read tags 2022-07-19 23:01:25 -07:00
myk002 ddcb9b4921
add missing 'man' builtin 2022-07-19 22:35:08 -07:00