Commit 72bcb72c authored by Michael Natterer's avatar Michael Natterer 😴
Browse files

app: rename gimp_template_create_image() to gimp_image_new_from_template()

and move it from gimptemplate.c to gimpimage-new.c
parent 9dd373d8
...@@ -91,7 +91,7 @@ templates_create_image_cmd_callback (GtkAction *action, ...@@ -91,7 +91,7 @@ templates_create_image_cmd_callback (GtkAction *action,
if (template && gimp_container_have (container, GIMP_OBJECT (template))) if (template && gimp_container_have (container, GIMP_OBJECT (template)))
{ {
gimp_template_create_image (gimp, template, context); gimp_image_new_from_template (gimp, template, context);
gimp_image_new_set_last_template (gimp, template); gimp_image_new_set_last_template (gimp, template);
} }
} }
......
...@@ -31,6 +31,7 @@ ...@@ -31,6 +31,7 @@
#include "gimp.h" #include "gimp.h"
#include "gimpbuffer.h" #include "gimpbuffer.h"
#include "gimpchannel.h" #include "gimpchannel.h"
#include "gimpcontext.h"
#include "gimpimage.h" #include "gimpimage.h"
#include "gimpimage-colormap.h" #include "gimpimage-colormap.h"
#include "gimpimage-new.h" #include "gimpimage-new.h"
...@@ -78,6 +79,77 @@ gimp_image_new_set_last_template (Gimp *gimp, ...@@ -78,6 +79,77 @@ gimp_image_new_set_last_template (Gimp *gimp,
G_OBJECT (gimp->image_new_last_template), 0); G_OBJECT (gimp->image_new_last_template), 0);
} }
GimpImage *
gimp_image_new_from_template (Gimp *gimp,
GimpTemplate *template,
GimpContext *context)
{
GimpImage *image;
GimpLayer *layer;
GimpImageType type;
gint width, height;
g_return_val_if_fail (GIMP_IS_GIMP (gimp), NULL);
g_return_val_if_fail (GIMP_IS_TEMPLATE (template), NULL);
g_return_val_if_fail (GIMP_IS_CONTEXT (context), NULL);
image = gimp_create_image (gimp,
template->width, template->height,
template->image_type,
FALSE);
gimp_image_undo_disable (image);
if (template->comment)
{
GimpParasite *parasite;
parasite = gimp_parasite_new ("gimp-comment",
GIMP_PARASITE_PERSISTENT,
strlen (template->comment) + 1,
template->comment);
gimp_image_parasite_attach (image, parasite);
gimp_parasite_free (parasite);
}
gimp_image_set_resolution (image,
template->xresolution, template->yresolution);
gimp_image_set_unit (image, template->resolution_unit);
width = gimp_image_get_width (image);
height = gimp_image_get_height (image);
switch (template->fill_type)
{
case GIMP_TRANSPARENT_FILL:
type = ((template->image_type == GIMP_RGB) ?
GIMP_RGBA_IMAGE : GIMP_GRAYA_IMAGE);
break;
default:
type = ((template->image_type == GIMP_RGB) ?
GIMP_RGB_IMAGE : GIMP_GRAY_IMAGE);
break;
}
layer = gimp_layer_new (image, width, height, type,
_("Background"),
GIMP_OPACITY_OPAQUE, GIMP_NORMAL_MODE);
gimp_drawable_fill_by_type (GIMP_DRAWABLE (layer),
context, template->fill_type);
gimp_image_add_layer (image, layer, NULL, 0, FALSE);
gimp_image_undo_enable (image);
gimp_image_clean_all (image);
gimp_create_display (gimp, image, template->unit, 1.0);
g_object_unref (image);
return image;
}
GimpImage * GimpImage *
gimp_image_new_from_drawable (Gimp *gimp, gimp_image_new_from_drawable (Gimp *gimp,
GimpDrawable *drawable) GimpDrawable *drawable)
......
...@@ -24,6 +24,9 @@ GimpTemplate * gimp_image_new_get_last_template (Gimp *gimp, ...@@ -24,6 +24,9 @@ GimpTemplate * gimp_image_new_get_last_template (Gimp *gimp,
void gimp_image_new_set_last_template (Gimp *gimp, void gimp_image_new_set_last_template (Gimp *gimp,
GimpTemplate *template); GimpTemplate *template);
GimpImage * gimp_image_new_from_template (Gimp *gimp,
GimpTemplate *template,
GimpContext *context);
GimpImage * gimp_image_new_from_drawable (Gimp *gimp, GimpImage * gimp_image_new_from_drawable (Gimp *gimp,
GimpDrawable *drawable); GimpDrawable *drawable);
GimpImage * gimp_image_new_from_component (Gimp *gimp, GimpImage * gimp_image_new_from_component (Gimp *gimp,
......
...@@ -20,8 +20,6 @@ ...@@ -20,8 +20,6 @@
#include "config.h" #include "config.h"
#include <string.h>
#include <gegl.h> #include <gegl.h>
#include "libgimpbase/gimpbase.h" #include "libgimpbase/gimpbase.h"
...@@ -29,11 +27,7 @@ ...@@ -29,11 +27,7 @@
#include "core-types.h" #include "core-types.h"
#include "gimp.h"
#include "gimpcontext.h"
#include "gimpimage.h" #include "gimpimage.h"
#include "gimpimage-undo.h"
#include "gimplayer.h"
#include "gimpprojection.h" #include "gimpprojection.h"
#include "gimptemplate.h" #include "gimptemplate.h"
...@@ -348,74 +342,3 @@ gimp_template_set_from_image (GimpTemplate *template, ...@@ -348,74 +342,3 @@ gimp_template_set_from_image (GimpTemplate *template,
if (comment) if (comment)
g_free (comment); g_free (comment);
} }
GimpImage *
gimp_template_create_image (Gimp *gimp,
GimpTemplate *template,
GimpContext *context)
{
GimpImage *image;
GimpLayer *layer;
GimpImageType type;
gint width, height;
g_return_val_if_fail (GIMP_IS_GIMP (gimp), NULL);
g_return_val_if_fail (GIMP_IS_TEMPLATE (template), NULL);
g_return_val_if_fail (GIMP_IS_CONTEXT (context), NULL);
image = gimp_create_image (gimp,
template->width, template->height,
template->image_type,
FALSE);
gimp_image_undo_disable (image);
if (template->comment)
{
GimpParasite *parasite;
parasite = gimp_parasite_new ("gimp-comment",
GIMP_PARASITE_PERSISTENT,
strlen (template->comment) + 1,
template->comment);
gimp_image_parasite_attach (image, parasite);
gimp_parasite_free (parasite);
}
gimp_image_set_resolution (image,
template->xresolution, template->yresolution);
gimp_image_set_unit (image, template->resolution_unit);
width = gimp_image_get_width (image);
height = gimp_image_get_height (image);
switch (template->fill_type)
{
case GIMP_TRANSPARENT_FILL:
type = ((template->image_type == GIMP_RGB) ?
GIMP_RGBA_IMAGE : GIMP_GRAYA_IMAGE);
break;
default:
type = ((template->image_type == GIMP_RGB) ?
GIMP_RGB_IMAGE : GIMP_GRAY_IMAGE);
break;
}
layer = gimp_layer_new (image, width, height, type,
_("Background"),
GIMP_OPACITY_OPAQUE, GIMP_NORMAL_MODE);
gimp_drawable_fill_by_type (GIMP_DRAWABLE (layer),
context, template->fill_type);
gimp_image_add_layer (image, layer, NULL, 0, FALSE);
gimp_image_undo_enable (image);
gimp_image_clean_all (image);
gimp_create_display (gimp, image, template->unit, 1.0);
g_object_unref (image);
return image;
}
...@@ -78,16 +78,12 @@ struct _GimpTemplateClass ...@@ -78,16 +78,12 @@ struct _GimpTemplateClass
}; };
GType gimp_template_get_type (void) G_GNUC_CONST; GType gimp_template_get_type (void) G_GNUC_CONST;
GimpTemplate * gimp_template_new (const gchar *name); GimpTemplate * gimp_template_new (const gchar *name);
void gimp_template_set_from_image (GimpTemplate *template, void gimp_template_set_from_image (GimpTemplate *template,
GimpImage *image); GimpImage *image);
GimpImage * gimp_template_create_image (Gimp *gimp,
GimpTemplate *template,
GimpContext *context);
#endif /* __GIMP_TEMPLATE__ */ #endif /* __GIMP_TEMPLATE__ */
...@@ -344,7 +344,7 @@ image_new_create_image (ImageNewDialog *dialog) ...@@ -344,7 +344,7 @@ image_new_create_image (ImageNewDialog *dialog)
gtk_widget_destroy (dialog->dialog); gtk_widget_destroy (dialog->dialog);
gimp_template_create_image (gimp, template, gimp_get_user_context (gimp)); gimp_image_new_from_template (gimp, template, gimp_get_user_context (gimp));
gimp_image_new_set_last_template (gimp, template); gimp_image_new_set_last_template (gimp, template);
g_object_unref (template); g_object_unref (template);
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment