2009-01-29 05:19:27 +00:00
|
|
|
/**
|
|
|
|
* $Id:
|
|
|
|
*
|
|
|
|
* ***** BEGIN GPL 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.
|
|
|
|
*
|
|
|
|
* 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) 2009 Blender Foundation.
|
|
|
|
* All rights reserved.
|
|
|
|
*
|
|
|
|
*
|
|
|
|
* Contributor(s): Blender Foundation
|
|
|
|
*
|
|
|
|
* ***** END GPL LICENSE BLOCK *****
|
|
|
|
*/
|
|
|
|
|
|
|
|
#ifndef BLF_API_H
|
|
|
|
#define BLF_API_H
|
|
|
|
|
2.5: Text Editor back.
There was very little structure in this code, using many globals
and duplicated code. Now it should be better structured. Most
things should work, the main parts that are not back yet are the
python plugins and markers. Notes:
* Blenfont is used for drawing the text, nicely anti-aliased.
* A monospace truetype font was added, since that is needed for
the text editor. It's Bitstream Vera Sans Mono. This is the
default gnome terminal font, but it doesn't fit entirely well
with the other font I think, can be changed easily of course.
* Clipboard copy/cut/paste now always uses the system clipboard,
the code for the own cut buffer was removed.
* The interface buttons should support copy/cut/paste again now
as well.
* WM_clipboard_text_get/WM_clipboard_text_set were added to the
windowmanager code.
* Find panel is now a kind of second header, instead of a panel.
This needs especially a way to start editing the text field
immediately on open still.
* Operators are independent of the actual space when possible,
was a bit of puzzling but got it solved nice with notifiers,
and some lazy init for syntax highlight in the drawing code.
* RNA was created for the text editor space and used for buttons.
* Operators:
* New, Open, Reload, Save, Save As, Make Internal
* Run Script, Refresh Pyconstraints
* Copy, Cut, Paste
* Convert Whitespace, Uncomment, Comment, Indent, Unindent
* Line Break, Insert
* Next Marker, Previous Marker, Clear All Markers, Mark All
* Select Line, Select All
* Jump, Move, Move Select, Delete, Toggle Overwrite
* Scroll, Scroll Bar, Set Cursor, Line Number
* Find and Replace, Find, Replace, Find Set Selected,
Replace Set Selected
* To 3D Object
* Resolve Conflict
2009-02-28 23:33:35 +00:00
|
|
|
struct rctf;
|
|
|
|
|
2009-02-17 16:56:29 +00:00
|
|
|
int BLF_init(void);
|
|
|
|
void BLF_exit(void);
|
|
|
|
|
|
|
|
int BLF_load(char *name);
|
|
|
|
int BLF_load_mem(char *name, unsigned char *mem, int mem_size);
|
|
|
|
|
|
|
|
void BLF_set(int fontid);
|
|
|
|
void BLF_aspect(float aspect);
|
|
|
|
void BLF_position(float x, float y, float z);
|
|
|
|
void BLF_size(int size, int dpi);
|
|
|
|
void BLF_draw(char *str);
|
|
|
|
|
2.5: Text Editor back.
There was very little structure in this code, using many globals
and duplicated code. Now it should be better structured. Most
things should work, the main parts that are not back yet are the
python plugins and markers. Notes:
* Blenfont is used for drawing the text, nicely anti-aliased.
* A monospace truetype font was added, since that is needed for
the text editor. It's Bitstream Vera Sans Mono. This is the
default gnome terminal font, but it doesn't fit entirely well
with the other font I think, can be changed easily of course.
* Clipboard copy/cut/paste now always uses the system clipboard,
the code for the own cut buffer was removed.
* The interface buttons should support copy/cut/paste again now
as well.
* WM_clipboard_text_get/WM_clipboard_text_set were added to the
windowmanager code.
* Find panel is now a kind of second header, instead of a panel.
This needs especially a way to start editing the text field
immediately on open still.
* Operators are independent of the actual space when possible,
was a bit of puzzling but got it solved nice with notifiers,
and some lazy init for syntax highlight in the drawing code.
* RNA was created for the text editor space and used for buttons.
* Operators:
* New, Open, Reload, Save, Save As, Make Internal
* Run Script, Refresh Pyconstraints
* Copy, Cut, Paste
* Convert Whitespace, Uncomment, Comment, Indent, Unindent
* Line Break, Insert
* Next Marker, Previous Marker, Clear All Markers, Mark All
* Select Line, Select All
* Jump, Move, Move Select, Delete, Toggle Overwrite
* Scroll, Scroll Bar, Set Cursor, Line Number
* Find and Replace, Find, Replace, Find Set Selected,
Replace Set Selected
* To 3D Object
* Resolve Conflict
2009-02-28 23:33:35 +00:00
|
|
|
void BLF_boundbox(char *str, struct rctf *box);
|
2009-02-19 16:39:36 +00:00
|
|
|
float BLF_width(char *str);
|
|
|
|
float BLF_height(char *str);
|
|
|
|
void BLF_rotation(float angle);
|
2009-02-20 05:42:44 +00:00
|
|
|
void BLF_clipping(float xmin, float ymin, float xmax, float ymax);
|
|
|
|
|
|
|
|
void BLF_enable(int option);
|
|
|
|
void BLF_disable(int option);
|
2009-02-19 16:39:36 +00:00
|
|
|
|
2009-03-30 05:32:46 +00:00
|
|
|
/* return the id of the current font. */
|
|
|
|
int BLF_get(void);
|
|
|
|
|
2009-01-29 05:19:27 +00:00
|
|
|
/* Read the .Blanguages file, return 1 on success or 0 if fails. */
|
|
|
|
int BLF_lang_init(void);
|
|
|
|
|
|
|
|
/* Free the memory allocate for the .Blanguages. */
|
|
|
|
void BLF_lang_exit(void);
|
|
|
|
|
|
|
|
/* Set the current Language. */
|
|
|
|
void BLF_lang_set(int id);
|
|
|
|
|
|
|
|
/* Return a string with all the Language available. */
|
|
|
|
char *BLF_lang_pup(void);
|
|
|
|
|
|
|
|
/* Return the number of invalid lines in the .Blanguages file,
|
|
|
|
* zero means no error found.
|
|
|
|
*/
|
|
|
|
int BLF_lang_error(void);
|
|
|
|
|
|
|
|
/* Return the code string for the specified language code. */
|
|
|
|
char *BLF_lang_find_code(short langid);
|
|
|
|
|
2009-02-09 07:15:22 +00:00
|
|
|
/* Add a path to the font dir paths. */
|
|
|
|
void BLF_dir_add(const char *path);
|
|
|
|
|
|
|
|
/* Remove a path from the font dir paths. */
|
|
|
|
void BLF_dir_rem(const char *path);
|
|
|
|
|
|
|
|
/* Return an array with all the font dir (this can be used for filesel) */
|
|
|
|
char **BLF_dir_get(int *ndir);
|
|
|
|
|
|
|
|
/* Free the data return by BLF_dir_get. */
|
|
|
|
void BLF_dir_free(char **dirs, int count);
|
|
|
|
|
2009-02-20 05:42:44 +00:00
|
|
|
/* font->flags. */
|
2009-03-02 05:20:48 +00:00
|
|
|
#define BLF_ROTATION (1<<0)
|
|
|
|
#define BLF_CLIPPING (1<<1)
|
2009-02-20 05:42:44 +00:00
|
|
|
|
2009-01-29 05:19:27 +00:00
|
|
|
#endif /* BLF_API_H */
|