Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
K
kicad-source-mirror
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Commits
Open sidebar
Elphel
kicad-source-mirror
Commits
66f1de70
Commit
66f1de70
authored
Jul 04, 2011
by
Marco Mattila
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Add horizontal text justification to text items in pcbnew.
parent
160ab816
Changes
11
Show whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
2443 additions
and
1374 deletions
+2443
-1374
base_struct.cpp
common/base_struct.cpp
+7
-4
base_struct.h
include/base_struct.h
+5
-0
class_pcb_text.cpp
pcbnew/class_pcb_text.cpp
+50
-13
dialog_pcb_text_properties.cpp
pcbnew/dialogs/dialog_pcb_text_properties.cpp
+41
-3
dialog_pcb_text_properties.h
pcbnew/dialogs/dialog_pcb_text_properties.h
+7
-13
dialog_pcb_text_properties_base.cpp
pcbnew/dialogs/dialog_pcb_text_properties_base.cpp
+171
-132
dialog_pcb_text_properties_base.fbp
pcbnew/dialogs/dialog_pcb_text_properties_base.fbp
+2083
-1134
dialog_pcb_text_properties_base.h
pcbnew/dialogs/dialog_pcb_text_properties_base.h
+75
-70
edit.cpp
pcbnew/edit.cpp
+0
-2
edit_pcb_text.cpp
pcbnew/edit_pcb_text.cpp
+4
-0
edtxtmod.cpp
pcbnew/edtxtmod.cpp
+0
-3
No files found.
common/base_struct.cpp
View file @
66f1de70
...
...
@@ -230,7 +230,7 @@ EDA_TEXT::~EDA_TEXT()
int
EDA_TEXT
::
LenSize
(
const
wxString
&
aLine
)
const
{
return
ReturnGraphicTextWidth
(
aLine
,
m_Size
.
x
,
m_Italic
,
m_Bold
)
+
m_Thickness
;
return
ReturnGraphicTextWidth
(
aLine
,
m_Size
.
x
,
m_Italic
,
m_Bold
);
}
...
...
@@ -286,7 +286,6 @@ EDA_RECT EDA_TEXT::GetTextBox( int aLine, int aThickness, bool aInvertY ) const
delete
list
;
rect
.
SetSize
(
textsize
);
rect
.
Inflate
(
thickness
/
2
);
// ensure a small margin
/* Now, calculate the rect origin, according to text justification
* At this point the rectangle origin is the text origin (m_Pos).
...
...
@@ -297,6 +296,8 @@ EDA_RECT EDA_TEXT::GetTextBox( int aLine, int aThickness, bool aInvertY ) const
switch
(
m_HJustify
)
{
case
GR_TEXT_HJUSTIFY_LEFT
:
if
(
m_Mirror
)
rect
.
SetX
(
rect
.
GetX
()
-
rect
.
GetWidth
()
);
break
;
case
GR_TEXT_HJUSTIFY_CENTER
:
...
...
@@ -304,6 +305,7 @@ EDA_RECT EDA_TEXT::GetTextBox( int aLine, int aThickness, bool aInvertY ) const
break
;
case
GR_TEXT_HJUSTIFY_RIGHT
:
if
(
!
m_Mirror
)
rect
.
SetX
(
rect
.
GetX
()
-
rect
.
GetWidth
()
);
break
;
}
...
...
@@ -324,6 +326,7 @@ EDA_RECT EDA_TEXT::GetTextBox( int aLine, int aThickness, bool aInvertY ) const
break
;
}
rect
.
Inflate
(
thickness
/
2
);
rect
.
Normalize
();
// Make h and v sizes always >= 0
return
rect
;
...
...
@@ -378,7 +381,7 @@ void EDA_TEXT::Draw( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPoint& aOffset,
aColor
,
aDrawMode
,
aFillMode
,
aAnchor_color
,
i
?
UNSPECIFIED_COLOR
:
aAnchor_color
,
txt
,
pos
);
pos
+=
offset
;
...
...
include/base_struct.h
View file @
66f1de70
...
...
@@ -845,6 +845,11 @@ public:
void
SetText
(
const
wxString
&
aText
)
{
m_Text
=
aText
;
}
wxString
GetText
()
const
{
return
m_Text
;
}
GRTextHorizJustifyType
GetHorizJustify
()
const
{
return
m_HJustify
;
};
GRTextVertJustifyType
GetVertJustify
()
const
{
return
m_VJustify
;
};
void
SetHorizJustify
(
GRTextHorizJustifyType
aType
)
{
m_HJustify
=
aType
;
};
void
SetVertJustify
(
GRTextVertJustifyType
aType
)
{
m_VJustify
=
aType
;
};
};
#endif
/* BASE_STRUCT_H */
pcbnew/class_pcb_text.cpp
View file @
66f1de70
...
...
@@ -16,7 +16,7 @@
#include "trigo.h"
#include "protos.h"
#include "richio.h"
#include "class_drawpanel.h"
/*******************/
/* class TEXTE_PCB */
...
...
@@ -119,8 +119,9 @@ int TEXTE_PCB::ReadTextePcbDescr( LINE_READER* aReader )
{
style
[
0
]
=
0
;
int
normal_display
=
1
;
sscanf
(
line
+
2
,
" %d %d %lX %s
\n
"
,
&
m_Layer
,
&
normal_display
,
&
m_TimeStamp
,
style
);
char
hJustify
=
'l'
;
sscanf
(
line
+
2
,
" %d %d %lX %s %c
\n
"
,
&
m_Layer
,
&
normal_display
,
&
m_TimeStamp
,
style
,
&
hJustify
);
m_Mirror
=
normal_display
?
false
:
true
;
...
...
@@ -133,6 +134,25 @@ int TEXTE_PCB::ReadTextePcbDescr( LINE_READER* aReader )
m_Italic
=
1
;
else
m_Italic
=
0
;
switch
(
hJustify
)
{
case
'l'
:
case
'L'
:
m_HJustify
=
GR_TEXT_HJUSTIFY_LEFT
;
break
;
case
'c'
:
case
'C'
:
m_HJustify
=
GR_TEXT_HJUSTIFY_CENTER
;
break
;
case
'r'
:
case
'R'
:
m_HJustify
=
GR_TEXT_HJUSTIFY_RIGHT
;
break
;
default
:
m_HJustify
=
GR_TEXT_HJUSTIFY_CENTER
;
break
;
}
continue
;
}
}
...
...
@@ -173,9 +193,26 @@ bool TEXTE_PCB::Save( FILE* aFile ) const
fprintf
(
aFile
,
"Po %d %d %d %d %d %d
\n
"
,
m_Pos
.
x
,
m_Pos
.
y
,
m_Size
.
x
,
m_Size
.
y
,
m_Thickness
,
m_Orient
);
fprintf
(
aFile
,
"De %d %d %lX %s
\n
"
,
m_Layer
,
char
hJustify
=
'L'
;
switch
(
m_HJustify
)
{
case
GR_TEXT_HJUSTIFY_LEFT
:
hJustify
=
'L'
;
break
;
case
GR_TEXT_HJUSTIFY_CENTER
:
hJustify
=
'C'
;
break
;
case
GR_TEXT_HJUSTIFY_RIGHT
:
hJustify
=
'R'
;
break
;
default
:
hJustify
=
'C'
;
break
;
}
fprintf
(
aFile
,
"De %d %d %lX %s %c
\n
"
,
m_Layer
,
m_Mirror
?
0
:
1
,
m_TimeStamp
,
style
);
m_TimeStamp
,
style
,
hJustify
);
if
(
fprintf
(
aFile
,
"$EndTEXTPCB
\n
"
)
!=
sizeof
(
"$EndTEXTPCB
\n
"
)
-
1
)
return
false
;
...
...
@@ -193,20 +230,20 @@ bool TEXTE_PCB::Save( FILE* aFile ) const
void
TEXTE_PCB
::
Draw
(
EDA_DRAW_PANEL
*
panel
,
wxDC
*
DC
,
int
DrawMode
,
const
wxPoint
&
offset
)
{
BOARD
*
brd
=
GetBoard
(
);
BOARD
*
brd
=
GetBoard
(
);
if
(
brd
->
IsLayerVisible
(
m_Layer
)
==
false
)
return
;
int
color
=
brd
->
GetLayerColor
(
m_Layer
);
int
color
=
brd
->
GetLayerColor
(
m_Layer
);
GRTraceMode
fillmode
=
FILLED
;
if
(
DisplayOpt
.
DisplayDrawItems
==
SKETCH
)
if
(
DisplayOpt
.
DisplayDrawItems
==
SKETCH
)
fillmode
=
SKETCH
;
int
anchor_color
=
UNSPECIFIED_COLOR
;
if
(
brd
->
IsElementVisible
(
ANCHOR_VISIBLE
)
)
anchor_color
=
brd
->
GetVisibleElementColor
(
ANCHOR_VISIBLE
);
anchor_color
=
brd
->
GetVisibleElementColor
(
ANCHOR_VISIBLE
);
EDA_TEXT
::
Draw
(
panel
,
DC
,
offset
,
(
EDA_Colors
)
color
,
DrawMode
,
fillmode
,
(
EDA_Colors
)
anchor_color
);
...
...
@@ -245,16 +282,16 @@ void TEXTE_PCB::DisplayInfo( EDA_DRAW_FRAME* frame )
frame
->
AppendMsgPanel
(
_
(
"Mirror"
),
_
(
"Yes"
),
DARKGREEN
);
msg
.
Printf
(
wxT
(
"%.1f"
),
(
float
)
m_Orient
/
10
);
frame
->
AppendMsgPanel
(
_
(
"Orient"
),
msg
,
DARKGREEN
);
frame
->
AppendMsgPanel
(
_
(
"Orient
ation
"
),
msg
,
DARKGREEN
);
valeur_param
(
m_Thickness
,
msg
);
frame
->
AppendMsgPanel
(
_
(
"Thickness"
),
msg
,
MAGENTA
);
valeur_param
(
m_Size
.
x
,
msg
);
frame
->
AppendMsgPanel
(
_
(
"
H Size
"
),
msg
,
RED
);
frame
->
AppendMsgPanel
(
_
(
"
Size X
"
),
msg
,
RED
);
valeur_param
(
m_Size
.
y
,
msg
);
frame
->
AppendMsgPanel
(
_
(
"
V Size
"
),
msg
,
RED
);
frame
->
AppendMsgPanel
(
_
(
"
Size Y
"
),
msg
,
RED
);
}
...
...
pcbnew/dialogs/dialog_pcb_text_properties.cpp
View file @
66f1de70
...
...
@@ -58,6 +58,7 @@ DIALOG_PCB_TEXT_PROPERTIES::DIALOG_PCB_TEXT_PROPERTIES( PCB_EDIT_FRAME* parent,
Centre
();
}
/**
* Routine for main window class to launch text properties dialog.
*/
...
...
@@ -70,6 +71,7 @@ void PCB_EDIT_FRAME::InstallTextPCBOptionsFrame( TEXTE_PCB* TextPCB, wxDC* DC )
DrawPanel
->
m_IgnoreMouseEvents
=
FALSE
;
}
void
DIALOG_PCB_TEXT_PROPERTIES
::
MyInit
()
{
SetFocus
();
...
...
@@ -95,11 +97,18 @@ void DIALOG_PCB_TEXT_PROPERTIES::MyInit()
PutValueInLocalUnits
(
*
m_PositionYCtrl
,
m_SelectedPCBText
->
m_Pos
.
y
,
m_Parent
->
m_InternalUnits
);
int
enabledLayers
=
m_Parent
->
GetBoard
()
->
GetEnabledLayers
();
for
(
int
layer
=
0
;
layer
<
NB_LAYERS
;
++
layer
)
{
if
(
enabledLayers
&
(
1
<<
layer
)
)
{
layerList
.
push_back
(
layer
);
int
itemIndex
=
m_LayerSelectionCtrl
->
Append
(
m_Parent
->
GetBoard
()
->
GetLayerName
(
layer
)
);
if
(
m_SelectedPCBText
->
GetLayer
()
==
layer
)
m_LayerSelectionCtrl
->
SetSelection
(
itemIndex
);
}
}
m_LayerSelectionCtrl
->
SetSelection
(
m_SelectedPCBText
->
GetLayer
()
);
switch
(
m_SelectedPCBText
->
m_Orient
)
{
...
...
@@ -127,16 +136,28 @@ void DIALOG_PCB_TEXT_PROPERTIES::MyInit()
else
m_StyleCtrl
->
SetSelection
(
0
);
// Set justification
GRTextHorizJustifyType
hJustify
=
m_SelectedPCBText
->
GetHorizJustify
();
m_justifyChoice
->
SetSelection
(
(
int
)
hJustify
+
1
);
// Set focus on most important control
m_TextContentCtrl
->
SetFocus
();
m_TextContentCtrl
->
SetSelection
(
-
1
,
-
1
);
}
void
DIALOG_PCB_TEXT_PROPERTIES
::
OnClose
(
wxCloseEvent
&
event
)
{
EndModal
(
0
);
}
void
DIALOG_PCB_TEXT_PROPERTIES
::
OnCancelClick
(
wxCommandEvent
&
event
)
{
EndModal
(
wxID_CANCEL
);
}
void
DIALOG_PCB_TEXT_PROPERTIES
::
OnOkClick
(
wxCommandEvent
&
event
)
{
wxPoint
newPosition
;
...
...
@@ -174,6 +195,7 @@ void DIALOG_PCB_TEXT_PROPERTIES::OnOkClick( wxCommandEvent& event )
// Check constraints and set PCB Text size
newSize
.
x
=
ReturnValueFromString
(
g_UserUnit
,
m_SizeXCtrl
->
GetValue
(),
m_Parent
->
m_InternalUnits
);
newSize
.
y
=
ReturnValueFromString
(
g_UserUnit
,
m_SizeYCtrl
->
GetValue
(),
m_Parent
->
m_InternalUnits
);
if
(
newSize
.
x
<
TEXTS_MIN_SIZE
)
newSize
.
x
=
TEXTS_MIN_SIZE
;
if
(
newSize
.
y
<
TEXTS_MIN_SIZE
)
...
...
@@ -196,7 +218,7 @@ void DIALOG_PCB_TEXT_PROPERTIES::OnOkClick( wxCommandEvent& event )
}
// Set the layer on which the PCB text is laying
m_SelectedPCBText
->
SetLayer
(
m_LayerSelectionCtrl
->
GetSelection
()
);
m_SelectedPCBText
->
SetLayer
(
layerList
[
m_LayerSelectionCtrl
->
GetSelection
()]
);
// Set whether the PCB text is mirrored (faced down from layer face perspective)
m_SelectedPCBText
->
m_Mirror
=
(
m_DisplayCtrl
->
GetSelection
()
==
1
)
?
true
:
false
;
...
...
@@ -207,6 +229,22 @@ void DIALOG_PCB_TEXT_PROPERTIES::OnOkClick( wxCommandEvent& event )
// Set whether the PCB text is slanted (it is not italics, as italics has additional curves in style)
m_SelectedPCBText
->
m_Italic
=
m_StyleCtrl
->
GetSelection
()
?
1
:
0
;
// Set justification
switch
(
m_justifyChoice
->
GetSelection
()
)
{
case
0
:
m_SelectedPCBText
->
SetHorizJustify
(
GR_TEXT_HJUSTIFY_LEFT
);
break
;
case
1
:
m_SelectedPCBText
->
SetHorizJustify
(
GR_TEXT_HJUSTIFY_CENTER
);
break
;
case
2
:
m_SelectedPCBText
->
SetHorizJustify
(
GR_TEXT_HJUSTIFY_RIGHT
);
break
;
default
:
break
;
}
// Finally, display new text if there is a context to do so
if
(
m_DC
)
{
...
...
pcbnew/dialogs/dialog_pcb_text_properties.h
View file @
66f1de70
#ifndef __dialog_pcb_text_properties__
#define __dialog_pcb_text_properties__
/**
@file
Subclass of DIALOG_PCB_TEXT_PROPERTIES_BASE, which is generated by wxFormBuilder.
*/
#ifndef DIALOG_PCB_TEXT_PROPERTIES_H
#define DIALOG_PCB_TEXT_PROPERTIES_H
#include <vector>
#include <wx/wx.h>
#include "dialog_pcb_text_properties_base.h"
//// end generated include
class
PCB_EDIT_FRAME
;
class
wxDC
;
class
TEXTE_PCB
;
/** Implementing DIALOG_PCB_TEXT_PROPERTIES_BASE */
...
...
@@ -21,18 +15,18 @@ private:
PCB_EDIT_FRAME
*
m_Parent
;
wxDC
*
m_DC
;
TEXTE_PCB
*
m_SelectedPCBText
;
std
::
vector
<
int
>
layerList
;
void
MyInit
();
protected
:
// Handlers for DIALOG_PCB_TEXT_PROPERTIES_BASE events.
void
OnClose
(
wxCloseEvent
&
event
);
void
OnCancelClick
(
wxCommandEvent
&
event
);
void
OnOkClick
(
wxCommandEvent
&
event
);
public
:
DIALOG_PCB_TEXT_PROPERTIES
(
PCB_EDIT_FRAME
*
parent
,
TEXTE_PCB
*
passedTextPCB
,
wxDC
*
DC
);
//// end generated class members
};
#endif //
__dialog_pcb_text_properties__
#endif //
DIALOG_PCB_TEXT_PROPERTIES_H
pcbnew/dialogs/dialog_pcb_text_properties_base.cpp
View file @
66f1de70
///////////////////////////////////////////////////////////////////////////
// C++ code generated with wxFormBuilder (version
Sep 8 2010)
// C++ code generated with wxFormBuilder (version
Nov 18 2010)
// http://www.wxformbuilder.org/
//
// PLEASE DO "NOT" EDIT THIS FILE!
...
...
@@ -16,15 +16,18 @@ DIALOG_PCB_TEXT_PROPERTIES_BASE::DIALOG_PCB_TEXT_PROPERTIES_BASE( wxWindow* pare
wxBoxSizer
*
bMainSizer
;
bMainSizer
=
new
wxBoxSizer
(
wxVERTICAL
);
m_TextLabel
=
new
wxStaticText
(
this
,
wxID_ANY
,
_
(
"Text content:"
),
wxDefaultPosition
,
wxDefaultSize
,
0
);
wxBoxSizer
*
bSizer9
;
bSizer9
=
new
wxBoxSizer
(
wxVERTICAL
);
m_TextLabel
=
new
wxStaticText
(
this
,
wxID_ANY
,
_
(
"Text:"
),
wxDefaultPosition
,
wxDefaultSize
,
0
);
m_TextLabel
->
Wrap
(
-
1
);
b
MainSizer
->
Add
(
m_TextLabel
,
0
,
wxTOP
|
wxRIGHT
|
wxLEFT
,
5
);
b
Sizer9
->
Add
(
m_TextLabel
,
0
,
wxTOP
|
wxRIGHT
|
wxLEFT
,
5
);
m_TextContentCtrl
=
new
wxTextCtrl
(
this
,
wxID_ANY
,
wxEmptyString
,
wxDefaultPosition
,
wxDefaultSize
,
wxTE_MULTILINE
);
m_TextContentCtrl
->
SetToolTip
(
_
(
"Enter the text placed on selected layer."
)
);
m_TextContentCtrl
->
SetMinSize
(
wxSize
(
400
,
60
)
);
b
MainSizer
->
Add
(
m_TextContentCtrl
,
1
,
wxBOTTOM
|
wxRIGHT
|
wxLEFT
|
wxEXPAND
,
5
);
b
Sizer9
->
Add
(
m_TextContentCtrl
,
1
,
wxBOTTOM
|
wxRIGHT
|
wxLEFT
|
wxEXPAND
,
5
);
wxBoxSizer
*
bSizerLower
;
bSizerLower
=
new
wxBoxSizer
(
wxHORIZONTAL
);
...
...
@@ -34,76 +37,108 @@ DIALOG_PCB_TEXT_PROPERTIES_BASE::DIALOG_PCB_TEXT_PROPERTIES_BASE( wxWindow* pare
m_SizeXLabel
=
new
wxStaticText
(
this
,
wxID_ANY
,
_
(
"Size X"
),
wxDefaultPosition
,
wxDefaultSize
,
0
);
m_SizeXLabel
->
Wrap
(
-
1
);
bSizerLeft
->
Add
(
m_SizeXLabel
,
0
,
wx
RIGHT
|
wxLEFT
,
5
);
bSizerLeft
->
Add
(
m_SizeXLabel
,
0
,
wx
LEFT
|
wxRIGHT
|
wxTOP
,
5
);
m_SizeXCtrl
=
new
wxTextCtrl
(
this
,
wxID_ANY
,
wxEmptyString
,
wxDefaultPosition
,
wxDefaultSize
,
0
);
bSizerLeft
->
Add
(
m_SizeXCtrl
,
0
,
wxBOTTOM
|
wxEXPAND
|
wxLEFT
|
wxRIGHT
,
5
);
m_SizeYLabel
=
new
wxStaticText
(
this
,
wxID_ANY
,
_
(
"Size Y"
),
wxDefaultPosition
,
wxDefaultSize
,
0
);
m_SizeYLabel
->
Wrap
(
-
1
);
bSizerLeft
->
Add
(
m_SizeYLabel
,
0
,
wx
RIGHT
|
wxLEFT
,
5
);
bSizerLeft
->
Add
(
m_SizeYLabel
,
0
,
wx
LEFT
|
wxRIGHT
|
wxTOP
,
5
);
m_SizeYCtrl
=
new
wxTextCtrl
(
this
,
wxID_ANY
,
wxEmptyString
,
wxDefaultPosition
,
wxDefaultSize
,
0
);
bSizerLeft
->
Add
(
m_SizeYCtrl
,
0
,
wxBOTTOM
|
wxEXPAND
|
wxLEFT
|
wxRIGHT
,
5
);
m_ThicknessLabel
=
new
wxStaticText
(
this
,
wxID_ANY
,
_
(
"Thickness"
),
wxDefaultPosition
,
wxDefaultSize
,
0
);
m_ThicknessLabel
->
Wrap
(
-
1
);
bSizerLeft
->
Add
(
m_ThicknessLabel
,
0
,
wx
RIGHT
|
wxLEFT
,
5
);
bSizerLeft
->
Add
(
m_ThicknessLabel
,
0
,
wx
LEFT
|
wxRIGHT
|
wxTOP
,
5
);
m_ThicknessCtrl
=
new
wxTextCtrl
(
this
,
wxID_ANY
,
wxEmptyString
,
wxDefaultPosition
,
wxDefaultSize
,
0
);
bSizerLeft
->
Add
(
m_ThicknessCtrl
,
0
,
wxBOTTOM
|
wxEXPAND
|
wxLEFT
|
wxRIGHT
,
5
);
bSizerLower
->
Add
(
bSizerLeft
,
1
,
0
,
5
);
wxBoxSizer
*
bSizerRight
;
bSizerRight
=
new
wxBoxSizer
(
wxVERTICAL
);
m_PositionXLabel
=
new
wxStaticText
(
this
,
wxID_ANY
,
_
(
"Position X"
),
wxDefaultPosition
,
wxDefaultSize
,
0
);
m_PositionXLabel
->
Wrap
(
-
1
);
bSizer
Left
->
Add
(
m_PositionXLabel
,
0
,
wxRIGHT
|
wxLEFT
,
5
);
bSizer
Right
->
Add
(
m_PositionXLabel
,
0
,
wxLEFT
|
wxRIGHT
|
wxTOP
,
5
);
m_PositionXCtrl
=
new
wxTextCtrl
(
this
,
wxID_ANY
,
wxEmptyString
,
wxDefaultPosition
,
wxDefaultSize
,
0
);
bSizer
Left
->
Add
(
m_PositionXCtrl
,
0
,
wxEXPAND
|
wxBOTTOM
|
wxRIGHT
|
wxLEFT
,
5
);
bSizer
Right
->
Add
(
m_PositionXCtrl
,
0
,
wxEXPAND
|
wxBOTTOM
|
wxRIGHT
|
wxLEFT
,
5
);
m_PositionYLabel
=
new
wxStaticText
(
this
,
wxID_ANY
,
_
(
"Position Y"
),
wxDefaultPosition
,
wxDefaultSize
,
0
);
m_PositionYLabel
->
Wrap
(
-
1
);
bSizer
Left
->
Add
(
m_PositionYLabel
,
0
,
wxRIGHT
|
wxLEFT
,
5
);
bSizer
Right
->
Add
(
m_PositionYLabel
,
0
,
wxLEFT
|
wxRIGHT
|
wxTOP
,
5
);
m_PositionYCtrl
=
new
wxTextCtrl
(
this
,
wxID_ANY
,
wxEmptyString
,
wxDefaultPosition
,
wxDefaultSize
,
0
);
bSizer
Left
->
Add
(
m_PositionYCtrl
,
0
,
wxBOTTOM
|
wxEXPAND
|
wxLEFT
|
wxRIGHT
,
5
);
bSizer
Right
->
Add
(
m_PositionYCtrl
,
0
,
wxBOTTOM
|
wxEXPAND
|
wxLEFT
|
wxRIGHT
,
5
);
m_LayerLabel
=
new
wxStaticText
(
this
,
wxID_ANY
,
_
(
"Layer:"
),
wxDefaultPosition
,
wxDefaultSize
,
0
);
m_LayerLabel
->
Wrap
(
-
1
);
bSizer
Left
->
Add
(
m_LayerLabel
,
0
,
wxRIGHT
|
wxLEFT
,
5
);
bSizer
Right
->
Add
(
m_LayerLabel
,
0
,
wxLEFT
|
wxRIGHT
,
5
);
wxArrayString
m_LayerSelectionCtrlChoices
;
m_LayerSelectionCtrl
=
new
wxChoice
(
this
,
wxID_ANY
,
wxDefaultPosition
,
wxDefaultSize
,
m_LayerSelectionCtrlChoices
,
0
);
m_LayerSelectionCtrl
->
SetSelection
(
0
);
m_LayerSelectionCtrl
->
SetToolTip
(
_
(
"Select the layer on which text should lay."
)
);
bSizer
Left
->
Add
(
m_LayerSelectionCtrl
,
0
,
wxEXPAND
|
wxBOTTOM
|
wxRIGHT
|
wxLEFT
,
5
);
bSizer
Right
->
Add
(
m_LayerSelectionCtrl
,
0
,
wxEXPAND
|
wxBOTTOM
|
wxRIGHT
|
wxLEFT
,
5
);
bSizerLower
->
Add
(
bSizer
Left
,
1
,
0
,
5
);
bSizerLower
->
Add
(
bSizer
Right
,
1
,
0
,
5
);
wxBoxSizer
*
bSizerRight
;
bSizerRight
=
new
wxBoxSizer
(
wxVERTICAL
);
wxBoxSizer
*
bSizer5
;
bSizer5
=
new
wxBoxSizer
(
wxVERTICAL
);
m_staticText8
=
new
wxStaticText
(
this
,
wxID_ANY
,
_
(
"Orientation:"
),
wxDefaultPosition
,
wxDefaultSize
,
0
);
m_staticText8
->
Wrap
(
-
1
);
bSizer5
->
Add
(
m_staticText8
,
0
,
wxLEFT
|
wxRIGHT
,
5
);
wxString
m_OrientationCtrlChoices
[]
=
{
_
(
"0"
),
_
(
"90"
),
_
(
"180"
),
_
(
"-90"
)
};
int
m_OrientationCtrlNChoices
=
sizeof
(
m_OrientationCtrlChoices
)
/
sizeof
(
wxString
);
m_OrientationCtrl
=
new
wx
RadioBox
(
this
,
wxID_ANY
,
_
(
"Orientation"
),
wxDefaultPosition
,
wxDefaultSize
,
m_OrientationCtrlNChoices
,
m_OrientationCtrlChoices
,
2
,
wxRA_SPECIFY_COLS
);
m_OrientationCtrl
=
new
wx
Choice
(
this
,
wxID_ANY
,
wxDefaultPosition
,
wxDefaultSize
,
m_OrientationCtrlNChoices
,
m_OrientationCtrlChoices
,
0
);
m_OrientationCtrl
->
SetSelection
(
0
);
bSizerRight
->
Add
(
m_OrientationCtrl
,
0
,
wxALL
|
wxEXPAND
,
3
);
bSizer5
->
Add
(
m_OrientationCtrl
,
0
,
wxBOTTOM
|
wxEXPAND
|
wxLEFT
|
wxRIGHT
,
5
);
m_staticText9
=
new
wxStaticText
(
this
,
wxID_ANY
,
_
(
"Style:"
),
wxDefaultPosition
,
wxDefaultSize
,
0
);
m_staticText9
->
Wrap
(
-
1
);
bSizer5
->
Add
(
m_staticText9
,
0
,
wxLEFT
|
wxRIGHT
,
5
);
wxString
m_StyleCtrlChoices
[]
=
{
_
(
"Normal"
),
_
(
"Italic"
)
};
int
m_StyleCtrlNChoices
=
sizeof
(
m_StyleCtrlChoices
)
/
sizeof
(
wxString
);
m_StyleCtrl
=
new
wx
RadioBox
(
this
,
wxID_ANY
,
_
(
"Style"
),
wxDefaultPosition
,
wxDefaultSize
,
m_StyleCtrlNChoices
,
m_StyleCtrlChoices
,
1
,
wxRA_SPECIFY_COLS
);
m_StyleCtrl
=
new
wx
Choice
(
this
,
wxID_ANY
,
wxDefaultPosition
,
wxDefaultSize
,
m_StyleCtrlNChoices
,
m_StyleCtrlChoices
,
0
);
m_StyleCtrl
->
SetSelection
(
0
);
bSizerRight
->
Add
(
m_StyleCtrl
,
0
,
wxALL
|
wxEXPAND
,
3
);
bSizer5
->
Add
(
m_StyleCtrl
,
0
,
wxBOTTOM
|
wxEXPAND
|
wxLEFT
|
wxRIGHT
,
5
);
bSizerLower
->
Add
(
bSizer5
,
0
,
wxEXPAND
,
5
);
wxBoxSizer
*
bSizer6
;
bSizer6
=
new
wxBoxSizer
(
wxVERTICAL
);
wxString
m_DisplayCtrlChoices
[]
=
{
_
(
"Normal"
),
_
(
"Mirror"
)
};
m_staticText10
=
new
wxStaticText
(
this
,
wxID_ANY
,
_
(
"Display:"
),
wxDefaultPosition
,
wxDefaultSize
,
0
);
m_staticText10
->
Wrap
(
-
1
);
bSizer6
->
Add
(
m_staticText10
,
0
,
wxLEFT
|
wxRIGHT
,
5
);
wxString
m_DisplayCtrlChoices
[]
=
{
_
(
"Normal"
),
_
(
"Mirrored"
)
};
int
m_DisplayCtrlNChoices
=
sizeof
(
m_DisplayCtrlChoices
)
/
sizeof
(
wxString
);
m_DisplayCtrl
=
new
wx
RadioBox
(
this
,
wxID_ANY
,
_
(
"Display"
),
wxDefaultPosition
,
wxDefaultSize
,
m_DisplayCtrlNChoices
,
m_DisplayCtrlChoices
,
1
,
wxRA_SPECIFY_COLS
);
m_DisplayCtrl
=
new
wx
Choice
(
this
,
wxID_ANY
,
wxDefaultPosition
,
wxDefaultSize
,
m_DisplayCtrlNChoices
,
m_DisplayCtrlChoices
,
0
);
m_DisplayCtrl
->
SetSelection
(
0
);
bSizerRight
->
Add
(
m_DisplayCtrl
,
0
,
wxALL
|
wxEXPAND
,
3
);
bSizer6
->
Add
(
m_DisplayCtrl
,
0
,
wxBOTTOM
|
wxEXPAND
|
wxLEFT
|
wxRIGHT
,
5
);
m_staticText11
=
new
wxStaticText
(
this
,
wxID_ANY
,
_
(
"Justification:"
),
wxDefaultPosition
,
wxDefaultSize
,
0
);
m_staticText11
->
Wrap
(
-
1
);
bSizer6
->
Add
(
m_staticText11
,
0
,
wxLEFT
|
wxRIGHT
,
5
);
bSizerLower
->
Add
(
bSizerRight
,
0
,
0
,
5
);
wxString
m_justifyChoiceChoices
[]
=
{
_
(
"Left"
),
_
(
"Center"
),
_
(
"Right"
)
};
int
m_justifyChoiceNChoices
=
sizeof
(
m_justifyChoiceChoices
)
/
sizeof
(
wxString
);
m_justifyChoice
=
new
wxChoice
(
this
,
wxID_ANY
,
wxDefaultPosition
,
wxDefaultSize
,
m_justifyChoiceNChoices
,
m_justifyChoiceChoices
,
0
);
m_justifyChoice
->
SetSelection
(
0
);
bSizer6
->
Add
(
m_justifyChoice
,
0
,
wxBOTTOM
|
wxEXPAND
|
wxLEFT
|
wxRIGHT
,
5
);
bMainSizer
->
Add
(
bSizerLower
,
0
,
wxEXPAND
,
5
);
bSizerLower
->
Add
(
bSizer6
,
0
,
wxEXPAND
,
5
);
bSizer9
->
Add
(
bSizerLower
,
0
,
wxEXPAND
,
5
);
m_StandardSizer
=
new
wxStdDialogButtonSizer
();
m_StandardSizerOK
=
new
wxButton
(
this
,
wxID_OK
);
...
...
@@ -111,7 +146,9 @@ DIALOG_PCB_TEXT_PROPERTIES_BASE::DIALOG_PCB_TEXT_PROPERTIES_BASE( wxWindow* pare
m_StandardSizerCancel
=
new
wxButton
(
this
,
wxID_CANCEL
);
m_StandardSizer
->
AddButton
(
m_StandardSizerCancel
);
m_StandardSizer
->
Realize
();
bMainSizer
->
Add
(
m_StandardSizer
,
0
,
wxALIGN_BOTTOM
|
wxALIGN_RIGHT
|
wxALL
,
5
);
bSizer9
->
Add
(
m_StandardSizer
,
0
,
wxALIGN_BOTTOM
|
wxALIGN_RIGHT
|
wxALL
,
5
);
bMainSizer
->
Add
(
bSizer9
,
1
,
wxALL
|
wxEXPAND
,
5
);
this
->
SetSizer
(
bMainSizer
);
this
->
Layout
();
...
...
@@ -119,6 +156,7 @@ DIALOG_PCB_TEXT_PROPERTIES_BASE::DIALOG_PCB_TEXT_PROPERTIES_BASE( wxWindow* pare
this
->
Centre
(
wxBOTH
);
// Connect Events
this
->
Connect
(
wxEVT_CLOSE_WINDOW
,
wxCloseEventHandler
(
DIALOG_PCB_TEXT_PROPERTIES_BASE
::
OnClose
)
);
m_StandardSizerCancel
->
Connect
(
wxEVT_COMMAND_BUTTON_CLICKED
,
wxCommandEventHandler
(
DIALOG_PCB_TEXT_PROPERTIES_BASE
::
OnCancelClick
),
NULL
,
this
);
m_StandardSizerOK
->
Connect
(
wxEVT_COMMAND_BUTTON_CLICKED
,
wxCommandEventHandler
(
DIALOG_PCB_TEXT_PROPERTIES_BASE
::
OnOkClick
),
NULL
,
this
);
}
...
...
@@ -126,6 +164,7 @@ DIALOG_PCB_TEXT_PROPERTIES_BASE::DIALOG_PCB_TEXT_PROPERTIES_BASE( wxWindow* pare
DIALOG_PCB_TEXT_PROPERTIES_BASE
::~
DIALOG_PCB_TEXT_PROPERTIES_BASE
()
{
// Disconnect Events
this
->
Disconnect
(
wxEVT_CLOSE_WINDOW
,
wxCloseEventHandler
(
DIALOG_PCB_TEXT_PROPERTIES_BASE
::
OnClose
)
);
m_StandardSizerCancel
->
Disconnect
(
wxEVT_COMMAND_BUTTON_CLICKED
,
wxCommandEventHandler
(
DIALOG_PCB_TEXT_PROPERTIES_BASE
::
OnCancelClick
),
NULL
,
this
);
m_StandardSizerOK
->
Disconnect
(
wxEVT_COMMAND_BUTTON_CLICKED
,
wxCommandEventHandler
(
DIALOG_PCB_TEXT_PROPERTIES_BASE
::
OnOkClick
),
NULL
,
this
);
...
...
pcbnew/dialogs/dialog_pcb_text_properties_base.fbp
View file @
66f1de70
This source diff could not be displayed because it is too large. You can
view the blob
instead.
pcbnew/dialogs/dialog_pcb_text_properties_base.h
View file @
66f1de70
///////////////////////////////////////////////////////////////////////////
// C++ code generated with wxFormBuilder (version
Sep 8 2010)
// C++ code generated with wxFormBuilder (version
Nov 18 2010)
// http://www.wxformbuilder.org/
//
// PLEASE DO "NOT" EDIT THIS FILE!
...
...
@@ -17,9 +17,8 @@
#include <wx/colour.h>
#include <wx/settings.h>
#include <wx/textctrl.h>
#include <wx/choice.h>
#include <wx/sizer.h>
#include <wx/
radiobox.h>
#include <wx/
choice.h>
#include <wx/button.h>
#include <wx/dialog.h>
...
...
@@ -48,21 +47,27 @@ class DIALOG_PCB_TEXT_PROPERTIES_BASE : public wxDialog
wxTextCtrl
*
m_PositionYCtrl
;
wxStaticText
*
m_LayerLabel
;
wxChoice
*
m_LayerSelectionCtrl
;
wxRadioBox
*
m_OrientationCtrl
;
wxRadioBox
*
m_StyleCtrl
;
wxRadioBox
*
m_DisplayCtrl
;
wxStaticText
*
m_staticText8
;
wxChoice
*
m_OrientationCtrl
;
wxStaticText
*
m_staticText9
;
wxChoice
*
m_StyleCtrl
;
wxStaticText
*
m_staticText10
;
wxChoice
*
m_DisplayCtrl
;
wxStaticText
*
m_staticText11
;
wxChoice
*
m_justifyChoice
;
wxStdDialogButtonSizer
*
m_StandardSizer
;
wxButton
*
m_StandardSizerOK
;
wxButton
*
m_StandardSizerCancel
;
// Virtual event handlers, overide them in your derived class
virtual
void
OnClose
(
wxCloseEvent
&
event
)
{
event
.
Skip
();
}
virtual
void
OnCancelClick
(
wxCommandEvent
&
event
)
{
event
.
Skip
();
}
virtual
void
OnOkClick
(
wxCommandEvent
&
event
)
{
event
.
Skip
();
}
public
:
DIALOG_PCB_TEXT_PROPERTIES_BASE
(
wxWindow
*
parent
,
wxWindowID
id
=
wxID_ANY
,
const
wxString
&
title
=
_
(
"Text
item properties"
),
const
wxPoint
&
pos
=
wxDefaultPosition
,
const
wxSize
&
size
=
wxSize
(
433
,
465
),
long
style
=
wxDEFAULT_DIALOG_STYLE
|
wxRESIZE_BORDER
|
wxSYSTEM_MENU
);
DIALOG_PCB_TEXT_PROPERTIES_BASE
(
wxWindow
*
parent
,
wxWindowID
id
=
wxID_ANY
,
const
wxString
&
title
=
_
(
"Text
Item Properties"
),
const
wxPoint
&
pos
=
wxDefaultPosition
,
const
wxSize
&
size
=
wxSize
(
433
,
465
),
long
style
=
wxDEFAULT_DIALOG_STYLE
|
wxRESIZE_BORDER
|
wxSYSTEM_MENU
);
~
DIALOG_PCB_TEXT_PROPERTIES_BASE
();
};
...
...
pcbnew/edit.cpp
View file @
66f1de70
...
...
@@ -1005,8 +1005,6 @@ static void Process_Move_Item( PCB_EDIT_FRAME* frame, EDA_ITEM* DrawStruct, wxDC
if
(
DrawStruct
==
NULL
)
return
;
frame
->
DrawPanel
->
MoveCursorToCrossHair
();
switch
(
DrawStruct
->
Type
()
)
{
case
TYPE_TEXTE
:
...
...
pcbnew/edit_pcb_text.cpp
View file @
66f1de70
...
...
@@ -106,6 +106,10 @@ void PCB_EDIT_FRAME::StartMoveTextePcb( TEXTE_PCB* TextePcb, wxDC* DC )
TextePcb
->
Draw
(
DrawPanel
,
DC
,
GR_XOR
);
TextePcb
->
m_Flags
|=
IS_MOVED
;
TextePcb
->
DisplayInfo
(
this
);
GetScreen
()
->
SetCrossHairPosition
(
TextePcb
->
GetPosition
()
);
DrawPanel
->
MoveCursorToCrossHair
();
DrawPanel
->
SetMouseCapture
(
Move_Texte_Pcb
,
Abort_Edit_Pcb_Text
);
SetCurItem
(
TextePcb
);
DrawPanel
->
m_mouseCaptureCallback
(
DrawPanel
,
DC
,
wxDefaultPosition
,
FALSE
);
...
...
pcbnew/edtxtmod.cpp
View file @
66f1de70
...
...
@@ -174,15 +174,12 @@ void PCB_BASE_FRAME::StartMoveTexteModule( TEXTE_MODULE* Text, wxDC* DC )
MoveVector
.
x
=
MoveVector
.
y
=
0
;
DrawPanel
->
CrossHairOff
(
DC
);
TextInitialPosition
=
Text
->
m_Pos
;
TextInitialOrientation
=
Text
->
m_Orient
;
// Center cursor on initial position of text
GetScreen
()
->
SetCrossHairPosition
(
TextInitialPosition
);
DrawPanel
->
MoveCursorToCrossHair
();
DrawPanel
->
CrossHairOn
(
DC
);
Text
->
DisplayInfo
(
this
);
...
...
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