aboutsummaryrefslogtreecommitdiffstats
path: root/ui/qt/funnel_text_dialog.h
diff options
context:
space:
mode:
authorGerald Combs <gerald@wireshark.org>2015-07-03 15:52:49 -0500
committerGerald Combs <gerald@wireshark.org>2015-07-07 20:49:30 +0000
commite91ca72a445d51b71f958f140e2eb89747f499ff (patch)
tree8447adabdba8623cd8e045bc7a3d3d73fca54130 /ui/qt/funnel_text_dialog.h
parente9622175f7aee7dbeff6e97c9ac6ab78460e239a (diff)
Qt: Add initial Lua support.
Add a FunnelStatistics class, which is the main interface between the Qt UI and the Funnel API. Add FunnelTextDialog, which implements the text_window, ProgDlg, menu, and other routines. Add FunnelStringDialog, which implements dlg_new. We currently only support "Tools" menu items (MENU_TOOLS_UNSORTED, aka REGISTER_TOOLS_GROUP_UNSORTED). Add a disabled placeholder to the "Tools" menu in case we don't load any scripts. Use "struct progdlg" instead of needlessly casting to funnel_progress_window_t. To do: - Add support for MENU_STAT_UNSORTED, MENU_STAT_GENERIC, etc. - Make the firewall config generator a Lua script? - Add FunnelGraphDialog? It seems like it would be useful to make QCustomPlot accessible to Lua scripts. Ping-Bug: 9845 Change-Id: Iefff02e9032ed1853666f7902509ed08b431e7a7 Reviewed-on: https://code.wireshark.org/review/9523 Petri-Dish: Gerald Combs <gerald@wireshark.org> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Gerald Combs <gerald@wireshark.org>
Diffstat (limited to 'ui/qt/funnel_text_dialog.h')
-rw-r--r--ui/qt/funnel_text_dialog.h98
1 files changed, 98 insertions, 0 deletions
diff --git a/ui/qt/funnel_text_dialog.h b/ui/qt/funnel_text_dialog.h
new file mode 100644
index 0000000000..0ee9be5edf
--- /dev/null
+++ b/ui/qt/funnel_text_dialog.h
@@ -0,0 +1,98 @@
+/* funnel_text_dialog.h
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#ifndef FUNNEL_TEXT_DIALOG_H
+#define FUNNEL_TEXT_DIALOG_H
+
+#include <glib.h>
+
+#include "epan/funnel.h"
+
+#include <QDialog>
+
+namespace Ui {
+class FunnelTextDialog;
+}
+
+class FunnelTextDialog;
+struct _funnel_text_window_t {
+ FunnelTextDialog* funnel_text_dialog;
+};
+
+class FunnelTextDialog : public QDialog
+{
+ Q_OBJECT
+
+public:
+ explicit FunnelTextDialog();
+ ~FunnelTextDialog();
+
+ // Funnel ops
+ static struct _funnel_text_window_t *textWindowNew(const QString title);
+ void setText(const QString text);
+ void appendText(const QString text);
+ void prependText(const QString text);
+ void clearText();
+ const char *getText();
+ void setCloseCallback(text_win_close_cb_t close_cb, void* close_cb_data);
+ void setTextEditable(gboolean editable);
+ void addButton(funnel_bt_t *button_cb, const QString label);
+
+private slots:
+ void buttonClicked();
+ void on_findLineEdit_textChanged(const QString &pattern);
+
+private:
+ Ui::FunnelTextDialog *ui;
+
+ struct _funnel_text_window_t funnel_text_window_;
+ text_win_close_cb_t close_cb_;
+ void *close_cb_data_;
+};
+
+extern "C" {
+struct _funnel_text_window_t* text_window_new(const char* title);
+void text_window_set_text(funnel_text_window_t* ftw, const char* text);
+void text_window_append(funnel_text_window_t *ftw, const char* text);
+void text_window_prepend(funnel_text_window_t* ftw, const char* text);
+void text_window_clear(funnel_text_window_t *ftw);
+const char *text_window_get_text(funnel_text_window_t* ftw);
+void text_window_set_close_cb(funnel_text_window_t *ftw, text_win_close_cb_t close_cb, void* close_cb_data);
+void text_window_set_editable(funnel_text_window_t* ftw, gboolean editable);
+void text_window_destroy(funnel_text_window_t* ftw);
+void text_window_add_button(funnel_text_window_t* ftw, funnel_bt_t* funnel_button, const char* label);
+}
+
+
+#endif // FUNNEL_TEXT_DIALOG_H
+
+/*
+ * Editor modelines
+ *
+ * Local Variables:
+ * c-basic-offset: 4
+ * tab-width: 8
+ * indent-tabs-mode: nil
+ * End:
+ *
+ * ex: set shiftwidth=4 tabstop=8 expandtab:
+ * :indentSize=4:tabSize=8:noTabs=true:
+ */