Advertisement
Guest User

Untitled

a guest
May 24th, 2018
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 10.62 KB | None | 0 0
  1. void key_event(void* d)
  2. {
  3. data_tp *data = (data_tp*)d;
  4. SDL_Event e;
  5. bool quit = false;
  6. //JA KAROCHE PROSTO VYZYVAJU FUNKCIU, KOGDA NAZMES KLAVESU ONO OTSUDAVA VYJDET
  7. //data->text_refresh && !data->plot_state - ETO OBNOVLAET PRINT JESLI TRUE
  8. //GLAVNY WHILE
  9. while(!quit && !data->text_refresh && !data->plot_state ){
  10. // WHILE TVOEHO NAZATIJA
  11. while( SDL_PollEvent( &e ) != 0 && !data->text_refresh && !data->plot_state) { //User requests quit
  12. if( e.type == SDL_QUIT ) {
  13. quit = true;
  14. } //User presses a key
  15. else if( e.type == SDL_KEYDOWN ) { //Select surfaces based on key press
  16. switch( e.key.keysym.sym ) {
  17.  
  18. case SDLK_UP:
  19. switch(data->mode){
  20. case PARAM_MODE:
  21. switch(data->underlay_mode){
  22. case 0:
  23. data->mode = (data->mode + 1) % 4;
  24. break;
  25. case 1:
  26. data->param += 0.01;
  27. break;
  28. case 2:
  29. data->param += 0.01*I;
  30. break;
  31. }
  32. break;
  33. case COLOR_MODE:
  34. switch(data->underlay_mode){
  35. case 0:
  36. data->mode = (data->mode + 1) % 4;
  37. break;
  38. case 1:
  39. data->red_param += 1;
  40. break;
  41. case 2:
  42. data->green_param += 1;
  43. break;
  44. case 3:
  45. data->blue_param += 0.1;
  46. break;
  47. }
  48. break;
  49. case POSITION_MODE:
  50. switch(data->underlay_mode){
  51. case 0:
  52. data->mode = (data->mode + 1) % 4;
  53. break;
  54. case 1:
  55. data->pos_x += 2;
  56. break;
  57. case 2:
  58. data->pos_y += 2;
  59. break;
  60. case 3:
  61. data->zoom += 0.01;
  62. break;
  63. }
  64. break;
  65. case ANIMATION_MODE:
  66. switch(data->underlay_mode){
  67. case 0 :
  68. data->mode = (data->mode + 1) % 4;
  69. break;
  70. }
  71.  
  72. break;
  73.  
  74. }
  75. if(data->mode!= ANIMATION_MODE) data->plot_state = 2;
  76. break;
  77. case SDLK_DOWN:
  78. switch(data->mode){
  79. case PARAM_MODE:
  80. switch(data->underlay_mode){
  81. case 0:
  82. data->mode = (data->mode + 3)%4;
  83. break;
  84. case 1:
  85. data->param -= 0.01;
  86. break;
  87. case 2:
  88. data->param -= 0.01*I;
  89. break;
  90. }
  91. break;
  92. case COLOR_MODE:
  93. switch(data->underlay_mode){
  94. case 0:
  95. data->mode = (data->mode + 3)%4;
  96. break;
  97. case 1:
  98. data->red_param -= 1;
  99. break;
  100. case 2:
  101. data->green_param -= 1;
  102. break;
  103. case 3:
  104. data->blue_param -= 0.1;
  105. break;
  106. }
  107. break;
  108. case POSITION_MODE:
  109. switch(data->underlay_mode){
  110. case 0:
  111. data->mode = (data->mode + 3)%4;
  112. break;
  113. case 1:
  114. data->pos_x -= 2;
  115. break;
  116. case 2:
  117. data->pos_y -= 2;
  118. break;
  119. case 3:
  120. data->zoom -= 0.01;
  121. break;
  122. }
  123. break;
  124. case ANIMATION_MODE:
  125. switch(data->underlay_mode){
  126. case 0 :
  127. data->mode = (data->mode + 3) % 4;
  128. break;
  129. }
  130.  
  131. break;
  132.  
  133. }
  134. if(data->mode!= ANIMATION_MODE) data->plot_state = 2;
  135. break;
  136. case SDLK_LEFT:
  137. switch(data->mode){
  138. case PARAM_MODE:
  139. data->underlay_mode = (data->underlay_mode + 2)%3;
  140. break;
  141. case COLOR_MODE:
  142. data->underlay_mode = (data->underlay_mode + 3)%4;
  143. break;
  144. case POSITION_MODE:
  145. data->underlay_mode = (data->underlay_mode + 3)%4;
  146. break;
  147. }
  148. if(data->mode!= ANIMATION_MODE) data->plot_state = 2;
  149. break;
  150. case SDLK_RIGHT:
  151. switch(data->mode){
  152. case PARAM_MODE:
  153. data->underlay_mode = (data->underlay_mode + 1)%3;
  154. break;
  155. case COLOR_MODE:
  156. data->underlay_mode = (data->underlay_mode + 1)%4;
  157. break;
  158. case POSITION_MODE:
  159. data->underlay_mode = (data->underlay_mode + 1)%4;
  160. break;
  161. }
  162. if(data->mode!= ANIMATION_MODE) data->plot_state = 2;
  163. break;
  164.  
  165. case SDLK_SPACE:
  166. data->plot_state = 2;
  167. data->eval = true;
  168. break;
  169. case SDLK_q:
  170. data->end = 1;
  171. break;
  172. case SDLK_KP_PLUS:
  173. data->height += 20;
  174. data->width += 20;
  175. data->eval = true;
  176. quit = true;
  177. break;
  178. case SDLK_KP_MINUS:
  179. data->height -= 20;
  180. data->width -= 20;
  181. data->eval = true;
  182. quit = true;
  183. break;
  184. case SDLK_n:
  185. data->eval = 2;
  186. quit = true;
  187. break;
  188. default:
  189.  
  190. break;
  191.  
  192. }
  193.  
  194. }
  195.  
  196. quit = quit || data->end;
  197. }
  198. quit = quit || data->end;
  199. }
  200. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement