aboutsummaryrefslogtreecommitdiffstats
path: root/gtk2/ui_util.c
diff options
context:
space:
mode:
Diffstat (limited to 'gtk2/ui_util.c')
-rw-r--r--gtk2/ui_util.c267
1 files changed, 0 insertions, 267 deletions
diff --git a/gtk2/ui_util.c b/gtk2/ui_util.c
deleted file mode 100644
index 6740dc57d6..0000000000
--- a/gtk2/ui_util.c
+++ /dev/null
@@ -1,267 +0,0 @@
-/* ui_util.c
- * UI utility routines
- *
- * $Id: ui_util.c,v 1.4 2002/09/21 11:36:30 oabad 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.
- */
-
-#ifdef HAVE_CONFIG_H
-# include "config.h"
-#endif
-
-#include <gtk/gtk.h>
-
-#include "gtkglobals.h"
-#include "ui_util.h"
-#include "prefs.h"
-#include "epan/epan.h"
-#include "../ui_util.h"
-#include "image/eicon3d16.xpm"
-
-
-/* Set the name of the top-level window and its icon to the specified
- string. */
-void
-set_main_window_name(gchar *window_name)
-{
- gtk_window_set_title(GTK_WINDOW(top_level), window_name);
- gdk_window_set_icon_name(top_level->window, window_name);
-}
-
-/* Given a pointer to a GtkWidget for a top-level window, raise it and
- de-iconify it. This routine is used if the user has done something to
- ask that a window of a certain type be popped up when there can be only
- one such window and such a window has already been popped up - we
- pop up the existing one rather than creating a new one.
-
- XXX - we should request that it be given the input focus, too. Alas,
- GDK has nothing to do that, e.g. by calling "XSetInputFocus()" in a
- window in X. Besides, using "XSetInputFocus()" doesn't work anyway,
- apparently due to the way GTK+/GDK manages the input focus.
-
- The X Desktop Group's Window Manager Standard specifies, in the section
- on Root Window Properties, an _NET_ACTIVE_WINDOW client message that
- can be sent to the root window, containing the window ID of the
- window to activate; I infer that this might be the way to give the
- window the input focus - I assume that means it's also de-iconified,
- but I wouldn't assume it'd raise it.
-
- XXX - will this do the right thing on window systems other than X? */
-void
-reactivate_window(GtkWidget *win)
-{
- gdk_window_show(win->window);
- gdk_window_raise(win->window);
-}
-
-/* Set our window icon. The GDK documentation doesn't provide any
- actual documentation for gdk_window_set_icon(), so we'll steal
- libgimp/gimpdialog.c:gimp_dialog_realize_callback() from the Gimp
- sources and assume it's safe.
-
- XXX - The current icon size is fixed at 16x16 pixels, which looks fine
- with kwm (KDE 1.x's window manager), Sawfish (the "default" window
- manager for GNOME?), and under Windows with Exceed putting X windows
- on the Windows desktop, using Exceed as the window manager, as those
- window managers put a 16x16 icon on the title bar.
-
- The window managers in some windowing environments (e.g. dtwm in CDE)
- and some stand-alone window managers have larger icon sizes (many window
- managers put the window icon on the desktop, in the Windows 3.x style,
- rather than in the titlebar, in the Windows 4.x style), so we need to
- find a way to size our icon appropriately.
-
- The X11 Inter-Client Communications Conventions Manual, Version 1.1,
- in X11R5, specifies that "a window manager that wishes to place
- constraints on the sizes of icon pixmaps and/or windows should
- place a property called WM_ICON_SIZE on the root"; that property
- contains minimum width and height, maximum width and height, and
- width and height increment values. "XGetIconSizes()" retrieves
- that property; unfortunately, I've yet to find a window manager
- that sets it on the root window (kwm, AfterStep, and Exceed don't
- appear to set it).
-
- The X Desktop Group's Window Manager Standard specifies, in the section
- on Application Window Properties, an _NET_WM_ICON property, presumably
- set by the window manager, which is an array of possible icon sizes
- for the client. There's no API in GTK+ 1.2[.x] for this; there may
- eventually be one either in GTK+ 2.0 or GNOME 2.0.
-
- Some window managers can be configured to take the window name
- specified by the WM_NAME property of a window or the resource
- or class name specified by the WM_CLASS property and base the
- choice of icon for the window on one of those; WM_CLASS for
- Ethereal's windows has a resource name of "ethereal" and a class
- name of "Ethereal". However, the way that's done is window-manager-
- specific, and there's no way to determine what size a particular
- window manager would want, so there's no way to automate this as
- part of the installation of Ethereal.
- */
-void
-window_icon_realize_cb (GtkWidget *win, gpointer data _U_)
-{
-#ifndef WIN32
- static GdkPixmap *icon_pmap = NULL;
- static GdkBitmap *icon_mask = NULL;
- GtkStyle *style;
-
- style = gtk_widget_get_style (win);
-
- if (icon_pmap == NULL) {
- icon_pmap = gdk_pixmap_create_from_xpm_d (win->window,
- &icon_mask, &style->bg[GTK_STATE_NORMAL], eicon3d16_xpm);
- }
-
- gdk_window_set_icon (win->window, NULL, icon_pmap, icon_mask);
-#endif
-}
-
-/* List of all GtkScrolledWindows, so we can globally set the scrollbar
- placement of all of them. */
-static GList *scrolled_windows;
-
-static void setup_scrolled_window(GtkWidget *scrollw);
-static void forget_scrolled_window(GtkWidget *scrollw, gpointer data);
-static void set_scrollbar_placement_scrollw(GtkWidget *scrollw);
-
-/* Create a GtkScrolledWindow, set its scrollbar placement appropriately,
- and remember it. */
-GtkWidget *
-scrolled_window_new(GtkAdjustment *hadjustment, GtkAdjustment *vadjustment)
-{
- GtkWidget *scrollw;
-
- scrollw = gtk_scrolled_window_new(hadjustment, vadjustment);
- setup_scrolled_window(scrollw);
- return scrollw;
-}
-
-/* Set a GtkScrolledWindow's scrollbar placement and add it to the list
- of GtkScrolledWindows. */
-static void
-setup_scrolled_window(GtkWidget *scrollw)
-{
- set_scrollbar_placement_scrollw(scrollw);
-
- scrolled_windows = g_list_append(scrolled_windows, scrollw);
-
- /* Catch the "destroy" event on the widget, so that we remove it from
- the list when it's destroyed. */
- g_signal_connect(G_OBJECT(scrollw), "destroy",
- G_CALLBACK(forget_scrolled_window), NULL);
-}
-
-/* Remove a GtkScrolledWindow from the list of GtkScrolledWindows. */
-static void
-forget_scrolled_window(GtkWidget *scrollw, gpointer data _U_)
-{
- scrolled_windows = g_list_remove(scrolled_windows, scrollw);
-}
-
-/* Set the scrollbar placement of a GtkScrolledWindow based upon user
- preference. */
-static void
-set_scrollbar_placement_scrollw(GtkWidget *scrollw)
-{
- if (prefs.gui_scrollbar_on_right) {
- gtk_scrolled_window_set_placement(GTK_SCROLLED_WINDOW(scrollw),
- GTK_CORNER_TOP_LEFT);
- } else {
- gtk_scrolled_window_set_placement(GTK_SCROLLED_WINDOW(scrollw),
- GTK_CORNER_TOP_RIGHT);
- }
-}
-
-static void
-set_scrollbar_placement_cb(gpointer data, gpointer user_data _U_)
-{
- set_scrollbar_placement_scrollw((GtkWidget *)data);
-}
-
-/* Set the scrollbar placement of all GtkScrolledWindows based on
- user preference. */
-void
-set_scrollbar_placement_all(void)
-{
- g_list_foreach(scrolled_windows, set_scrollbar_placement_cb, NULL);
-}
-
-/* List of all GtkTreeViews, so we can globally set the alternating
- * colors style of all of them. */
-static GList *tree_views;
-
-static void setup_tree_view(GtkWidget *tree_view);
-static void forget_tree_view(GtkWidget *tree_view, gpointer data);
-static void set_tree_view_styles(GtkWidget *tree_view);
-
-/* Create a GtkTreeView, give it the right styles, and remember it. */
-GtkWidget *
-tree_view_new(GtkTreeModel *model)
-{
- GtkWidget *tree;
-
- tree = gtk_tree_view_new_with_model(model);
- setup_tree_view(tree);
- return tree;
-}
-
-/* Set a GtkTreeView's styles and add it to the list of GtkTreeViews */
-static void
-setup_tree_view(GtkWidget *tree_view)
-{
- set_tree_view_styles(tree_view);
-
- tree_views = g_list_append(tree_views, tree_view);
-
- /* Catch the "destroy" event on the widget, so that we remove it from
- the list when it's destroyed. */
- g_signal_connect(G_OBJECT(tree_view), "destroy",
- G_CALLBACK(forget_tree_view), NULL);
-}
-
-/* Remove a GtkTreeView from the list of GtkTreeViews. */
-static void
-forget_tree_view(GtkWidget *tree_view, gpointer data _U_)
-{
- tree_views = g_list_remove(tree_views, tree_view);
-}
-
-/* Set the styles of a GtkCTree based upon user preferences. */
-static void
-set_tree_view_styles(GtkWidget *tree_view)
-{
- g_assert(prefs.gui_altern_colors >= 0 &&
- prefs.gui_altern_colors <= 1);
- gtk_tree_view_set_rules_hint(GTK_TREE_VIEW(tree_view),
- prefs.gui_altern_colors);
-}
-
-static void
-set_tree_view_styles_cb(gpointer data, gpointer user_data _U_)
-{
- set_tree_view_styles((GtkWidget *)data);
-}
-
-/* Set the styles of all GtkTreeViews based upon style values. */
-void
-set_tree_view_styles_all(void)
-{
- g_list_foreach(tree_views, set_tree_view_styles_cb, NULL);
-}