Paul Davis
449aab3c46
git-svn-id: svn://localhost/ardour2/branches/3.0@3435 d708f5d6-7413-0410-9779-e7cbd77b26cf
285 lines
9.2 KiB
C++
285 lines
9.2 KiB
C++
// -*- c++ -*-
|
|
// Generated by gtkmmproc -- DO NOT MODIFY!
|
|
#ifndef _LIBGNOMECANVASMM_PATH_DEF_H
|
|
#define _LIBGNOMECANVASMM_PATH_DEF_H
|
|
|
|
#include <glibmm.h>
|
|
|
|
/* $Id$ */
|
|
|
|
/* path-def.h
|
|
*
|
|
*
|
|
* Copyright (C) 2002 The libgnomecanvasmm Development Team
|
|
*
|
|
* This library is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU Library General Public
|
|
* License as published by the Free Software Foundation; either
|
|
* version 2 of the License, or (at your option) any later version.
|
|
*
|
|
* This library 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
|
|
* Library General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU Library General Public
|
|
* License along with this library; if not, write to the Free
|
|
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
|
*/
|
|
|
|
#include <libgnomecanvasmm/point.h>
|
|
#include <glibmm/containers.h>
|
|
#include <libgnomecanvas/gnome-canvas-path-def.h>
|
|
#include <libart_lgpl/art_bpath.h>
|
|
#include <libart_lgpl/art_point.h>
|
|
#include <libart_lgpl/art_bpath.h>
|
|
|
|
|
|
namespace Gnome
|
|
{
|
|
|
|
namespace Canvas
|
|
{
|
|
|
|
class PathDef
|
|
{
|
|
public:
|
|
#ifndef DOXYGEN_SHOULD_SKIP_THIS
|
|
typedef PathDef CppObjectType;
|
|
typedef GnomeCanvasPathDef BaseObjectType;
|
|
#endif /* DOXYGEN_SHOULD_SKIP_THIS */
|
|
|
|
static Glib::RefPtr<PathDef> create();
|
|
|
|
// For use with Glib::RefPtr<> only.
|
|
void reference() const;
|
|
void unreference() const;
|
|
|
|
///Provides access to the underlying C instance.
|
|
GnomeCanvasPathDef* gobj();
|
|
|
|
///Provides access to the underlying C instance.
|
|
const GnomeCanvasPathDef* gobj() const;
|
|
|
|
///Provides access to the underlying C instance. The caller is responsible for unrefing it. Use when directly setting fields in structs.
|
|
GnomeCanvasPathDef* gobj_copy() const;
|
|
|
|
protected:
|
|
// Do not derive this. Gnome::Canvas::PathDef can neither be constructed nor deleted.
|
|
PathDef();
|
|
void operator delete(void*, size_t);
|
|
|
|
private:
|
|
// noncopyable
|
|
PathDef(const PathDef&);
|
|
PathDef& operator=(const PathDef&);
|
|
|
|
|
|
public:
|
|
//gtkmmproc error: gnome_canvas_path_def_new : method defs lookup failed (1)
|
|
|
|
/** This funtion creates a new #gnome_canvas_path_def with @a length
|
|
* number of points allocated. It is useful, if you know the exact
|
|
* number of points in path, so you can avoid automatic point
|
|
* array reallocation.
|
|
* @param length Number of points to allocate for the path.
|
|
* @return The new canvas path definition.
|
|
*/
|
|
static Glib::RefPtr<PathDef> create(int length);
|
|
|
|
/** This function constructs a new #gnome_canvas_path_def and uses the
|
|
* passed @a bpath as the contents. The passed bpath should not be
|
|
* static as the path definition is editable when constructed with
|
|
* this function. Also, passed bpath will be freed with art_free, if
|
|
* path is destroyed, so use it with caution.
|
|
* For constructing a #gnome_canvas_path_def
|
|
* from (non-modifiable) bpath use
|
|
* #gnome_canvas_path_def_new_from_static_bpath.
|
|
* @param bpath Libart bezier path.
|
|
* @return The new canvas path definition that is populated with the
|
|
* passed bezier path, if the @a bpath is bad <tt>0</tt> is returned.
|
|
*/
|
|
static Glib::RefPtr<PathDef> create(ArtBpath& bpath);
|
|
|
|
//GnomeCanvasPathDef * gnome_canvas_path_def_new_from_static_bpath (ArtBpath * bpath);
|
|
//GnomeCanvasPathDef * gnome_canvas_path_def_new_from_foreign_bpath (ArtBpath * bpath);
|
|
|
|
//GnomeCanvasPathDef * gnome_canvas_path_def_concat (const GSList * list);
|
|
//GSList * gnome_canvas_path_def_split (const GnomeCanvasPathDef * path);
|
|
|
|
/** This function creates a new GnomeCanvasPathDef that contains all of
|
|
* the open segments on the passed @a path .
|
|
* @return A new GnomeCanvasPathDef that contains all of the open segemtns in @a path .
|
|
*/
|
|
Glib::RefPtr<PathDef> open_parts();
|
|
|
|
/** This function returns a new GnomeCanvasPathDef that contains the
|
|
* all of close parts of passed @a path .
|
|
* @return A new GnomeCanvasPathDef that contains all of the closed
|
|
* parts of passed @a path .
|
|
*/
|
|
Glib::RefPtr<PathDef> closed_parts();
|
|
|
|
/** This function closes all of the open segments in the passed path
|
|
* and returns a new GnomeCanvasPathDef.
|
|
* @return A GnomeCanvasPathDef that contains the contents of @a path
|
|
* but has modified the path is fully closed.
|
|
*/
|
|
Glib::RefPtr<PathDef> close_all();
|
|
|
|
|
|
/** Trims dynamic point array to exact length of path.
|
|
*/
|
|
void finish();
|
|
|
|
/** This function ensures that enough space for @a space points is
|
|
* allocated at the end of the path.
|
|
* @param space Number of points to guarantee are allocated at the end of
|
|
* the path.
|
|
*/
|
|
void ensure_space(int space);
|
|
|
|
|
|
/** This function clears the contents of the passed @a path .
|
|
*/
|
|
void reset();
|
|
|
|
|
|
/** This function adds starts new subpath on @a path , and sets its
|
|
* starting point to @a x and @a y . If current subpath is empty, it
|
|
* simply changes its starting coordinates to new values.
|
|
* @param x X coordinate.
|
|
* @param y Y coordinate.
|
|
*/
|
|
void moveto(double x, double y);
|
|
|
|
/** This function add a line segment to the passed @a path with the
|
|
* specified @a x and @a y coordinates.
|
|
* @param x X coordinate.
|
|
* @param y Y coordinate.
|
|
*/
|
|
void lineto(double x, double y);
|
|
|
|
|
|
/** This functions adds a new line segment with loose endpoint to the path, or
|
|
* if endpoint is already loose, changes its coordinates to @a x , @a y . You
|
|
* can change the coordinates of loose endpoint as many times as you want,
|
|
* the last ones set will be fixed, if you continue line. This is useful
|
|
* for handling drawing with mouse.
|
|
* @param x X coordinate.
|
|
* @param y Y coordinate.
|
|
*/
|
|
void lineto_moving(double x, double y);
|
|
|
|
/** This function adds a bezier curve segment to the path definition.
|
|
* @param x0 First control point x coordinate.
|
|
* @param y0 First control point y coordinate.
|
|
* @param x1 Second control point x coordinate.
|
|
* @param y1 Second control point y coordinate.
|
|
* @param x2 End of curve x coordinate.
|
|
* @param y2 End of curve y coordinate.
|
|
*/
|
|
void curveto(double x1, double y1, double x2, double y2, double x3, double y3);
|
|
|
|
/** This function closes the last subpath of @a path , adding a ART_LINETO to
|
|
* subpath starting point, if needed and changing starting pathcode to
|
|
* ART_MOVETO
|
|
*/
|
|
void closepath();
|
|
|
|
|
|
/** This function closes the last subpath by setting the coordinates of
|
|
* the endpoint of the last segment (line or curve) to starting point.
|
|
*/
|
|
void closepath_current();
|
|
|
|
Gnome::Art::Point currentpoint() const;
|
|
|
|
|
|
/** This function returns a ArtBpath that consists of the path
|
|
* definition.
|
|
* @return ArtBpath.
|
|
*/
|
|
ArtBpath* get_bpath() const;
|
|
|
|
/** This function returns the first ArtBpath point in the definition.
|
|
* @return ArtBpath being the first point in the path definition or
|
|
* null if no points are defined.
|
|
*/
|
|
ArtBpath* first_bpath() const;
|
|
|
|
/** This function returns pointer to the last ArtBpath segment in the path
|
|
* definition.
|
|
* @return ArtBpath, being the last segment in the path definition or
|
|
* null if no line segments have been defined.
|
|
*/
|
|
ArtBpath* last_bpath() const;
|
|
|
|
|
|
/** This function is a boolean test to see if the path is empty,
|
|
* meaning containing no line segments.
|
|
* @return Boolean, indicating if the path is empty.
|
|
*/
|
|
bool is_empty() const;
|
|
|
|
/** This function returns the length of the path definition. Not
|
|
* Euclidian length of the path but rather the number of points on the
|
|
* path.
|
|
* @return Integer, number of points on the path.
|
|
*/
|
|
int length() const;
|
|
|
|
/** This function is a boolean test checking to see if the path has a
|
|
* current point defined. Current point will be set by line operators,
|
|
* and cleared by closing subpath.
|
|
* @return Boolean, indicating if the path has a current point defined.
|
|
*/
|
|
bool has_currentpoint() const;
|
|
|
|
/** This function returns a boolean value indicating if the path has
|
|
* any open segments.
|
|
* @return Boolean, indicating if the path has any open segments.
|
|
*/
|
|
bool any_open() const;
|
|
|
|
/** This function returns a boolean value indicating if the path only
|
|
* contains open segments.
|
|
* @return Boolean, indicating if the path has all open segments.
|
|
*/
|
|
bool all_open() const;
|
|
|
|
/** This function returns a boolean valid indicating if the path has
|
|
* any closed segements.
|
|
* @return Boolean, indicating if the path has any closed segments.
|
|
*/
|
|
bool any_closed() const;
|
|
|
|
/** This function returns a boolean value indicating if the path only
|
|
* contains closed segments.
|
|
* @return Boolean, indicating if the path has all closed segments.
|
|
*/
|
|
bool all_closed() const;
|
|
|
|
|
|
};
|
|
|
|
} /* namespace Canvas */
|
|
|
|
} /* namespace Gnome */
|
|
|
|
|
|
namespace Glib
|
|
{
|
|
|
|
/** @relates Gnome::Canvas::PathDef
|
|
* @param object The C instance
|
|
* @param take_copy False if the result should take ownership of the C instance. True if it should take a new copy or ref.
|
|
* @result A C++ instance that wraps this C instance.
|
|
*/
|
|
Glib::RefPtr<Gnome::Canvas::PathDef> wrap(GnomeCanvasPathDef* object, bool take_copy = false);
|
|
|
|
} // namespace Glib
|
|
|
|
#endif /* _LIBGNOMECANVASMM_PATH_DEF_H */
|
|
|