Main Page   Class Hierarchy   Compound List   File List   Compound Members   File Members  

nci/suif/suif2b/suifbrowser/viewers/base_viewer.h

Go to the documentation of this file.
00001 /*--------------------------------------------------------------------
00002  * base_viewer.h
00003  *
00004  */
00005 
00006 #ifndef BASE_VIEWER_H
00007 #define BASE_VIEWER_H
00008 
00009 #include "visual/visual.h"
00010 #include "common/suif_list.h"
00011 #include "basicnodes/basic.h"
00012 #include "suifkernel/suif_env.h"
00013 #include "suifkernel/module.h"
00014 #include "suifprinter/suifprinter.h"
00015 extern SuifEnv* suif_env;
00016 extern SuifPrinterModule* pr;
00017 
00018 /*----------------------------------------------------------------------
00019  * base viewer
00020  */
00021 class base_viewer : public window {
00022   typedef window inherited;
00023 
00024   static void do_close_command( event& e, base_viewer* viewer );
00025 
00026 protected:
00027   binding* event_binding;
00028 
00029 public:
00030   base_viewer();
00031   virtual ~base_viewer();
00032 
00033   virtual char* class_name() { return "Base Viewer"; }
00034   virtual void handle_event( event& ) {};
00035 
00036   virtual void add_close_command( vmenu* menu, char* parent_menu );
00037   virtual void add_close_button( vbuttonbar* button_bar );
00038 };
00039 /*----------------------------------------------------------------------
00040  * text viewer
00041  */
00042 class text_base_viewer : public base_viewer {
00043   typedef base_viewer inherited;
00044 
00045 protected:
00046   vframe* frame;
00047   vmenu*  menu;
00048   vtext*  text;
00049 
00050 public:
00051   text_base_viewer();
00052   virtual ~text_base_viewer();
00053 
00054   virtual char* class_name() { return "Text Viewer"; }
00055   virtual void handle_event( event& e );
00056 
00057   virtual void create_window();
00058 };
00059 /*----------------------------------------------------------------------
00060  * graph base viewer
00061  */
00062 class graph_base_viewer : public base_viewer {
00063   typedef base_viewer inherited;
00064 
00065 protected:
00066   vframe* frame;
00067   vmenu*  menu;
00068   vgraph* graph_wdgt;
00069 
00070 public:
00071   graph_base_viewer();
00072   virtual ~graph_base_viewer();
00073 
00074   virtual char* class_name() { return "Graph Viewer"; }
00075 
00076   virtual void create_window();
00077 };
00078 
00079 /*----------------------------------------------------------------------
00080  * list base viewer
00081  */
00082 class list_base_viewer : public base_viewer {
00083   typedef base_viewer inherited;
00084 
00085 protected:
00086   vframe*     listbox_frame;
00087   vlistbox*   listbox;
00088   vframe*     button_frame;
00089   vbuttonbar* button_bar;
00090 
00091   char* list_title;
00092 
00093 public:
00094   list_base_viewer();
00095   virtual ~list_base_viewer();
00096 
00097   virtual void set_title( char* s );
00098 
00099   virtual void create_window();
00100   virtual char* class_name() { return "List Viewer"; }
00101 };
00102 
00103 /*----------------------------------------------------------------------
00104  * form base viewer
00105  */
00106 typedef list<SuifBrick*> BrickList;
00107 class form_base_viewer : public base_viewer {
00108   typedef base_viewer inherited;
00109 
00110 protected:
00111   vmenu*      menu;
00112   vframe*     form_frame;
00113   vframe*     button_frame;
00114   vform*      form;
00115   vmessage*   info_bar;
00116   vbuttonbar* button_bar;
00117 
00118 public:
00119   form_base_viewer();
00120   virtual ~form_base_viewer();
00121 
00122   virtual void create_window();
00123   virtual char* class_name() { return "Form Viewer"; }
00124 
00125   void set_info_bar( char* msg );
00126 
00127   virtual void add_bricks( SuifObject* obj );
00128   virtual void add_brick( SuifBrick *br, char* field_name );
00129 
00130   BrickList* get_brick_list( SuifObject* obj, int first_field_num = 0);
00131   SuifBrick *get_brick( SuifObject* obj, int field_num, char*& error_msg );
00132 };
00133 
00134 #endif  // BASE_VIEWER_H

Generated at Mon Jul 31 13:42:30 2000 for NCI SUIF by doxygen 1.1.2 written by Dimitri van Heesch, © 1997-2000