Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Replace even more GTK 1 #236

Merged
merged 10 commits into from
Nov 14, 2024
Merged
71 changes: 34 additions & 37 deletions src/addmaster.c
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ static void master_check_master_addr_prefix(void) {
const gchar *master_addr;
gchar *master_tmp_addr;

master_addr= gtk_entry_get_text(GTK_ENTRY (GTK_COMBO(master_addr_combo)->entry));
master_addr = gtk_entry_get_text (combo_get_entry (master_addr_combo));

// Replace up to :// with master type selected from radio buttons
if (g_ascii_strncasecmp(master_addr, master_prefixes[current_master_query_type],
Expand All @@ -73,15 +73,14 @@ static void master_check_master_addr_prefix(void) {
// Add lan://255.255.255.255 if user picks LAN and has not already entered an address
if (current_master_query_type == MASTER_LAN && (strlen(master_addr) <= (size_t)(pos - master_addr))) {
char *txt = g_strdup_printf("%s%s", master_prefixes[current_master_query_type], "255.255.255.255");
gtk_entry_set_text(
GTK_ENTRY(GTK_COMBO(master_addr_combo)->entry), txt);
gtk_entry_set_text (combo_get_entry (master_addr_combo), txt);
g_free(txt);
}

// Otherwise, just change the master type (xxx://)
else {
master_tmp_addr = g_strconcat(master_prefixes[current_master_query_type], pos, NULL);
gtk_entry_set_text(GTK_ENTRY(GTK_COMBO(master_addr_combo)->entry), master_tmp_addr);
gtk_entry_set_text (combo_get_entry (master_addr_combo), master_tmp_addr);
g_free(master_tmp_addr);
}
}
Expand All @@ -90,8 +89,8 @@ static void master_check_master_addr_prefix(void) {
static void master_okbutton_callback (GtkWidget *widget, GtkWidget* window) {
master_check_master_addr_prefix();

master_addr_result = strdup_strip (gtk_entry_get_text (GTK_ENTRY (GTK_COMBO (master_addr_combo)->entry)));
master_name_result = strdup_strip (gtk_entry_get_text (GTK_ENTRY (GTK_COMBO (master_name_combo)->entry)));
master_addr_result = strdup_strip (gtk_entry_get_text (combo_get_entry (master_addr_combo)));
master_name_result = strdup_strip (gtk_entry_get_text (combo_get_entry (master_name_combo)));

config_set_string ("/" CONFIG_FILE "/Add Master/game", type2id (master_type));

Expand Down Expand Up @@ -145,12 +144,11 @@ static void master_type_radio_callback(GtkWidget *widget, enum master_query_type
current_master_query_type = type;
master_check_master_addr_prefix();

master_name = gtk_entry_get_text(GTK_ENTRY (GTK_COMBO (master_name_combo)->entry));
master_name = gtk_entry_get_text (combo_get_entry (master_name_combo));

if (current_master_query_type == MASTER_LAN
&& (!master_name || !strlen(master_name))) {
gtk_entry_set_text(
GTK_ENTRY(GTK_COMBO(master_name_combo)->entry), _("LAN"));
gtk_entry_set_text (combo_get_entry (master_name_combo), _("LAN"));
}
}
}
Expand All @@ -163,12 +161,21 @@ static void master_activate_radio_for_type(enum master_query_type type) {
}
}

static void master_address_from_history_selected_callback (GtkWidget *widget, gpointer data) {
const gchar* str = gtk_entry_get_text(GTK_ENTRY (GTK_COMBO (master_addr_combo)->entry));
enum master_query_type type = get_master_query_type_from_address(str);
master_activate_radio_for_type(type);
}
static void master_address_changed_callback (GtkWidget *widget, gpointer data) {
const gchar* str = gtk_entry_get_text (combo_get_entry (master_addr_combo));
enum master_query_type type;

// Don't switch type when backspacing the protocol scheme.
if (!strstr(str, "://")) {
type = MASTER_INVALID_TYPE;
} else {
type = get_master_query_type_from_address(str);
}

if (type != MASTER_INVALID_TYPE) {
master_activate_radio_for_type(type);
}
}

struct master *add_master_dialog (struct master *m) {
GtkWidget *window;
Expand Down Expand Up @@ -239,28 +246,23 @@ struct master *add_master_dialog (struct master *m) {
hbox = gtk_hbox_new (FALSE, 4);
gtk_table_attach_defaults (GTK_TABLE (table), hbox, 1, 2, 0, 1);

master_name_combo = gtk_combo_new ();
master_name_combo = gtk_combo_box_text_new_with_entry ();
gtk_widget_set_size_request (master_name_combo, 200, -1);
gtk_box_pack_start (GTK_BOX (hbox), master_name_combo, TRUE, TRUE, 0);
gtk_entry_set_max_length (GTK_ENTRY (GTK_COMBO (master_name_combo)->entry), 256);
gtk_combo_set_case_sensitive (GTK_COMBO (master_name_combo), TRUE);
gtk_combo_set_use_arrows_always (GTK_COMBO (master_name_combo), TRUE);
gtk_combo_disable_activate (GTK_COMBO (master_name_combo));
gtk_entry_set_max_length (combo_get_entry (master_name_combo), 256);
g_signal_connect(
G_OBJECT (GTK_COMBO (master_name_combo)->entry), "activate",
G_OBJECT (combo_get_entry (master_name_combo)), "activate",
G_CALLBACK (master_okbutton_callback), G_OBJECT (window));

gtk_widget_set_can_focus (GTK_COMBO (master_name_combo)->entry, TRUE);
gtk_widget_set_can_focus (GTK_COMBO (master_name_combo)->button, FALSE);
gtk_widget_grab_focus (GTK_COMBO (master_name_combo)->entry);
gtk_widget_grab_focus (GTK_WIDGET (master_name_combo));

gtk_widget_show (master_name_combo);

if (master_history_name->items)
combo_set_vals (master_name_combo, master_history_name->items, "");

if (master_to_edit) {
gtk_entry_set_text(GTK_ENTRY (GTK_COMBO (master_name_combo)->entry), master_to_edit->name);
gtk_entry_set_text(combo_get_entry (master_name_combo), master_to_edit->name);
}


Expand All @@ -287,24 +289,19 @@ struct master *add_master_dialog (struct master *m) {
GTK_FILL, GTK_FILL, 0, 0);
gtk_widget_show (label);

master_addr_combo = gtk_combo_new ();
master_addr_combo = gtk_combo_box_text_new_with_entry ();
gtk_table_attach_defaults (GTK_TABLE (table), master_addr_combo, 1, 2, 1, 2);
gtk_entry_set_max_length (GTK_ENTRY (GTK_COMBO (master_addr_combo)->entry), 4096);
gtk_combo_set_case_sensitive (GTK_COMBO (master_addr_combo), TRUE);
gtk_combo_set_use_arrows_always (GTK_COMBO (master_addr_combo), TRUE);
gtk_combo_disable_activate (GTK_COMBO (master_addr_combo));
gtk_entry_set_max_length (combo_get_entry (master_addr_combo), 4096);
g_signal_connect (
G_OBJECT (GTK_COMBO (master_addr_combo)->entry), "activate",
G_OBJECT (combo_get_entry (master_addr_combo)), "activate",
G_CALLBACK (master_okbutton_callback), G_OBJECT (window));
g_signal_connect (
G_OBJECT (GTK_COMBO (master_addr_combo)->list),
"selection-changed",
G_OBJECT (master_addr_combo),
"changed",
G_CALLBACK
(master_address_from_history_selected_callback),NULL);
(master_address_changed_callback),NULL);

gtk_widget_set_can_focus (GTK_COMBO (master_addr_combo)->entry, TRUE);
gtk_widget_set_can_focus (GTK_COMBO (master_addr_combo)->button, FALSE);
// gtk_widget_grab_focus (GTK_COMBO (master_addr_combo)->entry);
// gtk_widget_grab_focus (GTK_WIDGET (master_addr_combo));

gtk_widget_show (master_addr_combo);

Expand All @@ -313,7 +310,7 @@ struct master *add_master_dialog (struct master *m) {

if (master_to_edit) {
char* url = master_to_url(master_to_edit);
gtk_entry_set_text(GTK_ENTRY (GTK_COMBO (master_addr_combo)->entry), url);
gtk_entry_set_text(combo_get_entry (master_addr_combo), url);
gtk_widget_set_state (master_addr_combo, GTK_STATE_NORMAL);
gtk_widget_set_sensitive (GTK_WIDGET(master_addr_combo),FALSE);
g_free(url);
Expand Down
19 changes: 7 additions & 12 deletions src/addserver.c
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ static GtkWidget *server_combo;

static void server_combo_activate_callback (GtkWidget *widget, gpointer data) {
enter_server_result = strdup_strip (gtk_entry_get_text (
GTK_ENTRY (GTK_COMBO (server_combo)->entry)));
combo_get_entry (server_combo)));
history_add (server_history, enter_server_result);

config_set_string ("/" CONFIG_FILE "/Add Server/game",
Expand Down Expand Up @@ -101,23 +101,18 @@ char *add_server_dialog (enum server_type *type, const char* addr) {
gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 0);
gtk_widget_show (label);

server_combo = gtk_combo_new ();
server_combo = gtk_combo_box_text_new_with_entry ();
gtk_widget_set_size_request (server_combo, 200, -1);
gtk_box_pack_start (GTK_BOX (hbox), server_combo, TRUE, TRUE, 0);
gtk_entry_set_max_length (GTK_ENTRY (GTK_COMBO (server_combo)->entry), 128);
gtk_combo_set_case_sensitive (GTK_COMBO (server_combo), TRUE);
gtk_combo_set_use_arrows_always (GTK_COMBO (server_combo), TRUE);
gtk_combo_disable_activate (GTK_COMBO (server_combo));
gtk_entry_set_max_length (combo_get_entry (server_combo), 128);
g_signal_connect (
G_OBJECT (GTK_COMBO (server_combo)->entry), "activate",
G_OBJECT (combo_get_entry (server_combo)), "activate",
G_CALLBACK (server_combo_activate_callback), NULL);
g_signal_connect_swapped (
G_OBJECT (GTK_COMBO (server_combo)->entry), "activate",
G_OBJECT (combo_get_entry (server_combo)), "activate",
G_CALLBACK (gtk_widget_destroy), G_OBJECT (window));

gtk_widget_set_can_focus (GTK_COMBO (server_combo)->entry, TRUE);
gtk_widget_set_can_focus (GTK_COMBO (server_combo)->button, FALSE);
gtk_widget_grab_focus (GTK_COMBO (server_combo)->entry);
gtk_widget_grab_focus (GTK_WIDGET (server_combo));
gtk_widget_show (server_combo);

combo_set_vals (server_combo, server_history->items, addr);
Expand Down Expand Up @@ -162,7 +157,7 @@ char *add_server_dialog (enum server_type *type, const char* addr) {
gtk_widget_set_size_request (button, 80, -1);
g_signal_connect_swapped (G_OBJECT (button), "clicked",
G_CALLBACK (server_combo_activate_callback),
G_OBJECT (GTK_COMBO (server_combo)->entry));
G_OBJECT (combo_get_entry (server_combo)));
g_signal_connect_swapped (G_OBJECT (button), "clicked",
G_CALLBACK (gtk_widget_destroy), G_OBJECT (window));
gtk_widget_set_can_default (button, TRUE);
Expand Down
38 changes: 17 additions & 21 deletions src/country-filter.c
Original file line number Diff line number Diff line change
Expand Up @@ -177,7 +177,6 @@ static char* find_flag_file(int id) {
}

struct pixmap* get_pixmap_for_country(int id) {
GdkPixbuf* pixbuf = NULL;
struct pixmap* pix = NULL;

char* filename = NULL;
Expand All @@ -191,17 +190,13 @@ struct pixmap* get_pixmap_for_country(int id) {

pix = &flags[id];

if (pix->pix == GINT_TO_POINTER(-1)) {
if (pix->pixbuf == GINT_TO_POINTER(-1)) {
return NULL;
}
if (pix->pix) {
if (pix->pixbuf) {
return pix;
}

if (!GDK_PIXBUF_INSTALLED) {
return NULL;
}

filename = find_flag_file(id);

if (!filename || access(filename,R_OK)) {
Expand All @@ -211,18 +206,19 @@ struct pixmap* get_pixmap_for_country(int id) {

debug(4, "loading gdk_pixbuf from file: %s", filename);

pixbuf = gdk_pixbuf_new_from_file(filename, NULL);
pix->pixbuf = gdk_pixbuf_new_from_file(filename, NULL);

if (pixbuf == NULL) {
pix->pix=GINT_TO_POINTER(-1);
if (pix->pixbuf == NULL) {
pix->pixbuf=GINT_TO_POINTER(-1);
g_warning (_("Error loading pixmap file: %s"), filename);
g_free (filename);
return NULL;
}

gdk_pixbuf_render_pixmap_and_mask(pixbuf,&pix->pix,&pix->mask,255);
#ifdef GUI_GTK2
gdk_pixbuf_render_pixmap_and_mask(pix->pixbuf,&pix->pix,&pix->mask,255);
#endif

g_object_unref(pixbuf);
g_free (filename);

return pix;
Expand All @@ -234,18 +230,18 @@ struct pixmap* get_pixmap_for_country_with_fallback(int id) {
return pix;
}

if (!flags || flags[0].pix == GINT_TO_POINTER(-1)) {
if (!flags || flags[0].pixbuf == GINT_TO_POINTER(-1)) {
return NULL;
}

if (!flags[0].pix) {
flags[0].pix = gdk_pixmap_colormap_create_from_xpm_d(NULL,
gdk_colormap_get_system(),
&flags[0].mask,
NULL,
noflag_xpm);
if (!flags[0].pix)
flags[0].pix = GINT_TO_POINTER(-1);
if (!flags[0].pixbuf) {
flags[0].pixbuf = gdk_pixbuf_new_from_xpm_data( (const char **)noflag_xpm);
if (!flags[0].pixbuf)
flags[0].pixbuf = GINT_TO_POINTER(-1);
#ifdef GUI_GTK2
else
gdk_pixbuf_render_pixmap_and_mask(flags[0].pixbuf,&flags[0].pix,&flags[0].mask,255);
#endif
}
return &flags[0];
}
Expand Down
4 changes: 2 additions & 2 deletions src/dialogs.c
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ static int destroy_on_escape (GtkWidget *widget, GdkEventKey *event) {
GtkWidget *dialog_create_modal_transient_window (const char *title,
int close_on_esc,
int allow_resize,
GtkSignalFunc on_destroy) {
GCallback on_destroy) {
GtkWidget *window;
GtkWidget *parent;

Expand Down Expand Up @@ -535,7 +535,7 @@ static void file_dialog_response_set_textentry (GtkWidget *dialog, int response,
gtk_widget_destroy (dialog);
}

GtkWidget* file_dialog(const char *title, GtkSignalFunc response_callback, gpointer data) {
GtkWidget* file_dialog(const char *title, GCallback response_callback, gpointer data) {
GtkWidget* dialog;

dialog = gtk_file_chooser_dialog_new (title,
Expand Down
4 changes: 2 additions & 2 deletions src/dialogs.h
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ static inline GtkWidget* topmost_parent(GtkWidget* widget) {
return previous_widget;
}

extern GtkWidget *dialog_create_modal_transient_window (const char *title, int close_on_esc, int allow_resize, GtkSignalFunc on_destroy);
extern GtkWidget *dialog_create_modal_transient_window (const char *title, int close_on_esc, int allow_resize, GCallback on_destroy);

extern void dialog_ok (const char *title, const char *fmt, ...) G_GNUC_PRINTF(2, 3);
extern int dialog_yesno (const char *title, int defbutton, char *yes, char *no, char *fmt, ...) G_GNUC_PRINTF(5, 6);
Expand All @@ -39,7 +39,7 @@ extern char *enter_string_with_option_dialog (int visible, char *optstr, int *op
void about_dialog (GtkWidget *widget, gpointer data);

/** Create a new file selection widget */
GtkWidget* file_dialog(const char *title, GtkSignalFunc ok_callback, gpointer data);
GtkWidget* file_dialog(const char *title, GCallback ok_callback, gpointer data);

/** create new file_dialog and connect the ok button to the textentry */
GtkWidget* file_dialog_textentry(const char *title, GtkWidget* entry);
Expand Down
Loading
Loading