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
ed0677b4
Commit
ed0677b4
authored
17 years ago
by
dickelbeck
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
pcbnew's onrightclick behavior
parent
e3e0efa1
teardrops
master
review
copy-of-subversion-repo
April-2010-release
No related merge requests found
Changes
4
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
190 additions
and
149 deletions
+190
-149
change_log.txt
change_log.txt
+9
-1
controle.cpp
gerbview/controle.cpp
+137
-135
controle.cpp
pcbnew/controle.cpp
+14
-12
onrightclick.cpp
pcbnew/onrightclick.cpp
+30
-1
No files found.
change_log.txt
View file @
ed0677b4
...
...
@@ -4,6 +4,14 @@ Started 2007-June-11
Please add newer entries at the top, list the date and your name with
email address.
2007-Oct-9 UPDATE Dick Hollenbeck <dick@softplc.com>
================================================================================
+ pcbnew
changed pcbnew/onrightclick.cpp so that a right click only shows the
Selection Clarification menu if there is no selected object or if the
click is in a position different from where the selection was previously
made.
2007-Oct-09 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
...
...
@@ -11,6 +19,7 @@ email address.
cross-probing minor bug solved ( due to last modification): pins/pads not probed
>>>>>>> .r316
2007-Oct-08 UPDATE Geoff Harland <gharlandau@yahoo.com.au>
================================================================================
+ gerbview
...
...
@@ -32,7 +41,6 @@ email address.
- definition CUIVRE_N translated into COPPER_LAYER_N
2007-Oct-07 UPDATE Geoff Harland <gharlandau@yahoo.com.au>
================================================================================
+ all
...
...
This diff is collapsed.
Click to expand it.
gerbview/controle.cpp
View file @
ed0677b4
/********************************************************/
/* Routines generales de gestion des commandes usuelles */
/********************************************************/
/********************************************************/
/* Routines generales de gestion des commandes usuelles */
/********************************************************/
/* fichier controle.cpp */
/* fichier controle.cpp */
/*
Routines d'affichage grille, Boite de coordonnees, Curseurs, marqueurs ...
*/
*
Routines d'affichage grille, Boite de coordonnees, Curseurs, marqueurs ...
*/
#include "fctsys.h"
...
...
@@ -21,32 +22,32 @@
/**********************************************************************/
EDA_BaseStruct
*
WinEDA_GerberFrame
::
GerberGeneralLocateAndDisplay
()
EDA_BaseStruct
*
WinEDA_GerberFrame
::
GerberGeneralLocateAndDisplay
()
{
/**********************************************************************/
{
return
Locate
(
CURSEUR_OFF_GRILLE
);
return
Locate
(
CURSEUR_OFF_GRILLE
);
}
/****************************************************************/
void
WinEDA_BasePcbFrame
::
GeneralControle
(
wxDC
*
DC
,
wxPoint
Mouse
)
void
WinEDA_BasePcbFrame
::
GeneralControle
(
wxDC
*
DC
,
wxPoint
Mouse
)
/****************************************************************/
/* traitement des touches de fonctions utilisees ds tous les menus
Zoom
Redessin d'ecran
Cht Unites
Cht couches
Remise a 0 de l'origine des coordonnees relatives
*/
*
Zoom
*
Redessin d'ecran
*
Cht Unites
*
Cht couches
*
Remise a 0 de l'origine des coordonnees relatives
*/
{
wxSize
delta
;
wxPoint
curpos
,
oldpos
;
int
hotkey
=
0
;
wxSize
delta
;
wxPoint
curpos
,
oldpos
;
int
hotkey
=
0
;
if
(
GetScreen
()
->
IsRefreshReq
()
)
{
RedrawActiveWindow
(
DC
,
TRUE
);
RedrawActiveWindow
(
DC
,
TRUE
);
// We must return here, instead of proceeding.
// If we let the cursor move during a refresh request,
// the cursor be displayed in the wrong place
...
...
@@ -57,103 +58,107 @@ int hotkey = 0;
return
;
}
curpos
=
DrawPanel
->
CursorRealPosition
(
Mouse
);
curpos
=
DrawPanel
->
CursorRealPosition
(
Mouse
);
oldpos
=
GetScreen
()
->
m_Curseur
;
delta
.
x
=
GetScreen
()
->
GetGrid
().
x
/
GetScreen
()
->
GetZoom
();
delta
.
y
=
GetScreen
()
->
GetGrid
().
y
/
GetScreen
()
->
GetZoom
();
if
(
delta
.
x
==
0
)
delta
.
x
=
1
;
if
(
delta
.
y
==
0
)
delta
.
y
=
1
;
if
(
delta
.
x
==
0
)
delta
.
x
=
1
;
if
(
delta
.
y
==
0
)
delta
.
y
=
1
;
switch
(
g_KeyPressed
)
switch
(
g_KeyPressed
)
{
case
EDA_PANNING_UP_KEY
:
OnZoom
(
ID_ZOOM_PANNING_UP
);
case
EDA_PANNING_UP_KEY
:
OnZoom
(
ID_ZOOM_PANNING_UP
);
curpos
=
m_CurrentScreen
->
m_Curseur
;
break
;
case
EDA_PANNING_DOWN_KEY
:
OnZoom
(
ID_ZOOM_PANNING_DOWN
);
case
EDA_PANNING_DOWN_KEY
:
OnZoom
(
ID_ZOOM_PANNING_DOWN
);
curpos
=
m_CurrentScreen
->
m_Curseur
;
break
;
case
EDA_PANNING_LEFT_KEY
:
OnZoom
(
ID_ZOOM_PANNING_LEFT
);
case
EDA_PANNING_LEFT_KEY
:
OnZoom
(
ID_ZOOM_PANNING_LEFT
);
curpos
=
m_CurrentScreen
->
m_Curseur
;
break
;
case
EDA_PANNING_RIGHT_KEY
:
OnZoom
(
ID_ZOOM_PANNING_RIGHT
);
case
EDA_PANNING_RIGHT_KEY
:
OnZoom
(
ID_ZOOM_PANNING_RIGHT
);
curpos
=
m_CurrentScreen
->
m_Curseur
;
break
;
case
EDA_ZOOM_IN_FROM_MOUSE
:
OnZoom
(
ID_ZOOM_PLUS_KEY
);
case
EDA_ZOOM_IN_FROM_MOUSE
:
OnZoom
(
ID_ZOOM_PLUS_KEY
);
curpos
=
GetScreen
()
->
m_Curseur
;
break
;
case
EDA_ZOOM_OUT_FROM_MOUSE
:
OnZoom
(
ID_ZOOM_MOINS_KEY
);
case
EDA_ZOOM_OUT_FROM_MOUSE
:
OnZoom
(
ID_ZOOM_MOINS_KEY
);
curpos
=
GetScreen
()
->
m_Curseur
;
break
;
case
EDA_ZOOM_CENTER_FROM_MOUSE
:
OnZoom
(
ID_ZOOM_CENTER_KEY
);
case
EDA_ZOOM_CENTER_FROM_MOUSE
:
OnZoom
(
ID_ZOOM_CENTER_KEY
);
curpos
=
GetScreen
()
->
m_Curseur
;
break
;
case
WXK_NUMPAD8
:
/* Deplacement curseur vers le haut */
case
WXK_UP
:
case
WXK_NUMPAD8
:
/* Deplacement curseur vers le haut */
case
WXK_UP
:
Mouse
.
y
-=
delta
.
y
;
DrawPanel
->
MouseTo
(
Mouse
);
break
;
DrawPanel
->
MouseTo
(
Mouse
);
break
;
case
WXK_NUMPAD2
:
/* Deplacement curseur vers le bas */
case
WXK_DOWN
:
Mouse
.
y
+=
delta
.
y
;
DrawPanel
->
MouseTo
(
Mouse
);
break
;
DrawPanel
->
MouseTo
(
Mouse
);
break
;
case
WXK_NUMPAD4
:
/* Deplacement curseur vers la gauche */
case
WXK_LEFT
:
case
WXK_LEFT
:
Mouse
.
x
-=
delta
.
x
;
DrawPanel
->
MouseTo
(
Mouse
);
break
;
DrawPanel
->
MouseTo
(
Mouse
);
break
;
case
WXK_NUMPAD6
:
/* Deplacement curseur vers la droite */
case
WXK_RIGHT
:
case
WXK_RIGHT
:
Mouse
.
x
+=
delta
.
x
;
DrawPanel
->
MouseTo
(
Mouse
);
break
;
DrawPanel
->
MouseTo
(
Mouse
);
break
;
default
:
hotkey
=
g_KeyPressed
;
default
:
hotkey
=
g_KeyPressed
;
break
;
}
/* Recalcul de la position du curseur schema */
GetScreen
()
->
m_Curseur
=
curpos
;
/* Placement sur la grille generale */
PutOnGrid
(
&
GetScreen
()
->
m_Curseur
);
PutOnGrid
(
&
GetScreen
()
->
m_Curseur
);
if
(
(
oldpos
.
x
!=
GetScreen
()
->
m_Curseur
.
x
)
||
(
oldpos
.
y
!=
GetScreen
()
->
m_Curseur
.
y
)
)
if
(
(
oldpos
.
x
!=
GetScreen
()
->
m_Curseur
.
x
)
||
(
oldpos
.
y
!=
GetScreen
()
->
m_Curseur
.
y
)
)
{
curpos
=
GetScreen
()
->
m_Curseur
;
GetScreen
()
->
m_Curseur
=
oldpos
;
DrawPanel
->
CursorOff
(
DC
);
DrawPanel
->
CursorOff
(
DC
);
GetScreen
()
->
m_Curseur
=
curpos
;
DrawPanel
->
CursorOn
(
DC
);
DrawPanel
->
CursorOn
(
DC
);
if
(
DrawPanel
->
ManageCurseur
)
if
(
DrawPanel
->
ManageCurseur
)
{
DrawPanel
->
ManageCurseur
(
DrawPanel
,
DC
,
TRUE
);
DrawPanel
->
ManageCurseur
(
DrawPanel
,
DC
,
TRUE
);
}
}
if
(
hotkey
)
if
(
hotkey
)
{
OnHotKey
(
DC
,
hotkey
,
NULL
);
OnHotKey
(
DC
,
hotkey
,
NULL
);
}
if
(
GetScreen
()
->
IsRefreshReq
()
)
...
...
@@ -163,7 +168,4 @@ int hotkey = 0;
SetToolbars
();
Affiche_Status_Box
();
/* Affichage des coord curseur */
}
This diff is collapsed.
Click to expand it.
pcbnew/controle.cpp
View file @
ed0677b4
...
...
@@ -118,11 +118,9 @@ BOARD_ITEM* WinEDA_BasePcbFrame::PcbGeneralLocateAndDisplay( int aHotKeyCode )
m_Collector
->
Collect
(
m_Pcb
,
scanList
,
GetScreen
()
->
RefPos
(
true
),
guide
);
#if 0
// debugging: print out the collected items, showing their priority order too.
for( int i = 0; i<m_Collector->GetCount(); ++i )
(*m_Collector)[i]->Show( 0, std::cout );
#endif
/* Remove redundancies: most of time, zones are found twice,
...
...
@@ -234,6 +232,7 @@ void WinEDA_BasePcbFrame::GeneralControle( wxDC* DC, wxPoint Mouse )
// Save the board after the time out :
int
CurrentTime
=
time
(
NULL
);
if
(
!
GetScreen
()
->
IsModify
()
||
GetScreen
()
->
IsSave
()
)
{
/* If no change, reset the time out */
...
...
@@ -258,10 +257,12 @@ void WinEDA_BasePcbFrame::GeneralControle( wxDC* DC, wxPoint Mouse )
}
curpos
=
DrawPanel
->
CursorRealPosition
(
Mouse
);
oldpos
=
GetScreen
()
->
m_Curseur
;
delta
.
x
=
(
int
)
round
(
(
double
)
GetScreen
()
->
GetGrid
().
x
/
zoom
);
delta
.
y
=
(
int
)
round
(
(
double
)
GetScreen
()
->
GetGrid
().
y
/
zoom
);
if
(
delta
.
x
<=
0
)
delta
.
x
=
1
;
if
(
delta
.
y
<=
0
)
...
...
@@ -361,6 +362,7 @@ void WinEDA_BasePcbFrame::GeneralControle( wxDC* DC, wxPoint Mouse )
if
(
(
m_ID_current_state
!=
ID_TRACK_BUTT
)
&&
(
g_MagneticPadOption
==
capture_cursor_in_track_tool
)
)
pad
=
NULL
;
if
(
keep_on_grid
)
{
if
(
pad
)
// Put cursor on the pad
...
...
This diff is collapsed.
Click to expand it.
pcbnew/onrightclick.cpp
View file @
ed0677b4
...
...
@@ -12,6 +12,7 @@
#include "autorout.h"
#include "id.h"
#include "hotkeys.h"
#include "collectors.h"
/* Bitmaps */
#include "bitmaps.h"
...
...
@@ -161,6 +162,32 @@ bool WinEDA_PcbFrame::OnRightClick( const wxPoint& aMousePos, wxMenu* aPopMenu )
/* Select a proper item */
#if 1 // try this
wxPoint
cursorPos
=
GetScreen
()
->
m_Curseur
;
wxPoint
selectPos
=
m_Collector
->
GetRefPos
();
PutOnGrid
(
&
selectPos
);
// printf( "cursor=(%d, %d) select=(%d,%d)\n", cursorPos.x, cursorPos.y, selectPos.x, selectPos.y );
// If there is no selected item or the right click happened at a position
// other than where the selection was made
if
(
!
item
||
cursorPos
!=
selectPos
)
{
DrawPanel
->
m_AbortRequest
=
false
;
item
=
PcbGeneralLocateAndDisplay
();
if
(
DrawPanel
->
m_AbortRequest
)
{
DrawPanel
->
CursorOn
(
&
dc
);
return
false
;
}
// SetCurItem( item ); no, PcbGeneralLocateAndDisplay() does this
}
#else
if
(
!
item
||
!
item
->
m_Flags
)
{
DrawPanel
->
m_AbortRequest
=
false
;
...
...
@@ -173,6 +200,8 @@ bool WinEDA_PcbFrame::OnRightClick( const wxPoint& aMousePos, wxMenu* aPopMenu )
SetCurItem
(
item
);
}
#endif
item
=
GetCurItem
();
if
(
item
)
...
...
This diff is collapsed.
Click to expand it.
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