Overhaul theme

The only thing missing in this commit is a new background.
I am waiting for a higher-quality version of the AO logo.
This commit is contained in:
oldmud0 2018-11-25 13:24:43 -06:00
parent 5bf5a22833
commit 1852f92087
64 changed files with 276 additions and 62 deletions

View File

@ -87,13 +87,26 @@ HEADERS += lobby.h \
aocaseannouncerdialog.h
# 1. You need to get BASS and put the x86 bass DLL/headers in the project root folder
# AND the compilation output folder. If you want a static link, you'll probably
# need the .lib file too. MinGW-GCC is really finicky finding BASS, it seems.
# AND the compilation output folder. If you are compiling statically, you'll probably
# need the .lib file too. MinGW-GCC is really finicky finding BASS, it seems. However,
# even with the .lib file, you still need the DLL in the final output.
# 2. You need to compile the Discord Rich Presence SDK separately and add the lib/headers
# in the same way as BASS. Discord RPC uses CMake, which does not play nicely with
# QMake, so this step must be manual.
# QMake, so this step must be manual. If you are compiling dynamically, it's fine to
# use the prebuilt libraries.
# 3. You also need to build QtApng (https://github.com/Skycoder42/QtApng).
# Optionally, you may install it in /usr/share/qt5/plugins/imageformats, but if you do
# so, then you must patch qapng.pri, qapngd.pri, png.pri, pngd.pri, z.pri, and zd.pri
# such that they no longer point to the builds in the original project directory
# (by removing those respective entries in QMAKE_PRL_LIBS and replacing them with
# something like `-L$$[QT_INSTALL_LIBS] -lpng -lz`).
#
# Naturally, the build process becomes significantly less convoluted if you simply
# compile dynamically. If your primary distribution method is via the launcher, then
# a simple dynamic compilation is recommended.
unix:LIBS += -L$$PWD -lbass -ldiscord-rpc
win32:LIBS += -L$$PWD "$$PWD/bass.dll" -ldiscord-rpc
INCLUDEPATH += $$PWD/include
CONFIG += c++11

Binary file not shown.

After

Width:  |  Height:  |  Size: 403 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

After

Width:  |  Height:  |  Size: 742 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

After

Width:  |  Height:  |  Size: 730 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 344 B

After

Width:  |  Height:  |  Size: 285 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 291 B

After

Width:  |  Height:  |  Size: 215 B

View File

