Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //Navegando por directorios test wxTreeITemData,wxTreeCtrl,wxImageList Villanueva
- //Existe un fichero de cabecera ArbolDirectorio.h y uno de declaraciones ArbolDirectorio.cpp
- //g++ -Wall -static-libstdc++ -std=c++11 -Wunused-but-set-variable `wx-config --cxxflags` -o ejecutable *.cpp `wx-config --libs`
- #include <wx/wx.h>
- #include <wx/msgdlg.h> //wxMessageBox
- #include <wx/menu.h> //Barra de menus
- #include <wx/imaglist.h>//wxImageList
- #include <wx/treectrl.h>
- #include <wx/dirctrl.h>
- #include <wx/treebase.h>//wxTreeItemId
- #include <wx/icon.h>
- #include <wx/gdicmn.h> //wxICON macro
- //imagenes
- #include "icono.xpm" //fichero imagen xpm
- #include "directorio.xpm" //imagen de un DIR
- #include "directorio_abierto.xpm" //imagen de un DIR Open
- #include "fichero.xpm" //imagen de un fichero
- //Declaramos la clase Aplicacion wxWidgets
- class ArbolApp:public wxApp
- {
- public:
- //Llamado al inicio
- virtual bool OnInit();
- };
- //El Frame principal derivado de wxFrame
- class Arbol:public wxFrame
- {
- public:
- Arbol(const wxString& titulo);//Constructor
- //Gestion de eventos
- void OnQuit(wxCommandEvent& event);
- void OnAbout(wxCommandEvent& event);
- private:
- //Macro .. clase para la gestion de eventos
- DECLARE_EVENT_TABLE()
- };
- class MiArbolDeDatos : public wxTreeItemData
- {
- public:
- MiArbolDeDatos(const wxString& desc):m_desc(desc){}
- const wxString& GetDesc();
- void creaArbol(wxWindow* parent);
- private:
- wxString m_desc;//variable miembro
- };
- //Aqui acaban las declaraciones , sigue el fichero de definiciones cpp
- //Navegando por directorios test wxTreeITemData,wxTreeCtrl,wxImageList Villanueva
- //Existe un fichero de cabecera ArbolDirectorio.h
- //g++ -Wall -static-libstdc++ -std=c++11 -Wunused-but-set-variable `wx-config --cxxflags` -o ejecutable *.cpp `wx-config --libs`
- #include "ArbolDirectorio.h"
- DECLARE_APP(ArbolApp)
- IMPLEMENT_APP (ArbolApp)
- bool ArbolApp::OnInit(){
- //Crea la ventana principal ,"main window"
- Arbol *frame=new Arbol(wxT("Arbol"));
- //Muestra
- frame->Show(true);
- //Arranza el bucle de eventos
- return true;
- }
- //----------------------------------------------------------------------
- //----------------------------------------------------------------------
- //Implemento la tabla de eventos de la clase Arbol
- BEGIN_EVENT_TABLE(Arbol,wxFrame)
- EVT_MENU(wxID_ABOUT,Arbol::OnAbout)
- EVT_MENU(wxID_EXIT,Arbol::OnQuit)
- END_EVENT_TABLE()
- //----------------------------------------------------------------------
- //----------------------------------------------------------------------
- ////Constructor
- Arbol::Arbol(const wxString& titulo):wxFrame(NULL,wxID_ANY,wxT("Arbol"))
- {
- //Fija el icono
- SetIcon(wxIcon("icono.xpm"));//static char * icono_xpm[]=
- //home/icaro/Bureau/c++/wxTree
- //Barra de Menus
- wxMenuBar *BarraMenu= new wxMenuBar();
- //Crea dos wxMenu que colgaran de wxMenuBar
- wxMenu *menuFichero=new wxMenu;
- wxMenu *menuAyuda=new wxMenu;
- //Asocio ID a los wxMenus
- menuFichero->Append(wxID_EXIT,wxT("&Salir"));
- menuAyuda->Append(wxID_ABOUT,wxT("&Acerca de"));
- //Finalmente los cuelgo en la barra de Menus
- BarraMenu->Append(menuFichero,wxT("&File"));
- BarraMenu->Append(menuAyuda,wxT("&Salir"));
- SetMenuBar(BarraMenu); //Utiliza una barra de menus
- MiArbolDeDatos* a=new MiArbolDeDatos(wxT("Test"));
- a->creaArbol(this);
- }
- //Implemento OnAbout y en OnQuit
- void Arbol::OnAbout(wxCommandEvent& event){
- wxString mensaje("A.Villanueva");
- wxMessageBox(mensaje,wxT("Acerca de"),wxOK|wxICON_INFORMATION,this);
- }
- void Arbol::OnQuit(wxCommandEvent& event){Close();}//Salir
- //----------------------------------------------------------------------
- //----------------------------------------------------------------------
- // El Arbol de Datos
- const wxString& MiArbolDeDatos::GetDesc(){return m_desc;}
- void MiArbolDeDatos::creaArbol(wxWindow* parent)
- {
- wxTreeCtrl* treeCtrl = new wxTreeCtrl(
- parent,
- wxID_ANY,
- wxPoint(0,0),
- wxSize(200,385),
- wxTR_HAS_BUTTONS | wxTR_SINGLE);
- //static char * imagen_xpm[] "16 15 2 1"
- wxImageList* listaImagenes= new wxImageList(16,15);
- listaImagenes->Add(directorio_xpm);
- listaImagenes->Add(directorio_abierto_xpm);
- listaImagenes->Add(fichero_xpm);
- treeCtrl->AssignImageList(listaImagenes);
- wxTreeItemId raizId=treeCtrl->AddRoot(wxT("Raiz"),0,0);
- wxTreeItemId Item1=treeCtrl->AppendItem(raizId,wxT("Fichero_1"),1,0);
- wxTreeItemId Item2=treeCtrl->AppendItem(raizId,wxT("Fichero_2"),2,0);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement