static void do_texture_press () { gimp_image_delete (preview_image); preview_image = gimp_image_duplicate(image_ID); border (preview_image); preview_update (preview); }
static void preview_set_property (GObject *object, guint property_id, const GValue *value, GParamSpec *pspec) { Preview *preview = PREVIEW (object); GSCHEM_TOPLEVEL *preview_w_current = preview->preview_w_current; g_assert (preview_w_current != NULL); switch(property_id) { case PROP_FILENAME: if (preview->buffer != NULL) { g_free (preview->buffer); preview->buffer = NULL; g_object_notify (object, "buffer"); } g_free (preview->filename); preview->filename = g_strdup (g_value_get_string (value)); preview_update (preview); break; case PROP_BUFFER: if (preview->filename != NULL) { g_free (preview->filename); preview->filename = NULL; g_object_notify (object, "filename"); } g_free (preview->buffer); preview->buffer = g_strdup (g_value_get_string (value)); preview_update (preview); break; case PROP_ACTIVE: preview->active = g_value_get_boolean (value); preview_update (preview); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); } }
static gboolean border_dialog (gint32 image_ID, GimpDrawable *drawable) { GtkWidget *dialog; GtkWidget *main_hbox; GtkWidget *middle_vbox; GtkWidget *right_vbox; GtkWidget *label; gboolean run; gimp_ui_init (PLUG_IN_BINARY, FALSE); dialog = gimp_dialog_new ("Simple Border", PLUG_IN_ROLE, NULL, 0, gimp_standard_help_func, PLUG_IN_PROC, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_OK, GTK_RESPONSE_OK, NULL); gimp_window_set_transient (GTK_WINDOW (dialog)); gtk_widget_show (dialog); main_hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 12); gtk_container_set_border_width (GTK_CONTAINER (main_hbox), 12); gtk_box_pack_start (GTK_BOX (gtk_dialog_get_content_area (GTK_DIALOG (dialog))), main_hbox, TRUE, TRUE, 0); gtk_widget_show (main_hbox); middle_vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 12); gtk_container_set_border_width (GTK_CONTAINER (middle_vbox), 12); gtk_box_pack_start (GTK_BOX (main_hbox), middle_vbox, TRUE, TRUE, 0); gtk_widget_show (middle_vbox); right_vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 12); gtk_container_set_border_width (GTK_CONTAINER (right_vbox), 12); gtk_widget_set_size_request (right_vbox, 320, -1); gtk_box_pack_start (GTK_BOX (main_hbox), right_vbox, TRUE, TRUE, 0); gtk_widget_show (right_vbox); /* preview */ label = gtk_label_new ("Preview"); gtk_box_pack_start (GTK_BOX (middle_vbox), label, FALSE, FALSE, 0); gtk_widget_show (label); preview_image = gimp_image_duplicate(image_ID); preview = gtk_image_new(); preview_update (preview); gtk_box_pack_start (GTK_BOX (middle_vbox), preview, TRUE, TRUE, 0); gtk_widget_show (preview); /* textures */ label = gtk_label_new ("Textures"); gtk_box_pack_start (GTK_BOX (right_vbox), label, FALSE, FALSE, 0); gtk_widget_show (label); GtkWidget *notebook = gtk_notebook_new (); gtk_box_pack_start (GTK_BOX (right_vbox), notebook, FALSE, FALSE, 0); gtk_notebook_set_scrollable (GTK_NOTEBOOK (notebook), TRUE); gtk_widget_show (notebook); create_texture_page (GTK_NOTEBOOK (notebook), "Top", textures, G_N_ELEMENTS (textures)); run = (gimp_dialog_run (GIMP_DIALOG (dialog)) == GTK_RESPONSE_OK); gtk_widget_destroy (dialog); return run; }