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
Oct 10, 2007
by
dickelbeck
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
pcbnew's onrightclick behavior
parent
e3e0efa1
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
...
@@ -4,6 +4,14 @@ Started 2007-June-11
Please add newer entries at the top, list the date and your name with
Please add newer entries at the top, list the date and your name with
email address.
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>
2007-Oct-09 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
================================================================================
...
@@ -11,6 +19,7 @@ email address.
...
@@ -11,6 +19,7 @@ email address.
cross-probing minor bug solved ( due to last modification): pins/pads not probed
cross-probing minor bug solved ( due to last modification): pins/pads not probed
>>>>>>> .r316
2007-Oct-08 UPDATE Geoff Harland <gharlandau@yahoo.com.au>
2007-Oct-08 UPDATE Geoff Harland <gharlandau@yahoo.com.au>
================================================================================
================================================================================
+ gerbview
+ gerbview
...
@@ -32,7 +41,6 @@ email address.
...
@@ -32,7 +41,6 @@ email address.
- definition CUIVRE_N translated into COPPER_LAYER_N
- definition CUIVRE_N translated into COPPER_LAYER_N
2007-Oct-07 UPDATE Geoff Harland <gharlandau@yahoo.com.au>
2007-Oct-07 UPDATE Geoff Harland <gharlandau@yahoo.com.au>
================================================================================
================================================================================
+ all
+ all
...
...
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"
#include "fctsys.h"
...
@@ -21,32 +22,32 @@
...
@@ -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
/* traitement des touches de fonctions utilisees ds tous les menus
Zoom
*
Zoom
Redessin d'ecran
*
Redessin d'ecran
Cht Unites
*
Cht Unites
Cht couches
*
Cht couches
Remise a 0 de l'origine des coordonnees relatives
*
Remise a 0 de l'origine des coordonnees relatives
*/
*/
{
{
wxSize
delta
;
wxSize
delta
;
wxPoint
curpos
,
oldpos
;
wxPoint
curpos
,
oldpos
;
int
hotkey
=
0
;
int
hotkey
=
0
;
if
(
GetScreen
()
->
IsRefreshReq
()
)
if
(
GetScreen
()
->
IsRefreshReq
()
)
{
{
RedrawActiveWindow
(
DC
,
TRUE
);
RedrawActiveWindow
(
DC
,
TRUE
);
// We must return here, instead of proceeding.
// We must return here, instead of proceeding.
// If we let the cursor move during a refresh request,
// If we let the cursor move during a refresh request,
// the cursor be displayed in the wrong place
// the cursor be displayed in the wrong place
...
@@ -57,103 +58,107 @@ int hotkey = 0;
...
@@ -57,103 +58,107 @@ int hotkey = 0;
return
;
return
;
}
}
curpos
=
DrawPanel
->
CursorRealPosition
(
Mouse
);
curpos
=
DrawPanel
->
CursorRealPosition
(
Mouse
);
oldpos
=
GetScreen
()
->
m_Curseur
;
oldpos
=
GetScreen
()
->
m_Curseur
;
delta
.
x
=
GetScreen
()
->
GetGrid
().
x
/
GetScreen
()
->
GetZoom
();
delta
.
x
=
GetScreen
()
->
GetGrid
().
x
/
GetScreen
()
->
GetZoom
();
delta
.
y
=
GetScreen
()
->
GetGrid
().
y
/
GetScreen
()
->
GetZoom
();
delta
.
y
=
GetScreen
()
->
GetGrid
().
y
/
GetScreen
()
->
GetZoom
();
if
(
delta
.
x
==
0
)
delta
.
x
=
1
;
if
(
delta
.
x
==
0
)
if
(
delta
.
y
==
0
)
delta
.
y
=
1
;
delta
.
x
=
1
;
if
(
delta
.
y
==
0
)
delta
.
y
=
1
;
switch
(
g_KeyPressed
)
switch
(
g_KeyPressed
)
{
{
case
EDA_PANNING_UP_KEY
:
case
EDA_PANNING_UP_KEY
:
OnZoom
(
ID_ZOOM_PANNING_UP
);
OnZoom
(
ID_ZOOM_PANNING_UP
);
curpos
=
m_CurrentScreen
->
m_Curseur
;
curpos
=
m_CurrentScreen
->
m_Curseur
;
break
;
break
;
case
EDA_PANNING_DOWN_KEY
:
case
EDA_PANNING_DOWN_KEY
:
OnZoom
(
ID_ZOOM_PANNING_DOWN
);
OnZoom
(
ID_ZOOM_PANNING_DOWN
);
curpos
=
m_CurrentScreen
->
m_Curseur
;
curpos
=
m_CurrentScreen
->
m_Curseur
;
break
;
break
;
case
EDA_PANNING_LEFT_KEY
:
case
EDA_PANNING_LEFT_KEY
:
OnZoom
(
ID_ZOOM_PANNING_LEFT
);
OnZoom
(
ID_ZOOM_PANNING_LEFT
);
curpos
=
m_CurrentScreen
->
m_Curseur
;
curpos
=
m_CurrentScreen
->
m_Curseur
;
break
;
break
;
case
EDA_PANNING_RIGHT_KEY
:
case
EDA_PANNING_RIGHT_KEY
:
OnZoom
(
ID_ZOOM_PANNING_RIGHT
);
OnZoom
(
ID_ZOOM_PANNING_RIGHT
);
curpos
=
m_CurrentScreen
->
m_Curseur
;
curpos
=
m_CurrentScreen
->
m_Curseur
;
break
;
break
;
case
EDA_ZOOM_IN_FROM_MOUSE
:
case
EDA_ZOOM_IN_FROM_MOUSE
:
OnZoom
(
ID_ZOOM_PLUS_KEY
);
OnZoom
(
ID_ZOOM_PLUS_KEY
);
curpos
=
GetScreen
()
->
m_Curseur
;
curpos
=
GetScreen
()
->
m_Curseur
;
break
;
break
;
case
EDA_ZOOM_OUT_FROM_MOUSE
:
case
EDA_ZOOM_OUT_FROM_MOUSE
:
OnZoom
(
ID_ZOOM_MOINS_KEY
);
OnZoom
(
ID_ZOOM_MOINS_KEY
);
curpos
=
GetScreen
()
->
m_Curseur
;
curpos
=
GetScreen
()
->
m_Curseur
;
break
;
break
;
case
EDA_ZOOM_CENTER_FROM_MOUSE
:
case
EDA_ZOOM_CENTER_FROM_MOUSE
:
OnZoom
(
ID_ZOOM_CENTER_KEY
);
OnZoom
(
ID_ZOOM_CENTER_KEY
);
curpos
=
GetScreen
()
->
m_Curseur
;
curpos
=
GetScreen
()
->
m_Curseur
;
break
;
break
;
case
WXK_NUMPAD8
:
/* Deplacement curseur vers le haut */
case
WXK_NUMPAD8
:
/* Deplacement curseur vers le haut */
case
WXK_UP
:
case
WXK_UP
:
Mouse
.
y
-=
delta
.
y
;
Mouse
.
y
-=
delta
.
y
;
DrawPanel
->
MouseTo
(
Mouse
);
DrawPanel
->
MouseTo
(
Mouse
);
break
;
break
;
case
WXK_NUMPAD2
:
/* Deplacement curseur vers le bas */
case
WXK_NUMPAD2
:
/* Deplacement curseur vers le bas */
case
WXK_DOWN
:
case
WXK_DOWN
:
Mouse
.
y
+=
delta
.
y
;
Mouse
.
y
+=
delta
.
y
;
DrawPanel
->
MouseTo
(
Mouse
);
DrawPanel
->
MouseTo
(
Mouse
);
break
;
break
;
case
WXK_NUMPAD4
:
/* Deplacement curseur vers la gauche */
case
WXK_NUMPAD4
:
/* Deplacement curseur vers la gauche */
case
WXK_LEFT
:
case
WXK_LEFT
:
Mouse
.
x
-=
delta
.
x
;
Mouse
.
x
-=
delta
.
x
;
DrawPanel
->
MouseTo
(
Mouse
);
DrawPanel
->
MouseTo
(
Mouse
);
break
;
break
;
case
WXK_NUMPAD6
:
/* Deplacement curseur vers la droite */
case
WXK_NUMPAD6
:
/* Deplacement curseur vers la droite */
case
WXK_RIGHT
:
case
WXK_RIGHT
:
Mouse
.
x
+=
delta
.
x
;
Mouse
.
x
+=
delta
.
x
;
DrawPanel
->
MouseTo
(
Mouse
);
DrawPanel
->
MouseTo
(
Mouse
);
break
;
break
;
default
:
hotkey
=
g_KeyPressed
;
default
:
hotkey
=
g_KeyPressed
;
break
;
break
;
}
}
/* Recalcul de la position du curseur schema */
/* Recalcul de la position du curseur schema */
GetScreen
()
->
m_Curseur
=
curpos
;
GetScreen
()
->
m_Curseur
=
curpos
;
/* Placement sur la grille generale */
/* Placement sur la grille generale */
PutOnGrid
(
&
GetScreen
()
->
m_Curseur
);
PutOnGrid
(
&
GetScreen
()
->
m_Curseur
);
if
(
(
oldpos
.
x
!=
GetScreen
()
->
m_Curseur
.
x
)
||
if
(
(
oldpos
.
x
!=
GetScreen
()
->
m_Curseur
.
x
)
(
oldpos
.
y
!=
GetScreen
()
->
m_Curseur
.
y
)
)
||
(
oldpos
.
y
!=
GetScreen
()
->
m_Curseur
.
y
)
)
{
{
curpos
=
GetScreen
()
->
m_Curseur
;
curpos
=
GetScreen
()
->
m_Curseur
;
GetScreen
()
->
m_Curseur
=
oldpos
;
GetScreen
()
->
m_Curseur
=
oldpos
;
DrawPanel
->
CursorOff
(
DC
);
DrawPanel
->
CursorOff
(
DC
);
GetScreen
()
->
m_Curseur
=
curpos
;
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
()
)
if
(
GetScreen
()
->
IsRefreshReq
()
)
...
@@ -163,7 +168,4 @@ int hotkey = 0;
...
@@ -163,7 +168,4 @@ int hotkey = 0;
SetToolbars
();
SetToolbars
();
Affiche_Status_Box
();
/* Affichage des coord curseur */
Affiche_Status_Box
();
/* Affichage des coord curseur */
}
}
pcbnew/controle.cpp
View file @
ed0677b4
...
@@ -118,11 +118,9 @@ BOARD_ITEM* WinEDA_BasePcbFrame::PcbGeneralLocateAndDisplay( int aHotKeyCode )
...
@@ -118,11 +118,9 @@ BOARD_ITEM* WinEDA_BasePcbFrame::PcbGeneralLocateAndDisplay( int aHotKeyCode )
m_Collector
->
Collect
(
m_Pcb
,
scanList
,
GetScreen
()
->
RefPos
(
true
),
guide
);
m_Collector
->
Collect
(
m_Pcb
,
scanList
,
GetScreen
()
->
RefPos
(
true
),
guide
);
#if 0
#if 0
// debugging: print out the collected items, showing their priority order too.
// debugging: print out the collected items, showing their priority order too.
for( int i = 0; i<m_Collector->GetCount(); ++i )
for( int i = 0; i<m_Collector->GetCount(); ++i )
(*m_Collector)[i]->Show( 0, std::cout );
(*m_Collector)[i]->Show( 0, std::cout );
#endif
#endif
/* Remove redundancies: most of time, zones are found twice,
/* Remove redundancies: most of time, zones are found twice,
...
@@ -234,6 +232,7 @@ void WinEDA_BasePcbFrame::GeneralControle( wxDC* DC, wxPoint Mouse )
...
@@ -234,6 +232,7 @@ void WinEDA_BasePcbFrame::GeneralControle( wxDC* DC, wxPoint Mouse )
// Save the board after the time out :
// Save the board after the time out :
int
CurrentTime
=
time
(
NULL
);
int
CurrentTime
=
time
(
NULL
);
if
(
!
GetScreen
()
->
IsModify
()
||
GetScreen
()
->
IsSave
()
)
if
(
!
GetScreen
()
->
IsModify
()
||
GetScreen
()
->
IsSave
()
)
{
{
/* If no change, reset the time out */
/* If no change, reset the time out */
...
@@ -258,10 +257,12 @@ void WinEDA_BasePcbFrame::GeneralControle( wxDC* DC, wxPoint Mouse )
...
@@ -258,10 +257,12 @@ void WinEDA_BasePcbFrame::GeneralControle( wxDC* DC, wxPoint Mouse )
}
}
curpos
=
DrawPanel
->
CursorRealPosition
(
Mouse
);
curpos
=
DrawPanel
->
CursorRealPosition
(
Mouse
);
oldpos
=
GetScreen
()
->
m_Curseur
;
oldpos
=
GetScreen
()
->
m_Curseur
;
delta
.
x
=
(
int
)
round
(
(
double
)
GetScreen
()
->
GetGrid
().
x
/
zoom
);
delta
.
x
=
(
int
)
round
(
(
double
)
GetScreen
()
->
GetGrid
().
x
/
zoom
);
delta
.
y
=
(
int
)
round
(
(
double
)
GetScreen
()
->
GetGrid
().
y
/
zoom
);
delta
.
y
=
(
int
)
round
(
(
double
)
GetScreen
()
->
GetGrid
().
y
/
zoom
);
if
(
delta
.
x
<=
0
)
if
(
delta
.
x
<=
0
)
delta
.
x
=
1
;
delta
.
x
=
1
;
if
(
delta
.
y
<=
0
)
if
(
delta
.
y
<=
0
)
...
@@ -361,6 +362,7 @@ void WinEDA_BasePcbFrame::GeneralControle( wxDC* DC, wxPoint Mouse )
...
@@ -361,6 +362,7 @@ void WinEDA_BasePcbFrame::GeneralControle( wxDC* DC, wxPoint Mouse )
if
(
(
m_ID_current_state
!=
ID_TRACK_BUTT
)
if
(
(
m_ID_current_state
!=
ID_TRACK_BUTT
)
&&
(
g_MagneticPadOption
==
capture_cursor_in_track_tool
)
)
&&
(
g_MagneticPadOption
==
capture_cursor_in_track_tool
)
)
pad
=
NULL
;
pad
=
NULL
;
if
(
keep_on_grid
)
if
(
keep_on_grid
)
{
{
if
(
pad
)
// Put cursor on the pad
if
(
pad
)
// Put cursor on the pad
...
...
pcbnew/onrightclick.cpp
View file @
ed0677b4
...
@@ -12,6 +12,7 @@
...
@@ -12,6 +12,7 @@
#include "autorout.h"
#include "autorout.h"
#include "id.h"
#include "id.h"
#include "hotkeys.h"
#include "hotkeys.h"
#include "collectors.h"
/* Bitmaps */
/* Bitmaps */
#include "bitmaps.h"
#include "bitmaps.h"
...
@@ -161,6 +162,32 @@ bool WinEDA_PcbFrame::OnRightClick( const wxPoint& aMousePos, wxMenu* aPopMenu )
...
@@ -161,6 +162,32 @@ bool WinEDA_PcbFrame::OnRightClick( const wxPoint& aMousePos, wxMenu* aPopMenu )
/* Select a proper item */
/* 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
)
if
(
!
item
||
!
item
->
m_Flags
)
{
{
DrawPanel
->
m_AbortRequest
=
false
;
DrawPanel
->
m_AbortRequest
=
false
;
...
@@ -173,6 +200,8 @@ bool WinEDA_PcbFrame::OnRightClick( const wxPoint& aMousePos, wxMenu* aPopMenu )
...
@@ -173,6 +200,8 @@ bool WinEDA_PcbFrame::OnRightClick( const wxPoint& aMousePos, wxMenu* aPopMenu )
SetCurItem
(
item
);
SetCurItem
(
item
);
}
}
#endif
item
=
GetCurItem
();
item
=
GetCurItem
();
if
(
item
)
if
(
item
)
...
...
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