Commit a8d5e068 authored by Marco Serantoni's avatar Marco Serantoni
Browse files

Gerbview: Added new LayerBox

parent 7873b46e
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -20,6 +20,7 @@ set(COMMON_SRCS
    block_commande.cpp
    build_version.cpp
    class_colors_design_settings.cpp
    class_layerchoicebox.cpp
    class_marker_base.cpp
    class_plotter.cpp
    class_undoredo_container.cpp
+39 −3
Original line number Diff line number Diff line
@@ -29,6 +29,10 @@ WinEDALayerChoiceBox::WinEDALayerChoiceBox( WinEDA_Toolbar* parent, wxWindowID i
{
    m_layerorder   = true;
    m_layerhotkeys = true;
    m_hotkeys      = NULL;

    if( choices != NULL )
        ResyncBitmapOnly();
}


@@ -40,6 +44,10 @@ WinEDALayerChoiceBox::WinEDALayerChoiceBox( WinEDA_Toolbar* parent, wxWindowID i
{
    m_layerorder   = true;
    m_layerhotkeys = true;
    m_hotkeys      = NULL;

    if( !choices.IsEmpty() )
        ResyncBitmapOnly();
}


@@ -136,10 +144,38 @@ void WinEDALayerChoiceBox::Resync()

        layername = board->GetLayerName( layerid );

        if( m_layerhotkeys )
            layername = AddHotkeyName( layername, s_Board_Editor_Hokeys_Descr,
                                       layerhk[layerid], false );
        if( m_layerhotkeys && m_hotkeys != NULL )
            layername = AddHotkeyName( layername, m_hotkeys, layerhk[layerid], false );

        Append( layername, layerbmp, (void*) layerid );
    }
}

void WinEDALayerChoiceBox::ResyncBitmapOnly()
{
    WinEDA_BasePcbFrame* pcbFrame = (WinEDA_BasePcbFrame*) GetParent()->GetParent();
    BOARD* board = pcbFrame->GetBoard();

    int elements = GetCount();
    for( int i = 0; i < elements; i++ )
    {
        wxBitmap   layerbmp( 14, 14 );
        wxMemoryDC bmpDC;
        wxBrush    brush;
        wxString   layername;
        int        layerid = i;

        // Prepare Bitmap
        bmpDC.SelectObject( layerbmp );
        brush.SetColour( MakeColour( board->GetLayerColor( layerid ) ) );
        brush.SetStyle( wxSOLID );

        bmpDC.SetBrush( brush );
        bmpDC.DrawRectangle( 0, 0, layerbmp.GetWidth(), layerbmp.GetHeight() );
        bmpDC.SetBrush( *wxTRANSPARENT_BRUSH );
        bmpDC.SetPen( *wxBLACK_PEN );
        bmpDC.DrawRectangle( 0, 0, layerbmp.GetWidth(), layerbmp.GetHeight() );

        SetItemBitmap(i, layerbmp); 
    }
}
+2 −2
Original line number Diff line number Diff line
@@ -13,7 +13,7 @@
#include "gerbview_id.h"
#include "hotkeys.h"
#include "class_GERBER.h"

#include "class_layerchoicebox.h"

void WinEDA_GerberFrame::ReCreateHToolbar( void )
{
@@ -89,7 +89,7 @@ void WinEDA_GerberFrame::ReCreateHToolbar( void )
        choices.Add( msg );
    }

    m_SelLayerBox = new WinEDAChoiceBox( m_HToolBar,
    m_SelLayerBox = new WinEDALayerChoiceBox( m_HToolBar,
                                         ID_TOOLBARH_GERBVIEW_SELECT_LAYER,
                                         wxDefaultPosition, wxSize( 150, -1 ),
                                         choices );
+2 −2
Original line number Diff line number Diff line
@@ -8,7 +8,7 @@

#include "id.h"
#include "class_gerbview_layer_widget.h"

#include "class_layerchoicebox.h"

/**
 * Command IDs for the gerber file viewer.
@@ -44,7 +44,7 @@ protected:
    GERBER_LAYER_WIDGET* m_LayersManager;

public:
    WinEDAChoiceBox* m_SelLayerBox;
    WinEDALayerChoiceBox* m_SelLayerBox;
    WinEDAChoiceBox* m_SelLayerTool;
    wxTextCtrl*      m_TextInfo;        // a wxTextCtrl used to display some info about
                                        // gerber data (format..)
+4 −0
Original line number Diff line number Diff line
#ifndef CLASS_LAYERCHOICEBOX_H
#define CLASS_LAYERCHOICEBOX_H 1

#include "hotkeys_basic.h"
#include <wx/bmpcbox.h>

/* class to display a layer list.
@@ -33,9 +34,12 @@ public:

    // Reload the Layers
    void Resync();
    void ResyncBitmapOnly();

    bool SetLayersOrdered(bool value);
    bool SetLayersHotkeys(bool value);
    // Hotkey Info
    struct Ki_HotkeyInfoSectionDescriptor* m_hotkeys;
};

#define DECLARE_LAYERS_HOTKEY(list) int list[LAYER_COUNT] = \
Loading