7 Commits

Author SHA1 Message Date
Kelsi
c08d2f0493 feat: GM screen argument forms + more commands
Parse each command's syntax into labeled form fields instead of an
editable raw string: #x -> numeric input, $x -> text input, a/b ->
dropdown, [word] -> optional flag checkbox. Shows a live 'Will send'
preview, defaults player/name fields to the current target when blank,
and keeps an 'Edit manually' escape hatch. Add 12 commonly-used commands
(reset level/stats/spells/talents/achievements/all, repairitems,
additemset, modify arenapoints/drunk/faction/xp/phase) and de-duplicate
the scattered reset entries.
2026-07-24 03:09:46 -07:00
Kelsi
b058e8edd9 feat: resizable persistent chat window and auto-widening target frame
Chat window size is now captured while unlocked and persisted (chat_window_w/h),
so a resized window keeps its size after locking or restart; a size constraint
keeps it from collapsing. Target frame grows to fit long names, guild tags, and
creature subtitles instead of clipping at a fixed 250px.
2026-07-21 18:39:50 -07:00
Kelsi
200fa2d51b feat(ui): overhaul chat window for discoverability and quick switching
Tabs get tooltips, right-click mark-as-read, Ctrl+wheel cycling, and now sync
the input to their destination (Whispers/Guild/Trade). Adds a history search
filter, an inline quick-settings menu, a colored availability-aware chat type
picker, Tab-cycling of chat types on an empty input, contextual input hints,
and numbered channel picker; message context menus show time and channel.
2026-07-14 01:03:32 -07:00
Kelsi
073875007a feat(chat): refine chat window UI
Update chat view styling, idle message dimming, row tinting, resize behavior, copy support, compact input controls, and saved chat options.

Build passes.
2026-07-10 13:03:10 -07:00
Kelsi
0073be897f chore: remove 3 dead header files
i_anim_renderer.hpp (unused interface), chat_fwd.hpp (unused forward
declarations), ui_constants.hpp (unused colour constants) — none are
included or referenced anywhere in the codebase.
2026-07-09 22:43:33 -07:00
Pavel Okhlopkov
ada019e0d4 refactor(chat): extract ItemTooltipRenderer, slim render(), consolidate utils
- Extract renderItemTooltip() (510 LOC) from ChatMarkupRenderer into
  dedicated ItemTooltipRenderer class; chat_markup_renderer.cpp 766→192 LOC
- Extract formatChatMessage(), detectChannelPrefix(), inputTextCallback()
  from render(); render() 711→376 LOC
- Consolidate replaceGenderPlaceholders() from 3 copies into
  chat_utils::replaceGenderPlaceholders(); remove 118 LOC duplicate from
  quest_log_screen.cpp, update 8 call sites in window_manager.cpp
- Delete chat_panel_commands.cpp (359 LOC) — absorb sendChatMessage,
  executeMacroText, PortBot helpers into chat_panel.cpp; move
  evaluateMacroConditionals to macro_eval_convenience.cpp
- Delete chat_panel_utils.cpp (229 LOC) — absorb small utilities into
  chat_panel.cpp
- Replace 3 forward declarations of evaluateMacroConditionals with
  #include "ui/chat/macro_evaluator.hpp"

Signed-off-by: Pavel Okhlopkov <pavel.okhlopkov@flant.com>
2026-04-12 15:46:03 +03:00
Pavel Okhlopkov
42f1bb98ea refactor(chat): decompose into modular architecture, add GM commands, fix protocol
- Extract ChatPanel monolith into 15+ focused modules under ui/chat/
  (ChatInput, ChatTabManager, ChatTabCompleter, ChatMarkupParser,
  ChatMarkupRenderer, ChatCommandRegistry, ChatBubbleManager,
  ChatSettings, MacroEvaluator, GameStateAdapter, InputModifierAdapter)
- Split 2700-line chat_panel_commands.cpp into 11 command modules
- Add GM command handling: 190-command data table, dot-prefix interception,
  tab-completion, /gmhelp with category filter
- Fix ChatType enum to match WoW wire protocol (SAY=0x01 not 0x00);
  values 0x00-0x1B shared across Vanilla/TBC/WotLK
- Fix BG_SYSTEM_* values from 82-84 (UB in bitmask shifts) to 0x24-0x26
- Fix infinite Enter key loop after teleport (disable TOGGLE_CHAT repeat,
  add 2-frame input cooldown)
- Add tests: chat_markup_parser, chat_tab_completer, gm_commands,
  macro_evaluator

Signed-off-by: Pavel Okhlopkov <pavel.okhlopkov@flant.com>
2026-04-12 14:59:56 +03:00