kicad-source/cvpcb/dialogs/dialog_display_options.cpp
jean-pierre charras f0dc54340d All: new middle mouse pan feature, from lajos kamocsay (and jp charras for some enhancements).
If enable in preference menu, allow the pan with drag mouse with middle button down.
both unlimited and limited pan is allowed.
2012-04-11 20:54:20 +02:00

109 lines
2.9 KiB
C++

/////////////////////////////////////////////////////////////////////////////
// Name: dialog_display_options.cpp
// Licence: GPL
/////////////////////////////////////////////////////////////////////////////
#include <fctsys.h>
#include <wxstruct.h>
#include <common.h>
#include <cvpcb.h>
#include <class_drawpanel.h>
#include <footprint_info.h>
#include <cvstruct.h>
#include <class_DisplayFootprintsFrame.h>
#include <dialog_display_options.h>
void DISPLAY_FOOTPRINTS_FRAME::InstallOptionsDisplay( wxCommandEvent& event )
{
DIALOG_FOOTPRINTS_DISPLAY_OPTIONS* OptionWindow =
new DIALOG_FOOTPRINTS_DISPLAY_OPTIONS( this );
OptionWindow->ShowModal();
OptionWindow->Destroy();
}
DIALOG_FOOTPRINTS_DISPLAY_OPTIONS::DIALOG_FOOTPRINTS_DISPLAY_OPTIONS( PCB_BASE_FRAME* parent )
: DIALOG_FOOTPRINTS_DISPLAY_OPTIONS_BASE( parent )
{
m_Parent = parent;
initDialog();
m_sdbSizer1OK->SetDefault();
GetSizer()->SetSizeHints( this );
Centre();
}
DIALOG_FOOTPRINTS_DISPLAY_OPTIONS::~DIALOG_FOOTPRINTS_DISPLAY_OPTIONS( )
{
}
/*!
* Control creation for DIALOG_FOOTPRINTS_DISPLAY_OPTIONS
*/
void DIALOG_FOOTPRINTS_DISPLAY_OPTIONS::initDialog()
{
/* mandatory to use escape key as cancel under wxGTK. */
SetFocus();
m_EdgesDisplayOption->SetSelection( m_Parent->m_DisplayModEdge );
m_TextDisplayOption->SetSelection( m_Parent->m_DisplayModText );
m_IsShowPadFill->SetValue( m_Parent->m_DisplayPadFill );
m_IsShowPadNum->SetValue( m_Parent->m_DisplayPadNum );
m_IsMiddleButtonPan->SetValue( m_Parent->GetCanvas()->GetEnableMiddleButtonPan() );
m_IsMiddleButtonPanLimited->SetValue( m_Parent->GetCanvas()->GetMiddleButtonPanLimited() );
m_IsMiddleButtonPanLimited->Enable( m_IsMiddleButtonPan->GetValue() );
}
/*!
* Update settings related to edges, text strings, and pads
*/
void DIALOG_FOOTPRINTS_DISPLAY_OPTIONS::UpdateObjectSettings( void )
{
m_Parent->m_DisplayModEdge = m_EdgesDisplayOption->GetSelection();
m_Parent->m_DisplayModText = m_TextDisplayOption->GetSelection();
m_Parent->m_DisplayPadNum = m_IsShowPadNum->GetValue();
m_Parent->m_DisplayPadFill = m_IsShowPadFill->GetValue();
m_Parent->GetCanvas()->SetEnableMiddleButtonPan( m_IsMiddleButtonPan->GetValue() );
m_Parent->GetCanvas()->SetMiddleButtonPanLimited( m_IsMiddleButtonPanLimited->GetValue() );
m_Parent->GetCanvas()->Refresh();
}
/*!
* wxEVT_COMMAND_BUTTON_CLICKED event handler for wxID_OK
*/
void DIALOG_FOOTPRINTS_DISPLAY_OPTIONS::OnOkClick( wxCommandEvent& event )
{
UpdateObjectSettings();
EndModal( 1 );
}
/*!
* wxEVT_COMMAND_BUTTON_CLICKED event handler for wxID_CANCEL
*/
void DIALOG_FOOTPRINTS_DISPLAY_OPTIONS::OnCancelClick( wxCommandEvent& event )
{
EndModal( -1 );
}
/*!
* wxEVT_COMMAND_BUTTON_CLICKED event handler for wxID_APPLY
*/
void DIALOG_FOOTPRINTS_DISPLAY_OPTIONS::OnApplyClick( wxCommandEvent& event )
{
UpdateObjectSettings();
}