// For compilers that support precompilation
#include "wx/wxprec.h"

#ifdef __BORLANDC__
    #pragma hdrstop
#endif

// Include private header
#include "dialogs.h"
#include "ftpro.h"
#include <wx/imaglist.h>


wxSizer *connect_page( wxWindow *parent, bool call_fit, bool set_sizer, wxComboBox** local_pwd_cb, wxComboBox** remote_pwd_cb, int ICON_STYLE)
{
  wxBoxSizer *item0 = new wxBoxSizer( wxVERTICAL );
  
    wxBoxSizer *item2 = new wxBoxSizer( wxHORIZONTAL );

    wxBoxSizer *item3 = new wxBoxSizer( wxHORIZONTAL );

    wxBitmapButton *item4 = new wxBitmapButton( parent, ID_LOCAL_HOME, icons_bitmaps( 12 ), wxDefaultPosition, wxSize(35,28) );
    item4->SetToolTip( "Go to home directory (Setable in File->Setup)" );
    item3->Add( item4, 0, wxALIGN_CENTRE|wxALL , 5 );

    item3->Add( 266, 10, 1, wxALIGN_CENTRE|wxALL | wxEXPAND, 5 );

    wxBitmapButton *item5 = new wxBitmapButton( parent, ID_LOCAL_CDUP, icons_bitmaps( 11 ), wxDefaultPosition, wxSize(35,28) );
    item5->SetToolTip( "Go up one directory" );
    item3->Add( item5, 0, wxALIGN_CENTRE|wxALL , 5 );

    item2->Add( item3, 1, wxALIGN_CENTRE|wxALL | wxEXPAND, 0 );

    wxBoxSizer *item6 = new wxBoxSizer( wxHORIZONTAL );

    wxBitmapButton *item7 = new wxBitmapButton( parent, ID_REMOTE_HOME, icons_bitmaps( 12 ), wxDefaultPosition, wxSize(35,28) );
    item7->SetToolTip( "Go to Remote Home directory" );
    item6->Add( item7, 0, wxALIGN_CENTRE|wxALL , 5 );

    item6->Add( 264, 10, 1, wxALIGN_CENTRE|wxALL | wxEXPAND, 5 );

    wxBitmapButton *item8 = new wxBitmapButton( parent, ID_REMOTE_CDUP, icons_bitmaps( 11 ), wxDefaultPosition, wxSize(35,28) );
    item7->SetToolTip( "Go up one directory on the remote file system" );
    item6->Add( item8, 0, wxALIGN_CENTRE|wxALL , 5 );

    item2->Add( item6, 1, wxALIGN_CENTRE|wxALL | wxEXPAND, 0 );

    item0->Add( item2, 1, wxALIGN_CENTER_VERTICAL|wxALL | wxEXPAND, 0 );

    wxBoxSizer *item9 = new wxBoxSizer( wxHORIZONTAL );

    wxBoxSizer *vs = new wxBoxSizer( wxVERTICAL);
    wxBoxSizer *vs2 = new wxBoxSizer( wxVERTICAL);
    
    
    HarborDialog::local_list = new LocalList( parent, ID_LOCAL_LIST, wxDefaultPosition, wxSize(355,220), wxLC_REPORT|wxSUNKEN_BORDER );
    HarborDialog::local_list->SetToolTip( "Local Files System" );
    vs->Add(HarborDialog::local_list, 1, wxALIGN_CENTRE | wxEXPAND | wxALL, 5);
    item9->Add( vs, 1, wxALIGN_CENTRE|wxALL | wxEXPAND, 5 );
    //    item9->Add( HarborDialog::local_list, 1, wxALIGN_CENTRE|wxALL | wxEXPAND, 5 );
    
    HarborDialog::remote_list = new RemoteList( parent, ID_REMOTE_LIST, wxDefaultPosition, wxSize(355,220), wxLC_REPORT|wxSUNKEN_BORDER );
    HarborDialog::remote_list->SetToolTip( "Remote File System" );
    vs2->Add(HarborDialog::remote_list, 1, wxALIGN_CENTRE | wxEXPAND | wxALL, 5);
    item9->Add( vs2, 1, wxALIGN_CENTRE|wxALL | wxEXPAND, 5 );
    //    item9->Add( HarborDialog::remote_list, 1, wxALIGN_CENTRE|wxALL | wxEXPAND, 5 );
    
    if (ICON_STYLE == 0)
      {
        wxImageList* icon_list = new wxImageList(32,32,true);
        icon_list->Add(icons_bitmaps(0)); // folder 0
        icon_list->Add(icons_bitmaps(1)); // text 1
        icon_list->Add(icons_bitmaps(2)); // doc 2
        icon_list->Add(icons_bitmaps(3)); // exe 3
        icon_list->Add(icons_bitmaps(4)); // music 5
        icon_list->Add(icons_bitmaps(5)); // movie 6
        icon_list->Add(icons_bitmaps(6)); // picture 7
        icon_list->Add(icons_bitmaps(7)); // readme 8
        icon_list->Add(icons_bitmaps(9)); // zip 9
        icon_list->Add(icons_bitmaps(9)); // tgz 10
        icon_list->Add(icons_bitmaps(10)); // cs 11
        HarborDialog::local_list->SetImageList(icon_list, wxIMAGE_LIST_SMALL);
        HarborDialog::remote_list->SetImageList(icon_list, wxIMAGE_LIST_SMALL);
      }
    
    else if (ICON_STYLE == 1)
      {
        wxImageList *icon_list = new wxImageList(16,16,true);
        icon_list->Add(wxIcon("folder", wxBITMAP_TYPE_ICO_RESOURCE) );
        icon_list->Add(wxIcon("doc", wxBITMAP_TYPE_ICO_RESOURCE) );
        icon_list->Add(wxIcon("doc", wxBITMAP_TYPE_ICO_RESOURCE) );
        icon_list->Add(wxIcon("exe", wxBITMAP_TYPE_ICO_RESOURCE) );
        icon_list->Add(wxIcon("music", wxBITMAP_TYPE_ICO_RESOURCE) );
        icon_list->Add(wxIcon("movie", wxBITMAP_TYPE_ICO_RESOURCE) );
        icon_list->Add(wxIcon("pic", wxBITMAP_TYPE_ICO_RESOURCE) );
        icon_list->Add(wxIcon("doc", wxBITMAP_TYPE_ICO_RESOURCE) );
        icon_list->Add(wxIcon("zip", wxBITMAP_TYPE_ICO_RESOURCE) );
        icon_list->Add(wxIcon("zip", wxBITMAP_TYPE_ICO_RESOURCE) );
        icon_list->Add(wxIcon("logo", wxBITMAP_TYPE_ICO_RESOURCE) );
        HarborDialog::local_list->SetImageList(icon_list, wxIMAGE_LIST_SMALL);
        HarborDialog::remote_list->SetImageList(icon_list, wxIMAGE_LIST_SMALL);
      }
    
    HarborDialog::local_list->InsertColumn(0,"File");
    HarborDialog::local_list->InsertColumn(1,"Type");
    HarborDialog::local_list->InsertColumn(2,"Size");

    HarborDialog::local_list->SetColumnWidth(0,225);
    HarborDialog::local_list->SetColumnWidth(1,60);
    HarborDialog::local_list->SetColumnWidth(2,45);
    

    HarborDialog::remote_list->InsertColumn(0,"File");
    HarborDialog::remote_list->InsertColumn(1,"Owner");
    HarborDialog::remote_list->InsertColumn(2,"Type");
    HarborDialog::remote_list->InsertColumn(3,"Size");

    HarborDialog::remote_list->SetColumnWidth(0,175);
    HarborDialog::remote_list->SetColumnWidth(1,60);
    HarborDialog::remote_list->SetColumnWidth(2,60);
    HarborDialog::remote_list->SetColumnWidth(3,45);
    item0->Add( item9, 10, wxALIGN_CENTER_VERTICAL | wxEXPAND, 5 );

    wxBoxSizer *item12 = new wxBoxSizer( wxHORIZONTAL );

    wxString strs13[] =
    {
        "ComboItem"
    };
    *local_pwd_cb = new wxComboBox( parent, ID_LOCAL_PWD_COMBO, "", wxDefaultPosition, wxSize(356,-1), 1, strs13, wxCB_DROPDOWN );
    (*local_pwd_cb)->SetToolTip( "Local Directories" );
    item12->Add( *local_pwd_cb, 1, wxALIGN_CENTRE|wxALL| wxEXPAND, 5 );

    wxString strs14[] =
    {
        "ComboItem"
    };
    *remote_pwd_cb = new wxComboBox( parent, ID_REMOTE_COMBO_PWD, "", wxDefaultPosition, wxSize(355,-1), 1, strs14, wxCB_DROPDOWN );
    (*remote_pwd_cb)->SetToolTip( "Remote Directories" );
    item12->Add( *remote_pwd_cb, 1, wxALIGN_CENTRE|wxALL | wxEXPAND, 5 );

    item0->Add( item12, 1, wxALIGN_CENTER_VERTICAL | wxEXPAND, 5 );

    if (set_sizer)
    {
        parent->SetAutoLayout( TRUE );
        parent->SetSizer( item0 );
        if (call_fit)
        {
            item0->Fit( parent );
            item0->SetSizeHints( parent );
        }
    }
    
    return item0;
}

