sokol.sapp,gg: add support for drag & drop events (#11359)

pull/11384/head
penguindark 2021-09-01 08:21:27 +02:00 committed by GitHub
parent 56993b9e2d
commit 63ff5690ff
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 27 additions and 0 deletions

View File

@ -194,6 +194,10 @@ pub fn new_context(cfg Config) &Context {
high_dpi: true
fullscreen: cfg.fullscreen
__v_native_render: cfg.native_rendering
// drag&drop
enable_dragndrop: cfg.enable_dragndrop
max_dropped_files: cfg.max_dropped_files
max_dropped_file_path_length: cfg.max_dropped_file_path_length
}
g.window = window
return g

View File

@ -77,6 +77,10 @@ pub:
font_bytes_mono []byte
font_bytes_italic []byte
native_rendering bool // Cocoa on macOS/iOS, GDI+ on Windows
// drag&drop
enable_dragndrop bool // enable file dropping (drag'n'drop), default is false
max_dropped_files int = 1 // max number of dropped files to process (default: 1)
max_dropped_file_path_length int = 2048 // max length in bytes of a dropped UTF-8 file path (default: 2048)
}
pub struct PenConfig {

View File

@ -23,6 +23,7 @@ pub enum EventType {
update_cursor
quit_requested
clipboard_pasted
files_droped
num
}

View File

@ -245,3 +245,15 @@ pub fn toggle_fullscreen() {
pub fn is_fullscreen() bool {
return C.sapp_is_fullscreen()
}
[inline]
pub fn get_num_dropped_files() int {
return C.sapp_get_num_dropped_files()
}
[inline]
pub fn get_dropped_file_path(index int) string {
unsafe {
return cstring_to_vstring(C.sapp_get_dropped_file_path(index))
}
}

View File

@ -109,3 +109,9 @@ fn C.sapp_toggle_fullscreen()
// Check if full screen rendering
fn C.sapp_is_fullscreen() bool
// Get number of droped files
fn C.sapp_get_num_dropped_files() int
// Get the file path of the droped file
fn C.sapp_get_dropped_file_path(int) &byte