From 7e0222e64da6706bf0dc2468f459b98e4346206b Mon Sep 17 00:00:00 2001 From: H.G. Muller Date: Sun, 14 Oct 2012 12:21:09 +0200 Subject: [PATCH] Move MarkMenuItem to xoptions.c This to make xoptions.c completely independent from the inclusion of frontend.h. The prototype is moved to menus.h. Loose end: DrawPosition in board.c does not see the prototype. Very suspect that it wants to see it. Why would it have to correct the flipView setting??? Better se to it that it is correct to start with! --- backend.h | 2 -- book.c | 1 + common.h | 13 +++++++++++++ frontend.h | 12 +----------- menus.c | 1 + menus.h | 1 + xboard.c | 12 ------------ xoptions.c | 12 ++++++++++++ 8 files changed, 29 insertions(+), 25 deletions(-) diff --git a/backend.h b/backend.h index 40c4d08..9449580 100644 --- a/backend.h +++ b/backend.h @@ -95,7 +95,6 @@ #endif #include "lists.h" -#include "frontend.h" extern char *wbOptions; extern int gotPremove; @@ -108,7 +107,6 @@ extern int currentMove, backwardMostMove, forwardMostMove; extern int blackPlaysFirst; extern FILE *debugFP; extern char* programVersion; -extern ProcRef firstProgramPR, secondProgramPR; extern Board boards[]; extern char marker[BOARD_RANKS][BOARD_FILES]; extern char lastMsg[MSG_SIZ]; diff --git a/book.c b/book.c index ebf242f..c40cd92 100644 --- a/book.c +++ b/book.c @@ -35,6 +35,7 @@ #include #include "common.h" +#include "frontend.h" #include "backend.h" #include "moves.h" #include "gettext.h" diff --git a/common.h b/common.h index f150655..c881ca4 100644 --- a/common.h +++ b/common.h @@ -218,6 +218,14 @@ int pclose(FILE *); #define ZIPPY_MAX_GAMES 0 #define ZIPPY_REPLAY_TIMEOUT 120 +typedef VOIDSTAR ProcRef; +#define NoProc ((ProcRef) 0) +typedef VOIDSTAR InputSourceRef; + +typedef void (*DelayedEventCallback) P((void)); + +typedef enum { Press, Release } ClickType; + typedef enum { BeginningOfGame, MachinePlaysWhite, MachinePlaysBlack, AnalyzeMode, AnalyzeFile, TwoMachinesPlay, @@ -777,6 +785,11 @@ extern WindowPlacement wpTags; extern int chatCount; extern char chatPartner[MAX_CHAT][MSG_SIZ]; +// Some prototypes of routines so general they should be available everywhere +/* If status == 0, we are exiting with a benign message, not an error */ +void DisplayFatalError P((String message, int error, int status)); +void DisplayError P((String message, int error)); + // [HGM] generally useful macros; there are way too many memory leaks... #define FREE(x) if(x) free(x) #define ASSIGN(x, y) if(x) free(x); x = strdup(y) diff --git a/frontend.h b/frontend.h index 56fed20..01d0da0 100644 --- a/frontend.h +++ b/frontend.h @@ -56,10 +56,6 @@ #include -typedef VOIDSTAR ProcRef; -#define NoProc ((ProcRef) 0) -typedef VOIDSTAR InputSourceRef; - char *T_ P((char *s)); void ModeHighlight P((void)); void SetICSMode P((void)); @@ -72,14 +68,11 @@ void SetUserThinkingEnables P((void)); void SetMachineThinkingEnables P((void)); void DisplayTitle P((String title)); void DisplayMessage P((String message, String extMessage)); -void DisplayError P((String message, int error)); void DisplayMoveError P((String message)); -/* If status == 0, we are exiting with a benign message, not an error */ -void DisplayFatalError P((String message, int error, int status)); +void DisplayNote P((String message)); void DisplayInformation P((String message)); -void DisplayNote P((String message)); void AskQuestion P((String title, String question, String replyPrefix, ProcRef pr)); void DisplayIcsInteractionTitle P((String title)); @@ -130,13 +123,11 @@ int StopLoadGameTimer P((void)); void StartLoadGameTimer P((long millisec)); void AutoSaveGame P((void)); -typedef void (*DelayedEventCallback) P((void)); void ScheduleDelayedEvent P((DelayedEventCallback cb, long millisec)); DelayedEventCallback GetDelayedEvent P((void)); void CancelDelayedEvent P((void)); // [HGM] mouse: next six used by mouse handler, which was moved to backend extern int fromX, fromY, toX, toY; -typedef enum { Press, Release } ClickType; void PromotionPopUp P((void)); void DragPieceBegin P((int x, int y, Boolean instantly)); void DragPieceEnd P((int x, int y)); @@ -218,7 +209,6 @@ extern int commentUp; extern char *firstChessProgramNames; void GreyRevert P((Boolean grey)); -void MarkMenuItem P((char *menuRef, int state)); void EnableNamedMenuItem P((char *menuRef, int state)); typedef struct FrontEndProgramStats_TAG { diff --git a/menus.c b/menus.c index 007b782..23e09ea 100644 --- a/menus.c +++ b/menus.c @@ -85,6 +85,7 @@ extern char *getenv(); // [HGM] bitmaps: put before incuding the bitmaps / pixmaps, to know how many piece types there are. #include "common.h" +#include "frontend.h" #include "backend.h" #include "xhistory.h" #include "xedittags.h" diff --git a/menus.h b/menus.h index f0b7319..262a374 100644 --- a/menus.h +++ b/menus.h @@ -74,6 +74,7 @@ typedef struct { extern Menu menuBar[]; +void MarkMenuItem P((char *menuRef, int state)); void ErrorPopUp P((char *title, char *text, int modal)); void AppendEnginesToMenu P((char *list)); void LoadGameProc P((void)); diff --git a/xboard.c b/xboard.c index 69079be..6bc77cc 100644 --- a/xboard.c +++ b/xboard.c @@ -1582,18 +1582,6 @@ ReadBitmap (Pixmap *pm, String name, unsigned char bits[], u_int wreq, u_int hre } void -MarkMenuItem (char *menuRef, int state) -{ - MenuItem *item = MenuNameToItem(menuRef); - - if(item) { - Arg args[2]; - XtSetArg(args[0], XtNleftBitmap, state ? xMarkPixmap : None); - XtSetValues(item->handle, args, 1); - } -} - -void EnableNamedMenuItem (char *menuRef, int state) { MenuItem *item = MenuNameToItem(menuRef); diff --git a/xoptions.c b/xoptions.c index 7ed256a..cd18a57 100644 --- a/xoptions.c +++ b/xoptions.c @@ -143,6 +143,18 @@ static Arg formArgs[] = { }; void +MarkMenuItem (char *menuRef, int state) +{ + MenuItem *item = MenuNameToItem(menuRef); + + if(item) { + Arg args[2]; + XtSetArg(args[0], XtNleftBitmap, state ? xMarkPixmap : None); + XtSetValues(item->handle, args, 1); + } +} + +void GetWidgetText (Option *opt, char **buf) { Arg arg; -- 1.7.0.4