00001 /* 00002 ParaGUI - crossplatform widgetset 00003 Copyright (C) 2000,2001,2002 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/pgnavigator.h,v $ 00025 CVS/RCS Revision: $Revision: 1.2 $ 00026 Status: $State: Exp $ 00027 */ 00028 00033 #ifndef PG_NAVIGATOR_H 00034 #define PG_NAVIGATOR_H 00035 00036 #include "pgwidget.h" 00037 #include <vector> 00038 00046 class PG_Navigator : protected std::vector<PG_Widget*> { 00047 00048 public: 00049 00050 void Add(PG_Widget* widget); 00051 00052 void Remove(PG_Widget* widget); 00053 00054 bool Action(PG_Widget::KeyAction action); 00055 00056 PG_Widget* Goto(PG_Widget* widget); 00057 00058 PG_Widget* GotoFirst(); 00059 00060 PG_Widget* GotoLast(); 00061 00062 PG_Widget* GotoNext(); 00063 00064 PG_Widget* GotoPrev(); 00065 00066 PG_Widget* FindLeft(PG_Widget* widget = NULL); 00067 00068 PG_Widget* FindRight(PG_Widget* widget = NULL); 00069 00070 PG_Widget* FindUp(PG_Widget* widget = NULL); 00071 00072 PG_Widget* FindDown(PG_Widget* widget = NULL); 00073 00074 private: 00075 00076 DLLLOCAL PG_Widget* FindWidget(PG_Widget* from, PG_Point ref, bool absx, bool absy, int xmode, int ymode); 00077 00078 static PG_Widget* my_currentWidget; 00079 }; 00080 00081 #endif // PG_NAVIGATOR_H
1.4.2