Serwis Edukacyjny Nauczycieli w I-LO w Tarnowie Materiały dla uczniów liceum |
Wyjście Spis treści Wstecz Dalej
Autor artykułu: mgr Jerzy
Wałaszek |
©2024 mgr Jerzy Wałaszek
|
SDL_DropEvent
SPIS TREŚCI |
Rozdział jest tłumaczeniem oryginalnej instrukcji dla biblioteki SDL2.
Struktura zawiera zdarzenie używane przy żądaniu otwarcia pliku przez system.
Uint32 | type | rodzaj zdarzenia: SDL_DROPFILE, SDL_DROPTEXT, SDL_DROPBEGIN lub SDL_DROPCOMPLETE |
Uint32 | timestamp | czas zdarzenia |
char* | file | nazwa pliku, który powinien być zwolniony za pomocą SDL_free(), ma wartość NULL przy BEGIN/COMPLETE |
Uint32 | windowID | okno, które zostało upuszczone, jeśli takie jest |
// Przykładowy program: // Zastosowanie SDL_DropEvent #include "SDL.h" int main(int argc, char *argv[]) { SDL_bool done; SDL_Window *window; SDL_Event event; // Deklaruj uchwyt zdarzenia char* dropped_filedir; // Wskaźnik katalogu upuszczonego pliku SDL_Init(SDL_INIT_VIDEO); // inicjalizacja SDL2 window = SDL_CreateWindow( // Utwórz okno "SDL_DropEvent usage, please drop the file on window", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, 640, 480, SDL_WINDOW_OPENGL ); // Sprawdź, czy okno faktycznie zostało utworzone if (window == NULL) { // Jeśli okna nie dało się utworzyć... SDL_Log("Could not create window: %s", SDL_GetError()); SDL_Quit(); return 1; } SDL_EventState(SDL_DROPFILE, SDL_ENABLE); done = SDL_FALSE; while (!done) { // Pętla programu while (!done && SDL_PollEvent(&event)) { switch (event.type) { case (SDL_QUIT): { // W przypadku wyjścia done = SDL_TRUE; break; } case (SDL_DROPFILE): { // W przypadku upuszczonego pliku dropped_filedir = event.drop.file; // Pokazuje katalog upuszczonego pliku SDL_ShowSimpleMessageBox( SDL_MESSAGEBOX_INFORMATION, "File dropped on window", dropped_filedir, window ); SDL_free(dropped_filedir); // Usuń pamięć dla dropped_filedir break; } } } SDL_Delay(0); } SDL_DestroyWindow(window); // Zamknij u usuń okno SDL_Quit(); // Posprzątaj return 0; } |
Zdarzenia te są standardowo uaktywnione. Możesz je zablokować za pomocą SDL_EventState().
Jeśli zdarzenia są uaktywnione, musisz w nich zwalniać pamięć przydzieloną dla nazwy pliku za pomocą SDL_free().
SDL_DROPTEXT, SDL_DROPBEGIN i SDL_DROPCOMPLETE są dostępne od SDL 2.0.5.
Aby uaktywnić przeciąganie i upuszczanie w swojej aplikacji SDL, musisz również edytować swój plik info.plist. Dodaj/zmodyfikuj Document Types. Na przykład, aby uaktywnić wszystkie typy dokumentów, dodaj typ mime "public.data" jako typ dokumentu.
Zespół Przedmiotowy Chemii-Fizyki-Informatyki w I Liceum Ogólnokształcącym im. Kazimierza Brodzińskiego w Tarnowie ul. Piłsudskiego 4 ©2024 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:
Serwis wykorzystuje pliki cookies. Jeśli nie chcesz ich otrzymywać, zablokuj je w swojej przeglądarce.
Informacje dodatkowe.