@ -1,52 +1,228 @@
; Client size. Changing it to something other than 714, 668 will stretch or
; compress courtroombackground.png accordingly.
courtroom = 0, 0, 714, 668
; IC Area. Changing 256, 192 will stretch or compress character gifs and the
; /bgs being used accordingly
viewport = 0, 0, 256, 192
chatbox = 0, 96, 256, 78
ao2_chatbox = 0, 114, 256, 78
showname = 6, 113, 80, 15
message = 3, 132, 250, 60
; IC chatbox
chatbox = 0, 174, 256, 108
; IC chatbox if the current background's folder contains stand.png,
; defensedesk.png and prosecutiondesk.png
ao2_chatbox = 0, 174, 256, 108
; Textbox for custom IC name (the "showname")
showname = 6, 1, 256, 15
; IC message, positioned within the chatbox. Changing 250 affects how
; long text goes on before going onto the next line. Changing 89 affects
; how many lines you can see before the message starts scrolling, based on
; the formula of n = 25+(n-1)*16, where n is the number of lines to be
; displayed. (ie, set it to 25 for 1 line, 41 for 2, 57 for 3, 73 for 4,
; 89 for 5, 105 for 6... Less than 25 displays nothing)
message = 3, 18, 250, 89
; Where you type to make an IC chat message
ic_chat_message = 2, 283, 250, 23
; IC chat message if the current background's folder contains stand.png,
; defensedesk.png and prosecutiondesk.png
ao2_ic_chat_message = 2, 283, 250, 23
; IC chatlog
ic_chatlog = 260, 0, 231, 319
; Master server chatlog
ms_chatlog = 490, 1, 224, 277
; OOC Chatlog
server_chatlog = 490, 1, 224, 277
mute_list = 260, 160, 231, 159
area_list = 266, 494, 224, 174
music_list = 490, 342, 224, 326
ic_chat_message = 0, 174, 256, 23
ao2_ic_chat_message = 0, 192, 256, 23
; Where you type to make an OOC chat message
; NOTE: THIS DOES NOT HAVE ANY VISUAL APPEARANCE
ooc_chat_message = 492, 281, 222, 19
; Where you enter your OOC name, and also where it shows up
ooc_chat_name = 492, 300, 85, 19
area_password = 266, 471, 224, 23
music_search = 490, 319, 226, 23
emote_left = 0, 253, 20, 20
emote_right = 236, 253, 20, 20
defense_bar = 393, 323, 84, 14
prosecution_bar = 393, 340, 84, 14
music_label = 260, 390, 41, 16
sfx_label = 260, 410, 21, 16
blip_label = 260, 430, 31, 16
hold_it = 10, 312, 76, 28
objection = 90, 312, 76, 28
take_that = 170, 312, 76, 28
; Toggle between Server and Master OOC chats
ooc_toggle = 580, 300, 133, 19
witness_testimony = 5, 345, 85, 42
cross_examination = 95, 345, 85, 42
change_character = 5, 390, 121, 23
reload_theme = 5, 415, 101, 23
call_mod = 5, 440, 71, 23
pre = 187, 345, 51, 21
flip = 187, 362, 51, 21
guard = 187, 379, 61, 21
custom_objection = 250, 325, 40, 40
realization = 295, 325, 40, 40
mute_button = 340, 325, 40, 40
defense_plus = 477, 325, 9, 9
defense_minus = 385, 325, 9, 9
prosecution_plus = 477, 342, 9, 9
prosecution_minus = 385, 342, 9, 9
text_color = 390, 360, 79, 23
music_slider = 310, 392, 160, 16
sfx_slider = 310, 412, 160, 16
blip_slider = 310, 432, 160, 16
; Where the jukebox is
music_list = 490, 342, 224, 326
; Jukebox search bar
music_search = 490, 319, 100, 23
found_song_color = 100, 255, 100
missing_song_color = 255, 100, 100
; Labels and sliders for music/sfx/blips
music_label = 286, 607, 41, 16
sfx_label = 286, 627, 21, 16
blip_label = 286, 647, 31, 16
music_slider = 326, 608, 140, 16
sfx_slider = 326, 628, 140, 16
blip_slider = 326, 648, 140, 16
; Emote buttons - [490, 98] determines how many columns and rows of buttons are
; displayed per page. 49, 49 is the ABSOLUTE MINIMUM, and displays 1 button per
; page. Having either number lower than 49 crashes the client when you try to
; pick a character. If you want X columns and Y rows, you would change it to
; 49X, 49Y (ie. 490, 147 if you want 10 columns and 3 rows)
emotes = 10, 342, 490, 147
; Page togglers for emotes
emote_left = 373, 475, 17, 17
emote_right = 392, 475, 17, 17
; Emote dropdown/emote names - Change '125' to make it longer/shorter and
; display the full emote name or truncate it based on length
emote_dropdown = 5, 470, 105, 20
; Hold it/Take That/Objection and the "BLING!" buttons
hold_it = 10, 310, 76, 28
objection = 90, 310, 76, 28
take_that = 170, 310, 76, 28
realization = 5, 515, 42, 42
; If the server supports it (AOV does not currently) - if a character has a
; custom.gif and custom.wav in their folder, this button acts as another
; Objection/Take That/Hold It for that character that uses the custom animation
; and sfx. (Think Satorah! Such Insolence!, Gotcha!)
custom_objection = 340, 565, 76, 28
; Text color dropdown menu
text_color = 115, 470, 80, 20
; Preanimation toggle
pre = 5, 490, 60, 21
; Flip button
flip = 104, 490, 51, 21
; Guard button
guard = 200, 470, 61, 21
pre_no_interrupt = 200, 490, 80, 21
; Penalty bars and judge's buttons for penalizing. Other than the bars, these
; ONLY show up on a character with /pos jud
defense_bar = 15, 566, 170, 9
prosecution_bar = 15, 582, 170, 9
defense_plus = 183, 566, 9, 9
defense_minus = 6, 566, 9, 9
prosecution_plus = 183, 582, 9, 9
prosecution_minus = 6, 582, 9, 9
; Judge's buttons for WT and CE. /pos jud
witness_testimony = 290, 470, 85, 42
cross_examination = 290, 515, 85, 42
; Buttons to change character/Reload theme/Call Mod
change_character = 5, 610, 110, 23
reload_theme = 5, 637, 90, 23
call_mod = 100, 637, 60, 23
; Mute button
mute_button = 150, 515, 42, 42
; Where the Mute list pops up when you click Mute
mute_list = 280, 469, 210, 198
; ???? - if there was an Area button, where the area list would show up?
; area_list = 270, 494, 224, 174
; ???? - where a password box appears if an area is password locked?
; area_password = 266, 471, 224, 23
; >Evidence meme
evidence_button = 625, 322, 85, 18
evidence_background = 0, 385, 490, 284
evidence_name = 112, 4, 264, 19
evidence_overlay = 24, 24, 439, 222
evidence_x = 341, 8, 20, 20
evidence_description = 78, 28, 281, 166
evidence_left = 2, 114, 20, 20
evidence_right = 465, 114, 20, 20
; Character select widgets
char_select = 0, 0, 714, 668
back_to_lobby = 5, 5, 91, 23
char_password = 297, 7, 120, 22
spectator = 317, 640, 80, 23
char_buttons = 25, 36, 663, 596
char_button_spacing = 7, 7
char_select_left = 2, 325, 20, 20
char_select_right = 691, 325, 20, 20
; -------------------------
; New in 2.6.0
; -------------------------
; The log limiter explaining label. This is simply a piece of text that
; explains what the spin box is for.
; log_limit_label = 190, 612, 50, 30
; The spinbox allows you to set the log limit ingame inbetween 1 and 10000,
; with the option to set it to 0 as well (which is considered 'infinite' by
; the log limiter).
; log_limit_spinbox = 168, 636, 70, 25
; This is an input field that allows you to change your in-character showname.
ic_chat_name = 200, 534, 78, 23
; I am sure there are some differences between the 'ao2_' versions and the
; 'ao2_'-less versions of the IC text display and input, but I do not know
; what. Still, here you go!
ao2_ic_chat_name = 200, 534, 78, 23
; An in-game tickbox that allows you to set whether your client should show
; custom shownames where possible, or always keep to character names.
; This is useful if you suspect someone is impersonating others, for example,
; and they are using this in combination with ini-swapping to 'duplicate' a
; character.
showname_enable = 200, 510, 80, 21
; A simple button that opens up the settings menu.
; Equivalent to typing /settings in the OOC chat.
settings = 120, 610, 60, 23
; The character search text input in the character selecton screen.
; The moment you enter some text, it immediately starts filtering.
char_search = 420, 7, 120, 22
; A tickbox that filters based on if a character requires password to access or not.
; Note that this is actually only partially implemented in AO.
; The interface exists for it, but no way to actually password the characters.
char_passworded = 545, 7, 100, 22
; A tickbox that filters characters based on if they are taken.
char_taken = 635, 7, 80, 22
; These buttons are similar to the CE / WT buttons, except they show a
; Not Guilty or Guilty animation instead.
not_guilty = 380, 470, 85, 42
guilty = 380, 515, 85, 42
; These are responsible for the pairing stuff.
; These work much like muting, actually.
pair_button = 104, 515, 42, 42
pair_list = 280, 490, 210, 177
pair_offset_spinbox = 280, 470, 210, 20
; This button allows switching between music and areas.
switch_area_music = 590, 319, 35, 23
; These are colours for the various statuses an area can be in.
area_free_color = 54, 198, 68
area_lfp_color = 255, 255 0
area_casing_color = 255, 166, 0
area_recess_color = 255, 190, 30
area_rp_color = 200, 52, 252
area_gaming_color = 55, 255, 255
area_locked_color = 165, 43, 43
; Color for all labels and checkboxes
label_color = 255, 255, 255

