Chairbender Chat (#3794)
* #272 restructure and restyle chat line edit section * #272 no arrow, actually change id on channel changer * #272 nice round chat channel picker * #272 add chat channel selection logic, and auto-select when a prefix is entered * #272 consistent width of chat channel btn * #272 only show admin channel filter if asay perms * #272 add tutorial info on chat prefixes * #272 added chat filter button * #272 added chat filter button * #272 WIP on filter popup * #272 fix filter popup pressed / unpressed logic * #272 fix filter popup positioning and layout * #272 WIP channel filter logic * #272 WIP channel filter logic * #272 WIP refactoring how chatbox / manager manages available filters and channels to send on * #272 WIP implementing filtering UI / logic and refactoring how chat UI is managed * #272 fix various bugs with new chat filter / selector logic * #272 remove outdated todos * #272 WIP working chat window resize * #272 bounded chatbox resizing * #272 alertUI moves with resized chat * #272 WIP making alertUI not be too large when changing size / UIScale * #272 WIP fixing window / uiscale adjustment * #272 WIP hacky approach for resizing, will try another approach * #272 implement hacky approach for bounded chat resize * #272 no resizing of lobby chat * #272 WIP adding unread marker to chat filters * #272 basic working unread chat message indicators * #272 WIP adding horizontal channel selector items * #272 horizontal channel selector popup * #272 workaround for chat selector staying highlighted when right clicking it while toggled * #272 workaround for chat selector staying highlighted when right clicking it while toggled * #272 wip trying to add tests for chatbox * #272 remove test, not really possible with current system * #272 merge latest * #272 merge latest * #272 fix csproj changes * It works if you disable the lobby * Fixes lobby chat * Adds more channel focusses * Channel cycler * Address review * Address nitpicks * Address more of the review * Fix chat post-viewport * Finalize review stuff Co-authored-by: chairbender <kwhipke1@gmail.com> Co-authored-by: ike709 <sparebytes@protonmail.com>
@@ -1,5 +1,5 @@
|
||||
# Chat window radio wrap (prefix and postfix)
|
||||
chat-radio-message-wrap = \\[{$channel}\\] {$name} says, "{"{"}0{"}"}"
|
||||
chat-radio-message-wrap = {$channel} {$name} says, "{"{"}0{"}"}"
|
||||
|
||||
examine-radio-frequency = It is set to broadcast over the {$frequency} frequency.
|
||||
|
||||
|
||||
@@ -3,3 +3,9 @@
|
||||
## Combat mode
|
||||
hud-combat-enabled = Combat mode enabled!
|
||||
hud-combat-disabled = Combat mode disabled.
|
||||
|
||||
## Chat box
|
||||
hud-chatbox-info = Say something! T to talk, Tab to cycle channels.
|
||||
hud-chatbox-admin = Admin
|
||||
hud-chatbox-ooc = OOC
|
||||
hud-chatbox-console = Console
|
||||
|
||||
@@ -78,9 +78,13 @@ ui-options-function-move-pulled-object = Move pulled object
|
||||
ui-options-function-release-pulled-object = Release pulled object
|
||||
ui-options-function-point = Point at location
|
||||
|
||||
ui-options-function-focus-chat-window = Focus chat
|
||||
ui-options-function-focus-chat-input-window = Focus chat
|
||||
ui-options-function-focus-local-chat-window = Focus chat (IC)
|
||||
ui-options-function-focus-radio-window = Focus chat (Radio)
|
||||
ui-options-function-focus-ooc-window = Focus chat (OOC)
|
||||
ui-options-function-focus-admin-chat-window = Focus chat (admin)
|
||||
ui-options-function-focus-admin-chat-window = Focus chat (Admin)
|
||||
ui-options-function-cycle-chat-channel-forward = Cycle channel (Forward)
|
||||
ui-options-function-cycle-chat-channel-backward = Cycle channel (Backward)
|
||||
ui-options-function-open-character-menu = Open character menu
|
||||
ui-options-function-open-context-menu = Open context menu
|
||||
ui-options-function-open-crafting-menu = Open crafting menu
|
||||
|
||||
BIN
Resources/Textures/Interface/Nano/chat_sub_background.png
Normal file
|
After Width: | Height: | Size: 147 B |
71
Resources/Textures/Interface/Nano/filter.svg
Normal file
@@ -0,0 +1,71 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="22.252764"
|
||||
height="18.237368"
|
||||
viewBox="0 0 22.252764 18.237368"
|
||||
fill="none"
|
||||
version="1.1"
|
||||
id="svg8"
|
||||
sodipodi:docname="filter.svg"
|
||||
inkscape:export-filename="C:\ss14\space-station-14\Resources\Textures\Interface\Nano\filter.svg.96dpi.png"
|
||||
inkscape:export-xdpi="96"
|
||||
inkscape:export-ydpi="96"
|
||||
inkscape:version="1.0.1 (3bc2e813f5, 2020-09-07)">
|
||||
<metadata
|
||||
id="metadata14">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<defs
|
||||
id="defs12" />
|
||||
<sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="2560"
|
||||
inkscape:window-height="1377"
|
||||
id="namedview10"
|
||||
showgrid="false"
|
||||
inkscape:pagecheckerboard="true"
|
||||
inkscape:zoom="11.879394"
|
||||
inkscape:cx="13.573766"
|
||||
inkscape:cy="12.823837"
|
||||
inkscape:window-x="1912"
|
||||
inkscape:window-y="-8"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg8"
|
||||
fit-margin-top="0"
|
||||
fit-margin-left="0"
|
||||
fit-margin-right="0"
|
||||
fit-margin-bottom="0" />
|
||||
<path
|
||||
d="M 1.0666567,0.5 H 21.184687 l -8.5628,10.267 -0.1508,0.1809 v 0.2355 l 0.0011,6.1228 -2.7097003,-1.7953 v -4.3276 -0.2351 l -0.1504,-0.1807 z"
|
||||
stroke="#ffffff"
|
||||
stroke-width="1.3"
|
||||
id="path4" />
|
||||
<path
|
||||
d="M 4.4535967,4.1833 H 17.786887"
|
||||
stroke="#ffffff"
|
||||
stroke-width="1.3"
|
||||
stroke-linecap="square"
|
||||
id="path6" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.2 KiB |
BIN
Resources/Textures/Interface/Nano/filter.svg.96dpi.png
Normal file
|
After Width: | Height: | Size: 404 B |
64
Resources/Textures/Interface/Nano/rounded_button.svg
Normal file
@@ -0,0 +1,64 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="32"
|
||||
height="32"
|
||||
viewBox="0 0 32 32"
|
||||
fill="none"
|
||||
version="1.1"
|
||||
id="svg4"
|
||||
sodipodi:docname="chat_filter_button.svg"
|
||||
inkscape:version="1.0.1 (3bc2e813f5, 2020-09-07)">
|
||||
<metadata
|
||||
id="metadata10">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<defs
|
||||
id="defs8" />
|
||||
<sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1291"
|
||||
inkscape:window-height="991"
|
||||
id="namedview6"
|
||||
showgrid="false"
|
||||
fit-margin-top="0"
|
||||
fit-margin-left="0"
|
||||
fit-margin-right="0"
|
||||
fit-margin-bottom="0"
|
||||
inkscape:zoom="11.136932"
|
||||
inkscape:cx="15.825633"
|
||||
inkscape:cy="16.930202"
|
||||
inkscape:window-x="2766"
|
||||
inkscape:window-y="0"
|
||||
inkscape:window-maximized="0"
|
||||
inkscape:current-layer="svg4" />
|
||||
<rect
|
||||
x="0"
|
||||
y="0"
|
||||
width="32"
|
||||
height="32"
|
||||
rx="5"
|
||||
fill="#ffffff"
|
||||
id="rect2" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.7 KiB |
BIN
Resources/Textures/Interface/Nano/rounded_button.svg.96dpi.png
Normal file
|
After Width: | Height: | Size: 276 B |
@@ -0,0 +1,70 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="32"
|
||||
height="32"
|
||||
viewBox="0 0 32 32"
|
||||
fill="none"
|
||||
version="1.1"
|
||||
id="svg4"
|
||||
sodipodi:docname="rounded_button_bordered.svg"
|
||||
inkscape:version="1.0.1 (3bc2e813f5, 2020-09-07)"
|
||||
inkscape:export-filename="C:\ss14\space-station-14\Resources\Textures\Interface\Nano\rounded_button_bordered.svg.96dpi.png"
|
||||
inkscape:export-xdpi="96"
|
||||
inkscape:export-ydpi="96">
|
||||
<metadata
|
||||
id="metadata10">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title />
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<defs
|
||||
id="defs8" />
|
||||
<sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="2560"
|
||||
inkscape:window-height="1377"
|
||||
id="namedview6"
|
||||
showgrid="false"
|
||||
fit-margin-top="0"
|
||||
fit-margin-left="0"
|
||||
fit-margin-right="0"
|
||||
fit-margin-bottom="0"
|
||||
inkscape:zoom="11.136932"
|
||||
inkscape:cx="15.825633"
|
||||
inkscape:cy="16.930202"
|
||||
inkscape:window-x="1912"
|
||||
inkscape:window-y="-8"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg4"
|
||||
inkscape:document-rotation="0"
|
||||
inkscape:pagecheckerboard="true" />
|
||||
<rect
|
||||
x="0"
|
||||
y="0"
|
||||
width="32"
|
||||
height="32"
|
||||
rx="5"
|
||||
fill="#ffffff"
|
||||
id="rect2"
|
||||
style="stroke:#cfcfcf;stroke-opacity:1;fill:#ffffff;fill-opacity:1" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.0 KiB |
|
After Width: | Height: | Size: 370 B |
@@ -51,15 +51,28 @@ binds:
|
||||
- function: ShowEscapeMenu
|
||||
type: State
|
||||
key: Escape
|
||||
- function: FocusChatWindow
|
||||
- function: CycleChatChannelForward
|
||||
type: State
|
||||
key: Tab
|
||||
- function: CycleChatChannelBackward
|
||||
type: State
|
||||
key: Tab
|
||||
mod1: Control
|
||||
- function: FocusChatInputWindow
|
||||
type: State
|
||||
key: T
|
||||
- function: FocusOOCWindow
|
||||
- function: FocusLocalChatWindow
|
||||
type: State
|
||||
key: LBracket
|
||||
- function: FocusAdminChatWindow
|
||||
- function: FocusRadioWindow
|
||||
type: State
|
||||
key: SemiColon
|
||||
- function: FocusOOCWindow
|
||||
type: State
|
||||
key: RBracket
|
||||
- function: FocusAdminChatWindow
|
||||
type: State
|
||||
key: BackSlash
|
||||
- function: EditorLinePlace
|
||||
type: State
|
||||
key: MouseLeft
|
||||
|
||||