--- /dev/null
+<?xml version="1.0"?>
+<interface>
+ <requires lib="gtk+" version="2.16"/>
+ <!-- interface-naming-policy project-wide -->
+ <object class="GtkListStore" id="MoveHistoryStore">
+ <columns>
+ <!-- column-name Move -->
+ <column type="gint"/>
+ <!-- column-name White -->
+ <column type="gchararray"/>
+ <!-- column-name Black -->
+ <column type="gchararray"/>
+ </columns>
+ </object>
+ <object class="GtkDialog" id="MoveHistory">
+ <property name="border_width">5</property>
+ <property name="type_hint">normal</property>
+ <property name="has_separator">False</property>
+ <child internal-child="vbox">
+ <object class="GtkVBox" id="dialog-vbox1">
+ <property name="visible">True</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">2</property>
+ <child>
+ <object class="GtkScrolledWindow" id="scrolledwindow1">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="hscrollbar_policy">automatic</property>
+ <property name="vscrollbar_policy">automatic</property>
+ <child>
+ <object class="GtkTreeView" id="MoveHistoryView">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="model">MoveHistoryStore</property>
+ <property name="headers_clickable">False</property>
+ <property name="enable_search">False</property>
+ <property name="search_column">0</property>
+ <child>
+ <object class="GtkTreeViewColumn" id="Move">
+ <property name="title">Move</property>
+ <child>
+ <object class="GtkCellRendererText" id="MoveNumberRenderer"/>
+ <attributes>
+ <attribute name="text">0</attribute>
+ </attributes>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="GtkTreeViewColumn" id="White">
+ <property name="title">White</property>
+ <child>
+ <object class="GtkCellRendererText" id="MoveWhiteRenderer"/>
+ <attributes>
+ <attribute name="text">1</attribute>
+ </attributes>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="GtkTreeViewColumn" id="Black">
+ <property name="title">Black</property>
+ <child>
+ <object class="GtkCellRendererText" id="MoveBlackRenderer"/>
+ <attributes>
+ <attribute name="text">2</attribute>
+ </attributes>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child internal-child="action_area">
+ <object class="GtkHButtonBox" id="dialog-action_area1">
+ <property name="visible">True</property>
+ <property name="layout_style">end</property>
+ <child>
+ <object class="GtkButton" id="CloseButton">
+ <property name="label" translatable="yes">gtk-close</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ <property name="use_stock">True</property>
+ <signal name="released" handler="HistoryPopDown"/>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="pack_type">end</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ <action-widgets>
+ <action-widget response="0">CloseButton</action-widget>
+ </action-widgets>
+ </object>
+ <object class="GtkWindow" id="MainWindow">
+ <property name="events">GDK_EXPOSURE_MASK | GDK_STRUCTURE_MASK | GDK_PROPERTY_CHANGE_MASK</property>
+ <property name="title" translatable="yes">XBoard</property>
+ <signal name="destroy" handler="QuitProc"/>
+ <signal name="expose_event" handler="ExposeProc"/>
+ <child>
+ <object class="GtkAspectFrame" id="Aspectframe">
+ <property name="visible">True</property>
+ <property name="label_xalign">0</property>
+ <property name="shadow_type">none</property>
+ <property name="xalign">0</property>
+ <property name="yalign">0</property>
+ <property name="obey_child">False</property>
+ <child>
+ <object class="GtkVBox" id="MenuBox">
+ <property name="visible">True</property>
+ <property name="orientation">vertical</property>
+ <child>
+ <object class="GtkMenuBar" id="MenuBar">
+ <property name="visible">True</property>
+ <child>
+ <object class="GtkMenuItem" id="MenuItemFile">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">_File</property>
+ <property name="use_underline">True</property>
+ <child type="submenu">
+ <object class="GtkMenu" id="MenuFile">
+ <property name="visible">True</property>
+ <child>
+ <object class="GtkMenuItem" id="menuFile.Reset Game">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Reset Game</property>
+ <property name="use_underline">True</property>
+ <signal name="activate" handler="ResetProc"/>
+ </object>
+ </child>
+ <child>
+ <object class="GtkSeparatorMenuItem" id="separatormenuitem1">
+ <property name="visible">True</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkImageMenuItem" id="menuFile.Load Game">
+ <property name="label" translatable="yes">Load Game</property>
+ <property name="visible">True</property>
+ <property name="image">image1</property>
+ <property name="use_stock">False</property>
+ <signal name="activate" handler="LoadGameProc"/>
+ </object>
+ </child>
+ <child>
+ <object class="GtkMenuItem" id="menuFile.Load Next Game">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Load Next Game</property>
+ <property name="use_underline">True</property>
+ <signal name="activate" handler="LoadNextGameProc"/>
+ </object>
+ </child>
+ <child>
+ <object class="GtkMenuItem" id="menuFile.Load Previous Game">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Load Previous Game</property>
+ <property name="use_underline">True</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkMenuItem" id="menuFile.Reload Same Game">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Reload Same Game</property>
+ <property name="use_underline">True</property>
+ <signal name="activate" handler="ReloadGameProc"/>
+ </object>
+ </child>
+ <child>
+ <object class="GtkImageMenuItem" id="menuFile.Save Game">
+ <property name="label" translatable="yes">Save Game</property>
+ <property name="visible">True</property>
+ <property name="image">image2</property>
+ <property name="use_stock">False</property>
+ <signal name="activate" handler="SaveGameProc"/>
+ </object>
+ </child>
+ <child>
+ <object class="GtkSeparatorMenuItem" id="separatormenuitem2">
+ <property name="visible">True</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkMenuItem" id="menuFile.Copy Game">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Copy Game</property>
+ <property name="use_underline">True</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkMenuItem" id="menuFile.Paste Game">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Paste Game</property>
+ <property name="use_underline">True</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkSeparatorMenuItem" id="separatormenuitem3">
+ <property name="visible">True</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkMenuItem" id="menuFile.Load Position">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Load Position</property>
+ <property name="use_underline">True</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkMenuItem" id="menuFile.Load Next Position">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Load Next Position</property>
+ <property name="use_underline">True</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkMenuItem" id="menuFile.Load Previous Position">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Load Previous Position</property>
+ <property name="use_underline">True</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkMenuItem" id="menuFile.Reload Same Position">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Reload Same Position</property>
+ <property name="use_underline">True</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkMenuItem" id="menuFile.Save Position">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Save Position</property>
+ <property name="use_underline">True</property>
+ <signal name="activate" handler="SavePositionProc"/>
+ </object>
+ </child>
+ <child>
+ <object class="GtkSeparatorMenuItem" id="separatormenuitem4">
+ <property name="visible">True</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkMenuItem" id="menuFile.Copy Position">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Copy Position</property>
+ <property name="use_underline">True</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkMenuItem" id="menuFile.Paste Position">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Paste Position</property>
+ <property name="use_underline">True</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkSeparatorMenuItem" id="separatormenuitem5">
+ <property name="visible">True</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkMenuItem" id="menuFile.Mail Move">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Mail Move</property>
+ <property name="use_underline">True</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkMenuItem" id="menuFile.Reload CMail Message">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Reload CMail Message</property>
+ <property name="use_underline">True</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkSeparatorMenuItem" id="separatormenuitem6">
+ <property name="visible">True</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkImageMenuItem" id="menuFile.Quit">
+ <property name="label">gtk-quit</property>
+ <property name="visible">True</property>
+ <property name="use_underline">True</property>
+ <property name="use_stock">True</property>
+ <accelerator key="q" signal="activate" modifiers="GDK_CONTROL_MASK"/>
+ <signal name="activate" handler="QuitProc"/>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="GtkMenuItem" id="MenuItemMode">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">_Mode</property>
+ <property name="use_underline">True</property>
+ <child type="submenu">
+ <object class="GtkMenu" id="menu2">
+ <property name="visible">True</property>
+ <child>
+ <object class="GtkRadioMenuItem" id="menuMode.Machine White">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Machine White</property>
+ <property name="use_underline">True</property>
+ <property name="draw_as_radio">True</property>
+ <signal name="activate" handler="MachineWhiteProc"/>
+ </object>
+ </child>
+ <child>
+ <object class="GtkRadioMenuItem" id="menuMode.Machine Black">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Machine Black</property>
+ <property name="use_underline">True</property>
+ <property name="draw_as_radio">True</property>
+ <property name="group">menuMode.Machine White</property>
+ <signal name="activate" handler="MachineBlackProc"/>
+ </object>
+ </child>
+ <child>
+ <object class="GtkRadioMenuItem" id="menuMode.Two Machines">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Two Machines</property>
+ <property name="use_underline">True</property>
+ <property name="draw_as_radio">True</property>
+ <property name="group">menuMode.Machine White</property>
+ <signal name="activate" handler="TwoMachinesProc"/>
+ </object>
+ </child>
+ <child>
+ <object class="GtkRadioMenuItem" id="menuMode.Analyze Mode">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Analyze Mode</property>
+ <property name="use_underline">True</property>
+ <property name="draw_as_radio">True</property>
+ <property name="group">menuMode.Machine White</property>
+ <signal name="activate" handler="AnalyzeModeProc"/>
+ </object>
+ </child>
+ <child>
+ <object class="GtkRadioMenuItem" id="menuMode.Analyze File">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Analyze File</property>
+ <property name="use_underline">True</property>
+ <property name="draw_as_radio">True</property>
+ <property name="group">menuMode.Machine White</property>
+ <signal name="toggled" handler="AnalyzeFileProc"/>
+ </object>
+ </child>
+ <child>
+ <object class="GtkRadioMenuItem" id="menuMode.ICS Client">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">ICS Client</property>
+ <property name="use_underline">True</property>
+ <property name="draw_as_radio">True</property>
+ <property name="group">menuMode.Machine White</property>
+ <signal name="activate" handler="IcsClientProc"/>
+ </object>
+ </child>
+ <child>
+ <object class="GtkRadioMenuItem" id="menuMode.Edit Game">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Edit Game</property>
+ <property name="use_underline">True</property>
+ <property name="draw_as_radio">True</property>
+ <property name="group">menuMode.Machine White</property>
+ <signal name="activate" handler="EditGameProc"/>
+ </object>
+ </child>
+ <child>
+ <object class="GtkRadioMenuItem" id="menuMode.Edit Position">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Edit Position</property>
+ <property name="use_underline">True</property>
+ <property name="draw_as_radio">True</property>
+ <property name="group">menuMode.Machine White</property>
+ <signal name="activate" handler="EditPositionProc"/>
+ </object>
+ </child>
+ <child>
+ <object class="GtkRadioMenuItem" id="menuMode.Training">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Training</property>
+ <property name="use_underline">True</property>
+ <property name="draw_as_radio">True</property>
+ <property name="group">menuMode.Machine White</property>
+ <signal name="activate" handler="TrainingProc"/>
+ </object>
+ </child>
+ <child>
+ <object class="GtkSeparatorMenuItem" id="menuModeSep1">
+ <property name="visible">True</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkMenuItem" id="menuMode.Show Game List">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Show Game List</property>
+ <property name="use_underline">True</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkMenuItem" id="menuMode.Show Move List">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Show Move List</property>
+ <property name="use_underline">True</property>
+ <signal name="activate" handler="HistoryShowProc"/>
+ </object>
+ </child>
+ <child>
+ <object class="GtkMenuItem" id="menuMode.Edit Tags">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Edit Tags</property>
+ <property name="use_underline">True</property>
+ <signal name="activate" handler="EditTagsProc"/>
+ </object>
+ </child>
+ <child>
+ <object class="GtkMenuItem" id="menuMode.Edit Comments">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Edit Comments</property>
+ <property name="use_underline">True</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkMenuItem" id="menuMode.ICS Input Box">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">ICS Input Box</property>
+ <property name="use_underline">True</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkCheckMenuItem" id="menuMode.Pause">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Pause</property>
+ <property name="use_underline">True</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="GtkMenuItem" id="MenuItemAction">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">_Action</property>
+ <property name="use_underline">True</property>
+ <child type="submenu">
+ <object class="GtkMenu" id="menu1">
+ <property name="visible">True</property>
+ <child>
+ <object class="GtkMenuItem" id="menuAction.Accept">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Accept</property>
+ <property name="use_underline">True</property>
+ <signal name="activate" handler="AcceptProc"/>
+ </object>
+ </child>
+ <child>
+ <object class="GtkMenuItem" id="menuAction.Decline">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Decline</property>
+ <property name="use_underline">True</property>
+ <signal name="activate" handler="DeclineProc"/>
+ </object>
+ </child>
+ <child>
+ <object class="GtkMenuItem" id="menuAction.Rematch">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Rematch</property>
+ <property name="use_underline">True</property>
+ <signal name="activate" handler="RematchProc"/>
+ </object>
+ </child>
+ <child>
+ <object class="GtkSeparatorMenuItem" id="menuActionsep1">
+ <property name="visible">True</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkMenuItem" id="menuAction.Call Flag">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Call Flag</property>
+ <property name="use_underline">True</property>
+ <signal name="activate" handler="CallFlagProc"/>
+ </object>
+ </child>
+ <child>
+ <object class="GtkMenuItem" id="menuAction.Draw">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Draw</property>
+ <property name="use_underline">True</property>
+ <signal name="activate" handler="DrawProc"/>
+ </object>
+ </child>
+ <child>
+ <object class="GtkMenuItem" id="menuAction.Adjourn">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Adjourn</property>
+ <property name="use_underline">True</property>
+ <signal name="activate" handler="AdjournProc"/>
+ </object>
+ </child>
+ <child>
+ <object class="GtkMenuItem" id="menuAction.Abort">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Abort</property>
+ <property name="use_underline">True</property>
+ <signal name="activate" handler="AbortProc"/>
+ </object>
+ </child>
+ <child>
+ <object class="GtkMenuItem" id="menuAction.Resign">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Resign</property>
+ <property name="use_underline">True</property>
+ <signal name="activate" handler="ResignProc"/>
+ </object>
+ </child>
+ <child>
+ <object class="GtkSeparatorMenuItem" id="menuActionsep2">
+ <property name="visible">True</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkMenuItem" id="menuAction.Stop Observing">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Stop Observing</property>
+ <property name="use_underline">True</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkMenuItem" id="menuAction.Stop Examining">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Stop Examine</property>
+ <property name="use_underline">True</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkSeparatorMenuItem" id="menuActionsep3">
+ <property name="visible">True</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkMenuItem" id="menuAction.Adjucate to White">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Adjucate to White</property>
+ <property name="use_underline">True</property>
+ <signal name="activate" handler="AdjuWhiteProc"/>
+ </object>
+ </child>
+ <child>
+ <object class="GtkMenuItem" id="menuAction.Adjucate to Black">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Adjucate to Black</property>
+ <property name="use_underline">True</property>
+ <signal name="activate" handler="AdjuBlackProc"/>
+ </object>
+ </child>
+ <child>
+ <object class="GtkMenuItem" id="menuAction.Adjucate Draw">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Adjucate Draw</property>
+ <property name="use_underline">True</property>
+ <signal name="activate" handler="AdjuDrawProc"/>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="GtkMenuItem" id="MenuItemStep">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">_Step</property>
+ <property name="use_underline">True</property>
+ <child type="submenu">
+ <object class="GtkMenu" id="menu4">
+ <property name="visible">True</property>
+ <child>
+ <object class="GtkMenuItem" id="menuStep.Backward">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Backward</property>
+ <property name="use_underline">True</property>
+ <signal name="activate" handler="BackwardProc"/>
+ </object>
+ </child>
+ <child>
+ <object class="GtkMenuItem" id="menuStep.Foward">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Forward</property>
+ <property name="use_underline">True</property>
+ <signal name="activate" handler="ForwardProc"/>
+ </object>
+ </child>
+ <child>
+ <object class="GtkMenuItem" id="menuStep.Back To Start">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Back to Start</property>
+ <property name="use_underline">True</property>
+ <signal name="activate" handler="ToStartProc"/>
+ </object>
+ </child>
+ <child>
+ <object class="GtkMenuItem" id="menuStep.Forward To End">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Forward to End</property>
+ <property name="use_underline">True</property>
+ <signal name="activate" handler="ToEndProc"/>
+ </object>
+ </child>
+ <child>
+ <object class="GtkMenuItem" id="menuStep.Revert">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Revert</property>
+ <property name="use_underline">True</property>
+ <signal name="activate" handler="RevertProc"/>
+ </object>
+ </child>
+ <child>
+ <object class="GtkMenuItem" id="menuStep.Truncate Game">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Truncate Game</property>
+ <property name="use_underline">True</property>
+ <signal name="activate" handler="TruncateGameProc"/>
+ </object>
+ </child>
+ <child>
+ <object class="GtkSeparatorMenuItem" id="MenuStepSep1">
+ <property name="visible">True</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkMenuItem" id="menuStep.Move Now">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Move now</property>
+ <property name="use_underline">True</property>
+ <signal name="activate" handler="MoveNowProc"/>
+ </object>
+ </child>
+ <child>
+ <object class="GtkMenuItem" id="menuStep.Retract Move">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Retract Move</property>
+ <property name="use_underline">True</property>
+ <signal name="activate" handler="RetractMoveProc"/>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="GtkMenuItem" id="MenuItemOptions">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">_Options</property>
+ <property name="use_underline">True</property>
+ <child type="submenu">
+ <object class="GtkMenu" id="menu5">
+ <property name="visible">True</property>
+ <child>
+ <object class="GtkImageMenuItem" id="menuOptions.preferences">
+ <property name="label">gtk-preferences</property>
+ <property name="visible">True</property>
+ <property name="use_underline">True</property>
+ <property name="use_stock">True</property>
+ <accelerator key="p" signal="activate" modifiers="GDK_CONTROL_MASK"/>
+ </object>
+ </child>
+ <child>
+ <object class="GtkCheckMenuItem" id="menuOptions.Always Queen">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Always Queen</property>
+ <property name="use_underline">True</property>
+ <signal name="toggled" handler="AlwaysQueenProc"/>
+ </object>
+ </child>
+ <child>
+ <object class="GtkCheckMenuItem" id="menuOptions.Animate Dragging">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Animate Dragging</property>
+ <property name="use_underline">True</property>
+ <signal name="toggled" handler="AnimateDraggingProc"/>
+ </object>
+ </child>
+ <child>
+ <object class="GtkCheckMenuItem" id="menuOptions.Animate Moving">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Animate Moving</property>
+ <property name="use_underline">True</property>
+ <signal name="toggled" handler="AnimateMovingProc"/>
+ </object>
+ </child>
+ <child>
+ <object class="GtkCheckMenuItem" id="menuOptions.Auto Comment">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Auto Comment</property>
+ <property name="use_underline">True</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkCheckMenuItem" id="menuOptions.Auto Flag">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Auto Flag</property>
+ <property name="use_underline">True</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkCheckMenuItem" id="menuOptions.Auto Flip View">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Auto Flip View</property>
+ <property name="use_underline">True</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkCheckMenuItem" id="menuOptions.Auto Observe">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Auto Observe</property>
+ <property name="use_underline">True</property>
+ <signal name="toggled" handler="AutobsProc"/>
+ </object>
+ </child>
+ <child>
+ <object class="GtkCheckMenuItem" id="menuOptions.Auto Raise Board">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Auto Raise Board</property>
+ <property name="use_underline">True</property>
+ <signal name="toggled" handler="AutoraiseProc"/>
+ </object>
+ </child>
+ <child>
+ <object class="GtkCheckMenuItem" id="menuOptions.Auto Save">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Auto Save</property>
+ <property name="use_underline">True</property>
+ <signal name="toggled" handler="AutosaveProc"/>
+ </object>
+ </child>
+ <child>
+ <object class="GtkCheckMenuItem" id="menuOptions.Blindfold">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Blindfold</property>
+ <property name="use_underline">True</property>
+ <signal name="toggled" handler="BlindfoldProc"/>
+ </object>
+ </child>
+ <child>
+ <object class="GtkCheckMenuItem" id="menuOptions.Flash Moves">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Flash Moves</property>
+ <property name="use_underline">True</property>
+ <signal name="toggled" handler="FlashMovesProc"/>
+ </object>
+ </child>
+ <child>
+ <object class="GtkCheckMenuItem" id="menuOptions.Flip View">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Flip View</property>
+ <property name="use_underline">True</property>
+ <signal name="toggled" handler="FlipViewProc"/>
+ </object>
+ </child>
+ <child>
+ <object class="GtkCheckMenuItem" id="menuOptions.Get Move List">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Get Move List</property>
+ <property name="use_underline">True</property>
+ <signal name="toggled" handler="GetMoveListProc"/>
+ </object>
+ </child>
+ <child>
+ <object class="GtkCheckMenuItem" id="menuOptions.Highlight Last Move">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Highlight Last Move</property>
+ <property name="use_underline">True</property>
+ <signal name="toggled" handler="HighlightLastMoveProc"/>
+ </object>
+ </child>
+ <child>
+ <object class="GtkCheckMenuItem" id="menuOptions.Move Sound">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Move Sound</property>
+ <property name="use_underline">True</property>
+ <signal name="toggled" handler="MoveSoundProc"/>
+ </object>
+ </child>
+ <child>
+ <object class="GtkCheckMenuItem" id="menuOptions.ICS Alarm">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">ICS Alarm</property>
+ <property name="use_underline">True</property>
+ <signal name="toggled" handler="IcsAlarmProc"/>
+ </object>
+ </child>
+ <child>
+ <object class="GtkCheckMenuItem" id="menuOptions.Old Save Style">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Old Save Style</property>
+ <property name="use_underline">True</property>
+ <signal name="toggled" handler="OldSaveStyleProc"/>
+ </object>
+ </child>
+ <child>
+ <object class="GtkCheckMenuItem" id="menuOptions.Periodic Updates">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Periodic Updates</property>
+ <property name="use_underline">True</property>
+ <signal name="toggled" handler="PeriodicUpdatesProc"/>
+ </object>
+ </child>
+ <child>
+ <object class="GtkCheckMenuItem" id="menuOptions.Ponder Next Move">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Ponder Next Move</property>
+ <property name="use_underline">True</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkCheckMenuItem" id="menuOptions.Popup Exit Message">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Popup Exit Message</property>
+ <property name="use_underline">True</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkCheckMenuItem" id="menuOptions.Popup Move Errors">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Popup Move Errors</property>
+ <property name="use_underline">True</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkCheckMenuItem" id="menuOptions.Premove">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Premove</property>
+ <property name="use_underline">True</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkCheckMenuItem" id="menuOptions.Quiet Play">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Quiet Play</property>
+ <property name="use_underline">True</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkCheckMenuItem" id="menuOptions.Show Coords">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Show Coords</property>
+ <property name="use_underline">True</property>
+ <signal name="toggled" handler="ShowCoordsProc"/>
+ </object>
+ </child>
+ <child>
- <object class="GtkCheckMenuItem" id="menuOptions.Show Thinking">
++ <object class="GtkCheckMenuItem" id="menuOptions.Hide Thinking">
+ <property name="visible">True</property>
- <property name="label" translatable="yes">Show Thinking</property>
++ <property name="label" translatable="yes">Hide Thinking</property>
+ <property name="use_underline">True</property>
+ <signal name="toggled" handler="HideThinkingProc"/>
+ </object>
+ </child>
+ <child>
+ <object class="GtkCheckMenuItem" id="menuOptions.Test Legality">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Test Legality</property>
+ <property name="use_underline">True</property>
+ <signal name="toggled" handler="TestLegalityProc"/>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="GtkMenuItem" id="MenuItemHelp">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">_Help</property>
+ <property name="use_underline">True</property>
+ <child type="submenu">
+ <object class="GtkMenu" id="menu3">
+ <property name="visible">True</property>
+ <child>
+ <object class="GtkMenuItem" id="menuHelp.man">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Man XBoard</property>
+ <property name="use_underline">True</property>
+ <signal name="activate" handler="ManProc"/>
+ </object>
+ </child>
+ <child>
+ <object class="GtkMenuItem" id="menuHelp.Info">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Info XBoard</property>
+ <property name="use_underline">True</property>
+ <signal name="activate" handler="InfoProc"/>
+ </object>
+ </child>
+ <child>
+ <object class="GtkMenuItem" id="menuHelp.Hint">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Hint</property>
+ <property name="use_underline">True</property>
+ <signal name="activate" handler="HintProc"/>
+ </object>
+ </child>
+ <child>
+ <object class="GtkMenuItem" id="menuHelp.Book">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Book</property>
+ <property name="use_underline">True</property>
+ <signal name="activate" handler="BookProc"/>
+ </object>
+ </child>
+ <child>
+ <object class="GtkSeparatorMenuItem" id="menuHelpsep1">
+ <property name="visible">True</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkImageMenuItem" id="menuHelp.about">
+ <property name="label">gtk-about</property>
+ <property name="visible">True</property>
+ <property name="use_underline">True</property>
+ <property name="use_stock">True</property>
+ <signal name="activate" handler="AboutProc"/>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkHBox" id="Timer">
+ <property name="visible">True</property>
+ <child>
+ <object class="GtkEventBox" id="WhiteClockEventBox">
+ <property name="visible">True</property>
+ <signal name="button_press_event" handler="WhiteClockProc"/>
+ <child>
+ <object class="GtkLabel" id="WhiteClock">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">White:</property>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkEventBox" id="BlackClockEventBox">
+ <property name="visible">True</property>
+ <signal name="button_press_event" handler="BlackClockProc"/>
+ <child>
+ <object class="GtkLabel" id="BlackClock">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Black:</property>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkHBox" id="ButtonBar">
+ <property name="visible">True</property>
+ <child>
+ <object class="GtkLabel" id="Messages">
+ <property name="visible">True</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">not your turn</property>
+ <property name="single_line_mode">True</property>
+ </object>
+ <packing>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton" id="buttonbar.ToStart">
+ <property name="label" translatable="yes"><<</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ <signal name="activate" handler="ToStartProc"/>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton" id="buttonbar.Backward">
+ <property name="label" translatable="yes"><</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ <signal name="activate" handler="BackwardProc"/>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton" id="buttonbar.Pause">
+ <property name="label" translatable="yes">P</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ <signal name="activate" handler="PauseProc"/>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">3</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton" id="buttonbar.Forward">
+ <property name="label" translatable="yes">></property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">4</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton" id="buttonbar.ToEnd">
+ <property name="label" translatable="yes">>></property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ <signal name="activate" handler="ToEndProc"/>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">5</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkDrawingArea" id="Board">
+ <property name="visible">True</property>
+ <property name="events">GDK_EXPOSURE_MASK | GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_KEY_PRESS_MASK | GDK_KEY_RELEASE_MASK | GDK_STRUCTURE_MASK</property>
+ <signal name="button_press_event" handler="UserMoveProc"/>
+ <signal name="expose_event" handler="EventProc"/>
+ <signal name="button_release_event" handler="UserMoveProc"/>
+ </object>
+ <packing>
+ <property name="fill">False</property>
+ <property name="position">3</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ <object class="GtkImage" id="image1">
+ <property name="visible">True</property>
+ <property name="xalign">0.40000000596046448</property>
+ <property name="stock">gtk-open</property>
+ </object>
+ <object class="GtkImage" id="image2">
+ <property name="visible">True</property>
+ <property name="stock">gtk-save</property>
+ <property name="icon-size">1</property>
+ </object>
+ <object class="GtkDialog" id="EditTags">
+ <property name="border_width">5</property>
+ <property name="type_hint">normal</property>
+ <property name="has_separator">False</property>
+ <child internal-child="vbox">
+ <object class="GtkVBox" id="EditTags-vbox">
+ <property name="visible">True</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">2</property>
+ <child>
+ <object class="GtkVBox" id="EditTagsTextArea">
+ <property name="visible">True</property>
+ <property name="orientation">vertical</property>
+ <child>
+ <placeholder/>
+ </child>
+ </object>
+ <packing>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child internal-child="action_area">
+ <object class="GtkHButtonBox" id="EditTagsActionArea">
+ <property name="visible">True</property>
+ <property name="layout_style">end</property>
+ <child>
+ <object class="GtkButton" id="Edit">
+ <property name="label" translatable="yes">gtk-edit</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ <property name="use_stock">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton" id="Cancel">
+ <property name="label" translatable="yes">gtk-cancel</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ <property name="use_stock">True</property>
+ <signal name="released" handler="EditTagsHideProc"/>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="pack_type">end</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ <action-widgets>
+ <action-widget response="0">Edit</action-widget>
+ <action-widget response="0">Cancel</action-widget>
+ </action-widgets>
+ </object>
+ <object class="GtkDialog" id="Preferences">
+ <property name="border_width">5</property>
+ <property name="type_hint">normal</property>
+ <property name="has_separator">False</property>
+ <child internal-child="vbox">
+ <object class="GtkVBox" id="dialog-vbox3">
+ <property name="visible">True</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">2</property>
+ <child>
+ <object class="GtkNotebook" id="Options">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <child>
+ <object class="GtkLayout" id="layout1">
+ <property name="visible">True</property>
+ <child>
+ <object class="GtkCheckButton" id="PeriodicUpdates">
+ <property name="label" translatable="yes">Periodic Updates (Analysis Mode)</property>
+ <property name="width_request">300</property>
+ <property name="height_request">40</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="draw_indicator">True</property>
+ </object>
+ <packing>
+ <property name="x">30</property>
+ <property name="y">10</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkCheckButton" id="Engine1Score">
+ <property name="label" translatable="yes">Engine #1 Score is Absolute </property>
+ <property name="width_request">300</property>
+ <property name="height_request">40</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="draw_indicator">True</property>
+ </object>
+ <packing>
+ <property name="x">30</property>
+ <property name="y">60</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkCheckButton" id="Engine2Score">
+ <property name="label" translatable="yes">Engine #1 Score is Absolute </property>
+ <property name="width_request">400</property>
+ <property name="height_request">40</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="draw_indicator">True</property>
+ </object>
+ <packing>
+ <property name="x">30</property>
+ <property name="y">110</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="EngineEngine">
+ <property name="width_request">300</property>
+ <property name="height_request">40</property>
+ <property name="visible">True</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">Engine-Engine Adjustications:</property>
+ </object>
+ <packing>
+ <property name="x">10</property>
+ <property name="y">160</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ <child type="tab">
+ <object class="GtkLabel" id="Preferences.Adjudications">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Adjudications</property>
+ </object>
+ <packing>
+ <property name="tab_fill">False</property>
+ </packing>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ <child type="tab">
+ <object class="GtkLabel" id="label2">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">page 2</property>
+ </object>
+ <packing>
+ <property name="position">1</property>
+ <property name="tab_fill">False</property>
+ </packing>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ <child type="tab">
+ <object class="GtkLabel" id="label3">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">page 3</property>
+ </object>
+ <packing>
+ <property name="position">2</property>
+ <property name="tab_fill">False</property>
+ </packing>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ <child type="tab">
+ <object class="GtkLabel" id="label4">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">page 4</property>
+ </object>
+ <packing>
+ <property name="position">3</property>
+ <property name="tab_fill">False</property>
+ </packing>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ <child type="tab">
+ <object class="GtkLabel" id="label5">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">page 5</property>
+ </object>
+ <packing>
+ <property name="position">4</property>
+ <property name="tab_fill">False</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child internal-child="action_area">
+ <object class="GtkHButtonBox" id="dialog-action_area3">
+ <property name="visible">True</property>
+ <property name="layout_style">end</property>
+ <child>
+ <object class="GtkButton" id="button1">
+ <property name="label" translatable="yes">gtk-ok</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ <property name="use_stock">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton" id="button2">
+ <property name="label" translatable="yes">gtk-cancel</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ <property name="use_stock">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="pack_type">end</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ <action-widgets>
+ <action-widget response="0">button1</action-widget>
+ <action-widget response="0">button2</action-widget>
+ </action-widgets>
+ </object>
+</interface>
String *prms, Cardinal *nprms));
void IcsInputBoxProc P((Widget w, XEvent *event,
String *prms, Cardinal *nprms));
-void AcceptProc P((Widget w, XEvent *event, String *prms, Cardinal *nprms));
-void DeclineProc P((Widget w, XEvent *event, String *prms, Cardinal *nprms));
-void RematchProc P((Widget w, XEvent *event, String *prms, Cardinal *nprms));
-void CallFlagProc P((Widget w, XEvent *event, String *prms, Cardinal *nprms));
-void DrawProc P((Widget w, XEvent *event, String *prms, Cardinal *nprms));
-void AbortProc P((Widget w, XEvent *event, String *prms, Cardinal *nprms));
-void AdjournProc P((Widget w, XEvent *event, String *prms, Cardinal *nprms));
-void ResignProc P((Widget w, XEvent *event, String *prms, Cardinal *nprms));
-void AdjuWhiteProc P((Widget w, XEvent *event, String *prms, Cardinal *nprms));
-void AdjuBlackProc P((Widget w, XEvent *event, String *prms, Cardinal *nprms));
-void AdjuDrawProc P((Widget w, XEvent *event, String *prms, Cardinal *nprms));
void EnterKeyProc P((Widget w, XEvent *event, String *prms, Cardinal *nprms));
-void StopObservingProc P((Widget w, XEvent *event, String *prms,
- Cardinal *nprms));
-void StopExaminingProc P((Widget w, XEvent *event, String *prms,
- Cardinal *nprms));
-void BackwardProc P((Widget w, XEvent *event, String *prms, Cardinal *nprms));
-void ForwardProc P((Widget w, XEvent *event, String *prms, Cardinal *nprms));
-void ToStartProc P((Widget w, XEvent *event, String *prms, Cardinal *nprms));
-void ToEndProc P((Widget w, XEvent *event, String *prms, Cardinal *nprms));
-void RevertProc P((Widget w, XEvent *event, String *prms, Cardinal *nprms));
-void TruncateGameProc P((Widget w, XEvent *event, String *prms,
- Cardinal *nprms));
-void RetractMoveProc P((Widget w, XEvent *event, String *prms,
- Cardinal *nprms));
-void MoveNowProc P((Widget w, XEvent *event, String *prms, Cardinal *nprms));
-void AlwaysQueenProc P((Widget w, XEvent *event, String *prms,
- Cardinal *nprms));
-void AnimateDraggingProc P((Widget w, XEvent *event, String *prms,
- Cardinal *nprms));
-void AnimateMovingProc P((Widget w, XEvent *event, String *prms,
- Cardinal *nprms));
-void AutocommProc P((Widget w, XEvent *event, String *prms,
- Cardinal *nprms));
-void AutoflagProc P((Widget w, XEvent *event, String *prms, Cardinal *nprms));
-void AutoflipProc P((Widget w, XEvent *event, String *prms, Cardinal *nprms));
-void AutobsProc P((Widget w, XEvent *event, String *prms,
- Cardinal *nprms));
-void AutoraiseProc P((Widget w, XEvent *event, String *prms, Cardinal *nprms));
-void AutosaveProc P((Widget w, XEvent *event, String *prms, Cardinal *nprms));
-void BlindfoldProc P((Widget w, XEvent *event, String *prms, Cardinal *nprms));
-void FlashMovesProc P((Widget w, XEvent *event, String *prms,
- Cardinal *nprms));
-void FlipViewProc P((Widget w, XEvent *event, String *prms, Cardinal *nprms));
-void GetMoveListProc P((Widget w, XEvent *event, String *prms,
- Cardinal *nprms));
-void HighlightDraggingProc P((Widget w, XEvent *event, String *prms,
- Cardinal *nprms));
-void HighlightLastMoveProc P((Widget w, XEvent *event, String *prms,
- Cardinal *nprms));
-void MoveSoundProc P((Widget w, XEvent *event, String *prms, Cardinal *nprms));
-void IcsAlarmProc P((Widget w, XEvent *event, String *prms, Cardinal *nprms));
-void OldSaveStyleProc P((Widget w, XEvent *event, String *prms,
- Cardinal *nprms));
-void PeriodicUpdatesProc P((Widget w, XEvent *event, String *prms,
- Cardinal *nprms));
-void PonderNextMoveProc P((Widget w, XEvent *event, String *prms,
- Cardinal *nprms));
-void PopupMoveErrorsProc P((Widget w, XEvent *event, String *prms,
- Cardinal *nprms));
-void PopupExitMessageProc P((Widget w, XEvent *event, String *prms,
- Cardinal *nprms));
-void PremoveProc P((Widget w, XEvent *event, String *prms, Cardinal *nprms));
-void QuietPlayProc P((Widget w, XEvent *event, String *prms, Cardinal *nprms));
-void ShowCoordsProc P((Widget w, XEvent *event, String *prms,
- Cardinal *nprms));
-void ShowThinkingProc P((Widget w, XEvent *event, String *prms,
- Cardinal *nprms));
-void HideThinkingProc P((Widget w, XEvent *event, String *prms,
- Cardinal *nprms));
-void TestLegalityProc P((Widget w, XEvent *event, String *prms,
- Cardinal *nprms));
+ void SaveSettingsProc P((Widget w, XEvent *event, String *prms, Cardinal *nprms));
+ void SaveOnExitProc P((Widget w, XEvent *event, String *prms, Cardinal *nprms));
-void InfoProc P((Widget w, XEvent *event, String *prms, Cardinal *nprms));
-void ManProc P((Widget w, XEvent *event, String *prms, Cardinal *nprms));
-void HintProc P((Widget w, XEvent *event, String *prms, Cardinal *nprms));
-void BookProc P((Widget w, XEvent *event, String *prms, Cardinal *nprms));
void AboutGameProc P((Widget w, XEvent *event, String *prms, Cardinal *nprms));
-void AboutProc P((Widget w, XEvent *event, String *prms, Cardinal *nprms));
void DebugProc P((Widget w, XEvent *event, String *prms, Cardinal *nprms));
void NothingProc P((Widget w, XEvent *event, String *prms, Cardinal *nprms));
void Iconify P((Widget w, XEvent *event, String *prms, Cardinal *nprms));
Widget shellWidget, layoutWidget, formWidget, boardWidget, messageWidget,
whiteTimerWidget, blackTimerWidget, titleWidget, widgetList[16],
commentShell, promotionShell, whitePieceMenu, blackPieceMenu, dropMenu,
- menuBarWidget, buttonBarWidget, editShell, errorShell, analysisShell,
+ menuBarWidget, editShell, errorShell, analysisShell,
ICSInputShell, fileNameShell, askQuestionShell;
+
+ Widget historyShell, evalGraphShell, gameListShell;
-XSegment gridSegments[BOARD_RANKS + BOARD_FILES + 2];
-XSegment jailGridSegments[BOARD_RANKS + BOARD_FILES + 6];
+//XSegment gridSegments[BOARD_RANKS + BOARD_FILES + 2];
+//XSegment jailGridSegments[BOARD_RANKS + BOARD_FILES + 6];
+
Font clockFontID, coordFontID, countFontID;
XFontStruct *clockFontStruct, *coordFontStruct, *countFontStruct;
XtAppContext appContext;
};
MenuItem modeMenu[] = {
- {N_("Machine White"), MachineWhiteProc},
- {N_("Machine Black"), MachineBlackProc},
- {N_("Two Machines"), TwoMachinesProc},
- {N_("Analysis Mode"), AnalyzeModeProc},
- {N_("Analyze File"), AnalyzeFileProc },
- {N_("ICS Client"), IcsClientProc},
- {N_("Edit Game"), EditGameProc},
- {N_("Edit Position"), EditPositionProc},
- {N_("Training"), TrainingProc},
- {"----", NothingProc},
+ // {N_("Machine White"), MachineWhiteProc},
+ // {N_("Machine Black"), MachineBlackProc},
+ // {N_("Two Machines"), TwoMachinesProc},
+ // {N_("Analysis Mode"), AnalyzeModeProc},
+ // {N_("Analyze File"), AnalyzeFileProc },
+ // {N_("ICS Client"), IcsClientProc},
+ // {N_("Edit Game"), EditGameProc},
+ // {N_("Edit Position"), EditPositionProc},
+ // {N_("Training"), TrainingProc},
+ // {"----", NothingProc},
{N_("Show Engine Output"), EngineOutputProc},
- {N_("Show Evaluation Graph"), NothingProc}, // [HGM] evalgr: not functional yet
+ {N_("Show Evaluation Graph"), EvalGraphProc},
{N_("Show Game List"), ShowGameListProc},
- {N_("Show Move History"), HistoryShowProc}, // [HGM] hist: activate 4.2.7 code
- {"----", NothingProc},
- {N_("Edit Tags"), EditTagsProc},
+ // {"Show Move History", HistoryShowProc}, // [HGM] hist: activate 4.2.7 code
+ // {"----", NothingProc},
+ // {N_("Edit Tags"), EditTagsProc},
{N_("Edit Comment"), EditCommentProc},
{N_("ICS Input Box"), IcsInputBoxProc},
- {N_("Pause"), PauseProc},
- {NULL, NULL}
-};
-
-MenuItem actionMenu[] = {
- {N_("Accept"), AcceptProc},
- {N_("Decline"), DeclineProc},
- {N_("Rematch"), RematchProc},
- {"----", NothingProc},
- {N_("Call Flag"), CallFlagProc},
- {N_("Draw"), DrawProc},
- {N_("Adjourn"), AdjournProc},
- {N_("Abort"), AbortProc},
- {N_("Resign"), ResignProc},
- {"----", NothingProc},
- {N_("Stop Observing"), StopObservingProc},
- {N_("Stop Examining"), StopExaminingProc},
- {"----", NothingProc},
- {N_("Adjudicate to White"), AdjuWhiteProc},
- {N_("Adjudicate to Black"), AdjuBlackProc},
- {N_("Adjudicate Draw"), AdjuDrawProc},
- {NULL, NULL}
-};
-
-MenuItem stepMenu[] = {
- {N_("Backward"), BackwardProc},
- {N_("Forward"), ForwardProc},
- {N_("Back to Start"), ToStartProc},
- {N_("Forward to End"), ToEndProc},
- {N_("Revert"), RevertProc},
- {N_("Truncate Game"), TruncateGameProc},
- {"----", NothingProc},
- {N_("Move Now"), MoveNowProc},
- {N_("Retract Move"), RetractMoveProc},
{NULL, NULL}
};
{N_("Engine #2 Settings ..."), SecondSettingsProc},
{N_("Time Control ..."), TimeControlProc},
{"----", NothingProc},
- {N_("Always Queen"), AlwaysQueenProc},
- {N_("Animate Dragging"), AnimateDraggingProc},
- {N_("Animate Moving"), AnimateMovingProc},
- {N_("Auto Comment"), AutocommProc},
- {N_("Auto Flag"), AutoflagProc},
- {N_("Auto Flip View"), AutoflipProc},
- {N_("Auto Observe"), AutobsProc},
- {N_("Auto Raise Board"), AutoraiseProc},
- {N_("Auto Save"), AutosaveProc},
- {N_("Blindfold"), BlindfoldProc},
- {N_("Flash Moves"), FlashMovesProc},
- {N_("Get Move List"), GetMoveListProc},
-#if HIGHDRAG
- {N_("Highlight Dragging"), HighlightDraggingProc},
-#endif
- {N_("Highlight Last Move"), HighlightLastMoveProc},
- {N_("Move Sound"), MoveSoundProc},
- {N_("ICS Alarm"), IcsAlarmProc},
- {N_("Old Save Style"), OldSaveStyleProc},
- {N_("Periodic Updates"), PeriodicUpdatesProc},
- {N_("Ponder Next Move"), PonderNextMoveProc},
- {N_("Popup Exit Message"), PopupExitMessageProc},
- {N_("Popup Move Errors"), PopupMoveErrorsProc},
- {N_("Premove"), PremoveProc},
- {N_("Quiet Play"), QuietPlayProc},
- {N_("Show Coords"), ShowCoordsProc},
- {N_("Hide Thinking"), HideThinkingProc},
- {N_("Test Legality"), TestLegalityProc},
+ // {N_("Always Queen"), AlwaysQueenProc},
+ // {N_("Animate Dragging"), AnimateDraggingProc},
+ // {N_("Animate Moving"), AnimateMovingProc},
+ // {N_("Auto Comment"), AutocommProc},
+ // {N_("Auto Flag"), AutoflagProc},
+ // {N_("Auto Flip View"), AutoflipProc},
+ // {N_("Auto Observe"), AutobsProc},
+ // {N_("Auto Raise Board"), AutoraiseProc},
+ // {N_("Auto Save"), AutosaveProc},
+ // {N_("Blindfold"), BlindfoldProc},
+ // {N_("Flash Moves"), FlashMovesProc},
+ // {N_("Get Move List"), GetMoveListProc},
+ //#if HIGHDRAG
+ // {N_("Highlight Dragging"), HighlightDraggingProc},
+ //#endif
+ // {N_("Highlight Last Move"), HighlightLastMoveProc},
+ // {N_("Move Sound"), MoveSoundProc},
+ // {N_("ICS Alarm"), IcsAlarmProc},
+ // {N_("Old Save Style"), OldSaveStyleProc},
+ // {N_("Periodic Updates"), PeriodicUpdatesProc},
+ // {N_("Ponder Next Move"), PonderNextMoveProc},
+ // {N_("Popup Exit Message"), PopupExitMessageProc},
+ // {N_("Popup Move Errors"), PopupMoveErrorsProc},
+ // {N_("Premove"), PremoveProc},
+ // {N_("Quiet Play"), QuietPlayProc},
+ // {N_("Hide Thinking"), HideThinkingProc},
+ // {N_("Test Legality"), TestLegalityProc},
++ // {N_("Show Coords"), ShowCoordsProc},
+ {"----", NothingProc},
+ {N_("Save Settings Now"), SaveSettingsProc},
+ {N_("Save Settings on Exit"), SaveOnExitProc},
{NULL, NULL}
};
{ XtNheight, 0 }
};
-Arg titleArgs[] = {
- { XtNjustify, (XtArgVal) XtJustifyRight },
- { XtNlabel, (XtArgVal) "..." },
- { XtNresizable, (XtArgVal) True },
- { XtNresize, (XtArgVal) False }
-};
-
-Arg messageArgs[] = {
- { XtNjustify, (XtArgVal) XtJustifyLeft },
- { XtNlabel, (XtArgVal) "..." },
- { XtNresizable, (XtArgVal) True },
- { XtNresize, (XtArgVal) False }
-};
-
-Arg timerArgs[] = {
- { XtNborderWidth, 0 },
- { XtNjustify, (XtArgVal) XtJustifyLeft }
-};
-
XtResource clientResources[] = {
- { "whitePieceColor", "whitePieceColor", XtRString, sizeof(String),
- XtOffset(AppDataPtr, whitePieceColor), XtRString,
- WHITE_PIECE_COLOR },
- { "blackPieceColor", "blackPieceColor", XtRString, sizeof(String),
- XtOffset(AppDataPtr, blackPieceColor), XtRString,
- BLACK_PIECE_COLOR },
- { "lightSquareColor", "lightSquareColor", XtRString,
- sizeof(String), XtOffset(AppDataPtr, lightSquareColor),
- XtRString, LIGHT_SQUARE_COLOR },
- { "darkSquareColor", "darkSquareColor", XtRString, sizeof(String),
- XtOffset(AppDataPtr, darkSquareColor), XtRString,
- DARK_SQUARE_COLOR },
- { "highlightSquareColor", "highlightSquareColor", XtRString,
- sizeof(String), XtOffset(AppDataPtr, highlightSquareColor),
- XtRString, HIGHLIGHT_SQUARE_COLOR },
- { "premoveHighlightColor", "premoveHighlightColor", XtRString,
- sizeof(String), XtOffset(AppDataPtr, premoveHighlightColor),
- XtRString, PREMOVE_HIGHLIGHT_COLOR },
- { "movesPerSession", "movesPerSession", XtRInt, sizeof(int),
- XtOffset(AppDataPtr, movesPerSession), XtRImmediate,
- (XtPointer) MOVES_PER_SESSION },
- { "timeIncrement", "timeIncrement", XtRInt, sizeof(int),
- XtOffset(AppDataPtr, timeIncrement), XtRImmediate,
- (XtPointer) TIME_INCREMENT },
- { "initString", "initString", XtRString, sizeof(String),
- XtOffset(AppDataPtr, initString), XtRString, INIT_STRING },
- { "secondInitString", "secondInitString", XtRString, sizeof(String),
- XtOffset(AppDataPtr, secondInitString), XtRString, INIT_STRING },
- { "firstComputerString", "firstComputerString", XtRString,
- sizeof(String), XtOffset(AppDataPtr, firstComputerString), XtRString,
- COMPUTER_STRING },
- { "secondComputerString", "secondComputerString", XtRString,
- sizeof(String), XtOffset(AppDataPtr, secondComputerString), XtRString,
- COMPUTER_STRING },
- { "firstChessProgram", "firstChessProgram", XtRString,
- sizeof(String), XtOffset(AppDataPtr, firstChessProgram),
- XtRString, FIRST_CHESS_PROGRAM },
- { "secondChessProgram", "secondChessProgram", XtRString,
- sizeof(String), XtOffset(AppDataPtr, secondChessProgram),
- XtRString, SECOND_CHESS_PROGRAM },
- { "firstPlaysBlack", "firstPlaysBlack", XtRBoolean,
- sizeof(Boolean), XtOffset(AppDataPtr, firstPlaysBlack),
- XtRImmediate, (XtPointer) False },
- { "noChessProgram", "noChessProgram", XtRBoolean,
- sizeof(Boolean), XtOffset(AppDataPtr, noChessProgram),
- XtRImmediate, (XtPointer) False },
- { "firstHost", "firstHost", XtRString, sizeof(String),
- XtOffset(AppDataPtr, firstHost), XtRString, FIRST_HOST },
- { "secondHost", "secondHost", XtRString, sizeof(String),
- XtOffset(AppDataPtr, secondHost), XtRString, SECOND_HOST },
- { "firstDirectory", "firstDirectory", XtRString, sizeof(String),
- XtOffset(AppDataPtr, firstDirectory), XtRString, "." },
- { "secondDirectory", "secondDirectory", XtRString, sizeof(String),
- XtOffset(AppDataPtr, secondDirectory), XtRString, "." },
- { "bitmapDirectory", "bitmapDirectory", XtRString,
- sizeof(String), XtOffset(AppDataPtr, bitmapDirectory),
- XtRString, "" },
- { "remoteShell", "remoteShell", XtRString, sizeof(String),
- XtOffset(AppDataPtr, remoteShell), XtRString, REMOTE_SHELL },
- { "remoteUser", "remoteUser", XtRString, sizeof(String),
- XtOffset(AppDataPtr, remoteUser), XtRString, "" },
- { "timeDelay", "timeDelay", XtRFloat, sizeof(float),
- XtOffset(AppDataPtr, timeDelay), XtRString,
- (XtPointer) TIME_DELAY_QUOTE },
- { "timeControl", "timeControl", XtRString, sizeof(String),
- XtOffset(AppDataPtr, timeControl), XtRString,
- (XtPointer) TIME_CONTROL },
- { "internetChessServerMode", "internetChessServerMode",
- XtRBoolean, sizeof(Boolean),
- XtOffset(AppDataPtr, icsActive), XtRImmediate,
- (XtPointer) False },
- { "internetChessServerHost", "internetChessServerHost",
- XtRString, sizeof(String),
- XtOffset(AppDataPtr, icsHost),
- XtRString, (XtPointer) ICS_HOST },
- { "internetChessServerPort", "internetChessServerPort",
- XtRString, sizeof(String),
- XtOffset(AppDataPtr, icsPort), XtRString,
- (XtPointer) ICS_PORT },
- { "internetChessServerCommPort", "internetChessServerCommPort",
- XtRString, sizeof(String),
- XtOffset(AppDataPtr, icsCommPort), XtRString,
- ICS_COMM_PORT },
- { "internetChessServerLogonScript", "internetChessServerLogonScript",
- XtRString, sizeof(String),
- XtOffset(AppDataPtr, icsLogon), XtRString,
- ICS_LOGON },
- { "internetChessServerHelper", "internetChessServerHelper",
- XtRString, sizeof(String),
- XtOffset(AppDataPtr, icsHelper), XtRString, "" },
- { "internetChessServerInputBox", "internetChessServerInputBox",
- XtRBoolean, sizeof(Boolean),
- XtOffset(AppDataPtr, icsInputBox), XtRImmediate,
- (XtPointer) False },
- { "icsAlarm", "icsAlarm",
- XtRBoolean, sizeof(Boolean),
- XtOffset(AppDataPtr, icsAlarm), XtRImmediate,
- (XtPointer) True },
- { "icsAlarmTime", "icsAlarmTime",
- XtRInt, sizeof(int),
- XtOffset(AppDataPtr, icsAlarmTime), XtRImmediate,
- (XtPointer) 5000 },
- { "useTelnet", "useTelnet", XtRBoolean, sizeof(Boolean),
- XtOffset(AppDataPtr, useTelnet), XtRImmediate,
- (XtPointer) False },
- { "telnetProgram", "telnetProgram", XtRString, sizeof(String),
- XtOffset(AppDataPtr, telnetProgram), XtRString, TELNET_PROGRAM },
- { "gateway", "gateway", XtRString, sizeof(String),
- XtOffset(AppDataPtr, gateway), XtRString, "" },
- { "loadGameFile", "loadGameFile", XtRString, sizeof(String),
- XtOffset(AppDataPtr, loadGameFile), XtRString, "" },
- { "loadGameIndex", "loadGameIndex",
- XtRInt, sizeof(int),
- XtOffset(AppDataPtr, loadGameIndex), XtRImmediate,
- (XtPointer) 0 },
- { "saveGameFile", "saveGameFile", XtRString, sizeof(String),
- XtOffset(AppDataPtr, saveGameFile), XtRString, "" },
- { "autoRaiseBoard", "autoRaiseBoard", XtRBoolean,
- sizeof(Boolean), XtOffset(AppDataPtr, autoRaiseBoard),
- XtRImmediate, (XtPointer) True },
- { "autoSaveGames", "autoSaveGames", XtRBoolean,
- sizeof(Boolean), XtOffset(AppDataPtr, autoSaveGames),
- XtRImmediate, (XtPointer) False },
- { "blindfold", "blindfold", XtRBoolean,
- sizeof(Boolean), XtOffset(AppDataPtr, blindfold),
- XtRImmediate, (XtPointer) False },
- { "loadPositionFile", "loadPositionFile", XtRString,
- sizeof(String), XtOffset(AppDataPtr, loadPositionFile),
- XtRString, "" },
- { "loadPositionIndex", "loadPositionIndex",
- XtRInt, sizeof(int),
- XtOffset(AppDataPtr, loadPositionIndex), XtRImmediate,
- (XtPointer) 1 },
- { "savePositionFile", "savePositionFile", XtRString,
- sizeof(String), XtOffset(AppDataPtr, savePositionFile),
- XtRString, "" },
- { "matchMode", "matchMode", XtRBoolean, sizeof(Boolean),
- XtOffset(AppDataPtr, matchMode), XtRImmediate, (XtPointer) False },
- { "matchGames", "matchGames", XtRInt, sizeof(int),
- XtOffset(AppDataPtr, matchGames), XtRImmediate,
- (XtPointer) 0 },
- { "monoMode", "monoMode", XtRBoolean, sizeof(Boolean),
- XtOffset(AppDataPtr, monoMode), XtRImmediate,
- (XtPointer) False },
- { "debugMode", "debugMode", XtRBoolean, sizeof(Boolean),
- XtOffset(AppDataPtr, debugMode), XtRImmediate,
- (XtPointer) False },
- { "clockMode", "clockMode", XtRBoolean, sizeof(Boolean),
- XtOffset(AppDataPtr, clockMode), XtRImmediate,
- (XtPointer) True },
- { "boardSize", "boardSize", XtRString, sizeof(String),
- XtOffset(AppDataPtr, boardSize), XtRString, "" },
- { "searchTime", "searchTime", XtRString, sizeof(String),
- XtOffset(AppDataPtr, searchTime), XtRString,
- (XtPointer) "" },
- { "searchDepth", "searchDepth", XtRInt, sizeof(int),
- XtOffset(AppDataPtr, searchDepth), XtRImmediate,
- (XtPointer) 0 },
- { "showCoords", "showCoords", XtRBoolean, sizeof(Boolean),
- XtOffset(AppDataPtr, showCoords), XtRImmediate,
- (XtPointer) False },
- { "showJail", "showJail", XtRInt, sizeof(int),
- XtOffset(AppDataPtr, showJail), XtRImmediate,
- (XtPointer) 0 },
- { "showThinking", "showThinking", XtRBoolean, sizeof(Boolean),
- XtOffset(AppDataPtr, showThinking), XtRImmediate,
- (XtPointer) True },
- { "ponderNextMove", "ponderNextMove", XtRBoolean, sizeof(Boolean),
- XtOffset(AppDataPtr, ponderNextMove), XtRImmediate,
- (XtPointer) True },
- { "periodicUpdates", "periodicUpdates", XtRBoolean, sizeof(Boolean),
- XtOffset(AppDataPtr, periodicUpdates), XtRImmediate,
- (XtPointer) True },
- { "clockFont", "clockFont", XtRString, sizeof(String),
- XtOffset(AppDataPtr, clockFont), XtRString, CLOCK_FONT },
- { "coordFont", "coordFont", XtRString, sizeof(String),
- XtOffset(AppDataPtr, coordFont), XtRString, COORD_FONT },
- { "font", "font", XtRString, sizeof(String),
- XtOffset(AppDataPtr, font), XtRString, DEFAULT_FONT },
- { "ringBellAfterMoves", "ringBellAfterMoves",
- XtRBoolean, sizeof(Boolean),
- XtOffset(AppDataPtr, ringBellAfterMoves),
- XtRImmediate, (XtPointer) False },
- { "autoCallFlag", "autoCallFlag", XtRBoolean,
- sizeof(Boolean), XtOffset(AppDataPtr, autoCallFlag),
- XtRImmediate, (XtPointer) False },
- { "autoFlipView", "autoFlipView", XtRBoolean,
- sizeof(Boolean), XtOffset(AppDataPtr, autoFlipView),
- XtRImmediate, (XtPointer) True },
- { "autoObserve", "autoObserve", XtRBoolean,
- sizeof(Boolean), XtOffset(AppDataPtr, autoObserve),
- XtRImmediate, (XtPointer) False },
- { "autoComment", "autoComment", XtRBoolean,
- sizeof(Boolean), XtOffset(AppDataPtr, autoComment),
- XtRImmediate, (XtPointer) False },
- { "getMoveList", "getMoveList", XtRBoolean,
- sizeof(Boolean), XtOffset(AppDataPtr, getMoveList),
- XtRImmediate, (XtPointer) True },
- #if HIGHDRAG
- { "highlightDragging", "highlightDragging", XtRBoolean,
- sizeof(Boolean), XtOffset(AppDataPtr, highlightDragging),
- XtRImmediate, (XtPointer) False },
- #endif
- { "highlightLastMove", "highlightLastMove", XtRBoolean,
- sizeof(Boolean), XtOffset(AppDataPtr, highlightLastMove),
- XtRImmediate, (XtPointer) False },
- { "premove", "premove", XtRBoolean,
- sizeof(Boolean), XtOffset(AppDataPtr, premove),
- XtRImmediate, (XtPointer) True },
- { "testLegality", "testLegality", XtRBoolean,
- sizeof(Boolean), XtOffset(AppDataPtr, testLegality),
- XtRImmediate, (XtPointer) True },
- { "flipView", "flipView", XtRBoolean,
- sizeof(Boolean), XtOffset(AppDataPtr, flipView),
- XtRImmediate, (XtPointer) False },
- { "cmail", "cmailGameName", XtRString, sizeof(String),
- XtOffset(AppDataPtr, cmailGameName), XtRString, "" },
- { "alwaysPromoteToQueen", "alwaysPromoteToQueen", XtRBoolean,
- sizeof(Boolean), XtOffset(AppDataPtr, alwaysPromoteToQueen),
- XtRImmediate, (XtPointer) False },
- { "oldSaveStyle", "oldSaveStyle", XtRBoolean,
- sizeof(Boolean), XtOffset(AppDataPtr, oldSaveStyle),
- XtRImmediate, (XtPointer) False },
- { "quietPlay", "quietPlay", XtRBoolean,
- sizeof(Boolean), XtOffset(AppDataPtr, quietPlay),
- XtRImmediate, (XtPointer) False },
- { "titleInWindow", "titleInWindow", XtRBoolean,
- sizeof(Boolean), XtOffset(AppDataPtr, titleInWindow),
- XtRImmediate, (XtPointer) False },
- { "localLineEditing", "localLineEditing", XtRBoolean,
- sizeof(Boolean), XtOffset(AppDataPtr, localLineEditing),
- XtRImmediate, (XtPointer) True }, /* not implemented, must be True */
- #if ZIPPY
- { "zippyTalk", "zippyTalk", XtRBoolean,
- sizeof(Boolean), XtOffset(AppDataPtr, zippyTalk),
- XtRImmediate, (XtPointer) ZIPPY_TALK },
- { "zippyPlay", "zippyPlay", XtRBoolean,
- sizeof(Boolean), XtOffset(AppDataPtr, zippyPlay),
- XtRImmediate, (XtPointer) ZIPPY_PLAY },
- { "zippyLines", "zippyLines", XtRString, sizeof(String),
- XtOffset(AppDataPtr, zippyLines), XtRString, ZIPPY_LINES },
- { "zippyPinhead", "zippyPinhead", XtRString, sizeof(String),
- XtOffset(AppDataPtr, zippyPinhead), XtRString, ZIPPY_PINHEAD },
- { "zippyPassword", "zippyPassword", XtRString, sizeof(String),
- XtOffset(AppDataPtr, zippyPassword), XtRString, ZIPPY_PASSWORD },
- { "zippyPassword2", "zippyPassword2", XtRString, sizeof(String),
- XtOffset(AppDataPtr, zippyPassword2), XtRString, ZIPPY_PASSWORD2 },
- { "zippyWrongPassword", "zippyWrongPassword", XtRString, sizeof(String),
- XtOffset(AppDataPtr, zippyWrongPassword), XtRString,
- ZIPPY_WRONG_PASSWORD },
- { "zippyAcceptOnly", "zippyAcceptOnly", XtRString, sizeof(String),
- XtOffset(AppDataPtr, zippyAcceptOnly), XtRString, ZIPPY_ACCEPT_ONLY },
- { "zippyUseI", "zippyUseI", XtRBoolean,
- sizeof(Boolean), XtOffset(AppDataPtr, zippyUseI),
- XtRImmediate, (XtPointer) ZIPPY_USE_I },
- { "zippyBughouse", "zippyBughouse", XtRInt,
- sizeof(int), XtOffset(AppDataPtr, zippyBughouse),
- XtRImmediate, (XtPointer) ZIPPY_BUGHOUSE },
- { "zippyNoplayCrafty", "zippyNoplayCrafty", XtRBoolean,
- sizeof(Boolean), XtOffset(AppDataPtr, zippyNoplayCrafty),
- XtRImmediate, (XtPointer) ZIPPY_NOPLAY_CRAFTY },
- { "zippyGameEnd", "zippyGameEnd", XtRString, sizeof(String),
- XtOffset(AppDataPtr, zippyGameEnd), XtRString, ZIPPY_GAME_END },
- { "zippyGameStart", "zippyGameStart", XtRString, sizeof(String),
- XtOffset(AppDataPtr, zippyGameStart), XtRString, ZIPPY_GAME_START },
- { "zippyAdjourn", "zippyAdjourn", XtRBoolean,
- sizeof(Boolean), XtOffset(AppDataPtr, zippyAdjourn),
- XtRImmediate, (XtPointer) ZIPPY_ADJOURN },
- { "zippyAbort", "zippyAbort", XtRBoolean,
- sizeof(Boolean), XtOffset(AppDataPtr, zippyAbort),
- XtRImmediate, (XtPointer) ZIPPY_ABORT },
- { "zippyVariants", "zippyVariants", XtRString, sizeof(String),
- XtOffset(AppDataPtr, zippyVariants), XtRString, ZIPPY_VARIANTS },
- { "zippyMaxGames", "zippyMaxGames", XtRInt, sizeof(int),
- XtOffset(AppDataPtr, zippyMaxGames), XtRImmediate,
- (XtPointer) ZIPPY_MAX_GAMES },
- { "zippyReplayTimeout", "zippyReplayTimeout", XtRInt, sizeof(int),
- XtOffset(AppDataPtr, zippyReplayTimeout), XtRImmediate,
- (XtPointer) ZIPPY_REPLAY_TIMEOUT },
- { "zippyShortGame", "zippyShortGame", XtRInt, sizeof(int),
- XtOffset(AppDataPtr, zippyShortGame), XtRImmediate,
- (XtPointer) 0 },
- #endif
{ "flashCount", "flashCount", XtRInt, sizeof(int),
XtOffset(AppDataPtr, flashCount), XtRImmediate,
(XtPointer) FLASH_COUNT },
{ "PastePositionProc", PastePositionProc },
{ "CopyGameProc", CopyGameProc },
{ "PasteGameProc", PasteGameProc },
- { "SaveGameProc", SaveGameProc },
- { "SavePositionProc", SavePositionProc },
+ // { "SaveGameProc", SaveGameProc },
+ // { "SavePositionProc", SavePositionProc },
{ "MailMoveProc", MailMoveProc },
{ "ReloadCmailMsgProc", ReloadCmailMsgProc },
- { "QuitProc", QuitProc },
- { "MachineWhiteProc", MachineWhiteProc },
- { "MachineBlackProc", MachineBlackProc },
- { "AnalysisModeProc", AnalyzeModeProc },
- { "AnalyzeFileProc", AnalyzeFileProc },
- { "TwoMachinesProc", TwoMachinesProc },
- { "IcsClientProc", IcsClientProc },
- { "EditGameProc", EditGameProc },
- { "EditPositionProc", EditPositionProc },
- { "TrainingProc", EditPositionProc },
+ // { "MachineWhiteProc", MachineWhiteProc },
+ // { "MachineBlackProc", MachineBlackProc },
+ // { "AnalysisModeProc", AnalyzeModeProc },
+ // { "AnalyzeFileProc", AnalyzeFileProc },
+ // { "TwoMachinesProc", TwoMachinesProc },
+ // { "IcsClientProc", IcsClientProc },
+ // { "EditGameProc", EditGameProc },
+ // { "EditPositionProc", EditPositionProc },
+ // { "TrainingProc", EditPositionProc },
{ "EngineOutputProc", EngineOutputProc}, // [HGM] Winboard_x engine-output window
+ { "EvalGraphProc", EvalGraphProc}, // [HGM] Winboard_x avaluation graph window
{ "ShowGameListProc", ShowGameListProc },
- { "ShowMoveListProc", HistoryShowProc},
- { "EditTagsProc", EditCommentProc },
+ // { "ShowMoveListProc", HistoryShowProc},
+ // { "EditTagsProc", EditCommentProc },
{ "EditCommentProc", EditCommentProc },
- { "IcsAlarmProc", IcsAlarmProc },
+ // { "IcsAlarmProc", IcsAlarmProc },
{ "IcsInputBoxProc", IcsInputBoxProc },
- { "PauseProc", PauseProc },
- { "AcceptProc", AcceptProc },
- { "DeclineProc", DeclineProc },
- { "RematchProc", RematchProc },
- { "CallFlagProc", CallFlagProc },
- { "DrawProc", DrawProc },
- { "AdjournProc", AdjournProc },
- { "AbortProc", AbortProc },
- { "ResignProc", ResignProc },
- { "AdjuWhiteProc", AdjuWhiteProc },
- { "AdjuBlackProc", AdjuBlackProc },
- { "AdjuDrawProc", AdjuDrawProc },
+ // { "AcceptProc", AcceptProc },
+ // { "DeclineProc", DeclineProc },
+ // { "RematchProc", RematchProc },
+ // { "CallFlagProc", CallFlagProc },
+ // { "DrawProc", DrawProc },
+ // { "AdjournProc", AdjournProc },
+ // { "AbortProc", AbortProc },
+ // { "ResignProc", ResignProc },
+ // { "AdjuWhiteProc", AdjuWhiteProc },
+ // { "AdjuBlackProc", AdjuBlackProc },
+ // { "AdjuDrawProc", AdjuDrawProc },
{ "EnterKeyProc", EnterKeyProc },
- { "StopObservingProc", StopObservingProc },
- { "StopExaminingProc", StopExaminingProc },
- { "BackwardProc", BackwardProc },
- { "ForwardProc", ForwardProc },
- { "ToStartProc", ToStartProc },
- { "ToEndProc", ToEndProc },
- { "RevertProc", RevertProc },
- { "TruncateGameProc", TruncateGameProc },
- { "MoveNowProc", MoveNowProc },
- { "RetractMoveProc", RetractMoveProc },
- { "AlwaysQueenProc", AlwaysQueenProc },
- { "AnimateDraggingProc", AnimateDraggingProc },
- { "AnimateMovingProc", AnimateMovingProc },
- { "AutoflagProc", AutoflagProc },
- { "AutoflipProc", AutoflipProc },
- { "AutobsProc", AutobsProc },
- { "AutoraiseProc", AutoraiseProc },
- { "AutosaveProc", AutosaveProc },
- { "BlindfoldProc", BlindfoldProc },
- { "FlashMovesProc", FlashMovesProc },
- { "FlipViewProc", FlipViewProc },
- { "GetMoveListProc", GetMoveListProc },
+ // { "StopObservingProc", StopObservingProc },
+ // { "StopExaminingProc", StopExaminingProc },
+ // { "BackwardProc", BackwardProc },
+ // { "ForwardProc", ForwardProc },
+ // { "ToStartProc", ToStartProc },
+ // { "ToEndProc", ToEndProc },
+ // { "RevertProc", RevertProc },
+ // { "TruncateGameProc", TruncateGameProc },
+ // { "MoveNowProc", MoveNowProc },
+ // { "RetractMoveProc", RetractMoveProc },
+ // { "AlwaysQueenProc", AlwaysQueenProc },
+ // { "AnimateDraggingProc", AnimateDraggingProc },
+ // { "AnimateMovingProc", AnimateMovingProc },
+ // { "AutoflagProc", AutoflagProc },
+ // { "AutoflipProc", AutoflipProc },
+ // { "AutobsProc", AutobsProc },
+ // { "AutoraiseProc", AutoraiseProc },
+ // { "AutosaveProc", AutosaveProc },
+ // { "BlindfoldProc", BlindfoldProc },
+ // { "FlashMovesProc", FlashMovesProc },
+ // { "FlipViewProc", FlipViewProc },
+ // { "GetMoveListProc", GetMoveListProc },
#if HIGHDRAG
- { "HighlightDraggingProc", HighlightDraggingProc },
+ // { "HighlightDraggingProc", HighlightDraggingProc },
#endif
- { "HighlightLastMoveProc", HighlightLastMoveProc },
- { "IcsAlarmProc", IcsAlarmProc },
- { "MoveSoundProc", MoveSoundProc },
- { "OldSaveStyleProc", OldSaveStyleProc },
- { "PeriodicUpdatesProc", PeriodicUpdatesProc },
- { "PonderNextMoveProc", PonderNextMoveProc },
- { "PopupExitMessageProc", PopupExitMessageProc },
- { "PopupMoveErrorsProc", PopupMoveErrorsProc },
- { "PremoveProc", PremoveProc },
- { "QuietPlayProc", QuietPlayProc },
- { "ShowCoordsProc", ShowCoordsProc },
- { "ShowThinkingProc", ShowThinkingProc },
- { "HideThinkingProc", HideThinkingProc },
- { "TestLegalityProc", TestLegalityProc },
+ // { "HighlightLastMoveProc", HighlightLastMoveProc },
+ // { "IcsAlarmProc", IcsAlarmProc },
+ // { "MoveSoundProc", MoveSoundProc },
+ // { "OldSaveStyleProc", OldSaveStyleProc },
+ // { "PeriodicUpdatesProc", PeriodicUpdatesProc },
+ // { "PonderNextMoveProc", PonderNextMoveProc },
+ // { "PopupExitMessageProc", PopupExitMessageProc },
+ // { "PopupMoveErrorsProc", PopupMoveErrorsProc },
+ // { "PremoveProc", PremoveProc },
+ // { "QuietPlayProc", QuietPlayProc },
+ // { "ShowThinkingProc", ShowThinkingProc },
+ // { "HideThinkingProc", HideThinkingProc },
- { "TestLegalityProc", TestLegalityProc },
- // { "InfoProc", InfoProc },
- // { "ManProc", ManProc },
- // { "HintProc", HintProc },
- // { "BookProc", BookProc },
++ // { "TestLegalityProc", TestLegalityProc },
+ { "SaveSettingsProc", SaveSettingsProc },
+ { "SaveOnExitProc", SaveOnExitProc },
- { "InfoProc", InfoProc },
- { "ManProc", ManProc },
- { "HintProc", HintProc },
- { "BookProc", BookProc },
++// { "InfoProc", InfoProc },
++// { "ManProc", ManProc },
++// { "HintProc", HintProc },
++// { "BookProc", BookProc },
{ "AboutGameProc", AboutGameProc },
- { "AboutProc", AboutProc },
{ "DebugProc", DebugProc },
{ "NothingProc", NothingProc },
{ "CommentPopDown", (XtActionProc) CommentPopDown },
{ "AskQuestionPopDown", (XtActionProc) AskQuestionPopDown },
{ "GameListPopDown", (XtActionProc) GameListPopDown },
{ "PromotionPopDown", (XtActionProc) PromotionPopDown },
- { "HistoryPopDown", (XtActionProc) HistoryPopDown },
+ // { "HistoryPopDown", (XtActionProc) HistoryPopDown },
{ "EngineOutputPopDown", (XtActionProc) EngineOutputPopDown },
+ { "EvalGraphPopDown", (XtActionProc) EvalGraphPopDown },
{ "ShufflePopDown", (XtActionProc) ShufflePopDown },
{ "EnginePopDown", (XtActionProc) EnginePopDown },
{ "UciPopDown", (XtActionProc) UciPopDown },
void
BoardToTop()
{
- Arg args[16];
- XtSetArg(args[0], XtNiconic, False);
- XtSetValues(shellWidget, args, 1);
-
- XtPopup(shellWidget, XtGrabNone); /* Raise if lowered */
+ /* this should raise the board to the top */
+ gtk_window_present(GTK_WINDOW(GUI_Window));
+ return;
}
+ //---------------------------------------------------------------------------------------------------------
+ // some symbol definitions to provide the proper (= XBoard) context for the code in args.h
+ #define XBOARD True
+ #define JAWS_ARGS
+ #define CW_USEDEFAULT (1<<31)
+ #define ICS_TEXT_MENU_SIZE 90
+ #define SetCurrentDirectory chdir
+ #define GetCurrentDirectory(SIZE, NAME) getcwd(NAME, SIZE)
+ #define OPTCHAR "-"
+ #define SEPCHAR " "
+
+ // these two must some day move to frontend.h, when they are implemented
+ Boolean MoveHistoryIsUp();
+ Boolean GameListIsUp();
+
+ // The option definition and parsing code common to XBoard and WinBoard is collected in this file
+ #include "args.h"
+
+ // front-end part of option handling
+
+ // [HGM] This platform-dependent table provides the location for storing the color info
+ extern char *crWhite, * crBlack;
+
+ void *
+ colorVariable[] = {
+ &appData.whitePieceColor,
+ &appData.blackPieceColor,
+ &appData.lightSquareColor,
+ &appData.darkSquareColor,
+ &appData.highlightSquareColor,
+ &appData.premoveHighlightColor,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ &crWhite,
+ &crBlack,
+ NULL
+ };
+
+ void
+ ParseFont(char *name, int number)
+ { // in XBoard, only 2 of the fonts are currently implemented, and we just copy their name
+ switch(number) {
+ case 0: // CLOCK_FONT
+ appData.clockFont = strdup(name);
+ break;
+ case 1: // MESSAGE_FONT
+ appData.font = strdup(name);
+ break;
+ case 2: // COORD_FONT
+ appData.coordFont = strdup(name);
+ break;
+ default:
+ return;
+ }
+ }
+
+ void
+ SetFontDefaults()
+ { // only 2 fonts currently
+ appData.clockFont = CLOCK_FONT_NAME;
+ appData.coordFont = COORD_FONT_NAME;
+ appData.font = DEFAULT_FONT_NAME;
+ }
+
+ void
+ CreateFonts()
+ { // no-op, until we identify the code for this already in XBoard and move it here
+ }
+
+ void
+ ParseColor(int n, char *name)
+ { // in XBoard, just copy the color-name string
+ if(colorVariable[n]) *(char**)colorVariable[n] = strdup(name);
+ }
+
+ void
+ ParseTextAttribs(ColorClass cc, char *s)
+ {
+ (&appData.colorShout)[cc] = strdup(s);
+ }
+
+ void
+ ParseBoardSize(void *addr, char *name)
+ {
+ appData.boardSize = strdup(name);
+ }
+
+ void
+ LoadAllSounds()
+ { // In XBoard the sound-playing program takes care of obtaining the actual sound
+ }
+
+ void
+ SetCommPortDefaults()
+ { // for now, this is a no-op, as the corresponding option does not exist in XBoard
+ }
+
+ // [HGM] args: these three cases taken out to stay in front-end
+ void
+ SaveFontArg(FILE *f, ArgDescriptor *ad)
+ {
+ char *name;
+ switch((int)ad->argLoc) {
+ case 0: // CLOCK_FONT
+ name = appData.clockFont;
+ break;
+ case 1: // MESSAGE_FONT
+ name = appData.font;
+ break;
+ case 2: // COORD_FONT
+ name = appData.coordFont;
+ break;
+ default:
+ return;
+ }
+ fprintf(f, OPTCHAR "%s" SEPCHAR "%s\n", ad->argName, name);
+ }
+
+ void
+ ExportSounds()
+ { // nothing to do, as the sounds are at all times represented by their text-string names already
+ }
+
+ void
+ SaveAttribsArg(FILE *f, ArgDescriptor *ad)
+ { // here the "argLoc" defines a table index. It could have contained the 'ta' pointer itself, though
+ fprintf(f, OPTCHAR "%s" SEPCHAR "%s\n", ad->argName, (&appData.colorShout)[(int)ad->argLoc]);
+ }
+
+ void
+ SaveColor(FILE *f, ArgDescriptor *ad)
+ { // in WinBoard the color is an int and has to be converted to text. In X it would be a string already?
+ if(colorVariable[(int)ad->argLoc])
+ fprintf(f, OPTCHAR "%s" SEPCHAR "%s\n", ad->argName, *(char**)colorVariable[(int)ad->argLoc]);
+ }
+
+ void
+ SaveBoardSize(FILE *f, char *name, void *addr)
+ { // wrapper to shield back-end from BoardSize & sizeInfo
+ fprintf(f, OPTCHAR "%s" SEPCHAR "%s\n", name, appData.boardSize);
+ }
+
+ void
+ ParseCommPortSettings(char *s)
+ { // no such option in XBoard (yet)
+ }
+
+ extern Widget engineOutputShell;
+ extern Widget tagsShell, editTagsShell;
+ void
+ GetActualPlacement(Widget wg, WindowPlacement *wp)
+ {
+ Arg args[16];
+ Dimension w, h;
+ Position x, y;
+ int i;
+
+ if(!wg) return;
+
+ i = 0;
+ XtSetArg(args[i], XtNx, &x); i++;
+ XtSetArg(args[i], XtNy, &y); i++;
+ XtSetArg(args[i], XtNwidth, &w); i++;
+ XtSetArg(args[i], XtNheight, &h); i++;
+ XtGetValues(wg, args, i);
+ wp->x = x - 4;
+ wp->y = y - 23;
+ wp->height = h;
+ wp->width = w;
+ }
+
+ void
+ GetWindowCoords()
+ { // wrapper to shield use of window handles from back-end (make addressible by number?)
+ // In XBoard this will have to wait until awareness of window parameters is implemented
+ GetActualPlacement(shellWidget, &wpMain);
+ if(EngineOutputIsUp()) GetActualPlacement(engineOutputShell, &wpEngineOutput); else
+ if(MoveHistoryIsUp()) GetActualPlacement(historyShell, &wpMoveHistory);
+ if(EvalGraphIsUp()) GetActualPlacement(evalGraphShell, &wpEvalGraph);
+ if(GameListIsUp()) GetActualPlacement(gameListShell, &wpGameList);
+ if(commentShell) GetActualPlacement(commentShell, &wpComment);
+ else GetActualPlacement(editShell, &wpComment);
+ if(tagsShell) GetActualPlacement(tagsShell, &wpTags);
+ else GetActualPlacement(editTagsShell, &wpTags);
+ }
+
+ void
+ PrintCommPortSettings(FILE *f, char *name)
+ { // This option does not exist in XBoard
+ }
+
+ int
+ MySearchPath(char *installDir, char *name, char *fullname)
+ { // just append installDir and name. Perhaps ExpandPath should be used here?
+ name = ExpandPathName(name);
+ if(name && name[0] == '/') strcpy(fullname, name); else {
+ sprintf(fullname, "%s%c%s", installDir, '/', name);
+ }
+ return 1;
+ }
+
+ int
+ MyGetFullPathName(char *name, char *fullname)
+ { // should use ExpandPath?
+ name = ExpandPathName(name);
+ strcpy(fullname, name);
+ return 1;
+ }
+
+ void
+ EnsureOnScreen(int *x, int *y, int minX, int minY)
+ {
+ return;
+ }
+
+ int
+ MainWindowUp()
+ { // [HGM] args: allows testing if main window is realized from back-end
+ return xBoardWindow != 0;
+ }
+
+ void
+ PopUpStartupDialog()
+ { // start menu not implemented in XBoard
+ }
+ char *
+ ConvertToLine(int argc, char **argv)
+ {
+ static char line[128*1024], buf[1024];
+ int i;
+
+ line[0] = NULLCHAR;
+ for(i=1; i<argc; i++) {
+ if( (strchr(argv[i], ' ') || strchr(argv[i], '\n') ||strchr(argv[i], '\t') )
+ && argv[i][0] != '{' )
+ sprintf(buf, "{%s} ", argv[i]);
+ else sprintf(buf, "%s ", argv[i]);
+ strcat(line, buf);
+ }
+ line[strlen(line)-1] = NULLCHAR;
+ return line;
+ }
+
+ //--------------------------------------------------------------------------------------------
+
+ #ifdef IDSIZES
+ // eventually, all layout determining code should go into a subroutine, but until then IDSIZE remains undefined
+ #else
++
#define BoardSize int
void InitDrawingSizes(BoardSize boardSize, int flags)
{ // [HGM] resize is functional now, but for board format changes only (nr of ranks, files)
char *p;
XrmDatabase xdb;
int forceMono = False;
+
- #define INDIRECTION
+ //define INDIRECTION
++
#ifdef INDIRECTION
// [HGM] before anything else, expand any indirection files amongst options
char *argvCopy[1000]; // 1000 seems enough
XtAppInitialize(&appContext, "XBoard", shellOptions,
XtNumber(shellOptions),
&argc, argv, xboardResources, NULL, 0);
+
+ /* set up GTK */
+ gtk_init (&argc, &argv);
+
+ /* parse glade file to build widgets */
+
+ builder = gtk_builder_new ();
+ gtk_builder_add_from_file (builder, "gtk-interface.xml", NULL);
+
+ /* test if everything worked ok */
+
+ GUI_Window = GTK_WIDGET (gtk_builder_get_object (builder, "MainWindow"));
+ if(!GUI_Window) printf("Error: gtk_builder didn't work!\n");
+
+ GUI_Aspect = GTK_WIDGET (gtk_builder_get_object (builder, "Aspectframe"));
+ if(!GUI_Aspect) printf("Error: gtk_builder didn't work!\n");
+
+ GUI_History = GTK_WIDGET (gtk_builder_get_object (builder, "MoveHistory"));
+ if(!GUI_History) printf("Error: gtk_builder didn't work!\n");
+
+ GUI_Menubar = GTK_WIDGET (gtk_builder_get_object (builder, "MenuBar"));
+ if(!GUI_Menubar) printf("Error: gtk_builder didn't work!\n");
+ GUI_Timer = GTK_WIDGET (gtk_builder_get_object (builder, "Timer"));
+ if(!GUI_Timer) printf("Error: gtk_builder didn't work!\n");
+ GUI_Buttonbar = GTK_WIDGET (gtk_builder_get_object (builder, "ButtonBar"));
+ if(!GUI_Buttonbar) printf("Error: gtk_builder didn't work!\n");
+ GUI_Board = GTK_WIDGET (gtk_builder_get_object (builder, "Board"));
+ if(!GUI_Board) printf("Error: gtk_builder didn't work!\n");
+
+ GUI_Whiteclock = GTK_WIDGET (gtk_builder_get_object (builder, "WhiteClock"));
+ if(!GUI_Whiteclock) printf("Error: gtk_builder didn't work!\n");
+
+ GUI_Blackclock = GTK_WIDGET (gtk_builder_get_object (builder, "BlackClock"));
+ if(!GUI_Blackclock) printf("Error: gtk_builder didn't work!\n");
+
+ LIST_MoveHistory = GTK_LIST_STORE (gtk_builder_get_object (builder, "MoveHistoryStore"));
+ if(!LIST_MoveHistory) printf("Error: gtk_builder didn't work!\n");
+
+ /* EditTags window */
+ GUI_EditTags = GTK_WIDGET (gtk_builder_get_object (builder, "EditTags"));
+ if(!GUI_EditTags) printf("Error: gtk_builder didn't work!\n");
+
+ GUI_EditTagsTextArea = GTK_WIDGET (gtk_builder_get_object (builder, "EditTagsTextArea"));
+ if(!GUI_EditTagsTextArea) printf("Error: gtk_builder didn't work!\n");
+
+
+ gtk_builder_connect_signals (builder, NULL);
+
+ // don't unref the builder, since we use it to get references to widgets
+ // g_object_unref (G_OBJECT (builder));
+
+ /* end parse glade file */
+
+ appData.boardSize = "";
+ InitAppData(ConvertToLine(argc, argv));
++
+ if (argc > 1)
+ {
+ fprintf(stderr, _("%s: unrecognized argument %s\n"),
+ programName, argv[1]);
+
+ fprintf(stderr, "Recognized options:\n");
+ for(i = 0; i < XtNumber(shellOptions); i++)
+ {
+ /* print first column */
+ j = fprintf(stderr, " %s%s", shellOptions[i].option,
+ (shellOptions[i].argKind == XrmoptionSepArg
+ ? " ARG" : ""));
+ /* print second column and end line */
+ if (++i < XtNumber(shellOptions))
+ {
+ fprintf(stderr, "%*c%s%s\n", 40 - j, ' ',
+ shellOptions[i].option,
+ (shellOptions[i].argKind == XrmoptionSepArg
+ ? " ARG" : ""));
+ }
+ else
+ {
+ fprintf(stderr, "\n");
+ };
+ };
+ exit(2);
+ };
+
p = getenv("HOME");
if (p == NULL) p = "/tmp";
i = strlen(p) + strlen("/.xboardXXXXXx.pgn") + 1;
if (i < 5) fontPxlSize = nearest->fontPxlSize;
if (i < 6) smallLayout = nearest->smallLayout;
if (i < 7) tinyLayout = nearest->tinyLayout;
- }
- } else {
+ }
+ }
+ else
+ {
SizeDefaults *szd = sizeDefaults;
- if (*appData.boardSize == NULLCHAR) {
- while (DisplayWidth(xDisplay, xScreen) < szd->minScreenSize ||
- DisplayHeight(xDisplay, xScreen) < szd->minScreenSize) {
- szd++;
- }
+ if (*appData.boardSize == NULLCHAR)
+ {
+ while (DisplayWidth(xDisplay, xScreen) < szd->minScreenSize
+ || DisplayHeight(xDisplay, xScreen) < szd->minScreenSize)
+ {
+ szd++;
+ }
if (szd->name == NULL) szd--;
+ appData.boardSize = strdup(szd->name); // [HGM] settings: remember name for saving settings
- } else {
- while (szd->name != NULL &&
- StrCaseCmp(szd->name, appData.boardSize) != 0) szd++;
- if (szd->name == NULL) {
+ }
+ else
+ {
+ while (szd->name != NULL
+ && StrCaseCmp(szd->name, appData.boardSize) != 0)
+ szd++;
+ if (szd->name == NULL)
+ {
fprintf(stderr, _("%s: unrecognized boardSize name %s\n"),
programName, appData.boardSize);
exit(2);
}
if (appData.showButtonBar) {
- widgetList[j++] = buttonBarWidget = CreateButtonBar(buttonBar);
- XtSetArg(args[0], XtNleft, XtChainRight); // [HGM] glue to right window edge
- XtSetArg(args[1], XtNright, XtChainRight); // for good run-time sizing
- XtSetArg(args[2], XtNtop, XtChainTop);
- XtSetArg(args[3], XtNbottom, XtChainTop);
- XtSetValues(buttonBarWidget, args, 4);
+ /* TODO hide button bar if requested */
}
- widgetList[j++] = messageWidget =
- XtCreateWidget("message", labelWidgetClass, formWidget,
- messageArgs, XtNumber(messageArgs));
- XtSetArg(args[0], XtNtop, XtChainTop);
- XtSetArg(args[1], XtNbottom, XtChainTop);
- XtSetValues(messageWidget, args, 2);
- widgetList[j++] = boardWidget =
- XtCreateWidget("board", widgetClass, formWidget, boardArgs,
- XtNumber(boardArgs));
-
- XtManageChildren(widgetList, j);
+ if (appData.titleInWindow)
+ {
+ if (smallLayout)
+ {
+ /* make it small */
+ if (appData.showButtonBar)
+ {
- timerWidth = (boardWidth - sep) / 2;
- XtSetArg(args[0], XtNwidth, timerWidth);
- XtSetValues(whiteTimerWidget, args, 1);
- XtSetValues(blackTimerWidget, args, 1);
+ }
+ }
+ else
+ {
+ if (appData.showButtonBar)
+ {
+ }
+ }
+ }
+ else
+ {
+ }
- XtSetArg(args[0], XtNbackground, &timerBackgroundPixel);
- XtSetArg(args[1], XtNforeground, &timerForegroundPixel);
- XtGetValues(whiteTimerWidget, args, 2);
- if (appData.showButtonBar) {
- XtSetArg(args[0], XtNbackground, &buttonBackgroundPixel);
- XtSetArg(args[1], XtNforeground, &buttonForegroundPixel);
- XtGetValues(XtNameToWidget(buttonBarWidget, PAUSE_BUTTON), args, 2);
- }
+ /* set some checkboxes in the menu according to appData */
- /*
- * formWidget uses these constraints but they are stored
- * in the children.
- */
- i = 0;
- XtSetArg(args[i], XtNfromHoriz, 0); i++;
- XtSetValues(menuBarWidget, args, i);
- if (appData.titleInWindow) {
- if (smallLayout) {
- i = 0;
- XtSetArg(args[i], XtNfromVert, menuBarWidget); i++;
- XtSetValues(whiteTimerWidget, args, i);
- i = 0;
- XtSetArg(args[i], XtNfromVert, menuBarWidget); i++;
- XtSetArg(args[i], XtNfromHoriz, whiteTimerWidget); i++;
- XtSetValues(blackTimerWidget, args, i);
- i = 0;
- XtSetArg(args[i], XtNfromVert, whiteTimerWidget); i++;
- XtSetArg(args[i], XtNjustify, XtJustifyLeft); i++;
- XtSetValues(titleWidget, args, i);
- i = 0;
- XtSetArg(args[i], XtNfromVert, titleWidget); i++;
- XtSetArg(args[i], XtNresizable, (XtArgVal) True); i++;
- XtSetValues(messageWidget, args, i);
- if (appData.showButtonBar) {
- i = 0;
- XtSetArg(args[i], XtNfromVert, titleWidget); i++;
- XtSetArg(args[i], XtNfromHoriz, messageWidget); i++;
- XtSetValues(buttonBarWidget, args, i);
- }
- } else {
- i = 0;
- XtSetArg(args[i], XtNfromVert, titleWidget); i++;
- XtSetValues(whiteTimerWidget, args, i);
- i = 0;
- XtSetArg(args[i], XtNfromVert, titleWidget); i++;
- XtSetArg(args[i], XtNfromHoriz, whiteTimerWidget); i++;
- XtSetValues(blackTimerWidget, args, i);
- i = 0;
- XtSetArg(args[i], XtNfromHoriz, menuBarWidget); i++;
- XtSetValues(titleWidget, args, i);
- i = 0;
- XtSetArg(args[i], XtNfromVert, whiteTimerWidget); i++;
- XtSetArg(args[i], XtNresizable, (XtArgVal) True); i++;
- XtSetValues(messageWidget, args, i);
- if (appData.showButtonBar) {
- i = 0;
- XtSetArg(args[i], XtNfromVert, whiteTimerWidget); i++;
- XtSetArg(args[i], XtNfromHoriz, messageWidget); i++;
- XtSetValues(buttonBarWidget, args, i);
- }
- }
- } else {
- i = 0;
- XtSetArg(args[i], XtNfromVert, menuBarWidget); i++;
- XtSetValues(whiteTimerWidget, args, i);
- i = 0;
- XtSetArg(args[i], XtNfromVert, menuBarWidget); i++;
- XtSetArg(args[i], XtNfromHoriz, whiteTimerWidget); i++;
- XtSetValues(blackTimerWidget, args, i);
- i = 0;
- XtSetArg(args[i], XtNfromVert, whiteTimerWidget); i++;
- XtSetArg(args[i], XtNresizable, (XtArgVal) True); i++;
- XtSetValues(messageWidget, args, i);
- if (appData.showButtonBar) {
- i = 0;
- XtSetArg(args[i], XtNfromVert, whiteTimerWidget); i++;
- XtSetArg(args[i], XtNfromHoriz, messageWidget); i++;
- XtSetValues(buttonBarWidget, args, i);
- }
- }
- i = 0;
- XtSetArg(args[0], XtNfromVert, messageWidget);
- XtSetArg(args[1], XtNtop, XtChainTop);
- XtSetArg(args[2], XtNbottom, XtChainBottom);
- XtSetArg(args[3], XtNleft, XtChainLeft);
- XtSetArg(args[4], XtNright, XtChainRight);
- XtSetValues(boardWidget, args, 5);
-
- XtRealizeWidget(shellWidget);
-
- if(wpMain.x > 0) {
- XtSetArg(args[0], XtNx, wpMain.x);
- XtSetArg(args[1], XtNy, wpMain.y);
- XtSetValues(shellWidget, args, 2);
- }
+ if (appData.alwaysPromoteToQueen)
+ gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (gtk_builder_get_object (builder, "menuOptions.Always Queen")),TRUE);
- /*
- * Correct the width of the message and title widgets.
- * It is not known why some systems need the extra fudge term.
- * The value "2" is probably larger than needed.
- */
- XawFormDoLayout(formWidget, False);
+ if (appData.animateDragging)
+ gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (gtk_builder_get_object (builder, "menuOptions.Animate Dragging")),TRUE);
-#define WIDTH_FUDGE 2
- i = 0;
- XtSetArg(args[i], XtNborderWidth, &bor); i++;
- XtSetArg(args[i], XtNheight, &h); i++;
- XtGetValues(messageWidget, args, i);
- if (appData.showButtonBar) {
- i = 0;
- XtSetArg(args[i], XtNwidth, &w); i++;
- XtGetValues(buttonBarWidget, args, i);
- w = boardWidth - w - sep - 2*bor - WIDTH_FUDGE;
- } else {
- w = boardWidth - 2*bor + 1; /*!! +1 compensates for kludge below */
- }
+ if (appData.animate)
+ gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (gtk_builder_get_object (builder, "menuOptions.Animate Moving")),TRUE);
- gres = XtMakeResizeRequest(messageWidget, w, h, &wr, &hr);
- if (gres != XtGeometryYes && appData.debugMode) {
- fprintf(stderr, _("%s: messageWidget geometry error %d %d %d %d %d\n"),
- programName, gres, w, h, wr, hr);
- }
+ if (appData.autoComment)
+ gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (gtk_builder_get_object (builder, "menuOptions.Auto Comment")),TRUE);
- /* !! Horrible hack to work around bug in XFree86 4.0.1 (X11R6.4.3) */
- /* The size used for the child widget in layout lags one resize behind
- its true size, so we resize a second time, 1 pixel smaller. Yeech! */
- w--;
- gres = XtMakeResizeRequest(messageWidget, w, h, &wr, &hr);
- if (gres != XtGeometryYes && appData.debugMode) {
- fprintf(stderr, _("%s: messageWidget geometry error %d %d %d %d %d\n"),
- programName, gres, w, h, wr, hr);
- }
- /* !! end hack */
- XtSetArg(args[0], XtNleft, XtChainLeft); // [HGM] glue ends for good run-time sizing
- XtSetArg(args[1], XtNright, XtChainRight);
- XtSetValues(messageWidget, args, 2);
+ if (appData.autoCallFlag)
+ gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (gtk_builder_get_object (builder, "menuOptions.Auto Flag")),TRUE);
- if (appData.titleInWindow) {
- i = 0;
- XtSetArg(args[i], XtNborderWidth, &bor); i++;
- XtSetArg(args[i], XtNheight, &h); i++;
- XtGetValues(titleWidget, args, i);
- if (smallLayout) {
- w = boardWidth - 2*bor;
- } else {
- XtSetArg(args[0], XtNwidth, &w);
- XtGetValues(menuBarWidget, args, 1);
- w = boardWidth - w - sep - 2*bor - WIDTH_FUDGE;
- }
+ if (appData.autoFlipView)
+ gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (gtk_builder_get_object (builder, "menuOptions.Auto Flip View")),TRUE);
- gres = XtMakeResizeRequest(titleWidget, w, h, &wr, &hr);
- if (gres != XtGeometryYes && appData.debugMode) {
- fprintf(stderr,
- _("%s: titleWidget geometry error %d %d %d %d %d\n"),
- programName, gres, w, h, wr, hr);
- }
- }
- XawFormDoLayout(formWidget, True);
+ if (appData.autoObserve)
+ gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (gtk_builder_get_object (builder, "menuOptions.Auto Observe")),TRUE);
- xBoardWindow = XtWindow(boardWidget);
+ if (appData.autoRaiseBoard)
+ gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (gtk_builder_get_object (builder, "menuOptions.Auto Raise Board")),TRUE);
- // [HGM] it seems the layout code ends here, but perhaps the color stuff is size independent and would
- // not need to go into InitDrawingSizes().
-#endif
+ if (appData.autoSaveGames)
+ gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (gtk_builder_get_object (builder, "menuOptions.Auto Save")),TRUE);
- /*
- * Create X checkmark bitmap and initialize option menu checks.
- */
- ReadBitmap(&xMarkPixmap, "checkmark.bm",
- checkmark_bits, checkmark_width, checkmark_height);
- XtSetArg(args[0], XtNleftBitmap, xMarkPixmap);
- if (appData.alwaysPromoteToQueen) {
- XtSetValues(XtNameToWidget(menuBarWidget, "menuOptions.Always Queen"),
- args, 1);
- }
- if (appData.animateDragging) {
- XtSetValues(XtNameToWidget(menuBarWidget,
- "menuOptions.Animate Dragging"),
- args, 1);
- }
- if (appData.animate) {
- XtSetValues(XtNameToWidget(menuBarWidget, "menuOptions.Animate Moving"),
- args, 1);
- }
- if (appData.autoComment) {
- XtSetValues(XtNameToWidget(menuBarWidget, "menuOptions.Auto Comment"),
- args, 1);
- }
- if (appData.autoCallFlag) {
- XtSetValues(XtNameToWidget(menuBarWidget, "menuOptions.Auto Flag"),
- args, 1);
- }
- if (appData.autoFlipView) {
- XtSetValues(XtNameToWidget(menuBarWidget,"menuOptions.Auto Flip View"),
- args, 1);
- }
- if (appData.autoObserve) {
- XtSetValues(XtNameToWidget(menuBarWidget, "menuOptions.Auto Observe"),
- args, 1);
- }
- if (appData.autoRaiseBoard) {
- XtSetValues(XtNameToWidget(menuBarWidget,
- "menuOptions.Auto Raise Board"), args, 1);
- }
- if (appData.autoSaveGames) {
- XtSetValues(XtNameToWidget(menuBarWidget, "menuOptions.Auto Save"),
- args, 1);
- }
- if (appData.saveGameFile[0] != NULLCHAR) {
+ if (appData.saveGameFile[0] != NULLCHAR)
+ {
/* Can't turn this off from menu */
- XtSetValues(XtNameToWidget(menuBarWidget, "menuOptions.Auto Save"),
- args, 1);
- XtSetSensitive(XtNameToWidget(menuBarWidget, "menuOptions.Auto Save"),
- False);
+ gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (gtk_builder_get_object (builder, "menuOptions.Auto Save")),TRUE);
+ gtk_action_set_sensitive(GTK_ACTION (gtk_builder_get_object (builder, "menuOptions.Auto Save")),FALSE);
+ }
+
+ if (appData.blindfold)
+ gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (gtk_builder_get_object (builder, "menuOptions.Blindfold")),TRUE);
+
+ if (appData.flashCount > 0)
+ gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (gtk_builder_get_object (builder, "menuOptions.Flash Moves")),TRUE);
+
+ if (appData.getMoveList)
+ gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (gtk_builder_get_object (builder, "menuOptions.Get Move List")),TRUE);
- }
- if (appData.blindfold) {
- XtSetValues(XtNameToWidget(menuBarWidget,
- "menuOptions.Blindfold"), args, 1);
- }
- if (appData.flashCount > 0) {
- XtSetValues(XtNameToWidget(menuBarWidget,
- "menuOptions.Flash Moves"),
- args, 1);
- }
- if (appData.getMoveList) {
- XtSetValues(XtNameToWidget(menuBarWidget, "menuOptions.Get Move List"),
- args, 1);
- }
#if HIGHDRAG
- if (appData.highlightDragging) {
- XtSetValues(XtNameToWidget(menuBarWidget,
- "menuOptions.Highlight Dragging"),
- args, 1);
- }
+ if (appData.highlightDragging)
+ gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (gtk_builder_get_object (builder, "menuOptions.Highlight Dragging")),TRUE);
#endif
- if (appData.highlightLastMove) {
- XtSetValues(XtNameToWidget(menuBarWidget,
- "menuOptions.Highlight Last Move"),
- args, 1);
- }
- if (appData.icsAlarm) {
- XtSetValues(XtNameToWidget(menuBarWidget, "menuOptions.ICS Alarm"),
- args, 1);
- }
- if (appData.ringBellAfterMoves) {
- XtSetValues(XtNameToWidget(menuBarWidget, "menuOptions.Move Sound"),
- args, 1);
- }
- if (appData.oldSaveStyle) {
- XtSetValues(XtNameToWidget(menuBarWidget,
- "menuOptions.Old Save Style"), args, 1);
- }
- if (appData.periodicUpdates) {
- XtSetValues(XtNameToWidget(menuBarWidget,
- "menuOptions.Periodic Updates"), args, 1);
- }
- if (appData.ponderNextMove) {
- XtSetValues(XtNameToWidget(menuBarWidget,
- "menuOptions.Ponder Next Move"), args, 1);
- }
- if (appData.popupExitMessage) {
- XtSetValues(XtNameToWidget(menuBarWidget,
- "menuOptions.Popup Exit Message"), args, 1);
- }
- if (appData.popupMoveErrors) {
- XtSetValues(XtNameToWidget(menuBarWidget,
- "menuOptions.Popup Move Errors"), args, 1);
- }
- if (appData.premove) {
- XtSetValues(XtNameToWidget(menuBarWidget,
- "menuOptions.Premove"), args, 1);
- }
- if (appData.quietPlay) {
- XtSetValues(XtNameToWidget(menuBarWidget,
- "menuOptions.Quiet Play"), args, 1);
- }
- if (appData.showCoords) {
- XtSetValues(XtNameToWidget(menuBarWidget, "menuOptions.Show Coords"),
- args, 1);
- }
- if (appData.hideThinkingFromHuman) {
- XtSetValues(XtNameToWidget(menuBarWidget, "menuOptions.Hide Thinking"),
- args, 1);
- }
- if (appData.testLegality) {
- XtSetValues(XtNameToWidget(menuBarWidget,"menuOptions.Test Legality"),
- args, 1);
- }
- if (saveSettingsOnExit) {
- XtSetValues(XtNameToWidget(menuBarWidget,"menuOptions.Save Settings on Exit"),
- args, 1);
- }
- /*
- * Create an icon.
- */
- ReadBitmap(&wIconPixmap, "icon_white.bm",
- icon_white_bits, icon_white_width, icon_white_height);
- ReadBitmap(&bIconPixmap, "icon_black.bm",
- icon_black_bits, icon_black_width, icon_black_height);
- iconPixmap = wIconPixmap;
- i = 0;
- XtSetArg(args[i], XtNiconPixmap, iconPixmap); i++;
- XtSetValues(shellWidget, args, i);
+ if (appData.highlightLastMove)
+ gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (gtk_builder_get_object (builder, "menuOptions.Highlight Last Move")),TRUE);
- /*
- * Create a cursor for the board widget.
- */
- window_attributes.cursor = XCreateFontCursor(xDisplay, XC_hand2);
- XChangeWindowAttributes(xDisplay, xBoardWindow,
- CWCursor, &window_attributes);
+ if (appData.icsAlarm)
+ gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (gtk_builder_get_object (builder, "menuOptions.ICS Alarm")),TRUE);
- /*
- * Inhibit shell resizing.
- */
- shellArgs[0].value = (XtArgVal) &w;
- shellArgs[1].value = (XtArgVal) &h;
- XtGetValues(shellWidget, shellArgs, 2);
- shellArgs[4].value = shellArgs[2].value = w;
- shellArgs[5].value = shellArgs[3].value = h;
- XtSetValues(shellWidget, &shellArgs[2], 4);
- marginW = w - boardWidth; // [HGM] needed to set new shellWidget size when we resize board
- marginH = h - boardHeight;
+ if (appData.ringBellAfterMoves)
+ gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (gtk_builder_get_object (builder, "menuOptions.Move Sound")),TRUE);
- CatchDeleteWindow(shellWidget, "QuitProc");
+ if (appData.oldSaveStyle)
+ gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (gtk_builder_get_object (builder, "menuOptions.Old Save Style")),TRUE);
- CreateGCs();
- CreateGrid();
-#if HAVE_LIBXPM
- if (appData.bitmapDirectory[0] != NULLCHAR) {
- CreatePieces();
- } else {
- CreateXPMPieces();
- }
-#else
- CreateXIMPieces();
- /* Create regular pieces */
- if (!useImages) CreatePieces();
-#endif
+ if (appData.periodicUpdates)
+ gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (gtk_builder_get_object (builder, "menuOptions.Periodic Updates")),TRUE);
+
+ if (appData.ponderNextMove)
+ gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (gtk_builder_get_object (builder, "menuOptions.Ponder Next Move")),TRUE);
+
+ if (appData.popupExitMessage)
+ gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (gtk_builder_get_object (builder, "menuOptions.Popup Exit Message")),TRUE);
+
+ if (appData.popupMoveErrors)
+ gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (gtk_builder_get_object (builder, "menuOptions.Popup Move Errors")),TRUE);
+
+ if (appData.premove)
+ gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (gtk_builder_get_object (builder, "menuOptions.Premove")),TRUE);
+
+ if (appData.quietPlay)
+ gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (gtk_builder_get_object (builder, "menuOptions.Quit Play")),TRUE);
+
+ if (appData.showCoords)
+ gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (gtk_builder_get_object (builder, "menuOptions.Show Coords")),TRUE);
+
+ if (appData.showThinking)
- gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (gtk_builder_get_object (builder, "menuOptions.Show Thinking")),TRUE);
++ gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (gtk_builder_get_object (builder, "menuOptions.Hide Thinking")),TRUE);
+
+ if (appData.testLegality)
+ gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (gtk_builder_get_object (builder, "menuOptions.Test Legality")),TRUE);
++ // TODO: add
++ // if (saveSettingsOnExit) {
++ // XtSetValues(XtNameToWidget(menuBarWidget,"menuOptions.Save Settings on Exit"),
++ // args, 1);
++ // }
++
++
+ /* end setting check boxes */
+
+ /* load square colors */
+ SVGLightSquare = load_pixbuf("svg/LightSquare.svg",squareSize);
+ SVGDarkSquare = load_pixbuf("svg/DarkSquare.svg",squareSize);
+ SVGNeutralSquare = load_pixbuf("svg/NeutralSquare.svg",squareSize);
+
+ /* use two icons to indicate if it is white's or black's turn */
+ WhiteIcon = load_pixbuf("svg/icon_white.svg",0);
+ BlackIcon = load_pixbuf("svg/icon_black.svg",0);
+ WindowIcon = WhiteIcon;
+ gtk_window_set_icon(GTK_WINDOW(GUI_Window),WindowIcon);
+
+
+ /* realize window */
+ gtk_widget_show (GUI_Window);
+
+ /* recalc boardsize */
+ CreateGCs();
+ CreatePieces();
CreatePieceMenus();
if (appData.animate || appData.animateDragging)
return;
}
-
-void AutoSaveGame()
-{
- SaveGameProc(NULL, NULL, NULL, NULL);
-}
-
-
-void QuitProc(w, event, prms, nprms)
- Widget w;
- XEvent *event;
- String *prms;
- Cardinal *nprms;
-{
- ExitEvent(0);
-}
-
-void PauseProc(w, event, prms, nprms)
- Widget w;
- XEvent *event;
- String *prms;
- Cardinal *nprms;
-{
- PauseEvent();
-}
-
-
-void MachineBlackProc(w, event, prms, nprms)
- Widget w;
- XEvent *event;
- String *prms;
- Cardinal *nprms;
-{
- MachineBlackEvent();
-}
-
-void MachineWhiteProc(w, event, prms, nprms)
- Widget w;
- XEvent *event;
- String *prms;
- Cardinal *nprms;
-{
- MachineWhiteEvent();
-}
-
-void AnalyzeModeProc(w, event, prms, nprms)
++void SaveOnExitProc(w, event, prms, nprms)
+ Widget w;
+ XEvent *event;
+ String *prms;
+ Cardinal *nprms;
+ {
- char buf[MSG_SIZ];
-
- if (!first.analysisSupport) {
- snprintf(buf, sizeof(buf), _("%s does not support analysis"), first.tidy);
- DisplayError(buf, 0);
- return;
- }
- /* [DM] icsEngineAnalyze [HGM] This is horrible code; reverse the gameMode and isEngineAnalyze tests! */
- if (appData.icsActive) {
- if (gameMode != IcsObserving) {
- sprintf(buf,_("You are not observing a game"));
- DisplayError(buf, 0);
- /* secure check */
- if (appData.icsEngineAnalyze) {
- if (appData.debugMode)
- fprintf(debugFP, _("Found unexpected active ICS engine analyze \n"));
- ExitAnalyzeMode();
- ModeHighlight();
- }
- return;
- }
- /* if enable, use want disable icsEngineAnalyze */
- if (appData.icsEngineAnalyze) {
- ExitAnalyzeMode();
- ModeHighlight();
- return;
- }
- appData.icsEngineAnalyze = TRUE;
- if (appData.debugMode)
- fprintf(debugFP, _("ICS engine analyze starting... \n"));
- }
- if (!appData.showThinking)
- ShowThinkingProc(w,event,prms,nprms);
++ Arg args[16];
+
- AnalyzeModeEvent();
-}
++ saveSettingsOnExit = !saveSettingsOnExit;
+
-void AnalyzeFileProc(w, event, prms, nprms)
- Widget w;
- XEvent *event;
- String *prms;
- Cardinal *nprms;
-{
- if (!first.analysisSupport) {
- char buf[MSG_SIZ];
- snprintf(buf, sizeof(buf), _("%s does not support analysis"), first.tidy);
- DisplayError(buf, 0);
- return;
++ if (saveSettingsOnExit) {
++ XtSetArg(args[0], XtNleftBitmap, xMarkPixmap);
++ } else {
++ XtSetArg(args[0], XtNleftBitmap, None);
+ }
- Reset(FALSE, TRUE);
-
- if (!appData.showThinking)
- ShowThinkingProc(w,event,prms,nprms);
-
- AnalyzeFileEvent();
- FileNamePopUp(_("File to analyze"), "", LoadGamePopUp, "rb");
- AnalysisPeriodicEvent(1);
-}
-
-void TwoMachinesProc(w, event, prms, nprms)
- Widget w;
- XEvent *event;
- String *prms;
- Cardinal *nprms;
-{
- TwoMachinesEvent();
++ XtSetValues(XtNameToWidget(menuBarWidget, "menuOptions.Save Settings on Exit"),
++ args, 1);
+ }
+
-void IcsClientProc(w, event, prms, nprms)
++void SaveSettingsProc(w, event, prms, nprms)
+ Widget w;
+ XEvent *event;
+ String *prms;
+ Cardinal *nprms;
+ {
- IcsClientEvent();
++ SaveSettings(settingsFileName);
+ }
+
-void EditGameProc(w, event, prms, nprms)
- Widget w;
- XEvent *event;
- String *prms;
- Cardinal *nprms;
-{
- EditGameEvent();
-}
-void EditPositionProc(w, event, prms, nprms)
- Widget w;
- XEvent *event;
- String *prms;
- Cardinal *nprms;
+void AutoSaveGame()
{
- EditPositionEvent();
+ SaveGameProc(NULL, NULL);
+ return;
}
-void TrainingProc(w, event, prms, nprms)
- Widget w;
- XEvent *event;
- String *prms;
- Cardinal *nprms;
-{
- TrainingEvent();
-}
void EditCommentProc(w, event, prms, nprms)
Widget w;
# define N_(s) s
#endif
-#define _LL_ 100
-
-extern Widget formWidget, shellWidget, boardWidget, menuBarWidget, historyShell;
-extern Display *xDisplay;
-extern int squareSize;
-extern Pixmap xMarkPixmap;
-extern char *layoutName;
-
-struct History{
- String *Nr,*white,*black;
- int aNr; /* space actually alocated */
- Widget mvn,mvw,mvb,vbox,viewport,sh;
- char Up;
-};
+extern GtkWidget *GUI_History;
+extern GtkListStore *LIST_MoveHistory;
-struct History *hist=0;
String dots=" ... ";
Position gameHistoryX, gameHistoryY;
- Dimension gameHistoryW;
+ Dimension gameHistoryW, gameHistoryH;
void
-HistoryPopDown(w, client_data, call_data)
- Widget w;
- XtPointer client_data, call_data;
+HistoryPopDown(object, user_data)
+ GtkObject *object;
+ gpointer user_data;
{
- Arg args[16];
- int j;
- if(hist) {
-
- // [HGM] remember old position
- j = 0;
- XtSetArg(args[j], XtNx, &gameHistoryX); j++;
- XtSetArg(args[j], XtNy, &gameHistoryY); j++;
- XtSetArg(args[j], XtNwidth, &gameHistoryW); j++;
- XtSetArg(args[j], XtNheight, &gameHistoryH); j++;
- XtGetValues(hist->sh, args, j);
- wpMoveHistory.x = gameHistoryX - 4;
- wpMoveHistory.y = gameHistoryY - 23;
- wpMoveHistory.width = gameHistoryW;
- wpMoveHistory.height = gameHistoryH;
-
- XtPopdown(hist->sh);
- hist->Up=False;
- }
- j=0;
- XtSetArg(args[j], XtNleftBitmap, None); j++;
- XtSetValues(XtNameToWidget(menuBarWidget, "menuMode.Show Move History"),
- args, j);
+ gtk_widget_hide (GUI_History);
+ return;
}
void HistoryMoveProc(Widget w, XtPointer closure, XtPointer call_data)
to=2*R->list_index;
ToNrEvent(to);
}
+ */
}
-void HistoryAlloc(int len){
- int i;
- if(hist){
- free(hist->Nr[0]);free(hist->white[0]);free(hist->black[0]);
- free(hist->Nr);free(hist->white);free(hist->black);
- }
- else{
- hist=(struct History*)malloc(sizeof(struct History));
- }
- hist->aNr=len;
- hist->Nr=(String*)malloc(hist->aNr*sizeof(String*));
- hist->white=(String*)malloc(hist->aNr*sizeof(String*));
- hist->black=(String*)malloc(hist->aNr*sizeof(String*));
-
- hist->Nr[0]=(String)malloc(hist->aNr*6);
- hist->white[0]=(String)malloc(hist->aNr*MOVE_LEN);
- hist->black[0]=(String)malloc(hist->aNr*MOVE_LEN);
- sprintf(hist->Nr[0]," ");
- sprintf(hist->white[0],_("White "));
- sprintf(hist->black[0],_("Black "));
- for(i=1;i<hist->aNr;i++){
- hist->Nr[i]= hist->Nr[i-1]+6;
- hist->white[i]= hist->white[i-1]+MOVE_LEN;
- hist->black[i]= hist->black[i-1]+MOVE_LEN;
- sprintf(hist->Nr[i],"%i.",i);
- sprintf(hist->white[i],"-----");
- sprintf(hist->black[i],"-----");
- }
-}
-
-
-/* Find empty space inside vbox form widget and redistribute it amongst
- the list widgets inside it. */
-/* This version sort of works */
-void
-HistoryFill()
+void HistorySet(char movelist[][2*MOVE_LEN],int first,int last,int current)
{
- Dimension w, bw;
- long extra;
- Position x, x1, x2;
- int j, dd;
- Arg args[16];
-
- j = 0;
- XtSetArg(args[j], XtNx, &x); j++;
- XtSetArg(args[j], XtNwidth, &w); j++;
- XtSetArg(args[j], XtNborderWidth, &bw); j++;
- XtGetValues(hist->mvb, args, j);
- x1 = x + w + 2*bw;
-
- j = 0;
- XtSetArg(args[j], XtNwidth, &w); j++;
- XtSetArg(args[j], XtNdefaultDistance, &dd); j++;
- XtGetValues(hist->vbox, args, j);
- x2 = w - dd;
+ int i,b,m;
+ char movewhite[2*MOVE_LEN],moveblack[2*MOVE_LEN],move[2*MOVE_LEN];
+ GtkTreeIter iter;
- extra = x2 - x1;
- if (extra < 0) {
- extra = -((-extra)/2);
- } else {
- extra = extra/2;
- }
+ /* TODO need to add highlights for current move */
+ /* TODO need to add navigation by keyboard or mouse (double click on move) */
- j = 0;
- XtSetArg(args[j], XtNwidth, &w); j++;
- XtGetValues(hist->mvw, args, j);
- w += extra;
- j = 0;
- XtSetArg(args[j], XtNwidth, w); j++;
- XtSetValues(hist->mvw, args, j);
+ /* first clear everything, do we need this? */
+ gtk_list_store_clear(LIST_MoveHistory);
- j = 0;
- XtSetArg(args[j], XtNwidth, &w); j++;
- XtGetValues(hist->mvb, args, j);
- w += extra;
- j = 0;
- XtSetArg(args[j], XtNwidth, w); j++;
- XtSetValues(hist->mvb, args, j);
-}
+ /* copy move list into history window */
-void HistorySet(char movelist[][2*MOVE_LEN],int first,int last,int current){
- int i,b,m;
- if(hist){
- if(last >= hist->aNr) HistoryAlloc(last+_LL_);
- for(i=0;i<last;i++) {
- if((i%2)==0) {
- if(movelist[i][0]) {
- char* p = strchr(movelist[i], ' ');
- if (p) {
- strncpy(hist->white[i/2+1], movelist[i], p-movelist[i]);
- hist->white[i/2+1][p-movelist[i]] = NULLCHAR;
- } else {
- strcpy(hist->white[i/2+1],movelist[i]);
- }
- } else {
- strcpy(hist->white[i/2+1],dots);
- }
- } else {
- if(movelist[i][0]) {
+ /* go through all moves */
+ for(i=0;i<last;i++)
+ {
+ /* test if there is a move */
+ if(movelist[i][0])
+ {
+ /* only copy everything before a ' ' */
char* p = strchr(movelist[i], ' ');
- if (p) {
- strncpy(hist->black[i/2+1], movelist[i], p-movelist[i]);
- hist->black[i/2+1][p-movelist[i]] = NULLCHAR;
- } else {
- strcpy(hist->black[i/2+1],movelist[i]);
- }
- } else {
- strcpy(hist->black[i/2+1],"");
- }
- }
- }
- strcpy(hist->black[last/2+1],"");
- b=first/2;
- m=(last+3)/2-b;
- XawFormDoLayout(hist->vbox, False);
- XawListChange(hist->mvn,hist->Nr+b,m,0,True);
- XawListChange(hist->mvw,hist->white+b,m,0,True);
- XawListChange(hist->mvb,hist->black+b,m,0,True);
- HistoryFill();
- XawFormDoLayout(hist->vbox, True);
- if(current<0){
- XawListUnhighlight(hist->mvw);
- XawListUnhighlight(hist->mvb);
+ if (p)
+ {
+ strncpy(move, movelist[i], p-movelist[i]);
+ move[p-movelist[i]] = NULLCHAR;
+ }
+ else
+ {
+ strcpy(move,movelist[i]);
+ }
+ }
+ else
+ strcpy(move,dots);
+
+ if((i%2)==0)
+ {
+ /* white move */
+ strcpy(movewhite,move);
+ }
+ else
+ {
+ /* black move */
+ strcpy(moveblack,move);
+
+ /* save move */
+ gtk_list_store_append (LIST_MoveHistory, &iter);
+ gtk_list_store_set (LIST_MoveHistory, &iter,
+ 0, i,
+ 1, movewhite,
+ 2, moveblack,
+ -1);
+
+ strcpy(movewhite,"");
+ strcpy(moveblack,"");
+ };
}
- else if((current%2)==0){
- XawListHighlight(hist->mvw, current/2+1);
- XawListUnhighlight(hist->mvb);
- }
- else{
- XawListUnhighlight(hist->mvw);
- if(current) XawListHighlight(hist->mvb, current/2+1);
- else XawListUnhighlight(hist->mvb);
- }
- }
- EvalGraphSet( first, last, current, pvInfoList ); // piggy-backed
++
+ /* check if ther is a white move left */
+ if(movewhite[0])
+ {
+ i++;
+ strcpy(moveblack,"");
+ /* save move */
+ gtk_list_store_append (LIST_MoveHistory, &iter);
+ gtk_list_store_set (LIST_MoveHistory, &iter,
+ 0, i,
+ 1, movewhite,
+ 2, moveblack,
+ -1);
+ };
++
++ //TODO
++ // EvalGraphSet( first, last, current, pvInfoList ); // piggy-backed
+
+ return;
}
-Widget HistoryCreate()
+void HistoryCreate()
{
- Arg args[16];
- int i,j;
-
- Widget layout,form,b_close;
String trstr=
"<Key>Up: BackwardProc() \n \
<Key>Left: BackwardProc() \n \
<Key>Down: ForwardProc() \n \
<Key>Right: ForwardProc() \n";
- /*--- allocate memory for move-strings ---*/
- HistoryAlloc(_LL_);
+ return;
/*-------- create the widgets ---------------*/
- j = 0;
- XtSetArg(args[j], XtNresizable, True); j++;
- XtSetArg(args[j], XtNallowShellResize, True); j++;
-#if TOPLEVEL
- hist->sh = historyShell =
- XtCreatePopupShell(_("Move list"), topLevelShellWidgetClass,
- shellWidget, args, j);
-#else
- hist->sh = historyShell =
- XtCreatePopupShell(_("Move list"), transientShellWidgetClass,
- shellWidget, args, j);
-#endif
- j = 0;
- XtSetArg(args[j], XtNborderWidth, 0); j++;
- XtSetArg(args[j], XtNdefaultDistance, 0); j++;
- layout =
- XtCreateManagedWidget(layoutName, formWidgetClass, hist->sh,
- args, j);
-
- j = 0;
- XtSetArg(args[j], XtNborderWidth, 0); j++;
- XtSetArg(args[j], XtNresizable, True); j++;
-
- form =
- XtCreateManagedWidget("form", formWidgetClass, layout, args, j);
-
- j = 0;
- XtSetArg(args[j], XtNtop, XtChainTop); j++;
- XtSetArg(args[j], XtNbottom, XtChainBottom); j++;
- XtSetArg(args[j], XtNleft, XtChainLeft); j++;
- XtSetArg(args[j], XtNright, XtChainRight); j++;
-
- XtSetArg(args[j], XtNborderWidth, 1); j++;
- XtSetArg(args[j], XtNresizable, False); j++;
- XtSetArg(args[j], XtNallowVert, True); j++;
- XtSetArg(args[j], XtNallowHoriz, True); j++;
- XtSetArg(args[j], XtNforceBars, False); j++;
- XtSetArg(args[j], XtNheight, 280); j++;
- hist->viewport =
- XtCreateManagedWidget("viewport", viewportWidgetClass,
- form, args, j);
- j=0;
- XtSetArg(args[j], XtNborderWidth, 0); j++;
- XtSetArg(args[j], XtNorientation,XtorientHorizontal);j++;
- hist->vbox =
- XtCreateManagedWidget("vbox", formWidgetClass, hist->viewport, args, j);
-
- j=0;
- XtSetArg(args[j], XtNtop, XtChainTop); j++;
- XtSetArg(args[j], XtNbottom, XtChainTop); j++;
- XtSetArg(args[j], XtNleft, XtChainLeft); j++;
- XtSetArg(args[j], XtNright, XtChainLeft); j++;
-
- XtSetArg(args[j], XtNdefaultColumns, 1); j++;
- XtSetArg(args[j], XtNforceColumns, True); j++;
- XtSetArg(args[j], XtNverticalList, True); j++;
- XtSetArg(args[j], XtNborderWidth, 0); j++;
- XtSetArg(args[j], XtNresizable,True);j++;
- XtSetArg(args[j], XtNleft, XtChainLeft); j++;
- hist->mvn = XtCreateManagedWidget("movesn", listWidgetClass,
- hist->vbox, args, j);
- XtAddCallback(hist->mvn, XtNcallback, HistoryMoveProc, (XtPointer) hist);
-
- j=0;
- XtSetArg(args[j], XtNtop, XtChainTop); j++;
- XtSetArg(args[j], XtNbottom, XtChainTop); j++;
- XtSetArg(args[j], XtNleft, XtChainLeft); j++;
- XtSetArg(args[j], XtNright, XtRubber); j++;
-
- XtSetArg(args[j], XtNdefaultColumns, 1); j++;
- XtSetArg(args[j], XtNforceColumns, True); j++;
- XtSetArg(args[j], XtNverticalList, True); j++;
- XtSetArg(args[j], XtNborderWidth, 0); j++;
- XtSetArg(args[j], XtNresizable,True);j++;
- XtSetArg(args[j], XtNfromHoriz, hist->mvn); j++;
- hist->mvw = XtCreateManagedWidget("movesw", listWidgetClass,
- hist->vbox, args, j);
- XtAddCallback(hist->mvw, XtNcallback, HistoryMoveProc, (XtPointer) hist);
-
- j=0;
- XtSetArg(args[j], XtNtop, XtChainTop); j++;
- XtSetArg(args[j], XtNbottom, XtChainTop); j++;
- XtSetArg(args[j], XtNleft, XtRubber); j++;
- XtSetArg(args[j], XtNright, XtRubber); j++;
-
- XtSetArg(args[j], XtNdefaultColumns, 1); j++;
- XtSetArg(args[j], XtNforceColumns, True); j++;
- XtSetArg(args[j], XtNverticalList, True); j++;
- XtSetArg(args[j], XtNborderWidth, 0); j++;
- XtSetArg(args[j], XtNresizable,True);j++;
- XtSetArg(args[j], XtNfromHoriz, hist->mvw); j++;
- hist->mvb = XtCreateManagedWidget("movesb", listWidgetClass,
- hist->vbox, args, j);
- XtAddCallback(hist->mvb, XtNcallback, HistoryMoveProc, (XtPointer) hist);
-
- j=0;
- XtSetArg(args[j], XtNbottom, XtChainBottom); j++;
- XtSetArg(args[j], XtNtop, XtChainBottom); j++;
- XtSetArg(args[j], XtNleft, XtChainLeft); j++;
- XtSetArg(args[j], XtNright, XtChainLeft); j++;
- XtSetArg(args[j], XtNfromVert, hist->viewport); j++;
- b_close= XtCreateManagedWidget(_("Close"), commandWidgetClass,
- form, args, j);
- XtAddCallback(b_close, XtNcallback, HistoryPopDown, (XtPointer) 0);
-
- XtAugmentTranslations(hist->sh,XtParseTranslationTable (trstr));
-
- XtRealizeWidget(hist->sh);
- CatchDeleteWindow(hist->sh, "HistoryPopDown");
-
- for(i=1;i<hist->aNr;i++){
- strcpy(hist->white[i],dots);
- strcpy(hist->black[i],"");
- }
-
- if(wpMoveHistory.width > 0) {
- gameHistoryW = wpMoveHistory.width;
- gameHistoryH = wpMoveHistory.height;
- gameHistoryX = wpMoveHistory.x;
- gameHistoryY = wpMoveHistory.y;
- }
-
- // [HGM] restore old position
- if(gameHistoryW > 0) {
- j = 0;
- XtSetArg(args[j], XtNx, gameHistoryX); j++;
- XtSetArg(args[j], XtNy, gameHistoryY); j++;
- XtSetArg(args[j], XtNwidth, gameHistoryW); j++;
- XtSetArg(args[j], XtNheight, gameHistoryH); j++;
- XtSetValues(hist->sh, args, j);
- }
- XtRealizeWidget(hist->sh);
-
- return hist->sh;
++//<<<<<<< HEAD
+// j = 0;
+// XtSetArg(args[j], XtNresizable, True); j++;
+// XtSetArg(args[j], XtNallowShellResize, True); j++;
+//#if TOPLEVEL
- // hist->sh =
++// hist->sh = historyShell =
+// XtCreatePopupShell(_("Move list"), topLevelShellWidgetClass,
+// shellWidget, args, j);
+//#else
- // hist->sh =
++// hist->sh = historyShell =
+// XtCreatePopupShell(_("Move list"), transientShellWidgetClass,
+// shellWidget, args, j);
+//#endif
+// j = 0;
+// XtSetArg(args[j], XtNborderWidth, 0); j++;
+// XtSetArg(args[j], XtNdefaultDistance, 0); j++;
+// layout =
+// XtCreateManagedWidget(layoutName, formWidgetClass, hist->sh,
+// args, j);
+//
+// j = 0;
+// XtSetArg(args[j], XtNborderWidth, 0); j++;
+// XtSetArg(args[j], XtNresizable, True); j++;
+//
+// form =
+// XtCreateManagedWidget("form", formWidgetClass, layout, args, j);
- // j=0;
+//
+// j = 0;
- //
+// XtSetArg(args[j], XtNtop, XtChainTop); j++;
+// XtSetArg(args[j], XtNbottom, XtChainBottom); j++;
+// XtSetArg(args[j], XtNleft, XtChainLeft); j++;
+// XtSetArg(args[j], XtNright, XtChainRight); j++;
+//
+// XtSetArg(args[j], XtNborderWidth, 1); j++;
+// XtSetArg(args[j], XtNresizable, False); j++;
+// XtSetArg(args[j], XtNallowVert, True); j++;
+// XtSetArg(args[j], XtNallowHoriz, True); j++;
+// XtSetArg(args[j], XtNforceBars, False); j++;
+// XtSetArg(args[j], XtNheight, 280); j++;
+// hist->viewport =
+// XtCreateManagedWidget("viewport", viewportWidgetClass,
+// form, args, j);
+// j=0;
+// XtSetArg(args[j], XtNborderWidth, 0); j++;
+// XtSetArg(args[j], XtNorientation,XtorientHorizontal);j++;
+// hist->vbox =
+// XtCreateManagedWidget("vbox", formWidgetClass, hist->viewport, args, j);
+//
+// j=0;
+// XtSetArg(args[j], XtNtop, XtChainTop); j++;
+// XtSetArg(args[j], XtNbottom, XtChainTop); j++;
+// XtSetArg(args[j], XtNleft, XtChainLeft); j++;
+// XtSetArg(args[j], XtNright, XtChainLeft); j++;
+//
+// XtSetArg(args[j], XtNdefaultColumns, 1); j++;
+// XtSetArg(args[j], XtNforceColumns, True); j++;
+// XtSetArg(args[j], XtNverticalList, True); j++;
+// XtSetArg(args[j], XtNborderWidth, 0); j++;
+// XtSetArg(args[j], XtNresizable,True);j++;
+// XtSetArg(args[j], XtNleft, XtChainLeft); j++;
+// hist->mvn = XtCreateManagedWidget("movesn", listWidgetClass,
+// hist->vbox, args, j);
+// XtAddCallback(hist->mvn, XtNcallback, HistoryMoveProc, (XtPointer) hist);
+//
+// j=0;
+// XtSetArg(args[j], XtNtop, XtChainTop); j++;
+// XtSetArg(args[j], XtNbottom, XtChainTop); j++;
+// XtSetArg(args[j], XtNleft, XtChainLeft); j++;
+// XtSetArg(args[j], XtNright, XtRubber); j++;
+//
+// XtSetArg(args[j], XtNdefaultColumns, 1); j++;
+// XtSetArg(args[j], XtNforceColumns, True); j++;
+// XtSetArg(args[j], XtNverticalList, True); j++;
+// XtSetArg(args[j], XtNborderWidth, 0); j++;
+// XtSetArg(args[j], XtNresizable,True);j++;
+// XtSetArg(args[j], XtNfromHoriz, hist->mvn); j++;
+// hist->mvw = XtCreateManagedWidget("movesw", listWidgetClass,
+// hist->vbox, args, j);
+// XtAddCallback(hist->mvw, XtNcallback, HistoryMoveProc, (XtPointer) hist);
+//
+// j=0;
+// XtSetArg(args[j], XtNtop, XtChainTop); j++;
+// XtSetArg(args[j], XtNbottom, XtChainTop); j++;
+// XtSetArg(args[j], XtNleft, XtRubber); j++;
+// XtSetArg(args[j], XtNright, XtRubber); j++;
+//
+// XtSetArg(args[j], XtNdefaultColumns, 1); j++;
+// XtSetArg(args[j], XtNforceColumns, True); j++;
+// XtSetArg(args[j], XtNverticalList, True); j++;
+// XtSetArg(args[j], XtNborderWidth, 0); j++;
+// XtSetArg(args[j], XtNresizable,True);j++;
+// XtSetArg(args[j], XtNfromHoriz, hist->mvw); j++;
+// hist->mvb = XtCreateManagedWidget("movesb", listWidgetClass,
+// hist->vbox, args, j);
+// XtAddCallback(hist->mvb, XtNcallback, HistoryMoveProc, (XtPointer) hist);
+//
+// j=0;
+// XtSetArg(args[j], XtNbottom, XtChainBottom); j++;
+// XtSetArg(args[j], XtNtop, XtChainBottom); j++;
+// XtSetArg(args[j], XtNleft, XtChainLeft); j++;
+// XtSetArg(args[j], XtNright, XtChainLeft); j++;
+// XtSetArg(args[j], XtNfromVert, hist->viewport); j++;
+// b_close= XtCreateManagedWidget(_("Close"), commandWidgetClass,
+// form, args, j);
+// XtAddCallback(b_close, XtNcallback, HistoryPopDown, (XtPointer) 0);
+//
+// XtAugmentTranslations(hist->sh,XtParseTranslationTable (trstr));
+//
+// XtRealizeWidget(hist->sh);
+// CatchDeleteWindow(hist->sh, "HistoryPopDown");
+//
+// for(i=1;i<hist->aNr;i++){
+// strcpy(hist->white[i],dots);
+// strcpy(hist->black[i],"");
+// }
+//
++// if(wpMoveHistory.width > 0) {
++// gameHistoryW = wpMoveHistory.width;
++// gameHistoryH = wpMoveHistory.height;
++// gameHistoryX = wpMoveHistory.x;
++// gameHistoryY = wpMoveHistory.y;
++// }
++//
+// // [HGM] restore old position
++// if(gameHistoryW > 0) {
+// j = 0;
- // XtSetArg(args[j], XtNx, &gameHistoryX); j++;
- // XtSetArg(args[j], XtNy, &gameHistoryY); j++;
- // XtSetArg(args[j], XtNwidth, &gameHistoryW); j++;
- // XtGetValues(shellWidget, args, j);
- // j = 0;
- // XtSetArg(args[j], XtNx, gameHistoryX + gameHistoryW); j++;
++// XtSetArg(args[j], XtNx, gameHistoryX); j++;
+// XtSetArg(args[j], XtNy, gameHistoryY); j++;
++// XtSetArg(args[j], XtNwidth, gameHistoryW); j++;
++// XtSetArg(args[j], XtNheight, gameHistoryH); j++;
+// XtSetValues(hist->sh, args, j);
++// }
+// XtRealizeWidget(hist->sh);
+//
+// return hist->sh;
++//
}
void
void
-HistoryShowProc(w, event, prms, nprms)
- Widget w;
- XEvent *event;
- String *prms;
- Cardinal *nprms;
+HistoryShowProc(object, user_data)
+ GtkObject *object;
+ gpointer user_data;
{
- if (!hist) {
- HistoryCreate();
- HistoryPopUp();
- } else if (hist->Up) {
- HistoryPopDown(0,0,0);
- } else {
- HistoryPopUp();
- }
- ToNrEvent(currentMove);
+ HistoryCreate();
+ HistoryPopUp();
+ //TODO: ToNrEvent(currentMove);
+
+ return;
}
+ Boolean
+ MoveHistoryIsUp()
+ {
- return hist && hist->Up;
++ // TODO
++ return 0;
++ // return hist && hist->Up;
+ }