LMMS
Loading...
Searching...
No Matches
pugl.h File Reference
#include <stddef.h>
#include <stdint.h>
#include <stdbool.h>

Go to the source code of this file.

Classes

struct  PuglRect
struct  PuglAnyEvent
 Common header for all event structs. More...
struct  PuglConfigureEvent
struct  PuglExposeEvent
struct  PuglFocusEvent
struct  PuglKeyEvent
struct  PuglTextEvent
struct  PuglCrossingEvent
struct  PuglButtonEvent
struct  PuglMotionEvent
struct  PuglScrollEvent
struct  PuglClientEvent
struct  PuglTimerEvent
struct  PuglDataOfferEvent
struct  PuglDataEvent
union  PuglEvent

Macros

#define PUGL_API
#define PUGL_DEPRECATED_BY(rep)
#define PUGL_CONST_FUNC
#define PUGL_CONST_API
#define PUGL_BEGIN_DECLS
#define PUGL_END_DECLS
#define PUGL_NUM_VIEW_HINTS   ((unsigned)PUGL_REFRESH_RATE + 1u)
 The number of PuglViewHint values.
#define PUGL_NUM_SIZE_HINTS   ((unsigned)PUGL_MAX_ASPECT + 1u)
 The number of PuglSizeHint values.
#define PUGL_NUM_CURSORS   ((unsigned)PUGL_CURSOR_ANTI_DIAGONAL + 1u)
 The number of PuglCursor values.

Typedefs

typedef int16_t PuglCoord
typedef uint16_t PuglSpan
typedef uint32_t PuglMods
 Bitwise OR of PuglMod values.
typedef uint32_t PuglEventFlags
 Bitwise OR of PuglEventFlag values.
typedef PuglAnyEvent PuglCreateEvent
typedef PuglAnyEvent PuglDestroyEvent
typedef PuglAnyEvent PuglMapEvent
typedef PuglAnyEvent PuglUnmapEvent
typedef PuglAnyEvent PuglUpdateEvent
typedef PuglAnyEvent PuglCloseEvent
typedef PuglAnyEvent PuglLoopEnterEvent
typedef PuglAnyEvent PuglLoopLeaveEvent
typedef struct PuglWorldImpl PuglWorld
typedef voidPuglWorldHandle
 Handle for the world's opaque user data.
typedef uint32_t PuglWorldFlags
 Bitwise OR of PuglWorldFlag values.
typedef struct PuglViewImpl PuglView
 A drawable region that receives events.
typedef struct PuglBackendImpl PuglBackend
typedef uintptr_t PuglNativeView
typedef voidPuglHandle
 Handle for a view's opaque user data.
typedef PuglStatus(* PuglEventFunc) (PuglView *view, const PuglEvent *event)
 A function called when an event occurs.
typedef PuglCreateEvent PuglEventCreate
typedef PuglDestroyEvent PuglEventDestroy
typedef PuglConfigureEvent PuglEventConfigure
typedef PuglMapEvent PuglEventMap
typedef PuglUnmapEvent PuglEventUnmap
typedef PuglUpdateEvent PuglEventUpdate
typedef PuglExposeEvent PuglEventExpose
typedef PuglCloseEvent PuglEventClose
typedef PuglFocusEvent PuglEventFocus
typedef PuglKeyEvent PuglEventKey
typedef PuglTextEvent PuglEventText
typedef PuglCrossingEvent PuglEventCrossing
typedef PuglButtonEvent PuglEventButton
typedef PuglMotionEvent PuglEventMotion
typedef PuglScrollEvent PuglEventScroll
typedef PuglClientEvent PuglEventClient
typedef PuglTimerEvent PuglEventTimer
typedef PuglLoopEnterEvent PuglEventLoopEnter
typedef PuglLoopLeaveEvent PuglEventLoopLeave
typedef uintptr_t PuglNativeWindow

Enumerations

enum  PuglMod { PUGL_MOD_SHIFT = 1u << 0u , PUGL_MOD_CTRL = 1u << 1u , PUGL_MOD_ALT = 1u << 2u , PUGL_MOD_SUPER = 1u << 3u }
 Keyboard modifier flags. More...
