forked from osmocom/wireshark
146 lines
3.8 KiB
C++
146 lines
3.8 KiB
C++
/* simple_dialog_qt.cpp
|
|
*
|
|
* $Id$
|
|
*
|
|
* 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
|
*/
|
|
|
|
#ifdef HAVE_CONFIG_H
|
|
# include "config.h"
|
|
#endif
|
|
|
|
#include <stdio.h>
|
|
|
|
#include <glib.h>
|
|
|
|
#include <epan/strutil.h>
|
|
|
|
#include "ui/simple_dialog.h"
|
|
|
|
#include "simple_dialog_qt.h"
|
|
|
|
/* Simple dialog function - Displays a dialog box with the supplied message
|
|
* text.
|
|
*
|
|
* Args:
|
|
* type : One of ESD_TYPE_*.
|
|
* btn_mask : The value passed in determines which buttons are displayed.
|
|
* msg_format : Sprintf-style format of the text displayed in the dialog.
|
|
* ... : Argument list for msg_format
|
|
*/
|
|
|
|
gpointer
|
|
vsimple_dialog(ESD_TYPE_E type, gint btn_mask, const gchar *msg_format, va_list ap)
|
|
{
|
|
|
|
gchar *vmessage;
|
|
gchar *message;
|
|
SimpleDialog *dlg = NULL;
|
|
// queued_message_t *queued_message;
|
|
// GtkWidget *win;
|
|
// GdkWindowState state = 0;
|
|
|
|
/* Format the message. */
|
|
vmessage = g_strdup_vprintf(msg_format, ap);
|
|
|
|
/* convert character encoding from locale to UTF8 (using iconv) */
|
|
message = g_locale_to_utf8(vmessage, -1, NULL, NULL, NULL);
|
|
g_free(vmessage);
|
|
|
|
g_log(NULL, G_LOG_LEVEL_DEBUG, "FIX: vsimple_dialog t: %d bm: %d m: %s", type, btn_mask, message);
|
|
|
|
|
|
// if (top_level != NULL) {
|
|
// state = gdk_window_get_state(top_level->window);
|
|
// }
|
|
|
|
// /* If we don't yet have a main window or it's iconified, don't show the
|
|
// dialog. If showing up a dialog, while main window is iconified, program
|
|
// will become unresponsive! */
|
|
// if (top_level == NULL || state & GDK_WINDOW_STATE_ICONIFIED) {
|
|
|
|
// queued_message = g_malloc(sizeof (queued_message_t));
|
|
// queued_message->type = type;
|
|
// queued_message->btn_mask = btn_mask;
|
|
// queued_message->message = message;
|
|
// message_queue = g_slist_append(message_queue, queued_message);
|
|
// return NULL;
|
|
// }
|
|
|
|
// /*
|
|
// * Do we have any queued up messages? If so, pop them up.
|
|
// */
|
|
// display_queued_messages();
|
|
|
|
// win = display_simple_dialog(type, btn_mask, message);
|
|
|
|
g_free(message);
|
|
|
|
return dlg;
|
|
}
|
|
|
|
gpointer
|
|
simple_dialog(ESD_TYPE_E type, gint btn_mask, const gchar *msg_format, ...)
|
|
{
|
|
va_list ap;
|
|
gpointer ret;
|
|
|
|
va_start(ap, msg_format);
|
|
ret = vsimple_dialog(type, btn_mask, msg_format, ap);
|
|
va_end(ap);
|
|
return ret;
|
|
}
|
|
|
|
char *
|
|
simple_dialog_primary_start(void) {
|
|
return "<span weight=\"bold\" size=\"larger\">";
|
|
}
|
|
|
|
char *
|
|
simple_dialog_primary_end(void) {
|
|
return "</span>";
|
|
}
|
|
|
|
char *
|
|
simple_dialog_format_message(const char *msg)
|
|
{
|
|
char *str;
|
|
|
|
if (msg) {
|
|
str = xml_escape(msg);
|
|
} else {
|
|
str = NULL;
|
|
}
|
|
return str;
|
|
}
|
|
|
|
void simple_dialog_set_cb(gpointer dialog, simple_dialog_cb_t callback_fct, gpointer data)
|
|
{
|
|
g_log(NULL, G_LOG_LEVEL_DEBUG, "FIX: simple_dialog_set_cb d: %p cf: %p d: %p", dialog, callback_fct, data);
|
|
|
|
// g_object_set_data(G_OBJECT(GTK_WIDGET(dialog)), CALLBACK_FCT_KEY, callback_fct);
|
|
// g_object_set_data(G_OBJECT(GTK_WIDGET(dialog)), CALLBACK_DATA_KEY, data);
|
|
}
|
|
|
|
|
|
SimpleDialog::SimpleDialog(QWidget *parent) :
|
|
QErrorMessage(parent)
|
|
{
|
|
}
|