00001 /* 00002 * This file is part of the "Archon" framework. 00003 * (http://files3d.sourceforge.net) 00004 * 00005 * Copyright © 2006 by Kristian Spangsege and Brian Kristiansen. 00006 * 00007 * Permission to use, copy, modify, and distribute this software and 00008 * its documentation under the terms of the GNU General Public License is 00009 * hereby granted. No representations are made about the suitability of 00010 * this software for any purpose. It is provided "as is" without express 00011 * or implied warranty. See the GNU General Public License 00012 * (http://www.gnu.org/copyleft/gpl.html) for more details. 00013 * 00014 * The characters in this file are ISO8859-1 encoded. 00015 * 00016 * The documentation in this file is in "Doxygen" style 00017 * (http://www.doxygen.org). 00018 */ 00019 00020 #ifndef ARCHON_DISPLAY_DRAWABLE_H 00021 #define ARCHON_DISPLAY_DRAWABLE_H 00022 00023 #include <archon/util/ref.H> 00024 #include <archon/display/visual.H> 00025 00026 namespace Archon 00027 { 00028 namespace Display 00029 { 00030 using namespace Utilities; 00031 00032 // Fallback declarations. A fallback declaration for class Foo is 00033 // needed when the header that defines Foo includes this 00034 // header. In this case this header will not include "foo.H" due 00035 // to include guards, and Foo would be unknown. 00036 struct Visual; 00037 00038 00042 struct Drawable: virtual RefObjectBase 00043 { 00049 virtual Ref<Visual> getVisual() = 0; 00050 00051 virtual int getWidth() = 0; 00052 virtual int getHeight() = 0; 00053 }; 00054 } 00055 } 00056 00057 #endif // ARCHON_DISPLAY_DRAWABLE_H