[Bf-committers] Font preview
Joilnen Batista Leite
vma_bad_list at yahoo.com
Fri Jul 27 07:51:14 CEST 2007
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Hi all !
I did a simple font preview and I would like to commit
it if you agree.
Joilnen
Index: source/blender/makesdna/DNA_space_types.h
===================================================================
- --- source/blender/makesdna/DNA_space_types.h
(revisão 11382)
+++ source/blender/makesdna/DNA_space_types.h (cópia
de trabalho)
@@ -170,8 +170,10 @@
char file[80];
short type, ofs, flag, sort;
- - short maxnamelen, collums;
- -
+ short maxnamelen, collums, f_fp, pad1;
+ int pad2;
+ char fp_str[8];
+
struct BlendHandle *libfiledata;
unsigned short retval; /* event */
@@ -442,6 +444,7 @@
#define FILE_LOADLIB 1
#define FILE_MAIN 2
+#define FILE_LOADFONT 3
/* sfile->flag */
#define FILE_SHOWSHORT 1
Index: source/blender/include/BIF_interface.h
===================================================================
- --- source/blender/include/BIF_interface.h (revisão
11382)
+++ source/blender/include/BIF_interface.h (cópia de
trabalho)
@@ -166,6 +166,7 @@
#define BUT_CURVE (32<<9)
#define BUT_TOGDUAL (33<<9)
#define ICONTOGN (34<<9)
+#define FTPREVIEW (35<<9)
#define BUTTYPE (63<<9)
Index: source/blender/src/interface_draw.c
===================================================================
- --- source/blender/src/interface_draw.c (revisão
11382)
+++ source/blender/src/interface_draw.c (cópia de
trabalho)
@@ -1604,8 +1604,12 @@
ui_rasterpos_safe(x, (but->y1+but->y2- 9.0)/2.0,
but->aspect);
if(but->type==IDPOIN) transopts= 0; // no
translation, of course!
else transopts= (U.transopts & USER_TR_BUTTONS);
- - BIF_DrawString(but->font, but->drawstr+but->ofs,
transopts);
+ if (but->type == FTPREVIEW)
+ FTF_DrawNewFontString (but->drawstr+but->ofs,
FTF_INPUT_UTF8);
+ else
+ BIF_DrawString(but->font, but->drawstr+but->ofs,
transopts);
+
/* part text right aligned */
if(cpoin) {
len= BIF_GetStringWidth(but->font, cpoin+1,
(U.transopts & USER_TR_BUTTONS));
Index: source/blender/src/buttons_editing.c
===================================================================
- --- source/blender/src/buttons_editing.c (revisão
11382)
+++ source/blender/src/buttons_editing.c (cópia de
trabalho)
@@ -2420,7 +2420,7 @@
sa= closest_bigger_area();
areawinset(sa->win);
- - activate_fileselect(FILE_SPECIAL, "SELECT FONT",
str, load_buts_vfont);
+ activate_fileselect(FILE_LOADFONT, "SELECT FONT",
str, load_buts_vfont);
break;
case B_PACKFONT:
Index: source/blender/src/filesel.c
===================================================================
- --- source/blender/src/filesel.c (revisão 11382)
+++ source/blender/src/filesel.c (cópia de trabalho)
@@ -111,6 +111,8 @@
#include "BIF_fsmenu.h" /* include ourselves */
+#include "FTF_Api.h"
+
#if defined WIN32 || defined __BeOS
int fnmatch(const char *pattern, const char *string,
int flags)
{
@@ -507,7 +509,7 @@
}
}
}
- - } else if (sfile->type==FILE_SPECIAL){
+ } else if (sfile->type==FILE_SPECIAL ||
sfile->type==FILE_LOADFONT){
if(BLI_testextensie(file->relname, ".py")) {
file->flags |= PYSCRIPTFILE;
} else if( BLI_testextensie(file->relname, ".ttf")
@@ -1368,7 +1370,7 @@
sfile->libfiledata= NULL;
}
}
- - else { /* FILE_BLENDER */
+ else { /* FILE_BLENDER or FILE_LOADFONT */
split_sfile(sfile, name); /* test filelist too */
BLI_cleanup_dir(G.sce, sfile->dir);
@@ -2019,8 +2021,15 @@
}
else {
if( strcmp(sfile->file,
sfile->filelist[act].relname)) {
+ char tmpstr[240];
do_draw= 1;
BLI_strncpy(sfile->file,
sfile->filelist[act].relname, sizeof(sfile->file));
+ if (sfile->f_fp) {
+ sprintf (tmpstr, "%s%s", sfile->dir,
sfile->file);
+ /* printf ("%s\n", tmpstr); */
+ if (!FTF_GetNewFont ((const unsigned char
*)tmpstr, 0, U.fontsize))
+ error ("No font file");
+ }
}
if(event==MIDDLEMOUSE && sfile->type)
filesel_execute(sfile);
}
Index: source/blender/src/header_filesel.c
===================================================================
- --- source/blender/src/header_filesel.c (revisão
11382)
+++ source/blender/src/header_filesel.c (cópia de
trabalho)
@@ -158,6 +158,13 @@
xco+= 100; // scroll
}
+ else if(sfile->type==FILE_LOADFONT) {
+ uiDefIconButBitS(block, ICONTOG, FILE_SHOWSHORT,
B_SORTFILELIST, ICON_BLANK3, xco+= XIC, 0, XIC, YIC,
&sfile->f_fp, 0, 0, 0, 0, "Activate font preview");
+ if (sfile->f_fp)
+ uiDefButC(block, FTPREVIEW, 0, "Font preview",
xco+= XIC, 0, 100, YIC, sfile->fp_str, (float)0,
(float)16, 0, 0, "Font preview");
+
+ xco+= 100; // scroll
+ }
uiDrawBlock(block);
Index: source/blender/ftfont/intern/FTF_Api.cpp
===================================================================
- --- source/blender/ftfont/intern/FTF_Api.cpp
(revisão 11382)
+++ source/blender/ftfont/intern/FTF_Api.cpp (cópia
de trabalho)
@@ -42,9 +42,12 @@
#include "../FTF_Api.h"
#include "FTF_TTFont.h"
+#include "datatoc.h"
#define FTF_EXPORT
+FTF_TTFont *newfont= 0; // preview font
+
static FTF_TTFont *_FTF_GetFont(void) {
static FTF_TTFont *theFont = NULL;
@@ -55,8 +58,27 @@
return theFont;
}
+FTF_EXPORT int FTF_GetNewFont (const unsigned char
*str, int datasize, int fontsize) {
+
+ if (newfont) delete newfont;
+ newfont= new FTF_TTFont();
+
+ if (!(newfont->SetFont((unsigned char*)str,
datasize, fontsize))) {
+ newfont->SetFont((unsigned char*)datatoc_bfont_ttf,
datatoc_bfont_ttf_size, fontsize);
+ return 0;
+ }
+ return 1;
+}
+
+FTF_EXPORT float FTF_DrawNewFontString(char* str,
unsigned int flag)
+{
+ if (newfont)
+ newfont->DrawString(str, flag);
+}
+
FTF_EXPORT void FTF_End(void) {
delete _FTF_GetFont();
+ delete newfont;
}
FTF_EXPORT void FTF_SetSize(int size)
@@ -174,3 +196,5 @@
{
_FTF_GetFont()->SetScale(fsize);
}
+
+
Index: source/blender/ftfont/intern/Makefile
===================================================================
- --- source/blender/ftfont/intern/Makefile (revisão
11382)
+++ source/blender/ftfont/intern/Makefile (cópia de
trabalho)
@@ -46,6 +46,7 @@
CPPFLAGS += -I../../makesdna
CPPFLAGS += -I../../blenkernel
CPPFLAGS += -I../../blenlib
+CPPFLAGS += -I../../include
CPPFLAGS += -I$(NAN_FTGL)/include
CPPFLAGS += -I$(NAN_FTGL)/include/FTGL
CPPFLAGS += -I$(NAN_GETTEXT)/include
Index: source/blender/ftfont/FTF_Api.h
===================================================================
- --- source/blender/ftfont/FTF_Api.h (revisão 11382)
+++ source/blender/ftfont/FTF_Api.h (cópia de
trabalho)
@@ -154,6 +154,10 @@
FTF_EXPORT void FTF_End(void);
+/* Font preview functions */
+FTF_EXPORT int FTF_GetNewFont (const unsigned char
*str, int datasize, int fontsize);
+FTF_EXPORT float FTF_DrawNewFontString(char* str,
unsigned int flag);
+
#ifdef __cplusplus
}
#endif
Index: source/nan_definitions.mk
===================================================================
- --- source/nan_definitions.mk (revisão 11382)
+++ source/nan_definitions.mk (cópia de trabalho)
@@ -352,14 +352,14 @@
ifeq ($(OS),linux)
export ID = $(shell whoami)
- - export HOST = $(shell hostname -s)
+ export HOST = $(shell hostname)
export FREEDESKTOP ?= true
export NAN_PYTHON ?= /usr
ifeq ($(CPU),ia64)
export NAN_PYTHON_VERSION ?= 2.2
else
- - export NAN_PYTHON_VERSION ?= 2.3
+ export NAN_PYTHON_VERSION ?= 2.4
endif
export NAN_PYTHON_BINARY ?=
$(NAN_PYTHON)/bin/python$(NAN_PYTHON_VERSION)
export NAN_OPENAL ?= /usr
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)
iD8DBQFGqVp7y+YefERhfs0RAohHAKCDnwfm1rUAnYdyipT/Lsl13SnZsACgu/0Y
3RbU3vgXMOzKjxuHwudeQ0k=
=tUiH
-----END PGP SIGNATURE-----
____________________________________________________________________________________
Need a vacation? Get great deals
to amazing places on Yahoo! Travel.
http://travel.yahoo.com/
More information about the Bf-committers
mailing list