1 /* _______ __ __ __ ______ __ __ _______ __ __ 2 * / _____/\ / /\ / /\ / /\ / ____/\ / /\ / /\ / ___ /\ / |\/ /\ 3 * / /\____\// / // / // / // /\___\// /_// / // /\_/ / // , |/ / / 4 * / / /__ / / // / // / // / / / ___ / // ___ / // /| ' / / 5 * / /_// /\ / /_// / // / // /_/_ / / // / // /\_/ / // / | / / 6 * /______/ //______/ //_/ //_____/\ /_/ //_/ //_/ //_/ //_/ /|_/ / 7 * \______\/ \______\/ \_\/ \_____\/ \_\/ \_\/ \_\/ \_\/ \_\/ \_\/ 8 * 9 * Copyright (c) 2004 - 2008 Olof Naess�n and Per Larsson 10 * 11 * 12 * Per Larsson a.k.a finalman 13 * Olof Naess�n a.k.a jansem/yakslem 14 * 15 * Visit: http://guichan.sourceforge.net 16 * 17 * License: (BSD) 18 * Redistribution and use in source and binary forms, with or without 19 * modification, are permitted provided that the following conditions 20 * are met: 21 * 1. Redistributions of source code must retain the above copyright 22 * notice, this list of conditions and the following disclaimer. 23 * 2. Redistributions in binary form must reproduce the above copyright 24 * notice, this list of conditions and the following disclaimer in 25 * the documentation and/or other materials provided with the 26 * distribution. 27 * 3. Neither the name of Guichan nor the names of its contributors may 28 * be used to endorse or promote products derived from this software 29 * without specific prior written permission. 30 * 31 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 32 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 33 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 34 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 35 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 36 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED 37 * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 38 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 39 * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 40 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 41 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 42 */ 43 44 #ifndef GCN_WIDGETLISTENER_HPP 45 #define GCN_WIDGETLISTENER_HPP 46 47 #include <string> 48 49 #include "guichan/event.hpp" 50 #include "guichan/platform.hpp" 51 52 namespace gcn 53 { 54 /** 55 * Interface for listening for events from widgets. When a widget's size, 56 * location or visibility changes, the relevant method of the listener is 57 * invoked. 58 * 59 * @see Widget::addWidgetListener, Widget::removeWidgetListener 60 * @author Olof Naess�n 61 * @since 0.8.0 62 */ 63 class GCN_CORE_DECLSPEC WidgetListener 64 { 65 public: 66 67 /** 68 * Destructor. 69 */ ~WidgetListener()70 virtual ~WidgetListener() { } 71 72 /** 73 * Invoked when a widget changes its size. 74 * 75 * @param event Describes the event. 76 * @since 0.8.0 77 */ widgetResized(const Event & event)78 virtual void widgetResized(const Event& event) { } 79 80 /** 81 * Invoked when a widget is moved. 82 * 83 * @param event Describes the event. 84 * @since 0.8.0 85 */ widgetMoved(const Event & event)86 virtual void widgetMoved(const Event& event) { } 87 88 /** 89 * Invoked when a widget is hidden, i.e it's set to be 90 * not visible. 91 * 92 * @param event Describes the event. 93 * @since 0.8.0 94 */ widgetHidden(const Event & event)95 virtual void widgetHidden(const Event& event) { } 96 97 /** 98 * Invoked when a widget is shown, i.e it's set to be 99 * visible. 100 * 101 * @param event Describes the event. 102 * @since 0.8.0 103 */ widgetShown(const Event & event)104 virtual void widgetShown(const Event& event) { } 105 106 protected: 107 /** 108 * Constructor. 109 * 110 * You should not be able to make an instance of WidgetListener, 111 * therefore its constructor is protected. 112 */ WidgetListener()113 WidgetListener() { } 114 115 }; 116 } 117 118 #endif // end GCN_WIDGETLISTENER_HPP 119