View File

@ -0,0 +1,6 @@
showname = 8
message = 10
ic_chatlog = 10
ms_chatlog = 10
server_chatlog = 9
music_list = 8

View File

@ -0,0 +1,8 @@
realization = sfx-realization.wav
witness_testimony = sfx-testimony2.wav
cross_examination = sfx-testimony.wav
evidence_present = sfx-evidenceshoop.wav
word_call = sfx-gaspen-yeah!.wav
mod_call = sfx-gallery.wav
not_guilty = sfx-notguilty.wav
guilty = sfx-guilty.wav

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.3 KiB

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.4 KiB

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 286 B

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB

After

Width:  |  Height:  |  Size: 227 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 315 B

After

Width:  |  Height:  |  Size: 203 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 KiB

After

Width:  |  Height:  |  Size: 228 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 KiB

After

Width:  |  Height:  |  Size: 230 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 KiB

After

Width:  |  Height:  |  Size: 230 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 KiB

After

Width:  |  Height:  |  Size: 229 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 KiB

After

Width:  |  Height:  |  Size: 231 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 KiB

After

Width:  |  Height:  |  Size: 230 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 KiB

After

Width:  |  Height:  |  Size: 227 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 KiB

After

Width:  |  Height:  |  Size: 227 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 291 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 931 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 577 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 637 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.8 KiB

