Commit 803ebdf3 authored by stambaughw's avatar stambaughw
Browse files

Fix escape key handling in annotate dialog and some eeschema code refactoring.

parent 1dbf5e21
Loading
Loading
Loading
Loading
+14 −11
Original line number Diff line number Diff line
@@ -40,6 +40,8 @@ OPTION(KICAD_MINIZIP "enable/disable building minizip (default ON)" ON)
# Comment this out if you don't want to build with Python support.
# OPTION(KICAD_PYTHON "enable/disable building with Python support (default OFF)")

# Set debugging flags for GCC only.
IF( CMAKE_COMPILER_IS_GCC )
    # Set default flags for Release build.
    SET(CMAKE_C_FLAGS_RELEASE "-Wall -O2 -DNDEBUG")
    SET(CMAKE_CXX_FLAGS_RELEASE "-Wall -O2 -DNDEBUG")
@@ -48,6 +50,7 @@ SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "-s")
    # Set default flags for Debug build.
    SET(CMAKE_C_FLAGS_DEBUG "-Wall -g3 -ggdb3 -DDEBUG")
    SET(CMAKE_CXX_FLAGS_DEBUG "-Wall -g3 -ggdb3 -DDEBUG")
ENDIF( CMAKE_COMPILER_IS_GCC )

# Locations for install targets.
IF(UNIX)
+13 −0
Original line number Diff line number Diff line
@@ -5,6 +5,19 @@ Started 2007-June-11
Please add newer entries at the top, list the date and your name with
email address.

2008-Feb-27 UPDATE  Wayne Stambaugh <stambaughw{at}verizon{dot}net>
================================================================================
+ eeschema
  * fixed escape key handling and add accelerate keys in annotate dialog.
  * factored out eeschema frame class to prevent rebuild of entire project
    when making changes to eeschema frames.
  * refactor main eeschema event loop by factoring out most of the non-drawing
    events.
+ cmake
  * small fix to root CMakeList file to prevent GCC flags being used with
    other compilers.


2008-Feb-26 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
+eeschema
+2 −0
Original line number Diff line number Diff line
@@ -13,6 +13,8 @@

#include "protos.h"

#include "schframe.h"


/***********************************************************/
void DrawSheetStruct::Display_Infos( WinEDA_DrawFrame* frame )
+4 −1
Original line number Diff line number Diff line
@@ -9,8 +9,11 @@
#include "netlist.h"
#include "protos.h"

#include "schframe.h"

/* Local Functions*/
static int  ListeComposants( CmpListStruct* BaseListeCmp, DrawSheetList* sheet );
static int  ListeComposants( CmpListStruct* BaseListeCmp,
                             DrawSheetList* sheet );
static void BreakReference( CmpListStruct* BaseListeCmp, int NbOfCmp );
static void ReAnnotateComponents( CmpListStruct* BaseListeCmp, int NbOfCmp );
static void ComputeReferenceNumber( CmpListStruct* BaseListeCmp, int NbOfCmp );
+27 −7
Original line number Diff line number Diff line
@@ -28,6 +28,8 @@
#include "wx/wx.h"
#endif

#include "../include/wxstruct.h"
#include "schframe.h"
#include "annotate_dialog.h"

