Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <graphics.hpp>
- #include <cmath>
- #include <vector>
- #include <cstdlib>
- #include <iostream>
- #include <time.h>
- #include <sstream>
- #include <fstream>
- using namespace genv;
- using namespace std;
- int X=1600;
- int Y=900;
- struct widget {
- int x,y,hossz,szelesseg;
- virtual void rajzol(){};
- widget(){};
- virtual void dolgozik(){};
- virtual void esemenytkapok(event ev){};
- };
- struct szovegtordelo : public widget {
- string s;
- int gorgetett=0;
- int maxgorgetett;
- szovegtordelo (int a,int b, int c){
- x=a;y=b;hossz=400;szelesseg=700;maxgorgetett=c;
- }
- void esemenytkapok (event ev){
- if (ev.button==btn_wheelup&& gorgetett>0){
- gorgetett-=1;
- }
- if (ev.button==btn_wheeldown && gorgetett<maxgorgetett ){
- gorgetett+=1;
- }
- }
- void rajzol (){
- gout<<move_to(x,y)<<color(255,255,255)<<line(hossz,0)<<line(0,szelesseg)<<line(-hossz,0)<<line(0,-szelesseg)
- <<genv::move(hossz-20,0)<<color(0,255,0)<<box(20,20)<<genv::move(0,szelesseg-40)<<box(-20,20);
- }
- void dolgozik(){
- unsigned int start=0;
- int sorszam=1;
- unsigned int szamolo=1;
- unsigned int space=0;
- unsigned int spacepos=0;
- cout<<maxgorgetett<<endl;
- for (unsigned int i=0;i<s.size();i++){
- string temp=s.substr(start,szamolo);
- if (s[i]==' '){
- space=szamolo;
- spacepos=i;
- }
- if (gout.twidth(temp)>=hossz-25 && (sorszam-gorgetett)*15<szelesseg){
- if (s[i]==' '){
- if (sorszam-gorgetett>0){
- gout<<move_to(x+5,y+(sorszam-gorgetett)*15)<<color(255,255,255)<<text(s.substr(start,szamolo));
- }
- szamolo=0;
- sorszam+=1;
- start=i+1;
- }
- else {
- if(sorszam-gorgetett>0){
- gout<<move_to(x+5,y+(sorszam-gorgetett)*15)<<color(255,255,255)<<text(s.substr(start,space));
- }
- szamolo=0;
- sorszam+=1;
- start=spacepos+1;
- i=start-1;
- }
- }
- else if (i==s.size()-1 && (sorszam-gorgetett)*15<szelesseg){
- gout<<move_to(x+5,y+(sorszam-gorgetett)*15)<<color(255,255,255)<<text(s.substr(start,szamolo));
- maxgorgetett=sorszam-46;
- cout<<"why"<<endl<<endl;
- }
- szamolo+=1;
- }
- }
- };
- void torol(){
- gout<<move_to(0,0)<<color(0,0,0)<<box(X-1,Y-1);
- }
- int main(){
- event ev;
- gout.open(X,Y);
- gin.timer(1);
- vector <widget*> v;
- {
- szovegtordelo * sz=new szovegtordelo(100,100,1000000);
- ifstream f("asd.txt");
- string s;
- while (f.good()){
- string temp;
- getline (f,temp);
- s+=temp;
- }
- sz->s=s;
- v.push_back(sz);
- }
- while (gin>>ev && ev.keycode!=key_escape){
- if (ev.type==ev_timer){
- for (unsigned int i=0;i<v.size();i++){
- v[i]->rajzol();
- v[i]->dolgozik();
- }
- gout<<refresh;
- torol();
- }
- if (ev.button==btn_wheelup){
- for (unsigned int i=0;i<v.size();i++){
- v[i]->esemenytkapok(ev);
- }
- }
- if (ev.button==btn_wheeldown){
- for (unsigned int i=0;i<v.size();i++){
- v[i]->esemenytkapok(ev);
- }
- }
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement