diff options
author | Jörg Frings-Fürst <debian@jff-webhosting.net> | 2016-12-28 16:52:56 +0100 |
---|---|---|
committer | Jörg Frings-Fürst <debian@jff-webhosting.net> | 2016-12-28 16:52:56 +0100 |
commit | 7b358424ebad9349421acd533c2fa1cbf6cf3e3e (patch) | |
tree | 686678532eefed525c242fd214d0cfb2914726c5 /app/wlib/test/btest.c |
Initial import of xtrkcad version 1:4.0.2-2
Diffstat (limited to 'app/wlib/test/btest.c')
-rw-r--r-- | app/wlib/test/btest.c | 212 |
1 files changed, 212 insertions, 0 deletions
diff --git a/app/wlib/test/btest.c b/app/wlib/test/btest.c new file mode 100644 index 0000000..6042229 --- /dev/null +++ b/app/wlib/test/btest.c @@ -0,0 +1,212 @@ +#include <stdio.h> +#include <stdlib.h> +/*#include "common.h"*/ +/*#include "utility.h"*/ +#include "wlib.h" +#include "dtest.bmp" +#include "bits.bmp" + +#define TRUE (1) +#define FALSE (0) + + wWin_p mainW; + wMenu_p m00, m01, m02; + wWin_p w1, w2, w3, w4, w5, w6, w7, w8; + wDraw_p d[9]; + wMenu_p m3, m4, m7, m8; + wText_p txt; +wBool_t doresize = FALSE; + +static void doExit( void * data ) +{ + wExit(0); +} + +/*static void doFont( void * data ) +{ + char * f; + wSelectFont(); + f = wCurFont(); + wMessage( w5, f, FALSE ); +}*/ + + +static void doRestore( void * data ) +{ + wDraw_p d = (wDraw_p) data; + wDrawSetSize( d, 200, 200 ); +} + + +static void mainEvent( wWin_p w, winProcEvent e, void * data ) +{ + wPos_t width, height; + switch( e ) { + case wResize_e: + wWinGetSize( w, &width, &height ); + wTextSetSize( txt, width, height ); + break; + default: + ; + } +} + +static void winEvent( wWin_p w, winProcEvent e, void * data ) +{ + wPos_t width, height; + wIndex_t inx; + char msg[80]; + switch( e ) { + case wResize_e: + inx = (wIndex_t)data; + wWinGetSize( w, &width, &height ); + sprintf( msg, "%s: %d x %d\n", wWinGetTitle(w), width, height ); + wTextAppend( txt, msg ); + if ( doresize) + wDrawSetSize( d[inx], width-4, height-4 ); + break; + default: + ; + } +} + +wDrawBitMap_p bm_w8; +wDrawBitMap_p bm_w4; + +void doMouse( wAction_t action, double x, double y ) +{ + char buff[80]; + wPos_t ix, iy; + ix = x * wDrawGetDPI( d[1] ); + iy = y * wDrawGetDPI( d[1] ); + sprintf( buff, "%d: [%0.3f %0.3f] ( %d %d )\n", (int)action, x, y, ix, iy ); + wTextAppend( txt, buff ); +#ifdef LATER + switch ( action ) { + case wActionDown: + + wDrawBitMap( d[4], bm_w4, x, y, wDrawColorRed, wDrawOptTemp ); + oldX = x; + oldY = y; + break; + case wActionMove: + wDrawBitMap( d[4], bm_w4, oldX, oldY, wDrawColorRed, wDrawOptTemp ); + wDrawBitMap( d[4], bm_w4, x, y, wDrawColorRed, wDrawOptTemp ); + oldX = x; + oldY = y; + break; + case wActionUp: + wDrawBitMap( d[4], bm_w4, oldX, oldY, wDrawColorRed, wDrawOptTemp ); + wDrawBitMap( d[4], bm_w4, x, y, wDrawColorRed, 0 ); + break; + } +#endif +} + +void doBitMap( wAction_t action, double x, double y ) +{ + static double oldX, oldY; + switch ( action ) { + case wActionDown: + + wDrawBitMap( d[4], bm_w4, x, y, wDrawColorRed, wDrawOptTemp ); + oldX = x; + oldY = y; + break; + case wActionMove: + wDrawBitMap( d[4], bm_w4, oldX, oldY, wDrawColorRed, wDrawOptTemp ); + wDrawBitMap( d[4], bm_w4, x, y, wDrawColorRed, wDrawOptTemp ); + oldX = x; + oldY = y; + break; + case wActionUp: + wDrawBitMap( d[4], bm_w4, oldX, oldY, wDrawColorRed, wDrawOptTemp ); + wDrawBitMap( d[4], bm_w4, x, y, wDrawColorRed, 0 ); + break; + } +} + +static wLines_t lines[] = { + { 0, 2, 2, 198, 2 }, + { 0, 198, 2, 198, 198 }, + { 0, 198, 198, 2, 198 }, + { 0, 2, 198, 2, 2 }, + { 0, 2, 2, 198, 198 }, + { 0, 2, 198, 198, 2 } }; + +wWin_p wMain( int argc, char * argv[] ) +{ + + mainW = wWinMainCreate( "dtest", 0, 0, "Help", "Main", F_MENUBAR|F_AUTOSIZE, mainEvent, NULL ); + wWinSetIcon( mainW, dtest_width, dtest_height, dtest_bits ); + m00 = wMenuBarAdd( mainW, "menu0-0", "&Restore" ); + m01 = wMenuBarAdd( mainW, "menu0-1", "&Message" ); + m02 = wMenuBarAdd( mainW, "menu0-2", "M&isc" ); + txt = wTextCreate( mainW, 0, 0, NULL, NULL, BT_CHARUNITS, 40, 15 ); + + w1 = wWinPopupCreate( mainW, 2, 2, "Help1", "1", F_AUTOSIZE, winEvent, (void*)1 ); + d[1] = wDrawCreate( w1, 2, 2, "Draw-1", 0, 200, 200, w1, NULL, doMouse ); + wLineCreate( w1, "", 6, lines ); + + w2 = wWinPopupCreate( mainW, 2, 2, "Help2", "2 Resize", F_AUTOSIZE|F_RESIZE, winEvent, (void*)2 ); + d[2] = wDrawCreate( w2, 2, 2, "Draw-1", 0, 200, 200, w2, NULL, doMouse ); + wLineCreate( w2, "", 6, lines ); + + w3 = wWinPopupCreate( mainW, 2, 2, "Help3", "3 MenuBar", F_AUTOSIZE|F_MENUBAR, winEvent, (void*)3 ); + d[3] = wDrawCreate( w3, 2, 2, "Draw-3", 0, 200, 200, w3, NULL, doMouse ); + m3 = wMenuBarAdd( w3, "HelpMB3", "Menu3" ); + wLineCreate( w3, "", 6, lines ); + + w4 = wWinPopupCreate( mainW, 2, 2, "Help4", "4 Resize|MenuBar", F_AUTOSIZE|F_MENUBAR|F_RESIZE, winEvent, (void*)4 ); + d[4] = wDrawCreate( w4, 2, 2, "Draw-4", 0, 200, 200, w4, NULL, doBitMap ); + bm_w4 = wDrawBitMapCreate( d[4], bits_width, bits_height, 0, 0, bits_bits ); + m4 = wMenuBarAdd( w4, "HelpMB4", "Menu4" ); + wLineCreate( w4, "", 6, lines ); + +#ifdef LATER + w5 = wWinPopupCreate( mainW, 3, 3, "Help5", "5 Footer", F_AUTOSIZE|F_FOOTER, winEvent, (void*)5 ); + d[5] = wDrawCreate( w5, 2, 2, "Draw-5", 0, 200, 200, w5, NULL, NULL ); + wLineCreate( w5, "", 6, lines ); + + w6 = wWinPopupCreate( mainW, 3, 3, "Help6", "6 Footer|Resize", F_AUTOSIZE|F_FOOTER|F_RESIZE, winEvent, (void*)6 ); + d[6] = wDrawCreate( w6, 2, 2, "Draw-6", 0, 200, 200, w6, NULL, NULL ); + wLineCreate( w6, "", 6, lines ); + + w7 = wWinPopupCreate( mainW, 3, 3, "Help7", "7 Footer|MenuBar", F_AUTOSIZE|F_FOOTER|F_MENUBAR, winEvent, (void*)7 ); + d[7] = wDrawCreate( w7, 2, 2, "Draw-7", 0, 200, 200, w7, NULL, NULL ); + m7 = wMenuBarAdd( w7, "HelpMB7", "Menu7" ); + wLineCreate( w7, "", 6, lines ); + + w8 = wWinPopupCreate( mainW, 3, 3, "Help8", "8 Footer|Resize|MenuBar", F_AUTOSIZE|F_FOOTER|F_MENUBAR|F_RESIZE, winEvent, (void*)8 ); + d[8] = wDrawCreate( w8, 2, 2, "Draw-8", 0, 200, 200, w8, NULL, doMouse ); + bm_w8 = wDrawBitMapCreate( d[8], bits_width, bits_height, 0, 0, bits_bits ); + m8 = wMenuBarAdd( w8, "HelpMB8", "Menu8" ); + wLineCreate( w8, "", 6, lines ); +#endif + + wMenuPushCreate( m00, "menu0-1", "&1", doRestore, (void*)d[1] ); + wMenuPushCreate( m00, "menu0-2", "&2", doRestore, (void*)d[2] ); + wMenuPushCreate( m00, "menu0-3", "&3", doRestore, (void*)d[3] ); + wMenuPushCreate( m00, "menu0-4", "&4", doRestore, (void*)d[4] ); + wMenuPushCreate( m00, "menu0-5", "&5", doRestore, (void*)d[5] ); + wMenuPushCreate( m00, "menu0-6", "&6", doRestore, (void*)d[6] ); + wMenuPushCreate( m00, "menu0-7", "&7", doRestore, (void*)d[7] ); + wMenuPushCreate( m00, "menu0-8", "&8", doRestore, (void*)d[8] ); + + + wMenuPushCreate( m02, "menu2-1", "&Exit", doExit, NULL ); +/* wMenuPushCreate( m02, "menu2-2", "&Font", doFont, NULL );*/ + + wWinShow( w1, TRUE ); + wWinShow( w2, TRUE ); + wWinShow( w3, TRUE ); + wWinShow( w4, TRUE ); +#ifdef LATER + wWinShow( w5, TRUE ); + wWinShow( w6, TRUE ); + wWinShow( w7, TRUE ); + wWinShow( w8, TRUE ); +#endif + + return mainW; +} |