001/*
002 *  Copyright 2012 GWT-Bootstrap
003 *
004 *  Licensed under the Apache License, Version 2.0 (the "License");
005 *  you may not use this file except in compliance with the License.
006 *  You may obtain a copy of the License at
007 *
008 *      http://www.apache.org/licenses/LICENSE-2.0
009 *
010 *  Unless required by applicable law or agreed to in writing, software
011 *  distributed under the License is distributed on an "AS IS" BASIS,
012 *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
013 *  See the License for the specific language governing permissions and
014 *  limitations under the License.
015 */
016package com.github.gwtbootstrap.client.ui.base;
017
018import com.github.gwtbootstrap.client.ui.constants.IconSize;
019import com.github.gwtbootstrap.client.ui.constants.IconType;
020
021/**
022 * Interface for widgets that have icons.
023 * 
024 * @since 2.0.4.0
025 * 
026 * @author Dominik Mayer
027 * 
028 */
029public interface HasIcon {
030
031        /**
032         * Sets the Type of the Icon.
033         * 
034         * @param type
035         */
036        public void setIcon(IconType type);
037
038        /**
039         * Sets the size of the icon.
040         * 
041         * <p>
042         * Default is DEFAULT.
043         * 
044         * @param size
045         *            the new size.
046         */
047        public void setIconSize(IconSize size);
048        
049        /**
050         * Set custom icon style.
051         * <p>
052         * It sets css class name to {@literal <i>} tag.
053         * You can set any icons style.
054         * </p>
055         * 
056         * @param customIconStyle
057         */
058        public void setCustomIconStyle(String customIconStyle);
059}