enum  PuglKey {
  PUGL_KEY_BACKSPACE = 0x08 , PUGL_KEY_ESCAPE = 0x1B , PUGL_KEY_DELETE = 0x7F , PUGL_KEY_F1 = 0xE000 ,
  PUGL_KEY_F2 , PUGL_KEY_F3 , PUGL_KEY_F4 , PUGL_KEY_F5 ,
  PUGL_KEY_F6 , PUGL_KEY_F7 , PUGL_KEY_F8 , PUGL_KEY_F9 ,
  PUGL_KEY_F10 , PUGL_KEY_F11 , PUGL_KEY_F12 , PUGL_KEY_LEFT ,
  PUGL_KEY_UP , PUGL_KEY_RIGHT , PUGL_KEY_DOWN , PUGL_KEY_PAGE_UP ,
  PUGL_KEY_PAGE_DOWN , PUGL_KEY_HOME , PUGL_KEY_END , PUGL_KEY_INSERT ,
  PUGL_KEY_SHIFT , PUGL_KEY_SHIFT_L = PUGL_KEY_SHIFT , PUGL_KEY_SHIFT_R , PUGL_KEY_CTRL ,
  PUGL_KEY_CTRL_L = PUGL_KEY_CTRL , PUGL_KEY_CTRL_R , PUGL_KEY_ALT , PUGL_KEY_ALT_L = PUGL_KEY_ALT ,
  PUGL_KEY_ALT_R , PUGL_KEY_SUPER , PUGL_KEY_SUPER_L = PUGL_KEY_SUPER , PUGL_KEY_SUPER_R ,
  PUGL_KEY_MENU , PUGL_KEY_CAPS_LOCK , PUGL_KEY_SCROLL_LOCK , PUGL_KEY_NUM_LOCK ,
  PUGL_KEY_PRINT_SCREEN , PUGL_KEY_PAUSE
}
enum  PuglEventType {
  PUGL_NOTHING , PUGL_CREATE , PUGL_DESTROY , PUGL_CONFIGURE ,
  PUGL_MAP , PUGL_UNMAP , PUGL_UPDATE , PUGL_EXPOSE ,
  PUGL_CLOSE , PUGL_FOCUS_IN , PUGL_FOCUS_OUT , PUGL_KEY_PRESS ,
  PUGL_KEY_RELEASE , PUGL_TEXT , PUGL_POINTER_IN , PUGL_POINTER_OUT ,
  PUGL_BUTTON_PRESS , PUGL_BUTTON_RELEASE , PUGL_MOTION , PUGL_SCROLL ,
  PUGL_CLIENT , PUGL_TIMER , PUGL_LOOP_ENTER , PUGL_LOOP_LEAVE ,
  PUGL_DATA_OFFER , PUGL_DATA
}
 The type of a PuglEvent. More...
enum  PuglEventFlag { PUGL_IS_SEND_EVENT = 1 , PUGL_IS_HINT = 2 }
 Common flags for all event types. More...
enum  PuglCrossingMode { PUGL_CROSSING_NORMAL , PUGL_CROSSING_GRAB , PUGL_CROSSING_UNGRAB }
 Reason for a PuglCrossingEvent. More...
enum  PuglScrollDirection {
  PUGL_SCROLL_UP , PUGL_SCROLL_DOWN , PUGL_SCROLL_LEFT , PUGL_SCROLL_RIGHT ,
  PUGL_SCROLL_SMOOTH
}
enum  PuglStatus {
  PUGL_SUCCESS , PUGL_FAILURE , PUGL_UNKNOWN_ERROR , PUGL_BAD_BACKEND ,
  PUGL_BAD_CONFIGURATION , PUGL_BAD_PARAMETER , PUGL_BACKEND_FAILED , PUGL_REGISTRATION_FAILED ,
  PUGL_REALIZE_FAILED , PUGL_SET_FORMAT_FAILED , PUGL_CREATE_CONTEXT_FAILED , PUGL_UNSUPPORTED ,
  PUGL_NO_MEMORY
}
 Return status code. More...
enum  PuglWorldType { PUGL_PROGRAM , PUGL_MODULE }
 The type of a World. More...
enum  PuglWorldFlag { PUGL_WORLD_THREADS = 1u << 0u }
 World flags. More...
enum  PuglViewHint {
  PUGL_USE_COMPAT_PROFILE , PUGL_USE_DEBUG_CONTEXT , PUGL_CONTEXT_VERSION_MAJOR , PUGL_CONTEXT_VERSION_MINOR ,
  PUGL_RED_BITS , PUGL_GREEN_BITS , PUGL_BLUE_BITS , PUGL_ALPHA_BITS ,
  PUGL_DEPTH_BITS , PUGL_STENCIL_BITS , PUGL_SAMPLES , PUGL_DOUBLE_BUFFER ,
  PUGL_SWAP_INTERVAL , PUGL_RESIZABLE , PUGL_IGNORE_KEY_REPEAT , PUGL_REFRESH_RATE
}
 A hint for configuring a view. More...
