#include <math.h>
#include <cairo/cairo.h>
#include <cairo/cairo-xlib.h>
+#include <gtk/gtk.h>
#if !OMIT_SOCKETS
# if HAVE_SYS_SOCKET_H
#else
void *shellWidget, *formWidget, *boardWidget, *titleWidget, *dropMenu, *menuBarWidget;
void *appContext;
+GtkWidget *mainwindow;
#endif
Option *optList; // contains all widgets of main window
char *layoutName;
void
BoardToTop ()
{
-#ifdef TODO_GTK
- Arg args[16];
- XtSetArg(args[0], XtNiconic, False);
- XtSetValues(shellWidget, args, 1);
-
- XtPopup(shellWidget, XtGrabNone); /* Raise if lowered */
-#endif
+ gtk_window_present(GTK_WINDOW(mainwindow));
}
//---------------------------------------------------------------------------------------------------------
#ifdef TODO_GTK
XSetWindowAttributes window_attributes;
Arg args[16];
- Dimension boardWidth, boardHeight, w, h;
#else
- int boardWidth, boardHeight, w, h;
#endif
+ Dimension boardWidth, boardHeight, w, h;
char *p;
int forceMono = False;
+ GError *gtkerror=NULL;
srandom(time(0)); // [HGM] book: make random truly random
exit(0);
}
+ /* set up GTK */
+ gtk_init (&argc, &argv);
+
programName = strrchr(argv[0], '/');
if (programName == NULL)
programName = argv[0];
programName++;
#ifdef ENABLE_NLS
- XtSetLanguageProc(NULL, NULL, NULL);
- if (appData.debugMode) {
- fprintf(debugFP, "locale = %s\n", setlocale(LC_ALL, NULL));
- }
+// if (appData.debugMode) {
+// fprintf(debugFP, "locale = %s\n", setlocale(LC_ALL, NULL));
+// }
bindtextdomain(PACKAGE, LOCALEDIR);
textdomain(PACKAGE);
setbuf(debugFP, NULL);
}
+#if ENABLE_NLS
+ if (appData.debugMode) {
+ fprintf(debugFP, "locale = %s\n", setlocale(LC_ALL, NULL));
+ }
+#endif
+
/* [HGM,HR] make sure board size is acceptable */
if(appData.NrFiles > BOARD_FILES ||
appData.NrRanks > BOARD_RANKS )
InitPosition(FALSE);
#ifdef TODO_GTK
+ /* GTK */
+ builder = gtk_builder_new();
+ filename = get_glade_filename ("mainboard.glade");
+ if(! gtk_builder_add_from_file (builder, filename, >kerror) )
+ {
+ if(gtkerror)
+ printf ("Error: %d %s\n",gtkerror->code,gtkerror->message);
+ }
+ mainwindow = GTK_WIDGET(gtk_builder_get_object (builder, "mainwindow"));
+
shellWidget =
XtAppInitialize(&appContext, "XBoard", shellOptions,
XtNumber(shellOptions),
DisplayHeight(xDisplay, xScreen) < szd->minScreenSize) {
szd++;
}
+#else
+ GdkScreen *screen = gtk_window_get_screen(GTK_WINDOW(mainwindow));
+ guint screenwidth = gdk_screen_get_width(screen);
+ guint screenheight = gdk_screen_get_height(screen);
+ while (screenwidth < szd->minScreenSize ||
+ screenheight < szd->minScreenSize) {
+ szd++;
+ }
#endif
if (szd->name == NULL) szd--;
appData.boardSize = strdup(szd->name); // [HGM] settings: remember name for saving settings
// XtSetKeyboardFocus(shellWidget, formWidget);
#ifdef TODO_GTK
XSetInputFocus(xDisplay, XtWindow(formWidget), RevertToPointerRoot, CurrentTime);
-
- XtAppMainLoop(appContext);
#endif
+
+ /* check for GTK events and process them */
+ gtk_main();
+
if (appData.debugMode) fclose(debugFP); // [DM] debug
return 0;
}