00001 /* 00002 * HT Editor 00003 * hthex.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 __HTHEX_H__ 00022 #define __HTHEX_H__ 00023 00024 #include "formats.h" 00025 00026 #define DESC_HEX "hex" 00027 00028 extern format_viewer_if hthex_if; 00029 00030 /* 00031 * CLASS ht_hex_viewer 00032 */ 00033 00034 class ht_hex_file_sub; 00035 class ht_hex_viewer: public ht_uformat_viewer { 00036 public: 00037 ht_hex_file_sub *h; 00038 protected: 00039 virtual void get_pindicator_str(char *buf); 00040 virtual bool get_vscrollbar_pos(int *pstart, int *psize); 00041 virtual void handlemsg(htmsg *msg); 00042 virtual bool offset_to_pos(FILEOFS ofs, viewer_pos *p); 00043 virtual bool pos_to_offset(viewer_pos p, FILEOFS *ofs); 00044 virtual bool qword_to_pos(qword q, viewer_pos *pos); 00045 virtual int symbol_handler(eval_scalar *result, char *name); 00046 }; 00047 00048 /* 00049 * CLASS ht_hex_file_sub 00050 */ 00051 00052 class ht_hex_file_sub: public ht_hex_sub { 00053 public: 00054 /* overwritten */ 00055 virtual void handlemsg(htmsg *msg); 00056 }; 00057 00058 #endif /* !__HTHEX_H__ */ 00059