wxSizer *transfer_page( wxWindow *parent, bool call_fit, bool set_sizer )
{
    wxBoxSizer *item0 = new wxBoxSizer( wxVERTICAL );

    wxStaticText *item1 = new wxStaticText( parent, ID_TEXT, "TRANSFERS", wxDefaultPosition, wxDefaultSize, 0 );
    item1->SetFont( wxFont( 12, wxSWISS, wxNORMAL, wxNORMAL ) );
#if defined(__WXMSW__) && !(wxCHECK_VERSION(2,3,0))
    item1->SetSize( item1->GetBestSize() );
#endif
    item1->SetToolTip( "By FTPro Server at www.csftp.com!" );
    item0->Add( item1, 0, wxALIGN_CENTRE|wxALL, 5 );

    item0->Add( 20, 17, 0, wxALIGN_CENTRE|wxALL, 5 );

    wxBoxSizer *item2 = new wxBoxSizer( wxHORIZONTAL );

    HarborDialog::transfer_list = new TransferList( parent, ID_TRANSFERS_LIST, wxDefaultPosition, wxSize(590,200), wxLC_REPORT|wxSUNKEN_BORDER );
    HarborDialog::transfer_list->SetToolTip( "Active Transfers (see Status for failed and complete)" );
    item2->Add( HarborDialog::transfer_list, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 0 );

    HarborDialog::transfer_list->InsertColumn(0,"File Name");
    HarborDialog::transfer_list->InsertColumn(1,"Date Started");
    HarborDialog::transfer_list->InsertColumn(2,"Status");
    HarborDialog::transfer_list->InsertColumn(3,"Sizes");

    HarborDialog::transfer_list->SetColumnWidth(0,300);
    HarborDialog::transfer_list->SetColumnWidth(1,100);
    HarborDialog::transfer_list->SetColumnWidth(2,115);
    HarborDialog::transfer_list->SetColumnWidth(3,70);

    HarborDialog::transfer_list->InsertItem(0, "Available only in the full version, buy it today!!");
    wxBoxSizer *item4 = new wxBoxSizer( wxVERTICAL );

    for (int p = 0;p < 14;p++)
      {
        HarborDialog::transfer_gauges[p] = new wxGauge( parent, ID_GAUGE_2, 100, wxDefaultPosition, wxSize(100,13), 0 );
        HarborDialog::transfer_gauges[p]->SetToolTip( "Progress Bar" );
        item4->Add( HarborDialog::transfer_gauges[p], 0, wxALIGN_CENTRE|wxALL, 0 );
      }
    
    item2->Add( item4, 0, wxALIGN_BOTTOM|wxALIGN_CENTER_HORIZONTAL|wxALL, 5 );

    item0->Add( item2, 0, wxALIGN_CENTER_VERTICAL|wxALL, 10 );

    wxBoxSizer *item18 = new wxBoxSizer( wxHORIZONTAL );

    wxButton *item19 = new wxButton( parent, ID_TRANSFER_ABORT, "Abort", wxDefaultPosition, wxSize(100,-1), 0 );
    item19->SetFont( wxFont( 10, wxMODERN, wxNORMAL, wxNORMAL ) );
    item18->Add( item19, 0, wxALIGN_CENTRE|wxALL, 10 );

    item18->Add( 20, 20, 0, wxALIGN_CENTRE|wxALL, 5 );

    wxButton *item20 = new wxButton( parent, ID_TRANSFER_RESUME, "Resume", wxDefaultPosition, wxSize(100,-1), 0 );
    item20->SetFont( wxFont( 10, wxMODERN, wxNORMAL, wxNORMAL ) );
    item18->Add( item20, 0, wxALIGN_CENTRE|wxALL, 5 );

    item0->Add( item18, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );

    if (set_sizer)
    {
        parent->SetAutoLayout( TRUE );
        parent->SetSizer( item0 );
        if (call_fit)
        {
            item0->Fit( parent );
            item0->SetSizeHints( parent );
        }
    }
    
    return item0;
}

