Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
M
magicseteditor
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Locked Files
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Security & Compliance
Security & Compliance
Dependency List
License Compliance
Packages
Packages
Container Registry
Analytics
Analytics
CI / CD
Code Review
Insights
Issues
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
MyCard
magicseteditor
Commits
45cd5cf6
Commit
45cd5cf6
authored
Apr 22, 2007
by
twanvl
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Font name can now be scripted
parent
65c05bde
Changes
12
Hide whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
100 additions
and
74 deletions
+100
-74
src/data/font.cpp
src/data/font.cpp
+41
-32
src/data/font.hpp
src/data/font.hpp
+18
-8
src/data/format/apprentice.cpp
src/data/format/apprentice.cpp
+1
-1
src/data/symbol_font.cpp
src/data/symbol_font.cpp
+12
-9
src/data/symbol_font.hpp
src/data/symbol_font.hpp
+4
-1
src/gui/set/keywords_panel.cpp
src/gui/set/keywords_panel.cpp
+0
-3
src/gui/value/text.cpp
src/gui/value/text.cpp
+2
-2
src/render/text/font.cpp
src/render/text/font.cpp
+4
-4
src/render/text/viewer.cpp
src/render/text/viewer.cpp
+2
-2
src/render/value/information.cpp
src/render/value/information.cpp
+1
-1
src/util/rotation.cpp
src/util/rotation.cpp
+11
-9
src/util/rotation.hpp
src/util/rotation.hpp
+4
-2
No files found.
src/data/font.cpp
View file @
45cd5cf6
...
@@ -11,36 +11,47 @@
...
@@ -11,36 +11,47 @@
// ----------------------------------------------------------------------------- : Font
// ----------------------------------------------------------------------------- : Font
Font
::
Font
()
Font
::
Font
()
:
font
(
*
wxNORMAL_FONT
)
:
name
()
,
size
(
font
.
GetPointSize
())
,
size
(
1
)
,
underline
(
false
)
,
weight_i
(
wxFONTWEIGHT_NORMAL
),
style_i
(
wxFONTSTYLE_NORMAL
)
,
scale_down_to
(
100000
)
,
scale_down_to
(
100000
)
,
shadow_displacement
(
0
,
0
)
,
shadow_displacement
(
0
,
0
)
,
separator_color
(
128
,
128
,
128
)
,
separator_color
(
128
,
128
,
128
)
{}
{}
bool
Font
::
update
(
Context
&
ctx
)
{
bool
Font
::
update
(
Context
&
ctx
)
{
return
color
.
update
(
ctx
)
bool
changes
=
name
.
update
(
ctx
)
|
italic_name
.
update
(
ctx
)
|
size
.
update
(
ctx
)
|
weight
.
update
(
ctx
)
|
style
.
update
(
ctx
)
|
underline
.
update
(
ctx
)
|
color
.
update
(
ctx
)
|
shadow_color
.
update
(
ctx
);
|
shadow_color
.
update
(
ctx
);
weight_i
=
weight
()
==
_
(
"bold"
)
?
wxBOLD
:
wxNORMAL
;
style_i
=
style
()
==
_
(
"italic"
)
?
wxITALIC
:
wxNORMAL
;
return
changes
;
}
}
void
Font
::
initDependencies
(
Context
&
ctx
,
const
Dependency
&
dep
)
const
{
void
Font
::
initDependencies
(
Context
&
ctx
,
const
Dependency
&
dep
)
const
{
name
.
initDependencies
(
ctx
,
dep
);
italic_name
.
initDependencies
(
ctx
,
dep
);
size
.
initDependencies
(
ctx
,
dep
);
weight
.
initDependencies
(
ctx
,
dep
);
style
.
initDependencies
(
ctx
,
dep
);
underline
.
initDependencies
(
ctx
,
dep
);
color
.
initDependencies
(
ctx
,
dep
);
color
.
initDependencies
(
ctx
,
dep
);
shadow_color
.
initDependencies
(
ctx
,
dep
);
shadow_color
.
initDependencies
(
ctx
,
dep
);
}
}
FontP
Font
::
make
(
bool
bold
,
bool
italic
,
bool
placeholder_color
,
bool
code_color
,
Color
*
other_color
)
const
{
FontP
Font
::
make
(
bool
bold
,
bool
italic
,
bool
placeholder_color
,
bool
code_color
,
Color
*
other_color
)
const
{
FontP
f
(
new
Font
(
*
this
));
FontP
f
(
new
Font
(
*
this
));
if
(
bold
)
f
->
font
.
SetWeight
(
wxBOLD
);
if
(
bold
)
f
->
weight_i
=
wxFONTWEIGHT_BOLD
;
if
(
italic
)
{
if
(
italic
)
f
->
style_i
=
wxFONTSTYLE_ITALIC
;
if
(
!
italic_name
.
empty
())
{
f
->
font
.
SetFaceName
(
italic_name
);
}
else
{
f
->
font
.
SetWeight
(
wxBOLD
);
}
}
if
(
code_color
)
{
if
(
code_color
)
{
f
->
color
=
Color
(
128
,
0
,
0
);
f
->
color
=
Color
(
128
,
0
,
0
);
f
->
font
.
SetFamily
(
wxFONTFAMILY_TELETYPE
);
f
->
type
=
TYPEWRITER
;
f
->
font
.
SetFaceName
(
_
(
"Courier New"
));
}
}
if
(
placeholder_color
)
{
if
(
placeholder_color
)
{
f
->
color
=
f
->
separator_color
;
f
->
color
=
f
->
separator_color
;
...
@@ -52,29 +63,27 @@ FontP Font::make(bool bold, bool italic, bool placeholder_color, bool code_color
...
@@ -52,29 +63,27 @@ FontP Font::make(bool bold, bool italic, bool placeholder_color, bool code_color
return
f
;
return
f
;
}
}
void
reflect_font
(
Reader
&
tag
,
Font
&
font
)
{
wxFont
Font
::
toWxFont
(
double
scale
)
const
{
String
name
,
weight
,
style
;
int
size_i
=
scale
*
size
;
double
size
=
-
1
;
if
(
name
().
empty
())
{
wxFont
font
=
*
wxNORMAL_FONT
;
font
.
SetPointSize
(
size
>
1
?
size_i
:
scale
*
font
.
GetPointSize
());
return
font
;
}
else
if
(
type
==
TYPEWRITER
)
{
return
wxFont
(
size_i
,
wxFONTFAMILY_TELETYPE
,
weight_i
,
underline
(),
_
(
"Courier New"
));
}
else
if
(
style_i
==
wxFONTSTYLE_ITALIC
&&
!
italic_name
().
empty
())
{
return
wxFont
(
size_i
,
wxFONTFAMILY_DEFAULT
,
wxFONTSTYLE_NORMAL
,
weight_i
,
underline
(),
italic_name
());
}
else
{
return
wxFont
(
size_i
,
wxFONTFAMILY_DEFAULT
,
style_i
,
weight_i
,
underline
(),
name
());
}
}
IMPLEMENT_REFLECTION
(
Font
)
{
REFLECT
(
name
);
REFLECT
(
name
);
REFLECT
(
size
);
REFLECT
(
size
);
REFLECT
(
weight
);
REFLECT
(
weight
);
REFLECT
(
style
);
REFLECT
(
style
);
if
(
!
name
.
empty
())
font
.
font
.
SetFaceName
(
name
);
REFLECT
(
underline
);
if
(
size
>
0
)
font
.
font
.
SetPointSize
((
int
)
(
font
.
size
=
size
));
if
(
!
weight
.
empty
())
font
.
font
.
SetWeight
(
weight
==
_
(
"bold"
)
?
wxBOLD
:
wxNORMAL
);
if
(
!
style
.
empty
())
font
.
font
.
SetWeight
(
style
==
_
(
"italic"
)
?
wxITALIC
:
wxNORMAL
);
}
template
<
typename
Tag
>
void
reflect_font
(
Tag
&
tag
,
const
Font
&
font
)
{
REFLECT_N
(
"name"
,
font
.
font
.
GetFaceName
());
REFLECT_N
(
"size"
,
font
.
size
);
REFLECT_N
(
"weight"
,
font
.
font
.
GetWeight
()
==
wxBOLD
?
_
(
"bold"
)
:
_
(
"normal"
));
REFLECT_N
(
"style"
,
font
.
font
.
GetStyle
()
==
wxITALIC
?
_
(
"italic"
)
:
_
(
"normal"
));
}
IMPLEMENT_REFLECTION
(
Font
)
{
reflect_font
(
tag
,
*
this
);
REFLECT
(
italic_name
);
REFLECT
(
italic_name
);
REFLECT
(
color
);
REFLECT
(
color
);
REFLECT
(
scale_down_to
);
REFLECT
(
scale_down_to
);
...
...
src/data/font.hpp
View file @
45cd5cf6
...
@@ -21,14 +21,21 @@ DECLARE_POINTER_TYPE(Font);
...
@@ -21,14 +21,21 @@ DECLARE_POINTER_TYPE(Font);
/** Contains additional information about scaling, color and shadow */
/** Contains additional information about scaling, color and shadow */
class
Font
{
class
Font
{
public:
public:
wxFont
font
;
///< The actual wxFont to use
Scriptable
<
String
>
name
;
///< Name of the font
double
size
;
///< Size of the font
Scriptable
<
String
>
italic_name
;
///< Font name for italic text (optional)
double
scale_down_to
;
///< Smallest size to scale down to
Scriptable
<
double
>
size
;
///< Size of the font
Scriptable
<
Color
>
color
;
///< Color to use
Scriptable
<
String
>
weight
,
style
;
///< Weight and style of the font (bold/italic)
Scriptable
<
Color
>
shadow_color
;
///< Color for shadow
Scriptable
<
bool
>
underline
;
///< Underlined?
RealSize
shadow_displacement
;
///< Position of the shadow
int
weight_i
,
style_i
;
///< wx constants for weight and style
String
italic_name
;
///< Font name for italic text (optional)
double
scale_down_to
;
///< Smallest size to scale down to
Color
separator_color
;
///< Color for <sep> text
Scriptable
<
Color
>
color
;
///< Color to use
Scriptable
<
Color
>
shadow_color
;
///< Color for shadow
RealSize
shadow_displacement
;
///< Position of the shadow
Color
separator_color
;
///< Color for <sep> text
enum
{
NORMAL
,
TYPEWRITER
,
///< Use a typewriter font
}
type
;
Font
();
Font
();
...
@@ -43,6 +50,9 @@ class Font {
...
@@ -43,6 +50,9 @@ class Font {
/// Make a bold/italic/placeholder version of this font
/// Make a bold/italic/placeholder version of this font
FontP
make
(
bool
bold
,
bool
italic
,
bool
placeholder_color
,
bool
code_color
,
Color
*
other_color
)
const
;
FontP
make
(
bool
bold
,
bool
italic
,
bool
placeholder_color
,
bool
code_color
,
Color
*
other_color
)
const
;
/// Convert this font to a wxFont
wxFont
toWxFont
(
double
scale
)
const
;
private:
private:
DECLARE_REFLECTION
();
DECLARE_REFLECTION
();
};
};
...
...
src/data/format/apprentice.cpp
View file @
45cd5cf6
...
@@ -676,7 +676,7 @@ void ApprenticeExportWindow::onOk(wxCommandEvent& ev) {
...
@@ -676,7 +676,7 @@ void ApprenticeExportWindow::onOk(wxCommandEvent& ev) {
if
(
set
->
apprentice_code
!=
new_set_code
)
{
if
(
set
->
apprentice_code
!=
new_set_code
)
{
// changed something in the set
// changed something in the set
set
->
apprentice_code
=
new_set_code
;
set
->
apprentice_code
=
new_set_code
;
//
%%set->actions.atSavePoint = false; //
tell the user he needs to save
//
set->actions.atSavePoint = false; // TODO:
tell the user he needs to save
}
}
// Check if apprentice exists
// Check if apprentice exists
if
(
!
wxFileExists
(
settings
.
apprentice_location
+
_
(
"
\\
appr.exe"
)))
{
if
(
!
wxFileExists
(
settings
.
apprentice_location
+
_
(
"
\\
appr.exe"
)))
{
...
...
src/data/symbol_font.cpp
View file @
45cd5cf6
...
@@ -151,6 +151,15 @@ RealSize SymbolInFont::size(Context& ctx, Package& pkg, double size) {
...
@@ -151,6 +151,15 @@ RealSize SymbolInFont::size(Context& ctx, Package& pkg, double size) {
void
SymbolInFont
::
update
(
Context
&
ctx
)
{
void
SymbolInFont
::
update
(
Context
&
ctx
)
{
enabled
.
update
(
ctx
);
enabled
.
update
(
ctx
);
}
}
void
SymbolFont
::
update
(
Context
&
ctx
)
const
{
// update all symbol-in-fonts
FOR_EACH_CONST
(
sym
,
symbols
)
{
sym
->
update
(
ctx
);
}
if
(
text_font
)
{
text_font
->
update
(
ctx
);
}
}
IMPLEMENT_REFLECTION
(
SymbolInFont
)
{
IMPLEMENT_REFLECTION
(
SymbolInFont
)
{
REFLECT
(
code
);
REFLECT
(
code
);
...
@@ -172,10 +181,7 @@ class SymbolFont::DrawableSymbol {
...
@@ -172,10 +181,7 @@ class SymbolFont::DrawableSymbol {
};
};
void
SymbolFont
::
split
(
const
String
&
text
,
Context
&
ctx
,
SplitSymbols
&
out
)
const
{
void
SymbolFont
::
split
(
const
String
&
text
,
Context
&
ctx
,
SplitSymbols
&
out
)
const
{
// update all symbol-in-fonts
update
(
ctx
);
FOR_EACH_CONST
(
sym
,
symbols
)
{
sym
->
update
(
ctx
);
}
// read a single symbol until we are done with the text
// read a single symbol until we are done with the text
for
(
size_t
pos
=
0
;
pos
<
text
.
size
()
;
)
{
for
(
size_t
pos
=
0
;
pos
<
text
.
size
()
;
)
{
// 1. check merged numbers
// 1. check merged numbers
...
@@ -264,7 +270,7 @@ void SymbolFont::drawWithText(RotatedDC& dc, Context& ctx, const RealRect& rect,
...
@@ -264,7 +270,7 @@ void SymbolFont::drawWithText(RotatedDC& dc, Context& ctx, const RealRect& rect,
RealSize
ts
;
RealSize
ts
;
while
(
true
)
{
while
(
true
)
{
if
(
size
<=
0
)
return
;
// text too small
if
(
size
<=
0
)
return
;
// text too small
dc
.
SetFont
(
text_font
->
font
,
size
);
dc
.
SetFont
(
*
text_font
,
size
/
text_font
->
size
);
ts
=
dc
.
GetTextExtent
(
text
);
ts
=
dc
.
GetTextExtent
(
text
);
if
(
ts
.
width
<=
sym_rect
.
width
&&
ts
.
height
<=
sym_rect
.
height
)
{
if
(
ts
.
width
<=
sym_rect
.
width
&&
ts
.
height
<=
sym_rect
.
height
)
{
break
;
// text fits
break
;
// text fits
...
@@ -326,10 +332,7 @@ RealSize SymbolFont::defaultSymbolSize(Context& ctx, double font_size) {
...
@@ -326,10 +332,7 @@ RealSize SymbolFont::defaultSymbolSize(Context& ctx, double font_size) {
wxMenu
*
SymbolFont
::
insertSymbolMenu
(
Context
&
ctx
)
{
wxMenu
*
SymbolFont
::
insertSymbolMenu
(
Context
&
ctx
)
{
if
(
!
processed_insert_symbol_menu
&&
insert_symbol_menu
)
{
if
(
!
processed_insert_symbol_menu
&&
insert_symbol_menu
)
{
// update all symbol-in-fonts
update
(
ctx
);
FOR_EACH_CONST
(
sym
,
symbols
)
{
sym
->
update
(
ctx
);
}
// Make menu
// Make menu
processed_insert_symbol_menu
=
insert_symbol_menu
->
makeMenu
(
ID_INSERT_SYMBOL_MENU_MIN
,
ctx
,
*
this
);
processed_insert_symbol_menu
=
insert_symbol_menu
->
makeMenu
(
ID_INSERT_SYMBOL_MENU_MIN
,
ctx
,
*
this
);
}
}
...
...
src/data/symbol_font.hpp
View file @
45cd5cf6
...
@@ -59,7 +59,7 @@ class SymbolFont : public Packaged {
...
@@ -59,7 +59,7 @@ class SymbolFont : public Packaged {
/// Process a choice from the insert symbol menu
/// Process a choice from the insert symbol menu
/** Return the code representing the symbol */
/** Return the code representing the symbol */
String
insertSymbolCode
(
int
menu_id
)
const
;
String
insertSymbolCode
(
int
menu_id
)
const
;
private:
private:
UInt
img_size
;
///< Font size that the images use
UInt
img_size
;
///< Font size that the images use
UInt
min_size
;
///< Minimum font size
UInt
min_size
;
///< Minimum font size
...
@@ -80,6 +80,9 @@ class SymbolFont : public Packaged {
...
@@ -80,6 +80,9 @@ class SymbolFont : public Packaged {
friend
class
InsertSymbolMenu
;
friend
class
InsertSymbolMenu
;
vector
<
SymbolInFontP
>
symbols
;
///< The individual symbols
vector
<
SymbolInFontP
>
symbols
;
///< The individual symbols
// Script update
void
update
(
Context
&
ctx
)
const
;
/// Find the default symbol
/// Find the default symbol
/** may return nullptr */
/** may return nullptr */
SymbolInFont
*
defaultSymbol
()
const
;
SymbolInFont
*
defaultSymbol
()
const
;
...
...
src/gui/set/keywords_panel.cpp
View file @
45cd5cf6
...
@@ -231,18 +231,15 @@ void KeywordsPanel::onChangeSet() {
...
@@ -231,18 +231,15 @@ void KeywordsPanel::onChangeSet() {
// init text controls
// init text controls
keyword
->
setSet
(
set
);
keyword
->
setSet
(
set
);
keyword
->
getStyle
().
font
.
size
=
16
;
keyword
->
getStyle
().
font
.
size
=
16
;
keyword
->
getStyle
().
font
.
font
.
SetPointSize
(
16
);
keyword
->
getStyle
().
padding_bottom
=
1
;
keyword
->
getStyle
().
padding_bottom
=
1
;
keyword
->
updateSize
();
keyword
->
updateSize
();
match
->
setSet
(
set
);
match
->
setSet
(
set
);
match
->
getStyle
().
font
.
size
=
12
;
match
->
getStyle
().
font
.
size
=
12
;
match
->
getStyle
().
font
.
font
.
SetPointSize
(
12
);
match
->
getStyle
().
padding_bottom
=
1
;
match
->
getStyle
().
padding_bottom
=
1
;
match
->
updateSize
();
match
->
updateSize
();
reminder
->
setSet
(
set
);
reminder
->
setSet
(
set
);
reminder
->
getStyle
().
padding_bottom
=
2
;
reminder
->
getStyle
().
padding_bottom
=
2
;
match
->
getStyle
().
font
.
size
=
10
;
match
->
getStyle
().
font
.
size
=
10
;
match
->
getStyle
().
font
.
font
.
SetPointSize
(
10
);
reminder
->
updateSize
();
reminder
->
updateSize
();
rules
->
setSet
(
set
);
rules
->
setSet
(
set
);
// parameter & mode lists
// parameter & mode lists
...
...
src/gui/value/text.cpp
View file @
45cd5cf6
...
@@ -446,7 +446,7 @@ void TextValueEditor::showCaret() {
...
@@ -446,7 +446,7 @@ void TextValueEditor::showCaret() {
if
(
cursor
.
height
==
0
)
{
if
(
cursor
.
height
==
0
)
{
wxClientDC
dc
(
&
editor
());
wxClientDC
dc
(
&
editor
());
// TODO : high quality?
// TODO : high quality?
dc
.
SetFont
(
style
().
font
.
font
);
dc
.
SetFont
(
style
().
font
.
toWxFont
(
1.0
)
);
int
hi
;
int
hi
;
dc
.
GetTextExtent
(
_
(
" "
),
0
,
&
hi
);
dc
.
GetTextExtent
(
_
(
" "
),
0
,
&
hi
);
cursor
.
height
=
rot
.
trS
(
hi
);
cursor
.
height
=
rot
.
trS
(
hi
);
...
@@ -678,7 +678,7 @@ void TextValueEditor::determineSize(bool force_fit) {
...
@@ -678,7 +678,7 @@ void TextValueEditor::determineSize(bool force_fit) {
wxMemoryDC
dc
;
wxMemoryDC
dc
;
Bitmap
bmp
(
1
,
1
);
Bitmap
bmp
(
1
,
1
);
dc
.
SelectObject
(
bmp
);
dc
.
SelectObject
(
bmp
);
dc
.
SetFont
(
style
().
font
.
font
);
dc
.
SetFont
(
style
().
font
.
toWxFont
(
1.0
)
);
style
().
height
=
dc
.
GetCharHeight
()
+
2
+
style
().
padding_top
+
style
().
padding_bottom
;
style
().
height
=
dc
.
GetCharHeight
()
+
2
+
style
().
padding_top
+
style
().
padding_bottom
;
}
}
}
}
...
...
src/render/text/font.cpp
View file @
45cd5cf6
...
@@ -13,7 +13,7 @@
...
@@ -13,7 +13,7 @@
void
FontTextElement
::
draw
(
RotatedDC
&
dc
,
double
scale
,
const
RealRect
&
rect
,
const
double
*
xs
,
DrawWhat
what
,
size_t
start
,
size_t
end
)
const
{
void
FontTextElement
::
draw
(
RotatedDC
&
dc
,
double
scale
,
const
RealRect
&
rect
,
const
double
*
xs
,
DrawWhat
what
,
size_t
start
,
size_t
end
)
const
{
if
((
what
&
draw_as
)
!=
draw_as
)
return
;
// don't draw
if
((
what
&
draw_as
)
!=
draw_as
)
return
;
// don't draw
dc
.
SetFont
(
font
->
font
,
font
->
size
*
scale
);
dc
.
SetFont
(
*
font
,
scale
);
// draw shadow
// draw shadow
String
text
=
content
.
substr
(
start
-
this
->
start
,
end
-
start
);
String
text
=
content
.
substr
(
start
-
this
->
start
,
end
-
start
);
if
(
!
text
.
empty
()
&&
text
.
GetChar
(
text
.
size
()
-
1
)
==
_
(
'\n'
))
{
if
(
!
text
.
empty
()
&&
text
.
GetChar
(
text
.
size
()
-
1
)
==
_
(
'\n'
))
{
...
@@ -30,7 +30,7 @@ void FontTextElement::draw(RotatedDC& dc, double scale, const RealRect& rect, co
...
@@ -30,7 +30,7 @@ void FontTextElement::draw(RotatedDC& dc, double scale, const RealRect& rect, co
void
FontTextElement
::
getCharInfo
(
RotatedDC
&
dc
,
double
scale
,
vector
<
CharInfo
>&
out
)
const
{
void
FontTextElement
::
getCharInfo
(
RotatedDC
&
dc
,
double
scale
,
vector
<
CharInfo
>&
out
)
const
{
// font
// font
dc
.
SetFont
(
font
->
font
,
font
->
size
*
scale
);
dc
.
SetFont
(
*
font
,
scale
);
// find sizes & breaks
// find sizes & breaks
double
prev_width
=
0
;
double
prev_width
=
0
;
for
(
size_t
i
=
start
;
i
<
end
;
++
i
)
{
for
(
size_t
i
=
start
;
i
<
end
;
++
i
)
{
...
@@ -45,8 +45,8 @@ void FontTextElement::getCharInfo(RotatedDC& dc, double scale, vector<CharInfo>&
...
@@ -45,8 +45,8 @@ void FontTextElement::getCharInfo(RotatedDC& dc, double scale, vector<CharInfo>&
}
}
double
FontTextElement
::
minScale
()
const
{
double
FontTextElement
::
minScale
()
const
{
return
min
(
font
->
size
,
font
->
scale_down_to
)
/
max
(
0.01
,
font
->
size
);
return
min
(
font
->
size
(),
font
->
scale_down_to
)
/
max
(
0.01
,
font
->
size
()
);
}
}
double
FontTextElement
::
scaleStep
()
const
{
double
FontTextElement
::
scaleStep
()
const
{
return
1.
/
max
(
font
->
size
,
1.
);
return
1.
/
max
(
font
->
size
()
,
1.
);
}
}
src/render/text/viewer.cpp
View file @
45cd5cf6
...
@@ -368,7 +368,7 @@ void TextViewer::prepareLines(RotatedDC& dc, const String& text, const TextStyle
...
@@ -368,7 +368,7 @@ void TextViewer::prepareLines(RotatedDC& dc, const String& text, const TextStyle
if
(
style
.
always_symbol
&&
style
.
symbol_font
.
valid
())
{
if
(
style
.
always_symbol
&&
style
.
symbol_font
.
valid
())
{
lines
[
0
].
line_height
=
style
.
symbol_font
.
font
->
defaultSymbolSize
(
ctx
,
style
.
symbol_font
.
size
).
height
;
lines
[
0
].
line_height
=
style
.
symbol_font
.
font
->
defaultSymbolSize
(
ctx
,
style
.
symbol_font
.
size
).
height
;
}
else
{
}
else
{
dc
.
SetFont
(
style
.
font
.
font
);
dc
.
SetFont
(
style
.
font
,
scale
);
lines
[
0
].
line_height
=
dc
.
GetTextExtent
(
_
(
" "
)).
height
;
lines
[
0
].
line_height
=
dc
.
GetTextExtent
(
_
(
" "
)).
height
;
}
}
}
}
...
@@ -378,7 +378,7 @@ void TextViewer::prepareLines(RotatedDC& dc, const String& text, const TextStyle
...
@@ -378,7 +378,7 @@ void TextViewer::prepareLines(RotatedDC& dc, const String& text, const TextStyle
// HACK : fix empty first line before <line>, do this after align, so layout is not affected
// HACK : fix empty first line before <line>, do this after align, so layout is not affected
if
(
lines
.
size
()
>
1
&&
lines
[
0
].
line_height
==
0
)
{
if
(
lines
.
size
()
>
1
&&
lines
[
0
].
line_height
==
0
)
{
dc
.
SetFont
(
style
.
font
.
font
);
dc
.
SetFont
(
style
.
font
,
scale
);
double
h
=
dc
.
GetCharHeight
();
double
h
=
dc
.
GetCharHeight
();
lines
[
0
].
line_height
=
h
;
lines
[
0
].
line_height
=
h
;
lines
[
0
].
top
-=
h
;
lines
[
0
].
top
-=
h
;
...
...
src/render/value/information.cpp
View file @
45cd5cf6
...
@@ -19,7 +19,7 @@ void InfoValueViewer::draw(RotatedDC& dc) {
...
@@ -19,7 +19,7 @@ void InfoValueViewer::draw(RotatedDC& dc) {
}
else
{
}
else
{
dc
.
SetTextForeground
(
style
().
font
.
color
);
dc
.
SetTextForeground
(
style
().
font
.
color
);
dc
.
SetBrush
(
style
().
background_color
);
dc
.
SetBrush
(
style
().
background_color
);
dc
.
SetFont
(
style
().
font
.
font
,
style
().
font
.
size
);
dc
.
SetFont
(
style
().
font
,
1.0
);
}
}
// draw background
// draw background
RealRect
rect
=
style
().
getRect
();
RealRect
rect
=
style
().
getRect
();
...
...
src/util/rotation.cpp
View file @
45cd5cf6
...
@@ -8,6 +8,7 @@
...
@@ -8,6 +8,7 @@
#include <util/rotation.hpp>
#include <util/rotation.hpp>
#include <gfx/gfx.hpp>
#include <gfx/gfx.hpp>
#include <data/font.hpp>
// ----------------------------------------------------------------------------- : Rotation
// ----------------------------------------------------------------------------- : Rotation
...
@@ -179,19 +180,20 @@ void RotatedDC::SetTextForeground(const Color& color) { dc.SetTextForeground(col
...
@@ -179,19 +180,20 @@ void RotatedDC::SetTextForeground(const Color& color) { dc.SetTextForeground(col
void
RotatedDC
::
SetLogicalFunction
(
int
function
)
{
dc
.
SetLogicalFunction
(
function
);
}
void
RotatedDC
::
SetLogicalFunction
(
int
function
)
{
dc
.
SetLogicalFunction
(
function
);
}
void
RotatedDC
::
SetFont
(
const
wxFont
&
font
)
{
void
RotatedDC
::
SetFont
(
const
wxFont
&
font
)
{
if
(
quality
==
QUALITY_LOW
)
{
if
(
quality
==
QUALITY_LOW
&&
zoom
==
1
)
{
dc
.
SetFont
(
font
);
dc
.
SetFont
(
font
);
}
else
{
}
else
{
SetFont
(
font
,
font
.
GetPointSize
());
wxFont
scaled
=
font
;
if
(
quality
==
QUALITY_LOW
)
{
scaled
.
SetPointSize
((
int
)
trS
(
font
.
GetPointSize
()));
}
else
{
scaled
.
SetPointSize
((
int
)
(
trS
(
font
.
GetPointSize
())
*
text_scaling
));
}
dc
.
SetFont
(
scaled
);
}
}
}
}
void
RotatedDC
::
SetFont
(
wxFont
font
,
double
size
)
{
void
RotatedDC
::
SetFont
(
const
Font
&
font
,
double
scale
)
{
if
(
quality
==
QUALITY_LOW
)
{
dc
.
SetFont
(
font
.
toWxFont
(
trS
(
scale
)
*
(
quality
==
QUALITY_LOW
?
1
:
text_scaling
)));
font
.
SetPointSize
((
int
)
trS
(
size
));
}
else
{
font
.
SetPointSize
((
int
)
(
trS
(
size
)
*
text_scaling
));
}
dc
.
SetFont
(
font
);
}
}
double
RotatedDC
::
getFontSizeStep
()
const
{
double
RotatedDC
::
getFontSizeStep
()
const
{
...
...
src/util/rotation.hpp
View file @
45cd5cf6
...
@@ -13,6 +13,8 @@
...
@@ -13,6 +13,8 @@
#include <util/real_point.hpp>
#include <util/real_point.hpp>
#include <gfx/gfx.hpp>
#include <gfx/gfx.hpp>
class
Font
;
// ----------------------------------------------------------------------------- : Rotation
// ----------------------------------------------------------------------------- : Rotation
/// An object that can rotate coordinates inside a specified rectangle
/// An object that can rotate coordinates inside a specified rectangle
...
@@ -158,8 +160,8 @@ class RotatedDC : public Rotation {
...
@@ -158,8 +160,8 @@ class RotatedDC : public Rotation {
void
SetFont
(
const
wxFont
&
font
);
void
SetFont
(
const
wxFont
&
font
);
/// Set the font, scales for zoom and high_quality
/// Set the font, scales for zoom and high_quality
/** The font
will get the given (internal) point size
*/
/** The font
size will be multiplied by 'scale'
*/
void
SetFont
(
wxFont
font
,
double
siz
e
);
void
SetFont
(
const
Font
&
font
,
double
scal
e
);
/// Steps to use when decrementing font size
/// Steps to use when decrementing font size
double
getFontSizeStep
()
const
;
double
getFontSizeStep
()
const
;
...
...
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