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
28cd9963
Commit
28cd9963
authored
Jul 24, 2013
by
jean-pierre charras
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Pl_Editor: add some hot keys. Fix some rounding issues.
parent
99535864
Changes
14
Hide whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
273 additions
and
99 deletions
+273
-99
class_worksheet_dataitem.cpp
common/page_layout/class_worksheet_dataitem.cpp
+8
-11
page_layout_default_description.cpp
common/page_layout/page_layout_default_description.cpp
+3
-41
title_block_shapes.cpp
common/page_layout/title_block_shapes.cpp
+6
-6
class_worksheet_dataitem.h
include/class_worksheet_dataitem.h
+22
-6
properties_frame_base.cpp
pagelayout_editor/dialogs/properties_frame_base.cpp
+5
-0
properties_frame_base.fbp
pagelayout_editor/dialogs/properties_frame_base.fbp
+88
-0
properties_frame_base.h
pagelayout_editor/dialogs/properties_frame_base.h
+2
-0
events_functions.cpp
pagelayout_editor/events_functions.cpp
+13
-2
hotkeys.cpp
pagelayout_editor/hotkeys.cpp
+63
-14
hotkeys.h
pagelayout_editor/hotkeys.h
+9
-8
onrightclick.cpp
pagelayout_editor/onrightclick.cpp
+23
-11
pl_editor_frame.cpp
pagelayout_editor/pl_editor_frame.cpp
+16
-0
properties_frame.cpp
pagelayout_editor/properties_frame.cpp
+13
-0
properties_frame.h
pagelayout_editor/properties_frame.h
+2
-0
No files found.
common/page_layout/class_worksheet_dataitem.cpp
View file @
28cd9963
...
@@ -293,19 +293,16 @@ bool WORKSHEET_DATAITEM::IsInsidePage( int ii ) const
...
@@ -293,19 +293,16 @@ bool WORKSHEET_DATAITEM::IsInsidePage( int ii ) const
{
{
DPOINT
pos
=
GetStartPos
(
ii
);
DPOINT
pos
=
GetStartPos
(
ii
);
if
(
m_RB_Corner
.
x
<
pos
.
x
||
m_LT_Corner
.
x
>
pos
.
x
)
for
(
int
kk
=
0
;
kk
<
1
;
kk
++
)
return
false
;
{
if
(
m_RB_Corner
.
x
<
pos
.
x
||
m_LT_Corner
.
x
>
pos
.
x
)
if
(
m_RB_Corner
.
y
<
pos
.
y
||
m_LT_Corner
.
y
>
pos
.
y
)
return
false
;
return
false
;
pos
=
GetEndPos
(
ii
);
if
(
m_RB_Corner
.
x
<
pos
.
x
||
m_LT_Corner
.
x
>
pos
.
x
)
if
(
m_RB_Corner
.
y
<
pos
.
y
||
m_LT_Corner
.
y
>
pos
.
y
)
return
false
;
return
false
;
if
(
m_RB_Corner
.
y
<
pos
.
y
||
m_LT_Corner
.
y
>
pos
.
y
)
pos
=
GetEndPos
(
ii
);
return
false
;
}
return
true
;
return
true
;
}
}
...
...
common/page_layout/page_layout_default_description.cpp
View file @
28cd9963
...
@@ -27,48 +27,10 @@
...
@@ -27,48 +27,10 @@
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
*/
*/
/* keyword used in page layout description are (see page_layout_reader.keywords)
/* keyword used in page layout description are listed
* page_layout
* in page_layout_reader.keywords file
* setup
* linewidth
* textlinewidth
* textsize
* comment
* option
* page1only
* notonpage1
* line
* rect
* polygon
* tbtext
* ltcorner
* lbcorner
* rbcorner
* rtcorner
* name
* pos
* start
* end
* pts
* xy
* maxlen
* maxheight
* font
* bold
* italic
* size
* justify
* left
* center
* right
* top
* bottom
* rotate
* repeat
* incrx
* incry
* incrlabel
*/
*/
/*
/*
* Items use coordinates.
* Items use coordinates.
* A coordinate is defined relative to a page corner
* A coordinate is defined relative to a page corner
...
...
common/page_layout/title_block_shapes.cpp
View file @
28cd9963
...
@@ -108,15 +108,15 @@ void WS_DRAW_ITEM_LIST::BuildWorkSheetGraphicList(
...
@@ -108,15 +108,15 @@ void WS_DRAW_ITEM_LIST::BuildWorkSheetGraphicList(
// Left top corner position
// Left top corner position
DPOINT
lt_corner
;
DPOINT
lt_corner
;
lt_corner
.
x
=
m_LTmargin
.
x
;
lt_corner
.
x
=
pglayout
.
GetLeftMargin
()
;
lt_corner
.
y
=
m_LTmargin
.
y
;
lt_corner
.
y
=
pglayout
.
GetTopMargin
()
;
WORKSHEET_DATAITEM
::
m_LT_Corner
=
lt_corner
*
milsTomm
;
WORKSHEET_DATAITEM
::
m_LT_Corner
=
lt_corner
;
// Right bottom corner position
// Right bottom corner position
DPOINT
rb_corner
;
DPOINT
rb_corner
;
rb_corner
.
x
=
m_pageSize
.
x
-
m_RBmargin
.
x
;
rb_corner
.
x
=
(
m_pageSize
.
x
*
milsTomm
)
-
pglayout
.
GetRightMargin
()
;
rb_corner
.
y
=
m_pageSize
.
y
-
m_RBmargin
.
y
;
rb_corner
.
y
=
(
m_pageSize
.
y
*
milsTomm
)
-
pglayout
.
GetBottomMargin
()
;
WORKSHEET_DATAITEM
::
m_RB_Corner
=
rb_corner
*
milsTomm
;
WORKSHEET_DATAITEM
::
m_RB_Corner
=
rb_corner
;
WS_DRAW_ITEM_TEXT
*
gtext
;
WS_DRAW_ITEM_TEXT
*
gtext
;
int
pensize
;
int
pensize
;
...
...
include/class_worksheet_dataitem.h
View file @
28cd9963
/**
/**
* @file class_worksheet_data
_
item.h
* @file class_worksheet_dataitem.h
* @brief description of graphic items and texts to build a title block
* @brief description of graphic items and texts to build a title block
*/
*/
...
@@ -9,14 +9,14 @@
...
@@ -9,14 +9,14 @@
#include <vector2d.h>
#include <vector2d.h>
#include <eda_text.h>
#include <eda_text.h>
class
WS_DRAW_ITEM_TEXT
;
// Forward declaration
class
WS_DRAW_ITEM_TEXT
;
// Forward declaration
#define TB_DEFAULT_TEXTSIZE
1.5
// default worksheet text size in mm
#define TB_DEFAULT_TEXTSIZE
1.5
// default worksheet text size in mm
// Text attributes set in m_flags (ORed bits)
// Text attributes set in m_flags (ORed bits)
#define USE_BOLD 1 // has meaning for texts
#define USE_BOLD 1
// has meaning for texts
#define USE_THICK_LINE 1 // equivalent to bold for lines
#define USE_THICK_LINE 1
// equivalent to bold for lines
#define USE_ITALIC (1<<1) // has meaning for texts
#define USE_ITALIC (1<<1)
// has meaning for texts
#define USE_ALT_COLOR (1<<2)
#define USE_ALT_COLOR (1<<2)
#define SELECTED_STATE (1<<3) // When set, use the hight light color to draw item
#define SELECTED_STATE (1<<3) // When set, use the hight light color to draw item
#define LOCATE_STARTPOINT (1<<4) // Used in locate function:set by locate function
#define LOCATE_STARTPOINT (1<<4) // Used in locate function:set by locate function
...
@@ -143,6 +143,12 @@ public:
...
@@ -143,6 +143,12 @@ public:
void
SetFlags
(
int
aMask
)
{
m_flags
|=
aMask
;
}
void
SetFlags
(
int
aMask
)
{
m_flags
|=
aMask
;
}
void
ClearFlags
(
int
aMask
)
{
m_flags
&=
~
aMask
;
}
void
ClearFlags
(
int
aMask
)
{
m_flags
&=
~
aMask
;
}
/**
* @return true if the item has a end point (segment; rect)
* of false (text, polugon)
*/
virtual
bool
HasEndPoint
()
{
return
true
;
}
/**
/**
* @return 0 if the item has no specific option for page 1
* @return 0 if the item has no specific option for page 1
* 1 if the item is only on page 1
* 1 if the item is only on page 1
...
@@ -276,6 +282,11 @@ public:
...
@@ -276,6 +282,11 @@ public:
return
KiROUND
(
m_LineWidth
*
m_WSunits2Iu
);
return
KiROUND
(
m_LineWidth
*
m_WSunits2Iu
);
}
}
/**
* @return false (no end point)
*/
virtual
bool
HasEndPoint
()
{
return
false
;
};
/**
/**
* add a corner in corner list
* add a corner in corner list
* @param aCorner: the item to append
* @param aCorner: the item to append
...
@@ -360,6 +371,11 @@ public:
...
@@ -360,6 +371,11 @@ public:
public
:
public
:
WORKSHEET_DATAITEM_TEXT
(
const
wxChar
*
aTextBase
);
WORKSHEET_DATAITEM_TEXT
(
const
wxChar
*
aTextBase
);
/**
* @return false (no end point)
*/
virtual
bool
HasEndPoint
()
{
return
false
;
};
virtual
int
GetPenSizeUi
()
virtual
int
GetPenSizeUi
()
{
{
if
(
m_LineWidth
)
if
(
m_LineWidth
)
...
...
pagelayout_editor/dialogs/properties_frame_base.cpp
View file @
28cd9963
...
@@ -599,6 +599,9 @@ PANEL_PROPERTIES_BASE::PANEL_PROPERTIES_BASE( wxWindow* parent, wxWindowID id, c
...
@@ -599,6 +599,9 @@ PANEL_PROPERTIES_BASE::PANEL_PROPERTIES_BASE( wxWindow* parent, wxWindowID id, c
m_buttonGeneralOptsOK
->
SetDefault
();
m_buttonGeneralOptsOK
->
SetDefault
();
bSizerGeneralOpts
->
Add
(
m_buttonGeneralOptsOK
,
0
,
wxALL
|
wxEXPAND
,
5
);
bSizerGeneralOpts
->
Add
(
m_buttonGeneralOptsOK
,
0
,
wxALL
|
wxEXPAND
,
5
);
m_buttonDefault
=
new
wxButton
(
m_swGeneralOpts
,
wxID_ANY
,
_
(
"Set to Default"
),
wxDefaultPosition
,
wxDefaultSize
,
0
);
bSizerGeneralOpts
->
Add
(
m_buttonDefault
,
0
,
wxALL
|
wxEXPAND
,
5
);
m_swGeneralOpts
->
SetSizer
(
bSizerGeneralOpts
);
m_swGeneralOpts
->
SetSizer
(
bSizerGeneralOpts
);
m_swGeneralOpts
->
Layout
();
m_swGeneralOpts
->
Layout
();
...
@@ -614,6 +617,7 @@ PANEL_PROPERTIES_BASE::PANEL_PROPERTIES_BASE( wxWindow* parent, wxWindowID id, c
...
@@ -614,6 +617,7 @@ PANEL_PROPERTIES_BASE::PANEL_PROPERTIES_BASE( wxWindow* parent, wxWindowID id, c
// Connect Events
// Connect Events
m_buttonOK
->
Connect
(
wxEVT_COMMAND_BUTTON_CLICKED
,
wxCommandEventHandler
(
PANEL_PROPERTIES_BASE
::
OnAcceptPrms
),
NULL
,
this
);
m_buttonOK
->
Connect
(
wxEVT_COMMAND_BUTTON_CLICKED
,
wxCommandEventHandler
(
PANEL_PROPERTIES_BASE
::
OnAcceptPrms
),
NULL
,
this
);
m_buttonGeneralOptsOK
->
Connect
(
wxEVT_COMMAND_BUTTON_CLICKED
,
wxCommandEventHandler
(
PANEL_PROPERTIES_BASE
::
OnAcceptPrms
),
NULL
,
this
);
m_buttonGeneralOptsOK
->
Connect
(
wxEVT_COMMAND_BUTTON_CLICKED
,
wxCommandEventHandler
(
PANEL_PROPERTIES_BASE
::
OnAcceptPrms
),
NULL
,
this
);
m_buttonDefault
->
Connect
(
wxEVT_COMMAND_BUTTON_CLICKED
,
wxCommandEventHandler
(
PANEL_PROPERTIES_BASE
::
OnSetDefaultValues
),
NULL
,
this
);
}
}
PANEL_PROPERTIES_BASE
::~
PANEL_PROPERTIES_BASE
()
PANEL_PROPERTIES_BASE
::~
PANEL_PROPERTIES_BASE
()
...
@@ -621,5 +625,6 @@ PANEL_PROPERTIES_BASE::~PANEL_PROPERTIES_BASE()
...
@@ -621,5 +625,6 @@ PANEL_PROPERTIES_BASE::~PANEL_PROPERTIES_BASE()
// Disconnect Events
// Disconnect Events
m_buttonOK
->
Disconnect
(
wxEVT_COMMAND_BUTTON_CLICKED
,
wxCommandEventHandler
(
PANEL_PROPERTIES_BASE
::
OnAcceptPrms
),
NULL
,
this
);
m_buttonOK
->
Disconnect
(
wxEVT_COMMAND_BUTTON_CLICKED
,
wxCommandEventHandler
(
PANEL_PROPERTIES_BASE
::
OnAcceptPrms
),
NULL
,
this
);
m_buttonGeneralOptsOK
->
Disconnect
(
wxEVT_COMMAND_BUTTON_CLICKED
,
wxCommandEventHandler
(
PANEL_PROPERTIES_BASE
::
OnAcceptPrms
),
NULL
,
this
);
m_buttonGeneralOptsOK
->
Disconnect
(
wxEVT_COMMAND_BUTTON_CLICKED
,
wxCommandEventHandler
(
PANEL_PROPERTIES_BASE
::
OnAcceptPrms
),
NULL
,
this
);
m_buttonDefault
->
Disconnect
(
wxEVT_COMMAND_BUTTON_CLICKED
,
wxCommandEventHandler
(
PANEL_PROPERTIES_BASE
::
OnSetDefaultValues
),
NULL
,
this
);
}
}
pagelayout_editor/dialogs/properties_frame_base.fbp
View file @
28cd9963
...
@@ -7479,6 +7479,94 @@
...
@@ -7479,6 +7479,94 @@
<event
name=
"OnUpdateUI"
></event>
<event
name=
"OnUpdateUI"
></event>
</object>
</object>
</object>
</object>
<object
class=
"sizeritem"
expanded=
"1"
>
<property
name=
"border"
>
5
</property>
<property
name=
"flag"
>
wxALL|wxEXPAND
</property>
<property
name=
"proportion"
>
0
</property>
<object
class=
"wxButton"
expanded=
"1"
>
<property
name=
"BottomDockable"
>
1
</property>
<property
name=
"LeftDockable"
>
1
</property>
<property
name=
"RightDockable"
>
1
</property>
<property
name=
"TopDockable"
>
1
</property>
<property
name=
"aui_layer"
></property>
<property
name=
"aui_name"
></property>
<property
name=
"aui_position"
></property>
<property
name=
"aui_row"
></property>
<property
name=
"best_size"
></property>
<property
name=
"bg"
></property>
<property
name=
"caption"
></property>
<property
name=
"caption_visible"
>
1
</property>
<property
name=
"center_pane"
>
0
</property>
<property
name=
"close_button"
>
1
</property>
<property
name=
"context_help"
></property>
<property
name=
"context_menu"
>
1
</property>
<property
name=
"default"
>
0
</property>
<property
name=
"default_pane"
>
0
</property>
<property
name=
"dock"
>
Dock
</property>
<property
name=
"dock_fixed"
>
0
</property>
<property
name=
"docking"
>
Left
</property>
<property
name=
"enabled"
>
1
</property>
<property
name=
"fg"
></property>
<property
name=
"floatable"
>
1
</property>
<property
name=
"font"
></property>
<property
name=
"gripper"
>
0
</property>
<property
name=
"hidden"
>
0
</property>
<property
name=
"id"
>
wxID_ANY
</property>
<property
name=
"label"
>
Set to Default
</property>
<property
name=
"max_size"
></property>
<property
name=
"maximize_button"
>
0
</property>
<property
name=
"maximum_size"
></property>
<property
name=
"min_size"
></property>
<property
name=
"minimize_button"
>
0
</property>
<property
name=
"minimum_size"
></property>
<property
name=
"moveable"
>
1
</property>
<property
name=
"name"
>
m_buttonDefault
</property>
<property
name=
"pane_border"
>
1
</property>
<property
name=
"pane_position"
></property>
<property
name=
"pane_size"
></property>
<property
name=
"permission"
>
protected
</property>
<property
name=
"pin_button"
>
1
</property>
<property
name=
"pos"
></property>
<property
name=
"resize"
>
Resizable
</property>
<property
name=
"show"
>
1
</property>
<property
name=
"size"
></property>
<property
name=
"style"
></property>
<property
name=
"subclass"
></property>
<property
name=
"toolbar_pane"
>
0
</property>
<property
name=
"tooltip"
></property>
<property
name=
"validator_data_type"
></property>
<property
name=
"validator_style"
>
wxFILTER_NONE
</property>
<property
name=
"validator_type"
>
wxDefaultValidator
</property>
<property
name=
"validator_variable"
></property>
<property
name=
"window_extra_style"
></property>
<property
name=
"window_name"
></property>
<property
name=
"window_style"
></property>
<event
name=
"OnButtonClick"
>
OnSetDefaultValues
</event>
<event
name=
"OnChar"
></event>
<event
name=
"OnEnterWindow"
></event>
<event
name=
"OnEraseBackground"
></event>
<event
name=
"OnKeyDown"
></event>
<event
name=
"OnKeyUp"
></event>
<event
name=
"OnKillFocus"
></event>
<event
name=
"OnLeaveWindow"
></event>
<event
name=
"OnLeftDClick"
></event>
<event
name=
"OnLeftDown"
></event>
<event
name=
"OnLeftUp"
></event>
<event
name=
"OnMiddleDClick"
></event>
<event
name=
"OnMiddleDown"
></event>
<event
name=
"OnMiddleUp"
></event>
<event
name=
"OnMotion"
></event>
<event
name=
"OnMouseEvents"
></event>
<event
name=
"OnMouseWheel"
></event>
<event
name=
"OnPaint"
></event>
<event
name=
"OnRightDClick"
></event>
<event
name=
"OnRightDown"
></event>
<event
name=
"OnRightUp"
></event>
<event
name=
"OnSetFocus"
></event>
<event
name=
"OnSize"
></event>
<event
name=
"OnUpdateUI"
></event>
</object>
</object>
</object>
</object>
</object>
</object>
</object>
</object>
...
...
pagelayout_editor/dialogs/properties_frame_base.h
View file @
28cd9963
...
@@ -125,9 +125,11 @@ class PANEL_PROPERTIES_BASE : public wxPanel
...
@@ -125,9 +125,11 @@ class PANEL_PROPERTIES_BASE : public wxPanel
wxTextCtrl
*
m_textCtrlDefaultBottomMargin
;
wxTextCtrl
*
m_textCtrlDefaultBottomMargin
;
wxStaticLine
*
m_staticline10
;
wxStaticLine
*
m_staticline10
;
wxButton
*
m_buttonGeneralOptsOK
;
wxButton
*
m_buttonGeneralOptsOK
;
wxButton
*
m_buttonDefault
;
// Virtual event handlers, overide them in your derived class
// Virtual event handlers, overide them in your derived class
virtual
void
OnAcceptPrms
(
wxCommandEvent
&
event
)
{
event
.
Skip
();
}
virtual
void
OnAcceptPrms
(
wxCommandEvent
&
event
)
{
event
.
Skip
();
}
virtual
void
OnSetDefaultValues
(
wxCommandEvent
&
event
)
{
event
.
Skip
();
}
public
:
public
:
...
...
pagelayout_editor/events_functions.cpp
View file @
28cd9963
...
@@ -200,13 +200,17 @@ void PL_EDITOR_FRAME::Process_Special_Functions( wxCommandEvent& event )
...
@@ -200,13 +200,17 @@ void PL_EDITOR_FRAME::Process_Special_Functions( wxCommandEvent& event )
case
ID_POPUP_ITEM_MOVE_START_POINT
:
case
ID_POPUP_ITEM_MOVE_START_POINT
:
item
=
m_treePagelayout
->
GetPageLayoutSelectedItem
();
item
=
m_treePagelayout
->
GetPageLayoutSelectedItem
();
// Ensure flags are properly set
item
->
ClearFlags
(
LOCATE_ENDPOINT
);
item
->
ClearFlags
(
LOCATE_ENDPOINT
);
item
->
SetFlags
(
LOCATE_STARTPOINT
);
MoveItem
(
item
);
MoveItem
(
item
);
break
;
break
;
case
ID_POPUP_ITEM_MOVE_END_POINT
:
case
ID_POPUP_ITEM_MOVE_END_POINT
:
item
=
m_treePagelayout
->
GetPageLayoutSelectedItem
();
item
=
m_treePagelayout
->
GetPageLayoutSelectedItem
();
// Ensure flags are properly set
item
->
ClearFlags
(
LOCATE_STARTPOINT
);
item
->
ClearFlags
(
LOCATE_STARTPOINT
);
item
->
SetFlags
(
LOCATE_ENDPOINT
);
MoveItem
(
item
);
MoveItem
(
item
);
break
;
break
;
...
@@ -292,9 +296,16 @@ void PL_EDITOR_FRAME::MoveItem( WORKSHEET_DATAITEM* aItem )
...
@@ -292,9 +296,16 @@ void PL_EDITOR_FRAME::MoveItem( WORKSHEET_DATAITEM* aItem )
if
(
aItem
->
GetFlags
()
&
(
LOCATE_STARTPOINT
|
LOCATE_ENDPOINT
)
)
if
(
aItem
->
GetFlags
()
&
(
LOCATE_STARTPOINT
|
LOCATE_ENDPOINT
)
)
{
{
GetScreen
()
->
SetCrossHairPosition
(
initialPositionUi
,
false
);
GetScreen
()
->
SetCrossHairPosition
(
initialPositionUi
,
false
);
m_canvas
->
MoveCursorToCrossHair
();
initialCursorPosition
=
GetScreen
()
->
GetCrossHairPosition
();
initialCursorPosition
=
GetScreen
()
->
GetCrossHairPosition
();
m_canvas
->
Refresh
();
if
(
m_canvas
->
IsPointOnDisplay
(
initialCursorPosition
)
)
{
m_canvas
->
MoveCursorToCrossHair
();
m_canvas
->
Refresh
();
}
else
{
RedrawScreen
(
initialCursorPosition
,
true
);
}
}
}
m_canvas
->
SetMouseCapture
(
moveItem
,
abortMoveItem
);
m_canvas
->
SetMouseCapture
(
moveItem
,
abortMoveItem
);
...
...
pagelayout_editor/hotkeys.cpp
View file @
28cd9963
...
@@ -32,7 +32,10 @@
...
@@ -32,7 +32,10 @@
#include <class_drawpanel.h>
#include <class_drawpanel.h>
#include <pl_editor_frame.h>
#include <pl_editor_frame.h>
#include <design_tree_frame.h>
#include <class_worksheet_dataitem.h>
#include <hotkeys.h>
#include <hotkeys.h>
#include <pl_editor_id.h>
/* How to add a new hotkey:
/* How to add a new hotkey:
...
@@ -56,28 +59,49 @@
...
@@ -56,28 +59,49 @@
/* Hotkey list: */
/* Hotkey list: */
static
EDA_HOTKEY
HkResetLocalCoord
(
wxT
(
"Reset Local Coordinates"
),
static
EDA_HOTKEY
HkResetLocalCoord
(
wxT
(
"Reset Local Coordinates"
),
HK_RESET_LOCAL_COORD
,
' '
);
HK_RESET_LOCAL_COORD
,
' '
);
static
EDA_HOTKEY
HkZoomAuto
(
wxT
(
"Zoom Auto"
),
HK_ZOOM_AUTO
,
WXK_HOME
);
static
EDA_HOTKEY
HkZoomAuto
(
wxT
(
"Zoom Auto"
),
HK_ZOOM_AUTO
,
WXK_HOME
,
ID_ZOOM_PAGE
);
static
EDA_HOTKEY
HkZoomCenter
(
wxT
(
"Zoom Center"
),
HK_ZOOM_CENTER
,
WXK_F4
);
static
EDA_HOTKEY
HkZoomCenter
(
wxT
(
"Zoom Center"
),
HK_ZOOM_CENTER
,
WXK_F4
,
static
EDA_HOTKEY
HkZoomRedraw
(
wxT
(
"Zoom Redraw"
),
HK_ZOOM_REDRAW
,
WXK_F3
);
ID_POPUP_ZOOM_CENTER
);
static
EDA_HOTKEY
HkZoomOut
(
wxT
(
"Zoom Out"
),
HK_ZOOM_OUT
,
WXK_F2
);
static
EDA_HOTKEY
HkZoomRedraw
(
wxT
(
"Zoom Redraw"
),
HK_ZOOM_REDRAW
,
WXK_F3
,
ID_ZOOM_REDRAW
);
static
EDA_HOTKEY
HkZoomIn
(
wxT
(
"Zoom In"
),
HK_ZOOM_IN
,
WXK_F1
);
static
EDA_HOTKEY
HkZoomOut
(
wxT
(
"Zoom Out"
),
HK_ZOOM_OUT
,
WXK_F2
,
ID_POPUP_ZOOM_OUT
);
static
EDA_HOTKEY
HkZoomIn
(
wxT
(
"Zoom In"
),
HK_ZOOM_IN
,
WXK_F1
,
ID_POPUP_ZOOM_IN
);
static
EDA_HOTKEY
HkHelp
(
wxT
(
"Help (this window)"
),
HK_HELP
,
'?'
);
static
EDA_HOTKEY
HkHelp
(
wxT
(
"Help (this window)"
),
HK_HELP
,
'?'
);
static
EDA_HOTKEY
HkMoveItem
(
wxT
(
"Move Item"
),
HK_MOVE_ITEM
,
'M'
,
ID_POPUP_ITEM_MOVE
);
static
EDA_HOTKEY
HkMoveStartPoint
(
wxT
(
"Move Start Point"
),
HK_MOVE_START_POINT
,
'S'
,
ID_POPUP_ITEM_MOVE_START_POINT
);
static
EDA_HOTKEY
HkMoveEndPoint
(
wxT
(
"Move End Point"
),
HK_MOVE_END_POINT
,
'E'
,
ID_POPUP_ITEM_MOVE_END_POINT
);
static
EDA_HOTKEY
HkDeleteItem
(
wxT
(
"Move Item"
),
HK_DELETE_ITEM
,
WXK_DELETE
,
ID_POPUP_ITEM_DELETE
);
// Undo Redo
//static EDA_HOTKEY HkUndo( wxT( "Undo" ), HK_UNDO, GR_KB_CTRL + 'Z', (int) wxID_UNDO );
//static EDA_HOTKEY HkRedo( wxT( "Redo" ), HK_REDO, GR_KB_CTRL + 'Y', (int) wxID_REDO );
// List of common hotkey descriptors
// List of common hotkey descriptors
EDA_HOTKEY
*
s_PlEditor_Hotkey_List
[]
=
{
EDA_HOTKEY
*
s_Common_Hotkey_List
[]
=
{
&
HkHelp
,
&
HkHelp
,
&
HkZoomIn
,
&
HkZoomOut
,
&
HkZoomRedraw
,
&
HkZoomCenter
,
&
HkZoomIn
,
&
HkZoomOut
,
&
HkZoomRedraw
,
&
HkZoomCenter
,
&
HkZoomAuto
,
&
HkResetLocalCoord
,
&
HkZoomAuto
,
&
HkResetLocalCoord
,
NULL
NULL
};
};
EDA_HOTKEY
*
s_PlEditor_Hotkey_List
[]
=
{
&
HkMoveItem
,
&
HkMoveStartPoint
,
&
HkMoveEndPoint
,
&
HkDeleteItem
};
// list of sections and corresponding hotkey list for Pl_Editor
// (used to create an hotkey config file)
wxString
s_PlEditorSectionTag
(
wxT
(
"[pl_editor]"
)
);
// list of sections and corresponding hotkey list for GerbView (used to create an hotkey
// config file)
struct
EDA_HOTKEY_CONFIG
s_PlEditor_Hokeys_Descr
[]
=
struct
EDA_HOTKEY_CONFIG
s_PlEditor_Hokeys_Descr
[]
=
{
{
{
&
g_CommonSectionTag
,
s_PlEditor_Hotkey_List
,
NULL
},
{
&
g_CommonSectionTag
,
s_Common_Hotkey_List
,
L"Common keys"
},
{
NULL
,
NULL
,
NULL
}
{
&
s_PlEditorSectionTag
,
s_PlEditor_Hotkey_List
,
L"pl_editor keys"
},
{
NULL
,
NULL
,
NULL
}
};
};
...
@@ -92,6 +116,7 @@ struct EDA_HOTKEY_CONFIG s_PlEditor_Hokeys_Descr[] =
...
@@ -92,6 +116,7 @@ struct EDA_HOTKEY_CONFIG s_PlEditor_Hokeys_Descr[] =
void
PL_EDITOR_FRAME
::
OnHotKey
(
wxDC
*
aDC
,
int
aHotkeyCode
,
void
PL_EDITOR_FRAME
::
OnHotKey
(
wxDC
*
aDC
,
int
aHotkeyCode
,
const
wxPoint
&
aPosition
,
EDA_ITEM
*
aItem
)
const
wxPoint
&
aPosition
,
EDA_ITEM
*
aItem
)
{
{
bool
busy
=
GetScreen
()
->
GetCurItem
()
!=
NULL
;
wxCommandEvent
cmd
(
wxEVT_COMMAND_MENU_SELECTED
);
wxCommandEvent
cmd
(
wxEVT_COMMAND_MENU_SELECTED
);
cmd
.
SetEventObject
(
this
);
cmd
.
SetEventObject
(
this
);
...
@@ -102,12 +127,16 @@ void PL_EDITOR_FRAME::OnHotKey( wxDC* aDC, int aHotkeyCode,
...
@@ -102,12 +127,16 @@ void PL_EDITOR_FRAME::OnHotKey( wxDC* aDC, int aHotkeyCode,
EDA_HOTKEY
*
HK_Descr
=
GetDescriptorFromHotkey
(
aHotkeyCode
,
s_PlEditor_Hotkey_List
);
EDA_HOTKEY
*
HK_Descr
=
GetDescriptorFromHotkey
(
aHotkeyCode
,
s_PlEditor_Hotkey_List
);
if
(
HK_Descr
==
NULL
)
HK_Descr
=
GetDescriptorFromHotkey
(
aHotkeyCode
,
s_Common_Hotkey_List
);
if
(
HK_Descr
==
NULL
)
if
(
HK_Descr
==
NULL
)
return
;
return
;
WORKSHEET_DATAITEM
*
item
;
switch
(
HK_Descr
->
m_Idcommand
)
switch
(
HK_Descr
->
m_Idcommand
)
{
{
default
:
case
HK_NOT_FOUND
:
case
HK_NOT_FOUND
:
return
;
return
;
...
@@ -140,13 +169,33 @@ void PL_EDITOR_FRAME::OnHotKey( wxDC* aDC, int aHotkeyCode,
...
@@ -140,13 +169,33 @@ void PL_EDITOR_FRAME::OnHotKey( wxDC* aDC, int aHotkeyCode,
GetEventHandler
()
->
ProcessEvent
(
cmd
);
GetEventHandler
()
->
ProcessEvent
(
cmd
);
break
;
break
;
case
HK_RESET_LOCAL_COORD
:
/*Reset the relative coord */
case
HK_RESET_LOCAL_COORD
:
// Reset the relative coord
GetScreen
()
->
m_O_Curseur
=
GetScreen
()
->
GetCrossHairPosition
();
GetScreen
()
->
m_O_Curseur
=
GetScreen
()
->
GetCrossHairPosition
();
break
;
break
;
case
HK_SWITCH_UNITS
:
case
HK_MOVE_ITEM
:
g_UserUnit
=
(
g_UserUnit
==
INCHES
)
?
MILLIMETRES
:
INCHES
;
case
HK_MOVE_START_POINT
:
case
HK_MOVE_END_POINT
:
case
HK_DELETE_ITEM
:
if
(
busy
)
break
;
if
(
(
item
=
Locate
(
aPosition
))
==
NULL
)
break
;
// Only rect and lines have a end point.
if
(
HK_Descr
->
m_Idcommand
==
HK_MOVE_END_POINT
&&
!
item
->
HasEndPoint
()
)
break
;
if
(
m_treePagelayout
->
GetPageLayoutSelectedItem
()
!=
item
)
m_treePagelayout
->
SelectCell
(
item
);
cmd
.
SetId
(
HK_Descr
->
m_IdMenuEvent
);
GetEventHandler
()
->
ProcessEvent
(
cmd
);
break
;
break
;
default
:
wxMessageBox
(
wxT
(
"Unknown hotkey"
)
);
return
;
}
}
}
}
pagelayout_editor/hotkeys.h
View file @
28cd9963
/**
/**
*
gerbview
/hotkeys.h
*
@file pagelayout_editor
/hotkeys.h
*/
*/
#ifndef
GERBVIEW
_KOTKEYS_H_
#ifndef
PL_EDITOR
_KOTKEYS_H_
#define
GERBVIEW
_KOTKEYS_H_
#define
PL_EDITOR
_KOTKEYS_H_
#include <hotkeys_basic.h>
#include <hotkeys_basic.h>
...
@@ -12,12 +12,13 @@
...
@@ -12,12 +12,13 @@
// for shared hotkeys id
// for shared hotkeys id
enum
hotkey_id_commnand
{
enum
hotkey_id_commnand
{
HK_SWITCH_UNITS
=
HK_COMMON_END
,
HK_SWITCH_UNITS
=
HK_COMMON_END
,
HK_SWITCH_GBR_ITEMS_DISPLAY_MODE
,
HK_MOVE_ITEM
,
HK_SWITCH_LAYER_TO_NEXT
,
HK_MOVE_START_POINT
,
HK_SWITCH_LAYER_TO_PREVIOUS
HK_MOVE_END_POINT
,
HK_DELETE_ITEM
};
};
// List of hotkey descriptors for
GerbView
.
// List of hotkey descriptors for
PlEditor
.
extern
struct
EDA_HOTKEY_CONFIG
s_PlEditor_Hokeys_Descr
[];
extern
struct
EDA_HOTKEY_CONFIG
s_PlEditor_Hokeys_Descr
[];
#endif //
GERBVIEW
_KOTKEYS_H_
#endif //
PL_EDITOR
_KOTKEYS_H_
pagelayout_editor/onrightclick.cpp
View file @
28cd9963
...
@@ -38,6 +38,7 @@
...
@@ -38,6 +38,7 @@
#include <menus_helpers.h>
#include <menus_helpers.h>
#include <worksheet_shape_builder.h>
#include <worksheet_shape_builder.h>
#include <class_worksheet_dataitem.h>
#include <class_worksheet_dataitem.h>
#include <hotkeys.h>
/* Prepare the right-click pullup menu.
/* Prepare the right-click pullup menu.
...
@@ -46,36 +47,47 @@
...
@@ -46,36 +47,47 @@
bool
PL_EDITOR_FRAME
::
OnRightClick
(
const
wxPoint
&
aPosition
,
wxMenu
*
aPopMenu
)
bool
PL_EDITOR_FRAME
::
OnRightClick
(
const
wxPoint
&
aPosition
,
wxMenu
*
aPopMenu
)
{
{
bool
busy
=
GetScreen
()
->
GetCurItem
()
!=
NULL
;
bool
busy
=
GetScreen
()
->
GetCurItem
()
!=
NULL
;
wxString
msg
;
if
(
!
busy
)
// No item currently edited
if
(
!
busy
)
// No item currently edited
{
{
WORKSHEET_DATAITEM
*
item
=
m_treePagelayout
->
GetPageLayoutSelectedItem
();
WORKSHEET_DATAITEM
*
old_
item
=
m_treePagelayout
->
GetPageLayoutSelectedItem
();
WORKSHEET_DATAITEM
*
new
item
=
Locate
(
aPosition
);
WORKSHEET_DATAITEM
*
item
=
Locate
(
aPosition
);
if
(
newitem
&&
new
item
!=
item
)
if
(
item
&&
old_
item
!=
item
)
{
{
item
=
newitem
;
m_treePagelayout
->
SelectCell
(
item
);
m_treePagelayout
->
SelectCell
(
item
);
m_canvas
->
Refresh
();
m_canvas
->
Refresh
();
}
}
// Add menus to edit and delete the item
// Add menus to edit and delete the item
if
(
new
item
)
if
(
item
)
{
{
if
(
(
newitem
->
GetFlags
()
&
LOCATE_STARTPOINT
)
)
if
(
(
item
->
GetFlags
()
&
LOCATE_STARTPOINT
)
)
AddMenuItem
(
aPopMenu
,
ID_POPUP_ITEM_MOVE_START_POINT
,
_
(
"Move Start Point"
),
{
msg
=
AddHotkeyName
(
_
(
"Move Start Point"
),
s_PlEditor_Hokeys_Descr
,
HK_MOVE_START_POINT
);
AddMenuItem
(
aPopMenu
,
ID_POPUP_ITEM_MOVE_START_POINT
,
msg
,
KiBitmap
(
move_xpm
)
);
KiBitmap
(
move_xpm
)
);
}
if
(
(
item
->
GetFlags
()
&
LOCATE_ENDPOINT
)
)
if
(
(
item
->
GetFlags
()
&
LOCATE_ENDPOINT
)
)
AddMenuItem
(
aPopMenu
,
ID_POPUP_ITEM_MOVE_END_POINT
,
_
(
"Move End Point"
),
{
msg
=
AddHotkeyName
(
_
(
"Move End Point"
),
s_PlEditor_Hokeys_Descr
,
HK_MOVE_END_POINT
);
AddMenuItem
(
aPopMenu
,
ID_POPUP_ITEM_MOVE_END_POINT
,
msg
,
KiBitmap
(
move_xpm
)
);
KiBitmap
(
move_xpm
)
);
}
AddMenuItem
(
aPopMenu
,
ID_POPUP_ITEM_MOVE
,
_
(
"Move"
),
msg
=
AddHotkeyName
(
_
(
"Move Item"
),
s_PlEditor_Hokeys_Descr
,
HK_MOVE_ITEM
);
AddMenuItem
(
aPopMenu
,
ID_POPUP_ITEM_MOVE
,
msg
,
KiBitmap
(
move_xpm
)
);
KiBitmap
(
move_xpm
)
);
aPopMenu
->
AppendSeparator
();
aPopMenu
->
AppendSeparator
();
AddMenuItem
(
aPopMenu
,
ID_POPUP_ITEM_DELETE
,
_
(
"Delete"
),
msg
=
AddHotkeyName
(
_
(
"Delete"
),
s_PlEditor_Hokeys_Descr
,
KiBitmap
(
delete_xpm
)
);
HK_DELETE_ITEM
);
AddMenuItem
(
aPopMenu
,
ID_POPUP_ITEM_DELETE
,
msg
,
KiBitmap
(
delete_xpm
)
);
aPopMenu
->
AppendSeparator
();
aPopMenu
->
AppendSeparator
();
}
}
}
}
...
...
pagelayout_editor/pl_editor_frame.cpp
View file @
28cd9963
...
@@ -408,6 +408,7 @@ void PL_EDITOR_FRAME::UpdateStatusBar()
...
@@ -408,6 +408,7 @@ void PL_EDITOR_FRAME::UpdateStatusBar()
double
dXpos
=
To_User_Unit
(
g_UserUnit
,
coord
.
x
*
Xsign
);
double
dXpos
=
To_User_Unit
(
g_UserUnit
,
coord
.
x
*
Xsign
);
double
dYpos
=
To_User_Unit
(
g_UserUnit
,
coord
.
y
*
Ysign
);
double
dYpos
=
To_User_Unit
(
g_UserUnit
,
coord
.
y
*
Ysign
);
wxString
pagesizeformatter
;
wxString
absformatter
;
wxString
absformatter
;
wxString
locformatter
;
wxString
locformatter
;
...
@@ -415,23 +416,36 @@ void PL_EDITOR_FRAME::UpdateStatusBar()
...
@@ -415,23 +416,36 @@ void PL_EDITOR_FRAME::UpdateStatusBar()
{
{
case
INCHES
:
// Should not be used in page layout editor
case
INCHES
:
// Should not be used in page layout editor
SetStatusText
(
_
(
"inches"
),
5
);
SetStatusText
(
_
(
"inches"
),
5
);
pagesizeformatter
=
wxT
(
"Page size: width %.4g height %.4g"
);
absformatter
=
wxT
(
"X %.4g Y %.4g"
);
absformatter
=
wxT
(
"X %.4g Y %.4g"
);
locformatter
=
wxT
(
"dx %.4g dy %.4g"
);
locformatter
=
wxT
(
"dx %.4g dy %.4g"
);
break
;
break
;
case
MILLIMETRES
:
case
MILLIMETRES
:
SetStatusText
(
_
(
"mm"
),
5
);
SetStatusText
(
_
(
"mm"
),
5
);
pagesizeformatter
=
wxT
(
"Page size: width %.3g height %.3g"
);
absformatter
=
wxT
(
"X %.3g Y %.3g"
);
absformatter
=
wxT
(
"X %.3g Y %.3g"
);
locformatter
=
wxT
(
"dx %.3g dy %.3g"
);
locformatter
=
wxT
(
"dx %.3g dy %.3g"
);
break
;
break
;
case
UNSCALED_UNITS
:
case
UNSCALED_UNITS
:
SetStatusText
(
wxEmptyString
,
5
);
pagesizeformatter
=
wxT
(
"Page size: width %g height %g"
);
absformatter
=
wxT
(
"X %g Y %g"
);
absformatter
=
wxT
(
"X %g Y %g"
);
locformatter
=
wxT
(
"dx %g dy %g"
);
locformatter
=
wxT
(
"dx %g dy %g"
);
break
;
break
;
}
}
wxString
line
;
wxString
line
;
// Display page size
#define milsTomm (25.4/1000)
DSIZE
size
=
GetPageSettings
().
GetSizeMils
();
size
=
size
*
milsTomm
;
line
.
Printf
(
pagesizeformatter
,
size
.
x
,
size
.
y
);
SetStatusText
(
line
,
0
);
// Display abs coordinates
line
.
Printf
(
absformatter
,
dXpos
,
dYpos
);
line
.
Printf
(
absformatter
,
dXpos
,
dYpos
);
SetStatusText
(
line
,
2
);
SetStatusText
(
line
,
2
);
...
@@ -620,6 +634,7 @@ WORKSHEET_DATAITEM* PL_EDITOR_FRAME::Locate( const wxPoint& aPosition )
...
@@ -620,6 +634,7 @@ WORKSHEET_DATAITEM* PL_EDITOR_FRAME::Locate( const wxPoint& aPosition )
{
{
wxArrayString
choices
;
wxArrayString
choices
;
wxString
text
;
wxString
text
;
wxPoint
cursPos
=
screen
->
GetCrossHairPosition
();
for
(
unsigned
ii
=
0
;
ii
<
list
.
size
();
++
ii
)
for
(
unsigned
ii
=
0
;
ii
<
list
.
size
();
++
ii
)
{
{
...
@@ -650,6 +665,7 @@ WORKSHEET_DATAITEM* PL_EDITOR_FRAME::Locate( const wxPoint& aPosition )
...
@@ -650,6 +665,7 @@ WORKSHEET_DATAITEM* PL_EDITOR_FRAME::Locate( const wxPoint& aPosition )
if
(
selection
<
0
)
if
(
selection
<
0
)
return
NULL
;
return
NULL
;
screen
->
SetCrossHairPosition
(
cursPos
);
m_canvas
->
MoveCursorToCrossHair
();
m_canvas
->
MoveCursorToCrossHair
();
drawitem
=
list
[
selection
];
drawitem
=
list
[
selection
];
}
}
...
...
pagelayout_editor/properties_frame.cpp
View file @
28cd9963
...
@@ -289,6 +289,19 @@ void PROPERTIES_FRAME::OnAcceptPrms( wxCommandEvent& event )
...
@@ -289,6 +289,19 @@ void PROPERTIES_FRAME::OnAcceptPrms( wxCommandEvent& event )
m_parent
->
GetCanvas
()
->
Refresh
();
m_parent
->
GetCanvas
()
->
Refresh
();
}
}
void
PROPERTIES_FRAME
::
OnSetDefaultValues
(
wxCommandEvent
&
event
)
{
WORKSHEET_DATAITEM
::
m_DefaultTextSize
=
DSIZE
(
TB_DEFAULT_TEXTSIZE
,
TB_DEFAULT_TEXTSIZE
);
// default thickness in mm
WORKSHEET_DATAITEM
::
m_DefaultLineWidth
=
0.15
;
WORKSHEET_DATAITEM
::
m_DefaultTextThickness
=
0.15
;
CopyPrmsFromGeneralToPanel
();
m_parent
->
GetCanvas
()
->
Refresh
();
}
// Data transfert from properties frame to item parameters
// Data transfert from properties frame to item parameters
bool
PROPERTIES_FRAME
::
CopyPrmsFromPanelToItem
(
WORKSHEET_DATAITEM
*
aItem
)
bool
PROPERTIES_FRAME
::
CopyPrmsFromPanelToItem
(
WORKSHEET_DATAITEM
*
aItem
)
{
{
...
...
pagelayout_editor/properties_frame.h
View file @
28cd9963
...
@@ -47,7 +47,9 @@ public:
...
@@ -47,7 +47,9 @@ public:
PROPERTIES_FRAME
(
PL_EDITOR_FRAME
*
aParent
);
PROPERTIES_FRAME
(
PL_EDITOR_FRAME
*
aParent
);
~
PROPERTIES_FRAME
();
~
PROPERTIES_FRAME
();
// Event functions
void
OnAcceptPrms
(
wxCommandEvent
&
event
);
void
OnAcceptPrms
(
wxCommandEvent
&
event
);
void
OnSetDefaultValues
(
wxCommandEvent
&
event
);
// Data transfert from general properties to widgets
// Data transfert from general properties to widgets
...
...
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