extern void DeleteAnnotation( WinEDA_SchematicFrame* parent,
@@ -51,6 +53,7 @@ IMPLEMENT_DYNAMIC_CLASS( WinEDA_AnnotateFrame, wxDialog )
BEGIN_EVENT_TABLE( WinEDA_AnnotateFrame, wxDialog )
    EVT_BUTTON( wxID_CLEAR, WinEDA_AnnotateFrame::OnClear )
    EVT_BUTTON( wxID_APPLY, WinEDA_AnnotateFrame::OnApply )
    EVT_BUTTON( wxID_CANCEL, WinEDA_AnnotateFrame::OnCancel )
END_EVENT_TABLE()

/*!
@@ -156,20 +159,27 @@ void WinEDA_AnnotateFrame::CreateControls()
    wxBoxSizer* sizerAnnotateItems = new wxBoxSizer( wxVERTICAL );
    m_rbEntireSchematic =
        new wxRadioButton( this, ID_ENTIRE_SCHEMATIC,
                           _( "Annotate the entire schematic" ),
                           _( "Annotate the &entire schematic" ),
                           wxDefaultPosition, wxDefaultSize, wxRB_GROUP );
    wxRadioButton* rbCurrentPage =
        new wxRadioButton( this, ID_CURRENT_PAGE,
                           _( "Annotate the current page only" ) );
                           _( "Annotate the current &page only" ) );
    m_rbEntireSchematic->SetValue( true );
    m_cbResetAnnotation = new wxCheckBox( this, ID_RESET_ANNOTATION,
                                          _( "Reset existing annotation" ) );
                                          _( "&Reset existing annotation" ) );

    sizerAnnotateItems->Add( m_rbEntireSchematic, flagsRadioButtonSpacing );
    sizerAnnotateItems->Add( rbCurrentPage, flagsRadioButtonSpacing );
    sizerAnnotateItems->Add( m_cbResetAnnotation, flagsRadioButtonSpacing );
    sizerAnnotate->Add( sizerAnnotateItems, flagsRadioButtonSizerSpacing );
    sizerTop->Add( sizerAnnotate, flagsGroupSizerSpacing );
    /* This is an ugly hack to make sure the focus is set correctly so the
     * escape key closes the dialog without requiring one of the controls
     * to be activated by the user first.  This problem only occurs on the
     * GTK version of wxWidgets */
#ifdef __WXGTK__
    m_rbEntireSchematic->SetFocus( );
#endif

    /* Annotation sort order sizers, label, and radio buttons. */
    wxBoxSizer* sizerSort = new wxBoxSizer( wxVERTICAL );
@@ -180,13 +190,13 @@ void WinEDA_AnnotateFrame::CreateControls()
    wxBoxSizer* sizerSortItems = new wxBoxSizer( wxVERTICAL );
    m_rbSortByPosition = new wxRadioButton( this,
                                            ID_SORT_BY_POSITION,
                                            _( "Sort components by position" ),
                                            _( "Sort components by p&osition" ),
                                            wxDefaultPosition,
                                            wxDefaultSize,
                                            wxRB_GROUP );
    wxRadioButton* rbSortByValue =
        new wxRadioButton( this, ID_SORT_BY_VALUE,
                           _( "Sort components by value" ) );
                           _( "Sort components by &value" ) );
    sizerSortItems->Add( m_rbSortByPosition, flagsRadioButtonSpacing );
    sizerSortItems->Add( rbSortByValue, flagsRadioButtonSpacing );
    sizerSort->Add( sizerSortItems, flagsRadioButtonSizerSpacing );
@@ -194,7 +204,7 @@ void WinEDA_AnnotateFrame::CreateControls()

    /* Standard dialog buttons and sizer. */
    wxBoxSizer* sizerDialogButtons = new wxBoxSizer( wxHORIZONTAL );
    wxButton* btnClose = new wxButton( this, wxID_CANCEL, _( "Close" ) );
    wxButton* btnClose = new wxButton( this, wxID_CANCEL );
    /* TODO: Check if there is any existing annotation and enable/disable
     *       the clear button accordingly.  Probably should also enable/
     *       disable new components radio button if all of the components
@@ -269,7 +279,6 @@ void WinEDA_AnnotateFrame::OnClear( wxCommandEvent& event )
void WinEDA_AnnotateFrame::OnApply( wxCommandEvent& event )
{
    int response;
    wxButton* btn;
    wxString message;

    if( GetResetItems() )
@@ -292,6 +301,17 @@ void WinEDA_AnnotateFrame::OnApply( wxCommandEvent& event )
    m_btnClear->Enable();
}

void WinEDA_AnnotateFrame::OnCancel( wxCommandEvent& event )
{
    if( IsModal() )
        EndModal( wxID_CANCEL );
    else
    {
        SetReturnCode( wxID_CANCEL );
        this->Show( false );
    }
}

bool WinEDA_AnnotateFrame::GetLevel( void )
{
    wxASSERT_MSG( ((m_rbEntireSchematic != NULL) &&
Loading