template

template —

Synopsis


#include <libglabels/template.h>


            glTemplate;
            glTemplateLabelType;
            glTemplateLayout;
            glTemplateMarkup;
            glTemplateOrigin;
enum        glTemplateLabelShape;
enum        glTemplateMarkupType;
void        gl_template_init                (void);
void        gl_template_register            (const glTemplate *template);
GList*      gl_template_get_name_list       (const gchar *page_size);
void        gl_template_free_name_list      (GList *names);
glTemplate* gl_template_from_name           (const gchar *name);
gchar*      gl_template_get_name_with_desc  (const glTemplate *template);
const glTemplateLabelType* gl_template_get_first_label_type
                                            (const glTemplate *template);
void        gl_template_get_label_size      (const glTemplateLabelType *label_type,
                                             gdouble *w,
                                             gdouble *h);
gint        gl_template_get_n_labels        (const glTemplateLabelType *label_type);
glTemplateOrigin* gl_template_get_origins   (const glTemplateLabelType *label_type);
glTemplate* gl_template_new                 (const gchar *name,
                                             const gchar *description,
                                             const gchar *page_size,
                                             gdouble page_width,
                                             gdouble page_height);
void        gl_template_add_label_type      (glTemplate *template,
                                             glTemplateLabelType *label_type);
void        gl_template_add_alias           (glTemplate *template,
                                             const gchar *alias);
glTemplateLabelType* gl_template_rect_label_type_new
                                            (const gchar *id,
                                             gdouble w,
                                             gdouble h,
                                             gdouble r,
                                             gdouble x_waste,
                                             gdouble y_waste);
glTemplateLabelType* gl_template_round_label_type_new
                                            (const gchar *id,
                                             gdouble r,
                                             gdouble waste);
glTemplateLabelType* gl_template_cd_label_type_new
                                            (const gchar *id,
                                             gdouble r1,
                                             gdouble r2,
                                             gdouble w,
                                             gdouble h,
                                             gdouble waste);
void        gl_template_add_layout          (glTemplateLabelType *label_type,
                                             glTemplateLayout *layout);
void        gl_template_add_markup          (glTemplateLabelType *label_type,
                                             glTemplateMarkup *markup);
glTemplateLayout* gl_template_layout_new    (gint nx,
                                             gint ny,
                                             gdouble x0,
                                             gdouble y0,
                                             gdouble dx,
                                             gdouble dy);
glTemplateMarkup* gl_template_markup_margin_new
                                            (gdouble size);
glTemplateMarkup* gl_template_markup_line_new
                                            (gdouble x1,
                                             gdouble y1,
                                             gdouble x2,
                                             gdouble y2);
glTemplateMarkup* gl_template_markup_circle_new
                                            (gdouble x0,
                                             gdouble y0,
                                             gdouble r);
glTemplate* gl_template_dup                 (const glTemplate *orig);
void        gl_template_free                (glTemplate *template);
glTemplateLabelType* gl_template_label_type_dup
                                            (const glTemplateLabelType *orig_ltype);
void        gl_template_label_type_free     (glTemplateLabelType *ltype);
glTemplateLayout* gl_template_layout_dup    (const glTemplateLayout *orig_layout);
void        gl_template_layout_free         (glTemplateLayout *layout);
glTemplateMarkup* gl_template_markup_dup    (const glTemplateMarkup *orig_markup);
void        gl_template_markup_free         (glTemplateMarkup *markup);
void        gl_template_print_known_templates
                                            (void);
void        gl_template_print_aliases       (const glTemplate *template);

Description

Details

glTemplate

typedef struct {
	gchar               *name;
	gchar               *description;
	gchar               *page_size;
	gdouble              page_width;
	gdouble              page_height;

	/* List of (glTemplateLabelType *) label type structures.
	 * Currently glabels only supports a single label type per
	 * template. */
	GList               *label_types;

	/* List of (gchar *) aliases. */
	GList               *aliases;
} glTemplate;


