001/*
002 * This library is part of OpenCms -
003 * the Open Source Content Management System
004 *
005 * Copyright (c) Alkacon Software GmbH & Co. KG (http://www.alkacon.com)
006 *
007 * This library is free software; you can redistribute it and/or
008 * modify it under the terms of the GNU Lesser General Public
009 * License as published by the Free Software Foundation; either
010 * version 2.1 of the License, or (at your option) any later version.
011 *
012 * This library is distributed in the hope that it will be useful,
013 * but WITHOUT ANY WARRANTY; without even the implied warranty of
014 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
015 * Lesser General Public License for more details.
016 *
017 * For further information about Alkacon Software, please see the
018 * company website: http://www.alkacon.com
019 *
020 * For further information about OpenCms, please see the
021 * project website: http://www.opencms.org
022 *
023 * You should have received a copy of the GNU Lesser General Public
024 * License along with this library; if not, write to the Free Software
025 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
026 */
027
028package org.opencms.gwt.client.ui;
029
030import com.google.gwt.dom.client.Element;
031
032/**
033 * Interface for all widgets capable of auto hide.<p>
034 *
035 * @since 8.0.0
036 */
037public interface I_CmsAutoHider {
038
039    /**
040     * Mouse events that occur within an autoHide partner will not hide a panel set to autoHide.<p>
041     *
042     * @param partner the auto hide partner to add
043     *
044     * @see com.google.gwt.user.client.ui.PopupPanel#addAutoHidePartner(com.google.gwt.dom.client.Element)
045     */
046    void addAutoHidePartner(Element partner);
047
048    /**
049     * Hides the widget.<p>
050     */
051    void hide();
052
053    /**
054     * Returns if the auto hide feature is enabled.<p>
055     *
056     * @return true if auto hide is enabled
057     *
058     * @see com.google.gwt.user.client.ui.PopupPanel#isAutoHideEnabled()
059     */
060    boolean isAutoHideEnabled();
061
062    /**
063     * Returns if the auto hide on history event feature is enabled.<p>
064     *
065     * @return true if auto hide is enabled
066     *
067     * @see com.google.gwt.user.client.ui.PopupPanel#isAutoHideOnHistoryEventsEnabled()
068     */
069    boolean isAutoHideOnHistoryEventsEnabled();
070
071    /**
072     * Removes an auto-hide partner.<p>
073     *
074     * @param partner the auto-hide partner to remove
075     *
076     * @see com.google.gwt.user.client.ui.PopupPanel#removeAutoHidePartner(Element)
077     */
078    void removeAutoHidePartner(Element partner);
079
080    /**
081     * Enable or disable the autoHide feature. When enabled, the popup will be automatically hidden when the user clicks outside of it.<p>
082     *
083     * @param autoHide enable true to enable, false to disable
084     *
085     * @see com.google.gwt.user.client.ui.PopupPanel#setAutoHideEnabled(boolean)
086     */
087    void setAutoHideEnabled(boolean autoHide);
088
089    /**
090     * Enable or disable autoHide on history change events. When enabled, the popup will be automatically hidden when the history token changes, such as when the user presses the browser's back button. Disabled by default.<p>
091     *
092     * @param enabled enable true to enable, false to disable
093     *
094     * @see com.google.gwt.user.client.ui.PopupPanel#setAutoHideOnHistoryEventsEnabled(boolean)
095     */
096    void setAutoHideOnHistoryEventsEnabled(boolean enabled);
097}