Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<bits/stdc++.h>
- #include<SDL2/SDL.h>
- #include<SDL2/SDL_image.h>
- #include<SDL2/SDL_ttf.h>
- const int SCREEN_WIDTH = 400;
- const int SCREEN_HEIGHT = 400;
- int Font_WIDTH = 40;
- int day=1, month, year=10;
- char date[50];
- class LTexture
- {
- public:
- LTexture();
- ~LTexture();
- bool loadFromFile(std::string path);
- #if defined(_SDL_TTF_H) || defined(SDL_TTF_H)
- bool loadFromRenderedText( std::string textureText, SDL_Color textColor );
- #endif
- void free();
- void setColor(Uint8 red, Uint8 green, Uint8 blue);
- void setBlendMode(SDL_BlendMode blending);
- void setAlpha(Uint8 alpha);
- void render(int x, int y, SDL_Rect* clip = NULL, double angle = 0.0, SDL_Point* center = NULL, SDL_RendererFlip flip = SDL_FLIP_NONE );
- int getWidth();
- int getHeight();
- private:
- SDL_Texture* mTexture;
- int mWidth;
- int mHeight;
- };
- LTexture gDotTexture;
- class Dot
- {
- public:
- //The dimensions of the dot
- static const int DOT_WIDTH = 20;
- static const int DOT_HEIGHT = 20;
- //Maximum axis velocity of the dot
- static const int DOT_VEL = 10;
- //Initializes the variables
- Dot();
- //Takes key presses and adjusts the dot's velocity
- void handleEvent( SDL_Event& e );
- //Moves the dot
- void move();
- //Shows the dot on the screen
- void render();
- private:
- //The X and Y offsets of the dot
- int mPosX, mPosY;
- //The velocity of the dot
- int mVelX, mVelY;
- };
- Dot::Dot()
- {
- //Initialize the offsets
- mPosX = 0;
- mPosY = 0;
- //Initialize the velocity
- mVelX = 0;
- mVelY = 0;
- }
- bool init();
- bool loadMedia();
- void close();
- SDL_Window* main_window = NULL;
- SDL_Renderer* main_renderer = NULL;
- TTF_Font* main_font=NULL;
- LTexture mainTextTexture[50];
- LTexture Ltemp;
- LTexture indi;
- LTexture header;
- LTexture Ttemp;
- LTexture::LTexture()
- {
- mTexture = NULL;
- mWidth = 0;
- mHeight = 0;
- }
- LTexture::~LTexture()
- {
- free();
- }
- bool LTexture::loadFromFile(std:: string path)
- {
- free();
- SDL_Texture* newTexture = NULL;
- SDL_Surface* loadedSurface = IMG_Load(path.c_str());
- if(loadedSurface==NULL)
- {
- printf( "Unable to load image %s! SDL_image Error: %s\n", path.c_str(), IMG_GetError() );
- }
- else
- {
- SDL_SetColorKey(loadedSurface, SDL_TRUE, SDL_MapRGB(loadedSurface->format, 0, 0xFF, 0xFF));
- newTexture = SDL_CreateTextureFromSurface(main_renderer, loadedSurface);
- if( newTexture == NULL ) printf( "Unable to create texture from %s! SDL Error: %s\n", path.c_str(), SDL_GetError() );
- else
- {
- mWidth = loadedSurface->w;
- mHeight = loadedSurface->h;
- }
- SDL_FreeSurface(loadedSurface);
- }
- mTexture = newTexture;
- return mTexture !=NULL;
- }
- #if defined(_SDL_TTF_H) || defined(SDL_TTF_H)
- bool LTexture::loadFromRenderedText(std::string textureText, SDL_Color textColor)
- {
- free();
- SDL_Surface* textSurface = TTF_RenderText_Solid(main_font, textureText.c_str(), textColor);
- if( textSurface == NULL ) printf( "Unable to render text surface! SDL_ttf Error: %s\n", TTF_GetError() );
- else
- {
- mTexture = SDL_CreateTextureFromSurface(main_renderer, textSurface);
- if(mTexture == NULL) printf( "Unable to create texture from rendered text! SDL Error: %s\n", SDL_GetError() );
- else
- {
- mWidth = textSurface->w;
- mHeight = textSurface->h;
- }
- SDL_FreeSurface(textSurface);
- }
- return mTexture!=NULL;
- }
- #endif
- void LTexture::free()
- {
- if(mTexture!=NULL)
- {
- SDL_DestroyTexture(mTexture);
- mTexture = NULL;
- mWidth = 0;
- mHeight = 0;
- }
- }
- void LTexture::setColor(Uint8 red, Uint8 green, Uint8 blue)
- {
- SDL_SetTextureColorMod(mTexture, red, green, blue);
- }
- void LTexture::setBlendMode(SDL_BlendMode blending)
- {
- SDL_SetTextureBlendMode(mTexture, blending);
- }
- void LTexture::setAlpha(Uint8 alpha)
- {
- SDL_SetTextureAlphaMod(mTexture, alpha);
- }
- void LTexture::render(int x, int y, SDL_Rect* clip, double angle, SDL_Point* center, SDL_RendererFlip flip)
- {
- SDL_Rect renderQuad = {x,y,mWidth,mHeight};
- if(clip!=NULL)
- {
- renderQuad.w = clip->w;
- renderQuad.h = clip->h;
- }
- SDL_RenderCopyEx(main_renderer, mTexture, clip, &renderQuad, angle, center, flip);
- }
- int LTexture::getWidth()
- {
- return mWidth;
- }
- int LTexture::getHeight()
- {
- return mHeight;
- }
- bool init()
- {
- bool success = true;
- if( SDL_Init( SDL_INIT_VIDEO ) < 0 )
- {
- printf( "SDL could not initialize! SDL Error: %s\n", SDL_GetError() );
- success = false;
- }
- else
- {
- if(!SDL_SetHint(SDL_HINT_RENDER_SCALE_QUALITY,"1")) printf("Warning: Linear texture filtering not enabled!" );
- main_window = SDL_CreateWindow("100% NIGGA",0,0,SCREEN_WIDTH,SCREEN_HEIGHT,SDL_WINDOW_SHOWN);
- if(main_window==NULL)
- {
- printf( "Window could not be created! SDL Error: %s\n", SDL_GetError() );
- success = false;
- }
- else
- {
- main_renderer = SDL_CreateRenderer(main_window,-1,SDL_RENDERER_ACCELERATED | SDL_RENDERER_PRESENTVSYNC);
- if( main_renderer == NULL )
- {
- printf( "Renderer could not be created! SDL Error: %s\n", SDL_GetError() );
- success = false;
- }
- else
- {
- SDL_SetRenderDrawColor(main_renderer, 0xFF,0xFF,0xFF,0xFF);
- int imgFlags = IMG_INIT_PNG;
- if(!(IMG_Init(imgFlags)&imgFlags))
- {
- printf( "SDL_image could not initialize! SDL_image Error: %s\n", IMG_GetError() );
- success = false;
- }
- if( TTF_Init() == -1 )
- {
- printf( "SDL_ttf could not initialize! SDL_ttf Error: %s\n", TTF_GetError() );
- success = false;
- }
- }
- }
- }
- return success;
- }
- bool loadMedia()
- {
- bool success = true;
- main_font = TTF_OpenFont("boy.ttf", Font_WIDTH);
- if(main_font==NULL)
- {
- printf( "Failed to load font! SDL_ttf Error: %s\n", TTF_GetError() );
- success = false;
- }
- else
- {
- SDL_Color hColor = {0xD3,0xFF,0xCE};
- if(!header.loadFromRenderedText(date,hColor))
- {
- printf( "Failed to render text texture!\n" );
- success = false;
- }
- }
- //Load dot texture
- if( !gDotTexture.loadFromFile( "white_nigga.png" ) )
- {
- printf( "Failed to load dot texture!\n" );
- success = false;
- }
- return success;
- }
- void close()
- {
- for(int i=0; i<50; i++)
- {
- mainTextTexture[i].free();
- }
- gDotTexture.free();
- header.free();
- TTF_CloseFont(main_font);
- main_font = NULL;
- SDL_DestroyRenderer(main_renderer);
- main_renderer = NULL;
- SDL_DestroyWindow(main_window);
- main_window = NULL;
- TTF_Quit();
- IMG_Quit();
- SDL_Quit();
- }
- int main(int argn, char* args[])
- {
- int z=0,p=0,q,count=0,x=0,current_line=0,c=0,total_line=0,flag=0,backspace_check=0,length,side_count=0;
- int left_sign=0,tchar[100]={0},indi_xpos,indi_xpos_width[1000],final_indi_xpos,huda,left_check,middle_backspace=0;
- int right_new_line=0,left_new_line=0,previous_line_indi_xpos=0,r_length,l_length,ctrl_count=0,all_select=0;
- int scroll_count=0,max_line=0,up_sign=0,total_length=0;
- char s[1001000],v[100][2002],ctemp[1000],char_temp,stemp[1000];
- // printf("ENTER DATE. In format 11 10 2019!\n");
- // scanf("%d %d %d", &day, &month, &year);
- // if(month==1) sprintf(date, "%d th January, %d", day, year);
- // else if(month==2) sprintf(date, "%d th February, %d", day, year);
- // else if(month==3) sprintf(date, "%d th March, %d", day, year);
- // else if(month==4) sprintf(date, "%d th April, %d", day, year);
- // else if(month==5) sprintf(date, "%d th May, %d", day, year);
- // else if(month==6) sprintf(date, "%d th June, %d", day, year);
- // else if(month==7) sprintf(date, "%d th July, %d", day, year);
- // else if(month==8) sprintf(date, "%d th August, %d", day, year);
- // else if(month==9) sprintf(date, "%d th September, %d", day, year);
- // else if(month==10) sprintf(date, "%d th October, %d", day, year);
- // else if(month==11) sprintf(date, "%d th Novermber, %d", day, year);
- sprintf(date, "%d th December, %d", day, year);
- if(!init()) printf("Failed to initialize/n");
- else
- {
- if(!loadMedia()) printf("Failed to load media\n");
- else
- {
- bool quit = false;
- SDL_Event e;
- SDL_Color textColor = {0xFF,0xFF,0xFF};
- std::string inputText[50];
- std::string fulltext;
- std::string copyText[50];
- std::string sh;
- std::string itTemp;
- //for(int k=0; k<50; k++) inputText[k] = "";
- Dot dot;
- SDL_StartTextInput();
- while(!quit)
- {
- bool renderText = false;
- while(SDL_PollEvent(&e)!=0)
- {
- if(e.type == SDL_QUIT) quit = true;
- else if(e.type == SDL_KEYDOWN)
- {
- huda=1;
- //backspace key
- if( e.key.keysym.sym == SDLK_BACKSPACE )
- {
- if(all_select==1)
- {
- all_select=0;
- sh=" ";
- for(int i=0;i<=total_line;i++)
- {
- inputText[i]=sh;
- mainTextTexture[i].loadFromRenderedText(inputText[i],textColor);
- inputText[i].pop_back();
- }
- total_line=0;
- current_line=0;
- indi_xpos=0;
- }
- //first line er majh theke kichu katle last e atkai zabe
- else if(current_line==0&&indi_xpos==0&&left_sign>0);
- //normal lst line katar jonno
- else if(final_indi_xpos==0&¤t_line!=0&&total_line==current_line&&left_sign<1)
- {
- backspace_check=1;
- current_line--;
- left_sign=0;
- total_line--;
- }
- //full line er majh theke katle
- // else if(final_indi_xpos==0&&left_sign>0||final_indi_xpos==0&¤t_line<total_line)
- // {
- // fulltext="";
- // for(int i=0;i<100;i++)
- // {
- // fulltext=fulltext+inputText[i];
- // if(i==current_line-1)total_length=strlen(fulltext.c_str());
- // if(mainTextTexture[i].getWidth()<SCREEN_WIDTH-100)
- // {
- // break;
- // }
- // }
- // }
- else if(left_sign<1)
- {
- //backspace main part
- if(inputText[current_line].length()==0&¤t_line!=0)
- {
- //if(mainTextTexture[current_line-1].getWidth()>=SCREEN_WIDTH-100)backspace_check=1;
- //majher ekta line kaatle
- if(current_line<total_line)
- {
- for(int a=0;a<total_line-current_line;a++)
- {
- sh=inputText[current_line+a];
- inputText[current_line+a]=inputText[current_line+1+a];
- inputText[current_line+1+a]=sh;
- mainTextTexture[current_line+a].loadFromRenderedText( inputText[current_line+a].c_str(), textColor );
- }
- }
- if(total_line>0)total_line--;
- current_line--;
- left_sign=0;
- if(mainTextTexture[current_line].getWidth()>=SCREEN_WIDTH-100&&total_line>=0)
- {
- backspace_check=1;
- }
- renderText = false;
- mainTextTexture[current_line].loadFromRenderedText( inputText[current_line].c_str(), textColor );
- }
- //first line zodi delete dite thaki
- else if(inputText[current_line].length()==0&¤t_line==0)
- {
- if(current_line<total_line)
- {
- for(int a=0;a<total_line;a++)
- {
- sh=inputText[1+a];
- inputText[a]=inputText[1+a];
- inputText[1+a]=sh;
- mainTextTexture[a].loadFromRenderedText( inputText[current_line+a].c_str(), textColor );
- }
- }
- if(total_line>0)total_line--;
- current_line=0;
- left_sign=strlen(inputText[current_line].c_str());
- }
- //indicator er karone width bere gele overflow line theke kaTAr jonno
- else if(mainTextTexture[current_line].getWidth()>=SCREEN_WIDTH-100)
- {
- //printf("%d %d\n",current_line,mainTextTexture[current_line-1].getWidth() );
- inputText[current_line].pop_back();
- mainTextTexture[current_line].loadFromRenderedText( inputText[current_line].c_str(), textColor );
- renderText = false;
- }
- else if(inputText[current_line].length() > 0)
- {
- inputText[current_line].pop_back();
- renderText = true;
- }
- }
- else
- {
- if(final_indi_xpos==0)
- {
- current_line--;
- left_sign=0;
- if(mainTextTexture[current_line].getWidth()>=SCREEN_WIDTH-100)backspace_check=1;
- }
- else
- {
- if(mainTextTexture[current_line].getWidth()>=SCREEN_WIDTH-100)backspace_check=1;
- middle_backspace=1;
- renderText=true;
- }
- }
- // printf("%d\n",left_sign );
- }
- if(e.key.keysym.sym !=SDL_GetModState() & KMOD_CTRL)all_select=0;
- //Up key
- if( e.key.keysym.sym == SDLK_UP )
- {
- if(current_line>0)
- {
- //indicator y axis e align kora
- {
- previous_line_indi_xpos=final_indi_xpos;
- if(mainTextTexture[current_line-1].getWidth()>=SCREEN_WIDTH-100)backspace_check=1;
- current_line--;
- if(mainTextTexture[current_line].getWidth()<=previous_line_indi_xpos)left_sign=0;
- else
- {
- for(int i=0;i<strlen(inputText[current_line].c_str())-1;i++)
- {
- ctemp[i]=inputText[current_line].c_str()[i];
- ctemp[i+1]=0;
- Ltemp.loadFromRenderedText( ctemp, textColor );
- l_length=Ltemp.getWidth();
- ctemp[i+1]=inputText[current_line].c_str()[i+1];
- ctemp[i+1+1]=0;
- Ltemp.loadFromRenderedText( ctemp, textColor );
- r_length=Ltemp.getWidth();
- if(previous_line_indi_xpos>=l_length&&previous_line_indi_xpos<=r_length)
- {
- if(previous_line_indi_xpos-l_length<=r_length-previous_line_indi_xpos)
- {
- left_sign=strlen(inputText[current_line].c_str())-i-1;
- break;
- }
- else
- {
- left_sign=strlen(inputText[current_line].c_str())-i-2;
- break;
- }
- }
- }
- }
- }
- }
- else
- {
- backspace_check=1;
- current_line=0;
- }
- renderText=false;
- }
- //down key
- else if( e.key.keysym.sym == SDLK_DOWN &&inputText[current_line].length()>0)
- {
- if(current_line<total_line)
- {
- {
- previous_line_indi_xpos=final_indi_xpos;
- if(mainTextTexture[current_line+1].getWidth()>=SCREEN_WIDTH-100)backspace_check=1;
- current_line++;
- if(mainTextTexture[current_line].getWidth()<=previous_line_indi_xpos)left_sign=0;
- else
- {
- for(int i=0;i<strlen(inputText[current_line].c_str())-1;i++)
- {
- ctemp[i]=inputText[current_line].c_str()[i];
- ctemp[i+1]=0;
- Ltemp.loadFromRenderedText( ctemp, textColor );
- l_length=Ltemp.getWidth();
- ctemp[i+1]=inputText[current_line].c_str()[i+1];
- ctemp[i+1+1]=0;
- Ltemp.loadFromRenderedText( ctemp, textColor );
- r_length=Ltemp.getWidth();
- if(previous_line_indi_xpos>=l_length&&previous_line_indi_xpos<=r_length)
- {
- if(previous_line_indi_xpos-l_length<=r_length-previous_line_indi_xpos)
- {
- left_sign=strlen(inputText[current_line].c_str())-i-1;
- break;
- }
- else
- {
- left_sign=strlen(inputText[current_line].c_str())-i-2;
- break;
- }
- }
- }
- }
- }
- }
- renderText = false;
- }
- //right key
- else if( e.key.keysym.sym == SDLK_RIGHT )
- {
- if(left_sign>0)left_sign--;
- if(mainTextTexture[current_line].getWidth()>=SCREEN_WIDTH-100)
- {
- backspace_check=1;
- }
- //continuous right click
- if(left_sign<=0&¤t_line<total_line)
- {
- if(mainTextTexture[current_line].getWidth()>=SCREEN_WIDTH-100||right_new_line==1)
- {
- current_line++;
- length=strlen(inputText[current_line].c_str());
- left_sign=length;
- right_new_line=0;
- }
- else
- right_new_line=1;
- }
- }
- //left key
- else if( e.key.keysym.sym == SDLK_LEFT )
- {
- //left overflow check
- if(mainTextTexture[current_line].getWidth()>=SCREEN_WIDTH-100)
- {
- backspace_check=1;
- left_check=1;
- }
- if(indi_xpos>0)
- {
- left_sign++;
- }
- if(left_sign==length&¤t_line!=0&&left_new_line!=0)
- {
- backspace_check=1;
- current_line--;
- left_sign=0;
- length=strlen(inputText[current_line].c_str());
- left_new_line=0;
- }
- if(left_sign==length&¤t_line!=0&&left_new_line==0)
- {
- left_new_line=1;
- }
- }
- //enter key
- else if( e.key.keysym.sym == SDLK_RETURN)
- {
- //line er majhe enter dile
- if(left_sign>0)
- {
- if(left_sign==length)
- {
- total_line++;
- mainTextTexture[current_line].loadFromRenderedText( "@", textColor );
- sh=inputText[current_line];
- for(int i=current_line+1;i<=total_line;i++)
- {
- if(i!=total_line)itTemp=inputText[i];
- inputText[i]=sh;
- if(i!=total_line) sh=itTemp;
- mainTextTexture[i].loadFromRenderedText( inputText[i].c_str(), textColor );
- }
- current_line++;
- }
- else
- {
- for(int i=0;i<indi_xpos;i++)
- ctemp[i]=inputText[current_line].c_str()[i];
- ctemp[indi_xpos]=0;
- for(int i=indi_xpos;i<length;i++)
- stemp[i-indi_xpos]=inputText[current_line].c_str()[i];
- stemp[length-indi_xpos]=0;
- total_line++;
- for(int i=0;i<length;i++)
- inputText[current_line].pop_back();
- inputText[current_line]=ctemp;
- mainTextTexture[current_line].loadFromRenderedText( inputText[current_line].c_str(), textColor );
- sh=inputText[current_line+1];
- inputText[current_line+1]=stemp;
- mainTextTexture[current_line+1].loadFromRenderedText( inputText[current_line+1].c_str(), textColor );
- for(int i=current_line+2;i<=total_line;i++)
- {
- if(i!=total_line)itTemp=inputText[i];
- inputText[i]=sh;
- if(i!=total_line) sh=itTemp;
- mainTextTexture[i].loadFromRenderedText( inputText[i].c_str(), textColor );
- }
- current_line++;
- }
- }
- else
- {
- current_line++;
- total_line++;
- left_sign=0;
- }
- //jani na jhamela badhle dekhbo c++;
- if(inputText[current_line-1].length()==0)flag=1;
- //mainTextTexture[i].loadFromRenderedText( inputText[i].c_str(), textColor );
- renderText = false;
- }
- //shob select kora
- else if(e.key.keysym.sym == SDLK_a && SDL_GetModState() & KMOD_CTRL)
- {
- if(all_select==1)all_select =0;
- else
- all_select=1;
- }
- //copy something
- else if( e.key.keysym.sym == SDLK_c && SDL_GetModState() & KMOD_CTRL )
- {
- for(int i=0; i<=current_line; i++)
- {
- strcat(s,inputText[i].c_str());
- if(i!=current_line)strcat(s,"\n");
- }
- SDL_SetClipboardText(s);
- s[0]=0;
- }
- //paste something
- else if( e.key.keysym.sym == SDLK_v && SDL_GetModState() & KMOD_CTRL )
- {
- inputText[current_line] = inputText[current_line]+SDL_GetClipboardText();
- int l=strlen(inputText[current_line].c_str());
- for(int i=0;i<l;i++)stemp[i]=inputText[current_line].c_str()[i];
- sh=inputText[current_line];
- for(int i=0;i<l;i++)inputText[current_line].pop_back();
- Ltemp.loadFromRenderedText( sh, textColor );
- if(Ltemp.getWidth()>=SCREEN_WIDTH-100)
- {
- for(int i=0;i<l;i++)
- {
- if(stemp[i]=='\n')continue;
- ctemp[count]=stemp[i];
- count++;
- ctemp[count]=0;
- sh=ctemp;
- if(i==l-1)
- {
- inputText[current_line]=sh;
- mainTextTexture[current_line].loadFromRenderedText( inputText[current_line], textColor );
- }
- Ltemp.loadFromRenderedText( sh, textColor );
- if(Ltemp.getWidth()>=SCREEN_WIDTH-100)
- {
- inputText[current_line]=sh;
- mainTextTexture[current_line].loadFromRenderedText( inputText[current_line], textColor );
- current_line++;
- total_line++;
- inputText[total_line]="@";
- for(int j=total_line;j>current_line+1;j--)
- {
- sh=inputText[j];
- inputText[j]=inputText[j-1];
- inputText[j-1]=sh;
- mainTextTexture[j].loadFromRenderedText( inputText[j], textColor );
- }
- for(int j=0;j<=count;j++)sh.pop_back();
- count=0;
- //inputText[current_line].pop_back();
- }
- }
- }
- else
- {
- inputText[current_line]=sh;
- mainTextTexture[current_line].loadFromRenderedText( inputText[current_line], textColor );
- }
- renderText=false;
- }
- //newline
- if( SDL_GetModState() & KMOD_CTRL )ctrl_count=1;
- int width = mainTextTexture[current_line].getWidth();
- if(width >= SCREEN_WIDTH-100&&ctrl_count!=1)
- {
- if(backspace_check!=1)
- {
- current_line++;
- total_line++;
- }
- else
- backspace_check=0;
- renderText = true;
- }
- else
- ctrl_count=0;
- }
- else if( e.type == SDL_TEXTINPUT )
- {
- if( !( SDL_GetModState() & KMOD_CTRL && ( e.text.text[ 0 ] == 'c' || e.text.text[ 0 ] == 'C' || e.text.text[ 0 ] == 'v' || e.text.text[ 0 ] == 'V'|| e.text.text[ 0 ] == 'a' || e.text.text[ 0 ] == 'A' ) ) )
- {
- inputText[current_line] += e.text.text;
- renderText = true;
- }
- }
- //indicator
- length=strlen(inputText[current_line].c_str());
- indi_xpos=length-left_sign;
- if(indi_xpos<0)indi_xpos=0;
- for(int i=0;i<=length;i++)
- {
- if(i<indi_xpos)ctemp[i]=inputText[current_line].c_str()[i];
- stemp[i]=inputText[current_line].c_str()[i];
- }
- stemp[length+1]=0;
- ctemp[indi_xpos]=0;
- if(indi_xpos!=0)
- {
- Ltemp.loadFromRenderedText( ctemp, textColor );
- final_indi_xpos=Ltemp.getWidth();
- }
- else
- final_indi_xpos=0;
- if(huda==1)
- {
- printf("l=%d ,ix=%d ,f_ix=%d ,ls=%d ,t_l=%d, c_l=%d\n",length,indi_xpos,final_indi_xpos,left_sign,total_line,current_line);
- huda=0;
- }
- }
- if( renderText )
- {
- if( inputText[current_line] != "" )
- {
- // //longer than window_width string
- // if(x!=0)
- // {
- // x=0;
- // mainTextTexture[i].loadFromRenderedText( v[p], textColor );
- // }
- //majhkhane kichu likhle
- if(left_sign>=1)
- {
- if(middle_backspace==0&&mainTextTexture[current_line].getWidth()<SCREEN_WIDTH-100)
- {
- //ekhane ken eta disi jani na eita dile majhe kichu likhe Thikmoto kaj kore na .....left_sign++;
- for(int i=length-1;i>indi_xpos-1;i--)
- {
- char_temp=stemp[i];
- stemp[i]=stemp[i-1];
- stemp[i-1]=char_temp;
- }
- }
- else
- {
- for(int i=indi_xpos-1;i<length-1;i++)
- {
- char_temp=stemp[i];
- stemp[i]=stemp[i+1];
- stemp[i+1]=char_temp;
- }
- //left_sign--;
- }
- for(int i=0;i<=length;i++)inputText[current_line].pop_back();
- }
- inputText[current_line]=stemp;
- if(middle_backspace!=0)
- {
- middle_backspace=0;
- inputText[current_line].pop_back();
- }
- //printf("%d\n",total_line);
- mainTextTexture[current_line].loadFromRenderedText( inputText[current_line].c_str(), textColor );
- }
- else
- {
- mainTextTexture[current_line].loadFromRenderedText( " ", textColor );
- }
- }
- //enter dile space nibe
- if(flag==1)
- {
- flag=0;
- inputText[current_line-1] +="@";
- mainTextTexture[current_line-1].loadFromRenderedText( "@", textColor );
- }
- max_line=SCREEN_HEIGHT/50-2;
- if( total_line>max_line)scroll_count=total_line-max_line;
- else
- scroll_count=0;
- if(current_line<=scroll_count&&total_line!=0)up_sign=scroll_count-current_line;
- else
- up_sign=0;
- SDL_SetRenderDrawColor( main_renderer, 0x00, 0x00, 0x00, 0xFF );
- SDL_RenderClear( main_renderer );
- //for blinking indicaotr
- c++;
- if(c%70>=32)
- gDotTexture.render( final_indi_xpos,(current_line-scroll_count+up_sign)*50+50);
- if(c>70)c=0;
- header.render( 0,0);
- for(int j=0; j<=total_line-scroll_count; j++ ) mainTextTexture[j+scroll_count-up_sign].render( 0, j*50+ 50 );
- SDL_RenderPresent( main_renderer );
- }
- SDL_StopTextInput();
- }
- }
- close();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement