00001 /* 00002 * HT Editor 00003 * hthist.h 00004 * 00005 * Copyright (C) 1999-2002 Stefan Weyergraf (stefan@weyergraf.de) 00006 * 00007 * This program is free software; you can redistribute it and/or modify 00008 * it under the terms of the GNU General Public License version 2 as 00009 * published by the Free Software Foundation. 00010 * 00011 * This program is distributed in the hope that it will be useful, 00012 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00013 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00014 * GNU General Public License for more details. 00015 * 00016 * You should have received a copy of the GNU General Public License 00017 * along with this program; if not, write to the Free Software 00018 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 00019 */ 00020 00021 #ifndef HTHIST_H 00022 #define HTHIST_H 00023 00024 #include "htobj.h" 00025 #include "store.h" 00026 #include "tools.h" 00027 00028 /* 00029 * histories 00030 */ 00031 00032 #define HISTATOM_GOTO MAGICD("HIS\x80") 00033 #define HISTATOM_FILE MAGICD("HIS\x81") 00034 #define HISTATOM_SEARCH_BIN MAGICD("HIS\x82") 00035 #define HISTATOM_SEARCH_EVALSTR MAGICD("HIS\x83") 00036 #define HISTATOM_SEARCH_VREGEX MAGICD("HIS\x84") 00037 #define HISTATOM_SEARCH_EXPR MAGICD("HIS\x85") 00038 #define HISTATOM_ASSEMBLER MAGICD("HIS\x86") 00039 #define HISTATOM_NAME_ADDR MAGICD("HIS\x87") 00040 #define HISTATOM_EVAL_EXPR MAGICD("HIS\x88") 00041 00042 /* 00043 * CLASS ht_history_entry 00044 */ 00045 00046 class ht_history_entry: public Object { 00047 public: 00048 char *desc; 00049 ht_object_stream_bin *data; 00050 ht_mem_file *datafile; 00051 00052 ht_history_entry(char *str=0, ht_object_stream_bin *data=0, ht_mem_file *datafile=0); 00053 ~ht_history_entry(); 00054 /* overwritten */ 00055 virtual int load(ht_object_stream *s); 00056 virtual void store(ht_object_stream *s); 00057 virtual OBJECT_ID object_id() const; 00058 }; 00059 00060 bool insert_history_entry(ht_list *history, char *name, ht_view *view); 00061 00062 void store_history(ht_object_stream *s); 00063 bool load_history(ht_object_stream *s); 00064 00065 /* 00066 * INIT 00067 */ 00068 00069 bool init_hist(); 00070 00071 /* 00072 * DONE 00073 */ 00074 00075 void done_hist(); 00076 00077 #endif /* HTHIST_H */