]> de.git.xonotic.org Git - xonotic/netradiant.git/blobdiff - plugins/surface_heretic2/surfaceflagsdialog_heretic2.cpp
apply misc fixes from Markus Fischer and Rambetter
[xonotic/netradiant.git] / plugins / surface_heretic2 / surfaceflagsdialog_heretic2.cpp
index d56eaa3c467baf867cb86762db5d4fc311b72055..ce7b6b4b195ce6aaa276f7c13f2649a837a49866 100644 (file)
-/*\r
-Copyright (C) 1999-2007 id Software, Inc. and contributors.\r
-For a list of contributors, see the accompanying CONTRIBUTORS file.\r
-\r
-This file is part of GtkRadiant.\r
-\r
-GtkRadiant is free software; you can redistribute it and/or modify\r
-it under the terms of the GNU General Public License as published by\r
-the Free Software Foundation; either version 2 of the License, or\r
-(at your option) any later version.\r
-\r
-GtkRadiant is distributed in the hope that it will be useful,\r
-but WITHOUT ANY WARRANTY; without even the implied warranty of\r
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
-GNU General Public License for more details.\r
-\r
-You should have received a copy of the GNU General Public License\r
-along with GtkRadiant; if not, write to the Free Software\r
-Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA\r
-*/\r
-\r
-#include <gtk/gtk.h>\r
-#include <gdk/gdkkeysyms.h>\r
-\r
-#include "surfdlg_plugin.h"\r
-\r
-#include "surfaceflagsdialog_heretic2.h"\r
-\r
-  GtkWidget *surface_lightbutton;\r
-  GtkWidget *surface_slickbutton;\r
-  GtkWidget *surface_skybutton;\r
-  GtkWidget *surface_warpbutton;\r
-  GtkWidget *surface_trans33button;\r
-  GtkWidget *surface_trans66button;\r
-  GtkWidget *surface_flowingbutton;\r
-  GtkWidget *surface_nodrawbutton;\r
-  GtkWidget *surface_tallwallbutton;\r
-  GtkWidget *surface_alphatexbutton;\r
-  GtkWidget *surface_animspeedbutton;\r
-  GtkWidget *surface_undulatebutton;\r
-\r
-  GtkWidget *surf_gravel_radiobutton;\r
-  GSList *surf_gravel_radiobutton_group = NULL;\r
-  GtkWidget *surf_metal_radiobutton;\r
-  GtkWidget *surf_stone_radiobutton;\r
-  GtkWidget *surf_wood_radiobutton;\r
-\r
-  GtkWidget *surf_value_entry;\r
-\r
-  GtkWidget *notebook1;\r
-\r
-  GtkWidget *content_solidbutton;\r
-  GtkWidget *content_windowbutton;\r
-  GtkWidget *content_illusbutton;\r
-  GtkWidget *content_lavabutton;\r
-  GtkWidget *content_slimebutton;\r
-  GtkWidget *content_waterbutton;\r
-  GtkWidget *content_mistbutton;\r
-  GtkWidget *content_areaportalbutton;\r
-  GtkWidget *content_playerclipbutton;\r
-  GtkWidget *content_monsterclipbutton;\r
-  GtkWidget *content_current0button;\r
-  GtkWidget *content_current90button;\r
-  GtkWidget *content_current180button;\r
-  GtkWidget *content_current270button;\r
-  GtkWidget *content_currentUPbutton;\r
-  GtkWidget *content_currentDOWNbutton;\r
-  GtkWidget *content_originbutton;\r
-  GtkWidget *content_detailbutton;\r
-  GtkWidget *content_ladderbutton;\r
-  GtkWidget *content_camnoblockbutton;\r
-\r
-\r
-  gboolean setup_buttons = TRUE;\r
-\r
-  int working_surface_flags;\r
-  int surface_mask;\r
-  int working_content_flags;\r
-  int content_mask;\r
-  int working_value;\r
-  gboolean surface_material_inconsistant = FALSE;\r
-\r
-inline void set_inconsistent(GtkWidget *toggle_button)\r
-{\r
-  gtk_toggle_button_set_inconsistent(GTK_TOGGLE_BUTTON (toggle_button), TRUE);\r
-}\r
-\r
-inline void clear_inconsistent(GtkWidget *toggle_button)\r
-{\r
-  if ( gtk_toggle_button_get_inconsistent(GTK_TOGGLE_BUTTON (toggle_button)) )\r
-  {\r
-    gtk_toggle_button_set_inconsistent(GTK_TOGGLE_BUTTON (toggle_button), FALSE);\r
-  }\r
-\r
-}\r
-\r
-void clear_all_inconsistent(void)\r
-{\r
-  clear_inconsistent( surface_lightbutton );\r
-  clear_inconsistent( surface_slickbutton );\r
-  clear_inconsistent( surface_skybutton );\r
-  clear_inconsistent( surface_warpbutton );\r
-  clear_inconsistent( surface_trans33button );\r
-  clear_inconsistent( surface_trans66button );\r
-  clear_inconsistent( surface_flowingbutton );\r
-  clear_inconsistent( surface_nodrawbutton );\r
-  clear_inconsistent( surface_tallwallbutton );\r
-  clear_inconsistent( surface_alphatexbutton );\r
-  clear_inconsistent( surface_animspeedbutton );\r
-  clear_inconsistent( surface_undulatebutton );\r
-\r
-  clear_inconsistent( surf_gravel_radiobutton );\r
-  clear_inconsistent( surf_metal_radiobutton );\r
-  clear_inconsistent( surf_stone_radiobutton );\r
-  clear_inconsistent( surf_wood_radiobutton );\r
-\r
-  clear_inconsistent( content_solidbutton );\r
-  clear_inconsistent( content_windowbutton );\r
-  clear_inconsistent( content_illusbutton );\r
-  clear_inconsistent( content_lavabutton );\r
-  clear_inconsistent( content_slimebutton );\r
-  clear_inconsistent( content_waterbutton );\r
-  clear_inconsistent( content_mistbutton );\r
-  clear_inconsistent( content_areaportalbutton );\r
-  clear_inconsistent( content_playerclipbutton );\r
-  clear_inconsistent( content_monsterclipbutton );\r
-  clear_inconsistent( content_current0button );\r
-  clear_inconsistent( content_current90button );\r
-  clear_inconsistent( content_current180button );\r
-  clear_inconsistent( content_current270button );\r
-  clear_inconsistent( content_currentUPbutton );\r
-  clear_inconsistent( content_currentDOWNbutton );\r
-  clear_inconsistent( content_originbutton );\r
-  clear_inconsistent( content_detailbutton );\r
-  clear_inconsistent( content_ladderbutton );\r
-  clear_inconsistent( content_camnoblockbutton );\r
-}\r
-\r
-void clear_all_buttons_and_values()\r
-{\r
-  gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON( surface_lightbutton ), FALSE);\r
-  gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON( surface_slickbutton ), FALSE);\r
-  gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON( surface_skybutton ), FALSE);\r
-  gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON( surface_warpbutton ), FALSE);\r
-  gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON( surface_trans33button ), FALSE);\r
-  gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON( surface_trans66button ), FALSE);\r
-  gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON( surface_flowingbutton ), FALSE);\r
-  gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON( surface_nodrawbutton ), FALSE);\r
-  gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON( surface_tallwallbutton ), FALSE);\r
-  gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON( surface_alphatexbutton ), FALSE);\r
-  gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON( surface_animspeedbutton ), FALSE);\r
-  gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON( surface_undulatebutton ), FALSE);\r
-\r
-//  surface_material_inconsistant = TRUE;\r
-\r
-  gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON ( surf_gravel_radiobutton ), FALSE);\r
-  set_inconsistent(surf_gravel_radiobutton);\r
-\r
-  gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON ( surf_metal_radiobutton ), FALSE);\r
-  set_inconsistent(surf_metal_radiobutton);\r
-\r
-  gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON ( surf_stone_radiobutton ), FALSE);\r
-  set_inconsistent(surf_stone_radiobutton);\r
-\r
-  gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON ( surf_wood_radiobutton ), FALSE);\r
-  set_inconsistent(surf_wood_radiobutton);\r
-\r
-  gtk_entry_set_text( (GtkEntry *)surf_value_entry, "");\r
-\r
-  gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON( content_solidbutton ), FALSE);\r
-  gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON( content_windowbutton ), FALSE);\r
-  gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON( content_illusbutton ), FALSE);\r
-  gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON( content_lavabutton ), FALSE);\r
-  gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON( content_slimebutton ), FALSE);\r
-  gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON( content_waterbutton ), FALSE);\r
-  gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON( content_mistbutton ), FALSE);\r
-  gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON( content_areaportalbutton ), FALSE);\r
-  gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON( content_playerclipbutton ), FALSE);\r
-  gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON( content_monsterclipbutton ), FALSE);\r
-  gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON( content_current0button ), FALSE);\r
-  gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON( content_current90button ), FALSE);\r
-  gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON( content_current180button ), FALSE);\r
-  gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON( content_current270button ), FALSE);\r
-  gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON( content_currentUPbutton ), FALSE);\r
-  gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON( content_currentDOWNbutton ), FALSE);\r
-  gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON( content_originbutton ), FALSE);\r
-  gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON( content_detailbutton ), FALSE);\r
-  gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON( content_ladderbutton ), FALSE);\r
-  gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON( content_camnoblockbutton ), FALSE);\r
-\r
-}\r
-\r
-void SetFlagButtons_Heretic2(texdef_to_face_t *texdef_face_list, bool b_isListEmpty)\r
-{\r
-  int i;\r
-  int contents = 0;\r
-  int flags = 0;\r
-  int value = 0;\r
-  int diff_contents = 0;\r
-  int diff_flags = 0;\r
-  gboolean diff_value = FALSE;\r
-  char tex_buff[11];\r
-  texdef_t* tmp_texdef;\r
-  texdef_to_face_t* temp_texdef_face_list;\r
-  gboolean surface_which_material_inconsistant[4];\r
-  int surface_iterator;\r
-\r
-  setup_buttons = TRUE;\r
-  working_surface_flags = 0;\r
-  surface_mask = 0;\r
-  working_content_flags = 0;\r
-  content_mask = 0;\r
-  working_value = 0;\r
-  surface_material_inconsistant = FALSE;\r
-  surface_which_material_inconsistant[0] = FALSE;\r
-  surface_which_material_inconsistant[1] = FALSE;\r
-  surface_which_material_inconsistant[2] = FALSE;\r
-  surface_which_material_inconsistant[3] = FALSE;\r
-\r
-  if(!b_isListEmpty)\r
-  {\r
-    tmp_texdef = &texdef_face_list->texdef;\r
-    contents = tmp_texdef->contents;\r
-    flags = tmp_texdef->flags;\r
-    value = tmp_texdef->value;\r
-\r
-    surface_iterator = (tmp_texdef->flags & ~HERETIC2_SURF_MATERIAL_MASK) >> 24;  // Inconsistant Material?\r
-    surface_which_material_inconsistant[surface_iterator] = TRUE;\r
-\r
-    for (temp_texdef_face_list = texdef_face_list->next; temp_texdef_face_list; temp_texdef_face_list = temp_texdef_face_list->next)\r
-    {\r
-      tmp_texdef = &temp_texdef_face_list->texdef;\r
-      diff_contents |= contents ^ tmp_texdef->contents;  // Figure out which buttons are inconsistent\r
-      diff_flags |= flags ^ tmp_texdef->flags;\r
-      if (tmp_texdef->value != value)\r
-        diff_value = TRUE;\r
-\r
-      surface_iterator = (tmp_texdef->flags & ~HERETIC2_SURF_MATERIAL_MASK) >> 24;  // Inconsistant Material?\r
-      surface_which_material_inconsistant[surface_iterator] = TRUE;\r
-\r
-      Sys_Printf("Diff_Flags: %d\t Surf_Iter: %d\n",diff_flags, surface_iterator);\r
-\r
-    }\r
-  }\r
-\r
-\r
-  clear_all_inconsistent();\r
-\r
-  // If no faces/brushes are selected, clear everything and bail\r
-  if(b_isListEmpty)\r
-  {\r
-    clear_all_buttons_and_values();\r
-    setup_buttons = FALSE;\r
-    return;\r
-  }\r
-\r
-  // Set surface buttons to reflect brush/face flags, contents, and values\r
-  if(diff_flags & HERETIC2_SURF_LIGHT)\r
-    set_inconsistent(surface_lightbutton);\r
-  else\r
-    gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON (surface_lightbutton), (flags & HERETIC2_SURF_LIGHT));\r
-\r
-  if(diff_flags & HERETIC2_SURF_SLICK)\r
-    set_inconsistent(surface_slickbutton);\r
-  else if(flags & HERETIC2_SURF_SLICK)\r
-       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON ( surface_slickbutton ), TRUE);\r
-  else\r
-       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON ( surface_slickbutton ), FALSE);\r
-\r
-  if(diff_flags & HERETIC2_SURF_SKY)\r
-    set_inconsistent(surface_skybutton);\r
-  else if(flags & HERETIC2_SURF_SKY)\r
-       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON ( surface_skybutton ), TRUE);\r
-  else\r
-       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON ( surface_skybutton ), FALSE);\r
-\r
-  if(diff_flags & HERETIC2_SURF_WARP)\r
-    set_inconsistent(surface_warpbutton);\r
-  else if(flags & HERETIC2_SURF_WARP)\r
-       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON ( surface_warpbutton ), TRUE);\r
-  else\r
-       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON ( surface_warpbutton ), FALSE);\r
-\r
-  if(diff_flags & HERETIC2_SURF_TRANS33)\r
-    set_inconsistent(surface_trans33button);\r
-  else if(flags & HERETIC2_SURF_TRANS33)\r
-       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON ( surface_trans33button ), TRUE);\r
-  else\r
-       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON ( surface_trans33button ), FALSE);\r
-\r
-  if(diff_flags & HERETIC2_SURF_TRANS66)\r
-    set_inconsistent(surface_trans66button);\r
-  else if(flags & HERETIC2_SURF_TRANS66)\r
-       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON ( surface_trans66button ), TRUE);\r
-  else\r
-       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON ( surface_trans66button ), FALSE);\r
-\r
-  if(diff_flags & HERETIC2_SURF_FLOWING)\r
-    set_inconsistent(surface_flowingbutton);\r
-  else if(flags & HERETIC2_SURF_FLOWING)\r
-       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON ( surface_flowingbutton ), TRUE);\r
-  else\r
-       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON ( surface_flowingbutton ), FALSE);\r
-\r
-  if(diff_flags & HERETIC2_SURF_NODRAW)\r
-    set_inconsistent(surface_nodrawbutton);\r
-  else if(flags & HERETIC2_SURF_NODRAW)\r
-       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON ( surface_nodrawbutton ), TRUE);\r
-  else\r
-       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON ( surface_nodrawbutton ), FALSE);\r
-\r
-  if(diff_flags & HERETIC2_SURF_TALL_WALL)\r
-    set_inconsistent(surface_tallwallbutton);\r
-  else if(flags & HERETIC2_SURF_TALL_WALL)\r
-       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON ( surface_tallwallbutton ), TRUE);\r
-  else\r
-       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON ( surface_tallwallbutton ), FALSE);\r
-\r
-  if(diff_flags & HERETIC2_SURF_ALPHA_TEXTURE)\r
-    set_inconsistent(surface_alphatexbutton);\r
-  else if(flags & HERETIC2_SURF_ALPHA_TEXTURE)\r
-       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON ( surface_alphatexbutton ), TRUE);\r
-  else\r
-       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON ( surface_alphatexbutton ), FALSE);\r
-\r
-  if(diff_flags & HERETIC2_SURF_ANIMSPEED)\r
-    set_inconsistent(surface_animspeedbutton);\r
-  else if(flags & HERETIC2_SURF_ANIMSPEED)\r
-       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON ( surface_animspeedbutton ), TRUE);\r
-  else\r
-       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON ( surface_animspeedbutton ), FALSE);\r
-\r
-  if(diff_flags & HERETIC2_SURF_UNDULATE)\r
-    set_inconsistent(surface_undulatebutton);\r
-  else if(flags & HERETIC2_SURF_UNDULATE)\r
-       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON ( surface_undulatebutton ), TRUE);\r
-  else\r
-       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON ( surface_undulatebutton ), FALSE);\r
-\r
-  if(diff_flags & ~HERETIC2_SURF_MATERIAL_MASK)\r
-  {\r
-    Sys_Printf("--> %d\n", (diff_flags & ~HERETIC2_SURF_MATERIAL_MASK) );\r
-    Sys_Printf("%d\t%d\t%d\t%d\n", surface_which_material_inconsistant[0], surface_which_material_inconsistant[1], surface_which_material_inconsistant[2], surface_which_material_inconsistant[3]);\r
-\r
-    if (surface_which_material_inconsistant[0])\r
-    {\r
-      gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON ( surf_gravel_radiobutton ), FALSE);\r
-      surface_material_inconsistant = TRUE;\r
-      set_inconsistent(surf_gravel_radiobutton);\r
-    }\r
-    if (surface_which_material_inconsistant[1])\r
-    {\r
-      //if (!surface_material_inconsistant)\r
-      //{\r
-        gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON ( surf_metal_radiobutton ), FALSE);\r
-        surface_material_inconsistant = TRUE;\r
-      //}\r
-      set_inconsistent(surf_metal_radiobutton);\r
-    }\r
-    if (surface_which_material_inconsistant[2])\r
-    {\r
-      //if (!surface_material_inconsistant)\r
-      //{\r
-        gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON ( surf_stone_radiobutton ), FALSE);\r
-        surface_material_inconsistant = TRUE;\r
-      //}\r
-      set_inconsistent(surf_stone_radiobutton);\r
-    }\r
-    if (surface_which_material_inconsistant[3])\r
-    {\r
-      //if (!surface_material_inconsistant)\r
-      //{\r
-        gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON ( surf_wood_radiobutton ), FALSE);\r
-        surface_material_inconsistant = TRUE;\r
-      //}\r
-      set_inconsistent(surf_wood_radiobutton);\r
-    }\r
-  }\r
-  else\r
-  {\r
-    if(flags & ~HERETIC2_SURF_MATERIAL_MASK)\r
-    {\r
-      surface_iterator = (flags & ~HERETIC2_SURF_MATERIAL_MASK) >> 24;\r
-      if( surface_iterator == 1)\r
-        gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON ( surf_metal_radiobutton ), TRUE);\r
-      else if(surface_iterator == 2)\r
-        gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON ( surf_stone_radiobutton ), TRUE);\r
-      else if(surface_iterator == 3)\r
-        gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON ( surf_wood_radiobutton ), TRUE);\r
-    }\r
-    else\r
-    {\r
-      gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON ( surf_gravel_radiobutton ), TRUE);\r
-    }\r
-  }\r
-\r
-  // Set content buttons to reflect brush values\r
-  if(diff_contents & HERETIC2_CONTENTS_SOLID)\r
-    set_inconsistent(content_solidbutton);\r
-  else if(contents & HERETIC2_CONTENTS_SOLID)\r
-       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON ( content_solidbutton ), TRUE);\r
-  else\r
-       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON ( content_solidbutton ), FALSE);\r
-\r
-  if(diff_contents & HERETIC2_CONTENTS_WINDOW)\r
-    set_inconsistent(content_windowbutton);\r
-  else if(contents & HERETIC2_CONTENTS_WINDOW)\r
-       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON ( content_windowbutton ), TRUE);\r
-  else\r
-       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON ( content_windowbutton ), FALSE);\r
-\r
-  if(diff_contents & HERETIC2_CONTENTS_ILLUSIONARY)\r
-    set_inconsistent(content_illusbutton);\r
-  else if(contents & HERETIC2_CONTENTS_ILLUSIONARY)\r
-       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON ( content_illusbutton ), TRUE);\r
-  else\r
-       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON ( content_illusbutton ), FALSE);\r
-\r
-  if(diff_contents & HERETIC2_CONTENTS_LAVA)\r
-    set_inconsistent(content_lavabutton);\r
-  else if(contents & HERETIC2_CONTENTS_LAVA)\r
-       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON ( content_lavabutton ), TRUE);\r
-  else\r
-       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON ( content_lavabutton ), FALSE);\r
-\r
-  if(diff_contents & HERETIC2_CONTENTS_SLIME)\r
-    set_inconsistent(content_slimebutton);\r
-  else if(contents & HERETIC2_CONTENTS_SLIME)\r
-       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON ( content_slimebutton ), TRUE);\r
-  else\r
-       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON ( content_slimebutton ), FALSE);\r
-\r
-  if(diff_contents & HERETIC2_CONTENTS_WATER)\r
-    set_inconsistent(content_waterbutton);\r
-  else if(contents & HERETIC2_CONTENTS_WATER)\r
-       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON ( content_waterbutton ), TRUE);\r
-  else\r
-       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON ( content_waterbutton ), FALSE);\r
-\r
-  if(diff_contents & HERETIC2_CONTENTS_MIST)\r
-    set_inconsistent(content_mistbutton);\r
-  else if(contents & HERETIC2_CONTENTS_MIST)\r
-       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON ( content_mistbutton ), TRUE);\r
-  else\r
-       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON ( content_mistbutton ), FALSE);\r
-\r
-  if(diff_contents & HERETIC2_CONTENTS_AREAPORTAL)\r
-    set_inconsistent(content_areaportalbutton);\r
-  else if(contents & HERETIC2_CONTENTS_AREAPORTAL)\r
-       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON ( content_areaportalbutton ), TRUE);\r
-  else\r
-       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON ( content_areaportalbutton ), FALSE);\r
-\r
-  if(diff_contents & HERETIC2_CONTENTS_PLAYERCLIP)\r
-    set_inconsistent(content_playerclipbutton);\r
-  else if(contents & HERETIC2_CONTENTS_PLAYERCLIP)\r
-       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON ( content_playerclipbutton ), TRUE);\r
-  else\r
-       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON ( content_playerclipbutton ), FALSE);\r
-\r
-  if(diff_contents & HERETIC2_CONTENTS_MONSTERCLIP)\r
-    set_inconsistent(content_monsterclipbutton);\r
-  else if(contents & HERETIC2_CONTENTS_MONSTERCLIP)\r
-       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON ( content_monsterclipbutton ), TRUE);\r
-  else\r
-       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON ( content_monsterclipbutton ), FALSE);\r
-\r
-  if(diff_contents & HERETIC2_CONTENTS_CURRENT_0)\r
-    set_inconsistent(content_current0button);\r
-  else if(contents & HERETIC2_CONTENTS_CURRENT_0)\r
-       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON ( content_current0button ), TRUE);\r
-  else\r
-       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON ( content_current0button ), FALSE);\r
-\r
-  if(diff_contents & HERETIC2_CONTENTS_CURRENT_90)\r
-    set_inconsistent(content_current90button);\r
-  else if(contents & HERETIC2_CONTENTS_CURRENT_90)\r
-       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON ( content_current90button ), TRUE);\r
-  else\r
-       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON ( content_current90button ), FALSE);\r
-\r
-  if(diff_contents & HERETIC2_CONTENTS_CURRENT_180)\r
-    set_inconsistent(content_current180button);\r
-  else if(contents & HERETIC2_CONTENTS_CURRENT_180)\r
-       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON ( content_current180button ), TRUE);\r
-  else\r
-       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON ( content_current180button ), FALSE);\r
-\r
-  if(diff_contents & HERETIC2_CONTENTS_CURRENT_270)\r
-    set_inconsistent(content_current270button);\r
-  else if(contents & HERETIC2_CONTENTS_CURRENT_270)\r
-       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON ( content_current270button ), TRUE);\r
-  else\r
-       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON ( content_current270button ), FALSE);\r
-\r
-  if(diff_contents & HERETIC2_CONTENTS_CURRENT_UP)\r
-    set_inconsistent(content_currentUPbutton);\r
-  else if(contents & HERETIC2_CONTENTS_CURRENT_UP)\r
-       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON ( content_currentUPbutton ), TRUE);\r
-  else\r
-       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON ( content_currentUPbutton ), FALSE);\r
-\r
-  if(diff_contents & HERETIC2_CONTENTS_CURRENT_DOWN)\r
-    set_inconsistent(content_currentDOWNbutton);\r
-  else if(contents & HERETIC2_CONTENTS_CURRENT_DOWN)\r
-       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON ( content_currentDOWNbutton ), TRUE);\r
-  else\r
-       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON ( content_currentDOWNbutton ), FALSE);\r
-\r
-  if(diff_contents & HERETIC2_CONTENTS_ORIGIN)\r
-    set_inconsistent(content_originbutton);\r
-  else if(contents & HERETIC2_CONTENTS_ORIGIN)\r
-       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON ( content_originbutton ), TRUE);\r
-  else\r
-       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON ( content_originbutton ), FALSE);\r
-\r
-  if(diff_contents & HERETIC2_CONTENTS_DETAIL)\r
-    set_inconsistent(content_detailbutton);\r
-  else if(contents & HERETIC2_CONTENTS_DETAIL)\r
-       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON ( content_detailbutton ), TRUE);\r
-  else\r
-       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON ( content_detailbutton ), FALSE);\r
-\r
-  if(diff_contents & HERETIC2_CONTENTS_LADDER)\r
-    set_inconsistent(content_ladderbutton);\r
-  else if(contents & HERETIC2_CONTENTS_LADDER)\r
-       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON ( content_ladderbutton ), TRUE);\r
-  else\r
-       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON ( content_ladderbutton ), FALSE);\r
-\r
-  if(diff_contents & HERETIC2_CONTENTS_CAMERANOBLOCK)\r
-    set_inconsistent(content_camnoblockbutton);\r
-  else if(contents & HERETIC2_CONTENTS_CAMERANOBLOCK)\r
-       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON ( content_camnoblockbutton ), TRUE);\r
-  else\r
-       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON ( content_camnoblockbutton ), FALSE);\r
-\r
-  // Set Value\r
-  if(diff_value)\r
-    gtk_entry_set_text( (GtkEntry *)surf_value_entry, "");\r
-  else\r
-  {\r
-    working_value = value;\r
-    sprintf( tex_buff, "%d", value);\r
-    gtk_entry_set_text( (GtkEntry *)surf_value_entry, tex_buff);\r
-  }\r
-\r
-  setup_buttons = FALSE;\r
-}\r
-\r
-void SetChangeInFlags_Face_Heretic2 (texdef_to_face_t *texdef_face_list)\r
-{\r
-  texdef_to_face_t *temp_texdef_face_list;\r
-  texdef_t *tmp_texdef;\r
-\r
-  for (temp_texdef_face_list = texdef_face_list; temp_texdef_face_list; temp_texdef_face_list = temp_texdef_face_list->next)\r
-  {\r
-    tmp_texdef = &temp_texdef_face_list->texdef;\r
-    tmp_texdef->flags = (tmp_texdef->flags & ~surface_mask) | working_surface_flags;\r
-    tmp_texdef->contents = (tmp_texdef->contents & ~content_mask) | working_content_flags;\r
-    tmp_texdef->value = working_value;\r
-    Sys_Printf("content_flag: %d     content_mask: %d\n",working_content_flags,content_mask);\r
-    Sys_Printf("content: %d\n",tmp_texdef->contents);\r
-  }\r
-}\r
-\r
-inline void change_surfaceflag (GtkWidget *togglebutton, int sur_flag) // For Material\r
-{\r
-  if (!setup_buttons) // If we're setting up the buttons, we really don't need to\r
-  {                   // set flags that are already set\r
-    if (surface_material_inconsistant)\r
-    {\r
-      clear_inconsistent( surf_gravel_radiobutton );\r
-      clear_inconsistent( surf_metal_radiobutton );\r
-      clear_inconsistent( surf_stone_radiobutton );\r
-      clear_inconsistent( surf_wood_radiobutton );\r
-    }\r
-    surface_mask |= ~HERETIC2_SURF_MATERIAL_MASK;\r
-    working_surface_flags = (working_surface_flags & HERETIC2_SURF_MATERIAL_MASK) | sur_flag;\r
-  }\r
-}\r
-\r
-inline void change_material (GtkWidget *togglebutton)\r
-{\r
-  if (!setup_buttons) // If we're setting up the buttons, we really don't need to\r
-  {                   // set flags that are already set\r
-    if (surface_material_inconsistant)\r
-    {\r
-      clear_inconsistent( surf_gravel_radiobutton );\r
-      clear_inconsistent( surf_metal_radiobutton );\r
-      clear_inconsistent( surf_stone_radiobutton );\r
-      clear_inconsistent( surf_wood_radiobutton );\r
-    }\r
-    if ( gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(surf_gravel_radiobutton))  )\r
-    {\r
-      surface_mask |= ~HERETIC2_SURF_MATERIAL_MASK;\r
-      working_surface_flags = (working_surface_flags & HERETIC2_SURF_MATERIAL_MASK) | HERETIC2_SURF_TYPE_GRAVEL;\r
-    }\r
-    else if ( gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(surf_metal_radiobutton)) )\r
-    {\r
-      surface_mask |= ~HERETIC2_SURF_MATERIAL_MASK;\r
-      working_surface_flags = (working_surface_flags & HERETIC2_SURF_MATERIAL_MASK) | HERETIC2_SURF_TYPE_METAL;\r
-    }\r
-    else if ( gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(surf_stone_radiobutton)) )\r
-    {\r
-      surface_mask |= ~HERETIC2_SURF_MATERIAL_MASK;\r
-      working_surface_flags = (working_surface_flags & HERETIC2_SURF_MATERIAL_MASK) | HERETIC2_SURF_TYPE_STONE;\r
-    }\r
-    else if ( gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(surf_wood_radiobutton)) )\r
-    {\r
-      surface_mask |= ~HERETIC2_SURF_MATERIAL_MASK;\r
-      working_surface_flags = (working_surface_flags & HERETIC2_SURF_MATERIAL_MASK) | HERETIC2_SURF_TYPE_WOOD;\r
-    }\r
-  }\r
-}\r
-\r
-inline void change_surfaceflag (GtkWidget *togglebutton, int sur_flag, gboolean change_flag_to)\r
-{\r
-\r
-  if (!setup_buttons) // If we're setting up the buttons, we really don't need to\r
-  {                   // set flags that are already set\r
-    if (gtk_toggle_button_get_inconsistent(GTK_TOGGLE_BUTTON (togglebutton))) // Clear out inconsistent, if set\r
-           clear_inconsistent(GTK_WIDGET (togglebutton));\r
-\r
-    surface_mask |= sur_flag;\r
-\r
-    if (change_flag_to)\r
-      working_surface_flags |= sur_flag;\r
-    else\r
-      working_surface_flags &= ~sur_flag;\r
-  }\r
-}\r
-\r
-inline void change_contentflag (GtkWidget *togglebutton, int content_flag, gboolean change_flag_to)\r
-{\r
-\r
-  if ( (!setup_buttons) )  // If we're setting up the buttons, we really don't need to\r
-  {                        // set flags that are already set\r
-\r
-    if (gtk_toggle_button_get_inconsistent(GTK_TOGGLE_BUTTON (togglebutton)))\r
-           clear_inconsistent(togglebutton);\r
-    //if (g_ptrSelectedFaces.GetSize() == 0)  // Only changing content flags on whole brushes, not faces.\r
-    //{\r
-      content_mask |= content_flag;\r
-\r
-    if (change_flag_to)\r
-      working_content_flags |= content_flag;\r
-    else\r
-      working_content_flags &= ~content_flag;\r
-    //}\r
-  }\r
-}\r
-\r
-// Surface Flags Callbacks\r
-void\r
-on_surface_lightbutton_toggled         (GtkToggleButton *togglebutton,\r
-                                        gpointer         user_data)\r
-{\r
-  change_surfaceflag(surface_lightbutton, HERETIC2_SURF_LIGHT, (GTK_TOGGLE_BUTTON (surface_lightbutton)->active));\r
-}\r
-\r
-\r
-void\r
-on_surface_slickbutton_toggled         (GtkToggleButton *togglebutton,\r
-                                        gpointer         user_data)\r
-{\r
-  change_surfaceflag(surface_slickbutton, HERETIC2_SURF_SLICK, (GTK_TOGGLE_BUTTON (surface_slickbutton)->active));\r
-}\r
-\r
-\r
-void\r
-on_surface_skybutton_toggled           (GtkToggleButton *togglebutton,\r
-                                        gpointer         user_data)\r
-{\r
-  change_surfaceflag(surface_skybutton, HERETIC2_SURF_SKY, (GTK_TOGGLE_BUTTON (surface_skybutton)->active));\r
-}\r
-\r
-\r
-void\r
-on_surface_warpbutton_toggled          (GtkToggleButton *togglebutton,\r
-                                        gpointer         user_data)\r
-{\r
-  change_surfaceflag(surface_warpbutton, HERETIC2_SURF_WARP, (GTK_TOGGLE_BUTTON (surface_warpbutton)->active));\r
-}\r
-\r
-\r
-void\r
-on_surface_trans33button_toggled       (GtkToggleButton *togglebutton,\r
-                                        gpointer         user_data)\r
-{\r
-  change_surfaceflag(surface_trans33button, HERETIC2_SURF_TRANS33, (GTK_TOGGLE_BUTTON (surface_trans33button)->active));\r
-}\r
-\r
-\r
-void\r
-on_surface_trans66button_toggled       (GtkToggleButton *togglebutton,\r
-                                        gpointer         user_data)\r
-{\r
-  change_surfaceflag(surface_trans66button, HERETIC2_SURF_TRANS66, (GTK_TOGGLE_BUTTON (surface_trans66button)->active));\r
-}\r
-\r
-\r
-void\r
-on_surface_flowingbutton_toggled       (GtkToggleButton *togglebutton,\r
-                                        gpointer         user_data)\r
-{\r
-  change_surfaceflag(surface_flowingbutton, HERETIC2_SURF_FLOWING, (GTK_TOGGLE_BUTTON (surface_flowingbutton)->active));\r
-}\r
-\r
-\r
-void\r
-on_surface_nodrawbutton_toggled        (GtkToggleButton *togglebutton,\r
-                                        gpointer         user_data)\r
-{\r
-  change_surfaceflag(surface_nodrawbutton, HERETIC2_SURF_NODRAW, (GTK_TOGGLE_BUTTON (surface_nodrawbutton)->active));\r
-}\r
-\r
-\r
-void\r
-on_surface_tallwallbutton_toggled      (GtkToggleButton *togglebutton,\r
-                                        gpointer         user_data)\r
-{\r
-  change_surfaceflag(surface_tallwallbutton, HERETIC2_SURF_TALL_WALL, (GTK_TOGGLE_BUTTON (surface_tallwallbutton)->active));\r
-}\r
-\r
-\r
-void\r
-on_surface_alphatexbutton_toggled      (GtkToggleButton *togglebutton,\r
-                                        gpointer         user_data)\r
-{\r
-  change_surfaceflag(surface_alphatexbutton, HERETIC2_SURF_ALPHA_TEXTURE, (GTK_TOGGLE_BUTTON (surface_alphatexbutton)->active));\r
-}\r
-\r
-\r
-void\r
-on_surface_animspeedbutton_toggled     (GtkToggleButton *togglebutton,\r
-                                        gpointer         user_data)\r
-{\r
-  change_surfaceflag(surface_animspeedbutton, HERETIC2_SURF_ANIMSPEED, (GTK_TOGGLE_BUTTON (surface_animspeedbutton)->active));\r
-}\r
-\r
-\r
-void\r
-on_surface_undulatebutton_toggled      (GtkToggleButton *togglebutton,\r
-                                        gpointer         user_data)\r
-{\r
-  change_surfaceflag(surface_undulatebutton, HERETIC2_SURF_UNDULATE, (GTK_TOGGLE_BUTTON (surface_undulatebutton)->active));\r
-}\r
-\r
-\r
-void\r
-on_surf_gravel_radiobutton_toggled     (GtkToggleButton *togglebutton,\r
-                                        gpointer         user_data)\r
-{\r
-  if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(surf_gravel_radiobutton)))\r
-    change_material(GTK_WIDGET(togglebutton));\r
-}\r
-\r
-void\r
-on_surf_metal_radiobutton_toggled     (GtkToggleButton *togglebutton,\r
-                                        gpointer         user_data)\r
-{\r
-  if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(surf_metal_radiobutton)))\r
-    change_material(GTK_WIDGET(togglebutton));\r
-}\r
-\r
-void\r
-on_surf_stone_radiobutton_toggled     (GtkToggleButton *togglebutton,\r
-                                        gpointer         user_data)\r
-{\r
-  if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(surf_stone_radiobutton)))\r
-    change_material(GTK_WIDGET(togglebutton));\r
-}\r
-\r
-void\r
-on_surf_wood_radiobutton_toggled     (GtkToggleButton *togglebutton,\r
-                                        gpointer         user_data)\r
-{\r
-  if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(surf_wood_radiobutton)))\r
-    change_material(GTK_WIDGET(togglebutton));\r
-}\r
-\r
-// Content Flags Callbacks\r
-void\r
-on_content_solidbutton_toggled         (GtkToggleButton *togglebutton,\r
-                                        gpointer         user_data)\r
-{\r
-  change_contentflag(content_solidbutton, HERETIC2_CONTENTS_SOLID, (GTK_TOGGLE_BUTTON (content_solidbutton)->active));\r
-}\r
-\r
-\r
-void\r
-on_content_windowbutton_toggled        (GtkToggleButton *togglebutton,\r
-                                        gpointer         user_data)\r
-{\r
-  change_contentflag(content_windowbutton, HERETIC2_CONTENTS_WINDOW, (GTK_TOGGLE_BUTTON (content_windowbutton)->active));\r
-}\r
-\r
-\r
-void\r
-on_content_illusbutton_toggled         (GtkToggleButton *togglebutton,\r
-                                        gpointer         user_data)\r
-{\r
-  change_contentflag(content_illusbutton, HERETIC2_CONTENTS_ILLUSIONARY, (GTK_TOGGLE_BUTTON (content_illusbutton)->active));\r
-}\r
-\r
-\r
-void\r
-on_content_lavabutton_toggled          (GtkToggleButton *togglebutton,\r
-                                        gpointer         user_data)\r
-{\r
-  change_contentflag(content_lavabutton, HERETIC2_CONTENTS_LAVA, (GTK_TOGGLE_BUTTON (content_lavabutton)->active));\r
-}\r
-\r
-\r
-void\r
-on_content_slimebutton_toggled         (GtkToggleButton *togglebutton,\r
-                                        gpointer         user_data)\r
-{\r
-  change_contentflag(content_slimebutton, HERETIC2_CONTENTS_SLIME, (GTK_TOGGLE_BUTTON (content_slimebutton)->active));\r
-}\r
-\r
-\r
-void\r
-on_content_waterbutton_toggled         (GtkToggleButton *togglebutton,\r
-                                        gpointer         user_data)\r
-{\r
-  change_contentflag(content_waterbutton, HERETIC2_CONTENTS_WATER, (GTK_TOGGLE_BUTTON (content_waterbutton)->active));\r
-}\r
-\r
-\r
-void\r
-on_content_mistbutton_toggled          (GtkToggleButton *togglebutton,\r
-                                        gpointer         user_data)\r
-{\r
-  change_contentflag(content_mistbutton, HERETIC2_CONTENTS_MIST, (GTK_TOGGLE_BUTTON (content_mistbutton)->active));\r
-}\r
-\r
-\r
-void\r
-on_content_areaportalbutton_toggled    (GtkToggleButton *togglebutton,\r
-                                        gpointer         user_data)\r
-{\r
-  change_contentflag(content_areaportalbutton, HERETIC2_CONTENTS_AREAPORTAL, (GTK_TOGGLE_BUTTON (content_areaportalbutton)->active));\r
-}\r
-\r
-\r
-void\r
-on_content_playerclipbutton_toggled    (GtkToggleButton *togglebutton,\r
-                                        gpointer         user_data)\r
-{\r
-  change_contentflag(content_playerclipbutton, HERETIC2_CONTENTS_PLAYERCLIP, (GTK_TOGGLE_BUTTON (content_playerclipbutton)->active));\r
-}\r
-\r
-\r
-void\r
-on_content_monsterclipbutton_toggled   (GtkToggleButton *togglebutton,\r
-                                        gpointer         user_data)\r
-{\r
-  change_contentflag(content_monsterclipbutton, HERETIC2_CONTENTS_MONSTERCLIP, (GTK_TOGGLE_BUTTON (content_monsterclipbutton)->active));\r
-}\r
-\r
-\r
-void\r
-on_content_current0button_toggled      (GtkToggleButton *togglebutton,\r
-                                        gpointer         user_data)\r
-{\r
-  change_contentflag(content_current0button, HERETIC2_CONTENTS_CURRENT_0, (GTK_TOGGLE_BUTTON (content_current0button)->active));\r
-}\r
-\r
-\r
-void\r
-on_content_current90button_toggled     (GtkToggleButton *togglebutton,\r
-                                        gpointer         user_data)\r
-{\r
-  change_contentflag(content_current90button, HERETIC2_CONTENTS_CURRENT_90, (GTK_TOGGLE_BUTTON (content_current90button)->active));\r
-}\r
-\r
-\r
-void\r
-on_content_current180button_toggled    (GtkToggleButton *togglebutton,\r
-                                        gpointer         user_data)\r
-{\r
-  change_contentflag(content_current180button, HERETIC2_CONTENTS_CURRENT_180, (GTK_TOGGLE_BUTTON (content_current180button)->active));\r
-}\r
-\r
-\r
-void\r
-on_content_current270button_toggled    (GtkToggleButton *togglebutton,\r
-                                        gpointer         user_data)\r
-{\r
-  change_contentflag(content_current270button, HERETIC2_CONTENTS_CURRENT_270, (GTK_TOGGLE_BUTTON (content_current270button)->active));\r
-}\r
-\r
-\r
-void\r
-on_content_currentUPbutton_toggled     (GtkToggleButton *togglebutton,\r
-                                        gpointer         user_data)\r
-{\r
-  change_contentflag(content_currentUPbutton, HERETIC2_CONTENTS_CURRENT_UP, (GTK_TOGGLE_BUTTON (content_currentUPbutton)->active));\r
-}\r
-\r
-\r
-void\r
-on_content_currentDOWNbutton_toggled   (GtkToggleButton *togglebutton,\r
-                                        gpointer         user_data)\r
-{\r
-  change_contentflag(content_currentDOWNbutton, HERETIC2_CONTENTS_CURRENT_DOWN, (GTK_TOGGLE_BUTTON (content_currentDOWNbutton)->active));\r
-}\r
-\r
-\r
-void\r
-on_content_originbutton_toggled        (GtkToggleButton *togglebutton,\r
-                                        gpointer         user_data)\r
-{\r
-  change_contentflag(content_originbutton, HERETIC2_CONTENTS_ORIGIN, (GTK_TOGGLE_BUTTON (content_originbutton)->active));\r
-}\r
-\r
-\r
-void\r
-on_content_detailbutton_toggled        (GtkToggleButton *togglebutton,\r
-                                        gpointer         user_data)\r
-{\r
-  change_contentflag(content_detailbutton, HERETIC2_CONTENTS_DETAIL, (GTK_TOGGLE_BUTTON (content_detailbutton)->active));\r
-}\r
-\r
-\r
-void\r
-on_content_ladderbutton_toggled        (GtkToggleButton *togglebutton,\r
-                                        gpointer         user_data)\r
-{\r
-  change_contentflag(content_ladderbutton, HERETIC2_CONTENTS_LADDER, (GTK_TOGGLE_BUTTON (content_ladderbutton)->active));\r
-}\r
-\r
-\r
-void\r
-on_content_camnoblockbutton_toggled    (GtkToggleButton *togglebutton,\r
-                                        gpointer         user_data)\r
-{\r
-  change_contentflag(content_camnoblockbutton, HERETIC2_CONTENTS_CAMERANOBLOCK, (GTK_TOGGLE_BUTTON (content_camnoblockbutton)->active));\r
-}\r
-\r
-// Value Entry Callback\r
-void\r
-on_surf_value_entry_changed             (GtkEditable     *editable,\r
-                                        gpointer         user_data)\r
-{\r
-  if ( (!setup_buttons) )  // If we're setting up the buttons, don't change value\r
-    working_value = atoi( gtk_entry_get_text( (GtkEntry*)editable) );\r
-}\r
-\r
-void\r
-on_surf_value_entry_insert_text         (GtkEditable     *editable,\r
-                                        gchar           *new_text,\r
-                                        gint             new_text_length,\r
-                                        gint            *position,\r
-                                        gpointer         user_data)\r
-{\r
-  int i, count=0;\r
-  gchar *result;\r
-  int entry_value;\r
-  texdef_t *pt;\r
-  brush_t *b;\r
-  face_t *f;\r
-\r
-  // Limit input to digits, throwing out anything else\r
-  // Modified from Gtk FAQ for text filtering of GtkEntry\r
-  result = g_new (gchar, new_text_length);\r
-\r
-  for (i=0; i < new_text_length; i++) {\r
-    if (!isdigit(new_text[i]))\r
-      continue;\r
-  result[count++] = new_text[i];\r
-  }\r
-\r
-  if (count > 0) {\r
-    gtk_signal_handler_block_by_func (GTK_OBJECT (editable),\r
-                                     GTK_SIGNAL_FUNC (on_surf_value_entry_insert_text),\r
-                                     user_data);\r
-    gtk_editable_insert_text (editable, result, count, position);\r
-    gtk_signal_handler_unblock_by_func (GTK_OBJECT (editable),\r
-                                       GTK_SIGNAL_FUNC (on_surf_value_entry_insert_text),\r
-                                       user_data);\r
-  }\r
-  gtk_signal_emit_stop_by_name (GTK_OBJECT (editable), "insert_text");\r
-  \r
-  g_free (result);\r
-}\r
-\r
-#define HERETIC2_FLAG_BUTTON_BORDER 3\r
-\r
-GtkWidget* Create_Heretic2FlagsDialog (GtkWidget* surfacedialog_widget)\r
-{\r
-  GtkWidget *frame1;\r
-  GtkWidget *notebook1;\r
-  GtkWidget *vbox3;\r
-  GtkWidget *table1;\r
-  GtkWidget *frame2;\r
-  GtkWidget *hbox4;\r
-  GtkWidget *label4;\r
-  GtkWidget *vbox4;\r
-  GtkWidget *table3;\r
-  GtkWidget *label5;\r
-\r
-  GtkWidget *hbox1;\r
-  GtkWidget *hbox2;\r
-  GtkWidget *label2;\r
-  GtkWidget *table2;\r
-  GtkWidget *label3;\r
-\r
-\r
-  frame1 = gtk_frame_new ("Brush/Face Flags");\r
-  gtk_widget_show (frame1);\r
-  gtk_container_add (GTK_CONTAINER (surfacedialog_widget), frame1);\r
-\r
-  notebook1 = gtk_notebook_new ();\r
-  gtk_widget_show (notebook1);\r
-  gtk_container_add (GTK_CONTAINER (frame1), notebook1);\r
-\r
-  vbox3 = gtk_vbox_new (FALSE, 0);\r
-  gtk_widget_show (vbox3);\r
-  gtk_container_add (GTK_CONTAINER (notebook1), vbox3);\r
-\r
-  table1 = gtk_table_new (3, 4, TRUE);\r
-  gtk_widget_show (table1);\r
-  gtk_box_pack_start (GTK_BOX (vbox3), table1, TRUE, TRUE, 0);\r
-\r
-  surface_lightbutton = gtk_toggle_button_new_with_mnemonic ("Light");\r
-  gtk_widget_show (surface_lightbutton);\r
-  gtk_table_attach (GTK_TABLE (table1), surface_lightbutton, 0, 1, 0, 1,\r
-                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),\r
-                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0);\r
-\r
-  surface_slickbutton = gtk_toggle_button_new_with_mnemonic ("Slick");\r
-  gtk_widget_show (surface_slickbutton);\r
-  gtk_table_attach (GTK_TABLE (table1), surface_slickbutton, 1, 2, 0, 1,\r
-                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),\r
-                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0);\r
-\r
-  surface_skybutton = gtk_toggle_button_new_with_mnemonic ("Sky");\r
-  gtk_widget_show (surface_skybutton);\r
-  gtk_table_attach (GTK_TABLE (table1), surface_skybutton, 2, 3, 0, 1,\r
-                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),\r
-                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0);\r
-\r
-  surface_warpbutton = gtk_toggle_button_new_with_mnemonic ("Warp");\r
-  gtk_widget_show (surface_warpbutton);\r
-  gtk_table_attach (GTK_TABLE (table1), surface_warpbutton, 3, 4, 0, 1,\r
-                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),\r
-                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0);\r
-\r
-  surface_trans33button = gtk_toggle_button_new_with_mnemonic ("Trans33");\r
-  gtk_widget_show (surface_trans33button);\r
-  gtk_table_attach (GTK_TABLE (table1), surface_trans33button, 0, 1, 1, 2,\r
-                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),\r
-                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0);\r
-\r
-  surface_trans66button = gtk_toggle_button_new_with_mnemonic ("Trans66");\r
-  gtk_widget_show (surface_trans66button);\r
-  gtk_table_attach (GTK_TABLE (table1), surface_trans66button, 1, 2, 1, 2,\r
-                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),\r
-                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0);\r
-\r
-  surface_flowingbutton = gtk_toggle_button_new_with_mnemonic ("Flowing");\r
-  gtk_widget_show (surface_flowingbutton);\r
-  gtk_table_attach (GTK_TABLE (table1), surface_flowingbutton, 2, 3, 1, 2,\r
-                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),\r
-                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0);\r
-\r
-  surface_nodrawbutton = gtk_toggle_button_new_with_mnemonic ("NoDraw");\r
-  gtk_widget_show (surface_nodrawbutton);\r
-  gtk_table_attach (GTK_TABLE (table1), surface_nodrawbutton, 3, 4, 1, 2,\r
-                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),\r
-                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0);\r
-\r
-  surface_tallwallbutton = gtk_toggle_button_new_with_mnemonic ("TallWall");\r
-  gtk_widget_show (surface_tallwallbutton);\r
-  gtk_table_attach (GTK_TABLE (table1), surface_tallwallbutton, 0, 1, 2, 3,\r
-                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),\r
-                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0);\r
-\r
-  surface_alphatexbutton = gtk_toggle_button_new_with_mnemonic ("AlphaTex");\r
-  gtk_widget_show (surface_alphatexbutton);\r
-  gtk_table_attach (GTK_TABLE (table1), surface_alphatexbutton, 1, 2, 2, 3,\r
-                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),\r
-                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0);\r
-\r
-  surface_animspeedbutton = gtk_toggle_button_new_with_mnemonic ("AnimSpeed");\r
-  gtk_widget_show (surface_animspeedbutton);\r
-  gtk_table_attach (GTK_TABLE (table1), surface_animspeedbutton, 2, 3, 2, 3,\r
-                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),\r
-                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0);\r
-\r
-  surface_undulatebutton = gtk_toggle_button_new_with_mnemonic ("Undulate");\r
-  gtk_widget_show (surface_undulatebutton);\r
-  gtk_table_attach (GTK_TABLE (table1), surface_undulatebutton, 3, 4, 2, 3,\r
-                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),\r
-                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0);\r
-\r
-  frame2 = gtk_frame_new (NULL);\r
-  gtk_widget_show (frame2);\r
-  gtk_box_pack_start (GTK_BOX (vbox3), frame2, FALSE, FALSE, 0);\r
-  gtk_frame_set_shadow_type (GTK_FRAME (frame2), GTK_SHADOW_ETCHED_OUT);\r
-  gtk_container_set_border_width (GTK_CONTAINER (frame2), 4);\r
-\r
-  hbox4 = gtk_hbox_new (FALSE, 0);\r
-  gtk_widget_show (hbox4);\r
-  gtk_container_add (GTK_CONTAINER (frame2), hbox4);\r
-\r
-  surf_gravel_radiobutton = gtk_radio_button_new_with_mnemonic (NULL, "Gravel");\r
-  gtk_widget_show (surf_gravel_radiobutton);\r
-  gtk_box_pack_start (GTK_BOX (hbox4), surf_gravel_radiobutton, TRUE, FALSE, 0);\r
-\r
-  surf_metal_radiobutton = gtk_radio_button_new_with_mnemonic_from_widget (GTK_RADIO_BUTTON(surf_gravel_radiobutton), "Metal");\r
-  gtk_widget_show (surf_metal_radiobutton);\r
-  gtk_box_pack_start (GTK_BOX (hbox4), surf_metal_radiobutton, TRUE, FALSE, 0);\r
-\r
-  surf_stone_radiobutton = gtk_radio_button_new_with_mnemonic_from_widget (GTK_RADIO_BUTTON(surf_metal_radiobutton), "Stone");\r
-  gtk_widget_show (surf_stone_radiobutton);\r
-  gtk_box_pack_start (GTK_BOX (hbox4), surf_stone_radiobutton, TRUE, FALSE, 0);\r
-\r
-  surf_wood_radiobutton = gtk_radio_button_new_with_mnemonic_from_widget (GTK_RADIO_BUTTON(surf_stone_radiobutton), "Wood");\r
-  gtk_widget_show (surf_wood_radiobutton);\r
-  gtk_box_pack_start (GTK_BOX (hbox4), surf_wood_radiobutton, TRUE, FALSE, 0);\r
-\r
-  label4 = gtk_label_new ("Material");\r
-  gtk_widget_show (label4);\r
-  gtk_frame_set_label_widget (GTK_FRAME (frame2), label4);\r
-  gtk_label_set_justify (GTK_LABEL (label4), GTK_JUSTIFY_LEFT);\r
-\r
-  table3 = gtk_table_new (1, 4, FALSE);\r
-  gtk_widget_show (table3);\r
-  gtk_box_pack_start (GTK_BOX (vbox3), table3, FALSE, FALSE, 0);\r
-  gtk_container_set_border_width (GTK_CONTAINER (table3), 3);\r
-\r
-  hbox1 = gtk_hbox_new (FALSE, 0);\r
-  gtk_widget_show (hbox1);\r
-  gtk_table_attach (GTK_TABLE (table3), hbox1, 0, 1, 0, 1,\r
-                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),\r
-                    (GtkAttachOptions) (GTK_FILL), 0, 0);\r
-\r
-  label5 = gtk_label_new ("Value: ");\r
-  gtk_widget_show (label5);\r
-  gtk_table_attach (GTK_TABLE (table3), label5, 1, 2, 0, 1,\r
-                    (GtkAttachOptions) (0),\r
-                    (GtkAttachOptions) (0), 0, 0);\r
-  gtk_misc_set_alignment (GTK_MISC (label5), 0, 0);\r
-  gtk_label_set_justify (GTK_LABEL (label5), GTK_JUSTIFY_RIGHT);\r
-\r
-  surf_value_entry = gtk_entry_new ();\r
-  gtk_widget_show (surf_value_entry);\r
-  gtk_table_attach (GTK_TABLE (table3), surf_value_entry, 2, 3, 0, 1,\r
-                    (GtkAttachOptions) (GTK_FILL),\r
-                    (GtkAttachOptions) (0), 0, 0);\r
-\r
-  hbox2 = gtk_hbox_new (FALSE, 0);\r
-  gtk_widget_show (hbox2);\r
-  gtk_table_attach (GTK_TABLE (table3), hbox2, 3, 4, 0, 1,\r
-                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),\r
-                    (GtkAttachOptions) (GTK_FILL), 0, 0);\r
-\r
-  label2 = gtk_label_new ("Surface Flags");\r
-  gtk_widget_show (label2);\r
-  gtk_notebook_set_tab_label (GTK_NOTEBOOK (notebook1), gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook1), 0), label2);\r
-  gtk_label_set_justify (GTK_LABEL (label2), GTK_JUSTIFY_LEFT);\r
-\r
-  table2 = gtk_table_new (5, 4, TRUE);\r
-  gtk_widget_show (table2);\r
-  gtk_container_add (GTK_CONTAINER (notebook1), table2);\r
-\r
-  content_solidbutton = gtk_toggle_button_new_with_mnemonic ("Solid");\r
-  gtk_widget_show (content_solidbutton);\r
-  gtk_table_attach (GTK_TABLE (table2), content_solidbutton, 0, 1, 0, 1,\r
-                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),\r
-                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0);\r
-\r
-  content_windowbutton = gtk_toggle_button_new_with_mnemonic ("Window");\r
-  gtk_widget_show (content_windowbutton);\r
-  gtk_table_attach (GTK_TABLE (table2), content_windowbutton, 1, 2, 0, 1,\r
-                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),\r
-                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0);\r
-\r
-  content_illusbutton = gtk_toggle_button_new_with_mnemonic ("Illusion");\r
-  gtk_widget_show (content_illusbutton);\r
-  gtk_table_attach (GTK_TABLE (table2), content_illusbutton, 2, 3, 0, 1,\r
-                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),\r
-                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0);\r
-\r
-  content_lavabutton = gtk_toggle_button_new_with_mnemonic ("Lava");\r
-  gtk_widget_show (content_lavabutton);\r
-  gtk_table_attach (GTK_TABLE (table2), content_lavabutton, 3, 4, 0, 1,\r
-                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),\r
-                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0);\r
-\r
-  content_slimebutton = gtk_toggle_button_new_with_mnemonic ("Slime");\r
-  gtk_widget_show (content_slimebutton);\r
-  gtk_table_attach (GTK_TABLE (table2), content_slimebutton, 0, 1, 1, 2,\r
-                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),\r
-                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0);\r
-\r
-  content_waterbutton = gtk_toggle_button_new_with_mnemonic ("Water");\r
-  gtk_widget_show (content_waterbutton);\r
-  gtk_table_attach (GTK_TABLE (table2), content_waterbutton, 1, 2, 1, 2,\r
-                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),\r
-                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0);\r
-\r
-  content_mistbutton = gtk_toggle_button_new_with_mnemonic ("Mist");\r
-  gtk_widget_show (content_mistbutton);\r
-  gtk_table_attach (GTK_TABLE (table2), content_mistbutton, 2, 3, 1, 2,\r
-                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),\r
-                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0);\r
-\r
-  content_areaportalbutton = gtk_toggle_button_new_with_mnemonic ("AreaPortal");\r
-  gtk_widget_show (content_areaportalbutton);\r
-  gtk_table_attach (GTK_TABLE (table2), content_areaportalbutton, 3, 4, 1, 2,\r
-                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),\r
-                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0);\r
-\r
-  content_playerclipbutton = gtk_toggle_button_new_with_mnemonic ("PlayerClip");\r
-  gtk_widget_show (content_playerclipbutton);\r
-  gtk_table_attach (GTK_TABLE (table2), content_playerclipbutton, 0, 1, 2, 3,\r
-                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),\r
-                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0);\r
-\r
-  content_monsterclipbutton = gtk_toggle_button_new_with_mnemonic ("MonsterClip");\r
-  gtk_widget_show (content_monsterclipbutton);\r
-  gtk_table_attach (GTK_TABLE (table2), content_monsterclipbutton, 1, 2, 2, 3,\r
-                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),\r
-                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0);\r
-\r
-  content_current0button = gtk_toggle_button_new_with_mnemonic ("Current 0");\r
-  gtk_widget_show (content_current0button);\r
-  gtk_table_attach (GTK_TABLE (table2), content_current0button, 2, 3, 2, 3,\r
-                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),\r
-                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0);\r
-\r
-  content_current90button = gtk_toggle_button_new_with_mnemonic ("Current 90");\r
-  gtk_widget_show (content_current90button);\r
-  gtk_table_attach (GTK_TABLE (table2), content_current90button, 3, 4, 2, 3,\r
-                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),\r
-                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0);\r
-\r
-  content_current180button = gtk_toggle_button_new_with_mnemonic ("Current 180");\r
-  gtk_widget_show (content_current180button);\r
-  gtk_table_attach (GTK_TABLE (table2), content_current180button, 0, 1, 3, 4,\r
-                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),\r
-                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0);\r
-\r
-  content_current270button = gtk_toggle_button_new_with_mnemonic ("Current 270");\r
-  gtk_widget_show (content_current270button);\r
-  gtk_table_attach (GTK_TABLE (table2), content_current270button, 1, 2, 3, 4,\r
-                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),\r
-                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0);\r
-\r
-  content_currentUPbutton = gtk_toggle_button_new_with_mnemonic ("Current UP");\r
-  gtk_widget_show (content_currentUPbutton);\r
-  gtk_table_attach (GTK_TABLE (table2), content_currentUPbutton, 2, 3, 3, 4,\r
-                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),\r
-                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0);\r
-\r
-  content_currentDOWNbutton = gtk_toggle_button_new_with_mnemonic ("Current DOWN");\r
-  gtk_widget_show (content_currentDOWNbutton);\r
-  gtk_table_attach (GTK_TABLE (table2), content_currentDOWNbutton, 3, 4, 3, 4,\r
-                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),\r
-                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0);\r
-\r
-  content_originbutton = gtk_toggle_button_new_with_mnemonic ("Origin");\r
-  gtk_widget_show (content_originbutton);\r
-  gtk_table_attach (GTK_TABLE (table2), content_originbutton, 0, 1, 4, 5,\r
-                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),\r
-                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0);\r
-\r
-  content_detailbutton = gtk_toggle_button_new_with_mnemonic ("Detail");\r
-  gtk_widget_show (content_detailbutton);\r
-  gtk_table_attach (GTK_TABLE (table2), content_detailbutton, 1, 2, 4, 5,\r
-                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),\r
-                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0);\r
-\r
-  content_ladderbutton = gtk_toggle_button_new_with_mnemonic ("Ladder");\r
-  gtk_widget_show (content_ladderbutton);\r
-  gtk_table_attach (GTK_TABLE (table2), content_ladderbutton, 2, 3, 4, 5,\r
-                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),\r
-                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0);\r
-\r
-  content_camnoblockbutton = gtk_toggle_button_new_with_mnemonic ("Cam No Block");\r
-  gtk_widget_show (content_camnoblockbutton);\r
-  gtk_table_attach (GTK_TABLE (table2), content_camnoblockbutton, 3, 4, 4, 5,\r
-                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),\r
-                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0);\r
-\r
-  label3 = gtk_label_new ("Content Flags");\r
-  gtk_widget_show (label3);\r
-  gtk_notebook_set_tab_label (GTK_NOTEBOOK (notebook1), gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook1), 1), label3);\r
-  gtk_label_set_justify (GTK_LABEL (label3), GTK_JUSTIFY_LEFT);\r
-\r
-  // Signal Connects\r
-  g_signal_connect ((gpointer) surface_lightbutton, "toggled",\r
-                    G_CALLBACK (on_surface_lightbutton_toggled),\r
-                    NULL);\r
-  g_signal_connect ((gpointer) surface_slickbutton, "toggled",\r
-                    G_CALLBACK (on_surface_slickbutton_toggled),\r
-                    NULL);\r
-  g_signal_connect ((gpointer) surface_skybutton, "toggled",\r
-                    G_CALLBACK (on_surface_skybutton_toggled),\r
-                    NULL);\r
-  g_signal_connect ((gpointer) surface_warpbutton, "toggled",\r
-                    G_CALLBACK (on_surface_warpbutton_toggled),\r
-                    NULL);\r
-  g_signal_connect ((gpointer) surface_trans33button, "toggled",\r
-                    G_CALLBACK (on_surface_trans33button_toggled),\r
-                    NULL);\r
-  g_signal_connect ((gpointer) surface_trans66button, "toggled",\r
-                    G_CALLBACK (on_surface_trans66button_toggled),\r
-                    NULL);\r
-  g_signal_connect ((gpointer) surface_flowingbutton, "toggled",\r
-                    G_CALLBACK (on_surface_flowingbutton_toggled),\r
-                    NULL);\r
-  g_signal_connect ((gpointer) surface_nodrawbutton, "toggled",\r
-                    G_CALLBACK (on_surface_nodrawbutton_toggled),\r
-                    NULL);\r
-  g_signal_connect ((gpointer) surface_tallwallbutton, "toggled",\r
-                    G_CALLBACK (on_surface_tallwallbutton_toggled),\r
-                    NULL);\r
-  g_signal_connect ((gpointer) surface_alphatexbutton, "toggled",\r
-                    G_CALLBACK (on_surface_alphatexbutton_toggled),\r
-                    NULL);\r
-  g_signal_connect ((gpointer) surface_animspeedbutton, "toggled",\r
-                    G_CALLBACK (on_surface_animspeedbutton_toggled),\r
-                    NULL);\r
-  g_signal_connect ((gpointer) surface_undulatebutton, "toggled",\r
-                    G_CALLBACK (on_surface_undulatebutton_toggled),\r
-                    NULL);\r
-\r
-  g_signal_connect ((gpointer) surf_gravel_radiobutton, "toggled",\r
-                    G_CALLBACK (on_surf_gravel_radiobutton_toggled),\r
-                    NULL);\r
-  g_signal_connect ((gpointer) surf_metal_radiobutton, "toggled",\r
-                    G_CALLBACK (on_surf_metal_radiobutton_toggled),\r
-                    NULL);\r
-  g_signal_connect ((gpointer) surf_stone_radiobutton, "toggled",\r
-                    G_CALLBACK (on_surf_stone_radiobutton_toggled),\r
-                    NULL);\r
-  g_signal_connect ((gpointer) surf_wood_radiobutton, "toggled",\r
-                    G_CALLBACK (on_surf_wood_radiobutton_toggled),\r
-                    NULL);\r
-\r
-  g_signal_connect ((gpointer) surf_value_entry, "changed",\r
-                    G_CALLBACK (on_surf_value_entry_changed),\r
-                    NULL);\r
-  g_signal_connect ((gpointer) surf_value_entry, "insert_text",\r
-                    G_CALLBACK (on_surf_value_entry_insert_text),\r
-                    NULL);\r
-  g_signal_connect ((gpointer) content_solidbutton, "toggled",\r
-                    G_CALLBACK (on_content_solidbutton_toggled),\r
-                    NULL);\r
-  g_signal_connect ((gpointer) content_windowbutton, "toggled",\r
-                    G_CALLBACK (on_content_windowbutton_toggled),\r
-                    NULL);\r
-  g_signal_connect ((gpointer) content_illusbutton, "toggled",\r
-                    G_CALLBACK (on_content_illusbutton_toggled),\r
-                    NULL);\r
-  g_signal_connect ((gpointer) content_lavabutton, "toggled",\r
-                    G_CALLBACK (on_content_lavabutton_toggled),\r
-                    NULL);\r
-  g_signal_connect ((gpointer) content_slimebutton, "toggled",\r
-                    G_CALLBACK (on_content_slimebutton_toggled),\r
-                    NULL);\r
-  g_signal_connect ((gpointer) content_waterbutton, "toggled",\r
-                    G_CALLBACK (on_content_waterbutton_toggled),\r
-                    NULL);\r
-  g_signal_connect ((gpointer) content_mistbutton, "toggled",\r
-                    G_CALLBACK (on_content_mistbutton_toggled),\r
-                    NULL);\r
-  g_signal_connect ((gpointer) content_areaportalbutton, "toggled",\r
-                    G_CALLBACK (on_content_areaportalbutton_toggled),\r
-                    NULL);\r
-  g_signal_connect ((gpointer) content_playerclipbutton, "toggled",\r
-                    G_CALLBACK (on_content_playerclipbutton_toggled),\r
-                    NULL);\r
-  g_signal_connect ((gpointer) content_monsterclipbutton, "toggled",\r
-                    G_CALLBACK (on_content_monsterclipbutton_toggled),\r
-                    NULL);\r
-  g_signal_connect ((gpointer) content_current0button, "toggled",\r
-                    G_CALLBACK (on_content_current0button_toggled),\r
-                    NULL);\r
-  g_signal_connect ((gpointer) content_current90button, "toggled",\r
-                    G_CALLBACK (on_content_current90button_toggled),\r
-                    NULL);\r
-  g_signal_connect ((gpointer) content_current180button, "toggled",\r
-                    G_CALLBACK (on_content_current180button_toggled),\r
-                    NULL);\r
-  g_signal_connect ((gpointer) content_current270button, "toggled",\r
-                    G_CALLBACK (on_content_current270button_toggled),\r
-                    NULL);\r
-  g_signal_connect ((gpointer) content_currentUPbutton, "toggled",\r
-                    G_CALLBACK (on_content_currentUPbutton_toggled),\r
-                    NULL);\r
-  g_signal_connect ((gpointer) content_currentDOWNbutton, "toggled",\r
-                    G_CALLBACK (on_content_currentDOWNbutton_toggled),\r
-                    NULL);\r
-  g_signal_connect ((gpointer) content_originbutton, "toggled",\r
-                    G_CALLBACK (on_content_originbutton_toggled),\r
-                    NULL);\r
-  g_signal_connect ((gpointer) content_detailbutton, "toggled",\r
-                    G_CALLBACK (on_content_detailbutton_toggled),\r
-                    NULL);\r
-  g_signal_connect ((gpointer) content_ladderbutton, "toggled",\r
-                    G_CALLBACK (on_content_ladderbutton_toggled),\r
-                    NULL);\r
-  g_signal_connect ((gpointer) content_camnoblockbutton, "toggled",\r
-                    G_CALLBACK (on_content_camnoblockbutton_toggled),\r
-                    NULL);\r
-\r
-\r
-  return frame1;\r
-}\r
-\r
+/*
+Copyright (C) 1999-2007 id Software, Inc. and contributors.
+For a list of contributors, see the accompanying CONTRIBUTORS file.
+
+This file is part of GtkRadiant.
+
+GtkRadiant 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.
+
+GtkRadiant 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 GtkRadiant; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+*/
+
+#include <gtk/gtk.h>
+#include <gdk/gdkkeysyms.h>
+#include <glib/gi18n.h>
+
+#include "surfdlg_plugin.h"
+
+#include "surfaceflagsdialog_heretic2.h"
+
+  GtkWidget *surface_lightbutton;
+  GtkWidget *surface_slickbutton;
+  GtkWidget *surface_skybutton;
+  GtkWidget *surface_warpbutton;
+  GtkWidget *surface_trans33button;
+  GtkWidget *surface_trans66button;
+  GtkWidget *surface_flowingbutton;
+  GtkWidget *surface_nodrawbutton;
+  GtkWidget *surface_tallwallbutton;
+  GtkWidget *surface_alphatexbutton;
+  GtkWidget *surface_animspeedbutton;
+  GtkWidget *surface_undulatebutton;
+
+  GtkWidget *surf_gravel_radiobutton;
+  GSList *surf_gravel_radiobutton_group = NULL;
+  GtkWidget *surf_metal_radiobutton;
+  GtkWidget *surf_stone_radiobutton;
+  GtkWidget *surf_wood_radiobutton;
+
+  GtkWidget *surf_value_entry;
+
+  GtkWidget *notebook1;
+
+  GtkWidget *content_solidbutton;
+  GtkWidget *content_windowbutton;
+  GtkWidget *content_illusbutton;
+  GtkWidget *content_lavabutton;
+  GtkWidget *content_slimebutton;
+  GtkWidget *content_waterbutton;
+  GtkWidget *content_mistbutton;
+  GtkWidget *content_areaportalbutton;
+  GtkWidget *content_playerclipbutton;
+  GtkWidget *content_monsterclipbutton;
+  GtkWidget *content_current0button;
+  GtkWidget *content_current90button;
+  GtkWidget *content_current180button;
+  GtkWidget *content_current270button;
+  GtkWidget *content_currentUPbutton;
+  GtkWidget *content_currentDOWNbutton;
+  GtkWidget *content_originbutton;
+  GtkWidget *content_detailbutton;
+  GtkWidget *content_ladderbutton;
+  GtkWidget *content_camnoblockbutton;
+
+
+  gboolean setup_buttons = TRUE;
+
+  int working_surface_flags;
+  int surface_mask;
+  int working_content_flags;
+  int content_mask;
+  int working_value;
+  gboolean surface_material_inconsistant = FALSE;
+
+inline void set_inconsistent(GtkWidget *toggle_button)
+{
+  gtk_toggle_button_set_inconsistent(GTK_TOGGLE_BUTTON (toggle_button), TRUE);
+}
+
+inline void clear_inconsistent(GtkWidget *toggle_button)
+{
+  if ( gtk_toggle_button_get_inconsistent(GTK_TOGGLE_BUTTON (toggle_button)) )
+  {
+    gtk_toggle_button_set_inconsistent(GTK_TOGGLE_BUTTON (toggle_button), FALSE);
+  }
+
+}
+
+void clear_all_inconsistent(void)
+{
+  clear_inconsistent( surface_lightbutton );
+  clear_inconsistent( surface_slickbutton );
+  clear_inconsistent( surface_skybutton );
+  clear_inconsistent( surface_warpbutton );
+  clear_inconsistent( surface_trans33button );
+  clear_inconsistent( surface_trans66button );
+  clear_inconsistent( surface_flowingbutton );
+  clear_inconsistent( surface_nodrawbutton );
+  clear_inconsistent( surface_tallwallbutton );
+  clear_inconsistent( surface_alphatexbutton );
+  clear_inconsistent( surface_animspeedbutton );
+  clear_inconsistent( surface_undulatebutton );
+
+  clear_inconsistent( surf_gravel_radiobutton );
+  clear_inconsistent( surf_metal_radiobutton );
+  clear_inconsistent( surf_stone_radiobutton );
+  clear_inconsistent( surf_wood_radiobutton );
+
+  clear_inconsistent( content_solidbutton );
+  clear_inconsistent( content_windowbutton );
+  clear_inconsistent( content_illusbutton );
+  clear_inconsistent( content_lavabutton );
+  clear_inconsistent( content_slimebutton );
+  clear_inconsistent( content_waterbutton );
+  clear_inconsistent( content_mistbutton );
+  clear_inconsistent( content_areaportalbutton );
+  clear_inconsistent( content_playerclipbutton );
+  clear_inconsistent( content_monsterclipbutton );
+  clear_inconsistent( content_current0button );
+  clear_inconsistent( content_current90button );
+  clear_inconsistent( content_current180button );
+  clear_inconsistent( content_current270button );
+  clear_inconsistent( content_currentUPbutton );
+  clear_inconsistent( content_currentDOWNbutton );
+  clear_inconsistent( content_originbutton );
+  clear_inconsistent( content_detailbutton );
+  clear_inconsistent( content_ladderbutton );
+  clear_inconsistent( content_camnoblockbutton );
+}
+
+void clear_all_buttons_and_values()
+{
+  gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON( surface_lightbutton ), FALSE);
+  gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON( surface_slickbutton ), FALSE);
+  gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON( surface_skybutton ), FALSE);
+  gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON( surface_warpbutton ), FALSE);
+  gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON( surface_trans33button ), FALSE);
+  gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON( surface_trans66button ), FALSE);
+  gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON( surface_flowingbutton ), FALSE);
+  gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON( surface_nodrawbutton ), FALSE);
+  gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON( surface_tallwallbutton ), FALSE);
+  gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON( surface_alphatexbutton ), FALSE);
+  gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON( surface_animspeedbutton ), FALSE);
+  gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON( surface_undulatebutton ), FALSE);
+
+//  surface_material_inconsistant = TRUE;
+
+  gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON ( surf_gravel_radiobutton ), FALSE);
+  set_inconsistent(surf_gravel_radiobutton);
+
+  gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON ( surf_metal_radiobutton ), FALSE);
+  set_inconsistent(surf_metal_radiobutton);
+
+  gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON ( surf_stone_radiobutton ), FALSE);
+  set_inconsistent(surf_stone_radiobutton);
+
+  gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON ( surf_wood_radiobutton ), FALSE);
+  set_inconsistent(surf_wood_radiobutton);
+
+  gtk_entry_set_text( (GtkEntry *)surf_value_entry, "");
+
+  gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON( content_solidbutton ), FALSE);
+  gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON( content_windowbutton ), FALSE);
+  gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON( content_illusbutton ), FALSE);
+  gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON( content_lavabutton ), FALSE);
+  gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON( content_slimebutton ), FALSE);
+  gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON( content_waterbutton ), FALSE);
+  gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON( content_mistbutton ), FALSE);
+  gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON( content_areaportalbutton ), FALSE);
+  gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON( content_playerclipbutton ), FALSE);
+  gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON( content_monsterclipbutton ), FALSE);
+  gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON( content_current0button ), FALSE);
+  gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON( content_current90button ), FALSE);
+  gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON( content_current180button ), FALSE);
+  gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON( content_current270button ), FALSE);
+  gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON( content_currentUPbutton ), FALSE);
+  gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON( content_currentDOWNbutton ), FALSE);
+  gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON( content_originbutton ), FALSE);
+  gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON( content_detailbutton ), FALSE);
+  gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON( content_ladderbutton ), FALSE);
+  gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON( content_camnoblockbutton ), FALSE);
+
+}
+
+void SetFlagButtons_Heretic2(texdef_to_face_t *texdef_face_list, bool b_isListEmpty)
+{
+  int contents = 0;
+  int flags = 0;
+  int value = 0;
+  int diff_contents = 0;
+  int diff_flags = 0;
+  gboolean diff_value = FALSE;
+  char tex_buff[11];
+  texdef_t* tmp_texdef;
+  texdef_to_face_t* temp_texdef_face_list;
+  gboolean surface_which_material_inconsistant[4];
+  int surface_iterator;
+
+  setup_buttons = TRUE;
+  working_surface_flags = 0;
+  surface_mask = 0;
+  working_content_flags = 0;
+  content_mask = 0;
+  working_value = 0;
+  surface_material_inconsistant = FALSE;
+  surface_which_material_inconsistant[0] = FALSE;
+  surface_which_material_inconsistant[1] = FALSE;
+  surface_which_material_inconsistant[2] = FALSE;
+  surface_which_material_inconsistant[3] = FALSE;
+
+  if(!b_isListEmpty)
+  {
+    tmp_texdef = &texdef_face_list->texdef;
+    contents = tmp_texdef->contents;
+    flags = tmp_texdef->flags;
+    value = tmp_texdef->value;
+
+    surface_iterator = (tmp_texdef->flags & ~HERETIC2_SURF_MATERIAL_MASK) >> 24;  // Inconsistant Material?
+    surface_which_material_inconsistant[surface_iterator] = TRUE;
+
+    for (temp_texdef_face_list = texdef_face_list->next; temp_texdef_face_list; temp_texdef_face_list = temp_texdef_face_list->next)
+    {
+      tmp_texdef = &temp_texdef_face_list->texdef;
+      diff_contents |= contents ^ tmp_texdef->contents;  // Figure out which buttons are inconsistent
+      diff_flags |= flags ^ tmp_texdef->flags;
+      if (tmp_texdef->value != value)
+        diff_value = TRUE;
+
+      surface_iterator = (tmp_texdef->flags & ~HERETIC2_SURF_MATERIAL_MASK) >> 24;  // Inconsistant Material?
+      surface_which_material_inconsistant[surface_iterator] = TRUE;
+
+      Sys_Printf("Diff_Flags: %d\t Surf_Iter: %d\n",diff_flags, surface_iterator);
+
+    }
+  }
+
+
+  clear_all_inconsistent();
+
+  // If no faces/brushes are selected, clear everything and bail
+  if(b_isListEmpty)
+  {
+    clear_all_buttons_and_values();
+    setup_buttons = FALSE;
+    return;
+  }
+
+  // Set surface buttons to reflect brush/face flags, contents, and values
+  if(diff_flags & HERETIC2_SURF_LIGHT)
+    set_inconsistent(surface_lightbutton);
+  else
+    gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON (surface_lightbutton), (flags & HERETIC2_SURF_LIGHT));
+
+  if(diff_flags & HERETIC2_SURF_SLICK)
+    set_inconsistent(surface_slickbutton);
+  else if(flags & HERETIC2_SURF_SLICK)
+       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON ( surface_slickbutton ), TRUE);
+  else
+       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON ( surface_slickbutton ), FALSE);
+
+  if(diff_flags & HERETIC2_SURF_SKY)
+    set_inconsistent(surface_skybutton);
+  else if(flags & HERETIC2_SURF_SKY)
+       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON ( surface_skybutton ), TRUE);
+  else
+       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON ( surface_skybutton ), FALSE);
+
+  if(diff_flags & HERETIC2_SURF_WARP)
+    set_inconsistent(surface_warpbutton);
+  else if(flags & HERETIC2_SURF_WARP)
+       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON ( surface_warpbutton ), TRUE);
+  else
+       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON ( surface_warpbutton ), FALSE);
+
+  if(diff_flags & HERETIC2_SURF_TRANS33)
+    set_inconsistent(surface_trans33button);
+  else if(flags & HERETIC2_SURF_TRANS33)
+       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON ( surface_trans33button ), TRUE);
+  else
+       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON ( surface_trans33button ), FALSE);
+
+  if(diff_flags & HERETIC2_SURF_TRANS66)
+    set_inconsistent(surface_trans66button);
+  else if(flags & HERETIC2_SURF_TRANS66)
+       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON ( surface_trans66button ), TRUE);
+  else
+       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON ( surface_trans66button ), FALSE);
+
+  if(diff_flags & HERETIC2_SURF_FLOWING)
+    set_inconsistent(surface_flowingbutton);
+  else if(flags & HERETIC2_SURF_FLOWING)
+       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON ( surface_flowingbutton ), TRUE);
+  else
+       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON ( surface_flowingbutton ), FALSE);
+
+  if(diff_flags & HERETIC2_SURF_NODRAW)
+    set_inconsistent(surface_nodrawbutton);
+  else if(flags & HERETIC2_SURF_NODRAW)
+       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON ( surface_nodrawbutton ), TRUE);
+  else
+       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON ( surface_nodrawbutton ), FALSE);
+
+  if(diff_flags & HERETIC2_SURF_TALL_WALL)
+    set_inconsistent(surface_tallwallbutton);
+  else if(flags & HERETIC2_SURF_TALL_WALL)
+       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON ( surface_tallwallbutton ), TRUE);
+  else
+       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON ( surface_tallwallbutton ), FALSE);
+
+  if(diff_flags & HERETIC2_SURF_ALPHA_TEXTURE)
+    set_inconsistent(surface_alphatexbutton);
+  else if(flags & HERETIC2_SURF_ALPHA_TEXTURE)
+       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON ( surface_alphatexbutton ), TRUE);
+  else
+       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON ( surface_alphatexbutton ), FALSE);
+
+  if(diff_flags & HERETIC2_SURF_ANIMSPEED)
+    set_inconsistent(surface_animspeedbutton);
+  else if(flags & HERETIC2_SURF_ANIMSPEED)
+       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON ( surface_animspeedbutton ), TRUE);
+  else
+       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON ( surface_animspeedbutton ), FALSE);
+
+  if(diff_flags & HERETIC2_SURF_UNDULATE)
+    set_inconsistent(surface_undulatebutton);
+  else if(flags & HERETIC2_SURF_UNDULATE)
+       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON ( surface_undulatebutton ), TRUE);
+  else
+       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON ( surface_undulatebutton ), FALSE);
+
+  if(diff_flags & ~HERETIC2_SURF_MATERIAL_MASK)
+  {
+    Sys_Printf("--> %d\n", (diff_flags & ~HERETIC2_SURF_MATERIAL_MASK) );
+    Sys_Printf("%d\t%d\t%d\t%d\n", surface_which_material_inconsistant[0], surface_which_material_inconsistant[1], surface_which_material_inconsistant[2], surface_which_material_inconsistant[3]);
+
+    if (surface_which_material_inconsistant[0])
+    {
+      gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON ( surf_gravel_radiobutton ), FALSE);
+      surface_material_inconsistant = TRUE;
+      set_inconsistent(surf_gravel_radiobutton);
+    }
+    if (surface_which_material_inconsistant[1])
+    {
+      //if (!surface_material_inconsistant)
+      //{
+        gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON ( surf_metal_radiobutton ), FALSE);
+        surface_material_inconsistant = TRUE;
+      //}
+      set_inconsistent(surf_metal_radiobutton);
+    }
+    if (surface_which_material_inconsistant[2])
+    {
+      //if (!surface_material_inconsistant)
+      //{
+        gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON ( surf_stone_radiobutton ), FALSE);
+        surface_material_inconsistant = TRUE;
+      //}
+      set_inconsistent(surf_stone_radiobutton);
+    }
+    if (surface_which_material_inconsistant[3])
+    {
+      //if (!surface_material_inconsistant)
+      //{
+        gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON ( surf_wood_radiobutton ), FALSE);
+        surface_material_inconsistant = TRUE;
+      //}
+      set_inconsistent(surf_wood_radiobutton);
+    }
+  }
+  else
+  {
+    if(flags & ~HERETIC2_SURF_MATERIAL_MASK)
+    {
+      surface_iterator = (flags & ~HERETIC2_SURF_MATERIAL_MASK) >> 24;
+      if( surface_iterator == 1)
+        gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON ( surf_metal_radiobutton ), TRUE);
+      else if(surface_iterator == 2)
+        gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON ( surf_stone_radiobutton ), TRUE);
+      else if(surface_iterator == 3)
+        gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON ( surf_wood_radiobutton ), TRUE);
+    }
+    else
+    {
+      gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON ( surf_gravel_radiobutton ), TRUE);
+    }
+  }
+
+  // Set content buttons to reflect brush values
+  if(diff_contents & HERETIC2_CONTENTS_SOLID)
+    set_inconsistent(content_solidbutton);
+  else if(contents & HERETIC2_CONTENTS_SOLID)
+       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON ( content_solidbutton ), TRUE);
+  else
+       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON ( content_solidbutton ), FALSE);
+
+  if(diff_contents & HERETIC2_CONTENTS_WINDOW)
+    set_inconsistent(content_windowbutton);
+  else if(contents & HERETIC2_CONTENTS_WINDOW)
+       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON ( content_windowbutton ), TRUE);
+  else
+       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON ( content_windowbutton ), FALSE);
+
+  if(diff_contents & HERETIC2_CONTENTS_ILLUSIONARY)
+    set_inconsistent(content_illusbutton);
+  else if(contents & HERETIC2_CONTENTS_ILLUSIONARY)
+       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON ( content_illusbutton ), TRUE);
+  else
+       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON ( content_illusbutton ), FALSE);
+
+  if(diff_contents & HERETIC2_CONTENTS_LAVA)
+    set_inconsistent(content_lavabutton);
+  else if(contents & HERETIC2_CONTENTS_LAVA)
+       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON ( content_lavabutton ), TRUE);
+  else
+       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON ( content_lavabutton ), FALSE);
+
+  if(diff_contents & HERETIC2_CONTENTS_SLIME)
+    set_inconsistent(content_slimebutton);
+  else if(contents & HERETIC2_CONTENTS_SLIME)
+       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON ( content_slimebutton ), TRUE);
+  else
+       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON ( content_slimebutton ), FALSE);
+
+  if(diff_contents & HERETIC2_CONTENTS_WATER)
+    set_inconsistent(content_waterbutton);
+  else if(contents & HERETIC2_CONTENTS_WATER)
+       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON ( content_waterbutton ), TRUE);
+  else
+       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON ( content_waterbutton ), FALSE);
+
+  if(diff_contents & HERETIC2_CONTENTS_MIST)
+    set_inconsistent(content_mistbutton);
+  else if(contents & HERETIC2_CONTENTS_MIST)
+       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON ( content_mistbutton ), TRUE);
+  else
+       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON ( content_mistbutton ), FALSE);
+
+  if(diff_contents & HERETIC2_CONTENTS_AREAPORTAL)
+    set_inconsistent(content_areaportalbutton);
+  else if(contents & HERETIC2_CONTENTS_AREAPORTAL)
+       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON ( content_areaportalbutton ), TRUE);
+  else
+       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON ( content_areaportalbutton ), FALSE);
+
+  if(diff_contents & HERETIC2_CONTENTS_PLAYERCLIP)
+    set_inconsistent(content_playerclipbutton);
+  else if(contents & HERETIC2_CONTENTS_PLAYERCLIP)
+       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON ( content_playerclipbutton ), TRUE);
+  else
+       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON ( content_playerclipbutton ), FALSE);
+
+  if(diff_contents & HERETIC2_CONTENTS_MONSTERCLIP)
+    set_inconsistent(content_monsterclipbutton);
+  else if(contents & HERETIC2_CONTENTS_MONSTERCLIP)
+       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON ( content_monsterclipbutton ), TRUE);
+  else
+       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON ( content_monsterclipbutton ), FALSE);
+
+  if(diff_contents & HERETIC2_CONTENTS_CURRENT_0)
+    set_inconsistent(content_current0button);
+  else if(contents & HERETIC2_CONTENTS_CURRENT_0)
+       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON ( content_current0button ), TRUE);
+  else
+       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON ( content_current0button ), FALSE);
+
+  if(diff_contents & HERETIC2_CONTENTS_CURRENT_90)
+    set_inconsistent(content_current90button);
+  else if(contents & HERETIC2_CONTENTS_CURRENT_90)
+       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON ( content_current90button ), TRUE);
+  else
+       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON ( content_current90button ), FALSE);
+
+  if(diff_contents & HERETIC2_CONTENTS_CURRENT_180)
+    set_inconsistent(content_current180button);
+  else if(contents & HERETIC2_CONTENTS_CURRENT_180)
+       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON ( content_current180button ), TRUE);
+  else
+       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON ( content_current180button ), FALSE);
+
+  if(diff_contents & HERETIC2_CONTENTS_CURRENT_270)
+    set_inconsistent(content_current270button);
+  else if(contents & HERETIC2_CONTENTS_CURRENT_270)
+       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON ( content_current270button ), TRUE);
+  else
+       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON ( content_current270button ), FALSE);
+
+  if(diff_contents & HERETIC2_CONTENTS_CURRENT_UP)
+    set_inconsistent(content_currentUPbutton);
+  else if(contents & HERETIC2_CONTENTS_CURRENT_UP)
+       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON ( content_currentUPbutton ), TRUE);
+  else
+       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON ( content_currentUPbutton ), FALSE);
+
+  if(diff_contents & HERETIC2_CONTENTS_CURRENT_DOWN)
+    set_inconsistent(content_currentDOWNbutton);
+  else if(contents & HERETIC2_CONTENTS_CURRENT_DOWN)
+       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON ( content_currentDOWNbutton ), TRUE);
+  else
+       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON ( content_currentDOWNbutton ), FALSE);
+
+  if(diff_contents & HERETIC2_CONTENTS_ORIGIN)
+    set_inconsistent(content_originbutton);
+  else if(contents & HERETIC2_CONTENTS_ORIGIN)
+       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON ( content_originbutton ), TRUE);
+  else
+       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON ( content_originbutton ), FALSE);
+
+  if(diff_contents & HERETIC2_CONTENTS_DETAIL)
+    set_inconsistent(content_detailbutton);
+  else if(contents & HERETIC2_CONTENTS_DETAIL)
+       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON ( content_detailbutton ), TRUE);
+  else
+       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON ( content_detailbutton ), FALSE);
+
+  if(diff_contents & HERETIC2_CONTENTS_LADDER)
+    set_inconsistent(content_ladderbutton);
+  else if(contents & HERETIC2_CONTENTS_LADDER)
+       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON ( content_ladderbutton ), TRUE);
+  else
+       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON ( content_ladderbutton ), FALSE);
+
+  if(diff_contents & HERETIC2_CONTENTS_CAMERANOBLOCK)
+    set_inconsistent(content_camnoblockbutton);
+  else if(contents & HERETIC2_CONTENTS_CAMERANOBLOCK)
+       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON ( content_camnoblockbutton ), TRUE);
+  else
+       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON ( content_camnoblockbutton ), FALSE);
+
+  // Set Value
+  if(diff_value)
+    gtk_entry_set_text( (GtkEntry *)surf_value_entry, "");
+  else
+  {
+    working_value = value;
+    sprintf( tex_buff, "%d", value);
+    gtk_entry_set_text( (GtkEntry *)surf_value_entry, tex_buff);
+  }
+
+  setup_buttons = FALSE;
+}
+
+void SetChangeInFlags_Face_Heretic2 (texdef_to_face_t *texdef_face_list)
+{
+  texdef_to_face_t *temp_texdef_face_list;
+  texdef_t *tmp_texdef;
+
+  for (temp_texdef_face_list = texdef_face_list; temp_texdef_face_list; temp_texdef_face_list = temp_texdef_face_list->next)
+  {
+    tmp_texdef = &temp_texdef_face_list->texdef;
+    tmp_texdef->flags = (tmp_texdef->flags & ~surface_mask) | working_surface_flags;
+    tmp_texdef->contents = (tmp_texdef->contents & ~content_mask) | working_content_flags;
+    tmp_texdef->value = working_value;
+    Sys_Printf("content_flag: %d     content_mask: %d\n",working_content_flags,content_mask);
+    Sys_Printf("content: %d\n",tmp_texdef->contents);
+  }
+}
+
+inline void change_surfaceflag (GtkWidget *togglebutton, int sur_flag) // For Material
+{
+  if (!setup_buttons) // If we're setting up the buttons, we really don't need to
+  {                   // set flags that are already set
+    if (surface_material_inconsistant)
+    {
+      clear_inconsistent( surf_gravel_radiobutton );
+      clear_inconsistent( surf_metal_radiobutton );
+      clear_inconsistent( surf_stone_radiobutton );
+      clear_inconsistent( surf_wood_radiobutton );
+    }
+    surface_mask |= ~HERETIC2_SURF_MATERIAL_MASK;
+    working_surface_flags = (working_surface_flags & HERETIC2_SURF_MATERIAL_MASK) | sur_flag;
+  }
+}
+
+inline void change_material (GtkWidget *togglebutton)
+{
+  if (!setup_buttons) // If we're setting up the buttons, we really don't need to
+  {                   // set flags that are already set
+    if (surface_material_inconsistant)
+    {
+      clear_inconsistent( surf_gravel_radiobutton );
+      clear_inconsistent( surf_metal_radiobutton );
+      clear_inconsistent( surf_stone_radiobutton );
+      clear_inconsistent( surf_wood_radiobutton );
+    }
+    if ( gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(surf_gravel_radiobutton))  )
+    {
+      surface_mask |= ~HERETIC2_SURF_MATERIAL_MASK;
+      working_surface_flags = (working_surface_flags & HERETIC2_SURF_MATERIAL_MASK) | HERETIC2_SURF_TYPE_GRAVEL;
+    }
+    else if ( gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(surf_metal_radiobutton)) )
+    {
+      surface_mask |= ~HERETIC2_SURF_MATERIAL_MASK;
+      working_surface_flags = (working_surface_flags & HERETIC2_SURF_MATERIAL_MASK) | HERETIC2_SURF_TYPE_METAL;
+    }
+    else if ( gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(surf_stone_radiobutton)) )
+    {
+      surface_mask |= ~HERETIC2_SURF_MATERIAL_MASK;
+      working_surface_flags = (working_surface_flags & HERETIC2_SURF_MATERIAL_MASK) | HERETIC2_SURF_TYPE_STONE;
+    }
+    else if ( gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(surf_wood_radiobutton)) )
+    {
+      surface_mask |= ~HERETIC2_SURF_MATERIAL_MASK;
+      working_surface_flags = (working_surface_flags & HERETIC2_SURF_MATERIAL_MASK) | HERETIC2_SURF_TYPE_WOOD;
+    }
+  }
+}
+
+inline void change_surfaceflag (GtkWidget *togglebutton, int sur_flag, gboolean change_flag_to)
+{
+
+  if (!setup_buttons) // If we're setting up the buttons, we really don't need to
+  {                   // set flags that are already set
+    if (gtk_toggle_button_get_inconsistent(GTK_TOGGLE_BUTTON (togglebutton))) // Clear out inconsistent, if set
+           clear_inconsistent(GTK_WIDGET (togglebutton));
+
+    surface_mask |= sur_flag;
+
+    if (change_flag_to)
+      working_surface_flags |= sur_flag;
+    else
+      working_surface_flags &= ~sur_flag;
+  }
+}
+
+inline void change_contentflag (GtkWidget *togglebutton, int content_flag, gboolean change_flag_to)
+{
+
+  if ( (!setup_buttons) )  // If we're setting up the buttons, we really don't need to
+  {                        // set flags that are already set
+
+    if (gtk_toggle_button_get_inconsistent(GTK_TOGGLE_BUTTON (togglebutton)))
+           clear_inconsistent(togglebutton);
+    //if (g_ptrSelectedFaces.GetSize() == 0)  // Only changing content flags on whole brushes, not faces.
+    //{
+      content_mask |= content_flag;
+
+    if (change_flag_to)
+      working_content_flags |= content_flag;
+    else
+      working_content_flags &= ~content_flag;
+    //}
+  }
+}
+
+// Surface Flags Callbacks
+void
+on_surface_lightbutton_toggled         (GtkToggleButton *togglebutton,
+                                        gpointer         user_data)
+{
+  change_surfaceflag(surface_lightbutton, HERETIC2_SURF_LIGHT, (GTK_TOGGLE_BUTTON (surface_lightbutton)->active));
+}
+
+
+void
+on_surface_slickbutton_toggled         (GtkToggleButton *togglebutton,
+                                        gpointer         user_data)
+{
+  change_surfaceflag(surface_slickbutton, HERETIC2_SURF_SLICK, (GTK_TOGGLE_BUTTON (surface_slickbutton)->active));
+}
+
+
+void
+on_surface_skybutton_toggled           (GtkToggleButton *togglebutton,
+                                        gpointer         user_data)
+{
+  change_surfaceflag(surface_skybutton, HERETIC2_SURF_SKY, (GTK_TOGGLE_BUTTON (surface_skybutton)->active));
+}
+
+
+void
+on_surface_warpbutton_toggled          (GtkToggleButton *togglebutton,
+                                        gpointer         user_data)
+{
+  change_surfaceflag(surface_warpbutton, HERETIC2_SURF_WARP, (GTK_TOGGLE_BUTTON (surface_warpbutton)->active));
+}
+
+
+void
+on_surface_trans33button_toggled       (GtkToggleButton *togglebutton,
+                                        gpointer         user_data)
+{
+  change_surfaceflag(surface_trans33button, HERETIC2_SURF_TRANS33, (GTK_TOGGLE_BUTTON (surface_trans33button)->active));
+}
+
+
+void
+on_surface_trans66button_toggled       (GtkToggleButton *togglebutton,
+                                        gpointer         user_data)
+{
+  change_surfaceflag(surface_trans66button, HERETIC2_SURF_TRANS66, (GTK_TOGGLE_BUTTON (surface_trans66button)->active));
+}
+
+
+void
+on_surface_flowingbutton_toggled       (GtkToggleButton *togglebutton,
+                                        gpointer         user_data)
+{
+  change_surfaceflag(surface_flowingbutton, HERETIC2_SURF_FLOWING, (GTK_TOGGLE_BUTTON (surface_flowingbutton)->active));
+}
+
+
+void
+on_surface_nodrawbutton_toggled        (GtkToggleButton *togglebutton,
+                                        gpointer         user_data)
+{
+  change_surfaceflag(surface_nodrawbutton, HERETIC2_SURF_NODRAW, (GTK_TOGGLE_BUTTON (surface_nodrawbutton)->active));
+}
+
+
+void
+on_surface_tallwallbutton_toggled      (GtkToggleButton *togglebutton,
+                                        gpointer         user_data)
+{
+  change_surfaceflag(surface_tallwallbutton, HERETIC2_SURF_TALL_WALL, (GTK_TOGGLE_BUTTON (surface_tallwallbutton)->active));
+}
+
+
+void
+on_surface_alphatexbutton_toggled      (GtkToggleButton *togglebutton,
+                                        gpointer         user_data)
+{
+  change_surfaceflag(surface_alphatexbutton, HERETIC2_SURF_ALPHA_TEXTURE, (GTK_TOGGLE_BUTTON (surface_alphatexbutton)->active));
+}
+
+
+void
+on_surface_animspeedbutton_toggled     (GtkToggleButton *togglebutton,
+                                        gpointer         user_data)
+{
+  change_surfaceflag(surface_animspeedbutton, HERETIC2_SURF_ANIMSPEED, (GTK_TOGGLE_BUTTON (surface_animspeedbutton)->active));
+}
+
+
+void
+on_surface_undulatebutton_toggled      (GtkToggleButton *togglebutton,
+                                        gpointer         user_data)
+{
+  change_surfaceflag(surface_undulatebutton, HERETIC2_SURF_UNDULATE, (GTK_TOGGLE_BUTTON (surface_undulatebutton)->active));
+}
+
+
+void
+on_surf_gravel_radiobutton_toggled     (GtkToggleButton *togglebutton,
+                                        gpointer         user_data)
+{
+  if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(surf_gravel_radiobutton)))
+    change_material(GTK_WIDGET(togglebutton));
+}
+
+void
+on_surf_metal_radiobutton_toggled     (GtkToggleButton *togglebutton,
+                                        gpointer         user_data)
+{
+  if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(surf_metal_radiobutton)))
+    change_material(GTK_WIDGET(togglebutton));
+}
+
+void
+on_surf_stone_radiobutton_toggled     (GtkToggleButton *togglebutton,
+                                        gpointer         user_data)
+{
+  if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(surf_stone_radiobutton)))
+    change_material(GTK_WIDGET(togglebutton));
+}
+
+void
+on_surf_wood_radiobutton_toggled     (GtkToggleButton *togglebutton,
+                                        gpointer         user_data)
+{
+  if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(surf_wood_radiobutton)))
+    change_material(GTK_WIDGET(togglebutton));
+}
+
+// Content Flags Callbacks
+void
+on_content_solidbutton_toggled         (GtkToggleButton *togglebutton,
+                                        gpointer         user_data)
+{
+  change_contentflag(content_solidbutton, HERETIC2_CONTENTS_SOLID, (GTK_TOGGLE_BUTTON (content_solidbutton)->active));
+}
+
+
+void
+on_content_windowbutton_toggled        (GtkToggleButton *togglebutton,
+                                        gpointer         user_data)
+{
+  change_contentflag(content_windowbutton, HERETIC2_CONTENTS_WINDOW, (GTK_TOGGLE_BUTTON (content_windowbutton)->active));
+}
+
+
+void
+on_content_illusbutton_toggled         (GtkToggleButton *togglebutton,
+                                        gpointer         user_data)
+{
+  change_contentflag(content_illusbutton, HERETIC2_CONTENTS_ILLUSIONARY, (GTK_TOGGLE_BUTTON (content_illusbutton)->active));
+}
+
+
+void
+on_content_lavabutton_toggled          (GtkToggleButton *togglebutton,
+                                        gpointer         user_data)
+{
+  change_contentflag(content_lavabutton, HERETIC2_CONTENTS_LAVA, (GTK_TOGGLE_BUTTON (content_lavabutton)->active));
+}
+
+
+void
+on_content_slimebutton_toggled         (GtkToggleButton *togglebutton,
+                                        gpointer         user_data)
+{
+  change_contentflag(content_slimebutton, HERETIC2_CONTENTS_SLIME, (GTK_TOGGLE_BUTTON (content_slimebutton)->active));
+}
+
+
+void
+on_content_waterbutton_toggled         (GtkToggleButton *togglebutton,
+                                        gpointer         user_data)
+{
+  change_contentflag(content_waterbutton, HERETIC2_CONTENTS_WATER, (GTK_TOGGLE_BUTTON (content_waterbutton)->active));
+}
+
+
+void
+on_content_mistbutton_toggled          (GtkToggleButton *togglebutton,
+                                        gpointer         user_data)
+{
+  change_contentflag(content_mistbutton, HERETIC2_CONTENTS_MIST, (GTK_TOGGLE_BUTTON (content_mistbutton)->active));
+}
+
+
+void
+on_content_areaportalbutton_toggled    (GtkToggleButton *togglebutton,
+                                        gpointer         user_data)
+{
+  change_contentflag(content_areaportalbutton, HERETIC2_CONTENTS_AREAPORTAL, (GTK_TOGGLE_BUTTON (content_areaportalbutton)->active));
+}
+
+
+void
+on_content_playerclipbutton_toggled    (GtkToggleButton *togglebutton,
+                                        gpointer         user_data)
+{
+  change_contentflag(content_playerclipbutton, HERETIC2_CONTENTS_PLAYERCLIP, (GTK_TOGGLE_BUTTON (content_playerclipbutton)->active));
+}
+
+
+void
+on_content_monsterclipbutton_toggled   (GtkToggleButton *togglebutton,
+                                        gpointer         user_data)
+{
+  change_contentflag(content_monsterclipbutton, HERETIC2_CONTENTS_MONSTERCLIP, (GTK_TOGGLE_BUTTON (content_monsterclipbutton)->active));
+}
+
+
+void
+on_content_current0button_toggled      (GtkToggleButton *togglebutton,
+                                        gpointer         user_data)
+{
+  change_contentflag(content_current0button, HERETIC2_CONTENTS_CURRENT_0, (GTK_TOGGLE_BUTTON (content_current0button)->active));
+}
+
+
+void
+on_content_current90button_toggled     (GtkToggleButton *togglebutton,
+                                        gpointer         user_data)
+{
+  change_contentflag(content_current90button, HERETIC2_CONTENTS_CURRENT_90, (GTK_TOGGLE_BUTTON (content_current90button)->active));
+}
+
+
+void
+on_content_current180button_toggled    (GtkToggleButton *togglebutton,
+                                        gpointer         user_data)
+{
+  change_contentflag(content_current180button, HERETIC2_CONTENTS_CURRENT_180, (GTK_TOGGLE_BUTTON (content_current180button)->active));
+}
+
+
+void
+on_content_current270button_toggled    (GtkToggleButton *togglebutton,
+                                        gpointer         user_data)
+{
+  change_contentflag(content_current270button, HERETIC2_CONTENTS_CURRENT_270, (GTK_TOGGLE_BUTTON (content_current270button)->active));
+}
+
+
+void
+on_content_currentUPbutton_toggled     (GtkToggleButton *togglebutton,
+                                        gpointer         user_data)
+{
+  change_contentflag(content_currentUPbutton, HERETIC2_CONTENTS_CURRENT_UP, (GTK_TOGGLE_BUTTON (content_currentUPbutton)->active));
+}
+
+
+void
+on_content_currentDOWNbutton_toggled   (GtkToggleButton *togglebutton,
+                                        gpointer         user_data)
+{
+  change_contentflag(content_currentDOWNbutton, HERETIC2_CONTENTS_CURRENT_DOWN, (GTK_TOGGLE_BUTTON (content_currentDOWNbutton)->active));
+}
+
+
+void
+on_content_originbutton_toggled        (GtkToggleButton *togglebutton,
+                                        gpointer         user_data)
+{
+  change_contentflag(content_originbutton, HERETIC2_CONTENTS_ORIGIN, (GTK_TOGGLE_BUTTON (content_originbutton)->active));
+}
+
+
+void
+on_content_detailbutton_toggled        (GtkToggleButton *togglebutton,
+                                        gpointer         user_data)
+{
+  change_contentflag(content_detailbutton, HERETIC2_CONTENTS_DETAIL, (GTK_TOGGLE_BUTTON (content_detailbutton)->active));
+}
+
+
+void
+on_content_ladderbutton_toggled        (GtkToggleButton *togglebutton,
+                                        gpointer         user_data)
+{
+  change_contentflag(content_ladderbutton, HERETIC2_CONTENTS_LADDER, (GTK_TOGGLE_BUTTON (content_ladderbutton)->active));
+}
+
+
+void
+on_content_camnoblockbutton_toggled    (GtkToggleButton *togglebutton,
+                                        gpointer         user_data)
+{
+  change_contentflag(content_camnoblockbutton, HERETIC2_CONTENTS_CAMERANOBLOCK, (GTK_TOGGLE_BUTTON (content_camnoblockbutton)->active));
+}
+
+// Value Entry Callback
+void
+on_surf_value_entry_changed             (GtkEditable     *editable,
+                                        gpointer         user_data)
+{
+  if ( (!setup_buttons) )  // If we're setting up the buttons, don't change value
+    working_value = atoi( gtk_entry_get_text( (GtkEntry*)editable) );
+}
+
+void
+on_surf_value_entry_insert_text         (GtkEditable     *editable,
+                                        gchar           *new_text,
+                                        gint             new_text_length,
+                                        gint            *position,
+                                        gpointer         user_data)
+{
+  int i, count=0;
+  gchar *result;
+
+  // Limit input to digits, throwing out anything else
+  // Modified from Gtk FAQ for text filtering of GtkEntry
+  result = g_new (gchar, new_text_length);
+
+  for (i=0; i < new_text_length; i++) {
+    if (!isdigit(new_text[i]))
+      continue;
+  result[count++] = new_text[i];
+  }
+
+  if (count > 0) {
+    gtk_signal_handler_block_by_func (GTK_OBJECT (editable),
+                                     GTK_SIGNAL_FUNC (on_surf_value_entry_insert_text),
+                                     user_data);
+    gtk_editable_insert_text (editable, result, count, position);
+    gtk_signal_handler_unblock_by_func (GTK_OBJECT (editable),
+                                       GTK_SIGNAL_FUNC (on_surf_value_entry_insert_text),
+                                       user_data);
+  }
+  gtk_signal_emit_stop_by_name (GTK_OBJECT (editable), "insert_text");
+
+  g_free (result);
+}
+
+#define HERETIC2_FLAG_BUTTON_BORDER 3
+
+GtkWidget* Create_Heretic2FlagsDialog (GtkWidget* surfacedialog_widget)
+{
+  GtkWidget *frame1;
+  GtkWidget *notebook1;
+  GtkWidget *vbox3;
+  GtkWidget *table1;
+  GtkWidget *frame2;
+  GtkWidget *hbox4;
+  GtkWidget *label4;
+  GtkWidget *table3;
+  GtkWidget *label5;
+
+  GtkWidget *hbox1;
+  GtkWidget *hbox2;
+  GtkWidget *label2;
+  GtkWidget *table2;
+  GtkWidget *label3;
+
+
+  frame1 = gtk_frame_new (_("Brush/Face Flags"));
+  gtk_widget_show (frame1);
+  gtk_container_add (GTK_CONTAINER (surfacedialog_widget), frame1);
+
+  notebook1 = gtk_notebook_new ();
+  gtk_widget_show (notebook1);
+  gtk_container_add (GTK_CONTAINER (frame1), notebook1);
+
+  vbox3 = gtk_vbox_new (FALSE, 0);
+  gtk_widget_show (vbox3);
+  gtk_container_add (GTK_CONTAINER (notebook1), vbox3);
+
+  table1 = gtk_table_new (3, 4, TRUE);
+  gtk_widget_show (table1);
+  gtk_box_pack_start (GTK_BOX (vbox3), table1, TRUE, TRUE, 0);
+
+  surface_lightbutton = gtk_toggle_button_new_with_mnemonic (_("Light"));
+  gtk_widget_show (surface_lightbutton);
+  gtk_table_attach (GTK_TABLE (table1), surface_lightbutton, 0, 1, 0, 1,
+                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
+                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0);
+
+  surface_slickbutton = gtk_toggle_button_new_with_mnemonic (_("Slick"));
+  gtk_widget_show (surface_slickbutton);
+  gtk_table_attach (GTK_TABLE (table1), surface_slickbutton, 1, 2, 0, 1,
+                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
+                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0);
+
+  surface_skybutton = gtk_toggle_button_new_with_mnemonic (_("Sky"));
+  gtk_widget_show (surface_skybutton);
+  gtk_table_attach (GTK_TABLE (table1), surface_skybutton, 2, 3, 0, 1,
+                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
+                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0);
+
+  surface_warpbutton = gtk_toggle_button_new_with_mnemonic (_("Warp"));
+  gtk_widget_show (surface_warpbutton);
+  gtk_table_attach (GTK_TABLE (table1), surface_warpbutton, 3, 4, 0, 1,
+                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
+                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0);
+
+  surface_trans33button = gtk_toggle_button_new_with_mnemonic (_("Trans33"));
+  gtk_widget_show (surface_trans33button);
+  gtk_table_attach (GTK_TABLE (table1), surface_trans33button, 0, 1, 1, 2,
+                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
+                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0);
+
+  surface_trans66button = gtk_toggle_button_new_with_mnemonic (_("Trans66"));
+  gtk_widget_show (surface_trans66button);
+  gtk_table_attach (GTK_TABLE (table1), surface_trans66button, 1, 2, 1, 2,
+                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
+                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0);
+
+  surface_flowingbutton = gtk_toggle_button_new_with_mnemonic (_("Flowing"));
+  gtk_widget_show (surface_flowingbutton);
+  gtk_table_attach (GTK_TABLE (table1), surface_flowingbutton, 2, 3, 1, 2,
+                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
+                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0);
+
+  surface_nodrawbutton = gtk_toggle_button_new_with_mnemonic (_("NoDraw"));
+  gtk_widget_show (surface_nodrawbutton);
+  gtk_table_attach (GTK_TABLE (table1), surface_nodrawbutton, 3, 4, 1, 2,
+                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
+                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0);
+
+  surface_tallwallbutton = gtk_toggle_button_new_with_mnemonic (_("TallWall"));
+  gtk_widget_show (surface_tallwallbutton);
+  gtk_table_attach (GTK_TABLE (table1), surface_tallwallbutton, 0, 1, 2, 3,
+                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
+                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0);
+
+  surface_alphatexbutton = gtk_toggle_button_new_with_mnemonic (_("AlphaTex"));
+  gtk_widget_show (surface_alphatexbutton);
+  gtk_table_attach (GTK_TABLE (table1), surface_alphatexbutton, 1, 2, 2, 3,
+                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
+                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0);
+
+  surface_animspeedbutton = gtk_toggle_button_new_with_mnemonic (_("AnimSpeed"));
+  gtk_widget_show (surface_animspeedbutton);
+  gtk_table_attach (GTK_TABLE (table1), surface_animspeedbutton, 2, 3, 2, 3,
+                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
+                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0);
+
+  surface_undulatebutton = gtk_toggle_button_new_with_mnemonic (_("Undulate"));
+  gtk_widget_show (surface_undulatebutton);
+  gtk_table_attach (GTK_TABLE (table1), surface_undulatebutton, 3, 4, 2, 3,
+                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
+                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0);
+
+  frame2 = gtk_frame_new (NULL);
+  gtk_widget_show (frame2);
+  gtk_box_pack_start (GTK_BOX (vbox3), frame2, FALSE, FALSE, 0);
+  gtk_frame_set_shadow_type (GTK_FRAME (frame2), GTK_SHADOW_ETCHED_OUT);
+  gtk_container_set_border_width (GTK_CONTAINER (frame2), 4);
+
+  hbox4 = gtk_hbox_new (FALSE, 0);
+  gtk_widget_show (hbox4);
+  gtk_container_add (GTK_CONTAINER (frame2), hbox4);
+
+  surf_gravel_radiobutton = gtk_radio_button_new_with_mnemonic (NULL, _("Gravel"));
+  gtk_widget_show (surf_gravel_radiobutton);
+  gtk_box_pack_start (GTK_BOX (hbox4), surf_gravel_radiobutton, TRUE, FALSE, 0);
+
+  surf_metal_radiobutton = gtk_radio_button_new_with_mnemonic_from_widget (GTK_RADIO_BUTTON(surf_gravel_radiobutton), _("Metal"));
+  gtk_widget_show (surf_metal_radiobutton);
+  gtk_box_pack_start (GTK_BOX (hbox4), surf_metal_radiobutton, TRUE, FALSE, 0);
+
+  surf_stone_radiobutton = gtk_radio_button_new_with_mnemonic_from_widget (GTK_RADIO_BUTTON(surf_metal_radiobutton), _("Stone"));
+  gtk_widget_show (surf_stone_radiobutton);
+  gtk_box_pack_start (GTK_BOX (hbox4), surf_stone_radiobutton, TRUE, FALSE, 0);
+
+  surf_wood_radiobutton = gtk_radio_button_new_with_mnemonic_from_widget (GTK_RADIO_BUTTON(surf_stone_radiobutton), _("Wood"));
+  gtk_widget_show (surf_wood_radiobutton);
+  gtk_box_pack_start (GTK_BOX (hbox4), surf_wood_radiobutton, TRUE, FALSE, 0);
+
+  label4 = gtk_label_new (_("Material"));
+  gtk_widget_show (label4);
+  gtk_frame_set_label_widget (GTK_FRAME (frame2), label4);
+  gtk_label_set_justify (GTK_LABEL (label4), GTK_JUSTIFY_LEFT);
+
+  table3 = gtk_table_new (1, 4, FALSE);
+  gtk_widget_show (table3);
+  gtk_box_pack_start (GTK_BOX (vbox3), table3, FALSE, FALSE, 0);
+  gtk_container_set_border_width (GTK_CONTAINER (table3), 3);
+
+  hbox1 = gtk_hbox_new (FALSE, 0);
+  gtk_widget_show (hbox1);
+  gtk_table_attach (GTK_TABLE (table3), hbox1, 0, 1, 0, 1,
+                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
+                    (GtkAttachOptions) (GTK_FILL), 0, 0);
+
+  label5 = gtk_label_new (_("Value: "));
+  gtk_widget_show (label5);
+  gtk_table_attach (GTK_TABLE (table3), label5, 1, 2, 0, 1,
+                    (GtkAttachOptions) (0),
+                    (GtkAttachOptions) (0), 0, 0);
+  gtk_misc_set_alignment (GTK_MISC (label5), 0, 0);
+  gtk_label_set_justify (GTK_LABEL (label5), GTK_JUSTIFY_RIGHT);
+
+  surf_value_entry = gtk_entry_new ();
+  gtk_widget_show (surf_value_entry);
+  gtk_table_attach (GTK_TABLE (table3), surf_value_entry, 2, 3, 0, 1,
+                    (GtkAttachOptions) (GTK_FILL),
+                    (GtkAttachOptions) (0), 0, 0);
+
+  hbox2 = gtk_hbox_new (FALSE, 0);
+  gtk_widget_show (hbox2);
+  gtk_table_attach (GTK_TABLE (table3), hbox2, 3, 4, 0, 1,
+                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
+                    (GtkAttachOptions) (GTK_FILL), 0, 0);
+
+  label2 = gtk_label_new (_("Surface Flags"));
+  gtk_widget_show (label2);
+  gtk_notebook_set_tab_label (GTK_NOTEBOOK (notebook1), gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook1), 0), label2);
+  gtk_label_set_justify (GTK_LABEL (label2), GTK_JUSTIFY_LEFT);
+
+  table2 = gtk_table_new (5, 4, TRUE);
+  gtk_widget_show (table2);
+  gtk_container_add (GTK_CONTAINER (notebook1), table2);
+
+  content_solidbutton = gtk_toggle_button_new_with_mnemonic (_("Solid"));
+  gtk_widget_show (content_solidbutton);
+  gtk_table_attach (GTK_TABLE (table2), content_solidbutton, 0, 1, 0, 1,
+                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
+                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0);
+
+  content_windowbutton = gtk_toggle_button_new_with_mnemonic (_("Window"));
+  gtk_widget_show (content_windowbutton);
+  gtk_table_attach (GTK_TABLE (table2), content_windowbutton, 1, 2, 0, 1,
+                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
+                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0);
+
+  content_illusbutton = gtk_toggle_button_new_with_mnemonic (_("Illusion"));
+  gtk_widget_show (content_illusbutton);
+  gtk_table_attach (GTK_TABLE (table2), content_illusbutton, 2, 3, 0, 1,
+                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
+                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0);
+
+  content_lavabutton = gtk_toggle_button_new_with_mnemonic (_("Lava"));
+  gtk_widget_show (content_lavabutton);
+  gtk_table_attach (GTK_TABLE (table2), content_lavabutton, 3, 4, 0, 1,
+                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
+                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0);
+
+  content_slimebutton = gtk_toggle_button_new_with_mnemonic (_("Slime"));
+  gtk_widget_show (content_slimebutton);
+  gtk_table_attach (GTK_TABLE (table2), content_slimebutton, 0, 1, 1, 2,
+                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
+                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0);
+
+  content_waterbutton = gtk_toggle_button_new_with_mnemonic (_("Water"));
+  gtk_widget_show (content_waterbutton);
+  gtk_table_attach (GTK_TABLE (table2), content_waterbutton, 1, 2, 1, 2,
+                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
+                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0);
+
+  content_mistbutton = gtk_toggle_button_new_with_mnemonic (_("Mist"));
+  gtk_widget_show (content_mistbutton);
+  gtk_table_attach (GTK_TABLE (table2), content_mistbutton, 2, 3, 1, 2,
+                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
+                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0);
+
+  content_areaportalbutton = gtk_toggle_button_new_with_mnemonic (_("AreaPortal"));
+  gtk_widget_show (content_areaportalbutton);
+  gtk_table_attach (GTK_TABLE (table2), content_areaportalbutton, 3, 4, 1, 2,
+                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
+                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0);
+
+  content_playerclipbutton = gtk_toggle_button_new_with_mnemonic (_("PlayerClip"));
+  gtk_widget_show (content_playerclipbutton);
+  gtk_table_attach (GTK_TABLE (table2), content_playerclipbutton, 0, 1, 2, 3,
+                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
+                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0);
+
+  content_monsterclipbutton = gtk_toggle_button_new_with_mnemonic (_("MonsterClip"));
+  gtk_widget_show (content_monsterclipbutton);
+  gtk_table_attach (GTK_TABLE (table2), content_monsterclipbutton, 1, 2, 2, 3,
+                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
+                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0);
+
+  content_current0button = gtk_toggle_button_new_with_mnemonic (_("Current 0"));
+  gtk_widget_show (content_current0button);
+  gtk_table_attach (GTK_TABLE (table2), content_current0button, 2, 3, 2, 3,
+                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
+                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0);
+
+  content_current90button = gtk_toggle_button_new_with_mnemonic (_("Current 90"));
+  gtk_widget_show (content_current90button);
+  gtk_table_attach (GTK_TABLE (table2), content_current90button, 3, 4, 2, 3,
+                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
+                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0);
+
+  content_current180button = gtk_toggle_button_new_with_mnemonic (_("Current 180"));
+  gtk_widget_show (content_current180button);
+  gtk_table_attach (GTK_TABLE (table2), content_current180button, 0, 1, 3, 4,
+                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
+                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0);
+
+  content_current270button = gtk_toggle_button_new_with_mnemonic (_("Current 270"));
+  gtk_widget_show (content_current270button);
+  gtk_table_attach (GTK_TABLE (table2), content_current270button, 1, 2, 3, 4,
+                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
+                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0);
+
+  content_currentUPbutton = gtk_toggle_button_new_with_mnemonic (_("Current UP"));
+  gtk_widget_show (content_currentUPbutton);
+  gtk_table_attach (GTK_TABLE (table2), content_currentUPbutton, 2, 3, 3, 4,
+                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
+                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0);
+
+  content_currentDOWNbutton = gtk_toggle_button_new_with_mnemonic (_("Current DOWN"));
+  gtk_widget_show (content_currentDOWNbutton);
+  gtk_table_attach (GTK_TABLE (table2), content_currentDOWNbutton, 3, 4, 3, 4,
+                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
+                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0);
+
+  content_originbutton = gtk_toggle_button_new_with_mnemonic (_("Origin"));
+  gtk_widget_show (content_originbutton);
+  gtk_table_attach (GTK_TABLE (table2), content_originbutton, 0, 1, 4, 5,
+                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
+                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0);
+
+  content_detailbutton = gtk_toggle_button_new_with_mnemonic (_("Detail"));
+  gtk_widget_show (content_detailbutton);
+  gtk_table_attach (GTK_TABLE (table2), content_detailbutton, 1, 2, 4, 5,
+                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
+                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0);
+
+  content_ladderbutton = gtk_toggle_button_new_with_mnemonic (_("Ladder"));
+  gtk_widget_show (content_ladderbutton);
+  gtk_table_attach (GTK_TABLE (table2), content_ladderbutton, 2, 3, 4, 5,
+                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
+                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0);
+
+  content_camnoblockbutton = gtk_toggle_button_new_with_mnemonic (_("Cam No Block"));
+  gtk_widget_show (content_camnoblockbutton);
+  gtk_table_attach (GTK_TABLE (table2), content_camnoblockbutton, 3, 4, 4, 5,
+                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
+                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0);
+
+  label3 = gtk_label_new (_("Content Flags"));
+  gtk_widget_show (label3);
+  gtk_notebook_set_tab_label (GTK_NOTEBOOK (notebook1), gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook1), 1), label3);
+  gtk_label_set_justify (GTK_LABEL (label3), GTK_JUSTIFY_LEFT);
+
+  // Signal Connects
+  g_signal_connect ((gpointer) surface_lightbutton, "toggled",
+                    G_CALLBACK (on_surface_lightbutton_toggled),
+                    NULL);
+  g_signal_connect ((gpointer) surface_slickbutton, "toggled",
+                    G_CALLBACK (on_surface_slickbutton_toggled),
+                    NULL);
+  g_signal_connect ((gpointer) surface_skybutton, "toggled",
+                    G_CALLBACK (on_surface_skybutton_toggled),
+                    NULL);
+  g_signal_connect ((gpointer) surface_warpbutton, "toggled",
+                    G_CALLBACK (on_surface_warpbutton_toggled),
+                    NULL);
+  g_signal_connect ((gpointer) surface_trans33button, "toggled",
+                    G_CALLBACK (on_surface_trans33button_toggled),
+                    NULL);
+  g_signal_connect ((gpointer) surface_trans66button, "toggled",
+                    G_CALLBACK (on_surface_trans66button_toggled),
+                    NULL);
+  g_signal_connect ((gpointer) surface_flowingbutton, "toggled",
+                    G_CALLBACK (on_surface_flowingbutton_toggled),
+                    NULL);
+  g_signal_connect ((gpointer) surface_nodrawbutton, "toggled",
+                    G_CALLBACK (on_surface_nodrawbutton_toggled),
+                    NULL);
+  g_signal_connect ((gpointer) surface_tallwallbutton, "toggled",
+                    G_CALLBACK (on_surface_tallwallbutton_toggled),
+                    NULL);
+  g_signal_connect ((gpointer) surface_alphatexbutton, "toggled",
+                    G_CALLBACK (on_surface_alphatexbutton_toggled),
+                    NULL);
+  g_signal_connect ((gpointer) surface_animspeedbutton, "toggled",
+                    G_CALLBACK (on_surface_animspeedbutton_toggled),
+                    NULL);
+  g_signal_connect ((gpointer) surface_undulatebutton, "toggled",
+                    G_CALLBACK (on_surface_undulatebutton_toggled),
+                    NULL);
+
+  g_signal_connect ((gpointer) surf_gravel_radiobutton, "toggled",
+                    G_CALLBACK (on_surf_gravel_radiobutton_toggled),
+                    NULL);
+  g_signal_connect ((gpointer) surf_metal_radiobutton, "toggled",
+                    G_CALLBACK (on_surf_metal_radiobutton_toggled),
+                    NULL);
+  g_signal_connect ((gpointer) surf_stone_radiobutton, "toggled",
+                    G_CALLBACK (on_surf_stone_radiobutton_toggled),
+                    NULL);
+  g_signal_connect ((gpointer) surf_wood_radiobutton, "toggled",
+                    G_CALLBACK (on_surf_wood_radiobutton_toggled),
+                    NULL);
+
+  g_signal_connect ((gpointer) surf_value_entry, "changed",
+                    G_CALLBACK (on_surf_value_entry_changed),
+                    NULL);
+  g_signal_connect ((gpointer) surf_value_entry, "insert_text",
+                    G_CALLBACK (on_surf_value_entry_insert_text),
+                    NULL);
+  g_signal_connect ((gpointer) content_solidbutton, "toggled",
+                    G_CALLBACK (on_content_solidbutton_toggled),
+                    NULL);
+  g_signal_connect ((gpointer) content_windowbutton, "toggled",
+                    G_CALLBACK (on_content_windowbutton_toggled),
+                    NULL);
+  g_signal_connect ((gpointer) content_illusbutton, "toggled",
+                    G_CALLBACK (on_content_illusbutton_toggled),
+                    NULL);
+  g_signal_connect ((gpointer) content_lavabutton, "toggled",
+                    G_CALLBACK (on_content_lavabutton_toggled),
+                    NULL);
+  g_signal_connect ((gpointer) content_slimebutton, "toggled",
+                    G_CALLBACK (on_content_slimebutton_toggled),
+                    NULL);
+  g_signal_connect ((gpointer) content_waterbutton, "toggled",
+                    G_CALLBACK (on_content_waterbutton_toggled),
+                    NULL);
+  g_signal_connect ((gpointer) content_mistbutton, "toggled",
+                    G_CALLBACK (on_content_mistbutton_toggled),
+                    NULL);
+  g_signal_connect ((gpointer) content_areaportalbutton, "toggled",
+                    G_CALLBACK (on_content_areaportalbutton_toggled),
+                    NULL);
+  g_signal_connect ((gpointer) content_playerclipbutton, "toggled",
+                    G_CALLBACK (on_content_playerclipbutton_toggled),
+                    NULL);
+  g_signal_connect ((gpointer) content_monsterclipbutton, "toggled",
+                    G_CALLBACK (on_content_monsterclipbutton_toggled),
+                    NULL);
+  g_signal_connect ((gpointer) content_current0button, "toggled",
+                    G_CALLBACK (on_content_current0button_toggled),
+                    NULL);
+  g_signal_connect ((gpointer) content_current90button, "toggled",
+                    G_CALLBACK (on_content_current90button_toggled),
+                    NULL);
+  g_signal_connect ((gpointer) content_current180button, "toggled",
+                    G_CALLBACK (on_content_current180button_toggled),
+                    NULL);
+  g_signal_connect ((gpointer) content_current270button, "toggled",
+                    G_CALLBACK (on_content_current270button_toggled),
+                    NULL);
+  g_signal_connect ((gpointer) content_currentUPbutton, "toggled",
+                    G_CALLBACK (on_content_currentUPbutton_toggled),
+                    NULL);
+  g_signal_connect ((gpointer) content_currentDOWNbutton, "toggled",
+                    G_CALLBACK (on_content_currentDOWNbutton_toggled),
+                    NULL);
+  g_signal_connect ((gpointer) content_originbutton, "toggled",
+                    G_CALLBACK (on_content_originbutton_toggled),
+                    NULL);
+  g_signal_connect ((gpointer) content_detailbutton, "toggled",
+                    G_CALLBACK (on_content_detailbutton_toggled),
+                    NULL);
+  g_signal_connect ((gpointer) content_ladderbutton, "toggled",
+                    G_CALLBACK (on_content_ladderbutton_toggled),
+                    NULL);
+  g_signal_connect ((gpointer) content_camnoblockbutton, "toggled",
+                    G_CALLBACK (on_content_camnoblockbutton_toggled),
+                    NULL);
+
+
+  return frame1;
+}
+