View File

@ -1,9 +1,10 @@
lobby = 0, 0, 517, 666
publi_servers = 46, 88, 114, 30
public_servers = 46, 88, 114, 30
favorites = 164, 88, 114, 30
refresh = 56, 381, 132, 28
add_to_fav = 194, 381, 132, 28
connect = 332, 381, 132, 28
version = 170, 1, 300, 21
about = 428, 1, 88, 21
server_list = 20, 125, 286, 240
player_count = 336, 91, 173, 16

Binary file not shown.

Before

Width:  |  Height:  |  Size: 652 B

After

Width:  |  Height:  |  Size: 4.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 608 B

After

Width:  |  Height:  |  Size: 4.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 286 B

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB

After

Width:  |  Height:  |  Size: 245 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 KiB

After

Width:  |  Height:  |  Size: 208 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 KiB

After

Width:  |  Height:  |  Size: 249 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 KiB

After

Width:  |  Height:  |  Size: 252 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 KiB

After

Width:  |  Height:  |  Size: 251 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 KiB

After

Width:  |  Height:  |  Size: 245 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 KiB

After

Width:  |  Height:  |  Size: 252 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 KiB

After

Width:  |  Height:  |  Size: 251 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 KiB

After

Width:  |  Height:  |  Size: 253 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 KiB

After

Width:  |  Height:  |  Size: 247 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 579 B

View File

@ -18,25 +18,25 @@ void Courtroom::construct_char_select()
ui_back_to_lobby = new AOButton(ui_char_select_background, ao_app);
ui_char_password = new QLineEdit(ui_char_select_background);
ui_char_password->setPlaceholderText("Password");
ui_char_password->setPlaceholderText(tr("Password"));
ui_char_select_left = new AOButton(ui_char_select_background, ao_app);
ui_char_select_right = new AOButton(ui_char_select_background, ao_app);
ui_spectator = new AOButton(ui_char_select_background, ao_app);
ui_spectator->setText("Spectator");
ui_spectator->setText(tr("Spectator"));
ui_char_search = new QLineEdit(ui_char_select_background);
ui_char_search->setPlaceholderText("Search");
ui_char_search->setPlaceholderText(tr("Search"));
ui_char_search->setFocus();
set_size_and_pos(ui_char_search, "char_search");
ui_char_passworded = new QCheckBox(ui_char_select_background);
ui_char_passworded->setText("Passworded");
ui_char_passworded->setText(tr("Passworded"));
set_size_and_pos(ui_char_passworded, "char_passworded");
ui_char_taken = new QCheckBox(ui_char_select_background);
ui_char_taken->setText("Taken");
ui_char_taken->setText(tr("Taken"));
set_size_and_pos(ui_char_taken, "char_taken");
ui_char_taken->setChecked(true);

View File

