Add "gtk/webbrowser.h" to declare functions from "gtk/webbrowser.c".
[obnox/wireshark/wip.git] / gtk / gtkglobals.h
index 9693cd9d98d17cf894197dd9dd4c033c043008e3..31fd095a11be3d93523d1980a7185f2da2eff8c4 100644 (file)
@@ -1,22 +1,22 @@
 /* gtkglobals.h
  * GTK-related Global defines, etc.
  *
- * $Id: gtkglobals.h,v 1.17 2002/01/11 06:43:17 guy Exp $
+ * $Id: gtkglobals.h,v 1.30 2004/06/17 16:35:24 ulfl Exp $
  *
  * Ethereal - Network traffic analyzer
  * By Gerald Combs <gerald@ethereal.com>
  * 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.
 #ifndef __GTKGLOBALS_H__
 #define __GTKGLOBALS_H__
 
-#ifndef __GTK_H__
-#include <gtk/gtk.h>
-#endif
+/** @mainpage GTK subsystem
+ *
+ * @section intro Introduction
+ *
+ * Ethereal uses GTK (the Gimp ToolKit) as it's user interface toolkit.
+ *
+ * See Modules for a list of submodules.
+ *
+ */
 
-extern GtkWidget   *top_level, *packet_list, *tree_view, *byte_nb_ptr;
-extern GdkFont     *m_r_font, *m_b_font;
-extern guint m_font_height, m_font_width;
+/** @file
+ *  GTK global definitions. For example a pointer to the main application window.
+ */
 
-extern GtkStyle *item_style;
+/** Application window. */
+extern GtkWidget *top_level;
 
-void set_plist_sel_browse(gboolean);
-void set_plist_font(GdkFont *font);
+/** Packet list pane. */
+extern GtkWidget *packet_list;
 
-#ifdef _WIN32
-/* It appears that isprint() is not working well
- * with gtk+'s text widget. By narrowing down what
- * we print, the ascii portion of the hex display works.
- * MSVCRT's isprint() returns true on values like 0xd2,
- * which cause the GtkTextWidget to go wacko.
- *
- * (I.e., whilst non-ASCII characters are considered printable
- * in the locale in which Ethereal is running - which they might
- * well be, if, for example, the locale supports ISO Latin 1 -
- * GTK+'s text widget on Windows doesn't seem to handle them
- * correctly.)
- *
- * This is a quick fix for the symptom, not the
- * underlying problem.
+/** Tree view (packet details) pane. */
+extern GtkWidget *tree_view;
+
+/** Byte notebook (packet bytes) pane. */
+extern GtkWidget *byte_nb_ptr;
+
+/** The filter text entry in the filter toolbar. */
+extern GtkWidget   *main_display_filter_widget;
+
+#if GTK_MAJOR_VERSION >= 2 || GTK_MINOR_VERSION >= 3
+/**
+ * XXX - "isprint()" can return "true" for non-ASCII characters, but
+ * those don't work with GTK+ 1.3 or later, as they take UTF-8 strings
+ * as input.  Until we fix up Ethereal to properly handle non-ASCII
+ * characters in all output (both GUI displays and text printouts)
+ * in those versions of GTK+, we work around the problem by escaping
+ * all characters that aren't printable ASCII.
  */
 #undef isprint
-#define isprint(c) (c >= 0x20 && c <= 0x7f)
+#define isprint(c) (c >= 0x20 && c < 0x7f)
 #endif
 
 #endif