- Your Widget Set For OpenGL
Main Page | Namespace List | Class Hierarchy | Class List | File List | Class Members | Related Pages

uinternalframe.hpp

00001 /*************************************************************************** 00002 LibUFO - UI For OpenGL 00003 copyright : (C) 2001-2005 by Johannes Schmidt 00004 email : schmidtjf at users.sourceforge.net 00005 ------------------- 00006 00007 file : include/ufo/widgets/uinternalframe.hpp 00008 begin : Fri Jun 1 2001 00009 $Id: uinternalframe.hpp,v 1.11 2005/05/21 15:19:47 schmidtjf Exp $ 00010 ***************************************************************************/ 00011 00012 /*************************************************************************** 00013 * This library is free software; you can redistribute it and/or * 00014 * modify it under the terms of the GNU Lesser General Public * 00015 * License as published by the Free Software Foundation; either * 00016 * version 2.1 of the License, or (at your option) any later version. * 00017 * * 00018 * This library is distributed in the hope that it will be useful, * 00019 * but WITHOUT ANY WARRANTY; without even the implied warranty of * 00020 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * 00021 * Lesser General Public License for more details. * 00022 * * 00023 * You should have received a copy of the GNU Lesser General Public * 00024 * License along with this library; if not, write to the Free Software * 00025 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * 00026 ***************************************************************************/ 00027 00028 #ifndef UINTERNALFRAME_HPP 00029 #define UINTERNALFRAME_HPP 00030 00031 #include "uwidget.hpp" 00032 00033 00034 namespace ufo { 00035 00036 class URootPane; 00037 class ULayeredPane; 00038 class UDesktopPane; 00039 00046 class UFO_EXPORT UInternalFrame : public UWidget { 00047 UFO_DECLARE_DYNAMIC_CLASS(UInternalFrame) 00048 UFO_UI_CLASS(UInternalFrameUI) 00049 UFO_STYLE_TYPE(UStyle::CE_InternalFrame) 00050 public: 00052 UInternalFrame(); 00056 UInternalFrame(const std::string & title); 00061 UInternalFrame(uint32_t frameStyle); 00066 UInternalFrame(const std::string & title, uint32_t frameStyle); 00067 00068 friend class UDesktopPane; 00069 public: // Public methods 00072 virtual URootPane * getRootPane() const; 00075 virtual UWidget * getContentPane() const; 00078 virtual ULayeredPane * getLayeredPane() const; 00079 00080 virtual void setTitle(const std::string & title); 00081 virtual std::string getTitle(); 00082 00087 virtual void pack(); 00088 00089 // 00090 // Attributes 00091 // 00092 00093 FrameStyle getFrameStyle() const; 00094 void setFrameStyle(int frameStyle); 00095 00096 FrameState getFrameState() const; 00100 void setFrameState(int frameState); 00101 00104 void maximize(); 00105 bool isMaximized() const; 00106 00107 void minimize(); 00108 bool isMinimized() const; 00109 00113 void restore(); 00114 00118 virtual void setResizable(bool b); 00119 bool isResizable() const; 00120 00121 public: // overrides UWidget 00123 virtual bool isActive() const; 00124 virtual UDimension getContentsSize(const UDimension & maxSize) const; 00125 virtual void processMouseEvent(UMouseEvent * e); 00126 virtual void processWidgetEvent(UWidgetEvent * e); 00127 virtual void processStateChangeEvent(uint32_t state); 00128 00129 protected: // Protected methods 00130 UDesktopPane * getDesktopPane(); 00131 00132 protected: // Protected attributes 00133 UDesktopPane * m_desktop; 00135 URootPane * m_rootPane; 00136 std::string m_title; 00137 00138 uint32_t m_frameStyle; 00139 uint32_t m_frameState; 00140 URectangle m_restoreBounds; 00141 }; 00142 00143 } // namespace ufo 00144 00145 #endif // UINTERNALFRAME_HPP

The libUFO Project - written by Johannes Schmidt