Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Namespace Members | Class Members | File Members | Related Pages

pgscrollarea.h

Go to the documentation of this file.
00001 /*
00002    ParaGUI - crossplatform widgetset
00003    Copyright (C) 2000-2004  Alexander Pipelka
00004  
00005    This library is free software; you can redistribute it and/or
00006    modify it under the terms of the GNU Library General Public
00007    License as published by the Free Software Foundation; either
00008    version 2 of the License, or (at your option) any later version.
00009  
00010    This library is distributed in the hope that it will be useful,
00011    but WITHOUT ANY WARRANTY; without even the implied warranty of
00012    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00013    Library General Public License for more details.
00014  
00015    You should have received a copy of the GNU Library General Public
00016    License along with this library; if not, write to the Free
00017    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
00018  
00019    Alexander Pipelka
00020    pipelka@teleweb.at
00021  
00022    Last Update:      $Author: mbickel $
00023    Update Date:      $Date: 2007-04-13 16:15:57 $
00024    Source File:      $Source: /home/cvspsrv/cvsroot/games/asc/source/libs/paragui/include/pgscrollarea.h,v $
00025    CVS/RCS Revision: $Revision: 1.2 $
00026    Status:           $State: Exp $
00027 */
00028 
00033 #ifndef PG_SCROLLAREA_H
00034 #define PG_SCROLLAREA_H
00035 
00036 #include "pgwidget.h"
00037 #include "pgpoint.h"
00038 
00048 class DECLSPEC PG_ScrollArea : public PG_Widget {
00049 public:
00050 
00051 class SignalAreaChangedHeight : public PG_Signal2<PG_ScrollArea*, Uint16> {}
00052         ;
00053 class SignalAreaChangedWidth : public PG_Signal2<PG_ScrollArea*, Uint16> {}
00054         ;
00055 
00062         PG_ScrollArea(PG_Widget* parent, const PG_Rect& r = PG_Rect::null);
00063 
00064         ~PG_ScrollArea();
00065 
00073         void SetShiftOnRemove(bool shiftx, bool shifty);
00074 
00080         void ScrollTo(int x, int y);
00081 
00087         void ScrollToWidget(PG_Widget* widget, bool bVertical = true);
00088 
00094         void SetAreaWidth(Uint16 w);
00095 
00101         void SetAreaHeight(Uint16 h);
00102 
00107         inline Uint16 GetAreaWidth() {
00108                 return my_area.w;
00109         };
00110 
00115         inline Uint16 GetAreaHeight() {
00116                 return my_area.h;
00117         };
00118 
00122         void RemoveAll();
00123 
00127         void DeleteAll();
00128 
00132         Uint16 GetWidgetCount();
00133 
00134         Uint16 GetScrollPosX();
00135 
00136         Uint16 GetScrollPosY();
00137 
00138         SignalAreaChangedHeight sigAreaChangedHeight;
00139 
00140         SignalAreaChangedWidth sigAreaChangedWidth;
00141 
00142         void AddChild(PG_Widget* child);
00143 
00144         bool RemoveChild(PG_Widget* child);
00145 
00146         PG_Widget* GetFirstInList();
00147 
00153         void SetResizeParent(bool bRemove, bool bAdd);
00154 
00155 protected:
00156 
00157         void eventSizeWidget(Uint16 w, Uint16 h);
00158 
00159         PG_Rect my_area;
00160 
00161         bool my_shiftx;
00162 
00163         bool my_shifty;
00164 
00165         bool my_AddResizeParent;
00166 
00167         bool my_RemoveResizeParent;
00168 };
00169 
00170 #endif // PG_SCROLLAREA_H

Generated on Tue Jun 24 01:27:49 2008 for Advanced Strategic Command by  doxygen 1.4.2