enum  PuglViewHintValue { PUGL_DONT_CARE = -1 , PUGL_FALSE = 0 , PUGL_TRUE = 1 }
 A special view hint value. More...
enum  PuglSizeHint {
  PUGL_DEFAULT_SIZE , PUGL_MIN_SIZE , PUGL_MAX_SIZE , PUGL_FIXED_ASPECT ,
  PUGL_MIN_ASPECT , PUGL_MAX_ASPECT
}
enum  PuglCursor {
  PUGL_CURSOR_ARROW , PUGL_CURSOR_CARET , PUGL_CURSOR_CROSSHAIR , PUGL_CURSOR_HAND ,
  PUGL_CURSOR_NO , PUGL_CURSOR_LEFT_RIGHT , PUGL_CURSOR_UP_DOWN , PUGL_CURSOR_DIAGONAL ,
  PUGL_CURSOR_ANTI_DIAGONAL
}

Functions

PUGL_CONST_API const char * puglStrerror (PuglStatus status)
 Return a string describing a status code.
PUGL_API PuglWorldpuglNewWorld (PuglWorldType type, PuglWorldFlags flags)
PUGL_API void puglFreeWorld (PuglWorld *world)
 Free a world allocated with puglNewWorld().
PUGL_API void puglSetWorldHandle (PuglWorld *world, PuglWorldHandle handle)
PUGL_API PuglWorldHandle puglGetWorldHandle (PuglWorld *world)
 Get the user data for the world.
PUGL_API voidpuglGetNativeWorld (PuglWorld *world)
PUGL_API PuglStatus puglSetClassName (PuglWorld *world, const char *name)
PUGL_API const char * puglGetClassName (const PuglWorld *world)
 Get the class name of the application, or null.
PUGL_API double puglGetTime (const PuglWorld *world)
PUGL_API PuglStatus puglUpdate (PuglWorld *world, double timeout)
PUGL_API PuglViewpuglNewView (PuglWorld *world)
PUGL_API void puglFreeView (PuglView *view)
 Free a view created with puglNewView().
PUGL_API PuglWorldpuglGetWorld (PuglView *view)
 Return the world that View is a part of.
PUGL_API void puglSetHandle (PuglView *view, PuglHandle handle)
PUGL_API PuglHandle puglGetHandle (PuglView *view)
 Get the user data for a view.
PUGL_API PuglStatus puglSetBackend (PuglView *view, const PuglBackend *backend)
const PuglBackendpuglGetBackend (const PuglView *view)
 Return the graphics backend used by a view.
PUGL_API PuglStatus puglSetEventFunc (PuglView *view, PuglEventFunc eventFunc)
 Set the function to call when an event occurs.
PUGL_API PuglStatus puglSetViewHint (PuglView *view, PuglViewHint hint, int value)
PUGL_API int puglGetViewHint (const PuglView *view, PuglViewHint hint)
PUGL_API double puglGetScaleFactor (const PuglView *view)
PUGL_API PuglRect puglGetFrame (const PuglView *view)
PUGL_API PuglStatus puglSetFrame (PuglView *view, PuglRect frame)
PUGL_API PuglStatus puglSetPosition (PuglView *view, int x, int y)
PUGL_API PuglStatus puglSetSize (PuglView *view, unsigned width, unsigned height)
PUGL_API PuglStatus puglSetSizeHint (PuglView *view, PuglSizeHint hint, PuglSpan width, PuglSpan height)
PUGL_API PuglStatus puglSetWindowTitle (PuglView *view, const char *title)
PUGL_API const char * puglGetWindowTitle (const PuglView *view)
 Return the title of the window, or null.
PUGL_API PuglStatus puglSetParentWindow (PuglView *view, PuglNativeView parent)
PUGL_API PuglNativeView puglGetParentWindow (const PuglView *view)
 Return the parent window this view is embedded in, or null.
PUGL_API PuglStatus puglSetTransientParent (PuglView *view, PuglNativeView parent)
PUGL_API PuglNativeView puglGetTransientParent (const PuglView *view)
PUGL_API PuglStatus puglRealize (PuglView *view)
PUGL_API PuglStatus puglShow (PuglView *view)
PUGL_API PuglStatus puglHide (PuglView *view)
 Hide the current window.
PUGL_API bool puglGetVisible (const PuglView *view)
 Return true iff the view is currently visible.
PUGL_API PuglNativeView puglGetNativeView (PuglView *view)
 Return the native window handle.
