/*******************/
/* File: cvpcb.cpp */
/*******************/
#define MAIN
#define eda_global

#include "fctsys.h"
#include "common.h"

#include "cvpcb.h"
#include "trigo.h"
#include "zones.h"

#include "bitmaps.h"

#include "protos.h"

#include "id.h"

wxString g_Main_Title = wxT( "CVpcb" );

// Create a new application object
IMPLEMENT_APP( WinEDA_App )

/* fonctions locales */

/************************************/
/* Called to initialize the program */
/************************************/

bool WinEDA_App::OnInit()
{
    wxString           msg;
    wxString           currCWD = wxGetCwd();
    WinEDA_CvpcbFrame* frame   = NULL;

    InitEDA_Appl( wxT( "cvpcb" ) );

    if( m_Checker && m_Checker->IsAnotherRunning() )
    {
        if( !IsOK( NULL, _( "Cvpcb is already running, Continue?" ) ) )
            return false;
    }

    GetSettings();                      // read current setup

    wxSetWorkingDirectory( currCWD );   // mofifie par GetSetting
    SetRealLibraryPath( wxT( "modules" ) );

    if( argc > 1 )
    {
        NetInNameBuffer = argv[1];
        NetNameBuffer   = argv[1];
    }

    if( !NetInNameBuffer.IsEmpty() )
        wxSetWorkingDirectory( wxPathOnly( NetInNameBuffer ) );
    g_DrawBgColor = BLACK;

    Read_Config( NetInNameBuffer );

    wxString Title = g_Main_Title + wxT( " " ) + GetBuildVersion();
    frame = new WinEDA_CvpcbFrame( Title );

    msg.Printf( wxT( "Modules: %d" ), nblib );
    frame->SetStatusText( msg, 2 );

    // Show the frame
    SetTopWindow( frame );

    frame->Show( TRUE );

    listlib();
    frame->BuildFootprintListBox();

    if( !NetInNameBuffer.IsEmpty() )  /* nom de fichier passe a la commande */
    {
        FFileName = MakeFileName( NetDirBuffer,
                                  NetInNameBuffer, NetInExtBuffer );

        frame->ReadNetListe();
    }
    else        /* Mise a jour du titre de la fenetre principale */
    {
        wxString Title = g_Main_Title + wxT( " " ) + GetBuildVersion();
        msg.Printf( wxT( "%s {%s%c} [no file]" ),
                    Title.GetData(), wxGetCwd().GetData(), DIR_SEP );
        frame->SetTitle( msg );
    }

    return TRUE;
}
