Delete emptied front-end files, and move rest to gtk directory Remove #ifdeffed-out Xt code that has GTK implementation. The xgamelist and xhistory have been completely cleared off content, and were removed.
Add copy-paste The code from gtk-xt could be used with almost no modification.
Some experimenting with sizing Does not work as intended yet.
Add task-bar icon Funny enough it was necessary to swap the two svg icons to make this work!
Add type-in event to board for popping up box
Add Shift detection The state of Shift and Ctrl was only probed on button clicks, so it is now read out of the button-event struct in the relevant button handlers. For backwad compatibility, they store it in a global, so the routine ShiftKeys can take them from there.
Add file browser The gtk-xt code for browsing in response to menu items rather than dialog browse buttons) was grafted. It seems desirable to merge the two browsing functions, though. Pass extra params used by Xaw to FileNamePopUpGTK. The code was altered to use DelayedLoad.
Connect CommentClick handler This can make use of generic memo callback, so it could be entirely backend. Therefore it was moved to dialogs.h. As it shared a global with some other back-end popup routines to remember the current move, these could now be moved out of xboard.c too. (Well, not so for the X11 front-end, so it has now been put in a header. :-( )
Fix animation Because FrameDelay does block the event loop, even though it releaes the CPU, expose events start to lag behind the actual drawing. By combining expose events for overlapping squares, rather than decompose them into 3 rectangles, this problem seems to go away. But only if there is an extra exposure on the squares to be drawn also non-overlapping frames will be properly drawn (?!).
Make generic memo-event handler, and connect history callback Large text widgets can now define a user handler in their Option.choice field. If they do, agneric callback is added tothem, which catches mouse events. Button release and pointer motion pass their coordinate and type to the specified user routine. Button presses in addition retrieve the text from the widget, set the cursor in it to the clicked point, and convert it to a character position, also passed to the user. The user is responsible for ignoring events he is not interested in.
Add key-handler for ICS Input Box In contrast to the X11 code, all intercepted keys are now treated by the same callback. The ICS Input Box callback triggers on Up, Down and Return key, and refers to these symbolically.
Highlight Pause button
Better cleansing of xboard.c from X11 types The #includes for X11 files were still in there.
Append recent engines to engine menu This is now entirely moved to the back-end, by doing it in the table from which the menus are later generated. The special callback for engine items is abandoned, and the euProc for such items is left NULL to flag that RecentEngineEvent should be invoked with the applicable engine number. To calculate the latter a global variable firstEngineItem is dynamically set to the length of the regular engine menu.
Transfer more gtk-xt code, and add some new Add input-source handling Graft color picker (<Enter> callbeack in the text field is still missing!) Handle contents of label widgets (store handles in Option for access) Add printing of clocks Add printing of window title Pay attention to BORDER attribute of Label Options (pack in frame) Delete ReadBitmap code (also remove #including of bitmap files for icons) Fix layout of textviews (adapt to newer Option format, incl. wrap, scroll) Support vertical stacking in Break Option (no table widening when !SAME_ROW) Make default horizontal scroll policy automatic (for engine-output window) Fix disabling of unused spinners in TC dialog
Implement menu checkmarking and enabling odes in the (later over-written) handle field specify which items are to be checkmarked, and by what style button.
Transfer most available gtk-xt code to xoptions.c GenericPopUp and PopDown are grafted from gtk-xt into gtk2. The version compiles, but segfaults before doing anything, with error messages about unexpected cases in GenericPopup for Graph and PopUp Options of the main board. The spin options need special treatment in GetWidgtText.
Remove all X11 code by #ifdeffing it out With #ifdef TODO_GTK we disable all X11 code, in order to get a compiling X11-free version. The disabled sections can then be replaced by code for another widget set, the X11 version still showing what it was supposed to do.
Move timer functions to new file xtimer.c The timers for the clocks, periodic analysis events and ScheduleDelayedEvent go into a separate file.
Make xevalgraph.c backend The only front-end stuff left in xevalgraph.c was an unnecessary reading of the window size (which could be obtained from the WindowPlaceent struct), and drawing (all cairo now). The drawing was moved to draw.c, and the remaining part renamed nevalgraph.c. An attempt to list them in a less chaotic way.