mirror of
git://git.tartarus.org/simon/puzzles.git
synced 2025-04-21 08:01:30 -07:00
Beginnings of a GTK framework. (And I do mean _beginnings_; it opens
a window and that's about it.) [originally from svn r4139]
This commit is contained in:
48
gtk.c
48
gtk.c
@ -6,8 +6,14 @@
|
|||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <stdarg.h>
|
#include <stdarg.h>
|
||||||
|
|
||||||
|
#include <gtk/gtk.h>
|
||||||
|
|
||||||
#include "puzzles.h"
|
#include "puzzles.h"
|
||||||
|
|
||||||
|
/* ----------------------------------------------------------------------
|
||||||
|
* Error reporting functions used elsewhere.
|
||||||
|
*/
|
||||||
|
|
||||||
void fatal(char *fmt, ...)
|
void fatal(char *fmt, ...)
|
||||||
{
|
{
|
||||||
va_list ap;
|
va_list ap;
|
||||||
@ -21,3 +27,45 @@ void fatal(char *fmt, ...)
|
|||||||
fprintf(stderr, "\n");
|
fprintf(stderr, "\n");
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* ----------------------------------------------------------------------
|
||||||
|
* GTK front end to puzzles.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* This structure holds all the data relevant to a single window.
|
||||||
|
* In principle this would allow us to open multiple independent
|
||||||
|
* puzzle windows, although I can't currently see any real point in
|
||||||
|
* doing so. I'm just coding cleanly because there's no
|
||||||
|
* particularly good reason not to.
|
||||||
|
*/
|
||||||
|
struct window_data {
|
||||||
|
GtkWidget *window;
|
||||||
|
};
|
||||||
|
|
||||||
|
static void destroy(GtkWidget *widget, gpointer data)
|
||||||
|
{
|
||||||
|
gtk_main_quit();
|
||||||
|
}
|
||||||
|
|
||||||
|
static struct window_data *new_window(void)
|
||||||
|
{
|
||||||
|
struct window_data *wdata;
|
||||||
|
|
||||||
|
wdata = snew(struct window_data);
|
||||||
|
|
||||||
|
wdata->window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
|
||||||
|
gtk_signal_connect(GTK_OBJECT(wdata->window), "destroy",
|
||||||
|
GTK_SIGNAL_FUNC(destroy), wdata);
|
||||||
|
gtk_widget_show(wdata->window);
|
||||||
|
return wdata;
|
||||||
|
}
|
||||||
|
|
||||||
|
int main(int argc, char **argv)
|
||||||
|
{
|
||||||
|
gtk_init(&argc, &argv);
|
||||||
|
(void) new_window();
|
||||||
|
gtk_main();
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
6
net.c
6
net.c
@ -586,7 +586,11 @@ game_state *make_move(game_state *state, int x, int y, int button)
|
|||||||
* Routines for drawing the game position on the screen.
|
* Routines for drawing the game position on the screen.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef TESTMODE /* FIXME: should be #ifdef */
|
/* ----------------------------------------------------------------------
|
||||||
|
* Test code.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifdef TESTMODE
|
||||||
|
|
||||||
int main(void)
|
int main(void)
|
||||||
{
|
{
|
||||||
|
Reference in New Issue
Block a user