Commit c051c1a4 authored by Miguel Angel Ajo's avatar Miguel Angel Ajo
Browse files

footprint wizard UI and footprint wizard lists

parent 23bec4b8
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -99,6 +99,8 @@ set(PCBNEW_DIALOGS
    dialogs/dialog_scripting.cpp
    footprint_wizard.cpp
    footprint_wizard_frame.cpp
    dialogs/dialog_footprint_wizard_list_base.cpp
    dialogs/dialog_footprint_wizard_list.cpp
    )

# some of the files here may be going to the dialog srcs in fact.... 
+26 −0
Original line number Diff line number Diff line
@@ -13,6 +13,32 @@ void FOOTPRINT_WIZARD::register_wizard()

std::vector<FOOTPRINT_WIZARD*>  FOOTPRINT_WIZARDS::m_FootprintWizards;


FOOTPRINT_WIZARD* FOOTPRINT_WIZARDS::GetWizard(int aIndex)
{
    return m_FootprintWizards[aIndex];
}

FOOTPRINT_WIZARD* FOOTPRINT_WIZARDS::GetWizard(wxString aName)
{
    int max = GetSize();
    
    for(int i=0; i<max;i++)
    {
        FOOTPRINT_WIZARD *wizard =  GetWizard(i);
        wxString name = wizard->GetName();
        if (name.Cmp(aName))
                return wizard;     
    }
   
    return NULL;
}

int FOOTPRINT_WIZARDS::GetSize()
{
    return m_FootprintWizards.size();
}

void FOOTPRINT_WIZARDS::register_wizard(FOOTPRINT_WIZARD *aWizard)
{
    
+3 −0
Original line number Diff line number Diff line
@@ -37,6 +37,9 @@ private:

public:
    static void register_wizard(FOOTPRINT_WIZARD *wizard);
    static FOOTPRINT_WIZARD* GetWizard(wxString aName);
    static FOOTPRINT_WIZARD* GetWizard(int aIndex);
    static int GetSize();

};

+70 −0
Original line number Diff line number Diff line
/**
 * @file dialog_scripting.cpp
 */

#include <wx-2.8/wx/generic/grid.h>



#include <fctsys.h>
#include <pcbnew.h>
#include <wxPcbStruct.h>
#include <pcbcommon.h>
#include <dialog_footprint_wizard_list.h>
#include <class_footprint_wizard.h>



DIALOG_FOOTPRINT_WIZARD_LIST::DIALOG_FOOTPRINT_WIZARD_LIST( wxWindow* aParent )
    : DIALOG_FOOTPRINT_WIZARD_LIST_BASE( aParent )
{
    SetFocus();
    int n_wizards = FOOTPRINT_WIZARDS::GetSize();
    
    // Current wizard selection, empty or first
    m_FootprintWizard = NULL;
   
    if (n_wizards)
        m_FootprintWizard = FOOTPRINT_WIZARDS::GetWizard(0);
    
    // Choose selection mode and insert the needed rows
    m_footprintWizardsGrid->SetSelectionMode(wxGrid::wxGridSelectRows);
    m_footprintWizardsGrid->InsertRows(0,n_wizards,true);
        
    // Put all wizards in the list
    for (int i=0;i<n_wizards;i++)
    {
        FOOTPRINT_WIZARD *wizard = FOOTPRINT_WIZARDS::GetWizard(i);
        wxString name = wizard->GetName();
        wxString description = wizard->GetDescription();
        wxString image = wizard->GetImage();
        
        m_footprintWizardsGrid->SetCellValue(i,1,name);
        m_footprintWizardsGrid->SetCellValue(i,2,description);
        
    }
    
    // Select the first row
    m_footprintWizardsGrid->ClearSelection();
    m_footprintWizardsGrid->SelectRow(0,false);

}


void DIALOG_FOOTPRINT_WIZARD_LIST::OnCellWizardClick( wxGridEvent& event )
{
    int click_row = event.GetRow();
    m_FootprintWizard = FOOTPRINT_WIZARDS::GetWizard(click_row);
    
}

