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

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

Go to the documentation of this file.
00001 /*--------------------------------------------------------------------
00002  * suif_viewer.h
00003  *
00004  * The "suif_viewer" displays SUIF codes of a procedure.
00005  *
00006  */
00007 
00008 #ifndef SUIF_VIEWER_H
00009 #define SUIF_VIEWER_H
00010 
00011 //#include <pyg.h>
00012 #include "base_viewer.h"
00013 #include "code_tree.h"
00014 
00015 bool tag_prefix_match(LString tag, char *prefix);
00016 typedef list<LString> string_list;
00017 
00018 /*----------------------------------------------------------------------
00019  * suif_viewer
00020  */
00021 class suif_viewer : public text_base_viewer {
00022   typedef text_base_viewer inherited;
00023 
00024   bool show_mark_instructions;
00025   string_list* annotation_names;
00026 
00027   vmessage* info_bar;
00028   ProcedureDefinition* current_proc;
00029 
00030   struct {
00031     char* tag;
00032   } find_info;
00033 
00034   /* menu */
00035   virtual void create_proc_menu();
00036   virtual void create_edit_menu();
00037   virtual void create_view_menu();
00038   virtual void create_find_menu();
00039 
00040   /* display */
00041   virtual void clear();
00042   virtual void update_info_bar();
00043 
00044 
00045   /* find */
00046   void find_helper( void *client_data, bool search_forward );
00047 
00048   virtual void show_node( SuifObject* tn );
00049 
00050   virtual void select_node( vnode* );
00051  
00052   static void find_node_cmd( event& e, suif_viewer* viewer, char* tag );
00053   static void find_instr_cmd( event& e, suif_viewer* viewer );
00054   
00055   static void find_cmd( const event&, suif_viewer* viewer,
00056                             void* search_forward );
00057 
00058   static void collapse_all_cmd(event& e, suif_viewer* viewer);
00059   static void expand_all_cmd(event& e, suif_viewer* viewer);
00060   static void filter_mrk_cmd(event& e, suif_viewer* viewer);
00061 public:
00062   suif_viewer();
00063   virtual ~suif_viewer();
00064 
00065   virtual void create_window();
00066   virtual char *class_name() { return "Suif Viewer"; }
00067   virtual void handle_event( event& e );
00068 
00069   virtual void select( code_fragment* f );
00070   virtual void select( SuifObject* );
00071 
00072   virtual void view( code_fragment* f );
00073   virtual void view( SuifObject* );
00074 
00075   virtual void refresh();
00076   virtual void refresh_menu();
00077 
00078   static window *constructor() {
00079     return new suif_viewer;
00080   }
00081 };
00082 
00083 #endif

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