src/wscout_gui_hex_dump_dock.hh

00001 /*
00002  * WScout - Lightweight PCAP visualizer.
00003  * Copyright (C) 2007, 2008  Universite Pierre et Marie Curie - Paris 6
00004  *
00005  * This program is free software; you can redistribute it and/or modify
00006  * it under the terms of the GNU General Public License as published by
00007  * the Free Software Foundation; either version 2 of the License, or
00008  * (at your option) any later version.
00009  *
00010  * This program is distributed in the hope that it will be useful,
00011  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00012  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00013  * GNU General Public License for more details.
00014  *
00015  * You should have received a copy of the GNU General Public License
00016  * along with this program; if not, write to the Free Software
00017  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
00018  * MA  02110-1301  USA
00019  *
00020  * Author: Thomas Claveirole <thomas.claveirole@lip6.fr>
00021  */
00022 
00023 #ifndef WSCOUT_GUI_HEX_DUMP_DOCK_HH_
00024 # define WSCOUT_GUI_HEX_DUMP_DOCK_HH_
00025 
00026 # include <QtGui/QDockWidget>
00027 # include <QtGui/QScrollArea>
00028 # include <QtGui/QTextEdit>
00029 
00030 namespace wscout
00031 {
00032 
00033   namespace gui
00034   {
00035 
00037     class HexDumpDock : public QDockWidget
00038     {
00039       Q_OBJECT
00040 
00041     public:
00042       HexDumpDock(QWidget* parent = 0);
00043       HexDumpDock(const HexDumpDock&);
00044 
00045       void      setup(const void* data, size_t len);
00046 
00047     private slots:
00048       void      hexUpdateClipboard();
00049       void      asciiUpdateClipboard();
00050 
00051     private:
00052       void              init();
00053       void              initTextEdit(QTextEdit& te, unsigned minWidth);
00054       static QString    filterBlanksOut(const QString& str);
00055 
00056       enum
00057         {
00058           lwidth = 16,          // Line width.
00059           bwidth = 4,           // Block width.
00060           addr_len = 4          // Address length, in bytes.
00061         };
00062 
00063       static const std::string  title;
00064       static const std::string  bigsep;
00065       static const std::string  smallsep;
00066 
00067       QWidget           dockWidget_;
00068       QTextEdit         addresses_;
00069       QTextEdit         hexData_;
00070       QTextEdit         asciiData_;
00071     };
00072 
00073   } // End of namespace gui.
00074 
00075 } // End of namespace wscout.
00076 
00077 # include "wscout_gui_hex_dump_dock.hxx"
00078 
00079 #endif // ! WSCOUT_GUI_HEX_DUMP_DOCK_HH_

Generated on Wed Jan 30 19:02:27 2008 for WScout by  doxygen 1.5.4