bool ValidadorDeCapas::validarCapasDesde(Json::Value capasParseadas){ float anchoCapas; std::string fondo; bool errorCapa = false; if (!capasParseadas || capasParseadas.size() == 0){ Log::getInstancia().logearMensajeEnModo(" [BAD] Fallo el parseo de las capas", Log::MODO_WARNING); fondo = FONDO_DEFAULT; anchoCapas = ANCHO_CAPA; errorCapa = validarCapas(&anchoCapas, &fondo, 0); if (errorCapa){ return false; } capas->push_back(new Capa(fondo, anchoCapas, 0)); Log::getInstancia().logearMensajeEnModo("Se cargaron capas y ancho por defecto", Log::MODO_WARNING); } else{//se valida que exista el campo, que sea un tipo dedato correcto. De los rangos y existencia de archivo se encarga el validador for (size_t i = 0; i < capasParseadas.size(); i++) { std::string fondo(FONDO_DEFAULT);//asigno fondo por defecto //valido que exista el campo y que tenga un string if (capasParseadas[i].isMember("imagen_fondo") && capasParseadas[i].get("imagen_fondo", FONDO_DEFAULT).isString()) fondo = (capasParseadas[i].get("imagen_fondo", FONDO_DEFAULT).asString()); else Log::getInstancia().logearMensajeEnModo("Campo Imagen_fondo incorrecto en capa " + std::to_string(i) + " , se usa capa por defecto", Log::MODO_WARNING); //la capa por defecto se asigno arriba if (capasParseadas[i].isMember("ancho") && capasParseadas[i].get("ancho", ANCHO_CAPA).isNumeric() && capasParseadas[i].get("ancho", ANCHO_CAPA) < MAX_ANCHO_ESCENARIO) anchoCapas = (capasParseadas[i].get("ancho", ANCHO_CAPA).asFloat()); else { anchoCapas = ANCHO_CAPA; Log::getInstancia().logearMensajeEnModo("Se carga ancho de capa " + std::to_string(i) + " , por defecto", Log::MODO_WARNING); } int zIndexCapa = ZINDEX_CAPA; if (!capasParseadas[i].isMember("zindex")) Log::getInstancia().logearMensajeEnModo("Se carga z-index de capa " + std::to_string(i) + " por defecto ->" + std::to_string(ZINDEX_CAPA), Log::MODO_DEBUG); else { if (capasParseadas[i].get("zindex", ZINDEX_CAPA).isNumeric() && capasParseadas[i].get("zindex", ZINDEX_CAPA) < INT_MAX && capasParseadas[i].get("zindex", ZINDEX_CAPA) > -INT_MAX) zIndexCapa = (capasParseadas[i].get("zindex", ZINDEX_CAPA).asInt()); else Log::getInstancia().logearMensajeEnModo("Se carga z-index de capa " + std::to_string(i) + " por defecto ->" + std::to_string(ZINDEX_CAPA), Log::MODO_WARNING); } errorCapa = validarCapas(&anchoCapas, &fondo, i); if (errorCapa){ return false; } capas->push_back(new Capa(fondo, anchoCapas, zIndexCapa)); } Log::getInstancia().logearMensajeEnModo("Se cargaron capas correctamente", Log::MODO_DEBUG); } return true; }
void Calendario::Render(wxDC& dc) { if(fondo==1){ wxString appdata=wxString::FromUTF8(getenv("HOME")); wxString rutapng=appdata+_("/Divel/Calendar/fondo.png"); wxBitmap fondo(rutapng,wxBITMAP_TYPE_PNG); dc.DrawText(_("Cargando fondo de pantalla..."),wxPoint(610,400)); dc.DrawBitmap(fondo,wxPoint(1,1)); } }
void VistaJuego::dibujarFondoInicio() { FondoInicio fondo(PATH_FONDO_INICIO, gRenderer); while( !jugar ) { SDL_SetRenderDrawColor( gRenderer, 0xFF, 0xFF, 0xFF, 0xFF ); //se limpia la pantalla SDL_RenderClear( gRenderer ); fondo.render(); //actualiza la pantalla SDL_RenderPresent( gRenderer ); } }
Calendario::Calendario(const wxString& title, const wxPoint& pos, const wxSize& size) : wxFrame((wxFrame *)NULL, -1, title, pos, size) { //SetIcon(wxICON(ICONOCAL)); wxMenu *archivo = new wxMenu; wxMenu* ventana=new wxMenu; wxMenu* ayuda=new wxMenu; this->SetTitle(_("Divel Calendar")); this->SetSize(800,600); ayuda->Append(ID_OPT, _("Configuracion"),_("Ajuste las configuraciones")); ayuda->Append( ID_About, _("&Acerca") ); archivo->Append(ID_ADDEVT, _("&Anadir evento")); archivo->Append(ID_ADDREC, _("A&nadir recordatorio")); //archivo->AppendSeparator(); //archivo->Append(ID_OPEN, "A&brir calendario"); //archivo->Append(ID_SAVE, "&Guardar calendario"); archivo->AppendSeparator(); archivo->Append( ID_Quit, _("&Salir") ); ventana->Append(ID_CHAT,_("&DivChat"),_("Abre la ventana de chat")); //ventana->Append(ID_EVENTS, "D&ivelEvents","Abre la ventana de eventos Divel"); //ventana->Append(ID_NOTES, "Divel &Notes","Abre la ventana de apuntes"); wxMenuBar *menuBar = new wxMenuBar; menuBar->Append( archivo, _("&Archivo") ); menuBar->Append(ventana,_("&Ventana")); menuBar->Append(ayuda,_("A&yuda")); SetMenuBar( menuBar ); //Crear Frame principal wxInitAllImageHandlers(); wxString appdata=wxString::FromUTF8(getenv("HOME")); if(wxDirExists(appdata+_("/Divel/Calendar"))==false) { wxMkdir(appdata+_("/Divel")); wxMkdir(appdata+_("/Divel/Calendar")); //wxCopyFile("./conf.cfg",appdata+"\\Divel\\Calendar\\conf.cfg"); }else if(wxFileExists(appdata+_("/Divel/Calendar/conf.cfg"))==true){ int fuente=0, color=0,posicion=0,premium=0; wxString situacionconf=appdata+_("/Divel/Calendar/conf.cfg"); ifstream configfile(situacionconf.mb_str(),ifstream::in); if(configfile.good()) { char buffer; buffer=configfile.get(); wxString conffile=wxChar(buffer); while(!configfile.eof()) { buffer=configfile.get(); if(buffer=='1'){ printf("Uno detectado"); switch(posicion){ case 0: {fondo=1;posicion++;}break; case 1: {fuente=1;posicion++;}break; case 2: {color=1;posicion++;}break; case 3: {premium=1;posicion++;}break; }} if(buffer=='0'){ printf("Cero detectado"); posicion++; } conffile+=buffer; } configfile.close(); } if(fondo==1){ } if(premium==1){ wxMessageBox(_("Bienvenido usuario premium")); } } panel=new wxPanel(this); panel->SetBackgroundColour(wxColour(_("white"))); calendar=new wxPanel(panel,1,1,600,400); //calendar->SetBackgroundColour(wxColour("red")); calendar->Connect(wxEVT_PAINT,wxPaintEventHandler(Calendario::Paint)); /*this->SetFont(wxFont(14,1,1,3,true)); this->SetFont(wxFont(12,2,1,3,true)); panel->SetFont(wxFont(12,3,1,3,true));*/ //wxFontPickerCtrl* fuentedlg=new wxFontPickerCtrl(panel,wxID_ANY,wxNullFont,wxPoint(-1,-1)); //Sistema de fuentes /* wxFontDialog* fuente=new wxFontDialog(); fuente->ShowModal(); wxFontData mifuente=fuente->GetFontData(); wxFont lafuente=mifuente.GetChosenFont(); panel->SetFont(lafuente); this->SetFont(lafuente); */ if(fondo==1){ wxBitmap fondo(appdata+_("/Divel/Calendar/fondo.png"),wxBITMAP_TYPE_PNG); wxStaticBitmap* fonpantalla=new wxStaticBitmap(panel,wxID_ANY,fondo,wxDefaultPosition,wxDefaultSize); } wxButton* anadirevt=new wxButton(panel,ID_ADDEVT,_("Anadir evento"),wxPoint(610,20),wxSize(150,50)); wxButton* anadirrec=new wxButton(panel,ID_ADDREC,_("Anadir recordatorio"),wxPoint(610,80),wxSize(150,50)); wxButton* del=new wxButton(panel,ID_DELETE,_("Borrar evento"),wxPoint(610,140),wxSize(150,50)); wxButton* ver=new wxButton(panel,ID_VER,_("Ver evento"),wxPoint(610,200),wxSize(150,50)); wxButton* divchat=new wxButton(panel,ID_CHAT,_("DivChat"),wxPoint(610,260),wxSize(150,50)); desc=new wxStaticText(panel,wxID_ANY,_("Ningun evento seleccionado"),wxPoint(1,410)); //wxPanel* calendar=new wxPanel(panel,-1,-1,600,400); /*wxMemoryDC* memoria=new wxMemoryDC; wxClientDC calendario(panel); //memoria->DrawCircle(wxPoint(1,1),wxCoord(32)); //calendario.Blit(wxPoint(-1,-1),wxSize(600,400),memoria,wxPoint(-1,-1)); calendario.DrawCircle(wxPoint(1,1),wxCoord(32));*/ wxCalendarCtrl* calendarctrl=new wxCalendarCtrl(calendar,ID_CAL,wxDefaultDateTime,wxPoint(1,1),wxSize(600,400),wxCAL_MONDAY_FIRST); Connect(ID_ADDEVT, wxEVT_COMMAND_BUTTON_CLICKED,wxCommandEventHandler(Calendario::CrearEvento)); Connect(ID_ADDREC, wxEVT_COMMAND_BUTTON_CLICKED,wxCommandEventHandler(Calendario::CrearRecordatorio)); Connect(ID_VER, wxEVT_COMMAND_BUTTON_CLICKED,wxCommandEventHandler(Calendario::VerEvento)); Connect(ID_DELETE, wxEVT_COMMAND_BUTTON_CLICKED,wxCommandEventHandler(Calendario::BorrarEvento)); Connect(ID_CHAT,wxEVT_COMMAND_BUTTON_CLICKED,wxCommandEventHandler(Calendario::DivelChat)); CreateStatusBar(); SetStatusText(_("Bienvenido a Divel Calendar")); }