wxSizer *status_page( wxWindow *parent, bool call_fit, bool set_sizer, wxListCtrl** status_list)
{
    wxBoxSizer *item0 = new wxBoxSizer( wxVERTICAL );

    wxStaticText *item1 = new wxStaticText( parent, ID_TEXT, "STATUS", wxDefaultPosition, wxDefaultSize, 0 );
    item1->SetFont( wxFont( 12, wxSWISS, wxNORMAL, wxNORMAL ) );
#if defined(__WXMSW__) && !(wxCHECK_VERSION(2,3,0))
    item1->SetSize( item1->GetBestSize() );
#endif
    item1->SetToolTip( "You like this client ?  Help support it at www.csftp.com" );
    item0->Add( item1, 0, wxALIGN_CENTRE|wxALL, 5 );

    item0->Add( 10, 17, 0, wxALIGN_CENTRE|wxALL, 5 );

    wxBoxSizer *item2 = new wxBoxSizer( wxHORIZONTAL );

    *status_list= new wxListCtrl( parent, ID_STATUS_LIST, wxDefaultPosition, wxSize(590,200), wxLC_REPORT|wxSUNKEN_BORDER );
    (*status_list)->SetToolTip( "This is for finisihed, complete, and all others. " );
    item2->Add( *status_list, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5 );

    (*status_list)->InsertColumn(0,"File Name");
    (*status_list)->InsertColumn(1,"Status");
    (*status_list)->InsertColumn(2,"Sizes");
    
    (*status_list)->SetColumnWidth(0,400);
    (*status_list)->SetColumnWidth(1,115);
    (*status_list)->SetColumnWidth(2,70);
    (*status_list)->InsertItem(0, "Available only in the full version, buy it today www.csftpro.com!!");

    item0->Add( item2, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );

    if (set_sizer)
    {
        parent->SetAutoLayout( TRUE );
        parent->SetSizer( item0 );
        if (call_fit)
        {
            item0->Fit( parent );
            item0->SetSizeHints( parent );
        }
    }
    
    return item0;
}

wxSizer *setup_page( wxWindow *parent, bool call_fit, bool set_sizer, wxRadioBox** style_radio,int style)
{
    wxBoxSizer *item0 = new wxBoxSizer( wxVERTICAL );

    wxStaticText *item1 = new wxStaticText( parent, ID_TEXT, "SETUP", wxDefaultPosition, wxDefaultSize, 0 );
    item1->SetFont( wxFont( 12, wxSWISS, wxNORMAL, wxNORMAL ) );
#if defined(__WXMSW__) && !(wxCHECK_VERSION(2,3,0))
    item1->SetSize( item1->GetBestSize() );
#endif
    item1->SetToolTip( "Buy me at www.csftp.com!" );
    item0->Add( item1, 0, wxALIGN_CENTRE|wxALL, 5 );

    item0->Add( 20, 17, 0, wxALIGN_CENTRE|wxALL, 5 );

    wxBoxSizer *item2 = new wxBoxSizer( wxHORIZONTAL );

    wxStaticText *item3 = new wxStaticText( parent, ID_TEXT,
        "FTPro is an FTP client that is best used with the FTPro server\n"
        "Which you can get at at www.csftp.com.  So more Help information here\n"
        "",
        wxDefaultPosition, wxDefaultSize, 0 );
    item3->SetToolTip( "Some general Info" );
    item2->Add( item3, 0, wxALIGN_CENTRE|wxALL, 5 );

    wxBoxSizer *item4 = new wxBoxSizer( wxVERTICAL );

    wxString strs5[] =
    {
        "Traditional",
        "Stylistic",
        "None"
    };
    *style_radio = new wxRadioBox( parent, ID_SETUP_STYLE_RB, "Style", wxDefaultPosition, wxDefaultSize, 3, strs5, 1, wxRA_SPECIFY_COLS );
    (*style_radio)->SetToolTip( "Change FTPro's Look (you'll need to restart FTPro)" );
    item4->Add( *style_radio, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5 );
    (*style_radio)->SetSelection(style);
    wxButton *item6 = new wxButton( parent, ID_SETUP_ABOUT, "About", wxDefaultPosition, wxDefaultSize, 0 );
    item6->SetFont( wxFont( 10, wxMODERN, wxNORMAL, wxNORMAL ) );
    item6->SetToolTip( "About FTPro" );
    item4->Add( item6, 0, wxALIGN_CENTRE|wxALL, 15 );

    wxButton *item7 = new wxButton( parent, ID_SETUP_HELP, "Help", wxDefaultPosition, wxDefaultSize, 0 );
    item7->SetFont( wxFont( 10, wxMODERN, wxNORMAL, wxNORMAL ) );
    item7->SetToolTip( "Help about FTPro" );
    item4->Add( item7, 0, wxALIGN_CENTRE|wxALL, 15 );

    item2->Add( item4, 0, wxALIGN_CENTRE|wxALL, 5 );

    item0->Add( item2, 0, wxALIGN_CENTRE|wxALL, 5 );

    wxBoxSizer *item8 = new wxBoxSizer( wxHORIZONTAL );

    item8->Add( 14, 20, 0, wxALIGN_CENTRE|wxALL, 0 );

    item0->Add( item8, 0, wxALIGN_CENTER_VERTICAL|wxALL, 0 );

    if (set_sizer)
    {
        parent->SetAutoLayout( TRUE );
        parent->SetSizer( item0 );
        if (call_fit)
        {
            item0->Fit( parent );
            item0->SetSizeHints( parent );
        }
    }
    
    return item0;
}

