Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
P
proview
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Esteban Blanc
proview
Commits
5e9474b6
Commit
5e9474b6
authored
Jul 18, 2011
by
Claes Sjofors
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Ge rotation of texts in java export
parent
981fa508
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
149 additions
and
15 deletions
+149
-15
xtt/lib/glow/src/glow_exportjbean.cpp
xtt/lib/glow/src/glow_exportjbean.cpp
+94
-12
xtt/lib/glow/src/glow_exportjbean.h
xtt/lib/glow/src/glow_exportjbean.h
+2
-1
xtt/lib/glow/src/glow_growtext.cpp
xtt/lib/glow/src/glow_growtext.cpp
+53
-2
No files found.
xtt/lib/glow/src/glow_exportjbean.cpp
View file @
5e9474b6
...
...
@@ -2863,7 +2863,8 @@ void GlowExportJBean::arc( double x0, double y0, double width, double height,
void
GlowExportJBean
::
text
(
int
x0
,
int
y0
,
char
*
text
,
glow_eDrawType
drawtype
,
glow_eDrawType
color_drawtype
,
int
bold
,
int
idx
,
glow_eExportPass
pass
,
int
*
shape_cnt
,
int
node_cnt
,
ofstream
&
fp
)
int
idx
,
int
rotate
,
glow_eExportPass
pass
,
int
*
shape_cnt
,
int
node_cnt
,
ofstream
&
fp
)
{
double
dim_x0
,
dim_x1
,
dim_y0
,
dim_y1
;
...
...
@@ -2908,6 +2909,29 @@ void GlowExportJBean::text( int x0, int y0, char *text,
// " g.setColor(Color.black);" << endl <<
" g.setFont(new Font(
\"
Helvetica
\"
, Font."
<<
bold_str
<<
", "
<<
text_size
<<
"));"
<<
endl
;
if
(
45.0
<=
rotate
&&
rotate
<
135.0
)
{
fp
<<
" save_tmp = g.getTransform();"
<<
endl
<<
" g.rotate( - Math.PI * 3/ 2,"
<<
x0
-
int
(
dim_x0
)
+
glow_cJBean_Offset
<<
", "
<<
y0
-
int
(
dim_y0
)
+
glow_cJBean_Offset
<<
");"
<<
endl
;
}
else
if
(
135.0
<=
rotate
&&
rotate
<
225.0
)
{
fp
<<
" save_tmp = g.getTransform();"
<<
endl
<<
" g.rotate( - Math.PI,"
<<
x0
-
int
(
dim_x0
)
+
glow_cJBean_Offset
<<
", "
<<
y0
-
int
(
dim_y0
)
+
glow_cJBean_Offset
<<
");"
<<
endl
;
}
else
if
(
225.0
<=
rotate
&&
rotate
<
315.0
)
{
fp
<<
" save_tmp = g.getTransform();"
<<
endl
<<
" g.rotate( - Math.PI / 2,"
<<
x0
-
int
(
dim_x0
)
+
glow_cJBean_Offset
<<
", "
<<
y0
-
int
(
dim_y0
)
+
glow_cJBean_Offset
<<
");"
<<
endl
;
}
if
(
((
GrowCtx
*
)
ctx
)
->
translate_on
)
fp
<<
" g.drawString( JopLang.transl(
\"
"
<<
str_cnv
(
text
)
<<
"
\"
),"
<<
...
...
@@ -2918,6 +2942,12 @@ void GlowExportJBean::text( int x0, int y0, char *text,
" g.drawString(
\"
"
<<
str_cnv
(
text
)
<<
"
\"
,"
<<
x0
-
int
(
dim_x0
)
+
glow_cJBean_Offset
<<
", "
<<
y0
-
int
(
dim_y0
)
+
glow_cJBean_Offset
<<
");"
<<
endl
;
if
(
45.0
<=
rotate
&&
rotate
<
315.0
)
{
fp
<<
" g.setTransform( save_tmp);"
<<
endl
;
}
break
;
}
default:
...
...
@@ -3014,6 +3044,8 @@ void GlowExportJBean::annot( int x0, int y0, int number,
case
glow_eExportPass_Draw
:
{
char
adjustmentstr
[
200
];
char
adjustmentstr_vert
[
200
];
char
adjustmentstr_horiz
[
200
];
switch
(
adjustment
)
{
case
glow_eAdjustment_Right
:
if
(
!
frc_created
)
{
...
...
@@ -3029,7 +3061,8 @@ void GlowExportJBean::annot( int x0, int y0, int number,
fp
<<
" FontRenderContext frc = g.getFontRenderContext();"
<<
endl
;
}
sprintf
(
adjustmentstr
,
"- (float)g.getFont().getStringBounds(annot%d, frc).getWidth()/2"
,
number
);
sprintf
(
adjustmentstr_vert
,
"- (float)g.getFont().getStringBounds(annot%d, frc).getWidth()/2"
,
number
);
sprintf
(
adjustmentstr_horiz
,
"- (float)g.getFont().getStringBounds(annot%d, frc).getWidth()/2"
,
number
);
break
;
default:
strcpy
(
adjustmentstr
,
""
);
...
...
@@ -3044,25 +3077,74 @@ void GlowExportJBean::annot( int x0, int y0, int number,
//" g.setColor(Color.black);" << endl <<
" g.setFont( annot"
<<
number
<<
"Font);"
<<
endl
<<
" save_tmp = g.getTransform();"
<<
endl
;
if
(
antialiasing_on
)
fp
<<
if
(
antialiasing_on
)
{
if
(
adjustment
==
glow_eAdjustment_Center
)
{
fp
<<
" if ( (45.0 <= rotate && rotate < 135.0) || (225.0 <= rotate && rotate < 315.0)) {"
<<
endl
<<
" g.transform( AffineTransform.getScaleInstance( original_height/width *"
<<
endl
<<
" height/original_width * 0.75, 1));"
<<
endl
<<
" if ( annot"
<<
number
<<
" != null)"
<<
endl
<<
" g.drawString( annot"
<<
number
<<
", "
<<
x0
-
int
(
dim_x0
)
+
glow_cJBean_Offset
<<
" * original_height / width * height / original_width"
<<
adjustmentstr_vert
<<
", "
<<
y0
-
int
(
dim_y0
)
+
glow_cJBean_Offset
<<
"F);"
<<
endl
<<
" }"
<<
endl
<<
" else {"
<<
endl
<<
" g.transform( AffineTransform.getScaleInstance( original_width/width *"
<<
endl
<<
" height/original_height * 0.75, 1));"
<<
endl
<<
" if ( annot"
<<
number
<<
" != null)"
<<
endl
<<
" g.drawString( annot"
<<
number
<<
", "
<<
x0
-
int
(
dim_x0
)
+
glow_cJBean_Offset
<<
" * original_height / height * width / original_width"
<<
adjustmentstr_horiz
<<
", "
<<
y0
-
int
(
dim_y0
)
+
glow_cJBean_Offset
<<
"F);"
<<
endl
<<
" }"
<<
endl
;
}
else
{
fp
<<
" g.transform( AffineTransform.getScaleInstance( original_width/width *"
<<
endl
<<
" height/original_height * 0.75, 1));"
<<
endl
<<
" if ( annot"
<<
number
<<
" != null)"
<<
endl
<<
" g.drawString( annot"
<<
number
<<
", "
<<
x0
-
int
(
dim_x0
)
+
glow_cJBean_Offset
<<
" * original_height / height * width / original_width"
<<
adjustmentstr
<<
", "
<<
y0
-
int
(
dim_y0
)
+
glow_cJBean_Offset
<<
"F);"
<<
endl
;
else
fp
<<
x0
-
int
(
dim_x0
)
+
glow_cJBean_Offset
<<
" * original_height / height * width / original_width"
<<
adjustmentstr
<<
", "
<<
y0
-
int
(
dim_y0
)
+
glow_cJBean_Offset
<<
"F);"
<<
endl
;
}
}
else
{
if
(
adjustment
==
glow_eAdjustment_Center
)
{
fp
<<
" if ( (45.0 <= rotate && rotate < 135.0) || (225.0 <= rotate && rotate < 315.0)) {"
<<
endl
<<
" g.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_OFF);"
<<
endl
<<
" g.transform( AffineTransform.getScaleInstance( original_width/height *"
<<
endl
<<
" width/original_height, 1));"
<<
endl
<<
" if ( annot"
<<
number
<<
" != null)"
<<
endl
<<
" g.drawString( annot"
<<
number
<<
", "
<<
x0
-
int
(
dim_x0
)
+
glow_cJBean_Offset
<<
" * original_height / width * height / original_width"
<<
adjustmentstr_vert
<<
", "
<<
y0
-
int
(
dim_y0
)
+
glow_cJBean_Offset
<<
"F);"
<<
endl
<<
" } else {"
<<
endl
<<
" g.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_OFF);"
<<
endl
<<
" g.transform( AffineTransform.getScaleInstance( original_width/width *"
<<
endl
<<
" height/original_height, 1));"
<<
endl
<<
" if ( annot"
<<
number
<<
" != null)"
<<
endl
<<
" g.drawString( annot"
<<
number
<<
", "
<<
x0
-
int
(
dim_x0
)
+
glow_cJBean_Offset
<<
" * original_height / height * width / original_width"
<<
adjustmentstr_horiz
<<
", "
<<
y0
-
int
(
dim_y0
)
+
glow_cJBean_Offset
<<
"F);"
<<
endl
<<
" }"
<<
endl
;
}
else
{
fp
<<
" g.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_OFF);"
<<
endl
<<
" g.transform( AffineTransform.getScaleInstance( original_width/width *"
<<
endl
<<
" height/original_height, 1));"
<<
endl
<<
" if ( annot"
<<
number
<<
" != null)"
<<
endl
<<
" g.drawString( annot"
<<
number
<<
", "
<<
x0
-
int
(
dim_x0
)
+
glow_cJBean_Offset
<<
" * original_height / height * width / original_width"
<<
adjustmentstr
<<
", "
<<
y0
-
int
(
dim_y0
)
+
glow_cJBean_Offset
<<
"F);"
<<
endl
;
x0
-
int
(
dim_x0
)
+
glow_cJBean_Offset
<<
" * original_height / height * width / original_width"
<<
adjustmentstr
<<
", "
<<
y0
-
int
(
dim_y0
)
+
glow_cJBean_Offset
<<
"F);"
<<
endl
;
}
}
fp
<<
" g.setTransform( save_tmp);"
<<
endl
;
break
;
...
...
xtt/lib/glow/src/glow_exportjbean.h
View file @
5e9474b6
...
...
@@ -86,7 +86,8 @@ class GlowExportJBean {
glow_eExportPass
pass
,
int
*
shape_cnt
,
int
node_cnt
,
ofstream
&
fp
);
void
text
(
int
x0
,
int
y0
,
char
*
text
,
glow_eDrawType
drawtype
,
glow_eDrawType
color_drawtype
,
int
bold
,
int
idx
,
glow_eExportPass
pass
,
int
*
shape_cnt
,
int
node_cnt
,
ofstream
&
fp
);
int
idx
,
int
rotate
,
glow_eExportPass
pass
,
int
*
shape_cnt
,
int
node_cnt
,
ofstream
&
fp
);
void
annot
(
int
x0
,
int
y0
,
int
number
,
glow_eDrawType
drawtype
,
glow_eDrawType
text_drawtype
,
int
bold
,
glow_eAdjustment
adjustment
,
int
idx
,
glow_eExportPass
pass
,
...
...
xtt/lib/glow/src/glow_growtext.cpp
View file @
5e9474b6
...
...
@@ -705,7 +705,7 @@ void GrowText::draw( GlowWind *w, GlowTransform *t, int highlight, int hot, voi
if
(
strcmp
(
text
,
""
))
{
if
(
highl
||
(
hot
&&
!
node
)
||
adjustment
!=
glow_eAdjustment_Left
)
{
ctx
->
gdraw
->
get_text_extent
(
text
,
strlen
(
text
),
ldraw_type
,
max
(
0
,
idx
),
lfont
,
ctx
->
gdraw
->
get_text_extent
(
text
,
strlen
(
text
),
ldraw_type
,
max
(
0
,
idx
),
lfont
,
&
z_width
,
&
z_height
,
&
z_descent
,
tsize
,
rot
);
switch
(
adjustment
)
{
case
glow_eAdjustment_Left
:
...
...
@@ -1026,24 +1026,75 @@ void GrowText::export_javabean( GlowTransform *t, void *node,
glow_eExportPass
pass
,
int
*
shape_cnt
,
int
node_cnt
,
int
in_nc
,
ofstream
&
fp
)
{
int
x1
,
y1
;
int
z_width
,
z_height
,
z_descent
;
int
rot
;
int
bold
;
double
trf_scale
=
trf
.
vertical_scale
(
t
);
int
idx
=
int
(
trf_scale
*
ctx
->
mw
.
zoom_factor_y
/
ctx
->
mw
.
base_zoom_factor
*
(
text_size
+
4
)
-
4
);
idx
=
min
(
idx
,
DRAW_TYPE_SIZE
-
1
);
double
tsize
=
trf_scale
*
ctx
->
mw
.
zoom_factor_y
/
ctx
->
mw
.
base_zoom_factor
*
(
8
+
2
*
text_size
);
glow_eFont
lfont
;
glow_eDrawType
ldraw_type
;
if
(
node
&&
((
GrowNode
*
)
node
)
->
text_font
!=
glow_eFont_No
)
{
lfont
=
((
GrowNode
*
)
node
)
->
text_font
;
ldraw_type
=
((
GrowNode
*
)
node
)
->
text_type
;
}
else
{
lfont
=
font
;
ldraw_type
=
draw_type
;
}
if
(
!
t
)
{
x1
=
int
(
trf
.
x
(
p
.
x
,
p
.
y
)
*
ctx
->
mw
.
zoom_factor_x
)
-
ctx
->
mw
.
offset_x
;
y1
=
int
(
trf
.
y
(
p
.
x
,
p
.
y
)
*
ctx
->
mw
.
zoom_factor_y
)
-
ctx
->
mw
.
offset_y
;
rot
=
(
int
)
trf
.
rot
();
}
else
{
x1
=
int
(
trf
.
x
(
t
,
p
.
x
,
p
.
y
)
*
ctx
->
mw
.
zoom_factor_x
)
-
ctx
->
mw
.
offset_x
;
y1
=
int
(
trf
.
y
(
t
,
p
.
x
,
p
.
y
)
*
ctx
->
mw
.
zoom_factor_y
)
-
ctx
->
mw
.
offset_y
;
rot
=
(
int
)
trf
.
rot
(
t
);
}
if
(
adjustment
==
glow_eAdjustment_Center
)
rot
=
rot
<
0
?
rot
%
360
+
360
:
rot
%
360
;
else
rot
=
0
;
ctx
->
gdraw
->
get_text_extent
(
text
,
strlen
(
text
),
ldraw_type
,
max
(
0
,
idx
),
lfont
,
&
z_width
,
&
z_height
,
&
z_descent
,
tsize
,
rot
);
switch
(
adjustment
)
{
case
glow_eAdjustment_Left
:
break
;
case
glow_eAdjustment_Right
:
x1
-=
z_width
;
break
;
case
glow_eAdjustment_Center
:
switch
(
rot
)
{
case
90
:
x1
-=
z_width
/
2
-
z_descent
;
y1
-=
z_height
/
2
;
break
;
case
270
:
x1
+=
z_width
/
2
-
z_descent
;
y1
+=
z_height
/
2
;
break
;
case
180
:
x1
+=
z_width
/
2
;
y1
-=
z_height
/
2
-
z_descent
;
break
;
default:
x1
-=
z_width
/
2
;
y1
+=
z_height
/
2
-
z_descent
;
}
break
;
}
bold
=
(
draw_type
==
glow_eDrawType_TextHelveticaBold
);
ctx
->
export_jbean
->
text
(
x1
,
y1
,
text
,
draw_type
,
color_drawtype
,
bold
,
idx
,
pass
,
shape_cnt
,
node_cnt
,
fp
);
draw_type
,
color_drawtype
,
bold
,
idx
,
rot
,
pass
,
shape_cnt
,
node_cnt
,
fp
);
}
void
GrowText
::
flip
(
double
x0
,
double
y0
,
glow_eFlipDirection
dir
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment