Age | Commit message (Collapse) | Author | Files | Lines |
|
This enables customized outlines for each text color as well as adding
outlines for specific palettes, as done by the Jewelry theme.
Merged PARTY_CHAT_TAB and PARTY_SOCIAL_TAB into just PARTY_TAB since we
should probably be using the same color there anyway.
Split off WHISPER_TAB as separate color from WHISPER.
|
|
Each Skin can point to a different palette, which can be used to tweak text
colors where necessary. For now there is no generic solution for this, instead
a number of locations have been adjusted to take the palette into account:
* ChatWindow sets its palette on the BrowserBox used in its tabs.
* Popup sets its palette on child widgets when they are added (covering
BrowserBox, Label and TextBox).
* ItemPopup now uses its palette when looking up colors.
The BrowserBox now retrieves its numbered text colors from the theme. Also
added OLDCHAT, AWAYCHAT and GLOBAL theme colors, with ##g, ##o and ##a to
choose these colors respectively.
Fixed ImageRect move constructor.
TextPreview class was cleaned up from unused functionality.
Being name colors are no longer different between the name shown on the being
and the name shown in the SpeechDialog.
|
|
Now when NPCs text includes "###MoveUp;", it will get replaced by "Up",
or whatever key is currently bound to that action.
For compatibility reasons the key name can optionally have a "key"
prefix, for example "###keyMoveUp;".
Closes #73
|
|
* Wrapped remaining PhysFS API calls and set PHYSFS_DEPRECATED to
suppress deprecation warnings for PHYSFS_getUserDir, since no
alternative is available for now.
* Removed support for decompressing .gz files, since it has been unused
for years and doesn't seem useful when updates are anyway served in an
archive.
* Use SDL_LoadFile and SDL_LoadFile_RW convenience functions (raises
minimum SDL version to 2.0.10).
* Removed ResourceManager::copyFile, since it was unused and will likely
stay unused.
* Removed ResourceManager::loadTextFile. Instead, split up the string in
BrowserBox::addRows without making additional copies.
|
|
Thanks to https://github.com/cgmb/guardonce and a follow-up replace to
remove duplicated newlines at end of file:
find src -type f -name '*.h' -exec \
sed --in-place -e :a -e '/^\n*$/{$d;N;};/\n$/ba' {} \;
Source: https://unix.stackexchange.com/questions/81685/how-to-remove-multiple-newlines-at-eof
Fixes compile on macOS, which appears to have been due to the EVENT_H
include guard.
|
|
The Timer is efficient because it does not depend on incrementing a
counter to keep track of time, nor does it call SDL_GetTicks every time
its state is checked (this happens once per frame instead).
Along with global functions Time::absoluteTimeMs() and
Time::deltaTimeMs(), this replaces previous globals tick_time, cur_time
and get_elapsed_time().
For now, there is still a fixed 100 times per second logic call rate,
but the new Time::deltaTimeMs() function should allow getting rid of
this.
|
|
* Apply indentation after wrapping only in NPC dialogs and chat window,
since we don't want this in the updater window / news.
* Added some margin around the text in the updater window and NPC
dialogs, using gcn::Widget::setFrameSize.
* Cosmetic changes to BrowserBox implementation.
|
|
##B switches font to bold, ##b switches font to normal. Each line starts
with the normal font.
This change is roughly based on ManaPlus commit
6c4c6ca877c336e17c0378131a0a139792012a99.
|
|
* Use ConfirmDialog to confirm the opening of the external link.
* ConfirmDialog now centers on its parent window when provided.
* Reset hovered link when mouse exits the BrowserBox.
|
|
* Introduced a LayoutContext that conveniently allows for relayouting
all rows, or just a single one when it is added. BrowserBox::addRow
no longer relayouts all the rows.
* BrowserLink and LinePart are now merged into a new TextRow struct,
so they can be conveniently dropped when the row limit has been
reached.
* Removed "opaque" option, which was enabled by default but disabled
for all BrowserBox instances.
* Removed "always update" option, and instead start delaying relayouting
automatically when there are a lot of rows (> 100 currently).
* Update window now also has text wrapping enabled.
Closes #50
|
|
Doing some cleanups before working towards optimizing this code.
Removed needless additional wrapping code in BrowserBox::addRow, since
the text will be relayouted anyway.
Simplified layouting code a little. For example, there's no need to keep
track of the number of wrapped lines.
Use more optimal data structures, like an std::deque for the text rows
and a plain std::vector for the line parts. Both have less fragmentation
than an std::list.
|
|
This patch is not exhaustive.
|
|
modernize-use-auto
modernize-use-nullptr
modernize-use-override
modernize-use-using
|
|
* Changes were made to the way BrowserBox does colors that the help files
were not adapted to. For example, there is no more ##P for choosing the
previous color and applying a color changes it persistently rather than
returning to default text color after each line wrap. Rather than changing
the behavior of BrowserBox back I've just adapted the help files.
* Set a monospace font on the Help window because this was originally the
case and the text still relies on that for its layout.
* zlib and CSV support was already cherry-picked into 0.5.1 so it is removed
from the 0.6.0 changelog.
Reviewed-by: Erik Schilling
|
|
SDL_ttf provides a separate function for getting the recommended line skip, or
the spacing between two lines of text. When rendering multiple lines of text
this should be used rather than the visual height of the font.
Since the information is only available for TrueTypeFont, a dynamic_cast was
used with a fallback on gcn::Font::getHeight.
Also made some small tweaks but nothing that really affects performance.
Reviewed-by: Yohann Ferreira
|
|
|
|
I added text shadow and outline support to the browserbox,
and made it adapt the text for the chattabs depending on the
GUI opacity.
Reviewed-by: Ablu.
|
|
I have to admit I contributed a large part of these. Sorry for that.
Less empty space, more attention to the code.
Acked-by: Jared Adams
|
|
Parse chat lines in BrowserBox once after changes.
Reviewed-by: Thorbjorn
|
|
|
|
|
|
Also added the update copyright tool from the Wormux Team.
( And not forgetting credit's due. :P )
|
|
Also remove some extra new lines and fix eAthena's PartyTab define guards.
|
|
For improve chat speed this patch add some hacks to
BrowserBox class, split big words in ChatTab.
Also fix DoS in chat.
|
|
|
|
Now the BrowserBox can again display 9 build-in (non configurable)
colors, used for example in the client news and the help window.
|
|
In an attempt to make the GUI code a little more structured, basic
widgets are now put in gui/widgets. Many includes were also cleaned up.
|