Wrappers for C memory management functions with error checking
This module contains macros and functions that perform as wrappers
for standard C memory management functions, malloc, realloc and free. The
wrapper functions check for incorrect use realloc and free, memory overrun
errors and double free errors. If, at program termination, that memory has
not been properly free'd then error messages are written to stderr with the
unfreed memory allocations. Logging of all memory management function calls
to stderr can be turned on to aid in debugging. The wrappers can be 'turned
off' at compile time for zero overhead.
(../include/deds/alloc.h)
(library deds : module alloc)
Reference counting atom with delete locking
This module contains code for adding reference counting and delete
locking to object by 'deriving' then from a base MX_ATOM object.
(../include/deds/atom.h)
(library deds : module atom)
Boolean true and false macros
Boolean true and false macros.
(../include/deds/bool.h)
(library deds : module bool)
Double linked list structure handling macros.
This module conatins some convenience macros for handling double
linked list structures.
(../include/deds/dllist.h)
(library deds : module dllist)
Simple macros for maximum and minimum of two values.
In this module we declate macros to the maximum and minimum of two
values. This avoids potential conflicts with other libraries.
(../include/deds/maxmin.h)
(library deds : module maxmin)
Typedefs for memory managment functions.
This module contains typedefs for memory allocation functions similar
to the stdlib malloc/realloc/free functions.
(../include/deds/memtype.h)
(library deds : module memtype)
Basic rectangle handling
This module contains typedefs, functions and macros for handling
rectangles. Also included are macros to determine intersections and unions
areas.
(../include/deds/rect.h)
(library deds : module rect)
Rectangles with reference counting.
This module contains code for MX_RECTATOM which is a MX_RECT with
reference counting. The reference counting is done my deriving MX_RECTATOM
from MX_ATOM. Additional macros exist for reading rectangle positioning and
dimensions.
(../include/deds/rectatom.h)
(library deds : module rectatom)
Some simple string allocation and handling functions.
This module contains functions for object-oriented handling of const char* strings in C. Strings can be either zero-terminated or have some fixed length. The contents of the string cannot be (easily) changed.
MX_STRING is bit-copy-correct which means that a binary copy retains proper functioning and takes over ownership of internal buffers. The copy source MX_STRING should not be used once the copy takes place.
Memory containing a MX_STRING can be realloc'd without affecting proper
operation. Therefore it can be used inside a MX_VECTOR.
(../include/deds/string.h)
(library deds : module string)
Tree structure handling macros
This module conatins some convenience macros for handling tree structures. If you define your type as
typedef struct YOURTYPE { ... MX_TREE(struct YOURTYPE); ... } YOURTYPE;Then you can use these macros to manipulate your type as a tree. (../include/deds/tree.h)
A 100% typesafe generic vector for C.
This module contains macros, types and functions for MX_VECTOR whic is a a 100% typesafe generic vector object for C. The underlying type must be bit-copy-correct which means that a binary copy retains proper functioning and takes over ownership of any internal buffers.
The interface of MX_VECTOR is done through macros and generic type-indenpendent functions perform the vector operations. In contrast to C++ vector types, the code size when using MX_VECTOR is constant regardless of how many vector types are instantiated.
The correct operation of MX_VECTOR depends on some things that not in the C standard:
MX_VECTOR objects themselves are bit-copy-correct which means that memory containing a MX_VECTOR can be safely realloc'd and MX_VECTOR can be used inside another MXVECTOR.
Here is a simple example for doubles but the same concept applies to all bit-copy-correct types.
size_t i; MX_VECTOR(double) dvect; mx_vector(&dvect); mx_vector_resize(&dvect, 100); for (i=0; i < mx_vector_size(&dvect); i++) dvect.data[i] = i; mx_vector_free(&dvect);NOTE: All of the mx_vector* functions are in fact macros that may evaluate the arguments (the vector) more than once. This is especially true for the vector itself (the first argument) and any pointer arguments. Efforts have been made to evaluate other arguments only once. So modifiying arguments in the macro like this:
mx_vector_resize(&dvect, n++);will work as expected. However code like this:
mx_vector_resize(vectptr++, n);will not work as expected. (../include/deds/vector.h)
Bitmap functions
This module implements bitmap functions for DEGFX.
(../include/degfx/bitmap.h)
(library degfx : module bitmap)
Color encoding
This module contains color encoding macros.
(../include/degfx/colors.h)
(library degfx : module colors)
The core DEGFX module
This module contains the core DEGFX functions for drawing on the
screen and gettign input from the keyboard and the mouse.
(../include/degfx/coregfx.h)
(library degfx : module coregfx)
Graphics mode and driver information
This module contains DEGFX graphics mode and driver information.
(../include/degfx/driver.h)
(library degfx : module driver)
Font functions
This module contains functions related to font drawing .
(../include/degfx/font.h)
(library degfx : module font)
Builtin 8x8 font
(../include/degfx/font.h)
(library degfx : module font)
Builtin 8x14 font
(../include/degfx/font.h)
(library degfx : module font)
Builtin 8x16 font
(../include/degfx/font.h)
(library degfx : module font)
A basic alert window
(../include/depui/alert.h)
(library depui : module alert)
Core DEPUI functions
This module is the core DEPUI module. It contains code for:
An editable text object
This module implements an editable textual object.
It is derived from MX_TEXTUAL and inherits several important functions
(text set/get/align etc.) from MX_TEXTUAL.
(../include/depui/edittext.h)
(library depui : module edittext)
A file selector
This module implements a file selector object.
(../include/depui/filesel.h)
(library depui : module filesel)
Pressing enter/return in the filename area causes the directory and
file lists to be refreshed with the new pattern.
(../include/depui/filesel.c)
(library depui : module filesel)
Clicking on the directory list causes the directory and file
lists to be refreshed.
(../include/depui/filesel.c)
(library depui : module filesel)
Clicking on the file list selects a file.
(../include/depui/filesel.c)
(library depui : module filesel)
Pressing OK causes a MX_FILESEL_OK event to be sent to the
parent window. WHen halding this event the parent window can call
mx_filesel_info() to get the selected filename. The file selector
widnow is destroyed afetr the MX_FILESEL_OK event.
(../include/depui/filesel.c)
(library depui : module filesel)
A font selector and loader
This module implements a font selector dialog.
(../include/depui/fontsel.h)
(library depui : module fontsel)
A graphics mode and theme selector
This module implements a dialog to select and possibly change the graphics mode an theme.
When a graphics mode/theme is selected the window sends a MX_GFXSEL_OK
event to the parent window. The window can get information about the
selected graphics mode and theme using the mx_gfxsel_info() function. The
information can also be modified by the parent window. If the parent window
does not reply to the MX_GFXSEL_OK event (or replies with 0), then the
graphics mode/theme gets changed.
(../include/depui/gfxsel.h)
(library depui : module gfxsel)
Pressing the OK button sends a MX_GFXSEL_OK event to the parent
window and immediatly destroys the graphics mode window.
(../include/depui/gfxsel.c)
(library depui : module gfxsel)
Pressing the APPLY button sends a MX_GFXSEL_OK event to the
parent window.
(../include/depui/gfxsel.c)
(library depui : module gfxsel)
A gui list object
This module contains a list object containing a number of selectable elements
and a scrollable area.
(../include/depui/list.h)
(library depui : module list)
A scrollable area
This module contains code for a scrollable area. The area has
vertical or horizontal scrollbars as necessary to display all the objects
contained in the scroll area.
(../include/depui/scroll.h)
(library depui : module scroll)
Horizontal and vertical sliders
This module contains code for horizontal and vertical sliders.
(../include/depui/slider.h)
(library depui : module slider)
A DEPUI system menu
(../include/depui/sysmenu.h)
(library depui : module sysmenu)
A text editor
(../include/depui/textedit.h)
(library depui : module textedit)
A theme selector and loader
This module implements a theme selector dialog.
(../include/depui/themesel.h)
(library depui : module themesel)
Portable bitfields
This module defines the MX_BITFIELD macro so that even compilers
that perform strangely with bitfields can be used.
(../include/detk/bitfield.h)
(library detk : module bitfield)
Default values
This module defines a constant value useful as a default value.
(../include/detk/default.h)
(library detk : module default)
Dirty rectangle updating system
This module implements a dirty-rectangle updating system.
(../include/detk/drs.h)
(library detk : module drs)
Some simple file oriented functions
This module contains some simple file oriented functions primarily
intended to be useful for GUI development.
(../include/detk/file.h)
(library detk : module file)
A region area (collection of rectangles)
This module implements MX_REGION which is a vector of rectangles.
(../include/detk/region.h)
(library detk : module region)
Simple UTF-8 character handling functions
This module contains very simple UTF-8 handling functions.
(../include/detk/utf8.h)
(library detk : module utf8)
Generated by MXDOC 2.2 on Sun Feb 4 15:16:25 2007