canvas-text.cpp revision d49688d4ced8c0770e4812f62c48d5183ddef91a
#define __SP_CANVASTEXT_C__
/*
* Canvas text
*
* Authors:
* Lauris Kaplinski <lauris@kaplinski.com>
* Maximilian Albert <maximilian.albert@gmail.com>
*
* Copyright (C) 2000-2002 Lauris Kaplinski
* Copyright (C) 2008 Maximilian Albert
*
* Released under GNU GPL, read the file 'COPYING' for more information
*/
#ifdef HAVE_CONFIG_H
# include "config.h"
#endif
#include <sstream>
#include <string.h>
#include "display-forward.h"
#include "sp-canvas-util.h"
#include "canvas-text.h"
#include "display/cairo-utils.h"
#include "desktop.h"
#include "color.h"
static void sp_canvastext_update (SPCanvasItem *item, Geom::Affine const &affine, unsigned int flags);
static SPCanvasItemClass *parent_class_ct;
sp_canvastext_get_type (void)
{
if (!type) {
GtkTypeInfo info = {
(gchar *)"SPCanvasText",
sizeof (SPCanvasText),
sizeof (SPCanvasTextClass),
};
}
return type;
}
static void
{
}
static void
{
canvastext->background = false;
}
static void
{
}
// these are set in sp_canvastext_update() and then re-used in sp_canvastext_render(), which is called afterwards
static double anchor_offset_x = 0;
static double anchor_offset_y = 0;
static void
{
return;
if (cl->background){
}
}
}
static void
{
sp_canvas_request_redraw (item->canvas, (int)item->x1, (int)item->y1, (int)item->x2, (int)item->y2);
if (parent_class_ct->update)
// set up a temporary cairo_t to measure the text extents; it would be better to compute this in the render()
// method but update() seems to be called before so we don't have the information available when we need it
// adjust update region according to anchor shift
switch (cl->anchor_position){
case TEXT_ANCHOR_LEFT:
case TEXT_ANCHOR_RIGHT:
case TEXT_ANCHOR_BOTTOM:
case TEXT_ANCHOR_TOP:
case TEXT_ANCHOR_ZERO:
anchor_offset_x = 0;
anchor_offset_y = 0;
case TEXT_ANCHOR_CENTER:
default:
}
sp_canvas_request_redraw (item->canvas, (int)item->x1, (int)item->y1, (int)item->x2, (int)item->y2);
}
sp_canvastext_new(SPCanvasGroup *parent, SPDesktop *desktop, Geom::Point pos, gchar const *new_text)
{
// TODO: anything else to do?
return item;
}
void
{
}
}
#define EPSILON 1e-6
void
{
}
void
{
}
}
void
{
}
void
{
}
void
{
}
void
{
}
/*
Local Variables:
mode:c++
c-file-style:"stroustrup"
c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +))
indent-tabs-mode:nil
fill-column:99
End:
*/
// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 :