Accueil > > > HYPER SDL FRAMEWORK / HYPER SDL TEXT BOX
HYPER SDL FRAMEWORK / HYPER SDL TEXT BOX
Information sur la source
Description
Je vous propose un espace de programmation en c++ pour la librairie SDL (Hyper SDL Framework), qui peut vous éviter passer à chaque fois par des milliards de case et d'oublier également la fameuse boucle infini, ce qui va faciliter considérablement la lecture du code SDL par la suite, tout en préservant toute la puissance d'SDL. Suivant un certain modèle, vous pouvez créer vos propre widget et les utiliser dans le SDL Framework en toute facilité, j'ai déjà crée le premier : Hyper SDL Text Box, une zone de texte qui supporte un curseur clignotant, gère la sélection, copie du texte avec « CTRL+c », etc … Avant de lire le code source, je vous recommande fortement de consulter le document word dans le zip "Hyper SDL Framework Doc.doc"
Source
- #include "MyFramework.h"
-
- void MyFramework::SDLMainInit() {
- TTF_Init();
- atexit(TTF_Quit);
- screen=SDL_SetVideoMode(640, 420, 32,SDL_HWSURFACE|SDL_DOUBLEBUF);
- font=SDL_LoadBMP("sky.bmp");
- PositionFont.x=PositionFont.y=0;
- SDL_WM_SetCaption("SDL Framework", NULL);
- Comic=TTF_OpenFont("Comic.ttf", 20);
- Forte=TTF_OpenFont("Forte.ttf", 25);
- Hand=TTF_OpenFont("Hand.ttf", 17);
- Uint32 RougeRGB=SDL_MapRGB(screen->format, 239, 88, 80);
- Uint32 GrisRGB=SDL_MapRGB(screen->format, 200, 190, 177);
- Uint32 BleuCielRGB=SDL_MapRGB(screen->format, 81, 151, 236);
- Uint32 JauneRGB=SDL_MapRGB(screen->format, 254, 250, 90);
- Uint32 VertRGB=SDL_MapRGB(screen->format, 2, 174, 6);
- SDL_Color Bleu={213, 128, 13};
- SDL_Color Blanc={255, 255, 255};
- ZT1=new SDLTextBox(screen, 30, 30, true, 550, Blanc, Comic, GrisRGB, RougeRGB);
- ZT2=new SDLTextBox(screen, 30, 340, true, 550, Bleu, Forte, VertRGB, JauneRGB);
- ZT3=new SDLTextBox(screen, 30, 190, true, 500, Blanc, Hand, GrisRGB, BleuCielRGB);
- ZT3->setBackground("background.bmp");
- ZT3->setCursor("cursor.bmp");
- ZT1->Text="Moi, j'affiche le texte sélectionnée";
- ZT2->Text="Je suis une Text Box";
- }
- void MyFramework::SDLMainLoop() {
- SDL_FillRect(screen, 0, SDL_MapRGB(screen->format, 0, 0, 0));
- SDL_BlitSurface(font, NULL, screen, &PositionFont);
- ZT1->drawTextBox(event, freshevent);
- ZT2->drawTextBox(event, freshevent);
- ZT3->drawTextBox(event, freshevent);
- SDL_Flip(screen);
- if (ZT2->Focus) ZT1->Text=ZT2->getSelectedText();
- if (ZT3->Focus) ZT1->Text=ZT3->getSelectedText();
- }
- void MyFramework::On_SDL_KEYDOWN() {
- if (event.key.keysym.sym==SDLK_ESCAPE) {
- SDLQuit();
- }
- }
- MyFramework::~MyFramework() {
- delete ZT1;
- delete ZT2;
- delete ZT3;
- SDL_FreeSurface(font);
- SDL_FreeSurface(screen);
- free(Comic);
- free(Forte);
- free(Hand);
- }
#include "MyFramework.h"
void MyFramework::SDLMainInit() {
TTF_Init();
atexit(TTF_Quit);
screen=SDL_SetVideoMode(640, 420, 32,SDL_HWSURFACE|SDL_DOUBLEBUF);
font=SDL_LoadBMP("sky.bmp");
PositionFont.x=PositionFont.y=0;
SDL_WM_SetCaption("SDL Framework", NULL);
Comic=TTF_OpenFont("Comic.ttf", 20);
Forte=TTF_OpenFont("Forte.ttf", 25);
Hand=TTF_OpenFont("Hand.ttf", 17);
Uint32 RougeRGB=SDL_MapRGB(screen->format, 239, 88, 80);
Uint32 GrisRGB=SDL_MapRGB(screen->format, 200, 190, 177);
Uint32 BleuCielRGB=SDL_MapRGB(screen->format, 81, 151, 236);
Uint32 JauneRGB=SDL_MapRGB(screen->format, 254, 250, 90);
Uint32 VertRGB=SDL_MapRGB(screen->format, 2, 174, 6);
SDL_Color Bleu={213, 128, 13};
SDL_Color Blanc={255, 255, 255};
ZT1=new SDLTextBox(screen, 30, 30, true, 550, Blanc, Comic, GrisRGB, RougeRGB);
ZT2=new SDLTextBox(screen, 30, 340, true, 550, Bleu, Forte, VertRGB, JauneRGB);
ZT3=new SDLTextBox(screen, 30, 190, true, 500, Blanc, Hand, GrisRGB, BleuCielRGB);
ZT3->setBackground("background.bmp");
ZT3->setCursor("cursor.bmp");
ZT1->Text="Moi, j'affiche le texte sélectionnée";
ZT2->Text="Je suis une Text Box";
}
void MyFramework::SDLMainLoop() {
SDL_FillRect(screen, 0, SDL_MapRGB(screen->format, 0, 0, 0));
SDL_BlitSurface(font, NULL, screen, &PositionFont);
ZT1->drawTextBox(event, freshevent);
ZT2->drawTextBox(event, freshevent);
ZT3->drawTextBox(event, freshevent);
SDL_Flip(screen);
if (ZT2->Focus) ZT1->Text=ZT2->getSelectedText();
if (ZT3->Focus) ZT1->Text=ZT3->getSelectedText();
}
void MyFramework::On_SDL_KEYDOWN() {
if (event.key.keysym.sym==SDLK_ESCAPE) {
SDLQuit();
}
}
MyFramework::~MyFramework() {
delete ZT1;
delete ZT2;
delete ZT3;
SDL_FreeSurface(font);
SDL_FreeSurface(screen);
free(Comic);
free(Forte);
free(Hand);
}
Conclusion
Je suis ouvert à toute idée d'amélioration ...
Historique
- 06 octobre 2008 00:14:13 :
- Mise en forme du texte effectuée ...
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
problème SDL [ par Synhok ]
J'ai essayer le tut sur la librairie SDL et quand je compile avec DevC++, le linker me marque :C:\...\BIN\ld.exe: cannot open -lSDLmain: No such file
Texte & SDL en mode Video [ par Gaelle ]
Bonjour à tous,Je suis en train d'interfacer une application C à l'aide de SDL. Pour ce qui est de la gestion vidéo et évènements souris aucun problèm
librairie SDL et coonio.h [ par gloom ]
salut peuple svp qq1 opurrait t'il m'aider voila je cherche a afficher une photo sous console DOS pour cela je sait qu'il ¸faute une librairie SDL mai
SDL [ par sabinus ]
SabinusBonjour tout le monde.Je recherche la description en français de toutes les instructions et paramétres de la SDL (Windows xp).
Lib SDL -> probleme d'images [ par zmc ]
bonjour, je debute plus ou moins en SDL, et je n'ai pas réussi a afficher un sprites (animé ou non) sur une image de fond. Selon la méthode que j'empl
la librairie SDL pour dev-c++? [ par mioche ]
Bonjour,G trouver des sources interessantes concernant la librairie SDL, moins puissante mais beaucoup plus simple que directx.Cependant, je cherche t
Lire un wav avec SDL [ par jayce2703 ]
Salut tout le monde!Je n'en peux plus : Je n'arrive pas à trouver un exemple SIMPLE de lecture d'un fichier wav sous SDL. Que ce soit sur le site offi
pb avec SDL [ par kuroro ]
Alors voila , j'ai configurer Dev-C++ en mettant -lmingw32 -lSDLmain -lSDL dans l'esditeur de lien mais en voulant compiler le projet , il me met unde
initialiser SDL [ par kuroro ]
Alors voila , j'ai configurer Dev-C++ en mettant -lmingw32 -lSDLmain -lSDL dans l'esditeur de lien mais en voulant compiler le projet , il me met unde
tut SDL_net [ par D1m3x ]
Slt à tous,serait-ce possible de me dire où je peux trouver un tutorial sur la SDL_net, j'en ai un en anglais (la doc officiel) mais je ne suis pas en
|
Derniers Blogs
UNE JOLIE-HORLOGE ET PAS QU'UN PEU !UNE JOLIE-HORLOGE ET PAS QU'UN PEU ! par neodante
Pour les possesseurs d'iPhone, ça y est Bijin Tokei - qui se traduit littéralement en Français par " Jolie Horloge " - est arrivé et GRATUITEMENT s'il vous plaît ! Après la version Tokyo, Hokkaido, night club, racing, Gal, "pour les mademoiselles'", . voi...
Cliquez pour lire la suite de l'article par neodante TECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICESTECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICES par ROMELARD Fabrice
Animé par: Gaetan Bouveret et Julien Chomarat Business Connectivity Services (BCS) est dans SharePoint 2010 la version 2 de Business Data Catalog (BDC dans SharePoint 2007). Il s'agit de la solution permettant de visualiser des données provenan...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice [DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE[DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE par orion
Comme de nombreux geek, je suis un grand amateur de série TV et je rate régulièrement des épisodes de mes séries préférés. Une solution s'offre à vous avec ce merveilleux site : Tv Gorge - www.tvgorge.com Moteur de recherche à l'appui, vous pouvez ...
Cliquez pour lire la suite de l'article par orion TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010 par ROMELARD Fabrice
Animé par: Vincent Bellet et Baptiste Giraudier La BI dans SharePoint 2010, Les nouveaux services d'application dans SP2010 et SQL Server Reporting services 2008 R2. La BI dans SharePoint est généralisée pour tous afin de permettre à tous les coll...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Forum
RE : WIN APIRE : WIN API par racpp
Cliquez pour lire la suite par racpp
Logiciels
DB-MAIN (9.1.0)DB-MAIN (9.1.0)DB-MAIN is a data-modeling and data-architecture tool. It is designed to help developers and anal... Cliquez pour télécharger DB-MAIN Xilisoft DPG Convertisseur (5.1.37.0120)XILISOFT DPG CONVERTISSEUR (5.1.37.0120)Xilisoft DPG Convertisseur offre aux fans de Nintendo DS une bonne solution leur permettant de dé... Cliquez pour télécharger Xilisoft DPG Convertisseur GraphicsGale (2.01.01)GRAPHICSGALE (2.01.01)GraphicsGale est un logiciel de PixelArt avec de nombreuse fonctionnalités permettant de réalisé ... Cliquez pour télécharger GraphicsGale Architecte 3D (Platinum 2010)ARCHITECTE 3D (PLATINUM 2010)Architecte 3D Platinium vous permet de concevoir facilement les plans votre future maison, de l'é... Cliquez pour télécharger Architecte 3D TeamViewer 5 (TeamViewer 5)TEAMVIEWER 5 (TEAMVIEWER 5)Dépanner un ami,expliquer une manipulation devient un jeu d'enfant.
Prise en main d'un autre ord... Cliquez pour télécharger TeamViewer 5
|