Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void key_event(void* d)
- {
- data_tp *data = (data_tp*)d;
- SDL_Event e;
- bool quit = false;
- //JA KAROCHE PROSTO VYZYVAJU FUNKCIU, KOGDA NAZMES KLAVESU ONO OTSUDAVA VYJDET
- //data->text_refresh && !data->plot_state - ETO OBNOVLAET PRINT JESLI TRUE
- //GLAVNY WHILE
- while(!quit && !data->text_refresh && !data->plot_state ){
- // WHILE TVOEHO NAZATIJA
- while( SDL_PollEvent( &e ) != 0 && !data->text_refresh && !data->plot_state) { //User requests quit
- if( e.type == SDL_QUIT ) {
- quit = true;
- } //User presses a key
- else if( e.type == SDL_KEYDOWN ) { //Select surfaces based on key press
- switch( e.key.keysym.sym ) {
- case SDLK_UP:
- switch(data->mode){
- case PARAM_MODE:
- switch(data->underlay_mode){
- case 0:
- data->mode = (data->mode + 1) % 4;
- break;
- case 1:
- data->param += 0.01;
- break;
- case 2:
- data->param += 0.01*I;
- break;
- }
- break;
- case COLOR_MODE:
- switch(data->underlay_mode){
- case 0:
- data->mode = (data->mode + 1) % 4;
- break;
- case 1:
- data->red_param += 1;
- break;
- case 2:
- data->green_param += 1;
- break;
- case 3:
- data->blue_param += 0.1;
- break;
- }
- break;
- case POSITION_MODE:
- switch(data->underlay_mode){
- case 0:
- data->mode = (data->mode + 1) % 4;
- break;
- case 1:
- data->pos_x += 2;
- break;
- case 2:
- data->pos_y += 2;
- break;
- case 3:
- data->zoom += 0.01;
- break;
- }
- break;
- case ANIMATION_MODE:
- switch(data->underlay_mode){
- case 0 :
- data->mode = (data->mode + 1) % 4;
- break;
- }
- break;
- }
- if(data->mode!= ANIMATION_MODE) data->plot_state = 2;
- break;
- case SDLK_DOWN:
- switch(data->mode){
- case PARAM_MODE:
- switch(data->underlay_mode){
- case 0:
- data->mode = (data->mode + 3)%4;
- break;
- case 1:
- data->param -= 0.01;
- break;
- case 2:
- data->param -= 0.01*I;
- break;
- }
- break;
- case COLOR_MODE:
- switch(data->underlay_mode){
- case 0:
- data->mode = (data->mode + 3)%4;
- break;
- case 1:
- data->red_param -= 1;
- break;
- case 2:
- data->green_param -= 1;
- break;
- case 3:
- data->blue_param -= 0.1;
- break;
- }
- break;
- case POSITION_MODE:
- switch(data->underlay_mode){
- case 0:
- data->mode = (data->mode + 3)%4;
- break;
- case 1:
- data->pos_x -= 2;
- break;
- case 2:
- data->pos_y -= 2;
- break;
- case 3:
- data->zoom -= 0.01;
- break;
- }
- break;
- case ANIMATION_MODE:
- switch(data->underlay_mode){
- case 0 :
- data->mode = (data->mode + 3) % 4;
- break;
- }
- break;
- }
- if(data->mode!= ANIMATION_MODE) data->plot_state = 2;
- break;
- case SDLK_LEFT:
- switch(data->mode){
- case PARAM_MODE:
- data->underlay_mode = (data->underlay_mode + 2)%3;
- break;
- case COLOR_MODE:
- data->underlay_mode = (data->underlay_mode + 3)%4;
- break;
- case POSITION_MODE:
- data->underlay_mode = (data->underlay_mode + 3)%4;
- break;
- }
- if(data->mode!= ANIMATION_MODE) data->plot_state = 2;
- break;
- case SDLK_RIGHT:
- switch(data->mode){
- case PARAM_MODE:
- data->underlay_mode = (data->underlay_mode + 1)%3;
- break;
- case COLOR_MODE:
- data->underlay_mode = (data->underlay_mode + 1)%4;
- break;
- case POSITION_MODE:
- data->underlay_mode = (data->underlay_mode + 1)%4;
- break;
- }
- if(data->mode!= ANIMATION_MODE) data->plot_state = 2;
- break;
- case SDLK_SPACE:
- data->plot_state = 2;
- data->eval = true;
- break;
- case SDLK_q:
- data->end = 1;
- break;
- case SDLK_KP_PLUS:
- data->height += 20;
- data->width += 20;
- data->eval = true;
- quit = true;
- break;
- case SDLK_KP_MINUS:
- data->height -= 20;
- data->width -= 20;
- data->eval = true;
- quit = true;
- break;
- case SDLK_n:
- data->eval = 2;
- quit = true;
- break;
- default:
- break;
- }
- }
- quit = quit || data->end;
- }
- quit = quit || data->end;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement