void usage(void) { couleur("31"); printf("Michel Dubois -- gravity3d -- (c) 2013\n\n"); couleur("0"); printf("Syntaxe: gravity3d <background color>\n"); printf("\t<background color> -> 'white' or 'black'\n"); }
void titre(const char *s, const unsigned int typeCouleur) { effacer(); couleur(typeCouleur); printf("\t\t\t\t%s\n\n", s); couleur(BLANC); }
void afficherTresorIndividuelInventaire(const unsigned int indexTresor) { coloration(inventaire.tresor[indexTresor].nom, BLEU); printf(" | vaut "); couleur(VERT); printf("%d ", inventaire.tresor[indexTresor].cout); couleur(BLANC); printf("tek"); }
void usage(void) { couleur("31"); printf("Michel Dubois -- visualize3d -- (c) 2013\n\n"); couleur("0"); printf("Syntaxe: visualize3d <filename> <background color> <color type>\n"); printf("\t<filename> -> file where the results of the algorithm will be stored\n"); printf("\t<background color> -> 'white' or 'black'\n"); printf("\t<color type> -> 'mono' or 'multi'\n"); }
void afficherInformationPersonnageSauvegarde(void) { coloration(personnage.nom, BLEU); couleur(VERT); printf("\tNiv. %d\n", personnage.niveauActuel); printf("\t %s\tLVL %d\n", personnage.race, personnage.lvl); printf("\t %s\tEXP %d/%d\n\n", personnage.metier, personnage.niveauEXPActuel, NB_EXP_NIVEAU_MAX); couleur(BLANC); }
void afficherTresorCoffre(const Coffre *coffre) { coloration("Tresor", VERT); printf(" : "); coloration(coffre->inventaire.tresor[0].nom, BLEU); printf(" | vaut "); couleur(VERT); printf("%d ", coffre->inventaire.tresor[0].cout); couleur(BLANC); printf("tek"); putchar('\n'); }
//--------------------------------------------------------------- void LonLatGrid::drawLabel(QPainter &pnt, const Projection *proj, double value, int i, int j) { int a,b,c,d; QString label; QColor couleur(10,10,10); label = label.sprintf("%g", value); QPen penText(couleur); QFont fontText = Font::getFont(FONT_LonLatGridLabel); QFontMetrics fmet(fontText); QRect rect = fmet.boundingRect(label); pnt.setPen(penText); pnt.setFont(fontText); // use a gradient, because it's a bug sometimes with solid pattern (black background) QLinearGradient gradient; int r = 255; gradient.setColorAt(0, QColor(r,r,r, 170)); gradient.setColorAt(1, QColor(r,r,r, 170)); pnt.setBrush(gradient); //--------------------------------------------------------- // Ecrit le label //--------------------------------------------------------- // rect = fmet.boundingRect(label); // rect.moveTo((a+c)/2-rect.width()/2, (b+d)/2-rect.height()/2); // pnt.drawRect(rect.x()-1, rect.y(), rect.width()+2, fmet.ascent()+2); // pnt.drawText(rect, Qt::AlignHCenter|Qt::AlignVCenter, label); }
QRgb Camera::ptScreen(Terrain &t,const Vector3D& aBox, const Vector3D& bBox, const Vector3D& s, int i, int j, int l, int h) { double x=i*2*lw/l-lw; double y=j*2*lh/h-lh; Vector3D pt =origine+(dw*w)+(x*u)+(y*v); Vector3D dir(pt-origine); dir.normalize(); Ray r(origine,dir); //std::cout << origine.x() <<", "<<origine.y()<<", "<<origine.z()<<"/"<<dir.x()<<", "<<dir.y()<<", "<<dir.z()<< std::endl; Vector3D inter; bool isBox=false; if(!r.intersectRayMarching(t,aBox,bBox,inter,isBox)) { QColor couleur(0,0,255,255); return couleur.rgb(); } //std::cout << "Touch" << std::endl; Vector3D normale; double hauteur = t.getHauteurNormale(Vector2D(inter.x(),inter.z()),normale); if(isBox) { QColor couleur(255,0,0,255); return couleur.rgb(); } //std::cout << normale.x() <<", "<<normale.y()<<", "<<normale.z()<<std::endl; double lu=normale*(-s); //std::cout <<lu<<std::endl; if(lu<0) lu=0; lu*=200.0; if(lu>255) lu=255; QColor couleur(lu,lu,lu,255); return couleur.rgb(); }
void help(void) { couleur("31"); printf("Michel Dubois -- gravity3d -- (c) 2013\n\n"); couleur("0"); printf("Key usage:\n"); printf("\t'ESC' key to quit\n"); printf("\t'UP', 'DOWN', 'LEFT' and 'RIGHT' keys to rotate manually\n"); printf("\t'r' to rotate continuously\n"); printf("\t'x' and 'X' to move to right and left\n"); printf("\t'y' and 'Y' to move to top and bottom\n"); printf("\t'z' and 'Z' to zoom in or out\n"); printf("\t'f' to switch to full screen\n"); printf("\t'p' to take a screenshot\n"); printf("\t'd' to display axe or not\n"); printf("\t't' to display selected planet trace or not\n"); printf("\t'a' to display trace of all planets\n"); printf("Mouse usage:\n"); printf("\t'LEFT CLICK' to to select a planet\n"); printf("\n"); }
/** * \fn void show_laby(int** laby, int w, int h) * \brief Fonction d'affichage du labyrinthe * \param laby adresse du labyrinthe * \param w taille en largeur du labyrinthe * \param h taille en hauteur du labyrinthe * \return rien * rappel du contenu possible du labyrinthe: * 0 : vide * 1 : mur * 2 : bord * 3 : joueur * 4 : ia */ void show_laby(int** laby, int w, int h) { int i,j; for(i=0 ; i<h ; i++) { for(j=0 ; j<w ; j++) { if(laby[i][j]==0) { //couleur("40"); printf(" "); } else if(laby[i][j]==1) { couleur("47"); printf(" "); } else if(laby[i][j]==2) { couleur("47"); printf(" "); } else if(laby[i][j]==3) { couleur("42"); printf(" "); } else if(laby[i][j]==4) { couleur("41"); printf("1"); } else if(laby[i][j]==5) { couleur("43"); printf("2"); } couleur("0"); } printf("\n"); } }
void setcolor(int c) { if (nocolor!=c) { color=couleur(c); nocolor=c; SelectObject(hdcm,holdbrush); DeleteObject(hbrush); hbrush=CreateSolidBrush(color); SelectObject(hdcm,hbrush); } }
void afficher_matrice(int matrice[N+2][N+2], int type) { /* * Affiche la matrice demandée, en fonction de son type (matrice de cellules ou de voisins), avec des couleurs. Nécessite la matrice, son tyoe, et ne renvoie rien */ int i, j; if(type == 1) { //Cellules for(i = 0; i < N+2; i++) { for(j = 0; j < N+2; j++) { if(matrice[i][j]) { couleur("34"); } else { couleur("37"); } printf("%i ", matrice[i][j]); } printf("\n"); } } if(type == 2) { //Voisins for(i = 0; i < N+2; i++) { for(j = 0; j < N+2; j++) { switch(matrice[i][j]) { case 0 : couleur("37"); break; case 2 : case 3 : couleur("32"); break; default : couleur("31"); break; } printf("%i ", matrice[i][j]); } printf("\n"); } } couleur("37"); printf("\n"); printf("\n"); }
/** * \fn void show_freq(int** freq, int w, int h, int total_deplacement) * \brief Fonction d'affichage des frequences d'apparition de l'ia par case * \param freq adresse de la matrice des frequences * \param w taille en largeur du labyrinthe * \param h taille en hauteur du labyrinthe * \param total_deplacement c'est le nombre de déplacement déjà effectué par l'ia * \return rien */ void show_freq(int** freq, int w, int h, int total_deplacement) { double seuil_bleu = 0.15; double seuil_vert = 0.30; double seuil_orange = 0.50; int i,j; for(i=0 ; i<h ; i++) { for(j=0 ; j<w ; j++) { if((freq[i][j]==-2)) { couleur("40"); printf(" "); } else if(freq[i][j]==-1) { couleur("40"); printf(" "); } else if(freq[i][j]==0) { printf(" "); } else if( (( (double)freq[i][j])/total_deplacement) <= seuil_bleu/100) { couleur("46"); printf(" "); } else if( (( (double)freq[i][j])/total_deplacement) <= seuil_vert/100) { couleur("42"); printf(" "); } else if( (( (double)freq[i][j])/total_deplacement) <= seuil_orange/100) { couleur("43"); printf(" "); } else { couleur("41"); printf(" "); } couleur("0"); } printf("\n"); } }
void afficherCaracteristiqueEnnemi(const unsigned int indexEnnemi) { unsigned int nbVie; unsigned int nbDegat; unsigned int nbProtection; if(niveauActuel.estDansCaverne) { nbVie = niveauActuel.salle[niveauActuel.salleActuelle].caverne.ennemi[indexEnnemi].nbVie; nbDegat = niveauActuel.salle[niveauActuel.salleActuelle].caverne.ennemi[indexEnnemi].degatAttaque; nbProtection = niveauActuel.salle[niveauActuel.salleActuelle].caverne.ennemi[indexEnnemi].protection; } else { nbVie = niveauActuel.salle[niveauActuel.salleActuelle].ennemi[indexEnnemi].nbVie; nbDegat = niveauActuel.salle[niveauActuel.salleActuelle].ennemi[indexEnnemi].degatAttaque; nbProtection = niveauActuel.salle[niveauActuel.salleActuelle].ennemi[indexEnnemi].protection; } printf("Vie : "); couleur(BLEU); printf("%d", nbVie); couleur(BLANC); printf(" Degat : "); couleur(BLEU); printf("%d", nbDegat); couleur(BLANC); putchar('\n'); printf("Protection : "); couleur(BLEU); printf("%d", nbProtection); couleur(BLANC); putchar('\n'); }
void dessiner_pdv(pdv* pt_pdv_current, file_opener* donnees) { GdkDrawable* cartew=donnees->carte->window; if(pt_pdv_current->affichage==1) // Vérifie si le plan de vol doit être affiché { position* loc_avion=malloc(sizeof(position)); // Position_avion(donnees,pt_pdv_current,loc_avion); get_position_avion(loc_avion,pt_pdv_current,donnees->temps); loc_avion->y=conversion_lat(loc_avion->y,donnees)*donnees->ycarte; loc_avion->x=conversion_longitude(loc_avion->x,donnees)*donnees->xcarte; // On change la couleur du tracé pour le carré et le nom de l'avion couleur(donnees->gc,donnees->c,donnees->couleur_avion); gdk_draw_rectangle(cartew,donnees->gc,TRUE,loc_avion->x-2,loc_avion->y-2,5,5); gdk_draw_string(cartew,donnees->font,donnees->gc,loc_avion->x+3,loc_avion->y-2,pt_pdv_current->nom); couleur(donnees->gc,donnees->c,10); int x1=-9,x2=0,y1=0,y2=0; // Variables de stockage des coordonnées pour les points de passage pt_pass * pt_pass_current = pt_pdv_current->pass_debut; if(x1==-9 && pt_pass_current->ptsuiv!=NULL) // Cas du premier point { if(pt_pass_current->type_point==0) // Si le point est un aérodrome { aerodrome * pass_aerodrome = pt_pass_current->point; //printf("\n AERODROME 1 \n"); x1=conversion_longitude(pass_aerodrome->longitude,donnees)* donnees->xcarte; y1=conversion_lat(pass_aerodrome->latitude,donnees)* donnees->ycarte; // Affichage de l'aérodrome pass_aerodrome->affichage=1; dessiner_aerodromes(pass_aerodrome,donnees); } if(pt_pass_current->type_point==1) // Si le point est une balise { balise * pass_balise = pt_pass_current->point; // printf("\n BALISE 1 \n"); x1=conversion_longitude(pass_balise->longitude,donnees)* donnees->xcarte; y1=conversion_lat(pass_balise->latitude,donnees)* donnees->ycarte; // Affichage de la balise pass_balise->affichage=1; dessiner_balise(pass_balise,donnees); } if(pt_pass_current->type_point==2) // Si le point est une ptgpx { ptgpx * pass = pt_pass_current->point; // printf("\n BALISE 1 \n"); x1=conversion_longitude(pass->longitude,donnees)* donnees->xcarte; y1=conversion_lat(pass->latitude,donnees)* donnees->ycarte; // Affichage de la balise //gdk_draw_string(carte,font,gc, x1 + 2,y1 + 7, pass_balise->nom); gdk_draw_point(cartew,donnees->gc, x1,y1); } pt_pass_current = pt_pass_current->ptsuiv; } while(pt_pass_current->ptsuiv!=NULL) // Parcours de tous les autres points de passage { if(pt_pass_current->type_point==0) // Si le point est un aérodrome { aerodrome * pass_aerodrome = pt_pass_current->point; // printf("\n AERODROME \n"); x2=conversion_longitude(pass_aerodrome->longitude,donnees)* donnees->xcarte; y2=conversion_lat(pass_aerodrome->latitude,donnees)* donnees->ycarte; // Affichage de l'aerodrome pass_aerodrome->affichage=1; dessiner_aerodromes(pass_aerodrome,donnees); } if(pt_pass_current->type_point==1) // Si le point est une balise { balise * pass_balise = pt_pass_current->point; // printf("\n BALISE \n"); x2=conversion_longitude(pass_balise->longitude,donnees)* donnees->xcarte; y2=conversion_lat(pass_balise->latitude,donnees)* donnees->ycarte; // Affichage de la balise pass_balise->affichage=1; dessiner_balise(pass_balise,donnees); } if(pt_pass_current->type_point==2) // Si le point est un ptgpx { ptgpx * pass = pt_pass_current->point; x2=conversion_longitude(pass->longitude,donnees)* donnees->xcarte; y2=conversion_lat(pass->latitude,donnees)* donnees->ycarte; // Affichage de la balise int x=conversion_longitude(pass->longitude,donnees)* donnees->xcarte; int y=conversion_lat(pass->latitude,donnees)* donnees->ycarte; //gdk_draw_string(carte,font,gc, x + 2,y + 7, pass_balise->nom); gdk_draw_point(cartew,donnees->gc, x,y); } // Une couleur différente par avion couleur(donnees->gc,donnees->c,donnees->couleur_avion); // Trace la ligne et remet la couleur normalement. gdk_draw_line(cartew, donnees->gc, x1,y1,x2,y2); couleur(donnees->gc,donnees->c,10); // Le point 2 devient le point 1 x1=x2; y1=y2; pt_pass_current = pt_pass_current->ptsuiv; } free(loc_avion); } }
void dessiner(file_opener *donnees) { GdkDrawable* cartew=donnees->carte->window; donnees->gc = gdk_gc_new (cartew); // On initialise la police et la couleur donnees->font=gdk_font_load("6x9");//6x9 - 10x20 int j; char text[5]; couleur(donnees->gc,donnees->c,-2); // On trace les parallèles for(j=35;j<=60;j+=5) { sprintf(text,"%d",j); gdk_draw_line(cartew,donnees->gc,0,conversion_lat(j,donnees)*donnees->ycarte,donnees->xcarte*3,conversion_lat(j,donnees)*donnees->ycarte); gdk_draw_string(cartew,donnees->font,donnees->gc,3,conversion_lat(j,donnees)*donnees->ycarte-5,text); } // Puis les méridiens for(j=-15;j<=20;j+=5) { sprintf(text,"%d",j); gdk_draw_line(cartew,donnees->gc,conversion_longitude(j,donnees)*donnees->xcarte,0,conversion_longitude(j,donnees)*donnees->xcarte,donnees->ycarte*3); gdk_draw_string(cartew,donnees->font,donnees->gc,conversion_longitude(j,donnees)*donnees->xcarte+5,8,text); } couleur(donnees->gc,donnees->c,10); /* ---------------------------------- CONTOUR FRANCE -------------------------------------- */ { double x1,x2,y1,y2; // On ouvre le fichier contenant les points FILE *f = fopen("contour_france.csv", "rb"); //printf("f=%p\n", f); if(f) { char buffer[1024]; while(fgets(buffer, sizeof(buffer), f)) { // On charge et on converti les points. sscanf(buffer, "%lf;%lf", &x1, &y1); x1 = conversion_longitude(x1, donnees); y1 = conversion_lat(y1, donnees); while(fgets(buffer, sizeof(buffer), f)) { // Si la ligne est "BREAK" on empeche de tracer la ligne afin de retirer les traits entre les iles if(!strcmp(buffer, "BREAK\n")) { break; } sscanf(buffer, "%lf;%lf", &x2, &y2); x2=conversion_longitude(x2, donnees); y2=conversion_lat(y2, donnees); gdk_draw_line(cartew, donnees->gc, x1*donnees->xcarte,y1*donnees->ycarte,x2*donnees->xcarte,y2*donnees->ycarte); x1=x2; y1=y2; } } fclose(f); } } // ---------------------------------- AERODROMES -------------------------------------- // Si des aérodromes sont chargé on commence l'affichage if(donnees->debutaero!=NULL) { aerodrome* pt_aero=donnees->debutaero; // Boucle pour parcourir tous les aérodromes while(pt_aero->ptsuiv!=NULL) { dessiner_aerodromes(pt_aero,donnees); pt_aero = pt_aero->ptsuiv; } } // ---------------------------------- BALISES -------------------------------------- // La structure est semblable à celle des aérodromes if(donnees->debutbalises!=NULL) { balise* pt_balise=donnees->debutbalises; while(pt_balise->ptsuiv!=NULL) { dessiner_balise(pt_balise,donnees); pt_balise = pt_balise->ptsuiv; } } // ---------------------------------- PLAN DE VOL -------------------------------------- // On initialise la couleur à 0 pour donner une couleur à chaque plan de vol donnees->couleur_avion=0; if(donnees->debutpdv!=NULL) // Rentre si un plan de vol est chargé { pdv * pt_pdv_current=donnees->debutpdv; while(pt_pdv_current!=NULL) // Parcours tous les plans de vol { dessiner_pdv(pt_pdv_current,donnees); pt_pdv_current=pt_pdv_current->ptsuiv; donnees->couleur_avion+=1; } } /* ------------------------------------ CONFLITS ---------------------------------------- */ // Si il y a des conflits if(donnees->deb_conflits!=NULL) { // On passe en couleur rouge couleur(donnees->gc,donnees->c,-3); conflit* conflit_current = donnees->deb_conflits; // Variable d'affichage si reste nul à la fin de la boucle pas de conflit int conflit_affiche = 0; // On parcours les conflits while(conflit_current->ptsuiv != NULL) { pdv* avion1 = conflit_current->pdv1; pdv* avion2 = conflit_current->pdv2; // On se situe entre le temps de début et de fin de conflit if(donnees->temps > conflit_current->temps_deb && donnees->temps < conflit_current->temps_fin) { position c0; // position au temps t if(avion1->affichage && avion2->affichage) // Les deux avions sont affichés { // Conflits affiché conflit_affiche est différent de 0 conflit_affiche++; // On met un gros carré rouge sur la position de l'avion get_position_avion(&c0,avion1,donnees->temps); gdk_draw_rectangle(cartew,donnees->gc,TRUE,conversion_longitude(c0.x,donnees)*donnees->xcarte-3,conversion_lat(c0.y,donnees)*donnees->ycarte-3,7,7); get_position_avion(&c0,avion2,donnees->temps); gdk_draw_rectangle(cartew,donnees->gc,TRUE,conversion_longitude(c0.x,donnees)*donnees->xcarte-3,conversion_lat(c0.y,donnees)*donnees->ycarte-3,7,7); // On change le label de conflit char *markup; markup = g_markup_printf_escaped ("<span foreground=\"#A00000\">%s</span>", "Conflit."); gtk_label_set_markup (GTK_LABEL (donnees->Msg_conflit), markup); g_free (markup); } } conflit_current = conflit_current->ptsuiv; } // Si aucun conflit n'est affiché on passe au label pas de conflit if(conflit_affiche==0) { char *markup; markup = g_markup_printf_escaped ("<span foreground=\"#00A000\">%s</span>", "Pas de conflit\n actuellement."); gtk_label_set_markup (GTK_LABEL (donnees->Msg_conflit), markup); g_free (markup); } // On remet en noir couleur(donnees->gc,donnees->c,10); } gdk_font_unref(donnees->font); g_object_unref (donnees->gc); }
/******************************************************************** * * * Gestion du menu * * * ********************************************************************/ boolean MenuSelect(int object, int scan, int state, int button) { int index, entree, key; if (object < 0) { /* attend qu'on relache la souris */ NoClick(); if (button < 0) { /* regarde la touche */ key = scantoascii(scan); if (key == 0) key = scan & 0xFF00; /* scan code */ else key = UpperChar(key); for (index = 0; index < NbMenus; index++) for (entree = 0; entree < MenuShortCuts[index].nb_entrees; entree++) if (MenuShortCuts[index].menu[entree].key == key && MenuShortCuts[index].menu[entree].state == state) { if (ob_isstate(Menu, MenuShortCuts[index].menuid, DISABLED) == 0 && ob_isstate(Menu, MenuShortCuts[index].menu[entree].itemid, DISABLED) == 0) { object = MenuShortCuts[index].menu[entree].itemid; index = NbMenus; } break; } } } if (object < 0) return FALSE; /* kein entsprechender Eintrag gefunden */ /* Men�punkte 'Fenster wechseln' und 'Fenster schliežen' werden inklusive der dazugeh”rigen Hotkeys automatisch verwaltet */ switch (object) { /* menu Zorg */ case INFORMATIONS: presentation(); break; /* menu Etat */ case INFORMATION: informations(Drive); break; case REPERTOIRE_LOUPE: if (ManageVFAT) open_directory_vfat(); else open_directory_short(); break; case TEST_STRUCTURE: if (ManageVFAT) structure_test_vfat(Drive); else structure_test_short(Drive); break; case STATISTIQUES: statistiques(Drive); break; case OCCUPATION: occupation(Drive); break; case TRACE_UN_FICHIER: trace_file(); break; case QUITTER: if (Reset) { if (my_alert(1, 2, X_ICN_QUESTION, Messages(MENU_1), Messages(BOOT_32)) == 0) shutdown(TRUE); } else { button = my_alert(2, 3, X_ICN_QUESTION, Messages(MENU_2), Messages(MENU_4)); if (button == 0 || button == 1 && (int)xbios(0x11) % 2) shutdown(FALSE); } break; /* menu Ouvre */ case UNITE_LOGIQUE: open_disk(); break; case OUVRE_DISQUETTE: raw_floppy(FALSE); break; case OUVRE_DISQUE_DUR: raw_hard(FALSE); break; case OUVRE_FICHIER: open_file(); break; case OUVRE_FICHIER_FS: open_file_other_fs(); break; case OUVRE_FICH_TEXTE: voir_fichier(); break; case CREER_FICHIER: creer_fichier(); break; case FERMER: fermer(Thefrontwin -> win -> handle); break; case LIRE_BOOT: lire_boot(); break; case CHARGER_BOOT: charger_boot(); break; case SAUVER_BOOT: sauver_boot(); break; case ECRIRE_BOOT: #ifdef TEST_VERSION /* relache la souris */ NoClick(); /* on attend avant de redessiner */ Event_Timer(0, 0, TRUE); my_alert(1, FAIL, X_ICN_STOP, Messages(MENU_6), NULL); #else ecrire_boot(); #endif break; /* menu Edition */ case SAUVER_SECTEUR: #ifdef TEST_VERSION /* relache la souris */ NoClick(); /* on attend avant de redessiner */ Event_Timer(0, 0, TRUE); my_alert(1, FAIL, X_ICN_STOP, Messages(MENU_6), NULL); #else save_secteur(Thefrontwin, MENU_EDITION); #endif break; case COPIER_SECTEUR: copier_tampon(Thefrontwin); break; case COLLER_SECTEUR: coller_tampon(Thefrontwin); break; case ECHANGER_TAMPON: echanger_tampon(Thefrontwin); break; case RETOUR_INITIAL: load_secteur(Thefrontwin, MENU_EDITION); break; case OUVRIR_TAMPON: ouvrir_tampon(); break; case SAUVER_TAMPON: sauver_tampon(); break; case CHARGER_TB_ASCII: ascii_tampon(); break; case EFFACER_TAMPON: effacer_tampon(); break; /* menu Structure */ case DEFRAGMENTATION: #ifdef TEST_VERSION /* relache la souris */ NoClick(); /* on attend avant de redessiner */ Event_Timer(0, 0, TRUE); my_alert(1, FAIL, X_ICN_STOP, Messages(MENU_6), NULL); #else reconnect(Drive); #endif break; case UNIQUE_LIBRE: #ifdef TEST_VERSION /* relache la souris */ NoClick(); /* on attend avant de redessiner */ Event_Timer(0, 0, TRUE); my_alert(1, FAIL, X_ICN_STOP, Messages(MENU_6), NULL); #else compresse(Drive); #endif break; case RESTO_COMPLETE: #ifdef TEST_VERSION /* relache la souris */ NoClick(); /* on attend avant de redessiner */ Event_Timer(0, 0, TRUE); my_alert(1, FAIL, X_ICN_STOP, Messages(MENU_6), NULL); #else restauration_complete(Drive); #endif break; case VIDE_CLST_LIBRES: nettoie_clusters_libres(Drive); break; case NETTOIE_REPERTOI: #ifdef TEST_VERSION /* relache la souris */ NoClick(); /* on attend avant de redessiner */ Event_Timer(0, 0, TRUE); my_alert(1, FAIL, X_ICN_STOP, Messages(MENU_6), NULL); #else nettoie_repertoire(Drive); #endif break; /* menu Deplacement */ case SECTEUR_SUIVANT: next_secteur(Thefrontwin); break; case SECTEUR_PRECEDEN: previous_secteur(Thefrontwin); break; case BLOC_SUIVANT: next_bloc(Thefrontwin); break; case BLOC_PRECEDENT: previous_bloc(Thefrontwin); break; case MARQUER_POSITION: marquer_position(Thefrontwin); break; case ALLER_MARQUE: goto_marque(Thefrontwin); break; case ALLER_SECTEUR: goto_secteur(Thefrontwin); break; case CHERCHER_CHAINE: search_first(Thefrontwin); break; case CHERCHER_NOUVEAU: search_next(Thefrontwin); break; /* menu Fenˆtres */ case CHOIX_FONTE: choix_fonte(Thefrontwin); break; case CHOIX_COULEURS: couleur(Thefrontwin); break; case TAILLE_IDEALE: taille_ideale(Thefrontwin); break; case ASCENSEURS: ascenseurs(Thefrontwin); break; case CYCLER_FENETRES: cycle_window(); break; case WINDOW_LIST_1: case WINDOW_LIST_2: case WINDOW_LIST_3: case WINDOW_LIST_4: case WINDOW_LIST_5: case WINDOW_LIST_6: case WINDOW_LIST_7: case WINDOW_LIST_8: case WINDOW_LIST_9: case WINDOW_LIST_10: { windowptr thewin; for (thewin = Firstwindow; thewin; thewin = thewin -> next) if (thewin -> menu_entry == object - WINDOW_LIST_1) make_frontwin(thewin); } break; /* menu Options */ case CONFIG_GENERALE: config_generale(); break; case CONFIG_DSK: config_disques(); break; case RACCOURCIS_CLAVI: raccourcis_clavier(); break; case DONNEES_ZORG: from_zorg_inf(TRUE); break; case DONNEES_SYSTEME: from_zorg_inf(FALSE); break; case INVALIDE_CACHE: if (Kbshift(FAIL) & 4) { int i; for (i=0; i<MAX_DEVICES; i++) change_disque(i, FALSE); } else change_disque(Drive, TRUE); break; case UPDATE_SYSTEME: if (Kbshift(FAIL) & 4) { int i; for (i=0; i<MAX_DEVICES; i++) update_systeme(i); } else update_systeme(Drive); break; case VISU_TEXTE: really_voir_fichier(Thefrontwin -> fonction.fichier.nom); break; case VISU_ASCII: secteur_ascii(Thefrontwin); break; case VISU_HEXA: secteur_hexa(Thefrontwin); break; case AFFICHE_DECIMAL: affichage_decimal(Thefrontwin); break; case FICHIER_ASSOCIE: secteur_file(Thefrontwin); break; case CURSEUR_VISIBLE: curseur_on(Thefrontwin); break; case CLIPBOARD_GEM: clipboard_gem(Thefrontwin); break; /* menu Aide */ case TABLE_ASCII: AsciiChar = m_ascii_box(AsciiChar, FALSE); break; case AIDE: aide(); break; case EXECUTER_PROG: lance_prg(); break; case RESET: if (Reset) { Reset = FALSE; menu_icheck(Menu, RESET, 0); } else { int button; button = my_alert(2, 3, X_ICN_QUESTION, Messages(MENU_3), Messages(MENU_5)); if (button == 1) shutdown(TRUE); else if (button == 0) reset(); } break; } return TRUE; } /* MenuSelect */
int main(int argc , char*argv[]) { clrscr(); couleur("30;47"); printf("+-----------------------------------------------------------------------------+\n"); printf("|");couleur("0"); couleur("42");printf(" ");couleur("0"); couleur("30;47"); printf("|\n"); printf("+");couleur("0"); couleur("30;42");printf(" Bienvenue sur le projet de complexite ");couleur("0"); couleur("30;47"); printf("+\n"); printf("|");couleur("0"); couleur("42");printf(" ");couleur("0"); couleur("30;47"); printf("|\n"); printf("+-----------------------------------------------------------------------------+\n\n\n\n");couleur("0"); if(argc<2) { couleur("31");printf("pas d'option spe \n");couleur("0"); } else { couleur("32");printf("Ouverture fichier :''");couleur("0"); couleur("31");printf("%s",argv[1]);couleur("0"); couleur("32");printf("''");couleur("0"); couleur("32;5");printf("Appuyez sur entrée\n");couleur("0"); getchar(); FILE *fp; int i; fp=NULL; if( (fp=fopen(argv[1],"r")) ) // on regarde si le fichier existe { //fp=fopen(argv[1],"r"); parser(fp,&gl,&gm); //parser le fichier fclose(fp); printf("CALCUL MAXIMUM \n"); i=maximum(&gl); printf("sortie MAX\n"); for(i=0;i<gl.n;i++) // efface le graph { supprimer_liste(&gl.a[i]); } } else { couleur("31");printf("le fichier demandé: ''");couleur("0"); couleur("31;47;5");printf("%s",argv[1]);couleur("0"); couleur("31");printf("'' n'existe pas \n");couleur("0"); } } return 0; }
ColorSelector::ColorSelector(QWidget *parent) : QWidget(parent) { m_pressedButton = false; m_preferences = PreferencesManager::getInstance(); int rouge[48] = {255,255,128,0,128,0,255,255, 255,255,128,0,0,0,128,255, 128,255,0,0,0,128,128,255, 128,255,0,0,0,0,128,128, 64,128,0,0,0,0,64,64, 0,128,128,128,64,192,64,255}; int vert[48] = {128,255,255,255,255,128,128,128, 0,255,255,255,255,128,128,0, 64,128,255,128,64,128,0,0, 0,128,128,128,0,0,0,0, 0,64,64,64,0,0,0,0, 0,128,128,128,128,192,64,255}; int bleu[48] = {128,128,128,128,255,255,192,255, 0,0,0,64,255,192,192,255, 64,64,0,128,128,255,64,128, 0,0,0,64,255,160,128,255, 0,0,0,64,128,64,64,128, 0,0,64,128,128,192,64,255}; // Creation du layout principale m_layoutSelector = new QVBoxLayout(this); m_layoutSelector->setMargin(2); m_layoutSelector->setSpacing(1); G_couleurCourante.type = ColorType; G_couleurCourante.color = QColor(rouge[40],vert[40],bleu[40]); m_currentColor = new QLabel(this); m_currentColor->setFrameStyle(QFrame::Panel | QFrame::Raised); m_currentColor->setLineWidth(1); m_currentColor->setMidLineWidth(1); m_currentColor->setFixedSize(45,40); setBackgroundColorToWidget(m_currentColor, G_couleurCourante.color); m_currentColor->setToolTip(tr("Predefine color 1")); m_currentColor->setAutoFillBackground(true); m_currentColor->setScaledContents(true); // Ajout de la couleur actuelle au layout principal m_layoutSelector->addWidget(m_currentColor); m_layoutSelector->setAlignment(m_currentColor, Qt::AlignHCenter | Qt::AlignTop); // Création du layout de la grille de couleurs predefinies m_predefinedGrid = new QGridLayout(); m_predefinedGrid->setSpacing(1); m_predefinedGrid->setMargin(1); // Ajout de la grille de couleurs predefinies dans le layout principal m_layoutSelector->addLayout(m_predefinedGrid); // Creation des widgets pour les couleurs predefinies int i=0, x=0, y=0; for (; i<48; i++) { QColor couleur(rouge[i],vert[i],bleu[i]); m_predefinedColor.append(new ColorWidget(this)); m_predefinedColor[i]->setColor(couleur); m_predefinedColor[i]->setAutoFillBackground(true); m_predefinedColor[i]->setFixedHeight(5); m_predefinedColor[i]->setToolTip(tr("Predefine color %1 ").arg(i+1)); connect(m_predefinedColor[i],SIGNAL(clicked(QColor)),this, SLOT(changeCurrentColor(QColor))); QColorDialog::setStandardColor(x*6+y, couleur.rgb()); m_predefinedGrid->addWidget(m_predefinedColor[i], y, x); x++; y = x>=8?y+1:y; x = x>=8?0:x; } // Ajout d'un separateur entre les couleurs predefinies et les couleurs personnelles m_separator1 = new QWidget(this); m_separator1->setMaximumHeight(2); m_layoutSelector->addWidget(m_separator1); // Création du layout de la grille de couleurs personnelles m_characterGrid = new QGridLayout(); m_characterGrid->setSpacing(1); m_characterGrid->setMargin(1); // Ajout de la grille de couleurs personnelles dans le layout principal m_layoutSelector->addLayout(m_characterGrid); // Creation des widgets pour les couleurs personnelles for (i=0, x=0, y=7; i<16; i++) { // Creation d'un widget de couleur blanche m_personalColor.append(new ColorWidget(this)); connect(m_personalColor[i],SIGNAL(clicked(QColor)),this, SLOT(changeCurrentColor(QColor))); m_personalColor[i]->setAutoFillBackground(true); m_personalColor[i]->setFixedHeight(5); m_personalColor[i]->setToolTip(tr("Custom Color %1 ").arg(i+1)); // Mise a jour des couleurs personnelles de QColorDialog QColorDialog::setCustomColor(i, m_preferences->value(QString("customcolors%1").arg(i),QColor(Qt::white)).value<QColor>().rgb()); // Ajout du widget au layout m_characterGrid->addWidget(m_personalColor[i], y, x); x++; y = x>=8?y+1:y; x = x>=8?0:x; } updatePersonalColor(); // Ajout d'un separateur entre les couleurs personnelles et les couleurs speciales m_separator2 = new QWidget(this); m_separator2->setMaximumHeight(3); m_layoutSelector->addWidget(m_separator2); // Création du layout des couleurs speciales m_specialColor = new QHBoxLayout(); m_specialColor->setSpacing(1); m_specialColor->setMargin(0); // Ajout du layout des couleurs specuales dans le layout principal m_layoutSelector->addLayout(m_specialColor); // Ajout de la couleur speciale qui efface m_eraseColor = new QLabel(this); m_eraseColor->setFrameStyle(QFrame::Box | QFrame::Raised); m_eraseColor->setLineWidth(0); m_eraseColor->setMidLineWidth(1); m_eraseColor->setFixedHeight(15); m_pixelErase = new QPixmap(":/resources/icons/erase.png"); m_eraseColor->setPixmap(*m_pixelErase); setBackgroundColorToWidget(m_eraseColor,QColor(Qt::white)); m_eraseColor->setScaledContents(true); m_eraseColor->setToolTip(tr("Erase")); m_eraseColor->setAutoFillBackground(true); m_specialColor->addWidget(m_eraseColor); // Ajout de la couleur speciale qui masque m_maskColor = new QLabel(this); m_maskColor->setFrameStyle(QFrame::Box | QFrame::Raised); m_maskColor->setLineWidth(0); m_maskColor->setMidLineWidth(1); m_maskColor->setFixedHeight(15); setBackgroundColorToWidget(m_maskColor,QColor(Qt::white)); m_maskPixel = new QPixmap(":/resources/icons/hide.png"); m_maskColor->setPixmap(*m_maskPixel); m_maskColor->setScaledContents(true); m_maskColor->setAutoFillBackground(true); m_specialColor->addWidget(m_maskColor); // Ajout de la couleur speciale qui demasque m_unveilColor = new QLabel(this); m_unveilColor->setFrameStyle(QFrame::Box | QFrame::Raised); m_unveilColor->setLineWidth(0); m_unveilColor->setMidLineWidth(1); m_unveilColor->setFixedHeight(15); setBackgroundColorToWidget(m_unveilColor,QColor(Qt::white)); m_unveilPixel = new QPixmap(":/resources/icons/showMap.png"); m_unveilColor->setPixmap(*m_unveilPixel); m_unveilColor->setScaledContents(true); m_unveilColor->setAutoFillBackground(true); m_specialColor->addWidget(m_unveilColor); // Taille de la palette setFixedHeight(126); m_maskColor->installEventFilter(this); m_unveilColor->installEventFilter(this); m_eraseColor->installEventFilter(this); m_currentColor->installEventFilter(this); }
static void receive_sync_file (void *arg) { int sd; int code = 0; int port; int i; long lval; char command[SIZE]; char *sync_arg = arg; char buf[4096]; char *ep = NULL; char host_port[SIZE]; char **c = NULL; FILE *fd = NULL; SSL_CTX* ctx; SSL* ssl; c = crv_cut (sync_arg, ":"); lval = strtol(c[1], &ep, 10); if (c[0][0] == '\0' || *ep != '\0') { fprintf(stderr, "%s\n", "Sync(): Err[002] Check port on serveur_liste"); return ; } if (lval > 65535 || lval < 0) { fprintf(stderr, "%s\n", "Sync(): Err[003] Check port on serveur_liste"); return ; } port = lval; crv_strncpy (host_port, "./listing/", sizeof(host_port)); crv_strncat (host_port, c[0], sizeof(host_port)); /* put server name in host_port */ crv_strncat (host_port, ".db", sizeof(host_port)); /* add : behind server name */ fprintf (stdout, "%s", "Listing reception on "); fflush(stdout); #ifndef WIN32 couleur ("33;31"); #else couleur (12, 0); #endif fprintf (stdout, "'%s'", c[0]); fflush(stdout); #ifndef WIN32 couleur ("0"); #else couleur (15, 0); #endif fprintf (stdout, "%s\n", " is running ..."); /* SSL preliminaries */ init_OpenSSL (); seed_prng (); sd = crv_client_create(port, c[0], options.address_family); if (sd == -1) { close(sd); pthread_exit(NULL); } /* We keep the certificate and key with the context. */ ctx = setup_client_ctx (); /* TCP connection is ready. Do server side SSL. */ ssl = SSL_new (ctx); if ((ssl)==NULL) { close(sd); SSL_free (ssl); SSL_CTX_free (ctx); fprintf(stderr, "%s\n", "receive_sync_file() Err[001] Create new ssl failed"); pthread_exit(NULL); } /* connect the SSL object with a file descriptor */ code = SSL_set_fd (ssl, sd); if ( code == 0) { close(sd); SSL_free (ssl); SSL_CTX_free (ctx); fprintf(stderr, "%s\n", "receive_sync_file() Err[002] Put SSL on socket failed \n"); pthread_exit(NULL); } code = SSL_connect (ssl); if (code == 0) { close(sd); SSL_free (ssl); SSL_CTX_free (ctx); fprintf( stderr, "%s\n", "receive_sync_file(): Err[003] SSL_connect() failed"); pthread_exit (NULL); } else if (code == -1) { close(sd); SSL_free (ssl); SSL_CTX_free (ctx); fprintf( stderr, "%s\n", "receive_sync_file(): Err[004] SSL_connect() failed"); pthread_exit (NULL); } #ifndef WIN32 /* code = post_connection_check (ssl, c[0]); if (code != X509_V_OK) { fprintf (stderr, "-Error: peer certificate: %s\n", X509_verify_cert_error_string (code)); close(sd); SSL_free (ssl); SSL_CTX_free (ctx); fprintf( stderr, "%s\n", "receive_sync_file(): Err[004'] post_connection_check() failed"); pthread_exit (NULL); } */ #endif for (i = 0; c[i]; i++) crv_free(c[i]); fd = crv_fopen(host_port, "w"); if (fd == NULL) { fclose(fd); close(sd); SSL_free (ssl); SSL_CTX_free (ctx); fprintf(stderr, "%s\n", "receive_sync_file(): Err[005] crv_fopen() failed"); pthread_exit (NULL); } /* Build command -> SYNC#version */ (void)crv_strncpy(command, "SYNC#", sizeof(command)); (void)crv_strncat(command, CREUVUX_VERSION, sizeof(command)); code = SSL_write (ssl, command, (int)strlen(command)); if ( code <= 0) { fclose(fd); close(sd); SSL_free (ssl); SSL_CTX_free (ctx); fprintf(stderr, "%s\n", "receive_sync_file(): Err[006] SSL_write() failed."); pthread_exit(NULL); } code = SSL_read (ssl, buf, sizeof(buf) - 1); buf[code] = '\0'; if(!strncmp (buf, "SYNC_ACK", strlen("SYNC_ACK"))) { for (;;) { code = SSL_read (ssl, buf, sizeof (buf)); switch (SSL_get_error (ssl, code)) { case SSL_ERROR_NONE: case SSL_ERROR_ZERO_RETURN: case SSL_ERROR_WANT_READ: case SSL_ERROR_WANT_WRITE: break; default: fclose(fd); close(sd); SSL_free (ssl); SSL_CTX_free (ctx); fprintf(stderr, "0)Can't receive LISTING\n"); pthread_exit (NULL); } if (!strncmp (buf, "SYNC_END", strlen("SYNC_END"))) { break; } code = fwrite (&buf, (size_t) code, 1, fd); if (code <= 0) { fclose(fd); close(sd); SSL_free (ssl); SSL_CTX_free (ctx); fprintf(stderr, "1)Can't write LISTING file\n"); pthread_exit (NULL); } } } fclose(fd); close (sd); SSL_free (ssl); SSL_CTX_free (ctx); pthread_exit (NULL); }
void NavireGraphique::paint(QPainter *painter){ int largeur_carre = boundingRect().width(); int hauteur_carre = boundingRect().height(); if(m_navire->estHorizontale()) largeur_carre/= m_navire->getTaille(); else hauteur_carre/= m_navire->getTaille(); int x = 0, y = 0; int tmp = hauteur_carre; if (QFileInfo(m_navire->getFond() ).exists()){ // si image QImage image(m_navire->getFond()); int taille = m_navire->getTaille(); int posXI = 0, posYI = 0; // position image int divX = m_navire->estHorizontale() == true ? taille : 1; int divY = m_navire->estHorizontale() == true ? 1 : taille; for(int i = 1; i <= taille ; i++){ double opacite = (double) m_navire->getDurabiliteAt(i-1) / (double ) m_navire->getMaxDurabilite(); painter->setOpacity(opacite); if(opacite==0) dessinerCroix(painter, x,y, largeur_carre, hauteur_carre); else{ QRectF source(posXI*image.width()/divX , posYI*image.height()/divY, image.width()/divX, image.height()/divY); QRectF target(x,y, largeur_carre, hauteur_carre); painter->drawImage(target,image, source); } if(m_navire->estHorizontale()){ x+= tmp; posXI++; } else{ y+=tmp; posYI++; } } } else { // aucune image pour le navire, on affiche un fond QColor couleur(m_navire->getFond()); QBrush fond(couleur); painter->setBrush(fond); painter->setPen(Qt::NoPen); painter->setRenderHint(QPainter::Antialiasing); for(int i = 0; i < m_navire->getTaille() ; i++){ double opacite = (double) m_navire->getDurabiliteAt(i) / (double ) m_navire->getMaxDurabilite(); if(opacite==0) dessinerCroix(painter, x,y, largeur_carre, hauteur_carre); else painter->drawRoundedRect(x,y, largeur_carre, hauteur_carre , 0, 0); if(m_navire->estHorizontale()) x+= tmp; else y+=tmp; } } }