Allow setting of holdings with edit command
[xboard.git] / backend.h
index f0d5816..bd8e2ac 100644 (file)
--- a/backend.h
+++ b/backend.h
@@ -319,13 +319,17 @@ int Explode P((Board board, int fromX, int fromY, int toX, int toY));
 typedef enum { CheckBox, ComboBox, TextBox, Button, Spin, ResetButton, SaveButton,
                 FileName, PathName, Slider, Message, Fractional, Label, Break, EndMark } Control;
 
-/* Flags for Option.min: */             
-#define COMBO_CALLBACK (1 << 0)
-#define NO_GETTEXT     (1 << 1)
-                
+/* Flags Option.min used for ComboBox: */
+#define COMBO_CALLBACK (1 << 0)
+#define NO_GETTEXT     (1 << 1)
+
+/* Flags for Option.min used for Button, SaveButton, EndMark: */
+#define SAME_ROW       (1 << 0)
+#define NO_OK          (1 << 1)
+
 typedef struct _OPT {   // [HGM] options: descriptor of UCI-style option
     int value;          // current setting, starts as default
-    int min;           // Also used for flags with ComboBox
+    int min;           // Also used for flags
     int max;
     void *handle;       // for use by front end
     void *target;       // for use by front end
@@ -354,6 +358,7 @@ typedef struct _CPS {
     int offeredDraw; /* countdown */
     int reuse;
     int useSetboard; /* 0=use "edit"; 1=use "setboard" */
+    int extendedEdit;/* 1=also set holdings with "edit" */
     int useSAN;      /* 0=use coordinate notation; 1=use SAN */
     int usePing;     /* 0=not OK to use ping; 1=OK */
     int lastPing;
@@ -437,4 +442,13 @@ void MoveHistorySet P(( char movelist[][2*MOVE_LEN], int first, int last, int cu
 void EvalGraphSet P(( int first, int last, int current, ChessProgramStats_Move * pvInfo ));
 void MakeEngineOutputTitle P((void));
 
+/* A point in time */
+typedef struct {
+    long sec;  /* Assuming this is >= 32 bits */
+    int ms;    /* Assuming this is >= 16 bits */
+} TimeMark;
+
+void GetTimeMark P((TimeMark *));
+long SubtractTimeMarks P((TimeMark *, TimeMark *));
+
 #endif /* _BACKEND */