glTemplateLabelType

typedef struct {
	gchar                *id;       /* Id, currently always "0" */
	GList                *layouts;  /* List of glTemplateLayouts */
	GList                *markups;  /* List of glTemplateMarkups */

	glTemplateLabelShape  shape;

	union {

		struct {
			gdouble        w;        /* Width */
			gdouble        h;        /* Height */
			gdouble        r;        /* Corner radius */
			gdouble        x_waste;  /* Amount of horiz overprint allowed. */
			gdouble        y_waste;  /* Amount of vert overprint allowed. */
		} rect;

		struct {
			gdouble        r;      /* Radius */
			gdouble        waste;  /* Amount of overprint allowed. */

		} round;

		struct {
			gdouble        r1;     /* Outer radius */
			gdouble        r2;     /* Inner radius (hole) */
			gdouble        w;      /* Clip width, business card CDs */
			gdouble        h;      /* Clip height, business card CDs */
			gdouble        waste;  /* Amount of overprint allowed. */
		} cd;
} glTemplateLabelType;


glTemplateLayout

typedef struct {
	gint                  nx;  /* Number of labels across */
	gint                  ny;  /* Number of labels up and down */

	gdouble               x0;  /* Left of grid from left edge of paper */
	gdouble               y0;  /* Top of grid from top edge of paper */

	gdouble               dx;  /* Horizontal pitch of grid */
	gdouble               dy;  /* Vertical pitch of grid */
} glTemplateLayout;


glTemplateMarkup

typedef struct {
	glTemplateMarkupType   type;

	union {

		struct {
			gdouble                size;  /* Margin size */
		} margin;

		struct {
			gdouble                x1, y1; /* 1st endpoint */
			gdouble                x2, y2; /* 2nd endpoint */
		} line;

		struct {
			gdouble                x0, y0; /* Center of circle */
			gdouble                r;      /* Radius of circle */
		} circle;
} glTemplateMarkup;


glTemplateOrigin

typedef struct {
	gdouble               x, y; /* Label origin relative to upper 
				     * upper left hand corner of paper */
} glTemplateOrigin;


enum glTemplateLabelShape

typedef enum {
	GL_TEMPLATE_SHAPE_RECT,
	GL_TEMPLATE_SHAPE_ROUND,
	GL_TEMPLATE_SHAPE_CD,
} glTemplateLabelShape;


enum glTemplateMarkupType

typedef enum {
	GL_TEMPLATE_MARKUP_MARGIN,
	GL_TEMPLATE_MARKUP_LINE,
	GL_TEMPLATE_MARKUP_CIRCLE,
} glTemplateMarkupType;


gl_template_init ()

void        gl_template_init                (void);


gl_template_register ()

void        gl_template_register            (const glTemplate *template);

template :

gl_template_get_name_list ()

GList*      gl_template_get_name_list       (const gchar *page_size);

page_size :
Returns :

gl_template_free_name_list ()

void        gl_template_free_name_list      (GList *names);

names :

gl_template_from_name ()

glTemplate* gl_template_from_name           (const gchar *name);

name :
Returns :

gl_template_get_name_with_desc ()

gchar*      gl_template_get_name_with_desc  (const glTemplate *template);

template :
Returns :

gl_template_get_first_label_type ()

const glTemplateLabelType* gl_template_get_first_label_type
                                            (const glTemplate *template);

template :
Returns :

gl_template_get_label_size ()

void        gl_template_get_label_size      (const glTemplateLabelType *label_type,
                                             gdouble *w,
                                             gdouble *h);

label_type :
w :
h :

gl_template_get_n_labels ()

gint        gl_template_get_n_labels        (const glTemplateLabelType *label_type);

label_type :
Returns :

gl_template_get_origins ()

glTemplateOrigin* gl_template_get_origins   (const glTemplateLabelType *label_type);

label_type :
Returns :

gl_template_new ()

glTemplate* gl_template_new                 (const gchar *name,
                                             const gchar *description,
                                             const gchar *page_size,
                                             gdouble page_width,
                                             gdouble page_height);

name :
description :
page_size :
page_width :
page_height :
Returns :

gl_template_add_label_type ()

void        gl_template_add_label_type      (glTemplate *template,
                                             glTemplateLabelType *label_type);

template :
label_type :

gl_template_add_alias ()

void        gl_template_add_alias           (glTemplate *template,
                                             const gchar *alias);

template :
alias :

gl_template_rect_label_type_new ()

glTemplateLabelType* gl_template_rect_label_type_new
                                            (const gchar *id,
                                             gdouble w,
                                             gdouble h,
                                             gdouble r,
                                             gdouble x_waste,
                                             gdouble y_waste);

id :
w :
h :
r :
x_waste :
y_waste :
Returns :

gl_template_round_label_type_new ()

glTemplateLabelType* gl_template_round_label_type_new
                                            (const gchar *id,
                                             gdouble r,
                                             gdouble waste);

id :
r :
waste :
Returns :

gl_template_cd_label_type_new ()

glTemplateLabelType* gl_template_cd_label_type_new
                                            (const gchar *id,
                                             gdouble r1,
                                             gdouble r2,
                                             gdouble w,
                                             gdouble h,
                                             gdouble waste);

id :
r1 :
r2 :
w :
h :
waste :
Returns :

gl_template_add_layout ()

void        gl_template_add_layout          (glTemplateLabelType *label_type,
                                             glTemplateLayout *layout);

label_type :
layout :

gl_template_add_markup ()

void        gl_template_add_markup          (glTemplateLabelType *label_type,
                                             glTemplateMarkup *markup);

label_type :
markup :

gl_template_layout_new ()

glTemplateLayout* gl_template_layout_new    (gint nx,
                                             gint ny,
                                             gdouble x0,
                                             gdouble y0,
                                             gdouble dx,
                                             gdouble dy);

nx :
ny :
x0 :
y0 :
dx :
dy :
Returns :

gl_template_markup_margin_new ()

glTemplateMarkup* gl_template_markup_margin_new
                                            (gdouble size);

size :
Returns :

gl_template_markup_line_new ()

glTemplateMarkup* gl_template_markup_line_new
                                            (gdouble x1,
                                             gdouble y1,
                                             gdouble x2,
                                             gdouble y2);

x1 :
y1 :
x2 :
y2 :
Returns :

gl_template_markup_circle_new ()

glTemplateMarkup* gl_template_markup_circle_new
                                            (gdouble x0,
                                             gdouble y0,
                                             gdouble r);

x0 :
y0 :
r :
Returns :

gl_template_dup ()

glTemplate* gl_template_dup                 (const glTemplate *orig);

orig :
Returns :

gl_template_free ()

void        gl_template_free                (glTemplate *template);

template :

gl_template_label_type_dup ()

glTemplateLabelType* gl_template_label_type_dup
                                            (const glTemplateLabelType *orig_ltype);

orig_ltype :
Returns :

gl_template_label_type_free ()

void        gl_template_label_type_free     (glTemplateLabelType *ltype);

ltype :

gl_template_layout_dup ()

glTemplateLayout* gl_template_layout_dup    (const glTemplateLayout *orig_layout);

orig_layout :
Returns :

gl_template_layout_free ()

void        gl_template_layout_free         (glTemplateLayout *layout);

layout :

gl_template_markup_dup ()

glTemplateMarkup* gl_template_markup_dup    (const glTemplateMarkup *orig_markup);

orig_markup :
Returns :

gl_template_markup_free ()

void        gl_template_markup_free         (glTemplateMarkup *markup);

markup :

gl_template_print_known_templates ()

void        gl_template_print_known_templates
                                            (void);


gl_template_print_aliases ()

void        gl_template_print_aliases       (const glTemplate *template);

template :