001// License: GPL. For details, see LICENSE file.
002package org.openstreetmap.josm.gui;
003
004import javax.swing.Icon;
005
006/**
007 * An interface to provide showing/hiding method for buttons,
008 * when hidden state is stored in preferences
009 */
010interface HideableButton {
011    void applyButtonHiddenPreferences();
012
013    void setButtonHidden(boolean b);
014
015    void showButton();
016
017    void hideButton();
018
019    String getActionName();
020
021    Icon getIcon();
022
023    boolean isButtonVisible();
024
025    boolean isExpert();
026
027    void setShowHideButtonListener(ShowHideButtonListener l);
028}