Commit 7c3b4559 authored by Simon Budig's avatar Simon Budig Committed by Simon Budig

"The last of the Oldenburg commits"

2003-09-28  Simon Budig  <simon@gimp.org>

	"The last of the Oldenburg commits"

	Thanks to the team of the Oldenburg Linux Developers Meeting 2003
	for providing a nice hacking environment.

	* app/vectors/gimpvectors.c: Add a default stock_id.

	* app/widgets/gimppreviewrenderervectors.[ch]: New Widget
	to render the preview of vectors. Just renders a stock item
	now, since I was unable to figure out how to properly draw
	in the GtkWidget.

	* app/widgets/Makefile.am
	* app/widgets/widgets-types.h: Changed accordingly.

	* app/widgets/gimppreviewrenderer-utils.c: Use the new widget.

	* app/core/gimpscanconvert.c
	* app/core/gimpdrawable-stroke.c: Use higher prescision for
	libart-stroking vectors. Reduces artefacts.

	* app/pdb/paths_cmds.c
	* libgimp/gimppaths_pdb.c: Regenerated after Tors changes.
parent 9bbb61d9
2003-09-28 Simon Budig <simon@gimp.org>
"The last of the Oldenburg commits"
Thanks to the team of the Oldenburg Linux Developers Meeting 2003
for providing a nice hacking environment.
* app/vectors/gimpvectors.c: Add a default stock_id.
* app/widgets/gimppreviewrenderervectors.[ch]: New Widget
to render the preview of vectors. Just renders a stock item
now, since I was unable to figure out how to properly draw
in the GtkWidget.
* app/widgets/Makefile.am
* app/widgets/widgets-types.h: Changed accordingly.
* app/widgets/gimppreviewrenderer-utils.c: Use the new widget.
* app/core/gimpscanconvert.c
* app/core/gimpdrawable-stroke.c: Use higher prescision for
libart-stroking vectors. Reduces artefacts.
* app/pdb/paths_cmds.c
* libgimp/gimppaths_pdb.c: Regenerated after Tors changes.
2003-09-28 Tor Lillqvist <tml@iki.fi>
* tools/pdbgen/pdb/paths.pdb: Fix some documentation strings.
......@@ -125,7 +125,7 @@ gimp_drawable_stroke_vectors (GimpDrawable *drawable,
/* Get the interpolated version of this stroke, and add it to our
* scanconvert.
*/
coords = gimp_stroke_interpolate (stroke, 1, &closed);
coords = gimp_stroke_interpolate (stroke, 0.2, &closed);
if (coords && coords->len)
{
......@@ -151,11 +151,6 @@ gimp_drawable_stroke_vectors (GimpDrawable *drawable,
return;
}
/*
dash_array = g_array_sized_new (FALSE, FALSE, sizeof (gdouble), dashes_len);
dash_array = g_array_prepend_vals (dash_array, &dashes, dashes_len);
*/
gimp_scan_convert_stroke (scan_convert, width, join, cap, 10.0,
0.0, dash_array);
......
......@@ -313,7 +313,7 @@ gimp_scan_convert_stroke (GimpScanConvert *sc,
}
stroke = art_svp_vpath_stroke (sc->vpath, artjoin, artcap,
width, miter, 1.0);
width, miter, 0.2);
sc->svp = stroke;
}
......
......@@ -182,7 +182,7 @@ static ProcArg path_get_current_inargs[] =
{
GIMP_PDB_IMAGE,
"image",
"The ID of the image to get the current paths from"
"The ID of the image to get the current path from"
}
};
......@@ -258,7 +258,7 @@ static ProcArg path_set_current_inargs[] =
static ProcRecord path_set_current_proc =
{
"gimp_path_set_current",
"List the paths associated with the passed image.",
"Sets the current path associated with the passed image.",
"List the paths associated with the passed image.",
"Andy Thomas",
"Andy Thomas",
......@@ -318,7 +318,7 @@ static ProcArg path_delete_inargs[] =
static ProcRecord path_delete_proc =
{
"gimp_path_delete",
"Delete the named paths associated with the passed image.",
"Delete the named path associated with the passed image.",
"Delete the named path.",
"Andy Thomas",
"Andy Thomas",
......@@ -857,7 +857,7 @@ static ProcArg path_set_tattoo_inargs[] =
static ProcRecord path_set_tattoo_proc =
{
"gimp_path_set_tattoo",
"Sets the tattoo associated with the name path.",
"Sets the tattoo associated with the named path.",
"This procedure sets the tattoo associated with the specified path. A tattoo is a unique and permenant identifier attached to a path that can be used to uniquely identify a path within an image even between sessions. Note that the value passed to this function must have been obtained from a previous call to path_get_tattoo.",
"Andy Thomas",
"Andy Thomas",
......@@ -1007,7 +1007,7 @@ static ProcArg path_get_locked_outargs[] =
static ProcRecord path_get_locked_proc =
{
"gimp_path_get_locked",
"Returns the locked status associated with the name path.",
"Returns the locked status associated with the named path.",
"This procedure returns the lock status associated with the specified path. A path can be \"locked\" which means that the transformation tool operations will also apply to the path.",
"Andy Thomas",
"Andy Thomas",
......@@ -1075,7 +1075,7 @@ static ProcArg path_set_locked_inargs[] =
static ProcRecord path_set_locked_proc =
{
"gimp_path_set_locked",
"Set the locked status associated with the name path.",
"Set the locked status associated with the named path.",
"This procedure sets the lock status associated with the specified path. A path can be \"locked\" which means that the transformation tool operations will also apply to the path.",
"Andy Thomas",
"Andy Thomas",
......
......@@ -203,41 +203,42 @@ gimp_vectors_class_init (GimpVectorsClass *klass)
gimp_marshal_VOID__VOID,
G_TYPE_NONE, 0);
object_class->finalize = gimp_vectors_finalize;
gimp_object_class->get_memsize = gimp_vectors_get_memsize;
viewable_class->get_new_preview = gimp_vectors_get_new_preview;
item_class->duplicate = gimp_vectors_duplicate;
item_class->convert = gimp_vectors_convert;
item_class->translate = gimp_vectors_translate;
item_class->scale = gimp_vectors_scale;
item_class->resize = gimp_vectors_resize;
item_class->flip = gimp_vectors_flip;
item_class->rotate = gimp_vectors_rotate;
item_class->transform = gimp_vectors_transform;
item_class->stroke = gimp_vectors_stroke;
item_class->default_name = _("Path");
item_class->rename_desc = _("Rename Path");
klass->freeze = NULL;
klass->thaw = gimp_vectors_real_thaw;
klass->stroke_add = gimp_vectors_real_stroke_add;
klass->stroke_remove = gimp_vectors_real_stroke_remove;
klass->stroke_get = gimp_vectors_real_stroke_get;
klass->stroke_get_next = gimp_vectors_real_stroke_get_next;
klass->stroke_get_length = gimp_vectors_real_stroke_get_length;
klass->anchor_get = gimp_vectors_real_anchor_get;
klass->anchor_delete = gimp_vectors_real_anchor_delete;
klass->get_length = gimp_vectors_real_get_length;
klass->get_distance = gimp_vectors_real_get_distance;
klass->interpolate = gimp_vectors_real_interpolate;
klass->make_bezier = gimp_vectors_real_make_bezier;
object_class->finalize = gimp_vectors_finalize;
gimp_object_class->get_memsize = gimp_vectors_get_memsize;
viewable_class->get_new_preview = gimp_vectors_get_new_preview;
viewable_class->default_stock_id = "gimp-path";
item_class->duplicate = gimp_vectors_duplicate;
item_class->convert = gimp_vectors_convert;
item_class->translate = gimp_vectors_translate;
item_class->scale = gimp_vectors_scale;
item_class->resize = gimp_vectors_resize;
item_class->flip = gimp_vectors_flip;
item_class->rotate = gimp_vectors_rotate;
item_class->transform = gimp_vectors_transform;
item_class->stroke = gimp_vectors_stroke;
item_class->default_name = _("Path");
item_class->rename_desc = _("Rename Path");
klass->freeze = NULL;
klass->thaw = gimp_vectors_real_thaw;
klass->stroke_add = gimp_vectors_real_stroke_add;
klass->stroke_remove = gimp_vectors_real_stroke_remove;
klass->stroke_get = gimp_vectors_real_stroke_get;
klass->stroke_get_next = gimp_vectors_real_stroke_get_next;
klass->stroke_get_length = gimp_vectors_real_stroke_get_length;
klass->anchor_get = gimp_vectors_real_anchor_get;
klass->anchor_delete = gimp_vectors_real_anchor_delete;
klass->get_length = gimp_vectors_real_get_length;
klass->get_distance = gimp_vectors_real_get_distance;
klass->interpolate = gimp_vectors_real_interpolate;
klass->make_bezier = gimp_vectors_real_make_bezier;
}
static void
......
......@@ -140,6 +140,8 @@ libappwidgets_a_sources = \
gimppreviewrendererimage.h \
gimppreviewrendererlayer.c \
gimppreviewrendererlayer.h \
gimppreviewrenderervectors.c \
gimppreviewrenderervectors.h \
gimppropwidgets.c \
gimppropwidgets.h \
gimpselectioneditor.c \
......
......@@ -30,11 +30,13 @@
#include "core/gimpgradient.h"
#include "core/gimpimage.h"
#include "text/gimptextlayer.h"
#include "vectors/gimpvectors.h"
#include "gimppreviewrendererbrush.h"
#include "gimppreviewrendererlayer.h"
#include "gimppreviewrenderergradient.h"
#include "gimppreviewrendererimage.h"
#include "gimppreviewrenderervectors.h"
GType
......@@ -65,6 +67,10 @@ gimp_preview_renderer_type_from_viewable_type (GType viewable_type)
{
type = GIMP_TYPE_PREVIEW_RENDERER_GRADIENT;
}
else if (g_type_is_a (viewable_type, GIMP_TYPE_VECTORS))
{
type = GIMP_TYPE_PREVIEW_RENDERER_VECTORS;
}
return type;
}
/* The GIMP -- an image manipulation program
* Copyright (C) 1995 Spencer Kimball and Peter Mattis
*
* gimppreviewrenderervectors.c
* Copyright (C) 2003 Michael Natterer <mitch@gimp.org>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
#include "config.h"
#include <gtk/gtk.h>
#include "libgimpwidgets/gimpwidgets.h"
#include "widgets-types.h"
#include "vectors/gimpvectors.h"
#include "gimppreviewrenderervectors.h"
static void gimp_preview_renderer_vectors_class_init (GimpPreviewRendererVectorsClass *klass);
static void gimp_preview_renderer_vectors_render (GimpPreviewRenderer *renderer,
GtkWidget *widget);
static GimpPreviewRendererClass *parent_class = NULL;
GType
gimp_preview_renderer_vectors_get_type (void)
{
static GType renderer_type = 0;
if (! renderer_type)
{
static const GTypeInfo renderer_info =
{
sizeof (GimpPreviewRendererVectorsClass),
NULL, /* base_init */
NULL, /* base_finalize */
(GClassInitFunc) gimp_preview_renderer_vectors_class_init,
NULL, /* class_finalize */
NULL, /* class_data */
sizeof (GimpPreviewRendererVectors),
0, /* n_preallocs */
NULL, /* instance_init */
};
renderer_type = g_type_register_static (GIMP_TYPE_PREVIEW_RENDERER,
"GimpPreviewRendererVectors",
&renderer_info, 0);
}
return renderer_type;
}
static void
gimp_preview_renderer_vectors_class_init (GimpPreviewRendererVectorsClass *klass)
{
GimpPreviewRendererClass *renderer_class;
renderer_class = GIMP_PREVIEW_RENDERER_CLASS (klass);
parent_class = g_type_class_peek_parent (klass);
renderer_class->render = gimp_preview_renderer_vectors_render;
}
static void
gimp_preview_renderer_vectors_render (GimpPreviewRenderer *renderer,
GtkWidget *widget)
{
const gchar *stock_id = NULL;
if (GIMP_IS_VECTORS (renderer->viewable))
{
stock_id = gimp_viewable_get_stock_id (renderer->viewable);
}
if (stock_id)
gimp_preview_renderer_default_render_stock (renderer, widget, stock_id);
else
GIMP_PREVIEW_RENDERER_CLASS (parent_class)->render (renderer, widget);
}
/* The GIMP -- an image manipulation program
* Copyright (C) 1995 Spencer Kimball and Peter Mattis
*
* gimppreviewrenderervectors.h
* Copyright (C) 2003 Michael Natterer <mitch@gimp.org>
* Simon Budig <simon@gimp.org>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
#ifndef __GIMP_PREVIEW_RENDERER_VECTORS_H__
#define __GIMP_PREVIEW_RENDERER_VECTORS_H__
#include "gimppreviewrendererdrawable.h"
#define GIMP_TYPE_PREVIEW_RENDERER_VECTORS (gimp_preview_renderer_vectors_get_type ())
#define GIMP_PREVIEW_RENDERER_VECTORS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GIMP_TYPE_PREVIEW_RENDERER_VECTORS, GimpPreviewRendererVectors))
#define GIMP_PREVIEW_RENDERER_VECTORS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GIMP_TYPE_PREVIEW_RENDERER_VECTORS, GimpPreviewRendererVectorsClass))
#define GIMP_IS_PREVIEW_RENDERER_VECTORS(obj) (G_TYPE_CHECK_INSTANCE_TYPE (obj, GIMP_TYPE_PREVIEW_RENDERER_VECTORS))
#define GIMP_IS_PREVIEW_RENDERER_VECTORS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GIMP_TYPE_PREVIEW_RENDERER_VECTORS))
#define GIMP_PREVIEW_RENDERER_VECTORS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GIMP_TYPE_PREVIEW_RENDERER_VECTORS, GimpPreviewRendererVectorsClass))
typedef struct _GimpPreviewRendererVectorsClass GimpPreviewRendererVectorsClass;
struct _GimpPreviewRendererVectors
{
GimpPreviewRendererDrawable parent_instance;
};
struct _GimpPreviewRendererVectorsClass
{
GimpPreviewRendererDrawableClass parent_class;
};
GType gimp_preview_renderer_vectors_get_type (void) G_GNUC_CONST;
#endif /* __GIMP_PREVIEW_RENDERER_VECTORS_H__ */
......@@ -30,11 +30,13 @@
#include "core/gimpgradient.h"
#include "core/gimpimage.h"
#include "text/gimptextlayer.h"
#include "vectors/gimpvectors.h"
#include "gimppreviewrendererbrush.h"
#include "gimppreviewrendererlayer.h"
#include "gimppreviewrenderergradient.h"
#include "gimppreviewrendererimage.h"
#include "gimppreviewrenderervectors.h"
GType
......@@ -65,6 +67,10 @@ gimp_preview_renderer_type_from_viewable_type (GType viewable_type)
{
type = GIMP_TYPE_PREVIEW_RENDERER_GRADIENT;
}
else if (g_type_is_a (viewable_type, GIMP_TYPE_VECTORS))
{
type = GIMP_TYPE_PREVIEW_RENDERER_VECTORS;
}
return type;
}
/* The GIMP -- an image manipulation program
* Copyright (C) 1995 Spencer Kimball and Peter Mattis
*
* gimppreviewrenderervectors.c
* Copyright (C) 2003 Michael Natterer <mitch@gimp.org>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
#include "config.h"
#include <gtk/gtk.h>
#include "libgimpwidgets/gimpwidgets.h"
#include "widgets-types.h"
#include "vectors/gimpvectors.h"
#include "gimppreviewrenderervectors.h"
static void gimp_preview_renderer_vectors_class_init (GimpPreviewRendererVectorsClass *klass);
static void gimp_preview_renderer_vectors_render (GimpPreviewRenderer *renderer,
GtkWidget *widget);
static GimpPreviewRendererClass *parent_class = NULL;
GType
gimp_preview_renderer_vectors_get_type (void)
{
static GType renderer_type = 0;
if (! renderer_type)
{
static const GTypeInfo renderer_info =
{
sizeof (GimpPreviewRendererVectorsClass),
NULL, /* base_init */
NULL, /* base_finalize */
(GClassInitFunc) gimp_preview_renderer_vectors_class_init,
NULL, /* class_finalize */
NULL, /* class_data */
sizeof (GimpPreviewRendererVectors),
0, /* n_preallocs */
NULL, /* instance_init */
};
renderer_type = g_type_register_static (GIMP_TYPE_PREVIEW_RENDERER,
"GimpPreviewRendererVectors",
&renderer_info, 0);
}
return renderer_type;
}
static void
gimp_preview_renderer_vectors_class_init (GimpPreviewRendererVectorsClass *klass)
{
GimpPreviewRendererClass *renderer_class;
renderer_class = GIMP_PREVIEW_RENDERER_CLASS (klass);
parent_class = g_type_class_peek_parent (klass);
renderer_class->render = gimp_preview_renderer_vectors_render;
}
static void
gimp_preview_renderer_vectors_render (GimpPreviewRenderer *renderer,
GtkWidget *widget)
{
const gchar *stock_id = NULL;
if (GIMP_IS_VECTORS (renderer->viewable))
{
stock_id = gimp_viewable_get_stock_id (renderer->viewable);
}
if (stock_id)
gimp_preview_renderer_default_render_stock (renderer, widget, stock_id);
else
GIMP_PREVIEW_RENDERER_CLASS (parent_class)->render (renderer, widget);
}
/* The GIMP -- an image manipulation program
* Copyright (C) 1995 Spencer Kimball and Peter Mattis
*
* gimppreviewrenderervectors.h
* Copyright (C) 2003 Michael Natterer <mitch@gimp.org>
* Simon Budig <simon@gimp.org>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
#ifndef __GIMP_PREVIEW_RENDERER_VECTORS_H__
#define __GIMP_PREVIEW_RENDERER_VECTORS_H__
#include "gimppreviewrendererdrawable.h"
#define GIMP_TYPE_PREVIEW_RENDERER_VECTORS (gimp_preview_renderer_vectors_get_type ())
#define GIMP_PREVIEW_RENDERER_VECTORS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GIMP_TYPE_PREVIEW_RENDERER_VECTORS, GimpPreviewRendererVectors))
#define GIMP_PREVIEW_RENDERER_VECTORS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GIMP_TYPE_PREVIEW_RENDERER_VECTORS, GimpPreviewRendererVectorsClass))
#define GIMP_IS_PREVIEW_RENDERER_VECTORS(obj) (G_TYPE_CHECK_INSTANCE_TYPE (obj, GIMP_TYPE_PREVIEW_RENDERER_VECTORS))
#define GIMP_IS_PREVIEW_RENDERER_VECTORS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GIMP_TYPE_PREVIEW_RENDERER_VECTORS))
#define GIMP_PREVIEW_RENDERER_VECTORS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GIMP_TYPE_PREVIEW_RENDERER_VECTORS, GimpPreviewRendererVectorsClass))
typedef struct _GimpPreviewRendererVectorsClass GimpPreviewRendererVectorsClass;
struct _GimpPreviewRendererVectors
{
GimpPreviewRendererDrawable parent_instance;
};
struct _GimpPreviewRendererVectorsClass
{
GimpPreviewRendererDrawableClass parent_class;
};
GType gimp_preview_renderer_vectors_get_type (void) G_GNUC_CONST;
#endif /* __GIMP_PREVIEW_RENDERER_VECTORS_H__ */
......@@ -43,6 +43,7 @@ typedef struct _GimpPreviewRendererDrawable GimpPreviewRendererDrawable;
typedef struct _GimpPreviewRendererGradient GimpPreviewRendererGradient;
typedef struct _GimpPreviewRendererLayer GimpPreviewRendererLayer;
typedef struct _GimpPreviewRendererImage GimpPreviewRendererImage;
typedef struct _GimpPreviewRendererVectors GimpPreviewRendererVectors;
/* widgets */
......
......@@ -69,7 +69,7 @@ gimp_path_list (gint32 image_ID,
/**
* gimp_path_get_current:
* @image_ID: The ID of the image to get the current paths from.
* @image_ID: The ID of the image to get the current path from.
*
* The name of the current path. Error if no paths.
*
......@@ -102,7 +102,7 @@ gimp_path_get_current (gint32 image_ID)
* @image_ID: The ID of the image to list set the paths in.
* @name: The name of the path to set the current path to.
*
* List the paths associated with the passed image.
* Sets the current path associated with the passed image.
*
* List the paths associated with the passed image.
*
......@@ -134,7 +134,7 @@ gimp_path_set_current (gint32 image_ID,
* @image_ID: The ID of the image to list delete the paths from.
* @name: The name of the path to delete.
*
* Delete the named paths associated with the passed image.
* Delete the named path associated with the passed image.
*
* Delete the named path.
*
......@@ -367,7 +367,7 @@ gimp_path_get_tattoo (gint32 image_ID,
* @name: the name of the path whose tattoo should be set.
* @tattovalue: The tattoo associated with the name path. Only values returned from 'path_get_tattoo' should be used here.
*
* Sets the tattoo associated with the name path.
* Sets the tattoo associated with the named path.
*
* This procedure sets the tattoo associated with the specified path. A
* tattoo is a unique and permenant identifier attached to a path that
......@@ -442,7 +442,7 @@ gimp_get_path_by_tattoo (gint32 image_ID,
* @image_ID: The image.
* @name: the name of the path whose locked status should be obtained.
*
* Returns the locked status associated with the name path.
* Returns the locked status associated with the named path.
*
* This procedure returns the lock status associated with the specified
* path. A path can be \"locked\" which means that the transformation
......@@ -478,7 +478,7 @@ gimp_path_get_locked (gint32 image_ID,
* @name: the name of the path whose locked status should be set.
* @lockstatus: The lock status associated with the name path. 0 if the path is not locked. 1 if the path is to be locked.
*
* Set the locked status associated with the name path.
* Set the locked status associated with the named path.
*
* This procedure sets the lock status associated with the specified
* path. A path can be \"locked\" which means that the transformation
......
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