• Stars
    star
    165
  • Rank 221,234 (Top 5 %)
  • Language
    C
  • License
    MIT License
  • Created about 7 years ago
  • Updated about 2 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A small C library for opening a file dialog

Simple File Dialog

A small C library for opening a file dialog on Windows and Linux.

Usage

sfd.c and sfd.h should be dropped into an existing project and compiled along with it — on Windows comdlg32 should be linked.

The library provides a function for open dialogs and one for save dialogs:

sfd_Options opt = {
  .title        = "Open Image File",
  .filter_name  = "Image File",
  .filter       = "*.png|*.jpg",
};

const char *filename = sfd_open_dialog(&opt);

if (filename) {
  printf("Got file: '%s'\n", filename);
} else {
  printf("Open canceled\n");
}

Both functions accept a sfd_Options struct pointer with settings for the file dialog — All fields of the sfd_Options struct are optional.

Field Description
.title Title for the file dialog window
.path Default directory
.filter_name Name used to describe the file filter
.filter File filters separated by |

If the file dialog is canceled or an error occurs NULL is returned. sfd_get_error() will return an error string in the case of an error.

License

This library is free software; you can redistribute it and/or modify it under the terms of the MIT license. See LICENSE for details.

More Repositories

1

lite

A lightweight text editor written in Lua
Lua
7,254
star
2

microui

A tiny immediate-mode UI library
C
3,124
star
3

log.c

A simple logging library implemented in C99
C
2,472
star
4

json.lua

A lightweight JSON library for Lua
Lua
1,734
star
5

dyad

Asynchronous networking for C
C
1,432
star
6

fe

A tiny, embeddable language implemented in ANSI C
C
1,262
star
7

lume

Lua functions geared towards gamedev
Lua
945
star
8

classic

Tiny class module for Lua
Lua
799
star
9

lovedos

A framework for making 2D DOS games in Lua
C
659
star
10

map

A type-safe hash map implementation for C
C
553
star
11

vec

A type-safe dynamic array implementation for C
C
426
star
12

microtar

A lightweight tar library written in ANSI C
C
423
star
13

flux

A fast, lightweight tweening library for Lua
Lua
354
star
14

lite-plugins

Plugins for the lite text editor
Lua
342
star
15

ini

A tiny ANSI C library for loading .ini config files
C
315
star
16

log.lua

A tiny logging module for Lua
Lua
287
star
17

lovebird

A browser-based debug console for LÖVE
Lua
282
star
18

lurker

Auto-swaps changed Lua files in a running LÖVE project
Lua
268
star
19

kit

A tiny library for making small games with big pixels
C
240
star
20

aq

A lightweight framework for creating audio toys
C
236
star
21

uuid4

A tiny C library for generating uuid4 strings
C
214
star
22

sandbird

A tiny embeddable HTTP server written in C89
C
169
star
23

cmixer

Portable ANSI C audio mixer for games
C
168
star
24

aria

A tiny, embeddable lisp-shaped language implemented in C89
C
166
star
25

juno

Framework for making 2D games with chunky pixels in Lua
C
160
star
26

tick

Lua module for delaying function calls
Lua
123
star
27

autobatch

Small LÖVE module to automate the use of SpriteBatches
Lua
103
star
28

lite-colors

Colors themes for the lite text editor
Lua
99
star
29

dmt

Dynamic memory tracker for C
C
99
star
30

cembed

A small utility for embedding files in a C header
C
90
star
31

doq

A small tool for creating single-file html documents
C
82
star
32

lovebpm

A LÖVE library for syncing events to the BPM of an audio track
Lua
76
star
33

coil

A tiny cooperative threading module for Lua
Lua
71
star
34

shash

A simple, lightweight spatial hash for Lua
Lua
64
star
35

console

A console plugin for the lite text editor
Lua
57
star
36

atlas

A small utility for generating a texture atlas
C
41
star
37

rxi.github.io

HTML
17
star
38

gifwriter

A Nim library for writing animated GIFs
C
17
star
39

cmixer_sdl2-nim

Tiny Nim library for using cmixer with sdl2
Nim
3
star
40

cmixer-nim

Nim wrapper for cmixer, A lightweight audio mixer for games
C
3
star
41

crate

2
star