diff options
Diffstat (limited to 'app/wlib/include')
-rw-r--r-- | app/wlib/include/CMakeLists.txt | 12 | ||||
-rw-r--r-- | app/wlib/include/getline.h | 132 | ||||
-rw-r--r-- | app/wlib/include/getopt.h | 2 | ||||
-rw-r--r-- | app/wlib/include/wlib.h | 313 |
4 files changed, 341 insertions, 118 deletions
diff --git a/app/wlib/include/CMakeLists.txt b/app/wlib/include/CMakeLists.txt new file mode 100644 index 0000000..5891b02 --- /dev/null +++ b/app/wlib/include/CMakeLists.txt @@ -0,0 +1,12 @@ +
+target_include_directories(xtrkcad-wlib PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
+
+target_sources(xtrkcad-wlib
+ PUBLIC
+ wlib.h)
+
+if(WIN32)
+ target_sources(xtrkcad-wlib
+ PRIVATE
+ getopt.h)
+endif()
\ No newline at end of file diff --git a/app/wlib/include/getline.h b/app/wlib/include/getline.h new file mode 100644 index 0000000..ffbb699 --- /dev/null +++ b/app/wlib/include/getline.h @@ -0,0 +1,132 @@ +#ifndef GETLINE_H +#define GETLINE_H + +#include <stdio.h> + +#define restrict __restrict +typedef long long ssize_t; + +ssize_t getline(char **restrict lineptr, size_t *restrict n, FILE *restrict stream); +ssize_t getdelim(char **restrict lineptr, size_t *restrict n, int delim, FILE *restrict stream); + +/* +~$ export MANWIDTH=80 +~$ man getline | col -b +GETLINE(3) Linux Programmer's Manual GETLINE(3) + +NAME + getline, getdelim - delimited string input + +SYNOPSIS + #include <stdio.h> + + ssize_t getline(char **lineptr, size_t *n, FILE *stream); + + ssize_t getdelim(char **lineptr, size_t *n, int delim, FILE *stream); + + Feature Test Macro Requirements for glibc (see feature_test_macros(7)): + + getline(), getdelim(): + Since glibc 2.10: + _POSIX_C_SOURCE >= 200809L + Before glibc 2.10: + _GNU_SOURCE + +DESCRIPTION + getline() reads an entire line from stream, storing the address of the + buffer containing the text into *lineptr. The buffer is null-termi- + nated and includes the newline character, if one was found. + + If *lineptr is set to NULL and *n is set 0 before the call, then get- + line() will allocate a buffer for storing the line. This buffer should + be freed by the user program even if getline() failed. + + Alternatively, before calling getline(), *lineptr can contain a pointer + to a malloc(3)-allocated buffer *n bytes in size. If the buffer is not + large enough to hold the line, getline() resizes it with realloc(3), + updating *lineptr and *n as necessary. + + In either case, on a successful call, *lineptr and *n will be updated + to reflect the buffer address and allocated size respectively. + + getdelim() works like getline(), except that a line delimiter other + than newline can be specified as the delimiter argument. As with get- + line(), a delimiter character is not added if one was not present in + the input before end of file was reached. + +RETURN VALUE + On success, getline() and getdelim() return the number of characters + read, including the delimiter character, but not including the termi- + nating null byte ('\0'). This value can be used to handle embedded + null bytes in the line read. + + Both functions return -1 on failure to read a line (including end-of- + file condition). In the event of an error, errno is set to indicate + the cause. + +ERRORS + EINVAL Bad arguments (n or lineptr is NULL, or stream is not valid). + + ENOMEM Allocation or reallocation of the line buffer failed. + +ATTRIBUTES + For an explanation of the terms used in this section, see at- + tributes(7). + + +------------------------------------------------+ + ¦Interface ¦ Attribute ¦ Value ¦ + +----------------------+---------------+---------¦ + ¦getline(), getdelim() ¦ Thread safety ¦ MT-Safe ¦ + +------------------------------------------------+ + +CONFORMING TO + Both getline() and getdelim() were originally GNU extensions. They + were standardized in POSIX.1-2008. + +EXAMPLE + #define _GNU_SOURCE + #include <stdio.h> + #include <stdlib.h> + + int + main(int argc, char *argv[]) + { + FILE *stream; + char *line = NULL; + size_t len = 0; + ssize_t nread; + + if (argc != 2) { + fprintf(stderr, "Usage: %s <file>\n", argv[0]); + exit(EXIT_FAILURE); + } + + stream = fopen(argv[1], "r"); + if (stream == NULL) { + perror("fopen"); + exit(EXIT_FAILURE); + } + + while ((nread = getline(&line, &len, stream)) != -1) { + printf("Retrieved line of length %zu:\n", nread); + fwrite(line, nread, 1, stdout); + } + + free(line); + fclose(stream); + exit(EXIT_SUCCESS); + } + +SEE ALSO + read(2), fgets(3), fopen(3), fread(3), scanf(3) + +COLOPHON + This page is part of release 5.05 of the Linux man-pages project. A + description of the project, information about reporting bugs, and the + latest version of this page, can be found at + https://www.kernel.org/doc/man-pages/. + +GNU 2019-03-06 GETLINE(3) +*/ + +#endif /* GETLINE_H */ diff --git a/app/wlib/include/getopt.h b/app/wlib/include/getopt.h index e9a8354..4a3ced4 100644 --- a/app/wlib/include/getopt.h +++ b/app/wlib/include/getopt.h @@ -17,7 +17,7 @@ You should have received a copy of the GNU General Public License along with ASPEX; if not, write to the Free Software Foundation, - Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ extern char *optarg; diff --git a/app/wlib/include/wlib.h b/app/wlib/include/wlib.h index 7b89bdc..88b2806 100644 --- a/app/wlib/include/wlib.h +++ b/app/wlib/include/wlib.h @@ -7,6 +7,7 @@ #ifdef WINDOWS #include <stdio.h> #define FILE_SEP_CHAR "\\" +#include "getline.h" #else #define FILE_SEP_CHAR "/" #endif @@ -23,8 +24,10 @@ char *g_win32_getlocale (void); #endif // conversion routines to and from UTF-8 -bool wSystemToUTF8(const char *inString, char *outString, unsigned outStringLength); -bool wUTF8ToSystem(const char *inString, char *outString, unsigned outStringLength); +bool wSystemToUTF8(const char *inString, char *outString, + unsigned outStringLength); +bool wUTF8ToSystem(const char *inString, char *outString, + unsigned outStringLength); bool wIsUTF8(const char * string); /* @@ -74,7 +77,7 @@ typedef int wDrawColor; typedef struct { const char * name; const char * value; - } wBalloonHelp_t; +} wBalloonHelp_t; extern long debugWindow; extern long wDebugFont; @@ -84,8 +87,10 @@ extern long wDebugFont; * Bitmap Controls bitmap.c */ -wControl_p wBitmapCreate(wWin_p parent, wWinPix_t x, wWinPix_t y, long options, const struct wIcon_t * iconP); -wIcon_p wIconCreateBitMap(wWinPix_t w, wWinPix_t h, const char *bits, wDrawColor color); +wControl_p wBitmapCreate(wWin_p parent, wWinPix_t x, wWinPix_t y, long options, + const struct wIcon_t * iconP); +wIcon_p wIconCreateBitMap(wWinPix_t w, wWinPix_t h, const char *bits, + wDrawColor color); wIcon_p wIconCreatePixMap(char *pm[]); void wIconSetColor(wIcon_p ip, wDrawColor color); @@ -103,12 +108,15 @@ typedef enum { wBoxThickB, wBoxThickW, wBoxRidge, - wBoxTrough } - wBoxType_e; + wBoxTrough +} +wBoxType_e; void wBoxSetSize(wBox_p b, wWinPix_t w, wWinPix_t h); -void wlibDrawBox(wWin_p win, wBoxType_e style, wWinPix_t x, wWinPix_t y, wWinPix_t w, wWinPix_t h); -wBox_p wBoxCreate(wWin_p parent, wWinPix_t bx, wWinPix_t by, const char *labelStr, wBoxType_e boxTyp, wWinPix_t bw, wWinPix_t bh); +void wlibDrawBox(wWin_p win, wBoxType_e style, wWinPix_t x, wWinPix_t y, + wWinPix_t w, wWinPix_t h); +wBox_p wBoxCreate(wWin_p parent, wWinPix_t bx, wWinPix_t by, + const char *labelStr, wBoxType_e boxTyp, wWinPix_t bw, wWinPix_t bh); /*------------------------------------------------------------------------------ * @@ -135,13 +143,19 @@ typedef void (*wChoiceCallBack_p)( long, void * ); void wButtonSetLabel(wButton_p bb, const char *labelStr); void wButtonSetBusy(wButton_p bb, int value); -wButton_p wButtonCreate(wWin_p parent, wWinPix_t x, wWinPix_t y, const char *helpStr, const char *labelStr, long option, wWinPix_t width, wButtonCallBack_p action, void *data); +wButton_p wButtonCreate(wWin_p parent, wWinPix_t x, wWinPix_t y, + const char *helpStr, const char *labelStr, long option, wWinPix_t width, + wButtonCallBack_p action, void *data); void wRadioSetValue(wChoice_p bc, long value); long wRadioGetValue(wChoice_p bc); void wToggleSetValue(wChoice_p bc, long value); long wToggleGetValue(wChoice_p b); -wChoice_p wRadioCreate(wWin_p parent, wWinPix_t x, wWinPix_t y, const char *helpStr, const char *labelStr, long option, const char * const *labels, long *valueP, wChoiceCallBack_p action, void *data); -wChoice_p wToggleCreate(wWin_p parent, wWinPix_t x, wWinPix_t y, const char *helpStr, const char *labelStr, long option, const char * const *labels, long *valueP, wChoiceCallBack_p action, void *data); +wChoice_p wRadioCreate(wWin_p parent, wWinPix_t x, wWinPix_t y, + const char *helpStr, const char *labelStr, long option, + const char * const *labels, long *valueP, wChoiceCallBack_p action, void *data); +wChoice_p wToggleCreate(wWin_p parent, wWinPix_t x, wWinPix_t y, + const char *helpStr, const char *labelStr, long option, + const char * const *labels, long *valueP, wChoiceCallBack_p action, void *data); /*------------------------------------------------------------------------------ @@ -166,7 +180,8 @@ void wHelp( const char * ); #define NT_WARNING 2 #define NT_ERROR 4 -wBool_t wNoticeEx( int type, const char * msg, const char * yes, const char * no ); +wBool_t wNoticeEx( int type, const char * msg, const char * yes, + const char * no ); unsigned wOpenFileExternal(char *filename); @@ -185,19 +200,20 @@ unsigned long wGetTimer( void ); void wExit( int ); typedef enum { wCursorNormal, - wCursorNone, - wCursorAppStart, - wCursorHand, - wCursorNo, - wCursorSizeAll, - wCursorSizeNESW, - wCursorSizeNS, - wCursorSizeNWSE, - wCursorSizeWE, - wCursorWait, - wCursorIBeam, - wCursorCross, - wCursorQuestion } wCursor_t; + wCursorNone, + wCursorAppStart, + wCursorHand, + wCursorNo, + wCursorSizeAll, + wCursorSizeNESW, + wCursorSizeNS, + wCursorSizeNWSE, + wCursorSizeWE, + wCursorWait, + wCursorIBeam, + wCursorCross, + wCursorQuestion + } wCursor_t; void wSetCursor( wDraw_p, wCursor_t ); #define defaultCursor wCursorCross @@ -210,7 +226,8 @@ int wGetKeyState( void ); void wGetDisplaySize( wWinPix_t*, wWinPix_t* ); -wIcon_p wIconCreateBitMap( wWinPix_t, wWinPix_t, const char * bits, wDrawColor ); +wIcon_p wIconCreateBitMap( wWinPix_t, wWinPix_t, const char * bits, + wDrawColor ); wIcon_p wIconCreatePixMap( char *[] ); void wIconSetColor( wIcon_p, wDrawColor ); void wIconDraw( wDraw_p d, wIcon_p bm, wWinPix_t x, wWinPix_t y ); @@ -232,8 +249,9 @@ typedef enum { wResize_e, wState_e, wQuit_e, - wRedraw_e } - winProcEvent; + wRedraw_e +} +winProcEvent; typedef void (*wWinCallBack_p)( wWin_p, winProcEvent, void *, void * ); /* Creation Options */ @@ -252,10 +270,12 @@ typedef void (*wWinCallBack_p)( wWin_p, winProcEvent, void *, void * ); #define F_RESTRICT (1L<<15) #define F_NOTTRANSIENT (1L<<16) -wWin_p wWinMainCreate( const char *, wWinPix_t, wWinPix_t, const char *, const char *, const char *, - long, wWinCallBack_p, void * ); -wWin_p wWinPopupCreate( wWin_p, wWinPix_t, wWinPix_t, const char *, const char *, const char *, - long, wWinCallBack_p, void * ); +wWin_p wWinMainCreate( const char *, wWinPix_t, wWinPix_t, const char *, + const char *, const char *, + long, wWinCallBack_p, void * ); +wWin_p wWinPopupCreate( wWin_p, wWinPix_t, wWinPix_t, const char *, + const char *, const char *, + long, wWinCallBack_p, void * ); wWin_p wMain( int, char *[] ); void wWinSetBigIcon( wWin_p, wIcon_p ); @@ -273,7 +293,9 @@ void wMessage( wWin_p, const char *, wBool_t ); void wWinTop( wWin_p ); void wWinDoCancel( wWin_p ); void wWinBlockEnable( wBool_t ); -void wSetGeometry(wWin_p, wWinPix_t min_width, wWinPix_t max_width, wWinPix_t min_height, wWinPix_t max_height, wWinPix_t base_width, wWinPix_t base_height, double aspect_ratio); +void wSetGeometry(wWin_p, wWinPix_t min_width, wWinPix_t max_width, + wWinPix_t min_height, wWinPix_t max_height, wWinPix_t base_width, + wWinPix_t base_height, double aspect_ratio); int wCreateSplash( char *appName, char *appVer ); int wSetSplashInfo( char *msg ); @@ -293,6 +315,7 @@ void wDestroySplash( void ); //#define BO_ENTER (1L<<10) #define BO_ENTER 0 #define BO_REPEAT (1L<<11) +#define BO_IGNFOCUS (1L<<12) wWinPix_t wLabelWidth( const char * ); const char * wControlGetHelp( wControl_p ); @@ -322,9 +345,10 @@ void wControlLinkedActive( wControl_p b, int active ); #define BS_TRIM (1<<12) /* Creation CallBacks */ typedef void (*wStringCallBack_p)( const char *, void *); -wString_p wStringCreate( wWin_p, wWinPix_t, wWinPix_t, const char *, const char *, long, - wWinPix_t, char *, wIndex_t, wStringCallBack_p, - void * ); +wString_p wStringCreate( wWin_p, wWinPix_t, wWinPix_t, const char *, + const char *, long, + wWinPix_t, char *, wIndex_t, wStringCallBack_p, + void * ); void wStringSetValue( wString_p, const char * ); void wStringSetWidth( wString_p, wWinPix_t ); const char * wStringGetValue( wString_p ); @@ -336,14 +360,16 @@ const char * wStringGetValue( wString_p ); */ /* Creation CallBacks */ -typedef void (*wIntegerCallBack_p)( long, void * , int); -typedef void (*wFloatCallBack_p)( double, void * , int); -wInteger_p wIntegerCreate( wWin_p, wWinPix_t, wWinPix_t, const char *, const char *, long, - wWinPix_t, wInteger_t, wInteger_t, wInteger_t *, - wIntegerCallBack_p, void * ); -wFloat_p wFloatCreate( wWin_p, wWinPix_t, wWinPix_t, const char *, const char *, long, - wWinPix_t, double, double, double *, - wFloatCallBack_p, void * ); +typedef void (*wIntegerCallBack_p)( long, void *, int); +typedef void (*wFloatCallBack_p)( double, void *, int); +wInteger_p wIntegerCreate( wWin_p, wWinPix_t, wWinPix_t, const char *, + const char *, long, + wWinPix_t, wInteger_t, wInteger_t, wInteger_t *, + wIntegerCallBack_p, void * ); +wFloat_p wFloatCreate( wWin_p, wWinPix_t, wWinPix_t, const char *, + const char *, long, + wWinPix_t, double, double, double *, + wFloatCallBack_p, void * ); void wIntegerSetValue( wInteger_p, wInteger_t ); void wFloatSetValue( wFloat_p, double ); wInteger_t wIntegerGetValue( wInteger_p ); @@ -356,7 +382,8 @@ double wFloatGetValue( wFloat_p ); */ /* Creation CallBacks */ -typedef void (*wListCallBack_p)( wIndex_t, const char *, wIndex_t, void *, void * ); +typedef void (*wListCallBack_p)( wIndex_t, const char *, wIndex_t, void *, + void * ); /* Creation Options */ #define BL_DUP (1L<<16) @@ -372,12 +399,17 @@ typedef void (*wListCallBack_p)( wIndex_t, const char *, wIndex_t, void *, void /* lists, droplists and combo boxes */ -wList_p wListCreate( wWin_p, wWinPix_t, wWinPix_t, const char *, const char *, long, - long, wWinPix_t, int, wWinPix_t *, wBool_t *, const char **, long *, wListCallBack_p, void * ); -wList_p wDropListCreate( wWin_p, wWinPix_t, wWinPix_t, const char *, const char *, long, - long, wWinPix_t, long *, wListCallBack_p, void * ); - -wList_p wComboListCreate(wWin_p parent, wWinPix_t x, wWinPix_t y, const char *helpStr, const char *labelStr, long option, long number, wWinPix_t width, long *valueP, wListCallBack_p action, void *data); +wList_p wListCreate( wWin_p, wWinPix_t, wWinPix_t, const char *, const char *, + long, + long, wWinPix_t, int, wWinPix_t *, wBool_t *, const char **, long *, + wListCallBack_p, void * ); +wList_p wDropListCreate( wWin_p, wWinPix_t, wWinPix_t, const char *, + const char *, long, + long, wWinPix_t, long *, wListCallBack_p, void * ); + +wList_p wComboListCreate(wWin_p parent, wWinPix_t x, wWinPix_t y, + const char *helpStr, const char *labelStr, long option, long number, + wWinPix_t width, long *valueP, wListCallBack_p action, void *data); void wListClear(wList_p b); void wListSetIndex(wList_p b, int element); wIndex_t wListFindValue(wList_p b, const char *val); @@ -387,10 +419,12 @@ void *wListGetItemContext(wList_p b, wIndex_t inx); wBool_t wListGetItemSelected(wList_p b, wIndex_t inx); wIndex_t wListGetSelectedCount(wList_p b); void wListSelectAll(wList_p bl); -wBool_t wListSetValues(wList_p b, wIndex_t row, const char *labelStr, wIcon_p bm, void *itemData); +wBool_t wListSetValues(wList_p b, wIndex_t row, const char *labelStr, + wIcon_p bm, void *itemData); void wListDelete(wList_p b, wIndex_t inx); int wListGetColumnWidths(wList_p bl, int colCnt, wWinPix_t *colWidths); -wIndex_t wListAddValue(wList_p b, const char *labelStr, wIcon_p bm, void *itemData); +wIndex_t wListAddValue(wList_p b, const char *labelStr, wIcon_p bm, + void *itemData); void wListSetSize(wList_p bl, wWinPix_t w, wWinPix_t h); wIndex_t wListGetValues( wList_p, char *, int, void * *, void * * ); @@ -413,7 +447,7 @@ void wListSetEditable( wList_p, wBool_t ); #define wMessageCreate( w, p1, p2, l, p3, m ) wMessageCreateEx( w, p1, p2, l, p3, m, 0 ) wMessage_p wMessageCreateEx( wWin_p, wWinPix_t, wWinPix_t, const char *, - wWinPix_t, const char *, long ); + wWinPix_t, const char *, long ); void wMessageSetValue( wMessage_p, const char * ); void wMessageSetWidth( wMessage_p, wWinPix_t ); @@ -430,7 +464,7 @@ typedef struct { int width; int x0, y0; int x1, y1; - } wLines_t, * wLines_p; +} wLines_t, * wLines_p; wLine_p wLineCreate( wWin_p, const char *, int, wLines_t *); @@ -447,8 +481,9 @@ wLine_p wLineCreate( wWin_p, const char *, int, wLines_t *); #define BT_DOBOLD (1L<<21) #define BT_TOP (1L<<20) /* Show the top of the text */ -wText_p wTextCreate( wWin_p, wWinPix_t, wWinPix_t, const char *, const char *, long, - wWinPix_t, wWinPix_t ); +wText_p wTextCreate( wWin_p, wWinPix_t, wWinPix_t, const char *, const char *, + long, + wWinPix_t, wWinPix_t ); void wTextClear( wText_p ); void wTextAppend( wText_p, const char * ); void wTextSetReadonly( wText_p, wBool_t ); @@ -459,7 +494,8 @@ void wTextReadFile( wText_p, const char * ); wBool_t wTextSave( wText_p, const char * ); wBool_t wTextPrint( wText_p ); void wTextSetSize( wText_p, wWinPix_t, wWinPix_t ); -void wTextComputeSize( wText_p, wWinPix_t, wWinPix_t, wWinPix_t *, wWinPix_t * ); +void wTextComputeSize( wText_p, wWinPix_t, wWinPix_t, wWinPix_t *, + wWinPix_t * ); void wTextSetPosition( wText_p bt, int pos ); @@ -491,14 +527,16 @@ typedef enum { wDrawLineDashDot, wDrawLineDashDotDot, wDrawLineCenter, - wDrawLinePhantom} - wDrawLineType_e; + wDrawLinePhantom +} +wDrawLineType_e; typedef enum { wPolyLineStraight, wPolyLineSmooth, - wPolyLineRound} - wPolyLine_e; + wPolyLineRound +} +wPolyLine_e; typedef int wAction_t; #define wActionMove (1) @@ -518,7 +556,10 @@ typedef int wAction_t; #define wActionScrollDown (15) #define wActionScrollLeft (16) #define wActionScrollRight (17) -#define wActionLast wActionScrollRight +#define wActionMDown (18) +#define wActionMDrag (19) +#define wActionMUp (20) +#define wActionLast wActionMUp #define wRGB(R,G,B)\ @@ -527,7 +568,8 @@ typedef int wAction_t; /* Creation CallBacks */ typedef void (*wDrawRedrawCallBack_p)( wDraw_p, void *, wWinPix_t, wWinPix_t ); -typedef void (*wDrawActionCallBack_p)( wDraw_p, void*, wAction_t, wDrawPix_t, wDrawPix_t ); +typedef void (*wDrawActionCallBack_p)( wDraw_p, void*, wAction_t, wDrawPix_t, + wDrawPix_t ); /* Creation Options */ #define BD_TICKS (1L<<25) @@ -538,31 +580,37 @@ typedef void (*wDrawActionCallBack_p)( wDraw_p, void*, wAction_t, wDrawPix_t, wD /* Create: */ wDraw_p wDrawCreate( wWin_p, wWinPix_t, wWinPix_t, const char *, long, - wWinPix_t, wWinPix_t, void *, - wDrawRedrawCallBack_p, wDrawActionCallBack_p ); + wWinPix_t, wWinPix_t, void *, + wDrawRedrawCallBack_p, wDrawActionCallBack_p ); /* Draw: */ void wDrawLine( wDraw_p, wDrawPix_t, wDrawPix_t, wDrawPix_t, wDrawPix_t, - wDrawWidth, wDrawLineType_e, wDrawColor, - wDrawOpts ); + wDrawWidth, wDrawLineType_e, wDrawColor, + wDrawOpts ); #define double2wAngle_t( A ) (A) typedef double wAngle_t; -void wDrawArc( wDraw_p, wDrawPix_t, wDrawPix_t, wDrawPix_t, wAngle_t, wAngle_t, - int, wDrawWidth, wDrawLineType_e, wDrawColor, - wDrawOpts ); +void wDrawArc( wDraw_p, wDrawPix_t, wDrawPix_t, wDrawPix_t, wAngle_t, + wAngle_t, + int, wDrawWidth, wDrawLineType_e, wDrawColor, + wDrawOpts ); void wDrawPoint( wDraw_p, wDrawPix_t, wDrawPix_t, wDrawColor, wDrawOpts ); #define double2wFontSize_t( FS ) (FS) typedef double wFontSize_t; -void wDrawString( wDraw_p, wDrawPix_t, wDrawPix_t, wAngle_t, const char *, wFont_p, - wFontSize_t, wDrawColor, wDrawOpts ); -void wDrawFilledRectangle( wDraw_p, wDrawPix_t, wDrawPix_t, wDrawPix_t, wDrawPix_t, - wDrawColor, wDrawOpts ); -void wDrawPolygon( wDraw_p, wDrawPix_t [][2], wPolyLine_e [], wIndex_t, wDrawColor, wDrawWidth, wDrawLineType_e, - wDrawOpts, int, int ); -void wDrawFilledCircle( wDraw_p, wDrawPix_t, wDrawPix_t, wDrawPix_t, wDrawColor, wDrawOpts ); - -void wDrawGetTextSize( wDrawPix_t *, wDrawPix_t *, wDrawPix_t *, wDrawPix_t *, wDraw_p, const char *, wFont_p, - wFontSize_t ); +void wDrawString( wDraw_p, wDrawPix_t, wDrawPix_t, wAngle_t, const char *, + wFont_p, + wFontSize_t, wDrawColor, wDrawOpts ); +void wDrawFilledRectangle( wDraw_p, wDrawPix_t, wDrawPix_t, wDrawPix_t, + wDrawPix_t, + wDrawColor, wDrawOpts ); +void wDrawPolygon( wDraw_p, wDrawPix_t [][2], wPolyLine_e [], wIndex_t, + wDrawColor, wDrawWidth, wDrawLineType_e, + wDrawOpts, int, int ); +void wDrawFilledCircle( wDraw_p, wDrawPix_t, wDrawPix_t, wDrawPix_t, + wDrawColor, wDrawOpts ); + +void wDrawGetTextSize( wDrawPix_t *, wDrawPix_t *, wDrawPix_t *, wDrawPix_t *, + wDraw_p, const char *, wFont_p, + wFontSize_t ); void wDrawClear( wDraw_p ); void wDrawClearTemp( wDraw_p ); wBool_t wDrawSetTempMode( wDraw_p, wBool_t ); @@ -580,9 +628,10 @@ void wDrawSetSize( wDraw_p, wWinPix_t, wWinPix_t, void * ); void wDrawGetSize( wDraw_p, wWinPix_t *, wWinPix_t * ); /* Bitmaps */ -wDrawBitMap_p wDrawBitMapCreate( wDraw_p, int, int, int, int, const unsigned char * ); +wDrawBitMap_p wDrawBitMapCreate( wDraw_p, int, int, int, int, + const unsigned char * ); void wDrawBitMap( wDraw_p, wDrawBitMap_p, wDrawPix_t, wDrawPix_t, - wDrawColor, wDrawOpts ); + wDrawColor, wDrawOpts ); wDraw_p wBitMapCreate( wWinPix_t, wWinPix_t, int ); wBool_t wBitMapDelete( wDraw_p ); @@ -594,7 +643,8 @@ void wDrawSaveImage( wDraw_p ); void wDrawRestoreImage( wDraw_p ); int wDrawSetBackground( wDraw_p, char * path, char ** error); void wDrawCloneBackground(wDraw_p from, wDraw_p to); -void wDrawShowBackground( wDraw_p, wWinPix_t pos_x, wWinPix_t pos_y, wWinPix_t width, wAngle_t angle, int screen); +void wDrawShowBackground( wDraw_p, wWinPix_t pos_x, wWinPix_t pos_y, + wWinPix_t width, wAngle_t angle, int screen); /*------------------------------------------------------------------------------ * @@ -665,17 +715,19 @@ typedef enum { wAccelKey_F10, wAccelKey_F11, wAccelKey_F12, - wAccelKey_Numpad_Add, - wAccelKey_Numpad_Subtract, - wAccelKey_LineFeed } - wAccelKey_e; + wAccelKey_Numpad_Add, + wAccelKey_Numpad_Subtract, + wAccelKey_LineFeed +} +wAccelKey_e; typedef enum { wModKey_None, wModKey_Alt, wModKey_Shift, - wModKey_Ctrl } - wModKey_e; + wModKey_Ctrl +} +wModKey_e; void wDoAccelHelp( wAccelKey_e key, void * ); @@ -689,13 +741,14 @@ typedef void (*wMenuTraceCallBack_p)( wMenu_p, const char *, void * ); /* Creation Options */ #define BM_ICON (1L<<0) -wMenu_p wMenuCreate( wWin_p, wWinPix_t, wWinPix_t, const char *, const char *, long ); +wMenu_p wMenuCreate( wWin_p, wWinPix_t, wWinPix_t, const char *, const char *, + long ); wMenu_p wMenuBarAdd( wWin_p, const char *, const char * ); wMenuPush_p wMenuPushCreate( wMenu_p, const char *, const char *, long, - wMenuCallBack_p, void * ); + wMenuCallBack_p, void * ); wMenuRadio_p wMenuRadioCreate( wMenu_p, const char *, const char *, long, - wMenuCallBack_p, void * ); + wMenuCallBack_p, void * ); wMenu_p wMenuMenuCreate( wMenu_p, const char *, const char * ); wMenu_p wMenuPopupCreate( wWin_p, const char * ); @@ -708,7 +761,8 @@ void wMenuListDelete( wMenuList_p, const char * ); const char * wMenuListGet( wMenuList_p, int, void ** ); void wMenuListClear( wMenuList_p ); -wMenuToggle_p wMenuToggleCreate( wMenu_p, const char *, const char *, long, wBool_t, wMenuCallBack_p, void * ); +wMenuToggle_p wMenuToggleCreate( wMenu_p, const char *, const char *, long, + wBool_t, wMenuCallBack_p, void * ); wBool_t wMenuToggleSet( wMenuToggle_p, wBool_t ); wBool_t wMenuToggleGet( wMenuToggle_p ); void wMenuToggleEnable( wMenuToggle_p, wBool_t ); @@ -734,11 +788,13 @@ struct wFilSel_t; typedef enum { FS_SAVE, FS_LOAD, - FS_UPDATE } - wFilSelMode_e; + FS_UPDATE +} +wFilSelMode_e; typedef int (*wFilSelCallBack_p)( int files, char ** fileName, void * ); -struct wFilSel_t * wFilSelCreate(wWin_p, wFilSelMode_e, int, const char *, const char *, - wFilSelCallBack_p, void * ); +struct wFilSel_t * wFilSelCreate(wWin_p, wFilSelMode_e, int, const char *, + const char *, + wFilSelCallBack_p, void * ); int wFilSelect( struct wFilSel_t *, const char * ); @@ -750,8 +806,9 @@ int wFilSelect( struct wFilSel_t *, const char * ); typedef void (*wColorSelectButtonCallBack_p)( void *, wDrawColor ); wBool_t wColorSelect( const char *, wDrawColor * ); -wButton_p wColorSelectButtonCreate( wWin_p, wWinPix_t, wWinPix_t, const char *, const char *, - long, wWinPix_t, wDrawColor *, wColorSelectButtonCallBack_p, void * ); +wButton_p wColorSelectButtonCreate( wWin_p, wWinPix_t, wWinPix_t, const char *, + const char *, + long, wWinPix_t, wDrawColor *, wColorSelectButtonCallBack_p, void * ); void wColorSelectButtonSetColor( wButton_p, wDrawColor ); wDrawColor wColorSelectButtonGetColor( wButton_p ); @@ -768,20 +825,30 @@ char * wPrefGetStringExt(const char *section, const char *name); void wPrefsLoad(char * name); void wPrefSetInteger(const char *, const char *, long ); -wBool_t wPrefGetInteger(const char *section, const char *name, long *result, long defaultValue); -wBool_t wPrefGetIntegerBasic(const char *section, const char *name, long *result, long defaultValue); -wBool_t wPrefGetIntegerExt(const char *section, const char *name, long *result, long defaultValue); +wBool_t wPrefGetInteger(const char *section, const char *name, long *result, + long defaultValue); +wBool_t wPrefGetIntegerBasic(const char *section, const char *name, + long *result, long defaultValue); +wBool_t wPrefGetIntegerExt(const char *section, const char *name, long *result, + long defaultValue); void wPrefSetFloat( const char *, const char *, double ); -wBool_t wPrefGetFloat(const char *section, const char *name, double *result, double defaultValue); -wBool_t wPrefGetFloatBasic(const char *section, const char *name, double *result, double defaultValue); -wBool_t wPrefGetFloatExt(const char *section, const char *name, double *result, double defaultValue); - -const char * wPrefGetSectionItem( const char * sectionName, wIndex_t * index, const char ** name ); +wBool_t wPrefGetFloat(const char *section, const char *name, double *result, + double defaultValue); +wBool_t wPrefGetFloatBasic(const char *section, const char *name, + double *result, double defaultValue); +wBool_t wPrefGetFloatExt(const char *section, const char *name, double *result, + double defaultValue); + +//const char * wPrefGetSectionItem( const char * sectionName, wIndex_t * index, +// const char ** name ); void wPrefFlush( char * name); -void wPrefReset( void ); +void wPrefReset( void ); +void wPrefTokenize(char* line, char** section, char** name, char** value); +void wPrefFormatLine(const char* section, const char* name, + const char* value, char* result); -void CleanupCustom( void ); +//void CleanupCustom( void ); /*------------------------------------------------------------------------------ * @@ -789,12 +856,12 @@ void CleanupCustom( void ); */ wStatus_p wStatusCreate( - wWin_p parent, - wWinPix_t x, - wWinPix_t y, - const char * labelStr, - wWinPix_t width, - const char *message ); + wWin_p parent, + wWinPix_t x, + wWinPix_t y, + const char * labelStr, + wWinPix_t width, + const char *message ); wWinPix_t wStatusGetWidth(const char *testString); wWinPix_t wStatusGetHeight(long flags); @@ -802,6 +869,18 @@ wWinPix_t wStatusGetHeight(long flags); void wStatusSetValue(wStatus_p b, const char * arg); void wStatusSetWidth(wStatus_p b, wWinPix_t width); +/*------------------------------------------------------------------------------ + * + * System-Information + */ + +char* wGetTempPath(void); +char* wGetOSVersion(void); +char* wGetProfileFilename(void); +char* wGetUserID(void); +const char* wGetUserHomeRootDir(void); +const char *wGetPlatformVersion(void); + /*------------------------------------------------------------------------------- * User Preferences */ |