X-Git-Url: http://winboard.nl/cgi-bin?a=blobdiff_plain;f=common.h;h=b6b727fed52fe4fb7d692a6304f5117d9dabf21c;hb=97e95c084e4aacf02203d723937579e898d8e9ee;hp=a48aee51d351fa47bc95d9191858c04a705e8f26;hpb=e1edcbabb63e65d5d47c07a0836dd51d7e01de0e;p=xboard.git diff --git a/common.h b/common.h index a48aee5..b6b727f 100644 --- a/common.h +++ b/common.h @@ -125,13 +125,17 @@ int pclose(FILE *); outside world in ASCII. In a similar way, the different rank numbering systems (starting at rank 0 or 1) are implemented by redefining '1'. */ -#define BOARD_SIZE 16 /* [HGM] for in declarations */ -#define BOARD_HEIGHT (gameInfo.boardHeight) // [HGM] made user adjustable +#define BOARD_RANKS 11 /* [HGM] for in declarations */ +#define BOARD_FILES 16 /* [HGM] for in declarations */ +#define BOARD_HEIGHT (gameInfo.boardHeight) /* [HGM] made user adjustable */ #define BOARD_WIDTH (gameInfo.boardWidth + 2*gameInfo.holdingsWidth) -#define BOARD_LEFT (gameInfo.holdingsWidth) // [HGM] play-board edges +#define BOARD_LEFT (gameInfo.holdingsWidth) /* [HGM] play-board edges */ #define BOARD_RGHT (gameInfo.boardWidth + gameInfo.holdingsWidth) -#define ONE ('1'-(BOARD_HEIGHT>9)) // [HGM] foremost board rank -#define AAA ('a'-BOARD_LEFT) // [HGM] leftmost board file +#define CASTLING (BOARD_RANKS-1) /* [HGM] hide in upper rank */ +#define EP_STATUS CASTLING][(BOARD_FILES-2) /* [HGM] in upper rank */ +#define HOLDINGS_SET CASTLING][(BOARD_FILES-1) /* [HGM] in upper-right corner*/ +#define ONE ('1'-(BOARD_HEIGHT>9)) /* [HGM] foremost board rank */ +#define AAA ('a'-BOARD_LEFT) /* [HGM] leftmost board file */ #define DROP_RANK -3 #define MAX_MOVES 1000 #define MSG_SIZ 512 @@ -164,10 +168,32 @@ int pclose(FILE *); #define JAIL_SQUARE_COLOR "#808080" #define HIGHLIGHT_SQUARE_COLOR "#FFFF00" #define PREMOVE_HIGHLIGHT_COLOR "#FF0000" +#define LOWTIMEWARNING_COLOR "#FF0000" #define BELLCHAR '\007' #define NULLCHAR '\000' #define FEATURE_TIMEOUT 10000 /*ms*/ +#define CLOCK_FONT 0 +#define MESSAGE_FONT 1 +#define COORD_FONT 2 +#define CONSOLE_FONT 3 +#define COMMENT_FONT 4 +#define EDITTAGS_FONT 5 +#define MOVEHISTORY_FONT 6 +#define NUM_FONTS 7 + +/* Default to no flashing (the "usual" XBoard behavior) */ +#define FLASH_COUNT 0 /* Number of times to flash */ +#define FLASH_RATE 5 /* Flashes per second */ + +/* Default delay per character (in msec) while sending login script */ +#define MS_LOGIN_DELAY 0 + +/* [AS] Support for background textures */ +#define BACK_TEXTURE_MODE_DISABLED 0 +#define BACK_TEXTURE_MODE_PLAIN 1 +#define BACK_TEXTURE_MODE_FULL_RANDOM 2 + /* Zippy defaults */ #define ZIPPY_TALK FALSE #define ZIPPY_PLAY FALSE @@ -209,6 +235,7 @@ typedef enum { BlackCannon, BlackNightrider, BlackCardinal, BlackDragon, BlackGrasshopper, BlackSilver, BlackFalcon, BlackLance, BlackCobra, BlackUnicorn, BlackKing, EmptySquare, + NoRights, // [HGM] gamestate: for castling rights hidden in board[CASTLING] ClearBoard, WhitePlay, BlackPlay, PromotePiece, DemotePiece /*for use on EditPosition menus*/ } ChessSquare; @@ -220,7 +247,7 @@ typedef enum { #define SHOGI (int)EmptySquare + (int) -typedef ChessSquare Board[BOARD_SIZE][BOARD_SIZE]; +typedef ChessSquare Board[BOARD_RANKS][BOARD_FILES]; typedef enum { WhiteKingSideCastle = 1, WhiteQueenSideCastle, @@ -294,6 +321,7 @@ typedef enum { VariantSuper, VariantGreat, VariantTwilight, + VariantMakruk, VariantUnknown /* Catchall for other unknown variants */ } VariantClass; @@ -336,6 +364,7 @@ typedef enum { "super",\ "great",\ "twilight",\ + "makruk",\ "unknown" \ } @@ -438,7 +467,7 @@ typedef struct { ICS logon script (xboard only) */ Boolean colorize; /* If True, use the following colors to color text */ /* Strings for colors, as "fg, bg, bold" (strings used in xboard only) */ - char *colorShout; + char *colorShout; // [HGM] IMPORTANT: order must conform to ColorClass definition char *colorSShout; char *colorChannel1; char *colorChannel; @@ -449,7 +478,7 @@ typedef struct { char *colorSeek; char *colorNormal; char *soundProgram; /* sound-playing program */ - char *soundShout; + char *soundShout; // [HGM] IMPORTANT: order must be as in ColorClass char *soundSShout; char *soundChannel1; char *soundChannel; @@ -458,12 +487,13 @@ typedef struct { char *soundChallenge; char *soundRequest; char *soundSeek; - char *soundMove; + char *soundMove; // [HGM] IMPORTANT: order must be as in SoundClass + char *soundBell; + char *soundIcsAlarm; char *soundIcsWin; char *soundIcsLoss; char *soundIcsDraw; char *soundIcsUnfinished; - char *soundIcsAlarm; Boolean reuseFirst; Boolean reuseSecond; Boolean animateDragging; /* If True, animate mouse dragging of pieces */ @@ -529,6 +559,7 @@ typedef struct { Boolean secondIsUCI; Boolean firstHasOwnBookUCI; Boolean secondHasOwnBookUCI; + char * adapterCommand; char * polyglotDir; Boolean usePolyglotBook; char * polyglotBook; @@ -605,6 +636,10 @@ typedef struct { Boolean noJoin; /* [HGM] join */ char *wrapContSeq; /* continuation sequence when xboard wraps text */ Boolean useInternalWrap; /* use internal wrapping -- noJoin usurps this if set */ + Boolean pasteSelection; /* paste X selection instead of clipboard */ + int nrVariations; /* [HGM] multivar */ + Boolean dropMenu; /* [HGM] pv */ + Boolean markers; /* [HGM] markers */ } AppData, *AppDataPtr; /* [AS] PGN tags (for showing in the game list) */ @@ -654,6 +689,29 @@ typedef struct { int holdingsWidth; /* number of files left and right of board, 0 or 2 */ } GameInfo; +/* [AS] Search stats from chessprogram, for the played move */ +// [HGM] moved here from backend.h because it occurs in declarations of front-end functions +typedef struct { + int score; /* Centipawns */ + int depth; /* Plies */ + int time; /* Milliseconds */ +} ChessProgramStats_Move; + +/* [AS] Layout management */ +typedef struct { + Boolean visible; + int x; + int y; + int width; + int height; +} WindowPlacement; + +extern WindowPlacement wpEngineOutput; +extern WindowPlacement wpEvalGraph; +extern WindowPlacement wpMoveHistory; +extern WindowPlacement wpGameList; +extern WindowPlacement wpTags; + // [HGM] chat #define MAX_CHAT 3 extern int chatCount;