PUGL_API voidpuglGetContext (PuglView *view)
PUGL_API PuglStatus puglPostRedisplay (PuglView *view)
PUGL_API PuglStatus puglPostRedisplayRect (PuglView *view, PuglRect rect)
PUGL_API PuglStatus puglGrabFocus (PuglView *view)
PUGL_API bool puglHasFocus (const PuglView *view)
 Return whether View has the keyboard input focus.
PUGL_API PuglStatus puglPaste (PuglView *view)
PUGL_API uint32_t puglGetNumClipboardTypes (const PuglView *view)
PUGL_API const char * puglGetClipboardType (const PuglView *view, uint32_t typeIndex)
PUGL_API PuglStatus puglAcceptOffer (PuglView *view, const PuglDataOfferEvent *offer, uint32_t typeIndex)
PUGL_API PuglStatus puglSetClipboard (PuglView *view, const char *type, const void *data, size_t len)
PUGL_API const voidpuglGetClipboard (PuglView *view, uint32_t typeIndex, size_t *len)
PUGL_API PuglStatus puglSetCursor (PuglView *view, PuglCursor cursor)
PUGL_API PuglStatus puglRequestAttention (PuglView *view)
PUGL_API PuglStatus puglStartTimer (PuglView *view, uintptr_t id, double timeout)
PUGL_API PuglStatus puglStopTimer (PuglView *view, uintptr_t id)
PUGL_API PuglStatus puglSendEvent (PuglView *view, const PuglEvent *event)
static PUGL_DEPRECATED_BY ("puglNewView") PuglView *puglInit(const int *pargc
return puglNewView (puglNewWorld(PUGL_MODULE, 0))
static PUGL_DEPRECATED_BY ("puglFreeView") void puglDestroy(PuglView *view)
static PUGL_DEPRECATED_BY ("puglSetClassName") void puglInitWindowClass(PuglView *view
static PUGL_DEPRECATED_BY ("puglSetFrame") void puglInitWindowSize(PuglView *view
 puglSetFrame (view, frame)
static PUGL_DEPRECATED_BY ("puglSetMinSize") void puglInitWindowMinSize(PuglView *view
static PUGL_DEPRECATED_BY ("puglSetAspectRatio") void puglInitWindowAspectRatio(PuglView *view
 puglSetSizeHint (view, PUGL_MAX_ASPECT,(PuglSpan) maxX,(PuglSpan) maxY)
static PUGL_DEPRECATED_BY ("puglSetTransientParent") void puglInitTransientFor(PuglView *view
static PUGL_DEPRECATED_BY ("puglSetViewHint") void puglInitResizable(PuglView *view
static PUGL_DEPRECATED_BY ("puglGetFrame") void puglGetSize(PuglView *view
static PUGL_DEPRECATED_BY ("puglSetParentWindow") void puglInitWindowParent(PuglView *view
static PUGL_DEPRECATED_BY ("puglSetBackend") int puglInitBackend(PuglView *view
static PUGL_DEPRECATED_BY ("puglRealize") PuglStatus puglCreateWindow(PuglView *view
return puglRealize (view)
PUGL_API PuglStatus puglWaitForEvent (PuglView *view)
PUGL_API PuglStatus puglProcessEvents (PuglView *view)
static PUGL_DEPRECATED_BY ("puglUpdate") PuglStatus puglPollEvents(PuglWorld *world
static PUGL_DEPRECATED_BY ("puglShow") PuglStatus puglShowWindow(PuglView *view)
static PUGL_DEPRECATED_BY ("puglHide") PuglStatus puglHideWindow(PuglView *view)
static PUGL_DEPRECATED_BY ("puglSetSizeHint") PuglStatus puglSetDefaultSize(PuglView *view
static PUGL_DEPRECATED_BY ("puglGetNativeView") PuglNativeView puglGetNativeWindow(PuglView *view)
 Return the native window handle.

Variables

static char ** argv
static const char * name
static int width = (PuglSpan)width
static int int height
static int minX
static int int minY
static int int int maxX
static int int int int maxY
static uintptr_t parent
static bool resizable
static bool ignore
static PuglViewHint hint
static PuglViewHint int value
static const PuglBackendbackend
static const char * title
static double timeout
const PuglStatus st1
return st0 st0

Macro Definition Documentation

◆ PUGL_API

#define PUGL_API

◆ PUGL_BEGIN_DECLS

#define PUGL_BEGIN_DECLS

◆ PUGL_CONST_API

#define PUGL_CONST_API
Value:
PUGL_API \
PUGL_CONST_FUNC

◆ PUGL_CONST_FUNC

#define PUGL_CONST_FUNC

◆ PUGL_DEPRECATED_BY

#define PUGL_DEPRECATED_BY ( rep)

◆ PUGL_END_DECLS

#define PUGL_END_DECLS