1 /* sctp_chunck_statistics_dialog.h
2  *
3  * Wireshark - Network traffic analyzer
4  * By Gerald Combs <gerald@wireshark.org>
5  * Copyright 1998 Gerald Combs
6  *
7  * SPDX-License-Identifier: GPL-2.0-or-later
8  */
9 
10 #ifndef SCTP_CHUNK_STATISTICS_DIALOG_H
11 #define SCTP_CHUNK_STATISTICS_DIALOG_H
12 
13 #include <config.h>
14 #include <glib.h>
15 
16 #include <file.h>
17 #include <wsutil/file_util.h>
18 #include <epan/dissectors/packet-sctp.h>
19 #include "epan/packet.h"
20 #include "epan/value_string.h"
21 #include <epan/prefs.h>
22 #include <epan/uat-int.h>
23 #include <epan/prefs-int.h>
24 #include <wsutil/filesystem.h>
25 #include "wireshark_application.h"
26 
27 #include <QTableWidgetItem>
28 #include <QDialog>
29 #include <QMenu>
30 #include <QContextMenuEvent>
31 
32 namespace Ui {
33 class SCTPChunkStatisticsDialog;
34 }
35 
36 struct _sctp_assoc_info;
37 
38 class SCTPChunkStatisticsDialog : public QDialog
39 {
40     Q_OBJECT
41 
42 public:
43     explicit SCTPChunkStatisticsDialog(QWidget *parent = 0, const _sctp_assoc_info *assoc = NULL, capture_file *cf = NULL);
44     ~SCTPChunkStatisticsDialog();
45 
46 public slots:
setCaptureFile(capture_file * cf)47     void setCaptureFile(capture_file *cf) { cap_file_ = cf; }
48 
49 private slots:
50   //  void on_sectionClicked(int row);
51  //   void on_sectionMoved(int logicalIndex, int oldVisualIndex, int newVisualIndex);
52     void on_pushButton_clicked();
53     void on_actionHideChunkType_triggered();
54     void on_actionChunkTypePreferences_triggered();
55     void contextMenuEvent(QContextMenuEvent * event);
56 
57     void on_actionShowAllChunkTypes_triggered();
58 
59 signals:
60    // void sectionClicked(int);
61   //  void sectionMoved(int, int, int);
62 
63 private:
64     Ui::SCTPChunkStatisticsDialog *ui;
65     guint16 selected_assoc_id;
66     capture_file *cap_file_;
67     QMenu ctx_menu_;
68     QPoint selected_point;
69 
70     struct chunkTypes {
71         int row;
72         int id;
73         int hide;
74         char name[30];
75     };
76 
77     QMap<int, struct chunkTypes> chunks, tempChunks;
78 
79     void initializeChunkMap();
80     void fillTable(bool all = false, const _sctp_assoc_info *selected_assoc = NULL);
81 };
82 
83 #endif // SCTP_CHUNK_STATISTICS_DIALOG_H
84