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