Commit 0cad6e79 authored by Dick Hollenbeck's avatar Dick Hollenbeck
Browse files

carve out TITLE_BLOCK class from BASE_SCREEN, add hashtables.h for PROPERTIES

parent 6d3fd3a0
Loading
Loading
Loading
Loading
+9 −9
Original line number Original line Diff line number Diff line
@@ -14,7 +14,7 @@
#include "macros.h"
#include "macros.h"
#include "class_base_screen.h"
#include "class_base_screen.h"
#include "drawtxt.h"
#include "drawtxt.h"

#include "class_title_block.h"


/* Plot sheet references
/* Plot sheet references
 * margin is in mils (1/1000 inch)
 * margin is in mils (1/1000 inch)
@@ -479,12 +479,12 @@ void EDA_DRAW_FRAME::PlotWorkSheet( PLOTTER* plotter, BASE_SCREEN* screen )
        switch( WsItem->m_Type )
        switch( WsItem->m_Type )
        {
        {
        case WS_DATE:
        case WS_DATE:
            msg += screen->m_Date;
            msg += GetTitleBlock().GetDate();
            bold = true;
            bold = true;
            break;
            break;


        case WS_REV:
        case WS_REV:
            msg += screen->m_Revision;
            msg += GetTitleBlock().GetRevision();
            bold = true;
            bold = true;
            break;
            break;


@@ -517,37 +517,37 @@ void EDA_DRAW_FRAME::PlotWorkSheet( PLOTTER* plotter, BASE_SCREEN* screen )
            break;
            break;


        case WS_COMPANY_NAME:
        case WS_COMPANY_NAME:
            msg += screen->m_Company;
            msg += GetTitleBlock().GetCompany();
            if( !msg.IsEmpty() )
            if( !msg.IsEmpty() )
                UpperLimit = MAX( UpperLimit, WsItem->m_Posy + SIZETEXT );
                UpperLimit = MAX( UpperLimit, WsItem->m_Posy + SIZETEXT );
            bold = true;
            bold = true;
            break;
            break;


        case WS_TITLE:
        case WS_TITLE:
            msg += screen->m_Title;
            msg += GetTitleBlock().GetTitle();
            bold = true;
            bold = true;
            break;
            break;


        case WS_COMMENT1:
        case WS_COMMENT1:
            msg += screen->m_Commentaire1;
            msg += GetTitleBlock().GetComment1();
            if( !msg.IsEmpty() )
            if( !msg.IsEmpty() )
                UpperLimit = MAX( UpperLimit, WsItem->m_Posy + SIZETEXT );
                UpperLimit = MAX( UpperLimit, WsItem->m_Posy + SIZETEXT );
            break;
            break;


        case WS_COMMENT2:
        case WS_COMMENT2:
            msg += screen->m_Commentaire2;
            msg += GetTitleBlock().GetComment2();
            if( !msg.IsEmpty() )
            if( !msg.IsEmpty() )
                UpperLimit = MAX( UpperLimit, WsItem->m_Posy + SIZETEXT );
                UpperLimit = MAX( UpperLimit, WsItem->m_Posy + SIZETEXT );
            break;
            break;


        case WS_COMMENT3:
        case WS_COMMENT3:
            msg += screen->m_Commentaire3;
            msg += GetTitleBlock().GetComment3();
            if( !msg.IsEmpty() )
            if( !msg.IsEmpty() )
                UpperLimit = MAX( UpperLimit, WsItem->m_Posy + SIZETEXT );
                UpperLimit = MAX( UpperLimit, WsItem->m_Posy + SIZETEXT );
            break;
            break;


        case WS_COMMENT4:
        case WS_COMMENT4:
            msg += screen->m_Commentaire4;
            msg += GetTitleBlock().GetComment4();
            if( !msg.IsEmpty() )
            if( !msg.IsEmpty() )
                UpperLimit = MAX( UpperLimit, WsItem->m_Posy + SIZETEXT );
                UpperLimit = MAX( UpperLimit, WsItem->m_Posy + SIZETEXT );
            break;
            break;
+42 −28
Original line number Original line Diff line number Diff line
@@ -72,9 +72,9 @@ void DIALOG_PAGES_SETTINGS::initDialog()
    msg.Printf( format, m_Screen->m_ScreenNumber );
    msg.Printf( format, m_Screen->m_ScreenNumber );
    m_TextSheetNumber->SetLabel( msg );
    m_TextSheetNumber->SetLabel( msg );


    m_page = m_Parent->GetPageSettings();
    PAGE_INFO   pageInfo = m_Parent->GetPageSettings();


    setCurrentPageSizeSelection();
    setCurrentPageSizeSelection( pageInfo.GetType() );


    switch( g_UserUnit )
    switch( g_UserUnit )
    {
    {
@@ -113,8 +113,7 @@ void DIALOG_PAGES_SETTINGS::initDialog()
*/
*/
    }
    }


    // Set validators
