Advertisement
Guest User

Untitled

a guest
Apr 18th, 2015
192
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.29 KB | None | 0 0
  1. #include <graphics.hpp>
  2. #include <cmath>
  3. #include <vector>
  4. #include <cstdlib>
  5. #include <iostream>
  6. #include <time.h>
  7. #include <sstream>
  8. #include <fstream>
  9. using namespace genv;
  10. using namespace std;
  11. int X=1600;
  12. int Y=900;
  13.  
  14. struct widget {
  15. int x,y,hossz,szelesseg;
  16. virtual void rajzol(){};
  17. widget(){};
  18. virtual void dolgozik(){};
  19. virtual void esemenytkapok(event ev){};
  20.  
  21.  
  22. };
  23.  
  24.  
  25.  
  26. struct szovegtordelo : public widget {
  27. string s;
  28. int gorgetett=0;
  29. int maxgorgetett;
  30. szovegtordelo (int a,int b, int c){
  31. x=a;y=b;hossz=400;szelesseg=700;maxgorgetett=c;
  32.  
  33. }
  34. void esemenytkapok (event ev){
  35. if (ev.button==btn_wheelup&& gorgetett>0){
  36. gorgetett-=1;
  37.  
  38. }
  39. if (ev.button==btn_wheeldown && gorgetett<maxgorgetett ){
  40. gorgetett+=1;
  41.  
  42. }
  43.  
  44. }
  45. void rajzol (){
  46.  
  47. gout<<move_to(x,y)<<color(255,255,255)<<line(hossz,0)<<line(0,szelesseg)<<line(-hossz,0)<<line(0,-szelesseg)
  48. <<genv::move(hossz-20,0)<<color(0,255,0)<<box(20,20)<<genv::move(0,szelesseg-40)<<box(-20,20);
  49.  
  50.  
  51.  
  52.  
  53. }
  54.  
  55. void dolgozik(){
  56.  
  57. unsigned int start=0;
  58. int sorszam=1;
  59. unsigned int szamolo=1;
  60. unsigned int space=0;
  61. unsigned int spacepos=0;
  62.  
  63. cout<<maxgorgetett<<endl;
  64. for (unsigned int i=0;i<s.size();i++){
  65.  
  66. string temp=s.substr(start,szamolo);
  67. if (s[i]==' '){
  68. space=szamolo;
  69. spacepos=i;
  70. }
  71. if (gout.twidth(temp)>=hossz-25 && (sorszam-gorgetett)*15<szelesseg){
  72. if (s[i]==' '){
  73. if (sorszam-gorgetett>0){
  74. gout<<move_to(x+5,y+(sorszam-gorgetett)*15)<<color(255,255,255)<<text(s.substr(start,szamolo));
  75. }
  76. szamolo=0;
  77. sorszam+=1;
  78. start=i+1;
  79. }
  80. else {
  81.  
  82. if(sorszam-gorgetett>0){
  83. gout<<move_to(x+5,y+(sorszam-gorgetett)*15)<<color(255,255,255)<<text(s.substr(start,space));
  84. }
  85. szamolo=0;
  86. sorszam+=1;
  87. start=spacepos+1;
  88. i=start-1;
  89. }
  90. }
  91. else if (i==s.size()-1 && (sorszam-gorgetett)*15<szelesseg){
  92. gout<<move_to(x+5,y+(sorszam-gorgetett)*15)<<color(255,255,255)<<text(s.substr(start,szamolo));
  93. maxgorgetett=sorszam-46;
  94. cout<<"why"<<endl<<endl;
  95. }
  96. szamolo+=1;
  97.  
  98.  
  99. }
  100.  
  101.  
  102.  
  103. }
  104.  
  105.  
  106. };
  107.  
  108.  
  109.  
  110.  
  111.  
  112.  
  113.  
  114.  
  115.  
  116.  
  117.  
  118.  
  119.  
  120.  
  121.  
  122. void torol(){
  123. gout<<move_to(0,0)<<color(0,0,0)<<box(X-1,Y-1);
  124.  
  125. }
  126.  
  127.  
  128.  
  129. int main(){
  130. event ev;
  131. gout.open(X,Y);
  132. gin.timer(1);
  133. vector <widget*> v;
  134.  
  135. {
  136.  
  137. szovegtordelo * sz=new szovegtordelo(100,100,1000000);
  138. ifstream f("asd.txt");
  139. string s;
  140. while (f.good()){
  141. string temp;
  142. getline (f,temp);
  143. s+=temp;
  144. }
  145. sz->s=s;
  146.  
  147. v.push_back(sz);
  148. }
  149.  
  150.  
  151. while (gin>>ev && ev.keycode!=key_escape){
  152.  
  153. if (ev.type==ev_timer){
  154. for (unsigned int i=0;i<v.size();i++){
  155. v[i]->rajzol();
  156. v[i]->dolgozik();
  157.  
  158. }
  159. gout<<refresh;
  160. torol();
  161. }
  162.  
  163.  
  164. if (ev.button==btn_wheelup){
  165. for (unsigned int i=0;i<v.size();i++){
  166. v[i]->esemenytkapok(ev);
  167. }
  168.  
  169. }
  170. if (ev.button==btn_wheeldown){
  171. for (unsigned int i=0;i<v.size();i++){
  172. v[i]->esemenytkapok(ev);
  173. }
  174.  
  175. }
  176. }
  177.  
  178.  
  179.  
  180.  
  181.  
  182.  
  183.  
  184.  
  185. return 0;
  186.  
  187. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement