2002-10-12 13:37:38 +02:00
|
|
|
/**
|
|
|
|
* blenlib/BKE_vfont.h (mar-2001 nzc)
|
|
|
|
*
|
|
|
|
* $Id$
|
|
|
|
*
|
|
|
|
* ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
|
|
|
|
*
|
|
|
|
* 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. The Blender
|
|
|
|
* Foundation also sells licenses for use in proprietary software under
|
|
|
|
* the Blender License. See http://www.blender.org/BL/ for information
|
|
|
|
* about this.
|
|
|
|
*
|
|
|
|
* 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.
|
|
|
|
*
|
|
|
|
* The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
|
|
|
|
* All rights reserved.
|
|
|
|
*
|
|
|
|
* The Original Code is: all of this file.
|
|
|
|
*
|
|
|
|
* Contributor(s): none yet.
|
|
|
|
*
|
|
|
|
* ***** END GPL/BL DUAL LICENSE BLOCK *****
|
|
|
|
*/
|
|
|
|
#ifndef BKE_VFONT_H
|
|
|
|
#define BKE_VFONT_H
|
|
|
|
|
|
|
|
struct VFont;
|
|
|
|
struct Object;
|
|
|
|
struct Curve;
|
|
|
|
struct objfnt;
|
|
|
|
|
2005-06-17 23:04:27 +02:00
|
|
|
typedef struct SelBox {
|
|
|
|
float x, y, w, h;
|
|
|
|
} SelBox;
|
|
|
|
|
2005-07-17 18:02:10 +02:00
|
|
|
extern struct SelBox *selboxes;
|
|
|
|
|
2002-10-12 13:37:38 +02:00
|
|
|
void BKE_font_register_builtin(void *mem, int size);
|
|
|
|
|
|
|
|
void free_vfont(struct VFont *sc);
|
|
|
|
struct VFont *load_vfont(char *name);
|
|
|
|
|
|
|
|
struct chartrans *text_to_curve(struct Object *ob, int mode);
|
More text object fancyness, and fixes:
- "Flush" is now split into two seperate Alignment modes "Flush" and
"Justify":
- Justify does exactly the same as a normal word processor's justify
function does, and in addition, it uses *whitespace* instead of
*character spacing* (kerning) to fill lines. Much more readable.
- Flush is pretty much the old Blender "Flush" mode - and as such it
uses character spacing to fill lines. Just as Justify, this only
works with at least one textframe.
- Underlining for text objects. Not a lot to explain. New button "U" in
the editbuttons, and CTRL-U as hotkey toggle underlining for newly
entered characters or for the selection, just like CTRL-B/CTRL-I do for
bold/italic.
Underline height (thickness) and Underline position (vertical) can be
set in the editbuttons.
Implemented as CU_POLY polygon curves.
- The B, U and i buttons (and the corresponding CTRL-B/U/I keystrokes)
have been fixed to only affect *one* attribute at a time. Formerly,
hitting CTRL-B when no other style was active, on a text portion with
italics text, for example, would kill the italics and just apply bold.
Now, these attributes always add or substract only, but do not
replace the style.
- In the past, there were bugs with material indices uninitialized, and
thus crashes in the renderer with illegal material indices.
Even though I assume they have been fixed, I've put in a check that
checks (hah) if the material index of a character is illegal (bigger
than ob->totcol), and then sets it to zero, and spits out a warning
on stderr.
If you see such warnings, please report and link to the .blend.
- Bugfix: All alignment modes only worked if there were at least *two*
lines of text in the text object. Fixed
There's now a regression test file for text objects, please add to the
corresponding repository:
http://blender.instinctive.de/downloads/release/demo/text-regression.blend.gz
2005-08-29 14:46:07 +02:00
|
|
|
int style_to_sel(int style, int toggle);
|
2005-06-17 23:04:27 +02:00
|
|
|
int mat_to_sel(void);
|
2002-10-12 13:37:38 +02:00
|
|
|
void font_duplilist(struct Object *par);
|
2005-06-17 23:04:27 +02:00
|
|
|
int getselection(int *start, int *end);
|
|
|
|
|
2005-09-14 16:02:21 +02:00
|
|
|
void chtoutf8(unsigned long c, char *o);
|
|
|
|
void wcs2utf8s(char *dst, wchar_t *src);
|
|
|
|
int wcsleninu8(wchar_t *src);
|
|
|
|
int utf8towchar_(wchar_t *w, char *c);
|
2002-10-12 13:37:38 +02:00
|
|
|
|
|
|
|
#endif
|
2002-10-30 03:07:20 +01:00
|
|
|
|