wxSizer *connection_dialog( wxWindow *parent, bool call_fit, bool set_sizer)
{
    wxBoxSizer *item0 = new wxBoxSizer( wxVERTICAL );

    wxStaticBox *item2 = new wxStaticBox( parent, -1, "Connect" );
    wxStaticBoxSizer *item1 = new wxStaticBoxSizer( item2, wxVERTICAL );

    wxBoxSizer *item3 = new wxBoxSizer( wxHORIZONTAL );

    wxCheckBox *item4 = new wxCheckBox( parent, ID_ENCRYPTED_CHECKBOX, "Encrypted (soon to come)", wxDefaultPosition, wxDefaultSize, 0 );
    item4->SetToolTip( "An option to encrypt" );
    item3->Add( item4, 0, wxALIGN_CENTRE|wxALL, 5 );

    item3->Add( 90, 20, 0, wxALIGN_CENTRE|wxALL, 5 );

    wxCheckBox *item5 = new wxCheckBox( parent, ID_ANONYMOUS_CHECKBOX, "Anonymous", wxDefaultPosition, wxDefaultSize, 0 );
    item5->SetToolTip( "Make anonymous connection" );
    item3->Add( item5, 0, wxALIGN_CENTRE|wxALL, 5 );

    item1->Add( item3, 0, wxALIGN_CENTRE|wxALL, 5 );

    wxBoxSizer *item6 = new wxBoxSizer( wxHORIZONTAL );

    wxStaticText *item7 = new wxStaticText( parent, ID_TEXT, "Host", wxDefaultPosition, wxDefaultSize, 0 );
    item6->Add( item7, 0, wxALIGN_CENTRE|wxALL, 5 );

    //    a = new wxTextCtrl( parent, ID_HOST_TEXT, "", wxDefaultPosition, wxSize(160,-1), 0 );
    //    d.host_tc->SetToolTip( "The host address" );
    //    item6->Add( d.host_tc, 0, wxALIGN_CENTRE|wxALL, 5 );

    wxStaticText *item9 = new wxStaticText( parent, ID_TEXT, "        User", wxDefaultPosition, wxDefaultSize, 0 );
    item6->Add( item9, 0, wxALIGN_CENTRE|wxALL, 5 );

    wxTextCtrl *item10 = new wxTextCtrl( parent, ID_HOST_USER, "", wxDefaultPosition, wxSize(160,-1), 0 );
    item10->SetToolTip( "Your username" );
    item6->Add( item10, 0, wxALIGN_CENTRE|wxALL, 5 );

    item1->Add( item6, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );

    wxBoxSizer *item11 = new wxBoxSizer( wxHORIZONTAL );

    wxStaticText *item12 = new wxStaticText( parent, ID_TEXT, "Port ", wxDefaultPosition, wxDefaultSize, 0 );
    item11->Add( item12, 0, wxALIGN_CENTRE|wxALL, 5 );

    wxString strs13[] =
    {
        "21"
    };
    wxComboBox *item13 = new wxComboBox( parent, ID_PORT_COMBO, "", wxDefaultPosition, wxSize(160,-1), 1, strs13, wxCB_DROPDOWN );
    item13->SetToolTip( "The port to connect to, usually 21" );
    item11->Add( item13, 0, wxALIGN_CENTRE|wxALL, 5 );

    wxStaticText *item14 = new wxStaticText( parent, ID_TEXT, "Password", wxDefaultPosition, wxDefaultSize, 0 );
    item11->Add( item14, 0, wxALIGN_CENTRE|wxALL, 5 );

    wxTextCtrl *item15 = new wxTextCtrl( parent, ID_HOST_PASSWORD, "", wxDefaultPosition, wxSize(160,-1), 0 );
    item15->SetToolTip( "Your password" );
    item11->Add( item15, 0, wxALIGN_CENTRE|wxALL, 5 );

    item1->Add( item11, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );

    wxBoxSizer *item16 = new wxBoxSizer( wxHORIZONTAL );

    wxRadioButton *item17 = new wxRadioButton( parent, ID_CONNECT_QUICK_NAME, "Add to Quick Connect", wxDefaultPosition, wxDefaultSize, wxRB_GROUP );
    item17->SetToolTip( "Add to your quick connect collection ?" );
    item16->Add( item17, 0, wxALIGN_CENTRE|wxALL, 5 );

    item16->Add( 70, 20, 0, wxALIGN_CENTRE|wxALL, 5 );

    wxStaticText *item18 = new wxStaticText( parent, ID_TEXT, "(Name)", wxDefaultPosition, wxDefaultSize, 0 );
    item16->Add( item18, 0, wxALIGN_CENTRE|wxALL, 5 );

    wxTextCtrl *item19 = new wxTextCtrl( parent, ID_QUICK_NAME, "", wxDefaultPosition, wxSize(160,-1), 0 );
    item19->SetToolTip( "The name to add to your quick connect collection" );
    item19->Enable( FALSE );
    item16->Add( item19, 0, wxALIGN_CENTRE|wxALL, 5 );

    item1->Add( item16, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );

    item0->Add( item1, 0, wxALIGN_CENTRE|wxALL, 5 );

    wxBoxSizer *item20 = new wxBoxSizer( wxHORIZONTAL );

    wxButton *item21 = new wxButton( parent, ID_CONNECT_OK, "OK", wxDefaultPosition, wxDefaultSize, 0 );
    item21->SetToolTip( "Connect" );
    item20->Add( item21, 0, wxALIGN_CENTRE|wxALL, 5 );

    item20->Add( 80, 20, 0, wxALIGN_CENTRE|wxALL, 5 );

    wxButton *item22 = new wxButton( parent, ID_CONNECT_BUTTON, "Cancel", wxDefaultPosition, wxDefaultSize, 0 );
    item22->SetToolTip( "Cancel" );
    item20->Add( item22, 0, wxALIGN_CENTRE|wxALL, 5 );

    item0->Add( item20, 0, wxALIGN_CENTRE|wxALL, 5 );

    if (set_sizer)
    {
        parent->SetAutoLayout( TRUE );
        parent->SetSizer( item0 );
        if (call_fit)
        {
            item0->Fit( parent );
            item0->SetSizeHints( parent );
        }
    }
    
    return item0;
}


wxSizer *newsettings_dialog( wxWindow *parent, bool call_fit, bool set_sizer )
{

    wxBoxSizer *item0 = new wxBoxSizer( wxVERTICAL );

    wxNotebook *item2 = new wxNotebook( parent, ID_NOTEBOOK, wxDefaultPosition, wxSize(200,160), wxNB_FIXEDWIDTH );
    wxNotebookSizer *item1 = new wxNotebookSizer( item2 );

    wxPanel *item3 = new wxPanel( item2, -1 );
    connection_dialog( item3, FALSE );
    item2->AddPage( item3, "Connect" );

    wxPanel *item4 = new wxPanel( item2, -1 );
    quick_connect( item4, FALSE );
    item2->AddPage( item4, "Quick Connect" );

    wxPanel *item5 = new wxPanel( item2, -1 );
    sites_of_interest_dialog( item5, FALSE );
    item2->AddPage( item5, "Sites of Interest" );

    item0->Add( item1, 0, wxALIGN_CENTRE|wxALL, 5 );

    if (set_sizer)
    {
        parent->SetAutoLayout( TRUE );
        parent->SetSizer( item0 );
        if (call_fit)
        {
            item0->Fit( parent );
            item0->SetSizeHints( parent );
        }
    }
    
    return item0;
}

wxSizer *quick_connect( wxWindow *parent, bool call_fit, bool set_sizer )
{
    wxBoxSizer *item0 = new wxBoxSizer( wxVERTICAL );

    wxStaticBox *item2 = new wxStaticBox( parent, -1, "Quick Connect" );
    wxStaticBoxSizer *item1 = new wxStaticBoxSizer( item2, wxHORIZONTAL );

    wxString *strs3 = (wxString*) NULL;
    wxListBox *item3 = new wxListBox( parent, ID_QC_LISTBOX, wxDefaultPosition, wxSize(140,160), 0, strs3, wxLB_SINGLE );
    item1->Add( item3, 0, wxALIGN_CENTRE|wxALL, 5 );

    wxBoxSizer *item4 = new wxBoxSizer( wxVERTICAL );

    wxButton *item5 = new wxButton( parent, ID_QC_CONNECT, "Connect", wxDefaultPosition, wxDefaultSize, 0 );
    item4->Add( item5, 0, wxALIGN_CENTRE|wxALL, 5 );

    wxButton *item6 = new wxButton( parent, ID_QC_EDIT, "Edit", wxDefaultPosition, wxDefaultSize, 0 );
    item4->Add( item6, 0, wxALIGN_CENTRE|wxALL, 5 );

    wxButton *item7 = new wxButton( parent, ID_QC_REMOVE, "Remove", wxDefaultPosition, wxDefaultSize, 0 );
    item4->Add( item7, 0, wxALIGN_CENTRE|wxALL, 5 );

    item1->Add( item4, 0, wxALIGN_CENTRE|wxALL, 5 );

    item0->Add( item1, 0, wxALIGN_CENTRE|wxALL, 15 );

    wxButton *item8 = new wxButton( parent, ID_QC_CANCEL, "Cancel", wxDefaultPosition, wxDefaultSize, 0 );
    item0->Add( item8, 0, wxALIGN_CENTRE|wxALL, 5 );

    if (set_sizer)
    {
        parent->SetAutoLayout( TRUE );
        parent->SetSizer( item0 );
        if (call_fit)
        {
            item0->Fit( parent );
            item0->SetSizeHints( parent );
        }
    }
    
    return item0;
}

