001package jmri.jmrix.dccpp.swing.messages;
002
003import java.awt.Color;
004import java.awt.Dimension;
005
006import javax.annotation.CheckForNull;
007
008import jmri.jmrix.dccpp.DCCppSystemConnectionMemo;
009
010/** Settings for a DCC-EX Messages display, shared by the window and the panel icon. */
011public interface MessagesConfiguration {
012
013    void setMemo(DCCppSystemConnectionMemo memo);
014
015    DCCppSystemConnectionMemo getMemo();
016
017    boolean isMemoEditable();
018
019    void setExpirySeconds(int seconds);
020
021    int getExpirySeconds();
022
023    void setMaxLines(int lines);
024
025    int getMaxLines();
026
027    void setAutoOpen(boolean autoOpen);
028
029    boolean isAutoOpen();
030
031    void setPlaySound(boolean playSound);
032
033    boolean isPlaySound();
034
035    void setSoundFile(String path);
036
037    String getSoundFile();
038
039    void setMessageForeground(Color color);
040
041    Color getMessageForeground();
042
043    void setMessageBackground(Color color);
044
045    Color getMessageBackground();
046
047    /** Fixed size as columns (width) and lines (height), or null to size to fit. */
048    void setMessagesSize(@CheckForNull Dimension size);
049
050    @CheckForNull
051    Dimension getMessagesSize();
052
053}