Removed world list, this is now a separate widget
This commit is contained in:
parent
ef817b40d9
commit
4918846424
|
@ -11,6 +11,7 @@
|
|||
#include <gdk/gdkkeysyms.h>
|
||||
#include <gtk/gtk.h>
|
||||
#include <libgnomeui/libgnomeui.h>
|
||||
#include <glade/glade.h>
|
||||
|
||||
#include "gm-support.h"
|
||||
#include "gm-debug.h"
|
||||
|
@ -18,12 +19,11 @@
|
|||
#include "gm-worlds-list-dialog.h"
|
||||
#include "gm-world-properties-dialog.h"
|
||||
#include "gm-pixbuf.h"
|
||||
#include "widgets/gm-worlds-view.h"
|
||||
|
||||
typedef struct _GmWorldsListDialog {
|
||||
GladeXML *xml;
|
||||
GtkWidget *dialog;
|
||||
GtkTreeView *tree_view_worlds;
|
||||
GtkTreeModel *model_worlds;
|
||||
} GmWorldsListDialog;
|
||||
|
||||
void on_gm_worlds_list_dialog_button_delete_clicked(GtkButton * utton,
|
||||
|
@ -39,133 +39,38 @@ void on_gm_worlds_list_dialog_button_connect_clicked(GtkButton *button,
|
|||
|
||||
void on_gm_worlds_list_dialog_tree_view_worlds_key_press(GtkWidget *widget,
|
||||
GdkEventKey *event, gpointer user_data);
|
||||
void on_gm_worlds_list_dialog_tree_view_worlds_row_activated(
|
||||
GtkTreeView *tree_view, GtkTreePath *path, GtkTreeViewColumn *column,
|
||||
gpointer user_data);
|
||||
|
||||
void on_gm_worlds_list_dialog_app_world_added(GmApp *app, GmWorld *world,
|
||||
gpointer user_data);
|
||||
void on_gm_worlds_list_dialog_app_world_removed(GmApp *app, GmWorld *world,
|
||||
gpointer user_data);
|
||||
void on_gm_worlds_list_dialog_world_option_changed(GmOptions *options,
|
||||
const gchar *key, GmWorld *world);
|
||||
void on_gm_worlds_list_dialog_response(GtkDialog *dialog, gint response,
|
||||
gpointer user_data);
|
||||
|
||||
static GmWorldsListDialog *gm_worlds_list_dialog_instance;
|
||||
|
||||
enum {
|
||||
LOGO_COLUMN,
|
||||
NAME_COLUMN,
|
||||
WORLD_COLUMN,
|
||||
SORT_COLUMN,
|
||||
N_COLUMNS
|
||||
};
|
||||
|
||||
GtkWidget *
|
||||
gm_worlds_list_dialog_widget(gchar *name) {
|
||||
return glade_xml_get_widget(gm_worlds_list_dialog_instance->xml, name);
|
||||
}
|
||||
|
||||
gchar *
|
||||
gm_worlds_list_dialog_world_text(GmWorld *world) {
|
||||
gchar *text;
|
||||
gchar const *player, *server, *mooname;
|
||||
GmOptions *options = gm_world_options(world);
|
||||
|
||||
player = gm_options_get(options, "player_name");
|
||||
server = gm_options_get(options, "host");
|
||||
mooname = gm_options_get(options, "mooname");
|
||||
|
||||
text = g_strconcat("<b>", gm_options_get(options, "name"),
|
||||
_("</b>\n<small>MOO: "),
|
||||
((mooname && *mooname != '\0') ? mooname : _("<i>unspecified</i>")),
|
||||
_("\nServer: "),
|
||||
((server && server[0] != '\0') ? server : _("<i>unspecified</i>")),
|
||||
_("\nPlayer: "),
|
||||
((player && player[0] != '\0') ? player : _("<i>unspecified</i>")),
|
||||
"</small>",
|
||||
NULL);
|
||||
|
||||
return text;
|
||||
}
|
||||
|
||||
static void
|
||||
gm_worlds_list_dialog_add_world(GmWorld *world) {
|
||||
GtkTreeIter iter;
|
||||
GdkPixbuf *pix_logo = NULL;
|
||||
gchar *name = gm_worlds_list_dialog_world_text(world);
|
||||
const gchar *logo = gm_options_get(gm_world_options(world), "logo");
|
||||
GtkListStore *store = GTK_LIST_STORE(
|
||||
gm_worlds_list_dialog_instance->model_worlds);
|
||||
|
||||
if (logo) {
|
||||
pix_logo = gm_pixbuf_get_at_size(logo, 32, 32);
|
||||
} else {
|
||||
pix_logo = gm_pixbuf_get_at_size("world.svg", 32, 32);
|
||||
}
|
||||
|
||||
gtk_list_store_append(store, &iter);
|
||||
gtk_list_store_set(store, &iter, LOGO_COLUMN, pix_logo, NAME_COLUMN,
|
||||
name, WORLD_COLUMN, world, SORT_COLUMN,
|
||||
gm_world_name(world), -1);
|
||||
|
||||
g_signal_connect(gm_world_options(world), "option_changed",
|
||||
G_CALLBACK(on_gm_worlds_list_dialog_world_option_changed), world);
|
||||
|
||||
g_free(name);
|
||||
}
|
||||
|
||||
#define G_WORLDS_LISTS_DIALOG_XML PACKAGE_DATA_DIR "/" PACKAGE \
|
||||
#define GM_WORLDS_LIST_DIALOG_XML PACKAGE_DATA_DIR "/" PACKAGE \
|
||||
"/ui/gm-worlds-list.glade"
|
||||
|
||||
static void
|
||||
gm_worlds_list_dialog_populate_worlds() {
|
||||
GmApp *app = gm_app_instance();
|
||||
GList *worlds = gm_app_worlds(app);
|
||||
GList *item;
|
||||
GmWorld *world;
|
||||
GtkWidget *
|
||||
gm_worlds_list_dialog_create_tree_view(gchar *widget_name, gchar *string1,
|
||||
gchar *string2, gint int1, gint int2) {
|
||||
GtkWidget *tree_view = gm_worlds_view_new();
|
||||
|
||||
for (item = worlds; item; item = item->next) {
|
||||
world = (GmWorld *)(item->data);
|
||||
gm_worlds_list_dialog_add_world(world);
|
||||
}
|
||||
g_signal_connect(tree_view, "key-press-event",
|
||||
G_CALLBACK(on_gm_worlds_list_dialog_tree_view_worlds_key_press),
|
||||
NULL);
|
||||
g_signal_connect(tree_view, "row-activated",
|
||||
G_CALLBACK(on_gm_worlds_list_dialog_tree_view_worlds_row_activated),
|
||||
NULL);
|
||||
|
||||
g_list_free(worlds);
|
||||
}
|
||||
gtk_widget_show(GTK_WIDGET(tree_view));
|
||||
|
||||
static void
|
||||
gm_worlds_list_dialog_create_tree_view_worlds() {
|
||||
GtkCellRenderer *renderer;
|
||||
GtkTreeViewColumn *column;
|
||||
GtkTreeView *tree_view;
|
||||
GtkTreeModel *model;
|
||||
GtkTreeModel *sorted;
|
||||
|
||||
model = GTK_TREE_MODEL(gtk_list_store_new(N_COLUMNS, GDK_TYPE_PIXBUF,
|
||||
G_TYPE_STRING, G_TYPE_POINTER, G_TYPE_STRING));
|
||||
sorted = gtk_tree_model_sort_new_with_model(model);
|
||||
|
||||
tree_view = GTK_TREE_VIEW(gm_worlds_list_dialog_widget("tree_view_worlds"));
|
||||
gtk_tree_view_set_model(tree_view, sorted);
|
||||
gtk_tree_selection_set_mode(gtk_tree_view_get_selection(tree_view),
|
||||
GTK_SELECTION_MULTIPLE);
|
||||
|
||||
renderer = gtk_cell_renderer_pixbuf_new();
|
||||
column = gtk_tree_view_column_new_with_attributes(_("Logo"), renderer,
|
||||
"pixbuf", LOGO_COLUMN, NULL);
|
||||
gtk_tree_view_column_set_min_width(column, 40);
|
||||
gtk_tree_view_append_column(tree_view, column);
|
||||
|
||||
renderer = gtk_cell_renderer_text_new();
|
||||
column = gtk_tree_view_column_new_with_attributes(_("Name"), renderer,
|
||||
"markup", NAME_COLUMN, NULL);
|
||||
gtk_tree_view_append_column(tree_view, column);
|
||||
|
||||
gm_worlds_list_dialog_instance->tree_view_worlds = tree_view;
|
||||
gm_worlds_list_dialog_instance->model_worlds = model;
|
||||
|
||||
gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(sorted),
|
||||
SORT_COLUMN, GTK_SORT_ASCENDING);
|
||||
|
||||
gm_worlds_list_dialog_populate_worlds();
|
||||
return GTK_WIDGET(tree_view);
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -177,13 +82,18 @@ gm_worlds_list_dialog_run() {
|
|||
gtk_window_present(GTK_WINDOW(gm_worlds_list_dialog_instance->dialog));
|
||||
return;
|
||||
}
|
||||
|
||||
gm_worlds_list_dialog_instance = g_new0(GmWorldsListDialog, 1);
|
||||
xml = glade_xml_new(G_WORLDS_LISTS_DIALOG_XML, "gm_worlds_list_dialog",
|
||||
NULL);
|
||||
gm_worlds_list_dialog_instance->xml = xml;
|
||||
|
||||
gm_worlds_list_dialog_create_tree_view_worlds();
|
||||
xml = glade_xml_new(GM_WORLDS_LIST_DIALOG_XML, "gm_worlds_list_dialog",
|
||||
NULL);
|
||||
|
||||
if (xml == NULL) {
|
||||
gm_debug_msg(DEBUG_ALWAYS, "Couldn't find glade file %s!",
|
||||
GM_WORLDS_LIST_DIALOG_XML);
|
||||
return;
|
||||
}
|
||||
|
||||
gm_worlds_list_dialog_instance = g_new0(GmWorldsListDialog, 1);
|
||||
gm_worlds_list_dialog_instance->xml = xml;
|
||||
|
||||
glade_xml_signal_connect(xml, "on_button_delete_clicked",
|
||||
G_CALLBACK(on_gm_worlds_list_dialog_button_delete_clicked));
|
||||
|
@ -192,33 +102,27 @@ gm_worlds_list_dialog_run() {
|
|||
glade_xml_signal_connect(xml, "on_button_modify_clicked",
|
||||
G_CALLBACK(on_gm_worlds_list_dialog_button_modify_clicked));
|
||||
glade_xml_signal_connect(xml, "on_button_duplicate_clicked",
|
||||
G_CALLBACK(on_gm_worlds_list_dialog_button_connect_clicked));
|
||||
G_CALLBACK(on_gm_worlds_list_dialog_button_duplicate_clicked));
|
||||
glade_xml_signal_connect(xml, "on_button_connect_clicked",
|
||||
G_CALLBACK(on_gm_worlds_list_dialog_button_connect_clicked));
|
||||
|
||||
glade_xml_signal_connect(xml, "on_tree_view_worlds_key_press",
|
||||
G_CALLBACK(on_gm_worlds_list_dialog_tree_view_worlds_key_press));
|
||||
|
||||
gm_worlds_list_dialog_instance->dialog =
|
||||
gm_worlds_list_dialog_widget("gm_worlds_list_dialog");
|
||||
|
||||
g_signal_connect(gm_app_instance(), "world_added",
|
||||
G_CALLBACK(on_gm_worlds_list_dialog_app_world_added), NULL);
|
||||
g_signal_connect(gm_app_instance(), "world_removed",
|
||||
G_CALLBACK(on_gm_worlds_list_dialog_app_world_removed), NULL);
|
||||
|
||||
gtk_window_set_icon(GTK_WINDOW(gm_worlds_list_dialog_instance->dialog),
|
||||
gm_pixbuf_get("world.svg"));
|
||||
gtk_widget_show(gm_worlds_list_dialog_instance->dialog);
|
||||
|
||||
g_signal_connect(gm_worlds_list_dialog_instance->dialog, "response",
|
||||
G_CALLBACK(on_gm_worlds_list_dialog_response), NULL);
|
||||
|
||||
gtk_widget_show(gm_worlds_list_dialog_instance->dialog);
|
||||
}
|
||||
|
||||
static void
|
||||
gm_worlds_list_dialog_delete_selected_worlds() {
|
||||
GtkTreeView *tree_view = gm_worlds_list_dialog_instance->tree_view_worlds;
|
||||
GtkTreeModel *model = gm_worlds_list_dialog_instance->model_worlds;
|
||||
GtkTreeView *tree_view = GTK_TREE_VIEW(
|
||||
gm_worlds_list_dialog_widget("tree_view_worlds"));
|
||||
GtkTreeModel *model = gm_worlds_view_model(GM_WORLDS_VIEW(tree_view));
|
||||
GtkTreeSelection *selection = gtk_tree_view_get_selection(tree_view);
|
||||
GtkTreeIter iter;
|
||||
GList *paths = gtk_tree_selection_get_selected_rows(selection, &model);
|
||||
|
@ -241,18 +145,24 @@ gm_worlds_list_dialog_delete_selected_worlds() {
|
|||
GtkTreePath *path = gtk_tree_row_reference_get_path(node->data);
|
||||
|
||||
gtk_tree_model_get_iter(model, &iter, path);
|
||||
gtk_tree_model_get(model, &iter, WORLD_COLUMN, &world, -1);
|
||||
gtk_tree_model_get(model, &iter, GM_WORLDS_VIEW_WORLD_COLUMN,
|
||||
&world, -1);
|
||||
|
||||
if (!(world && gm_world_loaded(world))) {
|
||||
gtk_list_store_remove(GTK_LIST_STORE(model), &iter);
|
||||
gm_app_remove_world(gm_app_instance(), world);
|
||||
} else {
|
||||
message = g_strdup_printf(_
|
||||
("Can't remove the world %s because it is loaded. "
|
||||
"First close the world and then try again."),
|
||||
("The world %s is still open. Do you want to close "
|
||||
"and remove the world?"),
|
||||
gm_world_name(world));
|
||||
gm_error_dialog(message,
|
||||
GTK_WINDOW(gm_worlds_list_dialog_instance->dialog));
|
||||
|
||||
if (gm_question_dialog(message,
|
||||
GTK_WINDOW(gm_worlds_list_dialog_instance->dialog)) ==
|
||||
GTK_RESPONSE_YES) {
|
||||
gm_world_unload(world);
|
||||
gm_app_remove_world(gm_app_instance(), world);
|
||||
}
|
||||
|
||||
g_free(message);
|
||||
}
|
||||
|
||||
|
@ -271,8 +181,9 @@ gm_worlds_list_dialog_delete_selected_worlds() {
|
|||
|
||||
void
|
||||
gm_worlds_list_dialog_modify_world() {
|
||||
GtkTreeView *tree_view = gm_worlds_list_dialog_instance->tree_view_worlds;
|
||||
GtkTreeModel *model = gm_worlds_list_dialog_instance->model_worlds;
|
||||
GtkTreeView *tree_view = GTK_TREE_VIEW(
|
||||
gm_worlds_list_dialog_widget("tree_view_worlds"));
|
||||
GtkTreeModel *model = gm_worlds_view_model(GM_WORLDS_VIEW(tree_view));
|
||||
GtkTreeSelection *selection = gtk_tree_view_get_selection(tree_view);
|
||||
GtkTreeIter iter;
|
||||
GList *first_path = gtk_tree_selection_get_selected_rows(selection, &model);
|
||||
|
@ -280,7 +191,8 @@ gm_worlds_list_dialog_modify_world() {
|
|||
|
||||
if (first_path) {
|
||||
gtk_tree_model_get_iter(model, &iter, first_path->data);
|
||||
gtk_tree_model_get(model, &iter, WORLD_COLUMN, &world, -1);
|
||||
gtk_tree_model_get(model, &iter, GM_WORLDS_VIEW_WORLD_COLUMN, &world,
|
||||
-1);
|
||||
|
||||
gm_world_properties_dialog_run(world);
|
||||
} else {
|
||||
|
@ -293,8 +205,9 @@ gm_worlds_list_dialog_modify_world() {
|
|||
|
||||
GList *
|
||||
gm_worlds_list_dialog_selected_path() {
|
||||
GtkTreeView *tree_view = gm_worlds_list_dialog_instance->tree_view_worlds;
|
||||
GtkTreeModel *model = gm_worlds_list_dialog_instance->model_worlds;
|
||||
GtkTreeView *tree_view = GTK_TREE_VIEW(
|
||||
gm_worlds_list_dialog_widget("tree_view_worlds"));
|
||||
GtkTreeModel *model = gm_worlds_view_model(GM_WORLDS_VIEW(tree_view));
|
||||
GtkTreeSelection *selection = gtk_tree_view_get_selection(tree_view);
|
||||
|
||||
return gtk_tree_selection_get_selected_rows(selection, &model);
|
||||
|
@ -302,57 +215,55 @@ gm_worlds_list_dialog_selected_path() {
|
|||
|
||||
GmWorld *
|
||||
gm_worlds_list_dialog_selected_world() {
|
||||
GtkTreeView *tree_view = GTK_TREE_VIEW(
|
||||
gm_worlds_list_dialog_widget("tree_view_worlds"));
|
||||
GtkTreeModel *model = gm_worlds_view_model(GM_WORLDS_VIEW(tree_view));
|
||||
GtkTreeIter iter;
|
||||
GList *first_path = gm_worlds_list_dialog_selected_path();
|
||||
GmWorld *world = NULL;
|
||||
|
||||
if (first_path) {
|
||||
gtk_tree_model_get_iter(gm_worlds_list_dialog_instance->model_worlds,
|
||||
gtk_tree_model_get_iter(model,
|
||||
&iter, first_path->data);
|
||||
gtk_tree_model_get(gm_worlds_list_dialog_instance->model_worlds, &iter,
|
||||
WORLD_COLUMN, &world, -1);
|
||||
gtk_tree_model_get(model, &iter,
|
||||
GM_WORLDS_VIEW_WORLD_COLUMN, &world, -1);
|
||||
}
|
||||
|
||||
g_list_free(first_path);
|
||||
return world;
|
||||
}
|
||||
|
||||
gboolean
|
||||
gm_worlds_list_dialog_find(GmWorld *world, GtkTreeIter *iter) {
|
||||
GtkTreeModel *model = gm_worlds_list_dialog_instance->model_worlds;
|
||||
GmWorld *list_world;
|
||||
void
|
||||
gm_worlds_list_dialog_connect_world() {
|
||||
GtkTreeView *tree_view = GTK_TREE_VIEW(
|
||||
gm_worlds_list_dialog_widget("tree_view_worlds"));
|
||||
GtkTreeModel *model = gm_worlds_view_model(GM_WORLDS_VIEW(tree_view));
|
||||
GList *first_path = gm_worlds_list_dialog_selected_path();
|
||||
GList *path;
|
||||
GmWorld *world;
|
||||
GtkTreeIter iter;
|
||||
|
||||
if (gtk_tree_model_get_iter_first(model, iter)) {
|
||||
do {
|
||||
gtk_tree_model_get(model, iter, WORLD_COLUMN, &list_world, -1);
|
||||
|
||||
if (world == list_world) {
|
||||
return TRUE;
|
||||
}
|
||||
} while (gtk_tree_model_iter_next(model, iter));
|
||||
if (first_path) {
|
||||
for (path = first_path; path; path = path->next) {
|
||||
gtk_tree_model_get_iter(model, &iter, first_path->data);
|
||||
gtk_tree_model_get(model, &iter, GM_WORLDS_VIEW_WORLD_COLUMN,
|
||||
&world, -1);
|
||||
gm_world_load(world);
|
||||
}
|
||||
} else {
|
||||
gm_error_dialog(
|
||||
_("You first need to select a world to connect to."),
|
||||
GTK_WINDOW(gm_worlds_list_dialog_instance->dialog));
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
|
||||
g_list_free(first_path);
|
||||
}
|
||||
|
||||
// Callbacks
|
||||
|
||||
void
|
||||
on_gm_worlds_list_dialog_response(GtkDialog *dialog, gint response,
|
||||
gpointer user_data) {
|
||||
GList *worlds = gm_app_worlds(gm_app_instance());
|
||||
GList *item;
|
||||
GmWorld *world;
|
||||
|
||||
for (item = worlds; item; item = item->next) {
|
||||
world = (GmWorld *)(item->data);
|
||||
|
||||
g_signal_handlers_disconnect_by_func(gm_world_options(world),
|
||||
G_CALLBACK(on_gm_worlds_list_dialog_world_option_changed), world);
|
||||
}
|
||||
|
||||
g_list_free(worlds);
|
||||
|
||||
gpointer user_data) {
|
||||
g_object_unref(gm_worlds_list_dialog_instance->xml);
|
||||
gtk_widget_destroy(gm_worlds_list_dialog_instance->dialog);
|
||||
g_free(gm_worlds_list_dialog_instance);
|
||||
|
@ -383,6 +294,13 @@ on_gm_worlds_list_dialog_tree_view_worlds_key_press(GtkWidget *widget,
|
|||
}
|
||||
}
|
||||
|
||||
void
|
||||
on_gm_worlds_list_dialog_tree_view_worlds_row_activated(
|
||||
GtkTreeView *tree_view, GtkTreePath *path, GtkTreeViewColumn *column,
|
||||
gpointer user_data) {
|
||||
gm_worlds_list_dialog_modify_world();
|
||||
}
|
||||
|
||||
void
|
||||
on_gm_worlds_list_dialog_button_new_clicked(GtkButton *button,
|
||||
gpointer user_data) {
|
||||
|
@ -417,75 +335,5 @@ on_gm_worlds_list_dialog_button_duplicate_clicked(GtkButton *button,
|
|||
void
|
||||
on_gm_worlds_list_dialog_button_connect_clicked(GtkButton *button,
|
||||
gpointer user_data) {
|
||||
GList *first_path = gm_worlds_list_dialog_selected_path();
|
||||
GList *path;
|
||||
GmWorld *world;
|
||||
GtkTreeIter iter;
|
||||
|
||||
if (first_path) {
|
||||
for (path = first_path; path; path = path->next) {
|
||||
gtk_tree_model_get_iter(
|
||||
gm_worlds_list_dialog_instance->model_worlds, &iter,
|
||||
first_path->data);
|
||||
gtk_tree_model_get(gm_worlds_list_dialog_instance->model_worlds,
|
||||
&iter, WORLD_COLUMN, &world, -1);
|
||||
gm_world_load(world);
|
||||
}
|
||||
} else {
|
||||
gm_error_dialog(
|
||||
_("You first need to select a world to connect to."),
|
||||
GTK_WINDOW(gm_worlds_list_dialog_instance->dialog));
|
||||
}
|
||||
|
||||
g_list_free(first_path);
|
||||
}
|
||||
|
||||
void
|
||||
on_gm_worlds_list_dialog_app_world_added(GmApp *app, GmWorld *world,
|
||||
gpointer user_data) {
|
||||
gm_worlds_list_dialog_add_world(world);
|
||||
}
|
||||
|
||||
void
|
||||
on_gm_worlds_list_dialog_app_world_removed(GmApp *app, GmWorld *world,
|
||||
gpointer user_data) {
|
||||
GtkTreeIter iter;
|
||||
|
||||
if (gm_worlds_list_dialog_find(world, &iter)) {
|
||||
gtk_list_store_remove(GTK_LIST_STORE(
|
||||
gm_worlds_list_dialog_instance->model_worlds), &iter);
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
on_gm_worlds_list_dialog_world_option_changed(GmOptions *options,
|
||||
const gchar *key, GmWorld *world) {
|
||||
GtkTreeIter iter;
|
||||
GtkListStore *store =
|
||||
GTK_LIST_STORE(gm_worlds_list_dialog_instance->model_worlds);
|
||||
gchar *text;
|
||||
const gchar *logo;
|
||||
GdkPixbuf *pix_logo;
|
||||
|
||||
if (!gm_worlds_list_dialog_find(world, &iter)) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (strcmp(key, "name") == 0 ||
|
||||
strcmp(key, "player_name") == 0 ||
|
||||
strcmp(key, "host") == 0) {
|
||||
text = gm_worlds_list_dialog_world_text(world);
|
||||
gtk_list_store_set(store, &iter, NAME_COLUMN, text, -1);
|
||||
g_free(text);
|
||||
} else if (strcmp(key, "logo")) {
|
||||
logo = gm_options_get(options, "logo");
|
||||
|
||||
if (logo) {
|
||||
pix_logo = gm_pixbuf_get_at_size(logo, 32, 32);
|
||||
} else {
|
||||
pix_logo = gm_pixbuf_get_at_size("world.svg", 32, 32);
|
||||
}
|
||||
|
||||
gtk_list_store_set(store, &iter, LOGO_COLUMN, pix_logo, -1);
|
||||
}
|
||||
gm_worlds_list_dialog_connect_world();
|
||||
}
|
||||
|
|
Reference in New Issue