#if 0
//    m_PageSizeBox->SetValidator( wxGenericValidator( &m_CurrentSelection ) );
    m_TextRevision->SetValidator( wxTextValidator( wxFILTER_NONE, &m_Screen->m_Revision ) );
    m_TextRevision->SetValidator( wxTextValidator( wxFILTER_NONE, &m_Screen->m_Revision ) );
    m_TextTitle->SetValidator( wxTextValidator( wxFILTER_NONE, &m_Screen->m_Title ) );
    m_TextTitle->SetValidator( wxTextValidator( wxFILTER_NONE, &m_Screen->m_Title ) );
    m_TextCompany->SetValidator( wxTextValidator( wxFILTER_NONE, &m_Screen->m_Company ) );
    m_TextCompany->SetValidator( wxTextValidator( wxFILTER_NONE, &m_Screen->m_Company ) );
@@ -122,6 +121,18 @@ void DIALOG_PAGES_SETTINGS::initDialog()
    m_TextComment2->SetValidator( wxTextValidator( wxFILTER_NONE, &m_Screen->m_Commentaire2 ) );
    m_TextComment2->SetValidator( wxTextValidator( wxFILTER_NONE, &m_Screen->m_Commentaire2 ) );
    m_TextComment3->SetValidator( wxTextValidator( wxFILTER_NONE, &m_Screen->m_Commentaire3 ) );
    m_TextComment3->SetValidator( wxTextValidator( wxFILTER_NONE, &m_Screen->m_Commentaire3 ) );
    m_TextComment4->SetValidator( wxTextValidator( wxFILTER_NONE, &m_Screen->m_Commentaire4 ) );
    m_TextComment4->SetValidator( wxTextValidator( wxFILTER_NONE, &m_Screen->m_Commentaire4 ) );
#else

    TITLE_BLOCK tb = m_Parent->GetTitleBlock();

    m_TextRevision->SetValue( tb.GetRevision() );
    m_TextTitle->SetValue( tb.GetTitle() );
    m_TextCompany->SetValue( tb.GetCompany() );
    m_TextComment1->SetValue( tb.GetComment1() );
    m_TextComment2->SetValue( tb.GetComment2() );
    m_TextComment3->SetValue( tb.GetComment3() );
    m_TextComment4->SetValue( tb.GetComment4() );
#endif


#ifndef EESCHEMA
#ifndef EESCHEMA
    m_RevisionExport->Show( false );
    m_RevisionExport->Show( false );
