GUI: fixed that size settings changes do not work in-game sometimes (broken fonts in feedback panel);

This commit is contained in:
Oleg Agafonov 2024-05-07 15:16:54 +04:00
parent 907ac5c3e1
commit d3437c9b1e
3 changed files with 39 additions and 53 deletions

View file

@ -63,7 +63,8 @@ public class HelperPanel extends JPanel {
// originalId of feedback causing ability
private UUID originalId;
private String message;
private String basicMessage; // normal size
private String secondaryMessage; // smaller size
private String autoAnswerMessage; // Filtered version of message which is used for remembering answers to text
private UUID gameId;
@ -113,25 +114,7 @@ public class HelperPanel extends JPanel {
btnSpecial.setFont(GUISizeHelper.gameDialogAreaFont);
btnUndo.setFont(GUISizeHelper.gameDialogAreaFont);
// update text fonts
if (message != null) {
int pos1 = this.message.indexOf("font-size:");
if (pos1 > 0) {
int pos2 = this.message.indexOf("font-size:", pos1 + 10);
String newMessage;
if (pos2 > 0) {
// 2 sizes: big + small // TODO: 2 sizes for compatibility only? On 04.02.2018 can't find two size texts (JayDi85)
newMessage = this.message.substring(0, pos1 + 10) + GUISizeHelper.gameDialogAreaFontSizeBig + this.message.substring(pos1 + 12);
newMessage = newMessage.substring(0, pos1 + 10) + GUISizeHelper.gameDialogAreaFontSizeSmall + newMessage.substring(pos1 + 12);
} else {
// 1 size: small
newMessage = this.message.substring(0, pos1 + 10) + GUISizeHelper.gameDialogAreaFontSizeSmall + this.message.substring(pos1 + 12);
}
setBasicMessage(newMessage);
}
}
this.redrawMessages();
autoSizeButtonsAndFeedbackState();
@ -458,19 +441,24 @@ public class HelperPanel extends JPanel {
this.originalId = originalId;
}
public void setBasicMessage(String message) {
this.message = message;
this.dialogTextArea.setText(message, this.getWidth());
public void setMessages(String basicMessage, String secondaryMessage) {
this.basicMessage = basicMessage;
this.secondaryMessage = secondaryMessage;
redrawMessages();
}
private void redrawMessages() {
String panelText = this.basicMessage;
if (this.secondaryMessage != null) {
panelText += "<div style='font-size:" + GUISizeHelper.gameDialogAreaFontSizeSmall + "pt'>" + secondaryMessage + "</div>";
}
this.dialogTextArea.setText(panelText, this.getWidth());
}
public void setAutoAnswerMessage(String autoAnswerMessage) {
this.autoAnswerMessage = autoAnswerMessage;
}
public void setTextArea(String message) {
this.dialogTextArea.setText(message, this.getWidth());
}
@Override
public void requestFocus() {
this.btnRight.requestFocus();