Myk Taylor
8b378735fa
don't fire HotkeyLabel if the label is disabled
2023-02-24 17:13:45 -08:00
Kelvie Wong
3c24e67a9a
Address additional PR comments
...
on_activate is likely to happen first so we shouldn't need to check the
other.
2023-02-22 17:22:04 -08:00
Kelvie Wong
697f15224c
Address PR comments, and remove BG fill
...
BG fill eats up a lot of cycles anyway, and there's not a real tangible
benefit in all cases, as it relies on the text label being sized
appropriately (width-wise) to the container, or would otherwise require
padding.
2023-02-18 16:07:40 -08:00
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
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
Robob27
7651f6a91e
Add edit_on_change to FilteredList
2023-02-12 17:44:19 -05: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
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
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
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
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 Taylor
18a2827385
only mark the border corner as resizable if the window is resizable
2023-01-27 14:20:21 -08:00
Myk Taylor
be59083202
reduce spacing for CycleHotkeyLabel from 2 to 1
2023-01-25 22:59:29 -08:00
Myk Taylor
f39eb42889
remove references to pinnable
2023-01-23 19:34:48 -08:00
Myk Taylor
8b98ba5042
allow windows to be defocused instead of pinned
2023-01-23 17:40:16 -08:00
Myk Taylor
7329f6dee2
use new frame names
2023-01-23 04:16:38 -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
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
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
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
508777897b
allow tile list icons to be rendered properly
2023-01-12 22:30:47 -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
079d5e4178
support foreground and background writing from pens
2023-01-12 12:30:07 -08:00
Myk Taylor
fecc733192
detect clicks on part of pin that sticks up
2023-01-09 12:52:26 -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
f43358002d
Allow dialogs to close on r-click
2023-01-06 15:43:08 -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 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
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
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
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
myk002
2b87307e11
allow visible and active to be dynamic properties
2022-12-04 15:46:19 -08:00