@@ -175,14 +186,15 @@ void DIALOG_PAGES_SETTINGS::SavePageSettings( wxCommandEvent& event )
    wxString    msg;
    wxString    msg;
    double      userSizeX;
    double      userSizeX;
    double      userSizeY;
    double      userSizeY;
    TITLE_BLOCK tb;


    m_Screen->m_Revision       = m_TextRevision->GetValue();
    tb.SetRevision( m_TextRevision->GetValue() );
    m_Screen->m_Company        = m_TextCompany->GetValue();
    tb.SetCompany(  m_TextCompany->GetValue() );
    m_Screen->m_Title          = m_TextTitle->GetValue();
    tb.SetTitle(    m_TextTitle->GetValue() );
    m_Screen->m_Commentaire1   = m_TextComment1->GetValue();
    tb.SetComment1( m_TextComment1->GetValue() );
    m_Screen->m_Commentaire2   = m_TextComment2->GetValue();
    tb.SetComment2( m_TextComment2->GetValue() );
    m_Screen->m_Commentaire3   = m_TextComment3->GetValue();
    tb.SetComment3( m_TextComment3->GetValue() );
    m_Screen->m_Commentaire4   = m_TextComment4->GetValue();
    tb.SetComment4( m_TextComment4->GetValue() );


    msg = m_TextUserSizeX->GetValue();
    msg = m_TextUserSizeX->GetValue();
    msg.ToDouble( &userSizeX );
    msg.ToDouble( &userSizeX );
@@ -196,10 +208,10 @@ void DIALOG_PAGES_SETTINGS::SavePageSettings( wxCommandEvent& event )


    // wxFormBuilder must use "A4", "A3", etc for choices, in all languages/translations
    // wxFormBuilder must use "A4", "A3", etc for choices, in all languages/translations
    wxString    paperType = m_PageSizeBox->GetString( radioSelection );
    wxString    paperType = m_PageSizeBox->GetString( radioSelection );
    PAGE_INFO   pageInfo( paperType );


    m_page.SetType( paperType );
    m_Parent->SetPageSettings( pageInfo );

    m_Parent->SetTitleBlock( tb );
    m_Parent->SetPageSettings( m_page );


    switch( g_UserUnit )
    switch( g_UserUnit )
    {
    {
@@ -229,32 +241,36 @@ void DIALOG_PAGES_SETTINGS::SavePageSettings( wxCommandEvent& event )
    // Build the screen list
    // Build the screen list
    SCH_SCREENS ScreenList;
    SCH_SCREENS ScreenList;


    // Update the datas
    // Update title blocks for all screens
    for( screen = ScreenList.GetFirst(); screen != NULL; screen = ScreenList.GetNext() )
    for( screen = ScreenList.GetFirst(); screen != NULL; screen = ScreenList.GetNext() )
    {
    {
        if( screen == m_Screen )
        if( screen == m_Screen )
            continue;
            continue;


        TITLE_BLOCK tb2 = screen->GetTitleBlock();

        if( m_RevisionExport->IsChecked() )
        if( m_RevisionExport->IsChecked() )
            screen->m_Revision = m_Screen->m_Revision;
            tb2.SetRevision( tb.GetRevision() );


        if( m_TitleExport->IsChecked() )
        if( m_TitleExport->IsChecked() )
            screen->m_Title = m_Screen->m_Title;
            tb2.SetTitle( tb.GetTitle() );


        if( m_CompanyExport->IsChecked() )
        if( m_CompanyExport->IsChecked() )
            screen->m_Company = m_Screen->m_Company;
            tb2.SetCompany( tb.GetCompany() );


        if( m_Comment1Export->IsChecked() )
        if( m_Comment1Export->IsChecked() )
            screen->m_Commentaire1 = m_Screen->m_Commentaire1;
            tb2.SetComment1( tb.GetComment1() );


        if( m_Comment2Export->IsChecked() )
        if( m_Comment2Export->IsChecked() )
            screen->m_Commentaire2 = m_Screen->m_Commentaire2;
            tb2.SetComment2( tb.GetComment2() );


        if( m_Comment3Export->IsChecked() )
        if( m_Comment3Export->IsChecked() )
            screen->m_Commentaire3 = m_Screen->m_Commentaire3;
            tb2.SetComment3( tb.GetComment3() );


        if( m_Comment4Export->IsChecked() )
        if( m_Comment4Export->IsChecked() )
            screen->m_Commentaire4 = m_Screen->m_Commentaire4;
            tb2.SetComment4( tb.GetComment4() );

        screen->SetTitleBlock( tb2 );
    }
    }


#endif
#endif
@@ -264,10 +280,8 @@ void DIALOG_PAGES_SETTINGS::SavePageSettings( wxCommandEvent& event )
}
}