FOOTPRINT_WIZARD* DIALOG_FOOTPRINT_WIZARD_LIST::GetWizard()
{
    return m_FootprintWizard;
}

void DIALOG_FOOTPRINT_WIZARD_LIST::OnOpenButtonClick( wxCommandEvent& event )
{
    this->MakeModal(false);
    this->Close(true);
}
+263 −0
Original line number Diff line number Diff line
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<wxFormBuilder_Project>
    <FileVersion major="1" minor="10" />
    <object class="Project" expanded="1">
        <property name="class_decoration"></property>
        <property name="code_generation">C++</property>
        <property name="disconnect_events">1</property>
        <property name="disconnect_mode">source_name</property>
        <property name="disconnect_python_events">0</property>
        <property name="encoding">UTF-8</property>
        <property name="event_generation">connect</property>
        <property name="file">dialog_footprint_wizard_list_base</property>
        <property name="first_id">1000</property>
        <property name="help_provider">none</property>
        <property name="internationalize">1</property>
        <property name="name">DIALOG_FOOTPRINT_WIZARD_LIST_BASE</property>
        <property name="namespace"></property>
        <property name="path">.</property>
        <property name="precompiled_header"></property>
        <property name="relative_path">1</property>
        <property name="skip_python_events">1</property>
        <property name="use_enum">0</property>
        <property name="use_microsoft_bom">0</property>
        <object class="Dialog" expanded="1">
            <property name="bg"></property>
            <property name="center">wxBOTH</property>
            <property name="context_help"></property>
            <property name="context_menu">1</property>
            <property name="enabled">1</property>
            <property name="event_handler">impl_virtual</property>
            <property name="extra_style"></property>
            <property name="fg"></property>
            <property name="font"></property>
            <property name="hidden">0</property>
            <property name="id">wxID_ANY</property>
            <property name="maximum_size"></property>
            <property name="minimum_size"></property>
            <property name="name">DIALOG_FOOTPRINT_WIZARD_LIST_BASE</property>
            <property name="pos"></property>
            <property name="size"></property>
            <property name="style">wxDEFAULT_DIALOG_STYLE</property>
            <property name="subclass"></property>
            <property name="title">Footprint Wizards</property>
            <property name="tooltip"></property>
            <property name="validator_data_type"></property>
            <property name="validator_style">wxFILTER_NONE</property>
            <property name="validator_type">wxDefaultValidator</property>
            <property name="validator_variable"></property>
            <property name="window_extra_style"></property>
            <property name="window_name"></property>
            <property name="window_style"></property>
            <event name="OnActivate"></event>
            <event name="OnActivateApp"></event>
            <event name="OnChar"></event>
            <event name="OnClose"></event>
            <event name="OnEnterWindow"></event>
            <event name="OnEraseBackground"></event>
            <event name="OnHibernate"></event>
            <event name="OnIconize"></event>
            <event name="OnIdle"></event>
            <event name="OnInitDialog"></event>
            <event name="OnKeyDown"></event>
            <event name="OnKeyUp"></event>
            <event name="OnKillFocus"></event>
            <event name="OnLeaveWindow"></event>
            <event name="OnLeftDClick"></event>
            <event name="OnLeftDown"></event>
            <event name="OnLeftUp"></event>
            <event name="OnMiddleDClick"></event>
            <event name="OnMiddleDown"></event>
            <event name="OnMiddleUp"></event>
            <event name="OnMotion"></event>
            <event name="OnMouseEvents"></event>
            <event name="OnMouseWheel"></event>
            <event name="OnPaint"></event>
            <event name="OnRightDClick"></event>
            <event name="OnRightDown"></event>
            <event name="OnRightUp"></event>
            <event name="OnSetFocus"></event>
            <event name="OnSize"></event>
            <event name="OnUpdateUI"></event>
            <object class="wxBoxSizer" expanded="1">
                <property name="minimum_size"></property>
                <property name="name">bSizer4</property>
                <property name="orient">wxVERTICAL</property>
                <property name="permission">none</property>
                <object class="sizeritem" expanded="1">
                    <property name="border">5</property>
                    <property name="flag">wxALL</property>
                    <property name="proportion">1</property>
                    <object class="wxGrid" expanded="1">
                        <property name="autosize_cols">0</property>
                        <property name="autosize_rows">1</property>
                        <property name="bg"></property>
                        <property name="cell_bg"></property>
                        <property name="cell_font"></property>
                        <property name="cell_horiz_alignment">wxALIGN_LEFT</property>
                        <property name="cell_text"></property>
                        <property name="cell_vert_alignment">wxALIGN_TOP</property>
                        <property name="col_label_horiz_alignment">wxALIGN_LEFT</property>
                        <property name="col_label_size">20</property>
                        <property name="col_label_values">&quot;Preview&quot; &quot;Name&quot; &quot;Description&quot;</property>
                        <property name="col_label_vert_alignment">wxALIGN_CENTRE</property>
                        <property name="cols">3</property>
                        <property name="column_sizes">80,80,325</property>
                        <property name="context_help"></property>
                        <property name="context_menu">1</property>
                        <property name="drag_col_move">0</property>
                        <property name="drag_col_size">1</property>
                        <property name="drag_grid_size">0</property>
                        <property name="drag_row_size">1</property>
                        <property name="editing">0</property>
                        <property name="enabled">1</property>
                        <property name="fg"></property>
                        <property name="font"></property>
                        <property name="grid_line_color"></property>
                        <property name="grid_lines">1</property>
                        <property name="hidden">0</property>
                        <property name="id">wxID_ANY</property>
                        <property name="label_bg"></property>
                        <property name="label_font"></property>
                        <property name="label_text"></property>
                        <property name="margin_height">0</property>
                        <property name="margin_width">0</property>
                        <property name="maximum_size"></property>
                        <property name="minimum_size">-1,120</property>
                        <property name="name">m_footprintWizardsGrid</property>
                        <property name="permission">protected</property>
                        <property name="pos"></property>
                        <property name="row_label_horiz_alignment">wxALIGN_CENTRE</property>
                        <property name="row_label_size">1</property>
                        <property name="row_label_values"></property>
                        <property name="row_label_vert_alignment">wxALIGN_CENTRE</property>
                        <property name="row_sizes"></property>
                        <property name="rows">0</property>
                        <property name="size"></property>
                        <property name="subclass"></property>
                        <property name="tooltip"></property>
                        <property name="validator_data_type"></property>
                        <property name="validator_style">wxFILTER_NONE</property>
                        <property name="validator_type">wxDefaultValidator</property>
                        <property name="validator_variable"></property>
                        <property name="window_extra_style"></property>
                        <property name="window_name"></property>
                        <property name="window_style"></property>
                        <event name="OnChar"></event>
                        <event name="OnEnterWindow"></event>
                        <event name="OnEraseBackground"></event>
                        <event name="OnGridCellChange"></event>
                        <event name="OnGridCellLeftClick">OnCellWizardClick</event>
                        <event name="OnGridCellLeftDClick"></event>
                        <event name="OnGridCellRightClick"></event>
                        <event name="OnGridCellRightDClick"></event>
                        <event name="OnGridCmdCellChange"></event>
                        <event name="OnGridCmdCellLeftClick"></event>
                        <event name="OnGridCmdCellLeftDClick"></event>
                        <event name="OnGridCmdCellRightClick"></event>
                        <event name="OnGridCmdCellRightDClick"></event>
                        <event name="OnGridCmdColSize"></event>
                        <event name="OnGridCmdEditorCreated"></event>
                        <event name="OnGridCmdEditorHidden"></event>
                        <event name="OnGridCmdEditorShown"></event>
                        <event name="OnGridCmdLabelLeftClick"></event>
                        <event name="OnGridCmdLabelLeftDClick"></event>
                        <event name="OnGridCmdLabelRightClick"></event>
                        <event name="OnGridCmdLabelRightDClick"></event>
                        <event name="OnGridCmdRangeSelect"></event>
                        <event name="OnGridCmdRowSize"></event>
                        <event name="OnGridCmdSelectCell"></event>
                        <event name="OnGridColSize"></event>
                        <event name="OnGridEditorCreated"></event>
                        <event name="OnGridEditorHidden"></event>
                        <event name="OnGridEditorShown"></event>
                        <event name="OnGridLabelLeftClick"></event>
                        <event name="OnGridLabelLeftDClick"></event>
                        <event name="OnGridLabelRightClick"></event>
                        <event name="OnGridLabelRightDClick"></event>
                        <event name="OnGridRangeSelect"></event>
                        <event name="OnGridRowSize"></event>
                        <event name="OnGridSelectCell"></event>
                        <event name="OnKeyDown"></event>
                        <event name="OnKeyUp"></event>
                        <event name="OnKillFocus"></event>
                        <event name="OnLeaveWindow"></event>
                        <event name="OnLeftDClick"></event>
                        <event name="OnLeftDown"></event>
                        <event name="OnLeftUp"></event>
                        <event name="OnMiddleDClick"></event>
                        <event name="OnMiddleDown"></event>
                        <event name="OnMiddleUp"></event>
                        <event name="OnMotion"></event>
                        <event name="OnMouseEvents"></event>
                        <event name="OnMouseWheel"></event>
                        <event name="OnPaint"></event>
                        <event name="OnRightDClick"></event>
                        <event name="OnRightDown"></event>
                        <event name="OnRightUp"></event>
                        <event name="OnSetFocus"></event>
                        <event name="OnSize"></event>
                        <event name="OnUpdateUI"></event>
                    </object>
                </object>
                <object class="sizeritem" expanded="1">
                    <property name="border">5</property>
                    <property name="flag">wxALIGN_CENTER|wxALL</property>
                    <property name="proportion">0</property>
                    <object class="wxButton" expanded="1">
                        <property name="bg"></property>
                        <property name="context_help"></property>
                        <property name="context_menu">1</property>
                        <property name="default">0</property>
                        <property name="enabled">1</property>
                        <property name="fg"></property>
                        <property name="font"></property>
                        <property name="hidden">0</property>
                        <property name="id">wxID_ANY</property>
                        <property name="label">Open</property>
                        <property name="maximum_size"></property>
                        <property name="minimum_size"></property>
                        <property name="name">m_btOpen</property>
                        <property name="permission">protected</property>
                        <property name="pos"></property>
                        <property name="size"></property>
                        <property name="style"></property>
                        <property name="subclass"></property>
                        <property name="tooltip"></property>
                        <property name="validator_data_type"></property>
                        <property name="validator_style">wxFILTER_NONE</property>
                        <property name="validator_type">wxDefaultValidator</property>
                        <property name="validator_variable"></property>
                        <property name="window_extra_style"></property>
                        <property name="window_name"></property>
                        <property name="window_style"></property>
                        <event name="OnButtonClick">OnOpenButtonClick</event>
                        <event name="OnChar"></event>
                        <event name="OnEnterWindow"></event>
                        <event name="OnEraseBackground"></event>
                        <event name="OnKeyDown"></event>
                        <event name="OnKeyUp"></event>
                        <event name="OnKillFocus"></event>
                        <event name="OnLeaveWindow"></event>
                        <event name="OnLeftDClick"></event>
                        <event name="OnLeftDown"></event>
                        <event name="OnLeftUp"></event>
                        <event name="OnMiddleDClick"></event>
                        <event name="OnMiddleDown"></event>
                        <event name="OnMiddleUp"></event>
                        <event name="OnMotion"></event>
                        <event name="OnMouseEvents"></event>
                        <event name="OnMouseWheel"></event>
                        <event name="OnPaint"></event>
                        <event name="OnRightDClick"></event>
                        <event name="OnRightDown"></event>
                        <event name="OnRightUp"></event>
                        <event name="OnSetFocus"></event>
                        <event name="OnSize"></event>
                        <event name="OnUpdateUI"></event>
                    </object>
                </object>
            </object>
        </object>
    </object>
</wxFormBuilder_Project>
Loading