Keyboard shortcuts
[mirrors/Programs.git] / c / SDL2_putpixel_click / main.c
index 1acfdb25e67fe2e2cb4f15edce84c233f71ff458..a1955edca17e074934f2dcc1e7c8c96621eb4d29 100644 (file)
@@ -1,5 +1,6 @@
 //gcc -Wextra -pedantic-errors -o main.out main.c -lSDL2
 
+#include <unistd.h>
 #include <stdio.h>
 #include <stdlib.h>
 
@@ -28,25 +29,48 @@ int main(void) {
 
     int running = 1;
     int mouseX, mouseY;
+    Uint32 fullscreen_status = 0;
+
     while(running) {
        event.type = 0;
        if(SDL_PollEvent(&event)) {
           switch(event.type){
              case SDL_QUIT:
                 running = 0;
+                break;
+             case SDL_KEYDOWN:
+                //case SDL_KEYUP:
+                printf("Key: %d\t%d\t%d\n", event.key.keysym.scancode, event.key.keysym.sym, event.key.keysym.mod );
+
+                if(event.key.keysym.scancode == SDL_SCANCODE_F && event.key.keysym.mod == KMOD_LCTRL) {
+                     fullscreen_status = fullscreen_status ? 0 : SDL_WINDOW_FULLSCREEN_DESKTOP;
+                     SDL_SetWindowFullscreen(window, fullscreen_status);
+                }
+
+                if(event.key.keysym.scancode == SDL_SCANCODE_Q && event.key.keysym.mod == KMOD_LCTRL) {
+                     running = 0;
+                }
+
                 break;
              case SDL_MOUSEBUTTONDOWN:
                 //do whatever you want to do after a mouse button was pressed,
                 // e.g.:
                //if(event.button.button == SDL_BUTTON_LEFT) {
-                 SDL_GetMouseState(&mouseX, &mouseY);
-                 printf("Click %d, %d, %d\n", mouseX, mouseY, event.button.button);
-                 SDL_RenderDrawPoint(renderer, mouseX, mouseY);
-                 SDL_RenderPresent(renderer);
+                 while(event.type != SDL_MOUSEBUTTONUP) {
+                       SDL_GetMouseState(&mouseX, &mouseY);
+                       SDL_RenderDrawPoint(renderer, mouseX, mouseY);
+                       SDL_RenderDrawPoint(renderer, mouseX, mouseY+1);
+                       SDL_RenderDrawPoint(renderer, mouseX+1, mouseY);
+                       SDL_RenderDrawPoint(renderer, mouseX+1, mouseY+1);
+                       SDL_RenderPresent(renderer);
+                       SDL_PollEvent(&event);
+                 }
+                 printf("Click: %d\t%d\t%d\n", mouseX, mouseY, event.button.button);
                //}
                 break;
            }
         }
+       usleep(10000);
     }
     SDL_DestroyRenderer(renderer);
     SDL_DestroyWindow(window);
This page took 0.130663 seconds and 4 git commands to generate.