* clock manager: wrap panel to run on swing thread
* Add splash screen to Runelite
Although RuneLite is still fast at loading, it's more user friendly
for at least something to pop up before the client.
There is also an option (-no-splash) to disable the splash screen.
This uses psikoi's design.
* splash screen/client ui: don't set up theme twice
Setting up the look and feel of RuneLite shouldn't happen twice, so
check to see if it has already been set up before setting up the look
and feel.
With previous code, grayscaleOffset was modifying all image components
(including alpha), instead of only the color components. This commit
fixes that by using a `RescaleOp` instead, which allows for distinct
modifiers per component.
In addition to creating `colorTag`, `prependColorTag`, and
`wrapWithColorTag` functions, this commit moves
`SwingUtil::toHexColor` and `SwingUtil::colorLerp` to this new class.
This commit adds the following with the main aim of improving the overall ui experience:
InfoPanel: changes the panels to act more like buttons, they highlight on hover and the cursor changes to a pointer (since they are hyperlinks).
NewsFeedPanel: changes the cursor to a pointer on hover to indicate a hyperlink
HighscorePanel: changes the buttons below the search bar to highlight on hover to help indicate a clickable element.
FarmingPanel: same as above expect for the patch buttons
GE Panel: same as above but for the offer and search button
ConfigPanel: Changes the cog color on hover to help indicate clickable element.
Fixes#3042
I had new selections colors for the ge/hiscores/config search bars
but forgot there were other text elements in the configs, so
I moved these new colors to UI defaults (SwingUtil)
Also removed some unused code that was setting styles to a combobox that
never gets displayed.
Apparently, the setOpaque method on JPanels was causing some performance
issues on the client, the original reason I had these was so that the
base panel would have a color defined, and every container or wrapper
panel on top would just be transparent.
To fix this I have set a default JPanel background color and replaced
calls to setOpaque with calls to
setBackground with the appropriate colors.
- Added new parameter to navigation buttons: priority.
- Ordered the navigation buttons by their priority and name in PluginToolbar.
- Added a maximum size to the navigation buttons to keep all their sizes
the same.
- Added new icons for the following plugins:
- Account (login/logout)
- Grand Exchange
- Feed
- Info
- Kourend Library
- Notes
- Screenshot
- Spaced out the item panels vertically and slightly horizontally.
- Added a new header with the plugin's name, as it can be hard to know
what this plugin does/is.
- Restyled the reset button, it previously was a "Reset" text button, I
switched it to an icon with a darker version that activates
when clicked.
- Added the icon images to the resource folder.
- Added new method to SwingUtil that returns a darker version of an
image
- Used the image darkening method to give the refresh button a click
feedback effect
Overall:
- Applied new colors, positions and sizes, following issue #1342.
Search:
- Applied the new IconTextField, with search, error and loading
indicator (and respective image files).
- Blocked tabs witching while results are loading.
Endpoints:
- Moved the endpoints to right below the search bar (this follows
a more logical sequence of usage).
- Changed the endpoint presentation style and size. The selected
endpoint now displays a orange underline.
- Edited the endpoint icons to better fit the visual context.
- Changed the way currently selected endpoint is stored.
Stats:
- Changed the sizing of the labels/panels.
- Changed the font to a smaller version.
Total/Combat:
- Switched the order of the combat and total indicator
- Changed the font to a smaller version.
Clues/Minigames:
- Changed the font to a smaller version.
Details Panel:
- Completely removed the details panel, instead went for a more
in-line with the game approach, tooltips!
- Rewrote the way skills and labels are matched
- Added html progress bar to the next level
General:
- Applied the design I proposed in issue #1342
- Applied custom component: MaterialTabs
- Removed default scrolling behaviour from parent PluginPanel
- Added error panels for empty searches and empty offer slots
- Added new formatter to the StackFormatter that displays integers
as rs stacks with decimals (21700 into 21.7k)
- Changed the Locale on the stack formatter and respective unit testing
to UK, this makes sure all tests are consistent with Travis (ex: i ran
the unit testing in europe, travis ran in the us, so it passed my tests,
failed his)
Offers:
- Refactored the GE offers into it's own seperate file:
GrandExchangeOffersPanel
- Redesigned the ge offers items
- Included the custom component ThinProgressBar on the bottom of each
ge item panel
- Added secondary information panel, toggled by clicking on the primary
panel
- Added a game state check that resets all ge offers on logout
Search:
- Recoloured and resized the search bar
- Added new icons to the search bar (incluing a loading wheel gif)
- Removed focus on the search bar when results are displayed
- Added custom scrolling behaviour
- Blocked input when search is in progress
To organize the project a bit, decided to add a new folder inside the
ui folder, to hold all custom components. ui/components/
Rewrote IconTextField
I wasn't happy with its functionality, so I rewrote it to
include the following:
- Left aligned centered icons
- Animated gif support (ex: loading wheels)
- Custom hover effects (color change)
- Input blocking
All changes:
- Created new folder ui/components/
- Moved JShadowLabel and JShadowLabelUI to components folder
- Moved IconTextField to components folder
- Rewrote IconTextField
- Created new components: MaterialTab & MaterialTabGroup
- Created new components: CustomScrollBarUI
- Created new components: PluginErrorPanel
- Created new components: ThinProgressBar
- Applied the new scroll bar ui to the UI defaults (UIManager)
- Created new substance theme "Obsidian"
- Created new ColorScheme file to hold all globally used colors
- Darkened the client frame using the substance color scheme file
- Changed substance's colorization factor to 1
- Tweaked the coloring on the dev plugin panel
- Set the UI default foreground color on Buttons and MenuItems to White.
- Instead of changing the frame width, just revalidate the width to match
minumum size in case the size is smaller than it
- On restoration from maximize, revalidate frame size to not end up in
having small window with opened sidebar
Closes#1795 and closes#1300
Signed-off-by: Tomas Slusny <slusnucky@gmail.com>
- Remove changing of isSelected property on navigation button in order
to open it
- Change navigation button handling to always "click" the wrapped button
no matter if button is selected or not and let the special callback
handle it
Signed-off-by: Tomas Slusny <slusnucky@gmail.com>
- Move method for creation of all buttons from NavigationButton to swing
util
- Correctly update InfoPanel when plugin is started or needs title bar
refresh
- Correctly update ClientUI title bar when custom one is visible
Signed-off-by: Tomas Slusny <slusnucky@gmail.com>
- Extract common utlity methods from ClientUI to SwingUtil utlity class.
- Make OSXUtil accept JFrame instead of ClientUI
Signed-off-by: Tomas Slusny <slusnucky@gmail.com>