/***************************************************************
 * Name:      wxkit16Main.h
 * Purpose:   Defines Application Frame
 * Author:     ()
 * Created:   2016-09-06
 * Copyright:  ()
 * License:
 **************************************************************/

#ifndef WXKIT16MAIN_H
#define WXKIT16MAIN_H
#include "vector"
#include "sstream"

//(*Headers(wxkit16Frame)
#include <wx/listctrl.h>
#include <wx/menu.h>
#include <wx/textctrl.h>
#include <wx/button.h>
#include <wx/frame.h>
#include <wx/statusbr.h>
//*)

class ember{
public:
    wxString nev;
    int kor;
};

class wxkit16Frame: public wxFrame
{
    public:

        wxkit16Frame(wxWindow* parent,wxWindowID id = -1);
        virtual ~wxkit16Frame();

        void init_list(){
            ListCtrl1->InsertColumn(0, "Név"); ///Az insertColumn első paramétere az, hogy hanyadik helyre szeretnéd az oszlopot rakni, a második a neve. FONTOS! ha nem állítjátok át a style-t wxLC_REPORT-ra, a fejlécek nem fognak megjelenni, és az egész nem fog működni.
            ListCtrl1->InsertColumn(1, "Kor");
            ListCtrl2->InsertColumn(0, "Név");
            ListCtrl2->InsertColumn(1, "Kor");
        }

        void init_vector(){
            ember temp;
            temp.nev = "Kovacs";
            temp.kor = 32;
            elemek.push_back(temp);
            temp.nev = "Szabo";
            temp.kor = 21;
            elemek.push_back(temp);
            temp.nev = "Varga";
            temp.kor = 17;
            elemek.push_back(temp);
            temp.nev = "Ötvös";
            temp.kor = 62;
            elemek.push_back(temp);
            temp.nev = "Kaszás";
            temp.kor = 44;
            elemek.push_back(temp);
        }

        void frissit(std::vector<ember> vektorom, wxListCtrl* listam){
            listam->DeleteAllItems();
            for(int i = vektorom.size()-1; i >= 0; --i){            ///Fontos! A vektor elemeinek a kiíratását hátulról kell kezdeni. Ha elölről kezded, és a lista tetejére szúrod be az új elemet, akkor fordított sorrendben lesznek az elemeid. (Az 5. elem lesz az első a listában, a 4. a második. stb.) Ami ennél fontosabb, hogy az idexeik is fordított sorrendben lesznek. A legegyszerűbb megoldás, hogy hátulról indexeled a vektort.
                long index = listam->InsertItem(0, vektorom[i].nev);
                listam->SetItem(index, 1, atir(vektorom[i].kor));
            }
        }

        wxString atir (int a){
            std::stringstream ss;
            ss << a;
            wxString s = ss.str();
            return s;
        }

        int konvertal (wxString s){
            std::stringstream ss;
            ss << s;
            int a;
            ss >> a;
            return a;
        }

    private:

        //(*Handlers(wxkit16Frame)
        void OnQuit(wxCommandEvent& event);
        void OnAbout(wxCommandEvent& event);
        void OnButtonAddClick(wxCommandEvent& event);
        void OnButtonTransferClick(wxCommandEvent& event);
        void OnListCtrl1ItemSelect(wxListEvent& event);
        void OnButtonDeleteClick(wxCommandEvent& event);
        void OnButtonSelectClick(wxCommandEvent& event);
        //*)

        //(*Identifiers(wxkit16Frame)
        static const long ID_BUTTON1;
        static const long ID_TEXTCTRL1;
        static const long ID_BUTTON2;
        static const long ID_LISTCTRL1;
        static const long ID_LISTCTRL2;
        static const long ID_TEXTCTRL2;
        static const long idMenuQuit;
        static const long idMenuAbout;
        static const long ID_STATUSBAR1;
        //*)

        //(*Declarations(wxkit16Frame)
        wxListCtrl* ListCtrl1;
        wxTextCtrl* AgeCtrl;
        wxButton* ButtonTransfer;
        wxButton* ButtonAdd;
        wxListCtrl* ListCtrl2;
        wxStatusBar* StatusBar1;
        wxTextCtrl* NameCtrl;
        //*)

        DECLARE_EVENT_TABLE()
        std::vector<ember> elemek, kiv_elemek;
        int hossz_korrekcio;
};

#endif // WXKIT16MAIN_H
