Kelvie Wong
61227eeca1
Fix use of pens in render_text
...
If you ever pass in a number to `dc:pen` rather than a pen table, it
will assume the old pen's other attributes, such as `bg` and `bold`.
To workaround this, we just never pass in a number, and always call
`to_pen` aka `dfhack.pen.parse` first.
2023-02-18 16:07:40 -08:00
Kelvie Wong
94ae9973cf
Re-add the invert_color function
...
As requested, but it's not used anymore.
2023-02-18 16:07:40 -08:00
Kelvie Wong
3e8d0f0f1e
Properly reverse BG/FG and apply per letter
...
This puts pen creation deeper into the loop in render_text.
Lists are current coloured completely wrong, though, and need
fixing (and probably anywhere else where disabled is set).
2023-02-18 16:07:40 -08:00
Kelvie Wong
0897ca913a
Support mouse-hover on lists as well
2023-02-18 16:07:40 -08:00
Kelvie Wong
0b48471607
Invert brightness of the background as well
...
This required some tinkering.
2023-02-18 16:07:40 -08:00
Kelvie Wong
2d68b21547
Show mouse hover on HotkeyLabels
...
Labels show the hover colour when on_click is set, HotkeyLabels should
also do the same when they are clickable.
2023-02-18 16:07:40 -08:00
Robob27
4167c2e652
Add key_back, rename switch_tab_key to key
2023-02-16 02:56:52 -05:00
Robob27
5154eb181a
Add Tab/TabBar to widgets
2023-02-16 02:51:09 -05:00
Robob27
212026861f
WIP list fix
2023-02-15 19:29:45 -05:00
Myk Taylor
bc76fd02e2
prevent mouse clicks from bleeding through when a window is dismissed
2023-02-13 17:35:02 -08:00
Myk Taylor
e5072a4f64
check for settings in the ATTRS, not the args
2023-02-13 09:28:14 -08:00
Myk Taylor
853859e119
refine ZScreen behavior around pausing, update docs
2023-02-13 09:09:39 -08:00
Robob27
7651f6a91e
Add edit_on_change to FilteredList
2023-02-12 17:44:19 -05:00
Myk Taylor
960bfaca86
fix annotation parsing
...
ref: #2857
2023-02-10 08:15:44 -08:00
vallode
991c6d89e8
Fix annotation parse error
2023-02-09 23:50:11 +01:00
Myk
1787d2435c
Merge branch 'develop' into hotkeylabel-enhancements
2023-02-08 12:37:16 -08:00
Myk
201fec6873
Merge pull request #2837 from robob27/case-insensitive-filterlist
...
Add case_sensitive attr to FilteredList
2023-02-08 11:18:31 -08:00
Robob27
b950b56926
Add methods to HotkeyLabel
2023-02-08 13:00:13 -05:00
Robob27
54560bc5db
Don't duplicate regex
2023-02-08 03:39:43 -05:00
Robob27
c1b9de87d2
Add case_sensitive attr to FilteredList
2023-02-08 03:39:43 -05:00
Myk Taylor
ef81a91181
only realign out-of-alignment list positions
2023-02-07 14:12:52 -08:00
Myk
c0358d642d
Merge pull request #2833 from myk002/myk_list_recenter
...
ensure scrollable lists are centered in the visible viewport
2023-02-06 12:57:43 -08:00
Myk Taylor
0b9b258224
ensure scrollable lists are centered in the visible viewport
2023-02-06 12:54:05 -08:00
John Cosker
fdf1d38b23
Merge branch 'cycle-hotkey-rev' of https://github.com/johncosker/dfhack into cycle-hotkey-rev
2023-02-06 15:13:13 -05:00
John Cosker
36391af27c
More cleanup
2023-02-06 15:12:47 -05:00
John Cosker
0769afc961
Merge branch 'develop' into cycle-hotkey-rev
2023-02-06 15:04:57 -05:00
John Cosker
39dc0ccc8a
Cleanup
2023-02-06 15:03:28 -05:00
John Cosker
e1f74ab068
Tweak to completely nil the key_back table for setText if not set
2023-02-06 14:53:26 -05:00
ElsaTheHobo
d09f8553a0
Delete makeown.lua
2023-02-06 13:34:31 -05:00
Myk
041909dfa7
Merge pull request #2822 from myk002/myk_rclick
...
prevent rclick from bleeding through (again)
2023-02-06 09:17:28 -08:00
Myk
99f84fa175
Merge pull request #2811 from TaxiService/patch-3
...
increase min scrollbar height to 2 (from 1)
2023-02-06 08:10:08 -08:00
John Cosker
d7d6c5aea6
Backwards options for cycle hotkey working
2023-02-06 08:55:46 -05:00
Myk Taylor
2ddd23e45d
prevent rclick from bleeding through (again)
2023-02-06 00:57:33 -08:00
Robob27
86b57380a6
fixup unnecessary changes, remove unnecessary stuff
2023-02-05 19:04:21 -05:00
Robob27
a770a4cae4
WIP
2023-02-05 19:04:21 -05:00
TaxiService
b6196e91e4
increase min scrollbar height to 2 (from 1)
...
rationale:
- vanilla scrollbars dont get shorter than 2.
- 2-tall 'bars are easier to click on than 1-tall 'bars.
- this avoids having to make short custom graphics for 1-tall tiles, which most of the time look terrible...
cons:
- short scrollbars are cool : (
2023-02-05 19:00:38 +01:00
TaxiService
30a1f2f924
de-hardcoding scrollbar spritesheet definitions
...
added a new variable "SBSO", and redefined all scrollbar tile definitions as this variable + an offset.
this could make it easier to switch scrollbar graphics from within the game, if necessary.
2023-02-05 18:56:51 +01:00
TaxiService
de04cf04e0
wrong scrollbar sprites mapping fix (issue #2777 )
...
i've taken a crack at it, and this seems to fix this "issue" i filed here: https://github.com/DFHack/dfhack/issues/2777
https://i.imgur.com/aFnq80M.mp4
2023-02-04 15:18:26 +01:00
Myk Taylor
345b7d78cb
pass attributes through FilteredList
2023-02-03 00:09:10 -08:00
Myk Taylor
2316615763
react to double clicks on list items
2023-02-03 00:09:10 -08:00
Myk Taylor
2cf985be73
don't lose List scroll position when dragging
2023-02-02 19:42:41 -08:00
Myk
a3f32e66ad
Merge pull request #2775 from myk002/myk_non_defocusable
...
add defocusable attribute to ZScreen
2023-02-01 17:53:21 -08:00
Myk
1debea59a8
Merge branch 'develop' into myk_non_defocusable
2023-02-01 17:51:04 -08:00
Myk
7fbd95896d
Merge branch 'develop' into myk_pause_forced
2023-02-01 17:50:45 -08:00
Myk Taylor
55d07a8cae
actually use the tile
2023-02-01 14:51:46 -08:00
Myk Taylor
6ae771ecb4
display PAUSE FORCED instead of a pause icon
...
if the window is forcing the game to pause. the icon looked too
clickable
2023-02-01 14:01:29 -08:00
Myk Taylor
88860f21ec
add defocusable attribute to ZScreen
2023-02-01 08:46:32 -08:00
Myk Taylor
e442e23589
allow tile in Label tokens to be either pen or id
2023-01-31 23:54:27 -08:00
Myk Taylor
ab4c766817
Revert "allow tile list icons to be rendered properly"
...
This reverts commit 508777897b
.
the fix was incorrect. the icon should be set to the pen when it is
not a string, the icon_pen is only for when it is a string
2023-01-30 08:48:45 -08:00
Myk
376526d512
Merge branch 'develop' into myk_no_stuck_df_viewscreens
2023-01-29 16:55:52 -08:00
Myk
0f07ac5a30
Merge pull request #2748 from myk002/myk_initial_pause
...
make initial pause configurable for DFHack windows
2023-01-29 16:54:50 -08:00
Myk Taylor
8d4990b8fd
don't autorefresh the enableable tools list
...
it just takes too long (>1s) to refresh every time.
manual refresh with script_manager.reload() is still available for devs
who need it
2023-01-29 00:55:49 -08:00
Myk Taylor
4c455224f9
make initial pause configurable
2023-01-29 00:41:02 -08:00
Myk Taylor
211d18717c
test against type instead of string
2023-01-28 23:34:56 -08:00
Myk
2003efc21f
Merge branch 'develop' into myk_no_stuck_df_viewscreens
2023-01-28 12:03:50 -08:00
Myk Taylor
114bc2a576
also lock down the world map
2023-01-28 08:57:24 -08:00
Myk Taylor
f12ca33c0b
ensure DF screens don't get "stuck" when DFHack tool windows are on top
2023-01-28 08:05:37 -08:00
Myk Taylor
18a2827385
only mark the border corner as resizable if the window is resizable
2023-01-27 14:20:21 -08:00
Myk Taylor
c6f4a7ee42
inhibit _MOUSE_L globally once _MOUSE_L_DOWN is handled
...
so the _MOUSE_L doesn't bleed through to the underlying viewscreen
2023-01-27 13:36:01 -08:00
Myk Taylor
be59083202
reduce spacing for CycleHotkeyLabel from 2 to 1
2023-01-25 22:59:29 -08:00
Myk Taylor
c5f2588522
fix issues with clicks "falling through" scrollbars
2023-01-24 21:28:25 -08:00
Myk
83c89cfaa9
Merge pull request #2705 from myk002/myk_zscreen_redux
...
Implement new ZScreen semantics
2023-01-24 11:14:43 -08:00
Myk Taylor
0e03ac8e5b
don't use tabs in enable output
...
so they display nicely in gui/launcher
2023-01-23 23:50:08 -08:00
Myk Taylor
f39eb42889
remove references to pinnable
2023-01-23 19:34:48 -08:00
Myk Taylor
1c2f8eccbf
paint pause symbol for force-pause windows
2023-01-23 19:02:26 -08:00
Myk Taylor
0905943ecf
don't unfocus if mouse is not being passed through
2023-01-23 18:05:03 -08:00
Myk Taylor
4377065081
move pause restore to dismiss
...
and fix the condition
2023-01-23 17:46:03 -08:00
Myk Taylor
8b98ba5042
allow windows to be defocused instead of pinned
2023-01-23 17:40:16 -08:00
Myk Taylor
5ad6ce16e8
don't change definitions of deprecated frame styles
2023-01-23 16:00:10 -08:00
Myk
d0905a5e16
Merge pull request #2703 from myk002/myk_borders
...
Add new borders for various use cases
2023-01-23 11:20:28 -08:00
Myk Taylor
7329f6dee2
use new frame names
2023-01-23 04:16:38 -08:00
Myk Taylor
fcb156ed43
add compatibility frames
2023-01-23 04:03:31 -08:00
Myk Taylor
9aaa55cd7f
add textures and frames for various use cases
2023-01-23 03:58:51 -08:00
Myk Taylor
d34238918e
move helpdb from autorefresh to explicit refresh
...
this greatly speeds up the launch time of `gui/launcher`
2023-01-23 02:30:51 -08:00
Myk Taylor
a6b3de1afb
support scrolling to the beginning or end in Label
2023-01-23 02:16:07 -08:00
Myk Taylor
f862e4a6b7
comment out SEC_SELECT in dialogs
2023-01-22 03:09:07 -08:00
Myk Taylor
a1a4125fd9
properly react to lack of a mouse cursor
2023-01-20 09:31:44 -08:00
Myk Taylor
eae2cec22f
use keyboard cursor
...
and adapt to a "bad" cursor not being equal to -30000 anymore
2023-01-20 09:31:44 -08:00
Myk
95d7db2bb4
Merge pull request #2622 from myk002/myk_datasave
...
adjust to new directory layouts
2023-01-16 11:05:33 -08:00
Myk Taylor
762cd46d14
look for init.d directories in the root instead of raw/
2023-01-15 23:28:01 -08:00
Myk Taylor
50cc6d965d
update to new save directory structure
2023-01-15 23:13:58 -08:00
Myk Taylor
fb5675ef1b
keep windows on the screen when the DF window is resized
2023-01-15 20:41:48 -08:00
Myk Taylor
20f865eba0
don't reset scroll pos when window is resized or moved
2023-01-15 15:59:09 -08:00
Myk Taylor
d14a3b2c83
ensure the untested warning doesn't bork on bad scripts
2023-01-15 00:49:48 -08:00
Myk
977946e5bc
Merge pull request #2603 from myk002/myk_resizingpanel
...
give more control over the resizing dimensions of ResizingPanels
2023-01-14 01:10:26 -08:00
Myk
fc6a8fb00b
Merge pull request #2601 from myk002/myk_dwarfmode
...
pull the useful bits out of guidm.MenuOverlay and make them available
2023-01-14 01:09:57 -08:00
Myk
2a84bb61db
Merge pull request #2599 from myk002/myk_hotspot_hotfoot
...
update behavior of hotspot menu
2023-01-14 01:09:35 -08:00
Myk
3b40621324
Merge pull request #2595 from myk002/myk_textures
...
add some more icon textures we can use
2023-01-14 01:09:23 -08:00
Myk Taylor
f19ae16c9d
give more control over the resizing dimensions of ResizingPanels
2023-01-14 01:00:38 -08:00
Myk Taylor
e450af74aa
pull the useful bits out of MenuOverlay
2023-01-13 17:05:23 -08:00
Myk Taylor
4f88d27e08
cancel EditField editing on r-click
2023-01-13 17:05:08 -08:00
Myk Taylor
21d160c478
terminology change: locked -> pinned
2023-01-13 16:07:27 -08:00
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