@ -105,17 +105,10 @@ Courtroom::Courtroom(AOApplication *p_ao_app) : QMainWindow()
ui_server_chatlog->setReadOnly(true);
ui_server_chatlog->setOpenExternalLinks(true);
ui_mute_list = new QListWidget(this);
ui_area_list = new QListWidget(this);
ui_area_list->hide();
ui_music_list = new QListWidget(this);
ui_pair_list = new QListWidget(this);
ui_pair_offset_spinbox = new QSpinBox(this);
ui_pair_offset_spinbox->setRange(-100,100);
ui_pair_offset_spinbox->setSuffix("% offset");
ui_pair_button = new AOButton(this, ao_app);
ui_ic_chat_name = new QLineEdit(this);
ui_ic_chat_name->setFrame(false);
ui_ic_chat_name->setPlaceholderText(tr("Showname"));
@ -140,6 +133,7 @@ Courtroom::Courtroom(AOApplication *p_ao_app) : QMainWindow()
//ui_area_password->setFrame(false);
ui_music_search = new QLineEdit(this);
ui_music_search->setFrame(false);
ui_music_search->setPlaceholderText(tr("Search"));
construct_emotes();
@ -201,7 +195,7 @@ Courtroom::Courtroom(AOApplication *p_ao_app) : QMainWindow()
ui_showname_enable->setText(tr("Shownames"));
ui_pre_non_interrupt = new QCheckBox(this);
ui_pre_non_interrupt->setText(tr("No Intrpt"));
ui_pre_non_interrupt->setText(tr("No Interrupt"));
ui_pre_non_interrupt->hide();
ui_custom_objection = new AOButton(this, ao_app);
@ -241,6 +235,13 @@ Courtroom::Courtroom(AOApplication *p_ao_app) : QMainWindow()
ui_log_limit_spinbox->setRange(0, 10000);
ui_log_limit_spinbox->setValue(ao_app->get_max_log_size());
ui_mute_list = new QListWidget(this);
ui_pair_list = new QListWidget(this);
ui_pair_offset_spinbox = new QSpinBox(this);
ui_pair_offset_spinbox->setRange(-100,100);
ui_pair_offset_spinbox->setSuffix("% offset");
ui_pair_button = new AOButton(this, ao_app);
ui_evidence_button = new AOButton(this, ao_app);
construct_evidence();
@ -604,7 +605,7 @@ void Courtroom::set_widgets()
ui_switch_area_music->setText("A/M");
set_size_and_pos(ui_pre, "pre");
ui_pre->setText("Pre");
ui_pre->setText("Preanim");
set_size_and_pos(ui_pre_non_interrupt, "pre_no_interrupt");
set_size_and_pos(ui_flip, "flip");
@ -706,6 +707,17 @@ void Courtroom::set_fonts()
set_font(ui_server_chatlog, "server_chatlog");
set_font(ui_music_list, "music_list");
set_font(ui_area_list, "music_list");
// Set color of labels and checkboxes
const QString design_file = "courtroom_fonts.ini";
QColor f_color = ao_app->get_color("label_color", design_file);
QString color_string = "color: rgba(" +
QString::number(f_color.red()) + ", " +
QString::number(f_color.green()) + ", " +
QString::number(f_color.blue()) + ", 255); }";
QString style_sheet_string = "QLabel {" + color_string + "}"
"QCheckBox {" + color_string + "}";
setStyleSheet(style_sheet_string);
}
void Courtroom::set_font(QWidget *widget, QString p_identifier)

View File

@ -484,8 +484,6 @@ void AOApplication::server_packet_received(AOPacket *p_packet)
w_lobby->set_loading_text("Loading music:\n" + QString::number(loaded_music) + "/" + QString::number(music_list_size));
w_courtroom->append_music(f_contents.at(n_element));
if (musics_time)
{
w_courtroom->append_music(f_contents.at(n_element));

View File

@ -244,7 +244,7 @@ QColor AOApplication::get_color(QString p_identifier, QString p_file)
QString default_path = get_default_theme_path(p_file);
QString f_result = read_design_ini(p_identifier, design_ini_path);
QColor return_color(255, 255, 255);
QColor return_color(0, 0, 0);
if (f_result == "")
{