diff src/native-gtk-toolbar.c @ 5495:1f0b15040456

Merge.
author Aidan Kehoe <kehoea@parhasard.net>
date Sun, 01 May 2011 18:44:03 +0100
parents 308d34e9f07d
children
line wrap: on
line diff
--- a/src/native-gtk-toolbar.c	Sat Feb 20 06:03:00 2010 -0600
+++ b/src/native-gtk-toolbar.c	Sun May 01 18:44:03 2011 +0100
@@ -1,12 +1,13 @@
 /* toolbar implementation -- GTK interface.
    Copyright (C) 2000 Aaron Lehmann
+   Copyright (C) 2010 Ben Wing.
 
 This file is part of XEmacs.
 
-XEmacs is free software; you can redistribute it and/or modify it
+XEmacs 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, or (at your option) any
-later version.
+Free Software Foundation, either version 3 of the License, or (at your
+option) any later version.
 
 XEmacs is distributed in the hope that it will be useful, but WITHOUT
 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
@@ -14,9 +15,7 @@
 for more details.
 
 You should have received a copy of the GNU General Public License
-along with XEmacs; see the file COPYING.  If not, write to
-the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-Boston, MA 02111-1307, USA.  */
+along with XEmacs.  If not, see <http://www.gnu.org/licenses/>. */
 
 /* Synched up with: Not in FSF. */
 
@@ -25,36 +24,15 @@
 
 #include "console-gtk.h"
 #include "glyphs-gtk.h"
-#include "objects-gtk.h"
+#include "fontcolor-gtk.h"
 
 #include "faces.h"
 #include "frame.h"
 #include "toolbar.h"
 #include "window.h"
 
-#define SET_TOOLBAR_WAS_VISIBLE_FLAG(frame, pos, flag)			\
-  do {									\
-    switch (pos)							\
-      {									\
-      case TOP_TOOLBAR:							\
-	(frame)->top_toolbar_was_visible = flag;			\
-	break;								\
-      case BOTTOM_TOOLBAR:						\
-	(frame)->bottom_toolbar_was_visible = flag;			\
-	break;								\
-      case LEFT_TOOLBAR:						\
-	(frame)->left_toolbar_was_visible = flag;			\
-	break;								\
-      case RIGHT_TOOLBAR:						\
-	(frame)->right_toolbar_was_visible = flag;			\
-	break;								\
-      default:								\
-	ABORT ();							\
-      }									\
-  } while (0)
-
 static void
-gtk_clear_toolbar (struct frame *f, enum toolbar_pos pos);
+gtk_clear_toolbar (struct frame *f, enum edge_pos pos);
 
 static void
 gtk_toolbar_callback (GtkWidget *UNUSED (w), gpointer user_data)
@@ -66,7 +44,7 @@
 
 
 static void
-gtk_output_toolbar (struct frame *f, enum toolbar_pos pos)
+gtk_output_toolbar (struct frame *f, enum edge_pos pos)
 {
   GtkWidget *toolbar;
   Lisp_Object button, window, glyph, instance;
@@ -114,7 +92,7 @@
   {
     gtk_clear_toolbar (f, pos);
     FRAME_GTK_TOOLBAR_WIDGET (f)[pos] = toolbar =
-      gtk_toolbar_new (((pos == TOP_TOOLBAR) || (pos == BOTTOM_TOOLBAR)) ?
+      gtk_toolbar_new (((pos == TOP_EDGE) || (pos == BOTTOM_EDGE)) ?
 		       GTK_ORIENTATION_HORIZONTAL : GTK_ORIENTATION_VERTICAL,
 		       GTK_TOOLBAR_BOTH);
   }
@@ -193,7 +171,7 @@
 }
 
 static void
-gtk_clear_toolbar (struct frame *f, enum toolbar_pos pos)
+gtk_clear_toolbar (struct frame *f, enum edge_pos pos)
 {
   FRAME_GTK_TOOLBAR_CHECKSUM (f, pos) = 0;
   SET_TOOLBAR_WAS_VISIBLE_FLAG (f, pos, 0);
@@ -204,25 +182,15 @@
 static void
 gtk_output_frame_toolbars (struct frame *f)
 {
-  if (FRAME_REAL_TOP_TOOLBAR_VISIBLE (f))
-    gtk_output_toolbar (f, TOP_TOOLBAR);
-  else if (f->top_toolbar_was_visible)
-    gtk_clear_toolbar (f, TOP_TOOLBAR);
-
-  if (FRAME_REAL_BOTTOM_TOOLBAR_VISIBLE (f))
-    gtk_output_toolbar (f, BOTTOM_TOOLBAR);
-  else if (f->bottom_toolbar_was_visible)
-    gtk_clear_toolbar (f, LEFT_TOOLBAR);
+  enum edge_pos pos;
 
-  if (FRAME_REAL_LEFT_TOOLBAR_VISIBLE (f))
-    gtk_output_toolbar (f, LEFT_TOOLBAR);
-  else if (f->left_toolbar_was_visible)
-    gtk_clear_toolbar (f, LEFT_TOOLBAR);
-
-  if (FRAME_REAL_RIGHT_TOOLBAR_VISIBLE (f))
-    gtk_output_toolbar (f, RIGHT_TOOLBAR);
-  else if (f->right_toolbar_was_visible)
-    gtk_clear_toolbar (f, RIGHT_TOOLBAR);
+  EDGE_POS_LOOP (pos)
+    {
+      if (FRAME_REAL_TOOLBAR_VISIBLE (f, pos))
+	gtk_output_toolbar (f, pos);
+      else if (f->toolbar_was_visible[pos])
+	gtk_clear_toolbar (f, pos);
+    }
 }
 
 static void