From 039d6c1bce02ff7c7aba3bb5ad4dc05cf67b969f Mon Sep 17 00:00:00 2001 From: Nick Bowler Date: Sun, 7 Feb 2010 22:14:39 -0500 Subject: [PATCH] lbxgui: Add support for external palettes. --- src/gui/lbxgui.c | 35 ++++++++++++++++++++++++++++++++--- src/gui/lbxgui.glade | 44 ++++++++++++++++++++++++++++++++++++-------- 2 files changed, 68 insertions(+), 11 deletions(-) diff --git a/src/gui/lbxgui.c b/src/gui/lbxgui.c index 33dfdd8..650f263 100644 --- a/src/gui/lbxgui.c +++ b/src/gui/lbxgui.c @@ -169,7 +169,7 @@ gboolean canvas_expose(GtkWidget *canvas, GdkEventExpose *event, gpointer data) return TRUE; } -static int init_framedata(void) +static int init_framedata(int reset) { struct lbx_imginfo info; GtkSpinButton *spin; @@ -197,6 +197,31 @@ static int img_close(void *handle) return 0; } +void set_palette_data(GtkComboBox *combo) +{ + GtkTreeIter iter; + gpointer lbx; + guint index; + LBXfile *f; + + if (!gtk_combo_box_get_active_iter(combo, &iter)) + return; + + gtk_tree_model_get(GTK_TREE_MODEL(archives), &iter, + 1, &lbx, + 2, &index, + -1); + + f = lbx_file_open(lbx, index); + if (f) { + if (lbximg_loadpalette(f, &lbx_arch_fops, palette_external)) + memset(palette_external, 0, sizeof palette_external); + lbx_file_close(f); + } + + init_framedata(0); +} + void set_image_data(GtkComboBox *combo) { GtkTreeIter iter; @@ -224,7 +249,7 @@ void set_image_data(GtkComboBox *combo) lbximg_close(image); } - if (init_framedata() == -1) { + if (init_framedata(1) == -1) { puts("crap"); lbximg_close(image); } @@ -356,6 +381,10 @@ static void interface_init(void) gtk_tree_view_set_model(tree, GTK_TREE_MODEL(archives)); gtk_tree_view_append_column(tree, column); + combo = GTK_COMBO_BOX(gtk_builder_get_object(builder, "palettechooser")); + gtk_combo_box_set_model(combo, GTK_TREE_MODEL(archives)); + gtk_combo_box_entry_set_text_column(GTK_COMBO_BOX_ENTRY(combo), 0); + combo = GTK_COMBO_BOX(gtk_builder_get_object(builder, "imagechooser")); gtk_combo_box_set_model(combo, GTK_TREE_MODEL(archives)); gtk_combo_box_entry_set_text_column(GTK_COMBO_BOX_ENTRY(combo), 0); @@ -388,7 +417,7 @@ int main(int argc, char **argv) interface_init(); gtk_builder_connect_signals(builder, window); - g_timeout_add(33, timeout, NULL); + g_timeout_add(10, timeout, NULL); gtk_widget_show_all(window); gtk_main(); } diff --git a/src/gui/lbxgui.glade b/src/gui/lbxgui.glade index 510098b..53e5ce2 100644 --- a/src/gui/lbxgui.glade +++ b/src/gui/lbxgui.glade @@ -104,6 +104,27 @@ True + + + True + 1 + 4 + Palette: + + + 0 + + + + + True + + + + False + 1 + + True @@ -113,7 +134,7 @@ False - 0 + 2 @@ -124,7 +145,7 @@ False 3 - 1 + 3 @@ -135,7 +156,7 @@ Frame: - 2 + 4 @@ -148,7 +169,7 @@ False - 3 + 5 @@ -167,12 +188,13 @@ False 3 - 4 + 6 False + 3 0 @@ -180,11 +202,17 @@ True queue - etched-in - + True - + 0 + 0 + + + True + + + -- 2.43.2