make gtk3 port compile
This commit is contained in:
parent
aab540c9ea
commit
355e791147
18
src/gfx.c
18
src/gfx.c
@ -355,14 +355,21 @@ void draw_next_balls(void) {
|
||||
}
|
||||
|
||||
/* Refill the screen from the backing pixmap */
|
||||
gint expose_event (GtkWidget *widget, GdkEventExpose *event)
|
||||
gboolean boardw_draw_event (GtkWidget *widget, gpointer compat, gpointer data)
|
||||
{
|
||||
#if GTK_MAJOR_VERSION >= 3
|
||||
cairo_t * cr = (cairo_t *) compat;
|
||||
GdkRectangle rect;
|
||||
GdkRectangle * area = ▭
|
||||
gdk_cairo_get_clip_rectangle (cr, area);
|
||||
#else // gtk2, espose_ event
|
||||
GdkEventExpose * event = (GdkEventExpose *) compat;
|
||||
cairo_t * cr = gdk_cairo_create (gtk_widget_get_window (widget));
|
||||
GdkRectangle * area = &(event->area);
|
||||
#endif
|
||||
|
||||
GtkAllocation a;
|
||||
gtk_widget_get_allocation (widget, &a);
|
||||
if (area->width == a.width) {
|
||||
int width = gtk_widget_get_allocated_width (widget);
|
||||
if (area->width == width) {
|
||||
cairo_set_source_surface (cr, pixsurf, 0, 0);
|
||||
cairo_paint (cr);
|
||||
} else {
|
||||
@ -373,7 +380,10 @@ gint expose_event (GtkWidget *widget, GdkEventExpose *event)
|
||||
cairo_fill (cr);
|
||||
//cairo_restore (cr);
|
||||
}
|
||||
|
||||
#if GTK_MAJOR_VERSION == 2
|
||||
cairo_destroy (cr);
|
||||
#endif
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
@ -18,7 +18,7 @@ void redraw_ball(gint x, gint y);
|
||||
void redraw_pointer(void);
|
||||
void draw_board(void);
|
||||
/* Refill the screen from the backing pixmap */
|
||||
gint expose_event(GtkWidget *widget, GdkEventExpose *event);
|
||||
gboolean boardw_draw_event (GtkWidget *widget, gpointer compat, gpointer data);
|
||||
void remake_board(gint numoldchilds, gboolean isnextvalid);
|
||||
|
||||
void reinit_board(gint *newboard, gint *newnext, gint score, gint oldnext);
|
||||
|
@ -7,10 +7,11 @@
|
||||
*/
|
||||
#include <gtk/gtk.h>
|
||||
#include <gdk/gdkkeysyms.h>
|
||||
#include "gtkcompat.h"
|
||||
|
||||
gboolean ut_key_pressed_cb(GtkWidget *widget, GdkEventKey *event)
|
||||
{
|
||||
if(widget && event && event->keyval == GDK_Escape) {
|
||||
if(widget && event && event->keyval == GDK_KEY_Escape) {
|
||||
gtk_widget_destroy(widget);
|
||||
return TRUE;
|
||||
}
|
||||
@ -73,7 +74,7 @@ GtkWidget * gtkutil_frame_vbox (char * label, GtkWidget * parent_box)
|
||||
frame = gtk_frame_new (label);
|
||||
gtk_box_pack_start (GTK_BOX (parent_box), frame, FALSE, FALSE, 0);
|
||||
|
||||
GtkWidget * frame_vbox = gtk_vbox_new (FALSE, 5);
|
||||
GtkWidget * frame_vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 5);
|
||||
gtk_container_add (GTK_CONTAINER (frame), frame_vbox);
|
||||
/* padding */
|
||||
gtk_container_set_border_width (GTK_CONTAINER (frame_vbox), 5);
|
||||
@ -112,7 +113,7 @@ GtkWidget *ut_spin_button_new(gchar *label, gint min, gint max, gint val, GtkWid
|
||||
GtkAdjustment *adj;
|
||||
GtkWidget *button, *hbox, *labelw;
|
||||
|
||||
hbox = gtk_hbox_new(FALSE, 0);
|
||||
hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
|
||||
gtk_box_pack_start(GTK_BOX(parent), hbox, TRUE, TRUE, 0);
|
||||
|
||||
labelw = gtk_label_new(label);
|
||||
|
@ -58,7 +58,6 @@ void show_hall_of_fame (GtkWidget *widget, gpointer data, struct score_board b[1
|
||||
}
|
||||
|
||||
tv = gtk_tree_view_new_with_model (GTK_TREE_MODEL(store));
|
||||
gtk_tree_view_set_rules_hint (GTK_TREE_VIEW(tv), TRUE);
|
||||
gtk_tree_selection_set_mode (gtk_tree_view_get_selection(GTK_TREE_VIEW(tv)), GTK_SELECTION_BROWSE);
|
||||
g_object_unref (G_OBJECT(store));
|
||||
renderer = gtk_cell_renderer_text_new ();
|
||||
|
@ -76,7 +76,6 @@ void menu_get_main(GtkWidget *window, GtkWidget **menubar)
|
||||
gtk_action_group_set_translate_func(_action_group, _menu_translate, NULL, NULL);
|
||||
gtk_action_group_add_actions(_action_group, _menu_entries, G_N_ELEMENTS(_menu_entries), window);
|
||||
_ui_manager = gtk_ui_manager_new();
|
||||
gtk_ui_manager_set_add_tearoffs(_ui_manager, 1);
|
||||
gtk_ui_manager_insert_action_group(_ui_manager, _action_group, 0);
|
||||
accel_group = gtk_ui_manager_get_accel_group(_ui_manager);
|
||||
gtk_window_add_accel_group(GTK_WINDOW(window), accel_group);
|
||||
|
@ -107,26 +107,26 @@ gint _user_action_event(GtkWidget *w, GdkEvent *ev)
|
||||
}
|
||||
|
||||
if (ev->type == GDK_KEY_PRESS) {
|
||||
if (ev->key.keyval == GDK_Left || ev->key.keyval == GDK_KP_Left) {
|
||||
if (ev->key.keyval == GDK_KEY_Left || ev->key.keyval == GDK_KEY_KP_Left) {
|
||||
move_pointer(DIR_LEFT);
|
||||
} else if (ev->key.keyval == GDK_Right || ev->key.keyval == GDK_KP_Right) {
|
||||
} else if (ev->key.keyval == GDK_KEY_Right || ev->key.keyval == GDK_KEY_KP_Right) {
|
||||
move_pointer(DIR_RIGHT);
|
||||
} else if (ev->key.keyval == GDK_Up || ev->key.keyval == GDK_KP_Up) {
|
||||
} else if (ev->key.keyval == GDK_KEY_Up || ev->key.keyval == GDK_KEY_KP_Up) {
|
||||
move_pointer(DIR_UP);
|
||||
} else if (ev->key.keyval == GDK_Down || ev->key.keyval == GDK_KP_Down) {
|
||||
} else if (ev->key.keyval == GDK_KEY_Down || ev->key.keyval == GDK_KEY_KP_Down) {
|
||||
move_pointer(DIR_DOWN);
|
||||
} else if (ev->key.keyval == GDK_KP_Home) {
|
||||
} else if (ev->key.keyval == GDK_KEY_KP_Home) {
|
||||
move_pointer(DIR_UP_LEFT);
|
||||
} else if (ev->key.keyval == GDK_KP_Page_Up) {
|
||||
} else if (ev->key.keyval == GDK_KEY_KP_Page_Up) {
|
||||
move_pointer(DIR_UP_RIGHT);
|
||||
} else if (ev->key.keyval == GDK_KP_End) {
|
||||
} else if (ev->key.keyval == GDK_KEY_KP_End) {
|
||||
move_pointer(DIR_DOWN_LEFT);
|
||||
} else if (ev->key.keyval == GDK_KP_Page_Down) {
|
||||
} else if (ev->key.keyval == GDK_KEY_KP_Page_Down) {
|
||||
move_pointer(DIR_DOWN_RIGHT);
|
||||
} else if (ev->key.keyval == GDK_Return ||
|
||||
ev->key.keyval == GDK_KP_Space ||
|
||||
ev->key.keyval == GDK_KP_Enter ||
|
||||
ev->key.keyval == GDK_space) {
|
||||
} else if (ev->key.keyval == GDK_KEY_Return ||
|
||||
ev->key.keyval == GDK_KEY_KP_Space ||
|
||||
ev->key.keyval == GDK_KEY_KP_Enter ||
|
||||
ev->key.keyval == GDK_KEY_space) {
|
||||
if (is_actions_locked()) {
|
||||
return FALSE;
|
||||
}
|
||||
@ -175,36 +175,37 @@ void mw_create(gint da_width, gint da_height)
|
||||
g_error_free (error);
|
||||
}
|
||||
|
||||
vbox = gtk_vbox_new (FALSE, 5);
|
||||
vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 5);
|
||||
gtk_container_add (GTK_CONTAINER(mainwin), vbox);
|
||||
|
||||
menu_get_main (mainwin, &menubar);
|
||||
menu_set_sensitive_undo (FALSE);
|
||||
gtk_box_pack_start (GTK_BOX(vbox), menubar, FALSE, TRUE, 0);
|
||||
|
||||
hbox = gtk_hbox_new (FALSE, 0);
|
||||
hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
|
||||
_hi_score_label = gtk_label_new ("");
|
||||
gtk_box_pack_start (GTK_BOX(hbox), _hi_score_label, FALSE, FALSE, 5);
|
||||
_user_score_label = gtk_label_new("");
|
||||
gtk_box_pack_end (GTK_BOX(hbox), _user_score_label, FALSE, FALSE, 5);
|
||||
gtk_box_pack_start (GTK_BOX(vbox), GTK_WIDGET(hbox), FALSE, FALSE, 0);
|
||||
|
||||
_small_balls_box = gtk_hbox_new(TRUE, 0);
|
||||
_small_balls_box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
|
||||
gtk_box_set_homogeneous (GTK_BOX (_small_balls_box), TRUE);
|
||||
gtk_box_pack_start (GTK_BOX(hbox), _small_balls_box, TRUE, FALSE, 0);
|
||||
|
||||
hbox1 = gtk_hbox_new (FALSE, 0);
|
||||
hbox1 = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
|
||||
timer_label = gtk_label_new (NULL);
|
||||
gtk_box_pack_start (GTK_BOX(hbox1), timer_label, TRUE, TRUE, 5);
|
||||
g_timeout_add(250, _countdown_timer, timer_label);
|
||||
gtk_box_pack_start (GTK_BOX(vbox), GTK_WIDGET(hbox1), FALSE, FALSE, 0);
|
||||
|
||||
drawing_area_box = gtk_hbox_new(FALSE, 0);
|
||||
drawing_area_box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
|
||||
gtk_box_pack_start (GTK_BOX(vbox), drawing_area_box, FALSE, FALSE, 10);
|
||||
_drawing_area = gtk_drawing_area_new();
|
||||
gtk_widget_set_size_request (_drawing_area, da_width, da_height);
|
||||
gtk_box_pack_start (GTK_BOX(drawing_area_box), _drawing_area, TRUE, FALSE, 10);
|
||||
gtk_widget_set_events (_drawing_area, GDK_EXPOSURE_MASK | GDK_BUTTON_PRESS_MASK | GDK_KEY_PRESS_MASK | GDK_POINTER_MOTION_MASK);
|
||||
g_signal_connect (G_OBJECT(_drawing_area), "expose_event", G_CALLBACK(expose_event), NULL);
|
||||
g_signal_connect (G_OBJECT(_drawing_area), GTKCOMPAT_DRAW_SIGNAL, G_CALLBACK(boardw_draw_event), NULL);
|
||||
g_signal_connect (G_OBJECT(_drawing_area), "button_press_event", G_CALLBACK(_user_action_event), NULL);
|
||||
g_signal_connect (G_OBJECT(_drawing_area), "motion_notify_event", G_CALLBACK(_user_action_event), NULL);
|
||||
/* FIXME: imho catching keypress on whole window is stupid... */
|
||||
|
@ -163,8 +163,8 @@ void preferences_dialog (void)
|
||||
|
||||
theme_scrolled_window = gtk_scrolled_window_new (NULL, NULL);
|
||||
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW(theme_scrolled_window), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
|
||||
gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW(theme_scrolled_window), GTK_SHADOW_ETCHED_IN);
|
||||
gtk_box_pack_start (GTK_BOX(vbox), theme_scrolled_window, FALSE, FALSE, 5);
|
||||
gtk_widget_set_size_request (theme_scrolled_window, -1, 150);
|
||||
|
||||
store = gtk_list_store_new (1, G_TYPE_STRING);
|
||||
for (i = 0, st = 0; themelist[i] != NULL; i++) {
|
||||
@ -178,9 +178,7 @@ void preferences_dialog (void)
|
||||
g_free (themelist);
|
||||
|
||||
buttons[PR_THEME_LIST] = gtk_tree_view_new_with_model (GTK_TREE_MODEL(store));
|
||||
gtk_widget_set_size_request (buttons[PR_THEME_LIST], -1, 150);
|
||||
g_object_unref (G_OBJECT(store));
|
||||
gtk_tree_view_set_rules_hint (GTK_TREE_VIEW(buttons[PR_THEME_LIST]), TRUE);
|
||||
gtk_tree_view_set_search_column (GTK_TREE_VIEW(buttons[PR_THEME_LIST]), 0);
|
||||
gtk_tree_selection_set_mode (gtk_tree_view_get_selection(GTK_TREE_VIEW(buttons[PR_THEME_LIST])), GTK_SELECTION_BROWSE);
|
||||
gtk_container_add (GTK_CONTAINER(theme_scrolled_window), buttons[PR_THEME_LIST]);
|
||||
|
@ -20,7 +20,7 @@ void show_rules (GtkWidget *widget, gpointer data)
|
||||
dialog = gtkutil_dialog_new (_("Rules"), main_window, TRUE, &main_vbox);
|
||||
vbox = gtkutil_frame_vbox (_("Rules"), main_vbox);
|
||||
|
||||
hbox = gtk_hbox_new (FALSE, 0);
|
||||
hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
|
||||
gtk_box_pack_start (GTK_BOX (vbox), hbox, TRUE, TRUE, 0);
|
||||
|
||||
label = gtk_label_new (_("The standard play area of GtkBalls is a 9x9\n" \
|
||||
|
@ -247,7 +247,6 @@ void save_load_game_dialog(gboolean is_save)
|
||||
free_gamelist(gamelist, num);
|
||||
|
||||
treeview = gtk_tree_view_new_with_model (GTK_TREE_MODEL(store));
|
||||
gtk_tree_view_set_rules_hint (GTK_TREE_VIEW(treeview), TRUE);
|
||||
gtk_tree_view_set_search_column (GTK_TREE_VIEW(treeview), 0);
|
||||
gtk_tree_selection_set_mode (gtk_tree_view_get_selection(GTK_TREE_VIEW(treeview)), GTK_SELECTION_BROWSE);
|
||||
g_signal_connect (G_OBJECT(gtk_tree_view_get_selection(GTK_TREE_VIEW(treeview))),
|
||||
@ -270,18 +269,16 @@ void save_load_game_dialog(gboolean is_save)
|
||||
column = gtk_tree_view_column_new_with_attributes (_("Score"), renderer, "text", 2, NULL);
|
||||
gtk_tree_view_append_column (GTK_TREE_VIEW(treeview), column);
|
||||
|
||||
if (iter.stamp == store->stamp) {
|
||||
if (is_save) {
|
||||
path = gtk_tree_model_get_path (GTK_TREE_MODEL(store), &iter);
|
||||
} else {
|
||||
path = gtk_tree_path_new_from_string ("0");
|
||||
}
|
||||
if (path) {
|
||||
gtk_tree_selection_select_path (gtk_tree_view_get_selection(GTK_TREE_VIEW(treeview)), path);
|
||||
gtk_tree_view_set_cursor (GTK_TREE_VIEW(treeview), path, NULL, FALSE);
|
||||
gtk_tree_view_scroll_to_cell (GTK_TREE_VIEW(treeview), path, NULL, TRUE, 0, 0);
|
||||
gtk_tree_path_free (path);
|
||||
}
|
||||
if (is_save) {
|
||||
path = gtk_tree_model_get_path (GTK_TREE_MODEL(store), &iter);
|
||||
} else {
|
||||
path = gtk_tree_path_new_from_string ("0");
|
||||
}
|
||||
if (path) {
|
||||
gtk_tree_selection_select_path (gtk_tree_view_get_selection(GTK_TREE_VIEW(treeview)), path);
|
||||
gtk_tree_view_set_cursor (GTK_TREE_VIEW(treeview), path, NULL, FALSE);
|
||||
gtk_tree_view_scroll_to_cell (GTK_TREE_VIEW(treeview), path, NULL, TRUE, 0, 0);
|
||||
gtk_tree_path_free (path);
|
||||
}
|
||||
g_object_unref (G_OBJECT(store));
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user