/* Copyright (C) 2001-2002 Kenichi Suto
*
* 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 "defs.h"
#ifdef HAVE_WCHAR_H
#include <wchar.h>
#endif
#include "global.h"
void add_location_char(CONTENT_AREA *content_area, GdkWChar wc, gint x, gint y, gint width, gint height, GdkFont *font, LINK *link)
{
LOCATION *l;
char *p;
char buff[16];
p = (char *)&wc;
memcpy(buff, &wc, sizeof(GdkWChar));
buff[sizeof(GdkWChar)] = '\0';
// p = gdk_wcstombs((GdkWChar *)buff);
// g_print("CHAR : %s %d %d %d %d\n", p, x, y, width, height);
l = (LOCATION *)calloc(sizeof(LOCATION), 1);
if(l == NULL){
fprintf(stderr, "No memory\n");
exit(1);
}
l->type = LOCATION_CHAR;
l->x = x;
l->y = y;
l->width = width;
l->height = height;
l->wc = wc;
l->font = font;
l->reverse = FALSE;;
if(link != NULL)
l->link_type = link->type;
else
l->link_type = LINK_TYPE_NONE;
// g_print("l->ch.wc = %08x\n", l->ch.wc);
content_area->location = g_list_append(content_area->location, l);
}
void add_location_gaiji(CONTENT_AREA *content_area, gchar *char_no, gint x, gint y, gint width, gint height, LINK *link)
{
LOCATION *l;
// g_print("GAIJI : %s %d %d %d %d %08x\n", char_no, x, y, width, height, link);
g_assert(strlen(char_no) <= 5);
l = (LOCATION *)calloc(sizeof(LOCATION), 1);
if(l == NULL){
fprintf(stderr, "No memory\n");
exit(1);
}
l->type = LOCATION_GAIJI;
l->x = x;
l->y = y;
l->width = width;
l->height = height;
l->reverse = FALSE;;
if(link != NULL)
l->link_type = link->type;
else
l->link_type = LINK_TYPE_NONE;
sprintf(l->gaiji_no, "%s", char_no);
content_area->location = g_list_append(content_area->location, l);
}
void clear_location(CONTENT_AREA *content_area)
{
GList *item;
item = g_list_first(content_area->location);
while(item){
free(item->data);
item = g_list_next(item);
}
g_list_free(content_area->location);
content_area->location = NULL;
}
syntax highlighted by Code2HTML, v. 0.9.1