Serwis Edukacyjny
Nauczycieli
w I-LO w Tarnowie

obrazek

Materiały dla uczniów liceum

  Wyjście       Spis treści       Wstecz       Dalej  

Autor artykułu: mgr Jerzy Wałaszek
Uaktualniono: 31.07.2022

©2022 mgr Jerzy Wałaszek
I LO w Tarnowie

Interfejs SDL2:

SDL_WindowEventID

SPIS TREŚCI

Rozdział jest tłumaczeniem oryginalnej instrukcji dla biblioteki SDL2.

SDL_WindowEventID

Enumeracja zdarzeń okienkowych.

Wartości

SDL_WINDOWEVENT_NONE (nigdy nieużywane).
SDL_WINDOWEVENT_SHOWN okno zostało wyświetlone.
SDL_WINDOWEVENT_HIDDEN okno zostało ukryte.
SDL_WINDOWEVENT_EXPOSED okno zmieniło treść i powinno zostać przerysowane.
SDL_WINDOWEVENT_MOVED okno zostało przesunięte.
SDL_WINDOWEVENT_RESIZED okno zmieniło rozmiar; to zdarzenie zawsze jest poprzedzone przez SDL_WINDOWEVENT_SIZE_CHANGED
SDL_WINDOWEVENT_SIZE_CHANGED okno zmieniło się w wyniku wywołania funkcji API, poprzez system lub w wyniku działań użytkownika; po tym zdarzeniu następuje SDL_WINDOWEVENT_RESIZED, jeśli zmianie uległ rozmiar w wyniku zdarzenia zewnętrznego, np.  działanie użytkownika lub menadżera okien.
SDL_WINDOWEVENT_MINIMIZED okno zostało zminimalizowane.
SDL_WINDOWEVENT_MAXIMIZED okno zostało zmaksymalizowane.
SDL_WINDOWEVENT_RESTORED okno zostało przywrócone do standardowego rozmiaru i położenia.
SDL_WINDOWEVENT_ENTER okno otrzymało skupienie myszki.
SDL_WINDOWEVENT_LEAVE okno utraciło skupienie myszki.
SDL_WINDOWEVENT_FOCUS_GAINED okno otrzymało skupienie klawiatury.
SDL_WINDOWEVENT_FOCUS_LOST okno utraciło skupienie klawiatury.
SDL_WINDOWEVENT_CLOSE menadżer okien żąda jego zamknięcia.
SDL_WINDOWEVENT_TAKE_FOCUS okno otrzymuje propozycję przejęcia skupienia (powinno wywołać SDL_SetWindowInputFocus() na sobie, na podoknie lub zignorować zdarzenie) (>= SDL 2.0.5)
SDL_WINDOWEVENT_HIT_TEST okno miało hittest, który nie był SDL_HITTEST_NORMAL (>= SDL 2.0.5)

Przykładowy kod

#include <stdlib.h>
#include "SDL.h"

int main(int argc, char *argv[])  {
  int width = 640;
  int height = 480;

  if (SDL_Init(SDL_INIT_VIDEO) != 0)  {
    return 1;
  }
  atexit(SDL_Quit);

  SDL_Window* window = SDL_CreateWindow(
    "Example", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED,
    width, height, SDL_WINDOW_RESIZABLE
  );
  Uint32 windowID = SDL_GetWindowID(window);

  while (1)  {
    SDL_Event event;
    while (SDL_PollEvent(&event))  {
      switch (event.type)  {

        case SDL_WINDOWEVENT:  {
          if (event.window.windowID == windowID)  {
            switch (event.window.event)  {

              case SDL_WINDOWEVENT_SIZE_CHANGED:  {
                width = event.window.data1;
                height = event.window.data2;
                break;
              }

              case SDL_WINDOWEVENT_CLOSE:  {
                event.type = SDL_QUIT;
                SDL_PushEvent(&event);
                break;
              }

            }
          }
          break;
        }

        case SDL_QUIT:  {
          return 0;
        }

        /* ... */

      }
    }

    /* ... */

    SDL_Delay(1);
  }
}

Powiązane struktury

Powiązane funkcje

Na początek:  podrozdziału   strony 

Zespół Przedmiotowy
Chemii-Fizyki-Informatyki

w I Liceum Ogólnokształcącym
im. Kazimierza Brodzińskiego
w Tarnowie
ul. Piłsudskiego 4
©2022 mgr Jerzy Wałaszek

Materiały tylko do użytku dydaktycznego. Ich kopiowanie i powielanie jest dozwolone
pod warunkiem podania źródła oraz niepobierania za to pieniędzy.

Pytania proszę przesyłać na adres email: i-lo@eduinf.waw.pl

Serwis wykorzystuje pliki cookies. Jeśli nie chcesz ich otrzymywać, zablokuj je w swojej przeglądarce.

Informacje dodatkowe.