wxSizer *sites_of_interest_dialog( wxWindow *parent, bool call_fit, bool set_sizer )
{
    wxBoxSizer *item0 = new wxBoxSizer( wxVERTICAL );

    wxStaticBox *item2 = new wxStaticBox( parent, -1, "Sites of Interest" );
    wxStaticBoxSizer *item1 = new wxStaticBoxSizer( item2, wxHORIZONTAL );

    wxString *strs3 = (wxString*) NULL;
    wxListBox *item3 = new wxListBox( parent, ID_SOI_LISTBOX, wxDefaultPosition, wxSize(140,160), 0, strs3, wxLB_SINGLE );
    item1->Add( item3, 0, wxALIGN_CENTRE|wxALL, 5 );

    wxBoxSizer *item4 = new wxBoxSizer( wxVERTICAL );

    wxButton *item5 = new wxButton( parent, ID_SOI_CONNECT, "Connect", wxDefaultPosition, wxDefaultSize, 0 );
    item4->Add( item5, 0, wxALIGN_CENTRE|wxALL, 5 );

    wxButton *item6 = new wxButton( parent, ID_SOI_INFO, "Info", wxDefaultPosition, wxDefaultSize, 0 );
    item4->Add( item6, 0, wxALIGN_CENTRE|wxALL, 5 );

    item1->Add( item4, 0, wxALIGN_CENTRE|wxALL, 5 );

    item0->Add( item1, 0, wxALIGN_CENTRE|wxALL, 15 );

    wxButton *item7 = new wxButton( parent, ID_SOI_CANCEL, "Cancel", wxDefaultPosition, wxDefaultSize, 0 );
    item0->Add( item7, 0, wxALIGN_CENTRE|wxALL, 5 );

    if (set_sizer)
    {
        parent->SetAutoLayout( TRUE );
        parent->SetSizer( item0 );
        if (call_fit)
        {
            item0->Fit( parent );
            item0->SetSizeHints( parent );
        }
    }
    
    return item0;
}

wxSizer *quick_connnect_edit_dialog( wxWindow *parent, bool call_fit, bool set_sizer )
{
    wxBoxSizer *item0 = new wxBoxSizer( wxVERTICAL );

    wxBoxSizer *item1 = new wxBoxSizer( wxVERTICAL );

    wxStaticBox *item3 = new wxStaticBox( parent, -1, "Edit Quick Connect" );
    wxStaticBoxSizer *item2 = new wxStaticBoxSizer( item3, wxVERTICAL );

    wxStaticText *item4 = new wxStaticText( parent, ID_QCE_NAME, "Name", wxDefaultPosition, wxDefaultSize, 0 );
    item4->SetFont( wxFont( 12, wxSWISS, wxNORMAL, wxNORMAL ) );
#if defined(__WXMSW__) && !(wxCHECK_VERSION(2,3,0))
    item4->SetSize( item4->GetBestSize() );
#endif
    item2->Add( item4, 0, wxALIGN_CENTRE|wxALL, 5 );

    wxTextCtrl *item5 = new wxTextCtrl( parent, ID_TEXTCTRL, "", wxDefaultPosition, wxSize(150,-1), 0 );
    item2->Add( item5, 0, wxALIGN_CENTRE|wxALL, 5 );

    wxBoxSizer *item6 = new wxBoxSizer( wxHORIZONTAL );

    wxStaticText *item7 = new wxStaticText( parent, ID_TEXT, "Host", wxDefaultPosition, wxDefaultSize, 0 );
    item6->Add( item7, 0, wxALIGN_CENTRE|wxALL, 5 );

    wxTextCtrl *item8 = new wxTextCtrl( parent, ID_QCEHOST_TEXT, "", wxDefaultPosition, wxSize(160,-1), 0 );
    item8->SetToolTip( "The host address" );
    item6->Add( item8, 0, wxALIGN_CENTRE|wxALL, 5 );

    wxStaticText *item9 = new wxStaticText( parent, ID_TEXT, "        User", wxDefaultPosition, wxDefaultSize, 0 );
    item6->Add( item9, 0, wxALIGN_CENTRE|wxALL, 5 );

    wxTextCtrl *item10 = new wxTextCtrl( parent, ID_QCEHOST_USER, "", wxDefaultPosition, wxSize(160,-1), 0 );
    item10->SetToolTip( "Your username" );
    item6->Add( item10, 0, wxALIGN_CENTRE|wxALL, 5 );

    item2->Add( item6, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );

    wxBoxSizer *item11 = new wxBoxSizer( wxHORIZONTAL );

    wxStaticText *item12 = new wxStaticText( parent, ID_TEXT, "Port ", wxDefaultPosition, wxDefaultSize, 0 );
    item11->Add( item12, 0, wxALIGN_CENTRE|wxALL, 5 );

    wxString strs13[] =
    {
        "21"
    };
    wxComboBox *item13 = new wxComboBox( parent, ID_QCEPORT_COMBO, "", wxDefaultPosition, wxSize(160,-1), 1, strs13, wxCB_DROPDOWN );
    item13->SetToolTip( "The port to connect to, usually 21" );
    item11->Add( item13, 0, wxALIGN_CENTRE|wxALL, 5 );

    wxStaticText *item14 = new wxStaticText( parent, ID_TEXT, "Password", wxDefaultPosition, wxDefaultSize, 0 );
    item11->Add( item14, 0, wxALIGN_CENTRE|wxALL, 5 );

    wxTextCtrl *item15 = new wxTextCtrl( parent, ID_QCEHOST_PASSWORD, "", wxDefaultPosition, wxSize(160,-1), 0 );
    item15->SetToolTip( "Your password" );
    item11->Add( item15, 0, wxALIGN_CENTRE|wxALL, 5 );

    item2->Add( item11, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );

    item1->Add( item2, 0, wxALIGN_CENTRE|wxALL, 5 );

    wxBoxSizer *item16 = new wxBoxSizer( wxHORIZONTAL );

    wxButton *item17 = new wxButton( parent, ID_QCEDIT_OK, "OK", wxDefaultPosition, wxDefaultSize, 0 );
    item17->SetToolTip( "Connect" );
    item16->Add( item17, 0, wxALIGN_CENTRE|wxALL, 5 );

    item16->Add( 80, 20, 0, wxALIGN_CENTRE|wxALL, 5 );

    wxButton *item18 = new wxButton( parent, ID_QCEDIT_CANCEL, "Cancel", wxDefaultPosition, wxDefaultSize, 0 );
    item18->SetToolTip( "Cancel" );
    item16->Add( item18, 0, wxALIGN_CENTRE|wxALL, 5 );

    item1->Add( item16, 0, wxALIGN_CENTRE|wxALL, 5 );

    item0->Add( item1, 0, wxALL, 5 );

    if (set_sizer)
    {
        parent->SetAutoLayout( TRUE );
        parent->SetSizer( item0 );
        if (call_fit)
        {
            item0->Fit( parent );
            item0->SetSizeHints( parent );
        }
    }
    
    return item0;
}

