Commit Graph

301 Commits (c6db01a3a2b3eeab8ca3a9ede89b6d2120645526)

Author SHA1 Message Date
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