More zoom clean ups and code cleaning.

This commit is contained in:
stambaughw 2009-01-07 15:59:49 +00:00
parent 63724083f6
commit 4a489895a3
34 changed files with 1174 additions and 1286 deletions

View File

@ -27,8 +27,7 @@
BEGIN_EVENT_TABLE( WinEDA3D_DrawFrame, wxFrame ) BEGIN_EVENT_TABLE( WinEDA3D_DrawFrame, wxFrame )
EVT_TOOL_RANGE( ID_ZOOM_IN_BUTT, ID_ZOOM_PAGE_BUTT, EVT_TOOL_RANGE( ID_ZOOM_IN, ID_ZOOM_PAGE, WinEDA3D_DrawFrame::Process_Zoom )
WinEDA3D_DrawFrame::Process_Zoom )
EVT_TOOL_RANGE( ID_START_COMMAND_3D, ID_END_COMMAND_3D, EVT_TOOL_RANGE( ID_START_COMMAND_3D, ID_END_COMMAND_3D,
WinEDA3D_DrawFrame::Process_Special_Functions ) WinEDA3D_DrawFrame::Process_Special_Functions )
EVT_MENU( wxID_EXIT, WinEDA3D_DrawFrame::Exit3DFrame ) EVT_MENU( wxID_EXIT, WinEDA3D_DrawFrame::Exit3DFrame )
@ -172,7 +171,7 @@ void WinEDA3D_DrawFrame::Process_Zoom( wxCommandEvent& event )
switch( event.GetId() ) switch( event.GetId() )
{ {
case ID_ZOOM_PAGE_BUTT: case ID_ZOOM_PAGE:
for( ii = 0; ii < 4; ii++ ) for( ii = 0; ii < 4; ii++ )
g_Parm_3D_Visu.m_Rot[ii] = 0.0; g_Parm_3D_Visu.m_Rot[ii] = 0.0;
@ -181,17 +180,17 @@ void WinEDA3D_DrawFrame::Process_Zoom( wxCommandEvent& event )
trackball( g_Parm_3D_Visu.m_Quat, 0.0, 0.0, 0.0, 0.0 ); trackball( g_Parm_3D_Visu.m_Quat, 0.0, 0.0, 0.0, 0.0 );
break; break;
case ID_ZOOM_IN_BUTT: case ID_ZOOM_IN:
g_Parm_3D_Visu.m_Zoom /= 1.2; g_Parm_3D_Visu.m_Zoom /= 1.2;
if( g_Parm_3D_Visu.m_Zoom <= 0.01 ) if( g_Parm_3D_Visu.m_Zoom <= 0.01 )
g_Parm_3D_Visu.m_Zoom = 0.01; g_Parm_3D_Visu.m_Zoom = 0.01;
break; break;
case ID_ZOOM_OUT_BUTT: case ID_ZOOM_OUT:
g_Parm_3D_Visu.m_Zoom *= 1.2; g_Parm_3D_Visu.m_Zoom *= 1.2;
break; break;
case ID_ZOOM_REDRAW_BUTT: case ID_ZOOM_REDRAW:
break; break;
default: default:

View File

@ -39,16 +39,16 @@ void WinEDA3D_DrawFrame::ReCreateHToolbar()
#endif #endif
m_HToolBar->AddSeparator(); m_HToolBar->AddSeparator();
m_HToolBar->AddTool( ID_ZOOM_IN_BUTT, wxEmptyString, BITMAP( zoom_in_xpm ), m_HToolBar->AddTool( ID_ZOOM_IN, wxEmptyString, BITMAP( zoom_in_xpm ),
_( "Zoom in" ) ); _( "Zoom in" ) );
m_HToolBar->AddTool( ID_ZOOM_OUT_BUTT, wxEmptyString, BITMAP( zoom_out_xpm ), m_HToolBar->AddTool( ID_ZOOM_OUT, wxEmptyString, BITMAP( zoom_out_xpm ),
_( "Zoom out" ) ); _( "Zoom out" ) );
m_HToolBar->AddTool( ID_ZOOM_REDRAW_BUTT, wxEmptyString, BITMAP( zoom_redraw_xpm ), m_HToolBar->AddTool( ID_ZOOM_REDRAW, wxEmptyString, BITMAP( zoom_redraw_xpm ),
_( "Redraw view" ) ); _( "Redraw view" ) );
m_HToolBar->AddTool( ID_ZOOM_PAGE_BUTT, wxEmptyString, BITMAP( zoom_auto_xpm ), m_HToolBar->AddTool( ID_ZOOM_PAGE, wxEmptyString, BITMAP( zoom_auto_xpm ),
_( "Zoom auto" ) ); _( "Zoom auto" ) );
m_HToolBar->AddSeparator(); m_HToolBar->AddSeparator();

View File

@ -5,6 +5,21 @@ 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.
2009-Jan-07 UPDATE Wayne Stambaugh <stambaughw@verizon.net>
================================================================================
++all
* Don't pan or zoom on mouse wheel events when the cursor is not in the
drawing area.
* Reduce all zoom code to a single zoom command handler.
* Eliminate redundant zoom command identifiers.
* Move pop up zoom command handler from DrawPanel to DrawFrame.
* Change hot key zoom handlers to use command events.
* Added DrawFrame event table to replace COMMON_EVENTS_DRAWFRAME macro.
* Added locale path relative to binary path for development purposes.
* Minor code clean ups and duplicate header removal in files that were
updated.
2009-Jan-04 UPDATE Dick Hollenbeck <dick@softplc.com> 2009-Jan-04 UPDATE Dick Hollenbeck <dick@softplc.com>
================================================================================ ================================================================================
++all ++all

View File

@ -15,6 +15,15 @@
#include <wx/fontdlg.h> #include <wx/fontdlg.h>
BEGIN_EVENT_TABLE( WinEDA_DrawFrame, WinEDA_BasicFrame )
EVT_MOUSEWHEEL( WinEDA_DrawFrame::OnMouseEvent )
EVT_MENU_OPEN( WinEDA_DrawFrame::OnMenuOpen )
EVT_ACTIVATE( WinEDA_DrawFrame::OnActivate )
EVT_MENU_RANGE( ID_POPUP_ZOOM_START_RANGE, ID_POPUP_ZOOM_END_RANGE,
WinEDA_DrawFrame::OnZoom )
END_EVENT_TABLE()
/*******************************************************/ /*******************************************************/
/* Constructeur de WinEDA_DrawFrame: la fenetre generale */ /* Constructeur de WinEDA_DrawFrame: la fenetre generale */
/*******************************************************/ /*******************************************************/
@ -533,81 +542,6 @@ void WinEDA_DrawFrame::SetToolID( int id, int new_cursor_id,
} }
/********************************************/
void WinEDA_DrawFrame::OnZoom( int zoom_type )
/********************************************/
/* Fonction de traitement du zoom
* Modifie le facteur de zoom et reaffiche l'ecran
* Pour les commandes par menu Popup ou par le clavier, le curseur est
* replac<EFBFBD> au centre de l'ecran
*/
{
if( DrawPanel == NULL )
return;
BASE_SCREEN* screen = GetBaseScreen();
bool move_mouse_cursor = FALSE;
int x, y;
wxPoint old_pos;
DrawPanel->GetViewStart( &x, &y );
old_pos = GetBaseScreen()->m_Curseur;
switch( zoom_type )
{
case ID_POPUP_ZOOM_IN:
case ID_ZOOM_IN_KEY:
move_mouse_cursor = TRUE;
// fall thru
case ID_ZOOM_IN_BUTT:
if( zoom_type == ID_ZOOM_IN_BUTT )
GetBaseScreen()->m_Curseur = DrawPanel->GetScreenCenterRealPosition();
screen->SetPreviousZoom();
Recadre_Trace( move_mouse_cursor );
break;
case ID_POPUP_ZOOM_OUT:
case ID_ZOOM_OUT_KEY:
move_mouse_cursor = TRUE;
// fall thru
case ID_ZOOM_OUT_BUTT:
if( zoom_type == ID_ZOOM_OUT_BUTT )
screen->m_Curseur = DrawPanel->GetScreenCenterRealPosition();
screen->SetNextZoom();
Recadre_Trace( move_mouse_cursor );
break;
case ID_POPUP_ZOOM_REDRAW:
case ID_ZOOM_REDRAW_KEY:
case ID_ZOOM_REDRAW_BUTT:
DrawPanel->Refresh();
break;
case ID_POPUP_ZOOM_CENTER:
case ID_ZOOM_CENTER_KEY:
Recadre_Trace( TRUE );
break;
case ID_ZOOM_PAGE_BUTT:
case ID_ZOOM_AUTO:
case ID_POPUP_ZOOM_AUTO:
Zoom_Automatique( FALSE );
break;
default:
wxMessageBox( wxT( "WinEDA_DrawFrame::OnZoom switch Error" ) );
break;
}
Affiche_Status_Box();
}
/*****************************/ /*****************************/
/* default virtual fonctions */ /* default virtual fonctions */
/*****************************/ /*****************************/

View File

@ -33,8 +33,6 @@ BEGIN_EVENT_TABLE( WinEDA_DrawPanel, wxScrolledWindow )
EVT_SCROLLWIN( WinEDA_DrawPanel::OnScroll ) EVT_SCROLLWIN( WinEDA_DrawPanel::OnScroll )
EVT_ACTIVATE( WinEDA_DrawPanel::OnActivate ) EVT_ACTIVATE( WinEDA_DrawPanel::OnActivate )
EVT_MENU_RANGE( ID_POPUP_ZOOM_START_RANGE, ID_POPUP_ZOOM_END_RANGE,
WinEDA_DrawPanel::Process_Popup_Zoom )
EVT_MENU_RANGE( ID_POPUP_GRID_LEVEL_1000, ID_POPUP_GRID_USER, EVT_MENU_RANGE( ID_POPUP_GRID_LEVEL_1000, ID_POPUP_GRID_USER,
WinEDA_DrawPanel::OnPopupGridSelect ) WinEDA_DrawPanel::OnPopupGridSelect )
EVT_MENU_RANGE( ID_PAN_UP, ID_PAN_RIGHT, WinEDA_DrawPanel::OnPan ) EVT_MENU_RANGE( ID_PAN_UP, ID_PAN_RIGHT, WinEDA_DrawPanel::OnPan )
@ -50,7 +48,6 @@ WinEDA_DrawPanel::WinEDA_DrawPanel( WinEDA_DrawFrame* parent, int id,
wxBORDER | wxNO_FULL_REPAINT_ON_RESIZE ) wxBORDER | wxNO_FULL_REPAINT_ON_RESIZE )
{ {
m_Parent = parent; m_Parent = parent;
m_Ident = m_Parent->m_Ident;
m_Scroll_unit = 1; m_Scroll_unit = 1;
m_ScrollButt_unit = 40; m_ScrollButt_unit = 40;
@ -902,10 +899,14 @@ void WinEDA_DrawPanel::OnMouseLeaving( wxMouseEvent& event )
// Auto pan if mouse is leave working aera: // Auto pan if mouse is leave working aera:
wxSize size = GetClientSize(); wxSize size = GetClientSize();
if( ( size.x < event.GetX() )
|| ( size.y < event.GetY() ) if( ( size.x < event.GetX() ) || ( size.y < event.GetY() )
|| ( event.GetX() <= 0) || ( event.GetY() <= 0 ) ) || ( event.GetX() <= 0) || ( event.GetY() <= 0 ) )
m_Parent->OnZoom( ID_POPUP_ZOOM_CENTER ); {
wxCommandEvent cmd( wxEVT_COMMAND_MENU_SELECTED, ID_POPUP_ZOOM_CENTER );
cmd.SetEventObject( this );
GetEventHandler()->ProcessEvent( cmd );
}
} }
@ -918,7 +919,14 @@ void WinEDA_DrawPanel::OnMouseLeaving( wxMouseEvent& event )
*/ */
void WinEDA_DrawPanel::OnMouseWheel( wxMouseEvent& event ) void WinEDA_DrawPanel::OnMouseWheel( wxMouseEvent& event )
{ {
if( event.GetWheelRotation() == 0 ) wxRect rect = GetRect();
wxLogDebug( wxT( "OnMouseWheel() cursor position: (%d, %d)." ),
event.m_x, event.m_y );
/* Ignore scroll events if the cursor is outside the drawing area. */
if( event.GetWheelRotation() == 0 || !GetParent()->IsEnabled()
|| !rect.Contains( event.GetPosition() ) )
{ {
event.Skip(); event.Skip();
return; return;
@ -927,7 +935,7 @@ void WinEDA_DrawPanel::OnMouseWheel( wxMouseEvent& event )
wxCommandEvent cmd( wxEVT_COMMAND_MENU_SELECTED ); wxCommandEvent cmd( wxEVT_COMMAND_MENU_SELECTED );
cmd.SetEventObject( this ); cmd.SetEventObject( this );
// This is a zoom in ou out command // This is a zoom in or out command
if( event.GetWheelRotation() > 0 ) if( event.GetWheelRotation() > 0 )
{ {
if( event.ShiftDown() && !event.ControlDown() ) if( event.ShiftDown() && !event.ControlDown() )
@ -1073,8 +1081,11 @@ void WinEDA_DrawPanel::OnMouseEvent( wxMouseEvent& event )
if( event.ButtonUp( 2 ) && (screen->BlockLocate.m_State == STATE_NO_BLOCK) ) if( event.ButtonUp( 2 ) && (screen->BlockLocate.m_State == STATE_NO_BLOCK) )
{ {
// The middle button has been relached, with no block command: // The middle button has been relached, with no block command:
// We use it for a zoom center command // We use it for a zoom center at cursor position command
g_KeyPressed = localkey = EDA_ZOOM_CENTER_FROM_MOUSE; wxCommandEvent cmd( wxEVT_COMMAND_MENU_SELECTED,
ID_POPUP_ZOOM_CENTER );
cmd.SetEventObject( this );
GetEventHandler()->ProcessEvent( cmd );
} }

View File

@ -1,4 +1,5 @@
/* TODO ENGLISH BRIEF TODO */ /* TODO ENGLISH BRIEF TODO */
/*** /***
* @file edaapl.cpp * @file edaapl.cpp
* @brief methodes relative a la classe winEDA_App, communes * @brief methodes relative a la classe winEDA_App, communes
@ -15,6 +16,7 @@
#include "fctsys.h" #include "fctsys.h"
#include "wx/html/htmlwin.h" #include "wx/html/htmlwin.h"
#include "wx/fs_zip.h" #include "wx/fs_zip.h"
#include <wx/filename.h>
#include "common.h" #include "common.h"
#include "worksheet.h" #include "worksheet.h"
@ -30,7 +32,6 @@
# define TMP_FILE "/tmp/kicad.tmp" # define TMP_FILE "/tmp/kicad.tmp"
#endif #endif
/* Just add new languages to the list. This macro will properly recalculate /* Just add new languages to the list. This macro will properly recalculate
* the size of the array. */ * the size of the array. */
#define LANGUAGE_DESCR_COUNT ( sizeof( s_Language_List ) / \ #define LANGUAGE_DESCR_COUNT ( sizeof( s_Language_List ) / \
@ -50,17 +51,20 @@
* add a new item to s_Language_List[LANGUAGE_DESCR_COUNT] * add a new item to s_Language_List[LANGUAGE_DESCR_COUNT]
* and set LANGUAGE_DESCR_COUNT to the new value * and set LANGUAGE_DESCR_COUNT to the new value
*/ */
struct struct LANGUAGE_DESCR
LANGUAGE_DESCR
{ {
/* wxWidgets locale identifier (See wxWidgets doc) */ /* wxWidgets locale identifier (See wxWidgets doc) */
int m_WX_Lang_Identifier; int m_WX_Lang_Identifier;
/* KiCad identifier used in menu selection (See id.h) */ /* KiCad identifier used in menu selection (See id.h) */
int m_KI_Lang_Identifier; int m_KI_Lang_Identifier;
/* The menu language icons */ /* The menu language icons */
const char** m_Lang_Icon; const char** m_Lang_Icon;
/* Labels used in menus */ /* Labels used in menus */
const wxChar* m_Lang_Label; const wxChar* m_Lang_Label;
/* Set to true if the m_Lang_Label must not be translated */ /* Set to true if the m_Lang_Label must not be translated */
bool m_DoNotTranslate; bool m_DoNotTranslate;
}; };
@ -69,8 +73,7 @@ LANGUAGE_DESCR
/** /**
* Language list struct * Language list struct
*/ */
static struct static struct LANGUAGE_DESCR s_Language_List[] =
LANGUAGE_DESCR s_Language_List[] =
{ {
/* Default language */ /* Default language */
{ {
@ -243,12 +246,10 @@ WinEDA_App::~WinEDA_App()
} }
/** /**
* TODO brief * TODO brief
*/ */
void void WinEDA_App::InitEDA_Appl( const wxString& name )
WinEDA_App::InitEDA_Appl( const wxString& name )
{ {
wxString ident; wxString ident;
wxString EnvLang; wxString EnvLang;
@ -268,8 +269,8 @@ WinEDA_App::InitEDA_Appl( const wxString& name )
m_KicadEnv += UNIX_STRING_DIR_SEP; m_KicadEnv += UNIX_STRING_DIR_SEP;
} }
/* Prepare On Line Help. Use only lower case for help filenames, /* Prepare On Line Help. Use only lower case for help filenames, in order to
* in order to avoid problems with upper/lower case filenames under windows and unix */ * avoid problems with upper/lower case filenames under windows and unix */
#if defined ONLINE_HELP_FILES_FORMAT_IS_HTML #if defined ONLINE_HELP_FILES_FORMAT_IS_HTML
m_HelpFileName = name.Lower() + wxT( ".html" ); m_HelpFileName = name.Lower() + wxT( ".html" );
#elif defined ONLINE_HELP_FILES_FORMAT_IS_PDF #elif defined ONLINE_HELP_FILES_FORMAT_IS_PDF
@ -290,35 +291,20 @@ WinEDA_App::InitEDA_Appl( const wxString& name )
g_DialogFontPointSize = FONT_DEFAULT_SIZE; g_DialogFontPointSize = FONT_DEFAULT_SIZE;
g_FixedFontPointSize = FONT_DEFAULT_SIZE; g_FixedFontPointSize = FONT_DEFAULT_SIZE;
g_StdFont = new wxFont( g_StdFont = new wxFont( g_StdFontPointSize, wxFONTFAMILY_ROMAN,
g_StdFontPointSize, wxNORMAL, wxNORMAL );
wxFONTFAMILY_ROMAN,
wxNORMAL,
wxNORMAL );
g_MsgFont = new wxFont( g_MsgFont = new wxFont( g_StdFontPointSize, wxFONTFAMILY_ROMAN,
g_StdFontPointSize, wxNORMAL, wxNORMAL );
wxFONTFAMILY_ROMAN,
wxNORMAL,
wxNORMAL );
g_DialogFont = new wxFont( g_DialogFont = new wxFont( g_DialogFontPointSize, wxFONTFAMILY_ROMAN,
g_DialogFontPointSize, wxNORMAL, wxNORMAL );
wxFONTFAMILY_ROMAN,
wxNORMAL,
wxNORMAL );
g_ItalicFont = new wxFont( g_ItalicFont = new wxFont( g_DialogFontPointSize, wxFONTFAMILY_ROMAN,
g_DialogFontPointSize, wxFONTSTYLE_ITALIC, wxNORMAL );
wxFONTFAMILY_ROMAN,
wxFONTSTYLE_ITALIC,
wxNORMAL );
g_FixedFont = new wxFont( g_FixedFont = new wxFont( g_FixedFontPointSize, wxFONTFAMILY_MODERN,
g_FixedFontPointSize, wxNORMAL, wxNORMAL );
wxFONTFAMILY_MODERN,
wxNORMAL,
wxNORMAL );
/* TODO installation des gestionnaires de visu d'images (pour help) TODO*/ /* TODO installation des gestionnaires de visu d'images (pour help) TODO*/
wxImage::AddHandler( new wxPNGHandler ); wxImage::AddHandler( new wxPNGHandler );
@ -348,14 +334,12 @@ WinEDA_App::InitEDA_Appl( const wxString& name )
} }
/** /**
* Init online help * Init online help
* @return none * @return none
*/ */
/*****************************************/ /*****************************************/
void void WinEDA_App::InitOnLineHelp()
WinEDA_App::InitOnLineHelp()
/*****************************************/ /*****************************************/
{ {
wxString fullfilename = FindKicadHelpPath(); wxString fullfilename = FindKicadHelpPath();
@ -388,8 +372,7 @@ WinEDA_App::InitOnLineHelp()
* @return TODO * @return TODO
*/ */
/*******************************/ /*******************************/
bool bool WinEDA_App::SetBinDir()
WinEDA_App::SetBinDir()
/*******************************/ /*******************************/
{ {
/* Apple MacOSx */ /* Apple MacOSx */
@ -419,6 +402,7 @@ WinEDA_App::SetBinDir()
/* Linux and Unix */ /* Linux and Unix */
#elif defined (__UNIX__) #elif defined (__UNIX__)
// Under Linux, if argv[0] doesn't the complete path to the executable, // Under Linux, if argv[0] doesn't the complete path to the executable,
// it's necessary to obtain it using "which <filename>". // it's necessary to obtain it using "which <filename>".
FILE* ftmp; FILE* ftmp;
@ -463,8 +447,7 @@ WinEDA_App::SetBinDir()
* @return none * @return none
*/ */
/*********************************/ /*********************************/
void void WinEDA_App::GetSettings()
WinEDA_App::GetSettings()
/*********************************/ /*********************************/
{ {
wxString Line, Ident; wxString Line, Ident;
@ -478,7 +461,8 @@ WinEDA_App::GetSettings()
m_LanguageId = m_EDA_CommonConfig->Read( wxT( "Language" ), m_LanguageId = m_EDA_CommonConfig->Read( wxT( "Language" ),
wxLANGUAGE_DEFAULT ); wxLANGUAGE_DEFAULT );
g_EditorName = m_EDA_CommonConfig->Read( wxT( "Editor" ) ); g_EditorName = m_EDA_CommonConfig->Read( wxT( "Editor" ) );
g_ConfigFileLocationChoice = m_EDA_CommonConfig->Read( HOTKEY_CFG_PATH_OPT, 0L ); g_ConfigFileLocationChoice = m_EDA_CommonConfig->Read( HOTKEY_CFG_PATH_OPT,
0L );
} }
if( !m_EDA_Config ) if( !m_EDA_Config )
@ -563,8 +547,7 @@ WinEDA_App::GetSettings()
* @return none * @return none
*/ */
/**********************************/ /**********************************/
void void WinEDA_App::SaveSettings()
WinEDA_App::SaveSettings()
/**********************************/ /**********************************/
{ {
unsigned int i; unsigned int i;
@ -573,44 +556,29 @@ WinEDA_App::SaveSettings()
return; return;
/* Sdt font settings */ /* Sdt font settings */
m_EDA_Config->Write( wxT( "SdtFontSize" ), m_EDA_Config->Write( wxT( "SdtFontSize" ), g_StdFontPointSize );
g_StdFontPointSize ); m_EDA_Config->Write( wxT( "SdtFontType" ), g_StdFont->GetFaceName() );
m_EDA_Config->Write( wxT( "SdtFontType" ), m_EDA_Config->Write( wxT( "SdtFontStyle" ), g_StdFont->GetStyle() );
g_StdFont->GetFaceName() ); m_EDA_Config->Write( wxT( "SdtFontWeight" ), g_StdFont->GetWeight() );
m_EDA_Config->Write( wxT( "SdtFontStyle" ),
g_StdFont->GetStyle() );
m_EDA_Config->Write( wxT( "SdtFontWeight" ),
g_StdFont->GetWeight() );
/* Msg font settings */ /* Msg font settings */
m_EDA_Config->Write( wxT( "MsgFontSize" ), m_EDA_Config->Write( wxT( "MsgFontSize" ), g_MsgFontPointSize );
g_MsgFontPointSize ); m_EDA_Config->Write( wxT( "MsgFontType" ), g_MsgFont->GetFaceName() );
m_EDA_Config->Write( wxT( "MsgFontType" ), m_EDA_Config->Write( wxT( "MsgFontStyle" ), g_MsgFont->GetStyle() );
g_MsgFont->GetFaceName() ); m_EDA_Config->Write( wxT( "MsgFontWeight" ), g_MsgFont->GetWeight() );
m_EDA_Config->Write( wxT( "MsgFontStyle" ),
g_MsgFont->GetStyle() );
m_EDA_Config->Write( wxT( "MsgFontWeight" ),
g_MsgFont->GetWeight() );
/* Dialog font settings */ /* Dialog font settings */
m_EDA_Config->Write( wxT( "DialogFontSize" ), m_EDA_Config->Write( wxT( "DialogFontSize" ), g_DialogFontPointSize );
g_DialogFontPointSize ); m_EDA_Config->Write( wxT( "DialogFontType" ), g_DialogFont->GetFaceName() );
m_EDA_Config->Write( wxT( "DialogFontType" ), m_EDA_Config->Write( wxT( "DialogFontStyle" ), g_DialogFont->GetStyle() );
g_DialogFont->GetFaceName() ); m_EDA_Config->Write( wxT( "DialogFontWeight" ), g_DialogFont->GetWeight() );
m_EDA_Config->Write( wxT( "DialogFontStyle" ),
g_DialogFont->GetStyle() );
m_EDA_Config->Write( wxT( "DialogFontWeight" ),
g_DialogFont->GetWeight() );
/* Misc settings */ /* Misc settings */
m_EDA_Config->Write( wxT( "FixedFontSize" ), m_EDA_Config->Write( wxT( "FixedFontSize" ), g_FixedFontPointSize );
g_FixedFontPointSize );
m_EDA_Config->Write( wxT( "ShowPageLimits" ), m_EDA_Config->Write( wxT( "ShowPageLimits" ), g_ShowPageLimits );
g_ShowPageLimits );
m_EDA_Config->Write( wxT( "WorkingDir" ), m_EDA_Config->Write( wxT( "WorkingDir" ), wxGetCwd() );
wxGetCwd() );
/* Save last 10 project list */ /* Save last 10 project list */
for( i = 0; i < 10; i++ ) for( i = 0; i < 10; i++ )
@ -636,20 +604,21 @@ WinEDA_App::SaveSettings()
* @return TODO * @return TODO
*/ */
/*********************************************/ /*********************************************/
bool bool WinEDA_App::SetLanguage( bool first_time )
WinEDA_App::SetLanguage( bool first_time )
/*********************************************/ /*********************************************/
{ {
// dictionary file name without extend (full name is kicad.mo) // dictionary file name without extend (full name is kicad.mo)
wxString DictionaryName( wxT( "kicad" ) ); wxString DictionaryName( wxT( "kicad" ) );
// Real path is kicad/internat/xx_XX or kicad/internat/xx // Real path is kicad/internat/xx_XX or kicad/internat/xx
wxString BaseDictionaryPath( wxT( "internat" ) ); wxString BaseDictionaryPath( wxT( "internat" ) );
wxString dic_path; wxString dic_path;
bool retv = true;
if( m_Locale != NULL ) if( m_Locale != NULL )
delete m_Locale; delete m_Locale;
m_Locale = new wxLocale(); m_Locale = new wxLocale();
m_Locale->Init( m_LanguageId );
dic_path = ReturnKicadDatasPath() + BaseDictionaryPath; dic_path = ReturnKicadDatasPath() + BaseDictionaryPath;
wxLogDebug( wxT( "Adding prefix <" ) + dic_path + wxLogDebug( wxT( "Adding prefix <" ) + dic_path +
@ -657,6 +626,41 @@ WinEDA_App::SetLanguage( bool first_time )
m_Locale->AddCatalogLookupPathPrefix( dic_path ); m_Locale->AddCatalogLookupPathPrefix( dic_path );
/*
* Add binary path minus the current subdirectory ( typically /bin ) to
* the locale search path. This way the locales can be found when using
* custom CMake install paths.
*
* FIXME: This should be changed when configurable data path support is
* added to Kicad.
*/
if( !m_BinDir.IsEmpty() )
{
wxFileName fn( m_BinDir, wxEmptyString );
dic_path = fn.GetPath();
int n = dic_path.Find( wxFileName::GetPathSeparator(), true );
if( n != wxNOT_FOUND )
{
dic_path = dic_path( 0, n );
}
wxLogDebug( wxT( "Adding prefix <" ) + dic_path +
wxT( "> to language lookup path." ) );
m_Locale->AddCatalogLookupPathPrefix( dic_path );
}
if( !m_Locale->Init( m_LanguageId, wxLOCALE_CONV_ENCODING ) )
{
wxLogDebug( wxT( "Failed to initialize " ) + m_Locale->GetName() );
delete m_Locale;
m_Locale = new wxLocale();
m_LanguageId = wxLANGUAGE_DEFAULT;
m_Locale->Init();
retv = false;
}
if( !first_time ) if( !first_time )
{ {
if( m_EDA_CommonConfig ) if( m_EDA_CommonConfig )
@ -665,13 +669,14 @@ WinEDA_App::SetLanguage( bool first_time )
if( !m_Locale->IsLoaded( DictionaryName ) ) if( !m_Locale->IsLoaded( DictionaryName ) )
m_Locale->AddCatalog( DictionaryName ); m_Locale->AddCatalog( DictionaryName );
SetLanguageList( NULL );
if( !retv )
return retv;
return m_Locale->IsOk(); return m_Locale->IsOk();
} }
/** /**
* Return in m_LanguageId the wxWidgets language identifier Id * Return in m_LanguageId the wxWidgets language identifier Id
* from the kicad menu id (internal menu identifier) * from the kicad menu id (internal menu identifier)
@ -679,15 +684,13 @@ WinEDA_App::SetLanguage( bool first_time )
* @return none * @return none
*/ */
/**************************************************/ /**************************************************/
void void WinEDA_App::SetLanguageIdentifier( int menu_id )
WinEDA_App::SetLanguageIdentifier( int menu_id )
/**************************************************/ /**************************************************/
{ {
unsigned int ii; unsigned int ii;
wxLogDebug( wxT( "Select language ID %d from %d possible languages." ), wxLogDebug( wxT( "Select language ID %d from %d possible languages." ),
menu_id, menu_id, LANGUAGE_DESCR_COUNT );
LANGUAGE_DESCR_COUNT );
for( ii = 0; ii < LANGUAGE_DESCR_COUNT; ii++ ) for( ii = 0; ii < LANGUAGE_DESCR_COUNT; ii++ )
{ {
@ -700,15 +703,13 @@ WinEDA_App::SetLanguageIdentifier( int menu_id )
} }
/** /**
* Create menu list for language choice. * Create menu list for language choice.
* @param MasterMenu TODO * @param MasterMenu TODO
* @return TODO * @return TODO
*/ */
/*********************************************************/ /*********************************************************/
wxMenu* wxMenu* WinEDA_App::SetLanguageList( wxMenu* MasterMenu )
WinEDA_App::SetLanguageList( wxMenu* MasterMenu )
/*********************************************************/ /*********************************************************/
{ {
wxMenuItem* item; wxMenuItem* item;
@ -721,10 +722,14 @@ WinEDA_App::SetLanguageList( wxMenu* MasterMenu )
{ {
wxString MenuLabel = s_Language_List[ii].m_DoNotTranslate ? wxString MenuLabel = s_Language_List[ii].m_DoNotTranslate ?
s_Language_List[ii].m_Lang_Label : s_Language_List[ii].m_Lang_Label :
wxGetTranslation( s_Language_List[ii].m_Lang_Label ); wxGetTranslation(
s_Language_List[ii].m_Lang_Label );
item = new wxMenuItem( m_Language_Menu, s_Language_List[ii].m_KI_Lang_Identifier, item = new wxMenuItem( m_Language_Menu,
MenuLabel, wxEmptyString, wxITEM_CHECK ); s_Language_List[ii].m_KI_Lang_Identifier,
MenuLabel,
wxEmptyString,
wxITEM_CHECK );
SETBITMAPS( s_Language_List[ii].m_Lang_Icon ); SETBITMAPS( s_Language_List[ii].m_Lang_Icon );
m_Language_Menu->Append( item ); m_Language_Menu->Append( item );
@ -734,9 +739,11 @@ WinEDA_App::SetLanguageList( wxMenu* MasterMenu )
for( ii = 0; ii < LANGUAGE_DESCR_COUNT; ii++ ) for( ii = 0; ii < LANGUAGE_DESCR_COUNT; ii++ )
{ {
if( m_LanguageId == s_Language_List[ii].m_WX_Lang_Identifier ) if( m_LanguageId == s_Language_List[ii].m_WX_Lang_Identifier )
m_Language_Menu->Check( s_Language_List[ii].m_KI_Lang_Identifier, true ); m_Language_Menu->Check( s_Language_List[ii].m_KI_Lang_Identifier,
true );
else else
m_Language_Menu->Check( s_Language_List[ii].m_KI_Lang_Identifier, false ); m_Language_Menu->Check( s_Language_List[ii].m_KI_Lang_Identifier,
false );
} }
if( MasterMenu ) if( MasterMenu )
@ -748,6 +755,7 @@ WinEDA_App::SetLanguageList( wxMenu* MasterMenu )
_( "Select application language (only for testing!)" ), _( "Select application language (only for testing!)" ),
language_xpm ); language_xpm );
} }
return m_Language_Menu; return m_Language_Menu;
} }
@ -757,8 +765,7 @@ WinEDA_App::SetLanguageList( wxMenu* MasterMenu )
* @return TODO * @return TODO
*/ */
/**********************/ /**********************/
int int WinEDA_App::OnRun()
WinEDA_App::OnRun()
/**********************/ /**********************/
{ {
#ifdef KICAD_PYTHON #ifdef KICAD_PYTHON
@ -766,4 +773,3 @@ WinEDA_App::OnRun()
#endif #endif
return wxApp::OnRun(); return wxApp::OnRun();
} }

View File

@ -118,98 +118,128 @@ void WinEDA_DrawFrame::Window_Zoom( EDA_Rect& Rect )
/*****************************************************************/ /*****************************************************************/
void WinEDA_DrawPanel::Process_Popup_Zoom( wxCommandEvent& event ) void WinEDA_DrawFrame::OnZoom( wxCommandEvent& event )
/*****************************************************************/
/* Handle only the Popup command zoom and grid level
*/
{ {
if( DrawPanel == NULL )
{
wxLogDebug( wxT( "No DrawPanel object definedin " \
"WinEDA_DrawFrame::OnZoom()." ) );
return;
}
bool zoom_at_cursor = false;
int id = event.GetId(); int id = event.GetId();
BASE_SCREEN* screen = GetBaseScreen();
switch( id ) switch( id )
{ {
case ID_POPUP_ZOOM_IN: case ID_POPUP_ZOOM_IN:
zoom_at_cursor = true;
// fall thru
case ID_ZOOM_IN:
if( id == ID_ZOOM_IN )
screen->m_Curseur = DrawPanel->GetScreenCenterRealPosition();
screen->SetPreviousZoom();
Recadre_Trace( zoom_at_cursor );
break;
case ID_POPUP_ZOOM_OUT: case ID_POPUP_ZOOM_OUT:
zoom_at_cursor = true;
// fall thru
case ID_ZOOM_OUT:
if( id == ID_ZOOM_OUT )
screen->m_Curseur = DrawPanel->GetScreenCenterRealPosition();
screen->SetNextZoom();
Recadre_Trace( zoom_at_cursor );
break;
case ID_ZOOM_REDRAW:
DrawPanel->Refresh();
break;
case ID_POPUP_ZOOM_CENTER: case ID_POPUP_ZOOM_CENTER:
case ID_POPUP_ZOOM_AUTO: Recadre_Trace( true );
case ID_POPUP_ZOOM_REDRAW: break;
m_Parent->OnZoom( id );
case ID_ZOOM_PAGE:
Zoom_Automatique( false );
break; break;
case ID_POPUP_ZOOM_SELECT: case ID_POPUP_ZOOM_SELECT:
break; break;
case ID_POPUP_CANCEL: case ID_POPUP_CANCEL:
MouseToCursorSchema(); DrawPanel->MouseToCursorSchema();
break; break;
case ID_POPUP_ZOOM_LEVEL_1: case ID_POPUP_ZOOM_LEVEL_1:
GetScreen()->SetZoom( 1 ); screen->SetZoom( 1 );
m_Parent->Recadre_Trace( TRUE ); Recadre_Trace( true );
break; break;
case ID_POPUP_ZOOM_LEVEL_2: case ID_POPUP_ZOOM_LEVEL_2:
GetScreen()->SetZoom( 2 ); screen->SetZoom( 2 );
m_Parent->Recadre_Trace( TRUE ); Recadre_Trace( true );
break; break;
case ID_POPUP_ZOOM_LEVEL_4: case ID_POPUP_ZOOM_LEVEL_4:
GetScreen()->SetZoom( 4 ); screen->SetZoom( 4 );
m_Parent->Recadre_Trace( TRUE ); Recadre_Trace( true );
break; break;
case ID_POPUP_ZOOM_LEVEL_8: case ID_POPUP_ZOOM_LEVEL_8:
GetScreen()->SetZoom( 8 ); screen->SetZoom( 8 );
m_Parent->Recadre_Trace( TRUE ); Recadre_Trace( true );
break; break;
case ID_POPUP_ZOOM_LEVEL_16: case ID_POPUP_ZOOM_LEVEL_16:
GetScreen()->SetZoom( 16 ); screen->SetZoom( 16 );
m_Parent->Recadre_Trace( TRUE ); Recadre_Trace( true );
break; break;
case ID_POPUP_ZOOM_LEVEL_32: case ID_POPUP_ZOOM_LEVEL_32:
GetScreen()->SetZoom( 32 ); screen->SetZoom( 32 );
m_Parent->Recadre_Trace( TRUE ); Recadre_Trace( true );
break; break;
case ID_POPUP_ZOOM_LEVEL_64: case ID_POPUP_ZOOM_LEVEL_64:
GetScreen()->SetZoom( 64 ); screen->SetZoom( 64 );
m_Parent->Recadre_Trace( TRUE ); Recadre_Trace( true );
break; break;
case ID_POPUP_ZOOM_LEVEL_128: case ID_POPUP_ZOOM_LEVEL_128:
GetScreen()->SetZoom( 128 ); screen->SetZoom( 128 );
m_Parent->Recadre_Trace( TRUE ); Recadre_Trace( true );
break; break;
case ID_POPUP_ZOOM_LEVEL_256: case ID_POPUP_ZOOM_LEVEL_256:
GetScreen()->SetZoom( 256 ); screen->SetZoom( 256 );
m_Parent->Recadre_Trace( TRUE ); Recadre_Trace( true );
break; break;
case ID_POPUP_ZOOM_LEVEL_512: case ID_POPUP_ZOOM_LEVEL_512:
GetScreen()->SetZoom( 512 ); screen->SetZoom( 512 );
m_Parent->Recadre_Trace( TRUE ); Recadre_Trace( true );
break; break;
case ID_POPUP_ZOOM_LEVEL_1024: case ID_POPUP_ZOOM_LEVEL_1024:
GetScreen()->SetZoom( 1024 ); screen->SetZoom( 1024 );
m_Parent->Recadre_Trace( TRUE ); Recadre_Trace( true );
break; break;
case ID_POPUP_ZOOM_LEVEL_2048: case ID_POPUP_ZOOM_LEVEL_2048:
GetScreen()->SetZoom( 2048 ); screen->SetZoom( 2048 );
m_Parent->Recadre_Trace( TRUE ); Recadre_Trace( true );
break; break;
default: default:
DisplayError( this, wxLogDebug( wxT( "WinEDA_DrawFram::OnZoom() unhandled ID %d" ), id );
wxT( "WinEDA_DrawPanel::Process_Popup_Zoom() ID error" ) ); return;
break;
} }
m_Parent->Affiche_Status_Box(); Affiche_Status_Box();
} }
void WinEDA_DrawPanel::OnPopupGridSelect( wxCommandEvent& event ) void WinEDA_DrawPanel::OnPopupGridSelect( wxCommandEvent& event )
@ -239,15 +269,14 @@ void WinEDA_DrawPanel::AddMenuZoom( wxMenu* MasterMenu )
zoom_center_xpm ); zoom_center_xpm );
ADD_MENUITEM( MasterMenu, ID_POPUP_ZOOM_IN, _( "Zoom in" ), zoom_in_xpm ); ADD_MENUITEM( MasterMenu, ID_POPUP_ZOOM_IN, _( "Zoom in" ), zoom_in_xpm );
ADD_MENUITEM( MasterMenu, ID_POPUP_ZOOM_OUT, _( "Zoom out" ), zoom_out_xpm ); ADD_MENUITEM( MasterMenu, ID_POPUP_ZOOM_OUT, _( "Zoom out" ), zoom_out_xpm );
ADD_MENUITEM( MasterMenu, ID_POPUP_ZOOM_AUTO, _( "Zoom auto" ), ADD_MENUITEM( MasterMenu, ID_ZOOM_PAGE, _( "Zoom auto" ), zoom_auto_xpm );
zoom_auto_xpm );
wxMenu* zoom_choice = new wxMenu; wxMenu* zoom_choice = new wxMenu;
ADD_MENUITEM_WITH_SUBMENU( MasterMenu, zoom_choice, ADD_MENUITEM_WITH_SUBMENU( MasterMenu, zoom_choice,
ID_POPUP_ZOOM_SELECT, _( "Zoom select" ), ID_POPUP_ZOOM_SELECT, _( "Zoom select" ),
zoom_select_xpm ); zoom_select_xpm );
ADD_MENUITEM( MasterMenu, ID_POPUP_ZOOM_REDRAW, _( "Redraw view" ), ADD_MENUITEM( MasterMenu, ID_ZOOM_REDRAW, _( "Redraw view" ),
zoom_redraw_xpm ); zoom_redraw_xpm );
/* Create the basic zoom list: */ /* Create the basic zoom list: */
@ -299,29 +328,3 @@ void WinEDA_DrawPanel::AddMenuZoom( wxMenu* MasterMenu )
MasterMenu->AppendSeparator(); MasterMenu->AppendSeparator();
ADD_MENUITEM( MasterMenu, ID_POPUP_CANCEL, _( "Close" ), cancel_xpm ); ADD_MENUITEM( MasterMenu, ID_POPUP_CANCEL, _( "Close" ), cancel_xpm );
} }
/**********************************************************/
void WinEDA_DrawFrame::Process_Zoom( wxCommandEvent& event )
/**********************************************************/
/* Handle the Zoom commands from the zoom tools in the main toolbar.
* Calls the active window Zoom function
*/
{
int id = event.GetId();
switch( id )
{
case ID_ZOOM_IN_BUTT:
case ID_ZOOM_OUT_BUTT:
case ID_ZOOM_REDRAW_BUTT:
case ID_ZOOM_PAGE_BUTT:
OnZoom( id );
break;
default:
DisplayError( this, wxT( "WinEDA_DrawFrame::Process_Zoom id Error" ) );
break;
}
}

View File

@ -16,12 +16,10 @@
/* Construction de la table des evenements pour WinEDA_DrawFrame */ /* Construction de la table des evenements pour WinEDA_DrawFrame */
/*****************************************************************/ /*****************************************************************/
BEGIN_EVENT_TABLE( WinEDA_DisplayFrame, wxFrame ) BEGIN_EVENT_TABLE( WinEDA_DisplayFrame, WinEDA_DrawFrame )
COMMON_EVENTS_DRAWFRAME
EVT_CLOSE( WinEDA_DisplayFrame::OnCloseWindow ) EVT_CLOSE( WinEDA_DisplayFrame::OnCloseWindow )
EVT_SIZE( WinEDA_DrawFrame::OnSize ) EVT_SIZE( WinEDA_DrawFrame::OnSize )
EVT_TOOL_RANGE( ID_ZOOM_IN_BUTT, ID_ZOOM_PAGE_BUTT, EVT_TOOL_RANGE( ID_ZOOM_IN, ID_ZOOM_PAGE, WinEDA_DisplayFrame::OnZoom )
WinEDA_DisplayFrame::Process_Zoom )
EVT_TOOL( ID_OPTIONS_SETUP, WinEDA_DisplayFrame::InstallOptionsDisplay ) EVT_TOOL( ID_OPTIONS_SETUP, WinEDA_DisplayFrame::InstallOptionsDisplay )
EVT_TOOL( ID_CVPCB_SHOW3D_FRAME, WinEDA_BasePcbFrame::Show3D_Frame ) EVT_TOOL( ID_CVPCB_SHOW3D_FRAME, WinEDA_BasePcbFrame::Show3D_Frame )
END_EVENT_TABLE() END_EVENT_TABLE()
@ -119,19 +117,19 @@ void WinEDA_DisplayFrame::ReCreateHToolbar()
m_HToolBar->AddSeparator(); m_HToolBar->AddSeparator();
m_HToolBar->AddTool( ID_ZOOM_IN_BUTT, wxEmptyString, m_HToolBar->AddTool( ID_ZOOM_IN, wxEmptyString,
wxBitmap( zoom_in_xpm ), wxBitmap( zoom_in_xpm ),
_( "zoom + (F1)" ) ); _( "zoom + (F1)" ) );
m_HToolBar->AddTool( ID_ZOOM_OUT_BUTT, wxEmptyString, m_HToolBar->AddTool( ID_ZOOM_OUT, wxEmptyString,
wxBitmap( zoom_out_xpm ), wxBitmap( zoom_out_xpm ),
_( "zoom - (F2)" ) ); _( "zoom - (F2)" ) );
m_HToolBar->AddTool( ID_ZOOM_REDRAW_BUTT, wxEmptyString, m_HToolBar->AddTool( ID_ZOOM_REDRAW, wxEmptyString,
wxBitmap( zoom_redraw_xpm ), wxBitmap( zoom_redraw_xpm ),
_( "redraw (F3)" ) ); _( "redraw (F3)" ) );
m_HToolBar->AddTool( ID_ZOOM_PAGE_BUTT, wxEmptyString, m_HToolBar->AddTool( ID_ZOOM_PAGE, wxEmptyString,
wxBitmap( zoom_auto_xpm ), wxBitmap( zoom_auto_xpm ),
_( "1:1 zoom" ) ); _( "1:1 zoom" ) );
@ -183,6 +181,8 @@ void WinEDA_DisplayFrame::GeneralControle( wxDC* DC, wxPoint Mouse )
int flagcurseur = 0; int flagcurseur = 0;
int zoom = GetScreen()->GetZoom(); int zoom = GetScreen()->GetZoom();
wxPoint curpos, oldpos; wxPoint curpos, oldpos;
wxCommandEvent cmd( wxEVT_COMMAND_MENU_SELECTED );
cmd.SetEventObject( this );
curpos = DrawPanel->CursorRealPosition( Mouse ); curpos = DrawPanel->CursorRealPosition( Mouse );
oldpos = GetScreen()->m_Curseur; oldpos = GetScreen()->m_Curseur;
@ -199,24 +199,28 @@ void WinEDA_DisplayFrame::GeneralControle( wxDC* DC, wxPoint Mouse )
switch( g_KeyPressed ) switch( g_KeyPressed )
{ {
case WXK_F1: case WXK_F1:
OnZoom( ID_ZOOM_IN_KEY ); cmd.SetId( ID_POPUP_ZOOM_IN );
GetEventHandler()->ProcessEvent( cmd );
flagcurseur = 2; flagcurseur = 2;
curpos = GetScreen()->m_Curseur; curpos = GetScreen()->m_Curseur;
break; break;
case WXK_F2: case WXK_F2:
OnZoom( ID_ZOOM_OUT_KEY ); cmd.SetId( ID_POPUP_ZOOM_OUT );
GetEventHandler()->ProcessEvent( cmd );
flagcurseur = 2; flagcurseur = 2;
curpos = GetScreen()->m_Curseur; curpos = GetScreen()->m_Curseur;
break; break;
case WXK_F3: case WXK_F3:
OnZoom( ID_ZOOM_REDRAW_KEY ); cmd.SetId( ID_ZOOM_REDRAW );
GetEventHandler()->ProcessEvent( cmd );
flagcurseur = 2; flagcurseur = 2;
break; break;
case WXK_F4: case WXK_F4:
OnZoom( ID_ZOOM_CENTER_KEY ); cmd.SetId( ID_POPUP_ZOOM_CENTER );
GetEventHandler()->ProcessEvent( cmd );
flagcurseur = 2; flagcurseur = 2;
curpos = GetScreen()->m_Curseur; curpos = GetScreen()->m_Curseur;
break; break;

View File

@ -57,7 +57,6 @@ void SCH_ITEM::Place( WinEDA_SchematicFrame* frame, wxDC* DC )
if( !screen->CheckIfOnDrawList( this ) ) //don't want a loop! if( !screen->CheckIfOnDrawList( this ) ) //don't want a loop!
screen->AddToDrawList( this ); screen->AddToDrawList( this );
g_ItemToRepeat = this; g_ItemToRepeat = this;
if( frame->m_Ident == SCHEMATIC_FRAME )
frame->SaveCopyInUndoList( this, IS_NEW ); frame->SaveCopyInUndoList( this, IS_NEW );
} }

View File

@ -244,21 +244,6 @@ void WinEDA_SchematicFrame::GeneralControle( wxDC* DC, wxPoint MousePositionInPi
case 0: case 0:
break; break;
case EDA_ZOOM_IN_FROM_MOUSE:
OnZoom( ID_ZOOM_IN_KEY );
curpos = screen->m_Curseur;
break;
case EDA_ZOOM_OUT_FROM_MOUSE:
OnZoom( ID_ZOOM_OUT_KEY );
curpos = screen->m_Curseur;
break;
case EDA_ZOOM_CENTER_FROM_MOUSE:
OnZoom( ID_ZOOM_CENTER_KEY );
curpos = screen->m_Curseur;
break;
case WXK_NUMPAD8: /* Deplacement curseur vers le haut */ case WXK_NUMPAD8: /* Deplacement curseur vers le haut */
case WXK_UP: case WXK_UP:
MousePositionInPixels.y -= delta.y; MousePositionInPixels.y -= delta.y;
@ -355,21 +340,6 @@ void WinEDA_LibeditFrame::GeneralControle( wxDC* DC, wxPoint MousePositionInPixe
case 0: case 0:
break; break;
case EDA_ZOOM_IN_FROM_MOUSE:
OnZoom( ID_ZOOM_IN_KEY );
curpos = screen->m_Curseur;
break;
case EDA_ZOOM_OUT_FROM_MOUSE:
OnZoom( ID_ZOOM_OUT_KEY );
curpos = screen->m_Curseur;
break;
case EDA_ZOOM_CENTER_FROM_MOUSE:
OnZoom( ID_ZOOM_CENTER_KEY );
curpos = screen->m_Curseur;
break;
case WXK_NUMPAD8: /* Deplacement curseur vers le haut */ case WXK_NUMPAD8: /* Deplacement curseur vers le haut */
case WXK_UP: case WXK_UP:
MousePositionInPixels.y -= delta.y; MousePositionInPixels.y -= delta.y;
@ -465,21 +435,6 @@ void WinEDA_ViewlibFrame::GeneralControle( wxDC* DC, wxPoint MousePositionInPixe
case 0: case 0:
break; break;
case EDA_ZOOM_IN_FROM_MOUSE:
OnZoom( ID_ZOOM_IN_KEY );
curpos = screen->m_Curseur;
break;
case EDA_ZOOM_OUT_FROM_MOUSE:
OnZoom( ID_ZOOM_OUT_KEY );
curpos = screen->m_Curseur;
break;
case EDA_ZOOM_CENTER_FROM_MOUSE:
OnZoom( ID_ZOOM_CENTER_KEY );
curpos = screen->m_Curseur;
break;
case WXK_NUMPAD8: /* Deplacement curseur vers le haut */ case WXK_NUMPAD8: /* Deplacement curseur vers le haut */
case WXK_UP: case WXK_UP:
MousePositionInPixels.y -= delta.y; MousePositionInPixels.y -= delta.y;

View File

@ -4,8 +4,6 @@
#include "fctsys.h" #include "fctsys.h"
#include "gr_basic.h"
#include "common.h" #include "common.h"
#include "program.h" #include "program.h"
#include "libcmp.h" #include "libcmp.h"
@ -145,6 +143,9 @@ void WinEDA_SchematicFrame::OnHotKey( wxDC* DC, int hotkey,
* Commands are case insensitive * Commands are case insensitive
*/ */
{ {
wxCommandEvent cmd( wxEVT_COMMAND_MENU_SELECTED );
cmd.SetEventObject( this );
bool ItemInEdit = GetScreen()->GetCurItem() bool ItemInEdit = GetScreen()->GetCurItem()
&& GetScreen()->GetCurItem()->m_Flags; && GetScreen()->GetCurItem()->m_Flags;
bool RefreshToolBar = FALSE; // We must refresh tool bar when the undo/redo tool state is modified bool RefreshToolBar = FALSE; // We must refresh tool bar when the undo/redo tool state is modified
@ -172,7 +173,6 @@ void WinEDA_SchematicFrame::OnHotKey( wxDC* DC, int hotkey,
default: default:
case HK_NOT_FOUND: case HK_NOT_FOUND:
return; return;
break;
case HK_HELP: // Display Current hotkey list case HK_HELP: // Display Current hotkey list
DisplayHotkeyList( this, s_Schematic_Hokeys_Descr ); DisplayHotkeyList( this, s_Schematic_Hokeys_Descr );
@ -183,19 +183,23 @@ void WinEDA_SchematicFrame::OnHotKey( wxDC* DC, int hotkey,
break; break;
case HK_ZOOM_IN: case HK_ZOOM_IN:
OnZoom( ID_ZOOM_IN_KEY ); cmd.SetId( ID_POPUP_ZOOM_IN );
GetEventHandler()->ProcessEvent( cmd );
break; break;
case HK_ZOOM_OUT: case HK_ZOOM_OUT:
OnZoom( ID_ZOOM_OUT_KEY ); cmd.SetId( ID_POPUP_ZOOM_OUT );
GetEventHandler()->ProcessEvent( cmd );
break; break;
case HK_ZOOM_REDRAW: case HK_ZOOM_REDRAW:
OnZoom( ID_ZOOM_REDRAW_KEY ); cmd.SetId( ID_ZOOM_REDRAW );
GetEventHandler()->ProcessEvent( cmd );
break; break;
case HK_ZOOM_CENTER: case HK_ZOOM_CENTER:
OnZoom( ID_ZOOM_CENTER_KEY ); cmd.SetId( ID_POPUP_ZOOM_CENTER );
GetEventHandler()->ProcessEvent( cmd );
break; break;
case HK_UNDO: case HK_UNDO:
@ -413,6 +417,9 @@ void WinEDA_LibeditFrame::OnHotKey( wxDC* DC, int hotkey,
* Commands are case insensitive * Commands are case insensitive
*/ */
{ {
wxCommandEvent cmd( wxEVT_COMMAND_MENU_SELECTED );
cmd.SetEventObject( this );
bool ItemInEdit = GetScreen()->GetCurItem() bool ItemInEdit = GetScreen()->GetCurItem()
&& GetScreen()->GetCurItem()->m_Flags; && GetScreen()->GetCurItem()->m_Flags;
bool RefreshToolBar = FALSE; // We must refresh tool bar when the undo/redo tool state is modified bool RefreshToolBar = FALSE; // We must refresh tool bar when the undo/redo tool state is modified
@ -451,19 +458,23 @@ void WinEDA_LibeditFrame::OnHotKey( wxDC* DC, int hotkey,
break; break;
case HK_ZOOM_IN: case HK_ZOOM_IN:
OnZoom( ID_ZOOM_IN_KEY ); cmd.SetId( ID_POPUP_ZOOM_IN );
GetEventHandler()->ProcessEvent( cmd );
break; break;
case HK_ZOOM_OUT: case HK_ZOOM_OUT:
OnZoom( ID_ZOOM_OUT_KEY ); cmd.SetId( ID_POPUP_ZOOM_OUT );
GetEventHandler()->ProcessEvent( cmd );
break; break;
case HK_ZOOM_REDRAW: case HK_ZOOM_REDRAW:
OnZoom( ID_ZOOM_REDRAW_KEY ); cmd.SetId( ID_ZOOM_REDRAW );
GetEventHandler()->ProcessEvent( cmd );
break; break;
case HK_ZOOM_CENTER: case HK_ZOOM_CENTER:
OnZoom( ID_ZOOM_CENTER_KEY ); cmd.SetId( ID_POPUP_ZOOM_CENTER );
GetEventHandler()->ProcessEvent( cmd );
break; break;
case HK_UNDO: case HK_UNDO:

View File

@ -20,13 +20,11 @@
/*****************************/ /*****************************/
/* class WinEDA_LibeditFrame */ /* class WinEDA_LibeditFrame */
/*****************************/ /*****************************/
BEGIN_EVENT_TABLE( WinEDA_LibeditFrame, wxFrame ) BEGIN_EVENT_TABLE( WinEDA_LibeditFrame, WinEDA_DrawFrame )
COMMON_EVENTS_DRAWFRAME
EVT_CLOSE( WinEDA_LibeditFrame::OnCloseWindow ) EVT_CLOSE( WinEDA_LibeditFrame::OnCloseWindow )
EVT_SIZE( WinEDA_LibeditFrame::OnSize ) EVT_SIZE( WinEDA_LibeditFrame::OnSize )
EVT_TOOL_RANGE( ID_ZOOM_IN_BUTT, ID_ZOOM_PAGE_BUTT, EVT_TOOL_RANGE( ID_ZOOM_IN, ID_ZOOM_PAGE, WinEDA_LibeditFrame::OnZoom )
WinEDA_LibeditFrame::Process_Zoom )
// Tools et boutons de Libedit: // Tools et boutons de Libedit:

View File

@ -168,7 +168,7 @@ void WinEDA_SchematicFrame::ReCreateMenuBar()
wxMenu* viewMenu = new wxMenu; wxMenu* viewMenu = new wxMenu;
msg = AddHotkeyName( _( "Zoom in" ), s_Schematic_Hokeys_Descr, msg = AddHotkeyName( _( "Zoom in" ), s_Schematic_Hokeys_Descr,
HK_ZOOM_IN); HK_ZOOM_IN);
item = new wxMenuItem( viewMenu, ID_ZOOM_IN_BUTT, item = new wxMenuItem( viewMenu, ID_ZOOM_IN,
msg, _( "Zoom in" ), msg, _( "Zoom in" ),
wxITEM_NORMAL ); wxITEM_NORMAL );
item->SetBitmap( zoom_in_xpm ); item->SetBitmap( zoom_in_xpm );
@ -176,13 +176,13 @@ void WinEDA_SchematicFrame::ReCreateMenuBar()
msg = AddHotkeyName( _( "Zoom out" ), s_Schematic_Hokeys_Descr, msg = AddHotkeyName( _( "Zoom out" ), s_Schematic_Hokeys_Descr,
HK_ZOOM_OUT ); HK_ZOOM_OUT );
item = new wxMenuItem( viewMenu, ID_ZOOM_OUT_BUTT, item = new wxMenuItem( viewMenu, ID_ZOOM_OUT,
msg, _( "Zoom out" ), msg, _( "Zoom out" ),
wxITEM_NORMAL ); wxITEM_NORMAL );
item->SetBitmap( zoom_out_xpm ); item->SetBitmap( zoom_out_xpm );
viewMenu->Append( item ); viewMenu->Append( item );
item = new wxMenuItem( viewMenu, ID_ZOOM_PAGE_BUTT, item = new wxMenuItem( viewMenu, ID_ZOOM_PAGE,
_( "Zoom auto" ), _( "Zoom auto" ), _( "Zoom auto" ), _( "Zoom auto" ),
wxITEM_NORMAL ); wxITEM_NORMAL );
item->SetBitmap( zoom_auto_xpm ); item->SetBitmap( zoom_auto_xpm );
@ -192,7 +192,7 @@ void WinEDA_SchematicFrame::ReCreateMenuBar()
msg = AddHotkeyName( _( "Redraw view" ), s_Schematic_Hokeys_Descr, msg = AddHotkeyName( _( "Redraw view" ), s_Schematic_Hokeys_Descr,
HK_ZOOM_REDRAW ); HK_ZOOM_REDRAW );
item = new wxMenuItem( viewMenu, ID_ZOOM_REDRAW_BUTT, item = new wxMenuItem( viewMenu, ID_ZOOM_REDRAW,
msg, _( "Zoom auto" ), msg, _( "Zoom auto" ),
wxITEM_NORMAL ); wxITEM_NORMAL );
item->SetBitmap( zoom_redraw_xpm ); item->SetBitmap( zoom_redraw_xpm );

View File

@ -29,11 +29,9 @@
/* class WinEDA_SchematicFrame */ /* class WinEDA_SchematicFrame */
/*******************************/ /*******************************/
BEGIN_EVENT_TABLE( WinEDA_SchematicFrame, wxFrame ) BEGIN_EVENT_TABLE( WinEDA_SchematicFrame, WinEDA_DrawFrame )
COMMON_EVENTS_DRAWFRAME EVT_SOCKET( EVT_SOCKET( ID_EDA_SOCKET_EVENT_SERV,
ID_EDA_SOCKET_EVENT_SERV, WinEDA_DrawFrame::OnSockRequestServer )
WinEDA_DrawFrame::
OnSockRequestServer )
EVT_SOCKET( ID_EDA_SOCKET_EVENT, WinEDA_DrawFrame::OnSockRequest ) EVT_SOCKET( ID_EDA_SOCKET_EVENT, WinEDA_DrawFrame::OnSockRequest )
EVT_CLOSE( WinEDA_SchematicFrame::OnCloseWindow ) EVT_CLOSE( WinEDA_SchematicFrame::OnCloseWindow )
@ -76,8 +74,7 @@ EVT_TOOL( ID_OPTIONS_SETUP, WinEDA_SchematicFrame::Process_Config )
EVT_MENU_RANGE( ID_LANGUAGE_CHOICE, ID_LANGUAGE_CHOICE_END, EVT_MENU_RANGE( ID_LANGUAGE_CHOICE, ID_LANGUAGE_CHOICE_END,
WinEDA_DrawFrame::SetLanguage ) WinEDA_DrawFrame::SetLanguage )
EVT_TOOL_RANGE( ID_ZOOM_IN_BUTT, ID_ZOOM_PAGE_BUTT, EVT_TOOL_RANGE( ID_ZOOM_IN, ID_ZOOM_PAGE, WinEDA_SchematicFrame::OnZoom )
WinEDA_SchematicFrame::Process_Zoom )
EVT_TOOL( ID_TO_LIBRARY, WinEDA_SchematicFrame::OnOpenLibraryEditor ) EVT_TOOL( ID_TO_LIBRARY, WinEDA_SchematicFrame::OnOpenLibraryEditor )
EVT_TOOL( ID_TO_LIBVIEW, WinEDA_SchematicFrame::OnOpenLibraryViewer ) EVT_TOOL( ID_TO_LIBVIEW, WinEDA_SchematicFrame::OnOpenLibraryViewer )
@ -121,7 +118,6 @@ EVT_TOOL_RANGE( ID_TB_OPTIONS_START, ID_TB_OPTIONS_END,
EVT_MENU_RANGE( ID_POPUP_GENERAL_START_RANGE, ID_POPUP_GENERAL_END_RANGE, EVT_MENU_RANGE( ID_POPUP_GENERAL_START_RANGE, ID_POPUP_GENERAL_END_RANGE,
WinEDA_SchematicFrame::Process_Special_Functions ) WinEDA_SchematicFrame::Process_Special_Functions )
END_EVENT_TABLE() END_EVENT_TABLE()
@ -446,10 +442,8 @@ void WinEDA_SchematicFrame::SetToolbars()
m_OptionsToolBar->ToggleTool( ID_TB_OPTIONS_BUS_WIRES_ORIENT, m_OptionsToolBar->ToggleTool( ID_TB_OPTIONS_BUS_WIRES_ORIENT,
g_HVLines ); g_HVLines );
m_OptionsToolBar->SetToolShortHelp( ID_TB_OPTIONS_BUS_WIRES_ORIENT, m_OptionsToolBar->SetToolShortHelp( ID_TB_OPTIONS_BUS_WIRES_ORIENT,
g_HVLines ? _( g_HVLines ? _( "Allows any direction for wires and busses" ) :
"Allows any direction for wires and busses" ) : _( "Allows horizontal and vertical wires and busses only" ) );
_(
"Allows horizontal and vertical wires and busses only" ) );
} }
DisplayUnitsMsg(); DisplayUnitsMsg();

View File

@ -3,7 +3,6 @@
/********************************************/ /********************************************/
#include "fctsys.h" #include "fctsys.h"
#include "gr_basic.h"
#include "common.h" #include "common.h"
#include "program.h" #include "program.h"
@ -13,8 +12,6 @@
#include "protos.h" #include "protos.h"
#include "hotkeys.h" #include "hotkeys.h"
#define BITMAP wxBitmap
#ifdef __UNIX__ #ifdef __UNIX__
#define LISTBOX_WIDTH 140 #define LISTBOX_WIDTH 140
#else #else
@ -41,52 +38,52 @@ void WinEDA_LibeditFrame::ReCreateVToolbar()
// Set up toolbar // Set up toolbar
m_VToolBar->AddTool( ID_NO_SELECT_BUTT, wxEmptyString, m_VToolBar->AddTool( ID_NO_SELECT_BUTT, wxEmptyString,
BITMAP( cursor_xpm ), wxBitmap( cursor_xpm ),
_( "deselect current tool" ), wxITEM_CHECK ); _( "deselect current tool" ), wxITEM_CHECK );
m_VToolBar->ToggleTool( ID_NO_SELECT_BUTT, TRUE ); m_VToolBar->ToggleTool( ID_NO_SELECT_BUTT, TRUE );
m_VToolBar->AddSeparator(); m_VToolBar->AddSeparator();
m_VToolBar->AddTool( ID_LIBEDIT_PIN_BUTT, wxEmptyString, m_VToolBar->AddTool( ID_LIBEDIT_PIN_BUTT, wxEmptyString,
BITMAP( pin_xpm ), wxBitmap( pin_xpm ),
_( "Add Pins" ), wxITEM_CHECK ); _( "Add Pins" ), wxITEM_CHECK );
m_VToolBar->AddTool( ID_LIBEDIT_BODY_TEXT_BUTT, wxEmptyString, m_VToolBar->AddTool( ID_LIBEDIT_BODY_TEXT_BUTT, wxEmptyString,
BITMAP( add_text_xpm ), wxBitmap( add_text_xpm ),
_( "Add graphic text" ), wxITEM_CHECK ); _( "Add graphic text" ), wxITEM_CHECK );
m_VToolBar->AddTool( ID_LIBEDIT_BODY_RECT_BUTT, wxEmptyString, m_VToolBar->AddTool( ID_LIBEDIT_BODY_RECT_BUTT, wxEmptyString,
BITMAP( add_rectangle_xpm ), wxBitmap( add_rectangle_xpm ),
_( "Add rectangles" ), wxITEM_CHECK ); _( "Add rectangles" ), wxITEM_CHECK );
m_VToolBar->AddTool( ID_LIBEDIT_BODY_CIRCLE_BUTT, wxEmptyString, m_VToolBar->AddTool( ID_LIBEDIT_BODY_CIRCLE_BUTT, wxEmptyString,
BITMAP( add_circle_xpm ), wxBitmap( add_circle_xpm ),
_( "Add circles" ), wxITEM_CHECK ); _( "Add circles" ), wxITEM_CHECK );
m_VToolBar->AddTool( ID_LIBEDIT_BODY_ARC_BUTT, wxEmptyString, m_VToolBar->AddTool( ID_LIBEDIT_BODY_ARC_BUTT, wxEmptyString,
BITMAP( add_arc_xpm ), wxBitmap( add_arc_xpm ),
_( "Add arcs" ), wxITEM_CHECK ); _( "Add arcs" ), wxITEM_CHECK );
m_VToolBar->AddTool( ID_LIBEDIT_BODY_LINE_BUTT, wxEmptyString, m_VToolBar->AddTool( ID_LIBEDIT_BODY_LINE_BUTT, wxEmptyString,
BITMAP( add_polygon_xpm ), wxBitmap( add_polygon_xpm ),
_( "Add lines and polygons" ), wxITEM_CHECK ); _( "Add lines and polygons" ), wxITEM_CHECK );
m_VToolBar->AddSeparator(); m_VToolBar->AddSeparator();
m_VToolBar->AddTool( ID_LIBEDIT_ANCHOR_ITEM_BUTT, wxEmptyString, m_VToolBar->AddTool( ID_LIBEDIT_ANCHOR_ITEM_BUTT, wxEmptyString,
BITMAP( anchor_xpm ), wxBitmap( anchor_xpm ),
_( "Move part anchor" ), wxITEM_CHECK ); _( "Move part anchor" ), wxITEM_CHECK );
m_VToolBar->AddSeparator(); m_VToolBar->AddSeparator();
m_VToolBar->AddTool( ID_LIBEDIT_IMPORT_BODY_BUTT, wxEmptyString, m_VToolBar->AddTool( ID_LIBEDIT_IMPORT_BODY_BUTT, wxEmptyString,
BITMAP( import_xpm ), wxBitmap( import_xpm ),
_( "Import existing drawings" ), wxITEM_CHECK ); _( "Import existing drawings" ), wxITEM_CHECK );
m_VToolBar->AddTool( ID_LIBEDIT_EXPORT_BODY_BUTT, wxEmptyString, m_VToolBar->AddTool( ID_LIBEDIT_EXPORT_BODY_BUTT, wxEmptyString,
BITMAP( export_xpm ), wxBitmap( export_xpm ),
_( "Export current drawing" ), wxITEM_CHECK ); _( "Export current drawing" ), wxITEM_CHECK );
m_VToolBar->AddSeparator(); m_VToolBar->AddSeparator();
m_VToolBar->AddTool( ID_LIBEDIT_DELETE_ITEM_BUTT, wxEmptyString, m_VToolBar->AddTool( ID_LIBEDIT_DELETE_ITEM_BUTT, wxEmptyString,
BITMAP( delete_body_xpm ), wxBitmap( delete_body_xpm ),
_( "Delete items" ), wxITEM_CHECK ); _( "Delete items" ), wxITEM_CHECK );
m_VToolBar->Realize(); m_VToolBar->Realize();
@ -113,57 +110,57 @@ void WinEDA_LibeditFrame::ReCreateHToolbar()
SetToolBar( m_HToolBar ); SetToolBar( m_HToolBar );
// Set up toolbar // Set up toolbar
m_HToolBar->AddTool( ID_LIBEDIT_SAVE_CURRENT_LIB, wxEmptyString, BITMAP( save_library_xpm ), m_HToolBar->AddTool( ID_LIBEDIT_SAVE_CURRENT_LIB, wxEmptyString, wxBitmap( save_library_xpm ),
_( "Save current loaded library on disk (file update)" ) ); _( "Save current loaded library on disk (file update)" ) );
m_HToolBar->AddTool( ID_LIBEDIT_SELECT_CURRENT_LIB, wxEmptyString, BITMAP( library_xpm ), m_HToolBar->AddTool( ID_LIBEDIT_SELECT_CURRENT_LIB, wxEmptyString, wxBitmap( library_xpm ),
_( "Select working library" ) ); _( "Select working library" ) );
m_HToolBar->AddTool( ID_LIBEDIT_DELETE_PART, wxEmptyString, BITMAP( delete_xpm ), m_HToolBar->AddTool( ID_LIBEDIT_DELETE_PART, wxEmptyString, wxBitmap( delete_xpm ),
_( "Delete component in current library" ) ); _( "Delete component in current library" ) );
m_HToolBar->AddSeparator(); m_HToolBar->AddSeparator();
m_HToolBar->AddTool( ID_LIBEDIT_NEW_PART, wxEmptyString, BITMAP( new_component_xpm ), m_HToolBar->AddTool( ID_LIBEDIT_NEW_PART, wxEmptyString, wxBitmap( new_component_xpm ),
_( "New component" ) ); _( "New component" ) );
m_HToolBar->AddTool( ID_LIBEDIT_SELECT_PART, BITMAP( add_component_xpm ), m_HToolBar->AddTool( ID_LIBEDIT_SELECT_PART, wxBitmap( add_component_xpm ),
_( "Select component to edit" ) ); _( "Select component to edit" ) );
m_HToolBar->AddTool( ID_LIBEDIT_SAVE_CURRENT_PART, wxEmptyString, m_HToolBar->AddTool( ID_LIBEDIT_SAVE_CURRENT_PART, wxEmptyString,
BITMAP( save_part_in_mem_xpm ), wxBitmap( save_part_in_mem_xpm ),
_( "Save current component into current loaded library (in memory)" ) ); _( "Save current component into current loaded library (in memory)" ) );
m_HToolBar->AddTool( ID_LIBEDIT_IMPORT_PART, wxEmptyString, BITMAP( import_xpm ), m_HToolBar->AddTool( ID_LIBEDIT_IMPORT_PART, wxEmptyString, wxBitmap( import_xpm ),
_( "import component" ) ); _( "import component" ) );
m_HToolBar->AddTool( ID_LIBEDIT_EXPORT_PART, wxEmptyString, BITMAP( export_xpm ), m_HToolBar->AddTool( ID_LIBEDIT_EXPORT_PART, wxEmptyString, wxBitmap( export_xpm ),
_( "export component" ) ); _( "export component" ) );
m_HToolBar->AddTool( ID_LIBEDIT_CREATE_NEW_LIB_AND_SAVE_CURRENT_PART, m_HToolBar->AddTool( ID_LIBEDIT_CREATE_NEW_LIB_AND_SAVE_CURRENT_PART,
wxEmptyString, BITMAP( new_library_xpm ), wxEmptyString, wxBitmap( new_library_xpm ),
_( "Create a new library an save current component into" ) ); _( "Create a new library an save current component into" ) );
m_HToolBar->AddSeparator(); m_HToolBar->AddSeparator();
msg = AddHotkeyName( _( "Undo last edition" ), s_Schematic_Hokeys_Descr, HK_UNDO ); msg = AddHotkeyName( _( "Undo last edition" ), s_Schematic_Hokeys_Descr, HK_UNDO );
m_HToolBar->AddTool( ID_LIBEDIT_UNDO, wxEmptyString, BITMAP( undo_xpm ), msg ); m_HToolBar->AddTool( ID_LIBEDIT_UNDO, wxEmptyString, wxBitmap( undo_xpm ), msg );
msg = AddHotkeyName( _( "Redo the last undo command" ), s_Schematic_Hokeys_Descr, HK_REDO ); msg = AddHotkeyName( _( "Redo the last undo command" ), s_Schematic_Hokeys_Descr, HK_REDO );
m_HToolBar->AddTool( ID_LIBEDIT_REDO, wxEmptyString, BITMAP( redo_xpm ), msg ); m_HToolBar->AddTool( ID_LIBEDIT_REDO, wxEmptyString, wxBitmap( redo_xpm ), msg );
m_HToolBar->AddSeparator(); m_HToolBar->AddSeparator();
m_HToolBar->AddTool( ID_LIBEDIT_GET_FRAME_EDIT_PART, BITMAP( part_properties_xpm ), m_HToolBar->AddTool( ID_LIBEDIT_GET_FRAME_EDIT_PART, wxBitmap( part_properties_xpm ),
wxNullBitmap, wxNullBitmap,
FALSE, FALSE,
-1, -1, (wxObject*) NULL, -1, -1, (wxObject*) NULL,
_( "Edit component properties" ) ); _( "Edit component properties" ) );
m_HToolBar->AddTool( ID_LIBEDIT_GET_FRAME_EDIT_FIELDS, BITMAP( add_text_xpm ), m_HToolBar->AddTool( ID_LIBEDIT_GET_FRAME_EDIT_FIELDS, wxBitmap( add_text_xpm ),
wxNullBitmap, wxNullBitmap,
FALSE, FALSE,
-1, -1, (wxObject*) NULL, -1, -1, (wxObject*) NULL,
_( "Add, remove fields and edit fields properties" ) ); _( "Add, remove fields and edit fields properties" ) );
m_HToolBar->AddSeparator(); m_HToolBar->AddSeparator();
m_HToolBar->AddTool( ID_LIBEDIT_CHECK_PART, BITMAP( erc_xpm ), m_HToolBar->AddTool( ID_LIBEDIT_CHECK_PART, wxBitmap( erc_xpm ),
wxNullBitmap, wxNullBitmap,
FALSE, FALSE,
-1, -1, (wxObject*) NULL, -1, -1, (wxObject*) NULL,
@ -171,36 +168,36 @@ void WinEDA_LibeditFrame::ReCreateHToolbar()
m_HToolBar->AddSeparator(); m_HToolBar->AddSeparator();
msg = AddHotkeyName( _( "Zoom in" ), s_Libedit_Hokeys_Descr, HK_ZOOM_IN ); msg = AddHotkeyName( _( "Zoom in" ), s_Libedit_Hokeys_Descr, HK_ZOOM_IN );
m_HToolBar->AddTool( ID_ZOOM_IN_BUTT, wxEmptyString, BITMAP( zoom_in_xpm ), m_HToolBar->AddTool( ID_ZOOM_IN, wxEmptyString, wxBitmap( zoom_in_xpm ),
msg ); msg );
msg = AddHotkeyName( _( "Zoom out" ), s_Libedit_Hokeys_Descr, HK_ZOOM_OUT ); msg = AddHotkeyName( _( "Zoom out" ), s_Libedit_Hokeys_Descr, HK_ZOOM_OUT );
m_HToolBar->AddTool( ID_ZOOM_OUT_BUTT, wxEmptyString, BITMAP( zoom_out_xpm ), m_HToolBar->AddTool( ID_ZOOM_OUT, wxEmptyString, wxBitmap( zoom_out_xpm ),
msg ); msg );
msg = AddHotkeyName( _( "Redraw view" ), s_Libedit_Hokeys_Descr, HK_ZOOM_REDRAW ); msg = AddHotkeyName( _( "Redraw view" ), s_Libedit_Hokeys_Descr, HK_ZOOM_REDRAW );
m_HToolBar->AddTool( ID_ZOOM_REDRAW_BUTT, wxEmptyString, BITMAP( zoom_redraw_xpm ), m_HToolBar->AddTool( ID_ZOOM_REDRAW, wxEmptyString, wxBitmap( zoom_redraw_xpm ),
msg ); msg );
m_HToolBar->AddTool( ID_ZOOM_PAGE_BUTT, wxEmptyString, m_HToolBar->AddTool( ID_ZOOM_PAGE, wxEmptyString,
BITMAP( zoom_auto_xpm ), wxBitmap( zoom_auto_xpm ),
_( "Zoom auto" ) ); _( "Zoom auto" ) );
m_HToolBar->AddSeparator(); m_HToolBar->AddSeparator();
m_HToolBar->AddTool( ID_DE_MORGAN_NORMAL_BUTT, wxEmptyString, m_HToolBar->AddTool( ID_DE_MORGAN_NORMAL_BUTT, wxEmptyString,
BITMAP( morgan1_xpm ), wxBitmap( morgan1_xpm ),
_( "show as \"De Morgan\" normal part" ), wxITEM_CHECK ); _( "show as \"De Morgan\" normal part" ), wxITEM_CHECK );
m_HToolBar->ToggleTool( ID_DE_MORGAN_NORMAL_BUTT, m_HToolBar->ToggleTool( ID_DE_MORGAN_NORMAL_BUTT,
(CurrentConvert <= 1) ? TRUE : FALSE ); (CurrentConvert <= 1) ? TRUE : FALSE );
m_HToolBar->AddTool( ID_DE_MORGAN_CONVERT_BUTT, wxEmptyString, m_HToolBar->AddTool( ID_DE_MORGAN_CONVERT_BUTT, wxEmptyString,
BITMAP( morgan2_xpm ), wxBitmap( morgan2_xpm ),
_( "show as \"De Morgan\" convert part" ), wxITEM_CHECK ); _( "show as \"De Morgan\" convert part" ), wxITEM_CHECK );
m_HToolBar->ToggleTool( ID_DE_MORGAN_CONVERT_BUTT, m_HToolBar->ToggleTool( ID_DE_MORGAN_CONVERT_BUTT,
(CurrentConvert >= 2) ? TRUE : FALSE ); (CurrentConvert >= 2) ? TRUE : FALSE );
m_HToolBar->AddSeparator(); m_HToolBar->AddSeparator();
m_HToolBar->AddTool( ID_LIBEDIT_VIEW_DOC, BITMAP( datasheet_xpm ), m_HToolBar->AddTool( ID_LIBEDIT_VIEW_DOC, wxBitmap( datasheet_xpm ),
wxNullBitmap, wxNullBitmap,
FALSE, FALSE,
-1, -1, (wxObject*) NULL, -1, -1, (wxObject*) NULL,
@ -217,7 +214,7 @@ void WinEDA_LibeditFrame::ReCreateHToolbar()
m_HToolBar->AddControl( m_SelAliasBox ); m_HToolBar->AddControl( m_SelAliasBox );
m_HToolBar->AddSeparator(); m_HToolBar->AddSeparator();
m_HToolBar->AddTool( ID_LIBEDIT_EDIT_PIN_BY_PIN, BITMAP( pin2pin_xpm ), m_HToolBar->AddTool( ID_LIBEDIT_EDIT_PIN_BY_PIN, wxBitmap( pin2pin_xpm ),
wxNullBitmap, wxNullBitmap,
TRUE, TRUE,
-1, -1, (wxObject*) NULL, -1, -1, (wxObject*) NULL,

View File

@ -3,7 +3,6 @@
/*****************************************************/ /*****************************************************/
#include "fctsys.h" #include "fctsys.h"
#include "gr_basic.h"
#include "common.h" #include "common.h"
#include "program.h" #include "program.h"
@ -13,8 +12,6 @@
#include "protos.h" #include "protos.h"
#include "hotkeys.h" #include "hotkeys.h"
#define BITMAP wxBitmap
#include "bitmaps.h" #include "bitmaps.h"
#include "id.h" #include "id.h"
@ -35,93 +32,93 @@ void WinEDA_SchematicFrame::ReCreateHToolbar()
SetToolBar( m_HToolBar ); SetToolBar( m_HToolBar );
// Set up toolbar // Set up toolbar
m_HToolBar->AddTool( ID_NEW_PROJECT, wxEmptyString, BITMAP( new_xpm ), m_HToolBar->AddTool( ID_NEW_PROJECT, wxEmptyString, wxBitmap( new_xpm ),
_( "New schematic project" ) ); _( "New schematic project" ) );
m_HToolBar->AddTool( ID_LOAD_PROJECT, wxEmptyString, BITMAP( open_xpm ), m_HToolBar->AddTool( ID_LOAD_PROJECT, wxEmptyString, wxBitmap( open_xpm ),
_( "Open schematic project" ) ); _( "Open schematic project" ) );
m_HToolBar->AddTool( ID_SAVE_PROJECT, wxEmptyString, BITMAP( save_project_xpm ), m_HToolBar->AddTool( ID_SAVE_PROJECT, wxEmptyString, wxBitmap( save_project_xpm ),
_( "Save schematic project" ) ); _( "Save schematic project" ) );
m_HToolBar->AddSeparator(); m_HToolBar->AddSeparator();
m_HToolBar->AddTool( ID_SHEET_SET, wxEmptyString, BITMAP( sheetset_xpm ), m_HToolBar->AddTool( ID_SHEET_SET, wxEmptyString, wxBitmap( sheetset_xpm ),
_( "Page settings" ) ); _( "Page settings" ) );
m_HToolBar->AddSeparator(); m_HToolBar->AddSeparator();
m_HToolBar->AddTool( ID_TO_LIBRARY, wxEmptyString, BITMAP( libedit_xpm ), m_HToolBar->AddTool( ID_TO_LIBRARY, wxEmptyString, wxBitmap( libedit_xpm ),
_( "Library editor" ) ); _( "Library editor" ) );
m_HToolBar->AddTool( ID_TO_LIBVIEW, wxEmptyString, BITMAP( library_browse_xpm ), m_HToolBar->AddTool( ID_TO_LIBVIEW, wxEmptyString, wxBitmap( library_browse_xpm ),
_( "Library browser" ) ); _( "Library browser" ) );
m_HToolBar->AddSeparator(); m_HToolBar->AddSeparator();
m_HToolBar->AddTool( ID_HIERARCHY, wxEmptyString, BITMAP( hierarchy_nav_xpm ), m_HToolBar->AddTool( ID_HIERARCHY, wxEmptyString, wxBitmap( hierarchy_nav_xpm ),
_( "Schematic hierarchy navigator" ) ); _( "Schematic hierarchy navigator" ) );
m_HToolBar->AddSeparator(); m_HToolBar->AddSeparator();
m_HToolBar->AddTool( wxID_CUT, wxEmptyString, BITMAP( cut_button ), m_HToolBar->AddTool( wxID_CUT, wxEmptyString, wxBitmap( cut_button ),
_( "Cut selected item" ) ); _( "Cut selected item" ) );
m_HToolBar->AddTool( wxID_COPY, wxEmptyString, BITMAP( copy_button ), m_HToolBar->AddTool( wxID_COPY, wxEmptyString, wxBitmap( copy_button ),
_( "Copy selected item" ) ); _( "Copy selected item" ) );
m_HToolBar->AddTool( wxID_PASTE, wxEmptyString, BITMAP( paste_xpm ), m_HToolBar->AddTool( wxID_PASTE, wxEmptyString, wxBitmap( paste_xpm ),
_( "Paste" ) ); _( "Paste" ) );
m_HToolBar->AddSeparator(); m_HToolBar->AddSeparator();
msg = AddHotkeyName( _( "Undo last edition" ), s_Schematic_Hokeys_Descr, HK_UNDO ); msg = AddHotkeyName( _( "Undo last edition" ), s_Schematic_Hokeys_Descr, HK_UNDO );
m_HToolBar->AddTool( ID_SCHEMATIC_UNDO, wxEmptyString, BITMAP( undo_xpm ), msg ); m_HToolBar->AddTool( ID_SCHEMATIC_UNDO, wxEmptyString, wxBitmap( undo_xpm ), msg );
msg = AddHotkeyName( _( "Redo the last undo command" ), s_Schematic_Hokeys_Descr, HK_REDO ); msg = AddHotkeyName( _( "Redo the last undo command" ), s_Schematic_Hokeys_Descr, HK_REDO );
m_HToolBar->AddTool( ID_SCHEMATIC_REDO, wxEmptyString, BITMAP( redo_xpm ), msg ); m_HToolBar->AddTool( ID_SCHEMATIC_REDO, wxEmptyString, wxBitmap( redo_xpm ), msg );
m_HToolBar->AddSeparator(); m_HToolBar->AddSeparator();
m_HToolBar->AddTool( ID_GEN_PRINT, wxEmptyString, BITMAP( print_button ), m_HToolBar->AddTool( ID_GEN_PRINT, wxEmptyString, wxBitmap( print_button ),
_( "Print schematic" ) ); _( "Print schematic" ) );
m_HToolBar->AddSeparator(); m_HToolBar->AddSeparator();
m_HToolBar->AddTool( ID_TO_CVPCB, wxEmptyString, BITMAP( cvpcb_xpm ), m_HToolBar->AddTool( ID_TO_CVPCB, wxEmptyString, wxBitmap( cvpcb_xpm ),
_( "Run Cvpcb" ) ); _( "Run Cvpcb" ) );
m_HToolBar->AddTool( ID_TO_PCB, wxEmptyString, BITMAP( pcbnew_xpm ), m_HToolBar->AddTool( ID_TO_PCB, wxEmptyString, wxBitmap( pcbnew_xpm ),
_( "Run pcbnew" ) ); _( "Run pcbnew" ) );
m_HToolBar->AddSeparator(); m_HToolBar->AddSeparator();
msg = AddHotkeyName( _( "Zoom in" ), s_Schematic_Hokeys_Descr, HK_ZOOM_IN ); msg = AddHotkeyName( _( "Zoom in" ), s_Schematic_Hokeys_Descr, HK_ZOOM_IN );
m_HToolBar->AddTool( ID_ZOOM_IN_BUTT, wxEmptyString, BITMAP( zoom_in_xpm ), m_HToolBar->AddTool( ID_ZOOM_IN, wxEmptyString, wxBitmap( zoom_in_xpm ),
msg ); msg );
msg = AddHotkeyName( _( "Zoom out" ), s_Schematic_Hokeys_Descr, HK_ZOOM_OUT ); msg = AddHotkeyName( _( "Zoom out" ), s_Schematic_Hokeys_Descr, HK_ZOOM_OUT );
m_HToolBar->AddTool( ID_ZOOM_OUT_BUTT, wxEmptyString, BITMAP( zoom_out_xpm ), m_HToolBar->AddTool( ID_ZOOM_OUT, wxEmptyString, wxBitmap( zoom_out_xpm ),
msg ); msg );
msg = AddHotkeyName( _( "Redraw view" ), s_Schematic_Hokeys_Descr, HK_ZOOM_REDRAW ); msg = AddHotkeyName( _( "Redraw view" ), s_Schematic_Hokeys_Descr, HK_ZOOM_REDRAW );
m_HToolBar->AddTool( ID_ZOOM_REDRAW_BUTT, wxEmptyString, BITMAP( zoom_redraw_xpm ), m_HToolBar->AddTool( ID_ZOOM_REDRAW, wxEmptyString, wxBitmap( zoom_redraw_xpm ),
msg ); msg );
m_HToolBar->AddTool( ID_ZOOM_PAGE_BUTT, wxEmptyString, BITMAP( zoom_auto_xpm ), m_HToolBar->AddTool( ID_ZOOM_PAGE, wxEmptyString, wxBitmap( zoom_auto_xpm ),
_( "Zoom auto" ) ); _( "Zoom auto" ) );
m_HToolBar->AddSeparator(); m_HToolBar->AddSeparator();
m_HToolBar->AddTool( ID_FIND_ITEMS, wxEmptyString, BITMAP( find_xpm ), m_HToolBar->AddTool( ID_FIND_ITEMS, wxEmptyString, wxBitmap( find_xpm ),
_( "Find components and texts" ) ); _( "Find components and texts" ) );
m_HToolBar->AddSeparator(); m_HToolBar->AddSeparator();
m_HToolBar->AddTool( ID_GET_NETLIST, wxEmptyString, BITMAP( netlist_xpm ), m_HToolBar->AddTool( ID_GET_NETLIST, wxEmptyString, wxBitmap( netlist_xpm ),
_( "Netlist generation" ) ); _( "Netlist generation" ) );
m_HToolBar->AddTool( ID_GET_ANNOTATE, wxEmptyString, BITMAP( annotate_xpm ), m_HToolBar->AddTool( ID_GET_ANNOTATE, wxEmptyString, wxBitmap( annotate_xpm ),
_( "Schematic Annotation" ) ); _( "Schematic Annotation" ) );
m_HToolBar->AddTool( ID_GET_ERC, wxEmptyString, BITMAP( erc_xpm ), m_HToolBar->AddTool( ID_GET_ERC, wxEmptyString, wxBitmap( erc_xpm ),
_( "Schematic Electric Rules Check" ) ); _( "Schematic Electric Rules Check" ) );
m_HToolBar->AddTool( ID_GET_TOOLS, wxEmptyString, BITMAP( tools_xpm ), m_HToolBar->AddTool( ID_GET_TOOLS, wxEmptyString, wxBitmap( tools_xpm ),
_( "Bill of material and/or Crossreferences" ) ); _( "Bill of material and/or Crossreferences" ) );
m_HToolBar->AddTool( ID_BACKANNO_ITEMS, wxEmptyString, BITMAP( backanno_xpm ), m_HToolBar->AddTool( ID_BACKANNO_ITEMS, wxEmptyString, wxBitmap( backanno_xpm ),
_( "Backannotate footprint" ) ); _( "Backannotate footprint" ) );
// after adding the tools to the toolbar, must call Realize() to reflect the changes // after adding the tools to the toolbar, must call Realize() to reflect the changes
@ -143,88 +140,88 @@ void WinEDA_SchematicFrame::ReCreateVToolbar()
// Set up toolbar // Set up toolbar
m_VToolBar->AddTool( ID_NO_SELECT_BUTT, wxEmptyString, m_VToolBar->AddTool( ID_NO_SELECT_BUTT, wxEmptyString,
BITMAP( cursor_xpm ), wxEmptyString, wxITEM_CHECK ); wxBitmap( cursor_xpm ), wxEmptyString, wxITEM_CHECK );
m_VToolBar->ToggleTool( ID_NO_SELECT_BUTT, TRUE ); m_VToolBar->ToggleTool( ID_NO_SELECT_BUTT, TRUE );
m_VToolBar->AddTool( ID_HIERARCHY_PUSH_POP_BUTT, wxEmptyString, m_VToolBar->AddTool( ID_HIERARCHY_PUSH_POP_BUTT, wxEmptyString,
BITMAP( hierarchy_cursor_xpm ), wxBitmap( hierarchy_cursor_xpm ),
_( "Hierarchy Push/Pop" ), wxITEM_CHECK ); _( "Hierarchy Push/Pop" ), wxITEM_CHECK );
m_VToolBar->AddSeparator(); m_VToolBar->AddSeparator();
m_VToolBar->AddTool( ID_COMPONENT_BUTT, wxEmptyString, m_VToolBar->AddTool( ID_COMPONENT_BUTT, wxEmptyString,
BITMAP( add_component_xpm ), wxBitmap( add_component_xpm ),
_( "Place a component" ), wxITEM_CHECK ); _( "Place a component" ), wxITEM_CHECK );
m_VToolBar->AddTool( ID_PLACE_POWER_BUTT, wxEmptyString, m_VToolBar->AddTool( ID_PLACE_POWER_BUTT, wxEmptyString,
BITMAP( add_power_xpm ), wxBitmap( add_power_xpm ),
_( "Place a power port" ), wxITEM_CHECK ); _( "Place a power port" ), wxITEM_CHECK );
m_VToolBar->AddSeparator(); m_VToolBar->AddSeparator();
m_VToolBar->AddTool( ID_WIRE_BUTT, wxEmptyString, m_VToolBar->AddTool( ID_WIRE_BUTT, wxEmptyString,
BITMAP( add_line_xpm ), wxBitmap( add_line_xpm ),
_( "Place a wire" ), wxITEM_CHECK ); _( "Place a wire" ), wxITEM_CHECK );
m_VToolBar->AddTool( ID_BUS_BUTT, wxEmptyString, m_VToolBar->AddTool( ID_BUS_BUTT, wxEmptyString,
BITMAP( add_bus_xpm ), wxBitmap( add_bus_xpm ),
_( "Place a bus" ), wxITEM_CHECK ); _( "Place a bus" ), wxITEM_CHECK );
m_VToolBar->AddTool( ID_WIRETOBUS_ENTRY_BUTT, wxEmptyString, m_VToolBar->AddTool( ID_WIRETOBUS_ENTRY_BUTT, wxEmptyString,
BITMAP( add_line2bus_xpm ), wxBitmap( add_line2bus_xpm ),
_( "Place a wire to bus entry" ), wxITEM_CHECK ); _( "Place a wire to bus entry" ), wxITEM_CHECK );
m_VToolBar->AddTool( ID_BUSTOBUS_ENTRY_BUTT, wxEmptyString, m_VToolBar->AddTool( ID_BUSTOBUS_ENTRY_BUTT, wxEmptyString,
BITMAP( add_bus2bus_xpm ), wxBitmap( add_bus2bus_xpm ),
_( "Place a bus to bus entry" ), wxITEM_CHECK ); _( "Place a bus to bus entry" ), wxITEM_CHECK );
m_VToolBar->AddSeparator(); m_VToolBar->AddSeparator();
m_VToolBar->AddTool( ID_NOCONN_BUTT, wxEmptyString, m_VToolBar->AddTool( ID_NOCONN_BUTT, wxEmptyString,
BITMAP( noconn_button ), wxBitmap( noconn_button ),
_( "Place no connect flag" ), wxITEM_CHECK ); _( "Place no connect flag" ), wxITEM_CHECK );
m_VToolBar->AddTool( ID_LABEL_BUTT, wxEmptyString, m_VToolBar->AddTool( ID_LABEL_BUTT, wxEmptyString,
BITMAP( add_line_label_xpm ), wxBitmap( add_line_label_xpm ),
_( "Place net name" ), wxITEM_CHECK ); _( "Place net name" ), wxITEM_CHECK );
m_VToolBar->AddTool( ID_GLABEL_BUTT, wxEmptyString, m_VToolBar->AddTool( ID_GLABEL_BUTT, wxEmptyString,
BITMAP( add_glabel_xpm ), wxBitmap( add_glabel_xpm ),
_( "Place a global label.\nWarning: all global labels with the same name are connected in whole hierarchy" ), _( "Place a global label.\nWarning: all global labels with the same name are connected in whole hierarchy" ),
wxITEM_CHECK ); wxITEM_CHECK );
m_VToolBar->AddTool( ID_JUNCTION_BUTT, wxEmptyString, m_VToolBar->AddTool( ID_JUNCTION_BUTT, wxEmptyString,
BITMAP( add_junction_xpm ), wxBitmap( add_junction_xpm ),
_( "Place a junction" ), wxITEM_CHECK ); _( "Place a junction" ), wxITEM_CHECK );
m_VToolBar->AddSeparator(); m_VToolBar->AddSeparator();
m_VToolBar->AddTool( ID_HIERLABEL_BUTT, wxEmptyString, m_VToolBar->AddTool( ID_HIERLABEL_BUTT, wxEmptyString,
BITMAP( add_hierarchical_label_xpm ), wxBitmap( add_hierarchical_label_xpm ),
_( "Place a hierarchical label. This label will be seen as a pin sheet in the sheet symbol" ), _( "Place a hierarchical label. This label will be seen as a pin sheet in the sheet symbol" ),
wxITEM_CHECK ); wxITEM_CHECK );
m_VToolBar->AddTool( ID_SHEET_SYMBOL_BUTT, wxEmptyString, m_VToolBar->AddTool( ID_SHEET_SYMBOL_BUTT, wxEmptyString,
BITMAP( add_hierarchical_subsheet_xpm ), wxBitmap( add_hierarchical_subsheet_xpm ),
_( "Place hierarchical sheet" ), wxITEM_CHECK ); _( "Place hierarchical sheet" ), wxITEM_CHECK );
m_VToolBar->AddTool( ID_IMPORT_GLABEL_BUTT, wxEmptyString, m_VToolBar->AddTool( ID_IMPORT_GLABEL_BUTT, wxEmptyString,
BITMAP( import_hierarchical_label_xpm ), wxBitmap( import_hierarchical_label_xpm ),
_( "Place a pin sheet , imported from a hierarchical label in sheet" ), _( "Place a pin sheet , imported from a hierarchical label in sheet" ),
wxITEM_CHECK ); wxITEM_CHECK );
m_VToolBar->AddTool( ID_SHEET_LABEL_BUTT, wxEmptyString, m_VToolBar->AddTool( ID_SHEET_LABEL_BUTT, wxEmptyString,
BITMAP( add_hierar_pin_xpm ), wxBitmap( add_hierar_pin_xpm ),
_( "Place hierarchical pin to sheet" ), wxITEM_CHECK ); _( "Place hierarchical pin to sheet" ), wxITEM_CHECK );
m_VToolBar->AddSeparator(); m_VToolBar->AddSeparator();
m_VToolBar->AddTool( ID_LINE_COMMENT_BUTT, wxEmptyString, m_VToolBar->AddTool( ID_LINE_COMMENT_BUTT, wxEmptyString,
BITMAP( add_dashed_line_xpm ), wxBitmap( add_dashed_line_xpm ),
_( "Place graphic line or polygon" ), wxITEM_CHECK ); _( "Place graphic line or polygon" ), wxITEM_CHECK );
m_VToolBar->AddTool( ID_TEXT_COMMENT_BUTT, wxEmptyString, m_VToolBar->AddTool( ID_TEXT_COMMENT_BUTT, wxEmptyString,
BITMAP( add_text_xpm ), wxBitmap( add_text_xpm ),
_( "Place graphic text (comment)" ), wxITEM_CHECK ); _( "Place graphic text (comment)" ), wxITEM_CHECK );
m_VToolBar->AddSeparator(); m_VToolBar->AddSeparator();
m_VToolBar->AddTool( ID_SCHEMATIC_DELETE_ITEM_BUTT, wxEmptyString, m_VToolBar->AddTool( ID_SCHEMATIC_DELETE_ITEM_BUTT, wxEmptyString,
BITMAP( delete_body_xpm ), wxBitmap( delete_body_xpm ),
_( "Delete items" ), wxITEM_CHECK ); _( "Delete items" ), wxITEM_CHECK );
m_VToolBar->Realize(); m_VToolBar->Realize();
@ -246,29 +243,29 @@ void WinEDA_SchematicFrame::ReCreateOptToolbar()
m_OptionsToolBar = new WinEDA_Toolbar( TOOLBAR_OPTION, this, ID_OPT_TOOLBAR, FALSE ); m_OptionsToolBar = new WinEDA_Toolbar( TOOLBAR_OPTION, this, ID_OPT_TOOLBAR, FALSE );
m_OptionsToolBar->AddTool( ID_TB_OPTIONS_SHOW_GRID, wxEmptyString, m_OptionsToolBar->AddTool( ID_TB_OPTIONS_SHOW_GRID, wxEmptyString,
BITMAP( grid_xpm ), wxBitmap( grid_xpm ),
_( "Display Grid OFF" ), wxITEM_CHECK ); _( "Display Grid OFF" ), wxITEM_CHECK );
m_OptionsToolBar->AddTool( ID_TB_OPTIONS_SELECT_UNIT_INCH, wxEmptyString, m_OptionsToolBar->AddTool( ID_TB_OPTIONS_SELECT_UNIT_INCH, wxEmptyString,
BITMAP( unit_inch_xpm ), wxBitmap( unit_inch_xpm ),
_( "Units in inches" ), wxITEM_CHECK ); _( "Units in inches" ), wxITEM_CHECK );
m_OptionsToolBar->AddTool( ID_TB_OPTIONS_SELECT_UNIT_MM, wxEmptyString, m_OptionsToolBar->AddTool( ID_TB_OPTIONS_SELECT_UNIT_MM, wxEmptyString,
BITMAP( unit_mm_xpm ), wxBitmap( unit_mm_xpm ),
_( "Units in millimeters" ), wxITEM_CHECK ); _( "Units in millimeters" ), wxITEM_CHECK );
m_OptionsToolBar->AddTool( ID_TB_OPTIONS_SELECT_CURSOR, wxEmptyString, m_OptionsToolBar->AddTool( ID_TB_OPTIONS_SELECT_CURSOR, wxEmptyString,
BITMAP( cursor_shape_xpm ), wxBitmap( cursor_shape_xpm ),
_( "Change Cursor Shape" ), wxITEM_CHECK ); _( "Change Cursor Shape" ), wxITEM_CHECK );
m_OptionsToolBar->AddSeparator(); m_OptionsToolBar->AddSeparator();
m_OptionsToolBar->AddTool( ID_TB_OPTIONS_HIDDEN_PINS, wxEmptyString, m_OptionsToolBar->AddTool( ID_TB_OPTIONS_HIDDEN_PINS, wxEmptyString,
BITMAP( hidden_pin_xpm ), wxBitmap( hidden_pin_xpm ),
_( "Show Hidden Pins" ), wxITEM_CHECK ); _( "Show Hidden Pins" ), wxITEM_CHECK );
m_OptionsToolBar->AddSeparator(); m_OptionsToolBar->AddSeparator();
m_OptionsToolBar->AddTool( ID_TB_OPTIONS_BUS_WIRES_ORIENT, wxEmptyString, m_OptionsToolBar->AddTool( ID_TB_OPTIONS_BUS_WIRES_ORIENT, wxEmptyString,
BITMAP( lines90_xpm ), wxBitmap( lines90_xpm ),
_( "HV orientation for Wires and Bus" ), wxITEM_CHECK ); _( "HV orientation for Wires and Bus" ), wxITEM_CHECK );
m_OptionsToolBar->Realize(); m_OptionsToolBar->Realize();

View File

@ -3,7 +3,6 @@
/****************************************************************/ /****************************************************************/
#include "fctsys.h" #include "fctsys.h"
#include "gr_basic.h"
#include "common.h" #include "common.h"
#include "program.h" #include "program.h"
@ -14,8 +13,6 @@
#include "protos.h" #include "protos.h"
#define BITMAP wxBitmap
#include "bitmaps.h" #include "bitmaps.h"
#include "id.h" #include "id.h"
@ -28,81 +25,92 @@ int ii;
EDA_LibComponentStruct* RootLibEntry = NULL, * CurrentLibEntry = NULL; EDA_LibComponentStruct* RootLibEntry = NULL, * CurrentLibEntry = NULL;
bool asdeMorgan = FALSE, state; bool asdeMorgan = FALSE, state;
if ( (g_CurrentViewLibraryName != wxEmptyString) && (g_CurrentViewComponentName != wxEmptyString) ) if( (g_CurrentViewLibraryName != wxEmptyString)
&& (g_CurrentViewComponentName != wxEmptyString) )
{ {
RootLibEntry = FindLibPart( g_CurrentViewComponentName.GetData(), RootLibEntry = FindLibPart( g_CurrentViewComponentName.GetData(),
g_CurrentViewLibraryName.GetData(), FIND_ROOT); g_CurrentViewLibraryName.GetData(),
FIND_ROOT );
if( RootLibEntry && LookForConvertPart( RootLibEntry ) > 1 ) if( RootLibEntry && LookForConvertPart( RootLibEntry ) > 1 )
asdeMorgan = TRUE; asdeMorgan = TRUE;
CurrentLibEntry = FindLibPart( g_CurrentViewComponentName.GetData(), CurrentLibEntry = FindLibPart( g_CurrentViewComponentName.GetData(),
g_CurrentViewLibraryName.GetData(), FIND_ALIAS); g_CurrentViewLibraryName.GetData(),
FIND_ALIAS );
} }
if( m_HToolBar == NULL ) if( m_HToolBar == NULL )
{ {
m_HToolBar = new WinEDA_Toolbar(TOOLBAR_MAIN, this, ID_H_TOOLBAR, TRUE); m_HToolBar = new WinEDA_Toolbar( TOOLBAR_MAIN,
this,
ID_H_TOOLBAR,
TRUE );
SetToolBar( m_HToolBar ); SetToolBar( m_HToolBar );
// Set up toolbar // Set up toolbar
m_HToolBar->AddTool( ID_LIBVIEW_SELECT_LIB, wxEmptyString, m_HToolBar->AddTool( ID_LIBVIEW_SELECT_LIB, wxEmptyString,
BITMAP(library_xpm), wxBitmap( library_xpm ),
_( "Select library to browse" ) ); _( "Select library to browse" ) );
m_HToolBar->AddTool( ID_LIBVIEW_SELECT_PART, wxEmptyString, m_HToolBar->AddTool( ID_LIBVIEW_SELECT_PART, wxEmptyString,
BITMAP(add_component_xpm), wxBitmap( add_component_xpm ),
_( "Select part to browse" ) ); _( "Select part to browse" ) );
m_HToolBar->AddSeparator(); m_HToolBar->AddSeparator();
m_HToolBar->AddTool( ID_LIBVIEW_PREVIOUS, wxEmptyString, m_HToolBar->AddTool( ID_LIBVIEW_PREVIOUS, wxEmptyString,
BITMAP(lib_previous_xpm), wxBitmap( lib_previous_xpm ),
_( "Display previous part" ) ); _( "Display previous part" ) );
m_HToolBar->AddTool( ID_LIBVIEW_NEXT, wxEmptyString, m_HToolBar->AddTool( ID_LIBVIEW_NEXT, wxEmptyString,
BITMAP(lib_next_xpm), wxBitmap( lib_next_xpm ),
_( "Display next part" ) ); _( "Display next part" ) );
m_HToolBar->AddSeparator(); m_HToolBar->AddSeparator();
m_HToolBar->AddTool(ID_ZOOM_IN_BUTT, wxEmptyString, m_HToolBar->AddTool( ID_ZOOM_IN, wxEmptyString,
BITMAP(zoom_in_xpm), wxBitmap( zoom_in_xpm ),
_( "Zoom in" ) ); _( "Zoom in" ) );
m_HToolBar->AddTool(ID_ZOOM_OUT_BUTT, wxEmptyString, m_HToolBar->AddTool( ID_ZOOM_OUT, wxEmptyString,
BITMAP(zoom_out_xpm), wxBitmap( zoom_out_xpm ),
_( "Zoom out" ) ); _( "Zoom out" ) );
m_HToolBar->AddTool(ID_ZOOM_REDRAW_BUTT, wxEmptyString, m_HToolBar->AddTool( ID_ZOOM_REDRAW, wxEmptyString,
BITMAP(zoom_redraw_xpm), wxBitmap( zoom_redraw_xpm ),
_( "Redraw view" ) ); _( "Redraw view" ) );
m_HToolBar->AddTool(ID_ZOOM_PAGE_BUTT, wxEmptyString, m_HToolBar->AddTool( ID_ZOOM_PAGE, wxEmptyString,
BITMAP(zoom_auto_xpm), wxBitmap( zoom_auto_xpm ),
_( "Best zoom" ) ); _( "Best zoom" ) );
m_HToolBar->AddSeparator(); m_HToolBar->AddSeparator();
m_HToolBar->AddTool( ID_LIBVIEW_DE_MORGAN_NORMAL_BUTT, wxEmptyString, m_HToolBar->AddTool( ID_LIBVIEW_DE_MORGAN_NORMAL_BUTT, wxEmptyString,
BITMAP(morgan1_xpm), wxBitmap( morgan1_xpm ),
_("Show as \"De Morgan\" normal part"), wxITEM_CHECK); _( "Show as \"De Morgan\" normal part" ),
wxITEM_CHECK );
m_HToolBar->AddTool( ID_LIBVIEW_DE_MORGAN_CONVERT_BUTT, wxEmptyString, m_HToolBar->AddTool( ID_LIBVIEW_DE_MORGAN_CONVERT_BUTT, wxEmptyString,
BITMAP(morgan2_xpm), wxBitmap( morgan2_xpm ),
_("Show as \"De Morgan\" convert part"), wxITEM_CHECK); _( "Show as \"De Morgan\" convert part" ),
wxITEM_CHECK );
m_HToolBar->AddSeparator(); m_HToolBar->AddSeparator();
SelpartBox = new WinEDAChoiceBox(m_HToolBar, ID_LIBVIEW_SELECT_PART_NUMBER, SelpartBox =
new WinEDAChoiceBox( m_HToolBar, ID_LIBVIEW_SELECT_PART_NUMBER,
wxDefaultPosition, wxSize( 150, -1 ) ); wxDefaultPosition, wxSize( 150, -1 ) );
m_HToolBar->AddControl( SelpartBox ); m_HToolBar->AddControl( SelpartBox );
m_HToolBar->AddSeparator(); m_HToolBar->AddSeparator();
m_HToolBar->AddTool(ID_LIBVIEW_VIEWDOC, wxEmptyString, BITMAP(datasheet_xpm), m_HToolBar->AddTool( ID_LIBVIEW_VIEWDOC, wxEmptyString,
wxBitmap( datasheet_xpm ),
_( "View component documents" ) ); _( "View component documents" ) );
m_HToolBar->EnableTool( ID_LIBVIEW_VIEWDOC, FALSE ); m_HToolBar->EnableTool( ID_LIBVIEW_VIEWDOC, FALSE );
if( m_Semaphore ) // The lib browser is called from a "load component" command if( m_Semaphore ) // The lib browser is called from a "load component" command
{ {
m_HToolBar->AddSeparator(); m_HToolBar->AddSeparator();
m_HToolBar->AddTool(ID_LIBVIEW_CMP_EXPORT_TO_SCHEMATIC, wxEmptyString, m_HToolBar->AddTool( ID_LIBVIEW_CMP_EXPORT_TO_SCHEMATIC,
BITMAP(export_xpm), wxEmptyString,
wxBitmap( export_xpm ),
_( "Insert component in schematic" ) ); _( "Insert component in schematic" ) );
} }
@ -120,7 +128,8 @@ bool asdeMorgan = FALSE, state;
m_HToolBar->EnableTool( ID_LIBVIEW_DE_MORGAN_NORMAL_BUTT, asdeMorgan ); m_HToolBar->EnableTool( ID_LIBVIEW_DE_MORGAN_NORMAL_BUTT, asdeMorgan );
int jj = 1; int jj = 1;
if( RootLibEntry ) jj = MAX(RootLibEntry->m_UnitCount, 1); if( RootLibEntry )
jj = MAX( RootLibEntry->m_UnitCount, 1 );
SelpartBox->Clear(); SelpartBox->Clear();
for( ii = 0; ii < jj; ii++ ) for( ii = 0; ii < jj; ii++ )
{ {
@ -128,9 +137,11 @@ bool asdeMorgan = FALSE, state;
msg.Printf( _( "Part %c" ), 'A' + ii ); msg.Printf( _( "Part %c" ), 'A' + ii );
SelpartBox->Append( msg ); SelpartBox->Append( msg );
} }
SelpartBox->SetSelection( 0 ); SelpartBox->SetSelection( 0 );
state = FALSE; state = FALSE;
if ( CurrentLibEntry && jj > 1 ) state = TRUE; if( CurrentLibEntry && jj > 1 )
state = TRUE;
SelpartBox->Enable( state ); SelpartBox->Enable( state );
state = FALSE; state = FALSE;
@ -140,10 +151,8 @@ bool asdeMorgan = FALSE, state;
} }
/****************************************************/ /****************************************************/
void WinEDA_ViewlibFrame::ReCreateVToolbar() void WinEDA_ViewlibFrame::ReCreateVToolbar()
/****************************************************/ /****************************************************/
{ {
} }

View File

@ -18,16 +18,15 @@
/*****************************/ /*****************************/
/* class WinEDA_ViewlibFrame */ /* class WinEDA_ViewlibFrame */
/*****************************/ /*****************************/
BEGIN_EVENT_TABLE( WinEDA_ViewlibFrame, wxFrame ) BEGIN_EVENT_TABLE( WinEDA_ViewlibFrame, WinEDA_DrawFrame )
COMMON_EVENTS_DRAWFRAME EVT_CLOSE( WinEDA_ViewlibFrame::OnCloseWindow ) EVT_CLOSE( WinEDA_ViewlibFrame::OnCloseWindow )
EVT_SIZE( WinEDA_ViewlibFrame::OnSize ) EVT_SIZE( WinEDA_ViewlibFrame::OnSize )
EVT_ACTIVATE( WinEDA_DrawFrame::OnActivate ) EVT_ACTIVATE( WinEDA_DrawFrame::OnActivate )
EVT_TOOL_RANGE( ID_LIBVIEW_START_H_TOOL, ID_LIBVIEW_END_H_TOOL, EVT_TOOL_RANGE( ID_LIBVIEW_START_H_TOOL, ID_LIBVIEW_END_H_TOOL,
WinEDA_ViewlibFrame::Process_Special_Functions ) WinEDA_ViewlibFrame::Process_Special_Functions )
EVT_TOOL_RANGE( ID_ZOOM_IN_BUTT, ID_ZOOM_PAGE_BUTT, EVT_TOOL_RANGE( ID_ZOOM_IN, ID_ZOOM_PAGE, WinEDA_DrawFrame::OnZoom )
WinEDA_DrawFrame::Process_Zoom )
EVT_TOOL( ID_LIBVIEW_CMP_EXPORT_TO_SCHEMATIC, EVT_TOOL( ID_LIBVIEW_CMP_EXPORT_TO_SCHEMATIC,
WinEDA_ViewlibFrame::ExportToSchematicLibraryPart ) WinEDA_ViewlibFrame::ExportToSchematicLibraryPart )
@ -195,7 +194,7 @@ int WinEDA_ViewlibFrame::BestZoom()
size = DrawPanel->GetClientSize(); size = DrawPanel->GetClientSize();
size -= wxSize( 100, 100 ); // reserve a 100 mils margin size -= wxSize( 100, 100 ); // reserve a 100 mils margin
ii = (double) itemsize.x / size.x; ii = itemsize.x / size.x;
jj = itemsize.y / size.y; jj = itemsize.y / size.y;
bestzoom = MAX( ii, jj ) + 1; bestzoom = MAX( ii, jj ) + 1;

View File

@ -71,21 +71,6 @@ void WinEDA_BasePcbFrame::GeneralControle( wxDC* DC, wxPoint Mouse )
switch( g_KeyPressed ) switch( g_KeyPressed )
{ {
case EDA_ZOOM_IN_FROM_MOUSE:
OnZoom( ID_ZOOM_IN_KEY );
curpos = GetScreen()->m_Curseur;
break;
case EDA_ZOOM_OUT_FROM_MOUSE:
OnZoom( ID_ZOOM_OUT_KEY );
curpos = GetScreen()->m_Curseur;
break;
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_NUMPAD8: /* Deplacement curseur vers le haut */
case WXK_UP: case WXK_UP:
Mouse.y -= delta.y; Mouse.y -= delta.y;

View File

@ -21,13 +21,11 @@
/* class WinEDA_GerberFrame for GerbView*/ /* class WinEDA_GerberFrame for GerbView*/
/****************************************/ /****************************************/
BEGIN_EVENT_TABLE( WinEDA_GerberFrame, wxFrame ) BEGIN_EVENT_TABLE( WinEDA_GerberFrame, WinEDA_BasePcbFrame )
COMMON_EVENTS_DRAWFRAME
EVT_CLOSE( WinEDA_GerberFrame::OnCloseWindow ) EVT_CLOSE( WinEDA_GerberFrame::OnCloseWindow )
EVT_SIZE( WinEDA_GerberFrame::OnSize ) EVT_SIZE( WinEDA_GerberFrame::OnSize )
EVT_TOOL_RANGE( ID_ZOOM_IN_BUTT, ID_ZOOM_PAGE_BUTT, EVT_TOOL_RANGE( ID_ZOOM_IN, ID_ZOOM_PAGE, WinEDA_GerberFrame::OnZoom )
WinEDA_GerberFrame::Process_Zoom )
EVT_TOOL( ID_LOAD_FILE, WinEDA_GerberFrame::Files_io ) EVT_TOOL( ID_LOAD_FILE, WinEDA_GerberFrame::Files_io )
EVT_TOOL( ID_APPEND_FILE, WinEDA_GerberFrame::Files_io ) EVT_TOOL( ID_APPEND_FILE, WinEDA_GerberFrame::Files_io )

View File

@ -84,6 +84,9 @@ void WinEDA_GerberFrame::OnHotKey( wxDC* DC, int hotkey,
*/ */
{ {
wxCommandEvent cmd( wxEVT_COMMAND_MENU_SELECTED );
cmd.SetEventObject( this );
// Remap the control key Ctrl A (0x01) to GR_KB_CTRL + 'A' (easier to handle...) // Remap the control key Ctrl A (0x01) to GR_KB_CTRL + 'A' (easier to handle...)
if( (hotkey & GR_KB_CTRL) != 0 ) if( (hotkey & GR_KB_CTRL) != 0 )
hotkey += 'A' - 1; hotkey += 'A' - 1;
@ -99,34 +102,35 @@ void WinEDA_GerberFrame::OnHotKey( wxDC* DC, int hotkey,
default: default:
case HK_NOT_FOUND: case HK_NOT_FOUND:
return; return;
break;
case HK_HELP: // Display Current hotkey list case HK_HELP: // Display Current hotkey list
DisplayHotkeyList( this, s_Gerbview_Hokeys_Descr ); DisplayHotkeyList( this, s_Gerbview_Hokeys_Descr );
break; break;
case HK_ZOOM_IN: case HK_ZOOM_IN:
OnZoom( ID_ZOOM_IN_KEY ); cmd.SetId( ID_POPUP_ZOOM_IN );
GetEventHandler()->ProcessEvent( cmd );
break; break;
case HK_ZOOM_OUT: case HK_ZOOM_OUT:
OnZoom( ID_ZOOM_OUT_KEY ); cmd.SetId( ID_POPUP_ZOOM_OUT );
GetEventHandler()->ProcessEvent( cmd );
break; break;
case HK_ZOOM_REDRAW: case HK_ZOOM_REDRAW:
OnZoom( ID_ZOOM_REDRAW_KEY ); cmd.SetId( ID_ZOOM_REDRAW );
GetEventHandler()->ProcessEvent( cmd );
break; break;
case HK_ZOOM_CENTER: case HK_ZOOM_CENTER:
OnZoom( ID_ZOOM_CENTER_KEY ); cmd.SetId( ID_POPUP_ZOOM_CENTER );
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()->m_Curseur; GetScreen()->m_O_Curseur = GetScreen()->m_Curseur;
break; break;
case HK_SWITCH_UNITS: case HK_SWITCH_UNITS:
g_UnitMetric = (g_UnitMetric == INCHES ) ? MILLIMETRE : INCHES; g_UnitMetric = (g_UnitMetric == INCHES ) ? MILLIMETRE : INCHES;
break; break;

View File

@ -269,27 +269,27 @@ void WinEDA_GerberFrame::ReCreateHToolbar( void )
m_HToolBar->AddSeparator(); m_HToolBar->AddSeparator();
msg = AddHotkeyName( _( "Zoom in" ), s_Gerbview_Hokeys_Descr, HK_ZOOM_IN ); msg = AddHotkeyName( _( "Zoom in" ), s_Gerbview_Hokeys_Descr, HK_ZOOM_IN );
m_HToolBar->AddTool( ID_ZOOM_IN_BUTT, wxBitmap( zoom_in_xpm ), m_HToolBar->AddTool( ID_ZOOM_IN, wxBitmap( zoom_in_xpm ),
wxNullBitmap, wxNullBitmap,
FALSE, FALSE,
-1, -1, (wxObject*) NULL, -1, -1, (wxObject*) NULL,
msg ); msg );
msg = AddHotkeyName( _( "Zoom out" ), s_Gerbview_Hokeys_Descr, HK_ZOOM_OUT ); msg = AddHotkeyName( _( "Zoom out" ), s_Gerbview_Hokeys_Descr, HK_ZOOM_OUT );
m_HToolBar->AddTool( ID_ZOOM_OUT_BUTT, wxBitmap( zoom_out_xpm ), m_HToolBar->AddTool( ID_ZOOM_OUT, wxBitmap( zoom_out_xpm ),
wxNullBitmap, wxNullBitmap,
FALSE, FALSE,
-1, -1, (wxObject*) NULL, -1, -1, (wxObject*) NULL,
msg ); msg );
msg = AddHotkeyName( _( "Redraw view" ), s_Gerbview_Hokeys_Descr, HK_ZOOM_REDRAW ); msg = AddHotkeyName( _( "Redraw view" ), s_Gerbview_Hokeys_Descr, HK_ZOOM_REDRAW );
m_HToolBar->AddTool( ID_ZOOM_REDRAW_BUTT, wxBitmap( zoom_redraw_xpm ), m_HToolBar->AddTool( ID_ZOOM_REDRAW, wxBitmap( zoom_redraw_xpm ),
wxNullBitmap, wxNullBitmap,
FALSE, FALSE,
-1, -1, (wxObject*) NULL, -1, -1, (wxObject*) NULL,
msg ); msg );
m_HToolBar->AddTool( ID_ZOOM_PAGE_BUTT, wxBitmap( zoom_auto_xpm ), m_HToolBar->AddTool( ID_ZOOM_PAGE, wxBitmap( zoom_auto_xpm ),
wxNullBitmap, wxNullBitmap,
FALSE, FALSE,
-1, -1, (wxObject*) NULL, -1, -1, (wxObject*) NULL,
@ -469,4 +469,3 @@ create or update the left vertical toolbar (option toolbar
SetToolbars(); SetToolbars();
} }

View File

@ -40,7 +40,6 @@ WX_DECLARE_OBJARRAY( GRID_TYPE, GridArray );
class WinEDA_DrawPanel : public wxScrolledWindow class WinEDA_DrawPanel : public wxScrolledWindow
{ {
public: public:
int m_Ident;
WinEDA_DrawFrame* m_Parent; WinEDA_DrawFrame* m_Parent;
EDA_Rect m_ClipBox; // the clipbox used in screen redraw (usually gives the visible area in internal units) EDA_Rect m_ClipBox; // the clipbox used in screen redraw (usually gives the visible area in internal units)
wxPoint m_CursorStartPos; // utile dans controles du mouvement curseur wxPoint m_CursorStartPos; // utile dans controles du mouvement curseur
@ -114,7 +113,6 @@ public:
void AddMenuZoom( wxMenu* MasterMenu ); void AddMenuZoom( wxMenu* MasterMenu );
bool OnRightClick( wxMouseEvent& event ); bool OnRightClick( wxMouseEvent& event );
void Process_Popup_Zoom( wxCommandEvent& event );
void OnPopupGridSelect( wxCommandEvent& event ); void OnPopupGridSelect( wxCommandEvent& event );
void Process_Special_Functions( wxCommandEvent& event ); void Process_Special_Functions( wxCommandEvent& event );
wxPoint CursorRealPosition( const wxPoint& ScreenPos ); wxPoint CursorRealPosition( const wxPoint& ScreenPos );

View File

@ -223,8 +223,6 @@ enum main_id {
ID_POPUP_ZOOM_OUT, ID_POPUP_ZOOM_OUT,
ID_POPUP_ZOOM_SELECT, ID_POPUP_ZOOM_SELECT,
ID_POPUP_ZOOM_CENTER, ID_POPUP_ZOOM_CENTER,
ID_POPUP_ZOOM_AUTO,
ID_POPUP_ZOOM_REDRAW,
ID_POPUP_ZOOM_LEVEL_1, ID_POPUP_ZOOM_LEVEL_1,
ID_POPUP_ZOOM_LEVEL_2, ID_POPUP_ZOOM_LEVEL_2,
ID_POPUP_ZOOM_LEVEL_4, ID_POPUP_ZOOM_LEVEL_4,
@ -370,21 +368,10 @@ enum main_id {
ID_TO_LIBRARY, ID_TO_LIBRARY,
ID_TO_LIBVIEW, ID_TO_LIBVIEW,
ID_ZOOM_IN_BUTT, // Gestion zoom: id consecutifs ID_ZOOM_IN, // Gestion zoom: id consecutifs
ID_ZOOM_OUT_BUTT, ID_ZOOM_OUT,
ID_ZOOM_REDRAW_BUTT, ID_ZOOM_REDRAW,
ID_ZOOM_PAGE_BUTT, ID_ZOOM_PAGE,
ID_ZOOM_WINDOW_BUTT,
ID_ZOOM_IN_KEY,
ID_ZOOM_OUT_KEY,
ID_ZOOM_REDRAW_KEY,
ID_ZOOM_CENTER_KEY,
ID_ZOOM_AUTO,
ID_ZOOM_UNUSED0,
ID_ZOOM_UNUSED1,
ID_ZOOM_UNUSED2,
ID_ZOOM_UNUSED3,
ID_ZOOM_ENDLIST,
/* Panning command event IDs. */ /* Panning command event IDs. */
ID_PAN_UP, ID_PAN_UP,

View File

@ -174,8 +174,6 @@ public:
class WinEDA_DrawFrame : public WinEDA_BasicFrame class WinEDA_DrawFrame : public WinEDA_BasicFrame
{ {
public: public:
WinEDA_DrawPanel* DrawPanel; // Draw area WinEDA_DrawPanel* DrawPanel; // Draw area
WinEDA_MsgPanel* MsgPanel; // Zone d'affichage de caracteristiques WinEDA_MsgPanel* MsgPanel; // Zone d'affichage de caracteristiques
@ -260,7 +258,7 @@ public:
// void OnChar(wxKeyEvent& event); // void OnChar(wxKeyEvent& event);
void SetToolbarBgColor( int color_num ); void SetToolbarBgColor( int color_num );
void OnZoom( int zoom_type ); virtual void OnZoom( wxCommandEvent& event );
void OnGrid( int grid_type ); void OnGrid( int grid_type );
void Recadre_Trace( bool ToMouse ); void Recadre_Trace( bool ToMouse );
void PutOnGrid( wxPoint* coord ); /* set the coordiante "coord" to the nearest grid coordinate */ void PutOnGrid( wxPoint* coord ); /* set the coordiante "coord" to the nearest grid coordinate */
@ -314,14 +312,10 @@ public:
/* interprocess communication */ /* interprocess communication */
void OnSockRequest( wxSocketEvent& evt ); void OnSockRequest( wxSocketEvent& evt );
void OnSockRequestServer( wxSocketEvent& evt ); void OnSockRequestServer( wxSocketEvent& evt );
DECLARE_EVENT_TABLE();
}; };
#define COMMON_EVENTS_DRAWFRAME \
EVT_MOUSEWHEEL( WinEDA_DrawFrame::OnMouseEvent ) \
EVT_MENU_OPEN( WinEDA_DrawFrame::OnMenuOpen ) \
EVT_ACTIVATE( WinEDA_DrawFrame::OnActivate )
/****************************************************/ /****************************************************/
/* classe representant un ecran graphique de dessin */ /* classe representant un ecran graphique de dessin */

View File

@ -23,7 +23,6 @@
/*******************************/ /*******************************/
BEGIN_EVENT_TABLE( WinEDA_BasePcbFrame, WinEDA_DrawFrame ) BEGIN_EVENT_TABLE( WinEDA_BasePcbFrame, WinEDA_DrawFrame )
COMMON_EVENTS_DRAWFRAME
EVT_MENU_RANGE( ID_POPUP_PCB_ITEM_SELECTION_START, EVT_MENU_RANGE( ID_POPUP_PCB_ITEM_SELECTION_START,
ID_POPUP_PCB_ITEM_SELECTION_END, ID_POPUP_PCB_ITEM_SELECTION_END,
WinEDA_BasePcbFrame::ProcessItemSelection ) WinEDA_BasePcbFrame::ProcessItemSelection )

View File

@ -891,7 +891,7 @@ EDA_Rect MODULE::GetBoundingBox()
/*******************************************************/ /*******************************************************/
void MODULE::Display_Infos( WinEDA_DrawFrame* frame ) void MODULE::Display_Infos( WinEDA_BasePcbFrame* frame )
/*******************************************************/ /*******************************************************/
{ {
int nbpad; int nbpad;

View File

@ -195,7 +195,7 @@ public:
* about this object into the frame's message panel. * about this object into the frame's message panel.
* @param frame A WinEDA_DrawFrame in which to print status information. * @param frame A WinEDA_DrawFrame in which to print status information.
*/ */
void Display_Infos( WinEDA_DrawFrame* frame ); void Display_Infos( WinEDA_BasePcbFrame* frame );
/** /**

View File

@ -530,21 +530,6 @@ void WinEDA_BasePcbFrame::GeneralControle( wxDC* DC, wxPoint Mouse )
switch( g_KeyPressed ) switch( g_KeyPressed )
{ {
case EDA_ZOOM_IN_FROM_MOUSE:
OnZoom( ID_ZOOM_IN_KEY );
oldpos = curpos = GetScreen()->m_Curseur;
break;
case EDA_ZOOM_OUT_FROM_MOUSE:
OnZoom( ID_ZOOM_OUT_KEY );
oldpos = curpos = GetScreen()->m_Curseur;
break;
case EDA_ZOOM_CENTER_FROM_MOUSE:
OnZoom( ID_ZOOM_CENTER_KEY );
oldpos = curpos = GetScreen()->m_Curseur;
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;

View File

@ -4,8 +4,6 @@
#include "fctsys.h" #include "fctsys.h"
#include "gr_basic.h"
#include "common.h" #include "common.h"
#include "pcbnew.h" #include "pcbnew.h"
#include "id.h" #include "id.h"
@ -172,6 +170,9 @@ void WinEDA_PcbFrame::OnHotKey( wxDC* DC, int hotkey,
*/ */
{ {
wxCommandEvent cmd( wxEVT_COMMAND_MENU_SELECTED );
cmd.SetEventObject( this );
bool PopupOn = (GetCurItem() && GetCurItem()->m_Flags); bool PopupOn = (GetCurItem() && GetCurItem()->m_Flags);
bool ItemFree = (GetCurItem()==0 || GetCurItem()->m_Flags==0); bool ItemFree = (GetCurItem()==0 || GetCurItem()->m_Flags==0);
@ -269,19 +270,23 @@ void WinEDA_PcbFrame::OnHotKey( wxDC* DC, int hotkey,
break; break;
case HK_ZOOM_IN: case HK_ZOOM_IN:
OnZoom( ID_ZOOM_IN_KEY ); cmd.SetId( ID_POPUP_ZOOM_IN );
GetEventHandler()->ProcessEvent( cmd );
break; break;
case HK_ZOOM_OUT: case HK_ZOOM_OUT:
OnZoom( ID_ZOOM_OUT_KEY ); cmd.SetId( ID_POPUP_ZOOM_OUT );
GetEventHandler()->ProcessEvent( cmd );
break; break;
case HK_ZOOM_REDRAW: case HK_ZOOM_REDRAW:
OnZoom( ID_ZOOM_REDRAW_KEY ); cmd.SetId( ID_ZOOM_REDRAW );
GetEventHandler()->ProcessEvent( cmd );
break; break;
case HK_ZOOM_CENTER: case HK_ZOOM_CENTER:
OnZoom( ID_ZOOM_CENTER_KEY ); cmd.SetId( ID_POPUP_ZOOM_CENTER );
GetEventHandler()->ProcessEvent( cmd );
break; break;
@ -534,6 +539,9 @@ void WinEDA_ModuleEditFrame::OnHotKey( wxDC* DC, int hotkey,
if( hotkey == 0 ) if( hotkey == 0 )
return; return;
wxCommandEvent cmd( wxEVT_COMMAND_MENU_SELECTED );
cmd.SetEventObject( this );
/* Convert lower to upper case (the usual toupper function has problem with non ascii codes like function keys */ /* Convert lower to upper case (the usual toupper function has problem with non ascii codes like function keys */
if( (hotkey >= 'a') && (hotkey <= 'z') ) if( (hotkey >= 'a') && (hotkey <= 'z') )
hotkey += 'A' - 'a'; hotkey += 'A' - 'a';
@ -564,19 +572,23 @@ void WinEDA_ModuleEditFrame::OnHotKey( wxDC* DC, int hotkey,
break; break;
case HK_ZOOM_IN: case HK_ZOOM_IN:
OnZoom( ID_ZOOM_IN_KEY ); cmd.SetId( ID_POPUP_ZOOM_IN );
GetEventHandler()->ProcessEvent( cmd );
break; break;
case HK_ZOOM_OUT: case HK_ZOOM_OUT:
OnZoom( ID_ZOOM_OUT_KEY ); cmd.SetId( ID_POPUP_ZOOM_OUT );
GetEventHandler()->ProcessEvent( cmd );
break; break;
case HK_ZOOM_REDRAW: case HK_ZOOM_REDRAW:
OnZoom( ID_ZOOM_REDRAW_KEY ); cmd.SetId( ID_ZOOM_REDRAW );
GetEventHandler()->ProcessEvent( cmd );
break; break;
case HK_ZOOM_CENTER: case HK_ZOOM_CENTER:
OnZoom( ID_ZOOM_CENTER_KEY ); cmd.SetId( ID_POPUP_ZOOM_CENTER );
GetEventHandler()->ProcessEvent( cmd );
break; break;
} }
} }

View File

@ -18,8 +18,7 @@
/********************************/ /********************************/
/* class WinEDA_ModuleEditFrame */ /* class WinEDA_ModuleEditFrame */
/********************************/ /********************************/
BEGIN_EVENT_TABLE( WinEDA_ModuleEditFrame, wxFrame ) BEGIN_EVENT_TABLE( WinEDA_ModuleEditFrame, WinEDA_BasePcbFrame )
COMMON_EVENTS_DRAWFRAME
EVT_MENU_RANGE( ID_POPUP_PCB_ITEM_SELECTION_START, EVT_MENU_RANGE( ID_POPUP_PCB_ITEM_SELECTION_START,
ID_POPUP_PCB_ITEM_SELECTION_END, ID_POPUP_PCB_ITEM_SELECTION_END,
WinEDA_BasePcbFrame::ProcessItemSelection ) WinEDA_BasePcbFrame::ProcessItemSelection )
@ -29,8 +28,7 @@ BEGIN_EVENT_TABLE( WinEDA_ModuleEditFrame, wxFrame )
EVT_KICAD_CHOICEBOX( ID_ON_ZOOM_SELECT, WinEDA_PcbFrame::OnSelectZoom ) EVT_KICAD_CHOICEBOX( ID_ON_ZOOM_SELECT, WinEDA_PcbFrame::OnSelectZoom )
EVT_KICAD_CHOICEBOX( ID_ON_GRID_SELECT, WinEDA_PcbFrame::OnSelectGrid ) EVT_KICAD_CHOICEBOX( ID_ON_GRID_SELECT, WinEDA_PcbFrame::OnSelectGrid )
EVT_TOOL_RANGE( ID_ZOOM_IN_BUTT, ID_ZOOM_PAGE_BUTT, EVT_TOOL_RANGE( ID_ZOOM_IN, ID_ZOOM_PAGE, WinEDA_ModuleEditFrame::OnZoom )
WinEDA_ModuleEditFrame::Process_Zoom )
EVT_TOOL( ID_LIBEDIT_SELECT_CURRENT_LIB, EVT_TOOL( ID_LIBEDIT_SELECT_CURRENT_LIB,
WinEDA_ModuleEditFrame::Process_Special_Functions ) WinEDA_ModuleEditFrame::Process_Special_Functions )

View File

@ -19,7 +19,6 @@
/*******************************/ /*******************************/
BEGIN_EVENT_TABLE( WinEDA_PcbFrame, WinEDA_BasePcbFrame ) BEGIN_EVENT_TABLE( WinEDA_PcbFrame, WinEDA_BasePcbFrame )
COMMON_EVENTS_DRAWFRAME
EVT_SOCKET( ID_EDA_SOCKET_EVENT_SERV, WinEDA_PcbFrame::OnSockRequestServer ) EVT_SOCKET( ID_EDA_SOCKET_EVENT_SERV, WinEDA_PcbFrame::OnSockRequestServer )
EVT_SOCKET( ID_EDA_SOCKET_EVENT, WinEDA_PcbFrame::OnSockRequest ) EVT_SOCKET( ID_EDA_SOCKET_EVENT, WinEDA_PcbFrame::OnSockRequest )
@ -29,8 +28,7 @@ BEGIN_EVENT_TABLE( WinEDA_PcbFrame, WinEDA_BasePcbFrame )
EVT_CLOSE( WinEDA_PcbFrame::OnCloseWindow ) EVT_CLOSE( WinEDA_PcbFrame::OnCloseWindow )
EVT_SIZE( WinEDA_PcbFrame::OnSize ) EVT_SIZE( WinEDA_PcbFrame::OnSize )
EVT_TOOL_RANGE( ID_ZOOM_IN_BUTT, ID_ZOOM_PAGE_BUTT, EVT_TOOL_RANGE( ID_ZOOM_IN, ID_ZOOM_PAGE, WinEDA_PcbFrame::OnZoom )
WinEDA_PcbFrame::Process_Zoom )
EVT_TOOL( ID_LOAD_FILE, WinEDA_PcbFrame::Files_io ) EVT_TOOL( ID_LOAD_FILE, WinEDA_PcbFrame::Files_io )
EVT_TOOL( ID_MENU_READ_LAST_SAVED_VERSION_BOARD, WinEDA_PcbFrame::Files_io ) EVT_TOOL( ID_MENU_READ_LAST_SAVED_VERSION_BOARD, WinEDA_PcbFrame::Files_io )

View File

@ -104,20 +104,20 @@ void WinEDA_ModuleEditFrame::ReCreateHToolbar()
m_HToolBar->AddSeparator(); m_HToolBar->AddSeparator();
msg = AddHotkeyName( _( "Zoom in" ), s_Module_Editor_Hokeys_Descr, msg = AddHotkeyName( _( "Zoom in" ), s_Module_Editor_Hokeys_Descr,
HK_ZOOM_IN ); HK_ZOOM_IN );
m_HToolBar->AddTool( ID_ZOOM_IN_BUTT, wxEmptyString, m_HToolBar->AddTool( ID_ZOOM_IN, wxEmptyString,
wxBitmap( zoom_in_xpm ), msg ); wxBitmap( zoom_in_xpm ), msg );
msg = AddHotkeyName( _( "Zoom out" ), s_Module_Editor_Hokeys_Descr, msg = AddHotkeyName( _( "Zoom out" ), s_Module_Editor_Hokeys_Descr,
HK_ZOOM_OUT ); HK_ZOOM_OUT );
m_HToolBar->AddTool( ID_ZOOM_OUT_BUTT, wxEmptyString, m_HToolBar->AddTool( ID_ZOOM_OUT, wxEmptyString,
wxBitmap( zoom_out_xpm ), msg ); wxBitmap( zoom_out_xpm ), msg );
msg = AddHotkeyName( _( "Redraw view" ), s_Module_Editor_Hokeys_Descr, msg = AddHotkeyName( _( "Redraw view" ), s_Module_Editor_Hokeys_Descr,
HK_ZOOM_REDRAW ); HK_ZOOM_REDRAW );
m_HToolBar->AddTool( ID_ZOOM_REDRAW_BUTT, wxEmptyString, m_HToolBar->AddTool( ID_ZOOM_REDRAW, wxEmptyString,
wxBitmap( zoom_redraw_xpm ), msg ); wxBitmap( zoom_redraw_xpm ), msg );
m_HToolBar->AddTool( ID_ZOOM_PAGE_BUTT, wxEmptyString, m_HToolBar->AddTool( ID_ZOOM_PAGE, wxEmptyString,
wxBitmap( zoom_auto_xpm ), wxBitmap( zoom_auto_xpm ),
_( "Zoom auto" ) ); _( "Zoom auto" ) );

View File

@ -260,20 +260,20 @@ void WinEDA_PcbFrame::ReCreateHToolbar()
m_HToolBar->AddSeparator(); m_HToolBar->AddSeparator();
msg = AddHotkeyName( _( "Zoom in" ), s_Board_Editor_Hokeys_Descr, msg = AddHotkeyName( _( "Zoom in" ), s_Board_Editor_Hokeys_Descr,
HK_ZOOM_IN ); HK_ZOOM_IN );
m_HToolBar->AddTool( ID_ZOOM_IN_BUTT, wxEmptyString, wxBitmap( zoom_in_xpm ), m_HToolBar->AddTool( ID_ZOOM_IN, wxEmptyString, wxBitmap( zoom_in_xpm ),
msg ); msg );
msg = AddHotkeyName( _( "Zoom out" ), s_Board_Editor_Hokeys_Descr, msg = AddHotkeyName( _( "Zoom out" ), s_Board_Editor_Hokeys_Descr,
HK_ZOOM_OUT ); HK_ZOOM_OUT );
m_HToolBar->AddTool( ID_ZOOM_OUT_BUTT, wxEmptyString, m_HToolBar->AddTool( ID_ZOOM_OUT, wxEmptyString,
wxBitmap( zoom_out_xpm ), msg ); wxBitmap( zoom_out_xpm ), msg );
msg = AddHotkeyName( _( "Redraw view" ), s_Board_Editor_Hokeys_Descr, msg = AddHotkeyName( _( "Redraw view" ), s_Board_Editor_Hokeys_Descr,
HK_ZOOM_REDRAW ); HK_ZOOM_REDRAW );
m_HToolBar->AddTool( ID_ZOOM_REDRAW_BUTT, wxEmptyString, m_HToolBar->AddTool( ID_ZOOM_REDRAW, wxEmptyString,
wxBitmap( zoom_redraw_xpm ), msg ); wxBitmap( zoom_redraw_xpm ), msg );
m_HToolBar->AddTool( ID_ZOOM_PAGE_BUTT, wxEmptyString, m_HToolBar->AddTool( ID_ZOOM_PAGE, wxEmptyString,
wxBitmap( zoom_auto_xpm ), wxBitmap( zoom_auto_xpm ),
_( "Zoom auto" ) ); _( "Zoom auto" ) );