wxSizer *setup_dialog( wxWindow *parent, bool call_fit, bool set_sizer )
{
    wxBoxSizer *item0 = new wxBoxSizer( wxVERTICAL );

    wxStaticText *item1 = new wxStaticText( parent, ID_TEXT, "Settings", wxDefaultPosition, wxDefaultSize, 0 );
    item1->SetFont( wxFont( 12, wxSWISS, wxNORMAL, wxNORMAL ) );
#if defined(__WXMSW__) && !(wxCHECK_VERSION(2,3,0))
    item1->SetSize( item1->GetBestSize() );
#endif
    item0->Add( item1, 0, wxALIGN_CENTRE|wxALL, 5 );

    item0->Add( 10, 10, 0, wxALIGN_CENTRE|wxALL, 0 );

    wxBoxSizer *item2 = new wxBoxSizer( wxHORIZONTAL );

    wxStaticText *item3 = new wxStaticText( parent, ID_TEXT, "Programmers Editor", wxDefaultPosition, wxDefaultSize, 0 );
    item2->Add( item3, 0, wxALIGN_CENTRE|wxALL, 5 );

    wxTextCtrl *item4 = new wxTextCtrl( parent, ID_SETUP_PEDITOR_T, "", wxDefaultPosition, wxSize(150,-1), 0 );
    item2->Add( item4, 0, wxALIGN_CENTRE|wxALL, 5 );

    wxButton *item5 = new wxButton( parent, ID_SETTINGS_REGULAR_FIND, "Find", wxDefaultPosition, wxDefaultSize, 0 );
    item5->SetToolTip( "Find Programmers Editor" );
    item2->Add( item5, 0, wxALIGN_CENTRE|wxALL, 5 );

    wxButton *item6 = new wxButton( parent, ID_PREF_REGULAR_DEFAULT, "Default", wxDefaultPosition, wxDefaultSize, 0 );
    item6->SetToolTip( "Use default editor" );
    item2->Add( item6, 0, wxALIGN_CENTRE|wxALL, 5 );

    item0->Add( item2, 0, wxALIGN_CENTRE|wxALL, 5 );

    wxBoxSizer *item7 = new wxBoxSizer( wxHORIZONTAL );

    wxStaticText *item8 = new wxStaticText( parent, ID_TEXT, "Regular Editor        ", wxDefaultPosition, wxDefaultSize, 0 );
    item7->Add( item8, 0, wxALIGN_CENTRE|wxALL, 5 );

    wxTextCtrl *item9 = new wxTextCtrl( parent, ID_SETUP_REDITOR_T, "", wxDefaultPosition, wxSize(150,-1), 0 );
    item7->Add( item9, 0, wxALIGN_CENTRE|wxALL, 5 );

    wxButton *item10 = new wxButton( parent, ID_SETTINGS_FIND_PROGRAMMERS, "Find", wxDefaultPosition, wxDefaultSize, 0 );
    item7->Add( item10, 0, wxALIGN_CENTRE|wxALL, 5 );

    wxButton *item11 = new wxButton( parent, ID_SETTINGS_PROGRAMMERS_DEFAULT, "Default", wxDefaultPosition, wxDefaultSize, 0 );
    item7->Add( item11, 0, wxALIGN_CENTRE|wxALL, 5 );

    item0->Add( item7, 0, wxALIGN_CENTRE|wxALL, 5 );

    wxBoxSizer *item12 = new wxBoxSizer( wxHORIZONTAL );

    wxStaticText *item13 = new wxStaticText( parent, ID_TEXT, "Set Home", wxDefaultPosition, wxDefaultSize, 0 );
    item12->Add( item13, 0, wxALIGN_CENTRE|wxALL, 5 );

    item12->Add( 36, 20, 0, wxALIGN_CENTRE|wxALL, 5 );

    wxTextCtrl *item14 = new wxTextCtrl( parent, ID_TEXTCTRL, "", wxDefaultPosition, wxSize(150,-1), 0 );
    item12->Add( item14, 0, wxALIGN_CENTRE|wxALL, 5 );

    wxButton *item15 = new wxButton( parent, ID_SETTINGS_FIND_HOME, "Find", wxDefaultPosition, wxDefaultSize, 0 );
    item15->SetToolTip( "Find a new home, man thsi app does everything...." );
    item12->Add( item15, 0, wxALIGN_CENTRE|wxALL, 5 );

    wxButton *item16 = new wxButton( parent, ID_SETTINGS_DEFAULT_HOME, "Default", wxDefaultPosition, wxDefaultSize, 0 );
    item16->SetToolTip( "Use C:\\ for Home" );
    item12->Add( item16, 0, wxALIGN_CENTRE|wxALL, 5 );

    item0->Add( item12, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );

    wxBoxSizer *item17 = new wxBoxSizer( wxHORIZONTAL );

    wxRadioButton *item18 = new wxRadioButton( parent, ID_SETUP_QUICK_CONNECT, "Start with Quick Connect", wxDefaultPosition, wxDefaultSize, 0 );
    item17->Add( item18, 0, wxALIGN_CENTRE|wxALL, 5 );

    item17->Add( 50, 20, 0, wxALIGN_CENTRE|wxALL, 5 );

    wxRadioButton *item19 = new wxRadioButton( parent, ID_SETUP_REGULAR_CONNECT, "Start with Regular Connect", wxDefaultPosition, wxDefaultSize, 0 );
    item17->Add( item19, 0, wxALIGN_CENTRE|wxALL, 5 );

    item0->Add( item17, 0, wxALIGN_CENTRE|wxALL, 5 );

    wxStaticLine *item20 = new wxStaticLine( parent, ID_LINE, wxDefaultPosition, wxSize(430,-1), wxLI_HORIZONTAL );
    item0->Add( item20, 0, wxALIGN_CENTRE|wxALL, 5 );

    wxBoxSizer *item21 = new wxBoxSizer( wxHORIZONTAL );

    wxButton *item22 = new wxButton( parent, ID_SETTINGS_OK, "OK", wxDefaultPosition, wxDefaultSize, 0 );
    item21->Add( item22, 0, wxALIGN_CENTRE|wxALL, 5 );

    item21->Add( 110, 20, 0, wxALIGN_CENTRE|wxALL, 5 );

    wxButton *item23 = new wxButton( parent, ID_SETTINGS_CANCEL, "Cancel", wxDefaultPosition, wxDefaultSize, 0 );
    item21->Add( item23, 0, wxALIGN_CENTRE|wxALL, 5 );

    item0->Add( item21, 0, wxALIGN_CENTRE|wxALL, 5 );

    if (set_sizer)
    {
        parent->SetAutoLayout( TRUE );
        parent->SetSizer( item0 );
        if (call_fit)
        {
            item0->Fit( parent );
            item0->SetSizeHints( parent );
        }
    }
    
    return item0;
}

