00001 /*---------------------------------------------------------------------- 00002 * ann_form.h 00003 * 00004 * The "ann_form" window is an annotation edit form. It displays the 00005 * immediate values of an unstructured annote, allows the user to edit, 00006 * insert, delete fields. 00007 * 00008 */ 00009 00010 #ifndef ANN_FORM_H 00011 #define ANN_FORM_H 00012 00013 #include "base_viewer.h" 00014 #include "suifkernel/suifkernel_forwarders.h" 00015 #include "suifnodes/suif_forwarders.h" 00016 00017 class ann_form : public form_base_viewer { 00018 typedef form_base_viewer inherited; 00019 00020 private: 00021 AnnotableObject *parent; 00022 Annote *current_obj; 00023 bool new_annote; 00024 00025 static void do_update(event &e, ann_form *form); 00026 static void do_cancel(event &e, ann_form *form); 00027 static void do_insert(event &e, ann_form *form, char *type); 00028 static void do_delete(event &e, ann_form *form); 00029 00030 void notify_of_change(); 00031 public: 00032 ann_form( AnnotableObject *parent, Annote *obj); 00033 ~ann_form(void); 00034 virtual char *class_name(void) { return "Annote form"; } 00035 virtual void destroy(void); 00036 00037 virtual void create_window(void); 00038 virtual void handle_event(event &e); 00039 virtual AnnotableObject* get_parent() { return parent; } 00040 00041 }; 00042 00043 #endif // ANN_FORM_H