001/*
002 * #%L
003 * GwtMaterial
004 * %%
005 * Copyright (C) 2015 - 2017 GwtMaterialDesign
006 * %%
007 * Licensed under the Apache License, Version 2.0 (the "License");
008 * you may not use this file except in compliance with the License.
009 * You may obtain a copy of the License at
010 * 
011 *      http://www.apache.org/licenses/LICENSE-2.0
012 * 
013 * Unless required by applicable law or agreed to in writing, software
014 * distributed under the License is distributed on an "AS IS" BASIS,
015 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
016 * See the License for the specific language governing permissions and
017 * limitations under the License.
018 * #L%
019 */
020package gwt.material.design.client.base;
021
022import gwt.material.design.client.base.mixin.TooltipMixin;
023import gwt.material.design.client.constants.Position;
024import gwt.material.design.client.ui.MaterialTooltip;
025
026/**
027 * Interface that determines the class has a {@link MaterialTooltip} attached to
028 * it.
029 *
030 * @author gilberto-torrezan
031 * @see TooltipMixin
032 * @see MaterialWidget
033 */
034public interface HasTooltip {
035
036    /**
037     * @return the current tooltip text to be shown
038     */
039    String getTooltip();
040
041    /**
042     * Sets the tooltip text to be shown for the component.
043     */
044    void setTooltip(String tooltip);
045
046    /**
047     * @return the position where the tooltip text should appear, relative to
048     * the component
049     */
050    Position getTooltipPosition();
051
052    /**
053     * Sets the {@link Position} where the tooltip text should appear, relative
054     * to the component.
055     */
056    void setTooltipPosition(Position position);
057
058    /**
059     * @return the delay in ms used to show the tooltip
060     */
061    int getTooltipDelayMs();
062
063    /**
064     * Sets the time in ms to show the tooltip text for the component
065     */
066    void setTooltipDelayMs(int delayMs);
067
068    void setTooltipHTML(String html);
069
070    String getTooltipHTML();
071
072}