wxSizer *manage_quick_connects_dialog( wxWindow *parent, bool call_fit, bool set_sizer )
{
    wxBoxSizer *item0 = new wxBoxSizer( wxVERTICAL );

    wxStaticText *item1 = new wxStaticText( parent, ID_TEXT, "Manage Quick Connects", wxDefaultPosition, wxDefaultSize, 0 );
    item1->SetFont( wxFont( 12, wxSWISS, wxNORMAL, wxNORMAL ) );
#if defined(__WXMSW__) && !(wxCHECK_VERSION(2,3,0))
    item1->SetSize( item1->GetBestSize() );
#endif
    item0->Add( item1, 0, wxALIGN_CENTRE|wxALL, 5 );

    wxBoxSizer *item2 = new wxBoxSizer( wxHORIZONTAL );

    wxString *strs3 = (wxString*) NULL;
    wxListBox *item3 = new wxListBox( parent, ID_MANAGE_LIST, wxDefaultPosition, wxSize(170,220), 0, strs3, wxLB_SINGLE );
    item3->SetToolTip( "Your current quick connections" );
    item2->Add( item3, 0, wxALIGN_CENTRE|wxALL, 5 );

    wxBoxSizer *item4 = new wxBoxSizer( wxVERTICAL );

    wxButton *item5 = new wxButton( parent, ID_MANAGE_ADD, "Add", wxDefaultPosition, wxDefaultSize, 0 );
    item5->SetToolTip( "Add a quick connection" );
    item4->Add( item5, 0, wxALIGN_CENTRE|wxALL, 5 );

    item4->Add( 30, 50, 0, wxALIGN_CENTRE|wxALL, 0 );

    wxButton *item6 = new wxButton( parent, ID_MANAGE_REMOVE, "Remove", wxDefaultPosition, wxDefaultSize, 0 );
    item6->SetToolTip( "Remove a quick connection,duh...." );
    item4->Add( item6, 0, wxALIGN_CENTRE|wxALL, 5 );

    item2->Add( item4, 0, wxALIGN_CENTRE|wxALL, 5 );

    item0->Add( item2, 0, wxALIGN_CENTRE|wxALL, 5 );

    wxStaticLine *item7 = new wxStaticLine( parent, ID_LINE, wxDefaultPosition, wxSize(260,-1), wxLI_HORIZONTAL );
    item0->Add( item7, 0, wxALIGN_CENTRE|wxALL, 5 );

    wxBoxSizer *item8 = new wxBoxSizer( wxHORIZONTAL );

    wxButton *item9 = new wxButton( parent, ID_MANAGE_OK, "OK", wxDefaultPosition, wxDefaultSize, 0 );
    item9->SetToolTip( "Accept" );
    item8->Add( item9, 0, wxALIGN_CENTRE|wxALL, 5 );

    item8->Add( 20, 20, 0, wxALIGN_CENTRE|wxALL, 5 );

    wxButton *item10 = new wxButton( parent, ID_MANAGE_CANCEL, "Cancel", wxDefaultPosition, wxDefaultSize, 0 );
    item10->SetToolTip( "Cancel out of here" );
    item8->Add( item10, 0, wxALIGN_CENTRE|wxALL, 5 );

    item0->Add( item8, 0, wxALIGN_CENTRE|wxALL, 5 );

    if (set_sizer)
    {
        parent->SetAutoLayout( TRUE );
        parent->SetSizer( item0 );
        if (call_fit)
        {
            item0->Fit( parent );
            item0->SetSizeHints( parent );
        }
    }
    
    return item0;
}

wxSizer *help_dialog( wxWindow *parent, bool call_fit, bool set_sizer )
{
    wxBoxSizer *item0 = new wxBoxSizer( wxVERTICAL );

    wxStaticText *item1 = new wxStaticText( parent, ID_TEXT,
        "Quick Overview\n"
        "=============",
        wxDefaultPosition, wxDefaultSize, wxALIGN_CENTRE );
    item1->SetFont( wxFont( 12, wxSWISS, wxNORMAL, wxNORMAL ) );
#if defined(__WXMSW__) && !(wxCHECK_VERSION(2,3,0))
    item1->SetSize( item1->GetBestSize() );
#endif
    item1->SetToolTip( "More pseudo subliminal messages, <emacs is better than vi>" );
    item0->Add( item1, 0, wxALIGN_CENTRE|wxALL, 5 );
    wxString help = "Hello!\n\tFtpro's strong suit is its ability to download a file, let you edit with any editor of your choice, and then re-upload with just a click of a button!  I got tired of downloading the file just to make a tiny change and then re-uploading it.  Make heavy use of the right mouse button, its got lots of options and such.\n\n\t If you want the full version of Ftpro, please visit us at www.csftpro.com, it has full ability for HTML download, multi-threaded downloads, allowing you to download and still browse, and many other features not found in this evaluation version.\n\nKnown Bugs\nProblem realizing when a connection has ceased";
    wxTextCtrl *item2 = new wxTextCtrl( parent, ID_HELP_TEXT, help, wxDefaultPosition, wxSize(300,200), wxTE_MULTILINE|wxTE_READONLY );

    item2->SetFont( wxFont( 10, wxSWISS, wxNORMAL, wxBOLD ) );
    item2->SetToolTip( "Help for stuff" );
    item0->Add( item2, 0, wxALIGN_CENTRE|wxALL, 5 );

    wxStaticLine *item3 = new wxStaticLine( parent, ID_LINE, wxDefaultPosition, wxSize(290,-1), wxLI_HORIZONTAL );
    item0->Add( item3, 0, wxALIGN_CENTRE|wxALL, 5 );

    wxButton *item4 = new wxButton( parent, ID_HELP_OK, "OK", wxDefaultPosition, wxDefaultSize, 0 );
    item4->SetToolTip( "OK" );
    item0->Add( item4, 0, wxALIGN_CENTRE|wxALL, 5 );

    if (set_sizer)
    {
        parent->SetAutoLayout( TRUE );
        parent->SetSizer( item0 );
        if (call_fit)
        {
            item0->Fit( parent );
            item0->SetSizeHints( parent );
        }
    }
    
    return item0;
}

