package com.ts3client.ui; import javax.swing.ImageIcon; /** * The state of the local client on one server, as the tree shows it for any other * client — the states are listed in the order the official client gives them * priority, the strongest one first. */ enum SelfState { DISCONNECTED("Not connected"), DEAFENED("Speakers muted"), MIC_MUTED("Microphone muted"), MIC_LOCAL_MUTED("Microphone locally muted"), AWAY("Away"), COMMANDER_TALKING("Talking (channel commander)"), COMMANDER("Channel commander"), TALKING("Talking"), IDLE("Connected"); private final String label; SelfState(String label) { this.label = label; } String label() { return label; } /** The icon this state is drawn with, from the active icon pack. */ ImageIcon icon(int size) { switch (this) { case DISCONNECTED: return Icons.app(size); case DEAFENED: return Icons.speakerMuted(size); case MIC_MUTED: return Icons.micMuted(size); case MIC_LOCAL_MUTED: return Icons.micLocalMuted(size); case AWAY: return Icons.clientAway(size); case COMMANDER_TALKING: return Icons.clientCommanderTalking(size); case COMMANDER: return Icons.clientCommander(size); case TALKING: return Icons.clientTalking(size); default: return Icons.clientIdle(size); } } }