00001 //--- < OBJECTDISPLAY.H > -------| ViewGraph - A Flexible Graph view Framework | 00002 // 00003 // Displays a bunch of objects on the screen, 00004 // handles zooming and scrolling requests. 00005 // 00006 // Passes down zooming and scrolling commands 00007 // to ZoomableSurfaceView/ZoomableObjectView. 00008 00009 // Uses a FindDrawable class to find the objects 00010 // that get into the view and commands them to 00011 // draw themselves. 00012 // 00013 // Uses a VisibilityPolicy class to decide which 00014 // objects can be drawn at the current magnification 00015 // level and how magnified each of them should 00016 // look at a certain magnification level. This 00017 // policy can and should be overriden by the user 00018 // of this library. 00019 // 00020 // $Author: botik32 $ 00021 // $Revision: 1.1.1.1 $ 00022 // $Date: 2004/03/26 10:50:23 $ 00023 //-----------------------------------------------------------------------------/ 00024 00025 #ifndef OBJECTDISPLAY_H 00026 #define OBJECTDISPLAY_H 00027 00028 #include <cZUI/surfaceview.h> 00029 #include <cZUI/finddrawable.h> 00030 00031 template <class VC, class VP, class NL, class GN, template<VC,NL> class FD> 00032 class _ObjectDisplay 00033 { 00034 private: 00035 VC *view; 00036 VP *vpolicy; 00037 NL *nodelist; 00038 FD *finddrawable; 00039 // VC decides the view class (SurfaceView or ObjectView) 00040 // used to handle zooming and scrolling. 00041 // GN stands for GraphNode, nodelist is supposed to return 00042 // GN* for first(), next(), prev() messages. 00043 // GN must have get_boundrect() 00044 00045 } 00046 00047 #endif 00048 00049 /// $Log: objectdisplay.h,v $ 00050 /// Revision 1.1.1.1 2004/03/26 10:50:23 botik32 00051 /// Initial release 00052 /// 00053 /// Revision 1.1.1.1 2004/03/26 08:53:33 botik 00054 /// initial import 00055 /// 00056 /// 00057 /// Revision 1.4 2003/10/15 13:00:42 botik 00058 /// Added finddrawable class. Modified objectdisplay.h to 00059 /// fit the changes. 00060 /// 00061 /// Revision 1.3 2003/10/15 11:58:05 botik 00062 /// With the addition of object display, graphdisplay has been 00063 /// modified. ObjectDisplay's interface has been coded. Some 00064 /// changes to scrollable view have been introduced that relate 00065 /// to the changes above. 00066 /// 00067 /// Revision 1.2 2003/10/13 16:41:35 botik 00068 /// Added Log keyword to the end of the files 00069 ///