wxSizer *html_dialog( wxWindow *parent, bool call_fit, bool set_sizer )
{
    wxBoxSizer *item0 = new wxBoxSizer( wxVERTICAL );

    wxStaticText *item1 = new wxStaticText( parent, ID_TEXT, "HTML Get", wxDefaultPosition, wxDefaultSize, 0 );
    item1->SetFont( wxFont( 12, wxSWISS, wxNORMAL, wxNORMAL ) );
#if defined(__WXMSW__) && !(wxCHECK_VERSION(2,3,0))
    item1->SetSize( item1->GetBestSize() );
#endif
    item1->SetToolTip( "Subliminal messages, <send me money>" );
    item0->Add( item1, 0, wxALIGN_CENTRE|wxALL, 5 );

    wxBoxSizer *item2 = new wxBoxSizer( wxHORIZONTAL );

    wxString strs3[] =
    {
        "www.csftp.com"
    };
    wxComboBox *item3 = new wxComboBox( parent, ID_HTML_COMBO, "", wxDefaultPosition, wxSize(250,-1), 1, strs3, wxCB_DROPDOWN );
    item3->SetToolTip( "Enter url address " );
    item2->Add( item3, 0, wxALIGN_CENTRE|wxALL, 5 );

    wxButton *item4 = new wxButton( parent, ID_HTLM_GET, "Get", wxDefaultPosition, wxDefaultSize, 0 );
    item4->SetToolTip( "Go get the files" );
    item2->Add( item4, 0, wxALIGN_CENTRE|wxALL, 5 );

    item0->Add( item2, 0, wxALIGN_CENTRE|wxALL, 5 );

    wxBoxSizer *item5 = new wxBoxSizer( wxHORIZONTAL );

    wxSpinCtrl *item6 = new wxSpinCtrl( parent, ID_SPINCTRL, "0", wxDefaultPosition, wxSize(100,-1), 0, 0, 100, 0 );
    item5->Add( item6, 0, wxALIGN_CENTRE|wxALL, 5 );

    wxStaticText *item7 = new wxStaticText( parent, ID_TEXT, "Follow x levels deep", wxDefaultPosition, wxDefaultSize, 0 );
    item7->SetToolTip( "See Help for information about this" );
    item5->Add( item7, 0, wxALIGN_CENTRE|wxALL, 5 );

    item0->Add( item5, 0, wxALIGN_CENTRE|wxALL, 5 );

    wxStaticText *item8 = new wxStaticText( parent, ID_TEXT, "*See Settings->Help for info", wxDefaultPosition, wxDefaultSize, 0 );
    item0->Add( item8, 0, wxALIGN_CENTRE|wxALL, 5 );

    if (set_sizer)
    {
        parent->SetAutoLayout( TRUE );
        parent->SetSizer( item0 );
        if (call_fit)
        {
            item0->Fit( parent );
            item0->SetSizeHints( parent );
        }
    }
    
    return item0;
}

// Implement menubar functions

wxMenuBar *main_menu()
{
    wxMenuBar *item0 = new wxMenuBar( wxMB_DOCKABLE );
    
    wxMenu* item1 = new wxMenu;
    item1->Append( ID_FILE_QC, "Quick Connect\tCtrl-q", "" );
    item1->Append( ID_FILE_C, "Connect\tCtrl-c", "" );
    item1->AppendSeparator();
    item1->Append( ID_FILE_HTML, "HTML Get\tCtrl-g", "" );
    item1->AppendSeparator();
    item1->Append( ID_FILE_BEAMMEUP, "Beam me up\tCtrl-b", "" );
    item1->Append( ID_FILE_EXIT, "Exit\tCtrl-x", "" );
    item0->Append( item1, "File" );
    
    wxMenu* item2 = new wxMenu;
    item2->Append( ID_SETTINGS_SETTINGS, "Settings\tCtrl-s", "" );
    item2->Append( ID_SETTINGS_HELP, "Help\tCtrl-h", "" );
    item2->Append( ID_SETTINGS_ABOUT, "About\tCtrl-a", "" );
    item0->Append( item2, "Setup" );
    
    return item0;
}

wxMenuBar *harbor_menu()
{
    wxMenuBar *item0 = new wxMenuBar;
    
    wxMenu* item1 = new wxMenu;
    item1->Append( ID_HARBOR_CONNECT, "Connect", "" );
    item1->Append( ID_HARBOR_DISCONNCET, "Disconnect", "" );
    item1->Append( ID_HARBOR_RESET, "Reset", "" );
    item1->AppendSeparator();
    
    wxMenu* item2 = new wxMenu;
    item2->Append( ID_HARBOR_STYLE_NORMAL, "Normal\\tCtrl-n", "" );
    item2->Append( ID_HARBOR_STYLE_PROGRAMMER, "Programmer Style\\tCtrl-p", "", TRUE );
    item2->Append( ID_HARBOR_STYLE_LEET, "l33t\\tCtrl-~", "" );
    item1->Append( ID_MENU, "Style", item2 );

    
    wxMenu* item3 = new wxMenu;
    item3->Append( ID_HARBOR_ICONS_TRADITIONAL, "Traditional", "" );
    item3->Append( ID_HARBOR_ICONS_STYLISTIC, "Stylistic", "" );
    item1->Append( ID_MENU, "Icons", item3 );

    item0->Append( item1, "File" );
    
    return item0;
}

wxMenuBar *local_right_click()
{
    wxMenuBar *item0 = new wxMenuBar;
    
    wxMenu* item1 = new wxMenu;
    item1->Append( ID_LOCAL_NEW_DIRECTORY_RC, "New Directory", "" );
    item1->Append( ID_LOCAL_NEW_FILE_RC, "New File", "" );
    item1->Append( ID_LOCAL_REMOVE_RC, "Remove", "" );
    item1->AppendSeparator();
    item1->Append( ID_LOCAL_PUT_RC, "Put ", "" );
    item1->AppendSeparator();
    item1->Append( ID_LOCAL_OPENR_RC, "Open", "" );
    item1->Append( ID_MENU, "Open in Programmer's Editor", "" );
    item0->Append( item1, "Right-Click" );
    
    return item0;
}

wxMenuBar *remote_right_click()
{
    wxMenuBar *item0 = new wxMenuBar;
    
    wxMenu* item1 = new wxMenu;
    item1->Append( ID_REMOTE_NEW_DIR_RC, "New Directory", "" );
    item1->Append( ID_REMOVE_DIR_RC, "Remove", "" );
    item1->AppendSeparator();
    item1->Append( ID_REMOTE_GET_RC, "Get", "" );
    item1->AppendSeparator();
    item1->Append( ID_REMOTE_PWD_RC, "PWD", "" );
    item0->Append( item1, "Right-click" );
    
    return item0;
}

wxMenuBar *transfer_right_click()
{
    wxMenuBar *item0 = new wxMenuBar;
    
    wxMenu* item1 = new wxMenu;
    item1->Append( ID_ACTIVE_ABORT, "Abort", "" );
    item1->Append( ID_ACTIVE_RESUME, "Resume", "" );
    item0->Append( item1, "Right-click" );
    
    return item0;
}

// Implement toolbar functions

void toolbar_dialog( wxToolBar *parent )
{
    parent->SetMargins( 3, 3 );
    
    
    parent->Realize();
}

// Implement bitmap functions

// End of generated file