void DIALOG_PAGES_SETTINGS::setCurrentPageSizeSelection()
void DIALOG_PAGES_SETTINGS::setCurrentPageSizeSelection( const wxString& aPaperSize )
{
{
    wxString    curPaperType = m_page.GetType();

    // use wxFormBuilder to store the sheet type in the wxRadioButton's label
    // use wxFormBuilder to store the sheet type in the wxRadioButton's label
    // i.e. "A4", "A3", etc, anywhere within the text of the label.
    // i.e. "A4", "A3", etc, anywhere within the text of the label.


@@ -276,12 +290,12 @@ void DIALOG_PAGES_SETTINGS::setCurrentPageSizeSelection()
    // search all the child wxRadioButtons for a label containing our paper type
    // search all the child wxRadioButtons for a label containing our paper type
    for( unsigned i = 0;  i < m_PageSizeBox->GetCount();  ++i )
    for( unsigned i = 0;  i < m_PageSizeBox->GetCount();  ++i )
    {
    {
        // parse each label looking for curPaperType within it
        // parse each label looking for aPaperSize within it
        wxStringTokenizer st( m_PageSizeBox->GetString( i ) );
        wxStringTokenizer st( m_PageSizeBox->GetString( i ) );


        while( st.HasMoreTokens() )
        while( st.HasMoreTokens() )
        {
        {
            if( st.GetNextToken() == curPaperType )
            if( st.GetNextToken() == aPaperSize )
            {
            {
                m_PageSizeBox->SetSelection( i );
                m_PageSizeBox->SetSelection( i );
                return;
                return;
+1 −2
Original line number Original line Diff line number Diff line
@@ -17,7 +17,6 @@ private:
    EDA_DRAW_FRAME* m_Parent;
    EDA_DRAW_FRAME* m_Parent;
    BASE_SCREEN*    m_Screen;
    BASE_SCREEN*    m_Screen;
    bool            m_modified;
    bool            m_modified;
    PAGE_INFO       m_page;             ///< the one being edited
    PAGE_INFO       m_user_size;        ///< instantiated just to get the size
    PAGE_INFO       m_user_size;        ///< instantiated just to get the size


public:
public:
@@ -37,7 +36,7 @@ private:
    /// wxEVT_COMMAND_BUTTON_CLICKED event handler for wxID_CANCEL
    /// wxEVT_COMMAND_BUTTON_CLICKED event handler for wxID_CANCEL
    void OnCancelClick( wxCommandEvent& event );
    void OnCancelClick( wxCommandEvent& event );


    void setCurrentPageSizeSelection();
    void setCurrentPageSizeSelection( const wxString& aPaperSize );
    void SavePageSettings(wxCommandEvent& event);
    void SavePageSettings(wxCommandEvent& event);
    void ReturnSizeSelected(wxCommandEvent& event);
    void ReturnSizeSelected(wxCommandEvent& event);


+9 −8
Original line number Original line Diff line number Diff line
@@ -13,6 +13,7 @@
#include "wxstruct.h"
#include "wxstruct.h"
#include "appl_wxstruct.h"
#include "appl_wxstruct.h"
#include "worksheet.h"
#include "worksheet.h"
#include "class_title_block.h"


#include "build_version.h"
#include "build_version.h"


@@ -1423,7 +1424,7 @@ void EDA_DRAW_FRAME::TraceWorkSheet( wxDC* DC, BASE_SCREEN* screen, int line_wid
        case WS_DATE:
        case WS_DATE:
            if( WsItem->m_Legende )
            if( WsItem->m_Legende )
                msg = WsItem->m_Legende;
                msg = WsItem->m_Legende;
            msg += screen->m_Date;
            msg += GetTitleBlock().GetDate();
            DrawGraphicText( m_canvas, DC, pos, Color,
            DrawGraphicText( m_canvas, DC, pos, Color,
                             msg, TEXT_ORIENT_HORIZ, size,
                             msg, TEXT_ORIENT_HORIZ, size,
                             GR_TEXT_HJUSTIFY_LEFT, GR_TEXT_VJUSTIFY_CENTER,
                             GR_TEXT_HJUSTIFY_LEFT, GR_TEXT_VJUSTIFY_CENTER,
@@ -1433,7 +1434,7 @@ void EDA_DRAW_FRAME::TraceWorkSheet( wxDC* DC, BASE_SCREEN* screen, int line_wid
        case WS_REV:
        case WS_REV:
            if( WsItem->m_Legende )
            if( WsItem->m_Legende )
                msg = WsItem->m_Legende;
                msg = WsItem->m_Legende;
            msg += screen->m_Revision;
            msg += GetTitleBlock().GetRevision();
            DrawGraphicText( m_canvas, DC, pos, Color,
            DrawGraphicText( m_canvas, DC, pos, Color,
                             msg, TEXT_ORIENT_HORIZ, size,
                             msg, TEXT_ORIENT_HORIZ, size,
                             GR_TEXT_HJUSTIFY_LEFT, GR_TEXT_VJUSTIFY_CENTER,
                             GR_TEXT_HJUSTIFY_LEFT, GR_TEXT_VJUSTIFY_CENTER,
@@ -1503,7 +1504,7 @@ void EDA_DRAW_FRAME::TraceWorkSheet( wxDC* DC, BASE_SCREEN* screen, int line_wid
        case WS_COMPANY_NAME:
        case WS_COMPANY_NAME:
            if( WsItem->m_Legende )
            if( WsItem->m_Legende )
                msg = WsItem->m_Legende;
                msg = WsItem->m_Legende;
            msg += screen->m_Company;
            msg += GetTitleBlock().GetCompany();
            if( !msg.IsEmpty() )
            if( !msg.IsEmpty() )
            {
            {
                DrawGraphicText( m_canvas, DC, pos, Color,
                DrawGraphicText( m_canvas, DC, pos, Color,
@@ -1518,7 +1519,7 @@ void EDA_DRAW_FRAME::TraceWorkSheet( wxDC* DC, BASE_SCREEN* screen, int line_wid
        case WS_TITLE:
        case WS_TITLE:
            if( WsItem->m_Legende )
            if( WsItem->m_Legende )
                msg = WsItem->m_Legende;
                msg = WsItem->m_Legende;
            msg += screen->m_Title;
            msg += GetTitleBlock().GetTitle();
            DrawGraphicText( m_canvas, DC, pos, Color,
            DrawGraphicText( m_canvas, DC, pos, Color,
                             msg, TEXT_ORIENT_HORIZ, size,
                             msg, TEXT_ORIENT_HORIZ, size,
                             GR_TEXT_HJUSTIFY_LEFT, GR_TEXT_VJUSTIFY_CENTER,
                             GR_TEXT_HJUSTIFY_LEFT, GR_TEXT_VJUSTIFY_CENTER,
@@ -1529,7 +1530,7 @@ void EDA_DRAW_FRAME::TraceWorkSheet( wxDC* DC, BASE_SCREEN* screen, int line_wid
        case WS_COMMENT1:
        case WS_COMMENT1:
            if( WsItem->m_Legende )
            if( WsItem->m_Legende )
                msg = WsItem->m_Legende;
                msg = WsItem->m_Legende;
            msg += screen->m_Commentaire1;
            msg += GetTitleBlock().GetComment1();
            if( !msg.IsEmpty() )
            if( !msg.IsEmpty() )
            {
            {
                DrawGraphicText( m_canvas, DC, pos, Color,
                DrawGraphicText( m_canvas, DC, pos, Color,
@@ -1543,7 +1544,7 @@ void EDA_DRAW_FRAME::TraceWorkSheet( wxDC* DC, BASE_SCREEN* screen, int line_wid
        case WS_COMMENT2:
        case WS_COMMENT2:
            if( WsItem->m_Legende )
            if( WsItem->m_Legende )
                msg = WsItem->m_Legende;
                msg = WsItem->m_Legende;
            msg += screen->m_Commentaire2;
            msg += GetTitleBlock().GetComment2();
            if( !msg.IsEmpty() )
            if( !msg.IsEmpty() )
            {
            {
                DrawGraphicText( m_canvas, DC, pos, Color,
                DrawGraphicText( m_canvas, DC, pos, Color,
@@ -1557,7 +1558,7 @@ void EDA_DRAW_FRAME::TraceWorkSheet( wxDC* DC, BASE_SCREEN* screen, int line_wid
        case WS_COMMENT3:
        case WS_COMMENT3:
            if( WsItem->m_Legende )
            if( WsItem->m_Legende )
                msg = WsItem->m_Legende;
                msg = WsItem->m_Legende;
            msg += screen->m_Commentaire3;
            msg += GetTitleBlock().GetComment3();
            if( !msg.IsEmpty() )
            if( !msg.IsEmpty() )
            {
            {
                DrawGraphicText( m_canvas, DC, pos, Color,
                DrawGraphicText( m_canvas, DC, pos, Color,
@@ -1571,7 +1572,7 @@ void EDA_DRAW_FRAME::TraceWorkSheet( wxDC* DC, BASE_SCREEN* screen, int line_wid
        case WS_COMMENT4:
        case WS_COMMENT4:
            if( WsItem->m_Legende )
            if( WsItem->m_Legende )
                msg = WsItem->m_Legende;
                msg = WsItem->m_Legende;
            msg += screen->m_Commentaire4;
            msg += GetTitleBlock().GetComment4();
            if( !msg.IsEmpty() )
            if( !msg.IsEmpty() )
            {
            {
                DrawGraphicText( m_canvas, DC, pos, Color,
                DrawGraphicText( m_canvas, DC, pos, Color,
+11 −8
Original line number Original line Diff line number Diff line
@@ -250,14 +250,17 @@ bool SCH_EDIT_FRAME::LoadOneEEProject( const wxString& aFileName, bool aIsNew )


        screen->SetZoom( 32 );
        screen->SetZoom( 32 );
        screen->SetGrid( ID_POPUP_GRID_LEVEL_1000 + m_LastGridSizeId  );
        screen->SetGrid( ID_POPUP_GRID_LEVEL_1000 + m_LastGridSizeId  );
        screen->m_Title = NAMELESS_PROJECT;

        screen->m_Title += wxT( ".sch" );
        TITLE_BLOCK tb;
        GetScreen()->SetFileName( screen->m_Title );
        wxString    title;
        screen->m_Company.Empty();

        screen->m_Commentaire1.Empty();
        title += NAMELESS_PROJECT;
        screen->m_Commentaire2.Empty();
        title += wxT( ".sch" );
        screen->m_Commentaire3.Empty();
        tb.SetTitle( title );
        screen->m_Commentaire4.Empty();
        screen->SetTitleBlock( tb );

        GetScreen()->SetFileName( title );

        LoadProjectFile( wxEmptyString, true );
        LoadProjectFile( wxEmptyString, true );
        Zoom_Automatique( false );
        Zoom_Automatique( false );
        SetSheetNumberAndCount();
        SetSheetNumberAndCount();
Loading