#include <rr.h>
+#include "grr_icon.h"
+
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
GtkWidget widget;
rr_board_t *board;
- int owns_board;
+
int board_width, board_height;
int board_pad_x, board_pad_y;
+ int **damaged;
+
int cell_width, cell_height;
- int drag_x, drag_y;
- rr_robot_t drag_robot;
+ rr_robot_t active_robot;
rr_client_t *client;
/* ID of update timer, or 0 if none */
guint32 timer;
+
+ grr_icon_t *cell1_icon;
+ grr_icon_t *cell2_icon;
+ grr_icon_t *wall_icon;
+
+ grr_icon_t *robot_icon[RR_NUM_ROBOTS];
+ grr_icon_t *target_icon[RR_NUM_TARGETS];
};
struct grr_board_view_class
GtkWidgetClass parent_class;
};
-GtkWidget*
+grr_board_view_t *
grr_board_view_new (rr_board_t *board);
+void
+grr_board_view_set_client (grr_board_view_t *view, rr_client_t *client);
+
GtkType
grr_board_view_get_type (void);
void
-grr_board_view_set_board (grr_board_view_t *view,
- rr_board_t *board);
+grr_board_view_set_active_robot (grr_board_view_t *view, rr_robot_t robot);
+
+void
+grr_board_view_move_active (grr_board_view_t *view, rr_direction_t dir);
+
+void
+grr_board_view_undo (grr_board_view_t *view);
+
+void
+grr_board_view_mark_damage (grr_board_view_t *view, int i, int j);
+
+void
+grr_board_view_transform_pixel_to_cell (grr_board_view_t *view,
+ int pixel_x, int pixel_y,
+ int *cell_x, int *cell_y);
void
-grr_board_view_set_client (grr_board_view_t *view,
- rr_client_t *client);
+grr_board_view_transform_cell_to_pixel (grr_board_view_t *view,
+ int cell_x, int cell_y,
+ int *pixel_x, int *pixel_y);
#ifdef __cplusplus
}