This list is closed, nobody may subscribe to it.
2007 |
Jan
|
Feb
(1) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
---|---|---|---|---|---|---|---|---|---|---|---|---|
2008 |
Jan
(103) |
Feb
(26) |
Mar
(31) |
Apr
(13) |
May
(4) |
Jun
(10) |
Jul
(7) |
Aug
(2) |
Sep
(5) |
Oct
(3) |
Nov
|
Dec
|
2009 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(39) |
Jun
(59) |
Jul
(26) |
Aug
(13) |
Sep
(31) |
Oct
(15) |
Nov
(8) |
Dec
(8) |
2010 |
Jan
(4) |
Feb
|
Mar
|
Apr
(7) |
May
(1) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
Update of /cvsroot/xtrkcad-fork/xtrkcad/app/wlib/gtklib In directory fdv4jf1.ch3.sourceforge.com:/tmp/cvs-serv1962/xtrkcad/app/wlib/gtklib Modified Files: gtkfont.c gtkdraw-cairo.c gtkdraw.c gtksimple.c gtkint.h ChangeLog Removed Files: italic.bmp bold.bmp Log Message: ENH: replace the old font select dialog with the GTK standard one, and some code cleanup Index: gtkdraw-cairo.c =================================================================== RCS file: /cvsroot/xtrkcad-fork/xtrkcad/app/wlib/gtklib/gtkdraw-cairo.c,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** gtkdraw-cairo.c 23 Sep 2009 03:38:36 -0000 1.8 --- gtkdraw-cairo.c 25 Sep 2009 05:38:15 -0000 1.9 *************** *** 34,38 **** #include "gdk/gdkkeysyms.h" - long wDebugFont = 0; static long drawVerbose = 0; --- 34,37 ---- *************** *** 61,65 **** wDrawWidth lineWidth; wDrawOpts opts; - PangoFontDescription * fontDesc; wPos_t maxW; wPos_t maxH; --- 60,63 ---- *************** *** 347,455 **** ******************************************************************************/ ! static double fontFactor = 1.0; ! ! /* TODO: figure out what this formula means and document it */ ! #define FONTSIZE_TO_PANGOSIZE(fs) ((gint) (fs * fontFactor + .5)) ! ! #define FC_SIZE (6) ! typedef struct fontCache_t * fontCache_p; ! struct fontCache_t { ! fontCache_p next, prev; ! const char * name; ! int size; ! PangoFontDescription * fd; ! }; ! static struct fontCache_t fontCacheList[FC_SIZE]; ! static fontCache_p fontCache = NULL; ! ! ! static void printFontCache( const char * title ) ! { ! fontCache_p f = fontCache; ! printf("FC(%s):", title ); ! while (1) { ! if (f->name) ! printf(" %s:%d", f->name, f->size ); ! else ! printf(" unused"); ! f = f->next; ! if (f==fontCache) ! break; ! } ! printf("\n"); ! } ! ! EXPORT int wLoadFont( ! wDraw_p bd, ! const char * fontName, ! wFontSize_t fs, ! int force ) ! { ! int size; ! PangoFontDescription * fd; ! char tmp[1024]; ! fontCache_p fc; ! ! if (fontName == NULL) ! return FALSE; ! ! if (fontCache == NULL) { ! fontCache = fontCacheList; ! for ( fc = fontCache; fc < fontCache+FC_SIZE; fc++ ) { ! fc->next = fc+1; ! fc->prev = fc-1; ! fc->name = NULL; ! } ! fontCache->prev = fontCache+FC_SIZE-1; ! fontCache->prev->next = fontCache; ! } ! ! size = FONTSIZE_TO_PANGOSIZE(fs); ! if (size <= 1) ! return FALSE; ! if (!force) { ! fontCache_p f = fontCache; ! while ( 1 ) { ! if (f->name == NULL) ! break; ! if ( strcmp( f->name, fontName ) == 0 && f->size == size ) { ! if (f != fontCache) { ! f->prev->next = f->next; ! f->next->prev = f->prev; ! f->next = fontCache; ! f->prev = fontCache->prev; ! fontCache->prev->next = f; ! fontCache->prev = f; ! fontCache = f; ! if (wDebugFont>=3) ! printFontCache("LRU shuffle"); ! } ! bd->fontDesc = f->fd; ! return TRUE; ! } ! f = f->next; ! if ( f == fontCache ) ! break; ! } ! } ! sprintf( tmp, "%s %d", fontName, size ); ! if (wDebugFont >= 2) ! fprintf(stderr, "loadFont \"%s\"\n", tmp); ! fd = pango_font_description_from_string( tmp ); ! fontCache = fontCache->prev; ! fontCache->fd = fd; ! fontCache->size = size; ! fontCache->name = fontName; ! bd->fontDesc = fd; ! if (wDebugFont>=2) ! printFontCache("Load"); ! return TRUE; ! } ! ! ! EXPORT void gtkDrawString( wDraw_p bd, wPos_t x, wPos_t y, const char * s, wFontSize_t fs, wDrawColor color, --- 345,354 ---- ******************************************************************************/ ! EXPORT void wDrawString( wDraw_p bd, wPos_t x, wPos_t y, + wAngle_t a, const char * s, + wFont_p fp, wFontSize_t fs, wDrawColor color, *************** *** 458,533 **** PangoLayout *layout; GdkRectangle update_rect; ! wPos_t w; ! wPos_t h; ! PangoContext * context; ! PangoFontMetrics * metrics; gint ascent; gint descent; ! gchar * utf8; ! gint size = FONTSIZE_TO_PANGOSIZE(fs); x = INMAPX(bd,x); y = INMAPY(bd,y); - - utf8 = g_convert (s, -1, "UTF-8", "ISO-8859-1", - NULL, NULL,NULL); - if (wDebugFont>=2) { - fprintf(stderr, "Input String : %s\n", s ); - - fprintf(stderr, "Cairo String : %s\n", utf8 ); - } ! // draw text cairo_t* const cairo = selectContext(bd, 0, wDrawLineSolid, color, opts); ! layout = pango_cairo_create_layout(cairo); ! pango_layout_set_text(layout, utf8, -1); ! pango_layout_set_font_description(layout, bd->fontDesc); ! pango_font_description_set_size(bd->fontDesc, ! FONTSIZE_TO_PANGOSIZE(fs) * PANGO_SCALE); ! if (wDebugFont >= 3) ! fprintf(stderr, "drawing text: \"%s\", fontsize=%lf, fontname=\"%s\"\n", ! utf8, fs, pango_font_description_to_string(bd->fontDesc)); ! ! // width, height, ascent and descent ! pango_layout_get_pixel_size(layout, &w, &h); ! context = gtk_widget_get_pango_context(bd->widget); ! metrics = pango_context_get_metrics(context, bd->fontDesc, ! pango_context_get_language(context)); ! ascent = PANGO_PIXELS(pango_font_metrics_get_ascent(metrics)); ! descent = PANGO_PIXELS(pango_font_metrics_get_descent(metrics)); ! pango_font_metrics_unref(metrics); ! cairo_move_to(cairo, x, y-ascent); pango_cairo_show_layout(cairo, layout); ! ! g_object_unref(layout); ! if ( bd->delayUpdate || bd->widget == NULL) return; ! update_rect.x = x-1; ! update_rect.y = y-ascent-1; ! update_rect.width = w; ! update_rect.height = ascent+descent+2; ! gtk_widget_draw( bd->widget, &update_rect ); ! } ! ! EXPORT void wDrawString( ! wDraw_p bd, ! wPos_t x, wPos_t y, ! wAngle_t a, ! const char * s, ! wFont_p fp, ! wFontSize_t fs, ! wDrawColor color, ! wDrawOpts opts ) ! { ! const char * font; ! if ( bd == &psPrint_d ) { ! psPrintString( x, y, a, (char *) s, fp, fs, color, opts ); ! return; ! } ! font = gtkFontTranslate( fp ); ! if ( !wLoadFont( bd, font, fs, FALSE ) ) ! return; ! gtkDrawString( bd, x, y, s, fs, color, opts ); } --- 357,389 ---- PangoLayout *layout; GdkRectangle update_rect; ! int w; ! int h; gint ascent; gint descent; ! ! if ( bd == &psPrint_d ) { ! psPrintString( x, y, a, (char *) s, fp, fs, color, opts ); ! return; ! } x = INMAPX(bd,x); y = INMAPY(bd,y); ! /* draw text */ cairo_t* const cairo = selectContext(bd, 0, wDrawLineSolid, color, opts); ! layout = gtkFontCreatePangoLayout(bd->widget, cairo, fp, fs, s, ! (int *) &w, (int *) &h, ! (int *) &ascent, (int *) &descent); ! cairo_move_to(cairo, x, y - ascent); pango_cairo_show_layout(cairo, layout); ! gtkFontDestroyPangoLayout(layout); ! if (bd->delayUpdate || bd->widget == NULL) return; ! update_rect.x = (gint) x - 1; ! update_rect.y = (gint) y - (gint) ascent - 1; ! update_rect.width = (gint) w + 2; ! update_rect.height = (gint) ascent + (gint) descent + 2; ! gtk_widget_draw(bd->widget, &update_rect); } *************** *** 543,579 **** int textWidth; int textHeight; ! const char * font; ! PangoFontDescription * fontDesc; ! PangoLayout * layout; ! PangoContext * context; ! PangoFontMetrics * metrics; ! gint ascent; ! gint descent; ! gchar * utf8; *w = 0; *h = 0; - font = gtkFontTranslate( fp ); - if ( !wLoadFont( bd, font, fs, FALSE ) ) - return; - - utf8 = g_convert (s, -1, "UTF-8", "ISO-8859-1", NULL, NULL, NULL); - - // draw text in a temporary layout - layout = gtk_widget_create_pango_layout(bd->widget, utf8); - pango_layout_set_font_description(layout, bd->fontDesc); - pango_font_description_set_size(bd->fontDesc, - FONTSIZE_TO_PANGOSIZE(fs) * PANGO_SCALE); - - // width, height, ascent and descent - pango_layout_get_pixel_size(layout, &textWidth, &textHeight); - context = gtk_widget_get_pango_context(bd->widget); - metrics = pango_context_get_metrics(context, bd->fontDesc, - pango_context_get_language(context)); - ascent = PANGO_PIXELS(pango_font_metrics_get_ascent(metrics)); - descent = PANGO_PIXELS(pango_font_metrics_get_descent(metrics)); - pango_font_metrics_unref(metrics); ! g_object_unref(layout); *w = (wPos_t) textWidth; --- 399,412 ---- int textWidth; int textHeight; ! int ascent; ! int descent; *w = 0; *h = 0; ! gtkFontDestroyPangoLayout( ! gtkFontCreatePangoLayout(bd->widget, NULL, fp, fs, s, ! &textWidth, (int *) &textHeight, ! (int *) &ascent, (int *) &descent)); *w = (wPos_t) textWidth; *************** *** 582,586 **** if (debugWindow >= 3) ! fprintf(stderr,"text metrics: w=%d, h=%d, d=%d\n", *w, *h, *d); } --- 415,419 ---- if (debugWindow >= 3) ! fprintf(stderr, "text metrics: w=%d, h=%d, d=%d\n", *w, *h, *d); } *************** *** 592,598 **** *******************************************************************************/ - - - EXPORT void wDrawFilledRectangle( wDraw_p bd, --- 425,428 ---- Index: gtkdraw.c =================================================================== RCS file: /cvsroot/xtrkcad-fork/xtrkcad/app/wlib/gtklib/gtkdraw.c,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** gtkdraw.c 7 Aug 2009 03:32:06 -0000 1.8 --- gtkdraw.c 25 Sep 2009 05:38:15 -0000 1.9 *************** *** 34,38 **** #include "gdk/gdkkeysyms.h" - long wDebugFont = 0; static long drawVerbose = 0; --- 34,37 ---- *************** *** 61,65 **** wDrawWidth lineWidth; wDrawOpts opts; - PangoFontDescription * fontDesc; wPos_t maxW; wPos_t maxH; --- 60,63 ---- *************** *** 282,390 **** ******************************************************************************/ ! static double fontFactor = 1.0; ! ! /* TODO: figure out what this formula means and document it */ ! #define FONTSIZE_TO_PANGOSIZE(fs) ((gint) (fs * fontFactor + .5)) ! ! #define FC_SIZE (6) ! typedef struct fontCache_t * fontCache_p; ! struct fontCache_t { ! fontCache_p next, prev; ! const char * name; ! int size; ! PangoFontDescription * fd; ! }; ! static struct fontCache_t fontCacheList[FC_SIZE]; ! static fontCache_p fontCache = NULL; ! ! ! static void printFontCache( const char * title ) ! { ! fontCache_p f = fontCache; ! printf("FC(%s):", title ); ! while (1) { ! if (f->name) ! printf(" %s:%d", f->name, f->size ); ! else ! printf(" unused"); ! f = f->next; ! if (f==fontCache) ! break; ! } ! printf("\n"); ! } ! ! EXPORT int wLoadFont( ! wDraw_p bd, ! const char * fontName, ! wFontSize_t fs, ! int force ) ! { ! int size; ! PangoFontDescription * fd; ! char tmp[1024]; ! fontCache_p fc; ! ! if (fontName == NULL) ! return FALSE; ! ! if (fontCache == NULL) { ! fontCache = fontCacheList; ! for ( fc = fontCache; fc < fontCache+FC_SIZE; fc++ ) { ! fc->next = fc+1; ! fc->prev = fc-1; ! fc->name = NULL; ! } ! fontCache->prev = fontCache+FC_SIZE-1; ! fontCache->prev->next = fontCache; ! } ! ! size = FONTSIZE_TO_PANGOSIZE(fs); ! if (size <= 1) ! return FALSE; ! if (!force) { ! fontCache_p f = fontCache; ! while ( 1 ) { ! if (f->name == NULL) ! break; ! if ( strcmp( f->name, fontName ) == 0 && f->size == size ) { ! if (f != fontCache) { ! f->prev->next = f->next; ! f->next->prev = f->prev; ! f->next = fontCache; ! f->prev = fontCache->prev; ! fontCache->prev->next = f; ! fontCache->prev = f; ! fontCache = f; ! if (wDebugFont>=3) ! printFontCache("LRU shuffle"); ! } ! bd->fontDesc = f->fd; ! return TRUE; ! } ! f = f->next; ! if ( f == fontCache ) ! break; ! } ! } ! sprintf( tmp, "%s %d", fontName, size ); ! if (wDebugFont >= 2) ! fprintf(stderr, "loadFont \"%s\"\n", tmp); ! fd = pango_font_description_from_string( tmp ); ! fontCache = fontCache->prev; ! fontCache->fd = fd; ! fontCache->size = size; ! fontCache->name = fontName; ! bd->fontDesc = fd; ! if (wDebugFont>=2) ! printFontCache("Load"); ! return TRUE; ! } ! ! ! EXPORT void gtkDrawString( wDraw_p bd, wPos_t x, wPos_t y, const char * s, wFontSize_t fs, wDrawColor color, --- 280,289 ---- ******************************************************************************/ ! EXPORT void wDrawString( wDraw_p bd, wPos_t x, wPos_t y, + wAngle_t a, const char * s, + wFont_p fp, wFontSize_t fs, wDrawColor color, *************** *** 394,460 **** PangoLayout *layout; GdkRectangle update_rect; ! wPos_t w; ! wPos_t h; ! PangoContext * context; ! PangoFontMetrics * metrics; gint ascent; gint descent; - gchar * utf8; - gint size = FONTSIZE_TO_PANGOSIZE(fs); ! gc = selectGC( bd, 0, wDrawLineSolid, color, opts ); x = INMAPX(bd,x); y = INMAPY(bd,y); ! utf8 = g_convert (s, -1, "UTF-8", "ISO-8859-1", NULL, NULL, NULL); ! ! // draw text ! layout = gtk_widget_create_pango_layout( bd->widget, utf8); ! pango_layout_set_font_description(layout, bd->fontDesc); ! pango_font_description_set_size(bd->fontDesc, ! FONTSIZE_TO_PANGOSIZE(fs) * PANGO_SCALE); ! if (wDebugFont >= 3) ! fprintf(stderr, "drawing text: \"%s\", fontsize=%lf, fontname=\"%s\"\n", ! utf8, fs, pango_font_description_to_string(bd->fontDesc)); ! pango_layout_get_pixel_size(layout, &w, &h); ! gdk_draw_layout(bd->pixmap, gc, x, y, layout); ! // width, height, ascent and descent ! context = gtk_widget_get_pango_context(bd->widget); ! metrics = pango_context_get_metrics(context, bd->fontDesc, ! pango_context_get_language(context)); ! ascent = PANGO_PIXELS(pango_font_metrics_get_ascent(metrics)); ! descent = PANGO_PIXELS(pango_font_metrics_get_descent(metrics)); ! pango_font_metrics_unref(metrics); ! g_object_unref(layout); ! if ( bd->delayUpdate || bd->widget == NULL) return; ! update_rect.x = x-1; ! update_rect.y = y-ascent-1; ! update_rect.width = w; ! update_rect.height = ascent+descent+2; ! gtk_widget_draw( bd->widget, &update_rect ); ! } ! ! EXPORT void wDrawString( ! wDraw_p bd, ! wPos_t x, wPos_t y, ! wAngle_t a, ! const char * s, ! wFont_p fp, ! wFontSize_t fs, ! wDrawColor color, ! wDrawOpts opts ) ! { ! const char * font; ! if ( bd == &psPrint_d ) { ! psPrintString( x, y, a, (char *)s, fp, fs, color, opts ); ! return; ! } ! font = gtkFontTranslate( fp ); ! if ( !wLoadFont( bd, font, fs, FALSE ) ) ! return; ! gtkDrawString( bd, x, y, s, fs, color, opts ); } --- 293,324 ---- PangoLayout *layout; GdkRectangle update_rect; ! int w; ! int h; gint ascent; gint descent; ! if ( bd == &psPrint_d ) { ! psPrintString( x, y, a, (char *)s, fp, fs, color, opts ); ! return; ! } ! x = INMAPX(bd,x); y = INMAPY(bd,y); ! gc = selectGC( bd, 0, wDrawLineSolid, color, opts ); ! layout = gtkFontCreatePangoLayout(bd->widget, NULL, fp, fs, s, ! (int *) &w, (int *) &h, ! (int *) &ascent, (int *) &descent); ! gdk_draw_layout(bd->pixmap, gc, x, y - ascent, layout); ! gtkFontDestroyPangoLayout(layout); ! if (bd->delayUpdate || bd->widget == NULL) return; ! update_rect.x = (gint) x - 1; ! update_rect.y = (gint) y - ascent - 1; ! update_rect.width = (gint) w + 2; ! update_rect.height = (gint) ascent + (gint) descent + 2; ! gtk_widget_draw(bd->widget, &update_rect); } *************** *** 470,506 **** int textWidth; int textHeight; ! const char * font; ! PangoFontDescription * fontDesc; ! PangoLayout * layout; ! PangoContext * context; ! PangoFontMetrics * metrics; ! gint ascent; ! gint descent; ! gchar * utf8; *w = 0; *h = 0; - font = gtkFontTranslate( fp ); - if ( !wLoadFont( bd, font, fs, FALSE ) ) - return; ! utf8 = g_convert (s, -1, "UTF-8", "ISO-8859-1", NULL, NULL, NULL); ! ! // draw text in a temporary layout ! layout = gtk_widget_create_pango_layout(bd->widget, utf8); ! pango_layout_set_font_description(layout, bd->fontDesc); ! pango_font_description_set_size(bd->fontDesc, ! FONTSIZE_TO_PANGOSIZE(fs) * PANGO_SCALE); ! ! // width, height, ascent and descent ! pango_layout_get_pixel_size(layout, &textWidth, &textHeight); ! context = gtk_widget_get_pango_context(bd->widget); ! metrics = pango_context_get_metrics(context, bd->fontDesc, ! pango_context_get_language(context)); ! ascent = PANGO_PIXELS(pango_font_metrics_get_ascent(metrics)); ! descent = PANGO_PIXELS(pango_font_metrics_get_descent(metrics)); ! pango_font_metrics_unref(metrics); ! ! g_object_unref(layout); *w = (wPos_t) textWidth; --- 334,347 ---- int textWidth; int textHeight; ! int ascent; ! int descent; *w = 0; *h = 0; ! gtkFontDestroyPangoLayout( ! gtkFontCreatePangoLayout(bd->widget, NULL, fp, fs, s, ! &textWidth, (int *) &textHeight, ! (int *) &ascent, (int *) &descent)); *w = (wPos_t) textWidth; *************** *** 509,513 **** if (debugWindow >= 3) ! fprintf(stderr,"text metrics: w=%d, h=%d, d=%d\n", *w, *h, *d); } --- 350,354 ---- if (debugWindow >= 3) ! fprintf(stderr, "text metrics: w=%d, h=%d, d=%d\n", *w, *h, *d); } *************** *** 519,525 **** *******************************************************************************/ - - - EXPORT void wDrawFilledRectangle( wDraw_p bd, --- 360,363 ---- Index: ChangeLog =================================================================== RCS file: /cvsroot/xtrkcad-fork/xtrkcad/app/wlib/gtklib/ChangeLog,v retrieving revision 1.41 retrieving revision 1.42 diff -C2 -d -r1.41 -r1.42 *** ChangeLog 23 Sep 2009 18:57:29 -0000 1.41 --- ChangeLog 25 Sep 2009 05:38:15 -0000 1.42 *************** *** 1,2 **** --- 1,8 ---- + Sep 25, 2009 + ENH: Daniel Spagnol + gtkdraw-cairo.c gtkdraw.c gtkfont.c gtkint.h gtksimple.c wlib.h: + replace the old font select dialog with the GTK standard one, and some + code cleanup + Sep 23, 2009 FIX: Martin Fischer <m_f...@us...> Index: gtkint.h =================================================================== RCS file: /cvsroot/xtrkcad-fork/xtrkcad/app/wlib/gtklib/gtkint.h,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** gtkint.h 23 Sep 2009 02:56:18 -0000 1.5 --- gtkint.h 25 Sep 2009 05:38:15 -0000 1.6 *************** *** 151,154 **** --- 151,157 ---- /* gtkfont.c */ const char * gtkFontTranslate( wFont_p ); + PangoLayout *gtkFontCreatePangoLayout( GtkWidget *, void *cairo, + wFont_p, wFontSize_t, const char *, + int *, int *, int *, int * ); /* gtkbutton.c */ Index: gtkfont.c =================================================================== RCS file: /cvsroot/xtrkcad-fork/xtrkcad/app/wlib/gtklib/gtkfont.c,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** gtkfont.c 7 Aug 2009 03:31:05 -0000 1.8 --- gtkfont.c 25 Sep 2009 05:38:15 -0000 1.9 *************** *** 40,60 **** #endif ! static wDraw_p font_d; ! static char sampleText[] = "AbCdE0129!@$&()[]{}"; ! static wWin_p fontSelW; ! static wButton_p fontOkB; ! static wButton_p fontCancelB; ! static wButton_p fontWeightB; ! static wButton_p fontSlantB; ! static wInteger_p fontSizeB; ! static wList_p fontListB; ! static int fontSelectMode = 0; - static long fontSize = 18; - int wLoadFont( wDraw_p, const char *, double, int ); - /***************************************************************************** * FONT HANDLERS --- 40,58 ---- #endif ! /* ! * Macro for debug purposes. Possible debug macro values: ! * ! * 0 - no messages to console (use this value when building in release mode) ! * 1 - send errors ! * 2 - send details ! * 3 - send more details ! */ ! #define WLIB_FONT_DEBUG 0 ! static gchar sampleText[] = "AbCdE0129!@$&()[]{}"; ! static GtkWidget *fontSelectionDialog; /***************************************************************************** * FONT HANDLERS *************** *** 68,382 **** struct wFont_t { ! wIndex_t fi; ! wBool_t bold; ! wBool_t italic; }; - static wIndex_t standardFonts[3]; - - typedef struct { - const char * faceName; - const char * fullName[2][2]; - struct wFont_t font[2][2]; - } fontInfo_t; - static dynArr_t fontInfo_da; - #define fontInfo(N) DYNARR_N(fontInfo_t,fontInfo_da,N) - - static long curFontInx; - static long curFontWeight; - static long curFontSlant; - static long newFontInx; - static long newFontWeight; - static long newFontSlant; - static long oldFontWeight = -1; - static long oldFontSlant = -1; - - - static void doFontOk( void ) - { - if (fontInfo(newFontInx).fullName[newFontWeight][newFontSlant] == NULL) { - wNoticeEx( NT_ERROR, _("No font selected"), _("Continue"), NULL ); - return; - } - if ( curFontWeight != newFontWeight || - curFontSlant != newFontSlant || - curFontInx != newFontInx ) { - curFontInx = newFontInx; - curFontWeight = newFontWeight; - curFontSlant = newFontSlant; - } - wWinShow( fontSelW, FALSE ); - wPrefSetString( "font", "name", fontInfo(curFontInx).fullName[curFontWeight][curFontSlant] ); - wPrefSetInteger( "font", "size", fontSize ); - } - - static void doFontCancel( void ) - { - wWinShow( fontSelW, FALSE ); - wButtonSetBusy( fontWeightB, curFontWeight==0 ); - wButtonSetBusy( fontSlantB, curFontSlant==0 ); - } - - - void gtkDrawString( wDraw_p, wPos_t, wPos_t, const char *, wFontSize_t, wDrawColor, wDrawOpts ); - static wDrawColor black; - - static void fontRedraw( wDraw_p b, void * context, wPos_t w, wPos_t y ) - { - wDrawClear( b ); - if (fontInfo(newFontInx).fullName[newFontWeight][newFontSlant] == NULL ) - return; - if ( ! wLoadFont( b, fontInfo(newFontInx).fullName[newFontWeight][newFontSlant], - (double)fontSize, TRUE ) ) - return; - gtkDrawString( b, 0, 8, sampleText, (double)fontSize, black, 0 ); - } ! ! static void selectAttr( void ) ! { ! int i; ! const char * oldFontName; ! const char * newFontName; ! if (fontInfo_da.cnt==0) { ! wNoticeEx( NT_ERROR, _("No fonts"), _("Continue"), NULL ); ! wDrawClear( font_d ); ! return; ! } ! wControlShow( (wControl_p)fontListB, FALSE ); ! for (i=0;i<fontInfo_da.cnt;i++) { ! newFontName = fontInfo(i).fullName[newFontWeight][newFontSlant]; ! if (oldFontWeight != -1 && oldFontSlant != -1 ) ! oldFontName = fontInfo(i).fullName[oldFontWeight][oldFontSlant]; ! else ! oldFontName = NULL; ! if ( (newFontName == NULL ) != (oldFontName == NULL) ) { ! wListSetActive( fontListB, i, newFontName != NULL ); ! } ! } ! wControlShow( (wControl_p)fontListB, TRUE ); ! if (fontInfo(newFontInx).fullName[newFontWeight][newFontSlant]) { ! wControlActive( (wControl_p)fontOkB, TRUE ); ! wListSetIndex( fontListB, newFontInx ); ! } else { ! wControlActive( (wControl_p)fontOkB, FALSE ); ! wListSetIndex( fontListB, -1 ); ! } ! if ( fontSelectMode == 0 ) { ! wControlActive( (wControl_p)fontWeightB, ! fontInfo(newFontInx).fullName[1-newFontWeight][newFontSlant] != NULL); ! wControlActive( (wControl_p)fontSlantB, ! fontInfo(newFontInx).fullName[newFontWeight][1-newFontSlant] != NULL); ! } ! oldFontWeight = newFontWeight; ! oldFontSlant = newFontSlant; ! fontRedraw( font_d, NULL, 0, 0 ); ! } ! static void selectFace( wIndex_t index, const char * name, wIndex_t junk3, void * listData, void * itemData ) { ! newFontInx = (int)itemData; ! fontRedraw( font_d, NULL, 0, 0 ); ! wControlActive( (wControl_p)fontOkB, TRUE ); ! if ( fontSelectMode == 0 ) { ! wControlActive( (wControl_p)fontWeightB, ! fontInfo(newFontInx).fullName[1-newFontWeight][newFontSlant] != NULL); ! wControlActive( (wControl_p)fontSlantB, ! fontInfo(newFontInx).fullName[newFontWeight][1-newFontSlant] != NULL); } } - - static wBool_t addFont( const char * faceName, long fw, long fs, const char * fullName ) - { - int i, rc; - - for (i=0;i<fontInfo_da.cnt;i++) - if ((rc=strcasecmp( fontInfo(i).faceName, faceName )) == 0) { - if (fontInfo(i).fullName[fw][fs]) { - if (wDebugFont >= 1) - fprintf(stderr,"dup font %s %s\n", - fontInfo(i).fullName[fw][fs], fullName ); - return FALSE; - } - goto found; - } - DYNARR_ADD( fontInfo_t, fontInfo_da, 10 ); - i = fontInfo_da.cnt-1; - fontInfo(i).faceName = strdup( faceName ); - memset( &fontInfo(i).fullName, 0, sizeof ((fontInfo_t*)NULL)->fullName ); - found: - fontInfo(i).fullName[fw][fs] = strdup( fullName ); - return TRUE; - } - - static int cmpFontName( const void * a, const void * b ) - { - return strcasecmp( ((fontInfo_t*)a)->faceName, ((fontInfo_t*)b)->faceName ); - } - - - static void findFont( const char * fontName ) - { - int f, w, s; - if ( fontName == NULL ) - return; - for ( f=0; f<fontInfo_da.cnt; f++ ) - for ( s=0; s<2; s++ ) - for ( w=0; w<2; w++ ) - if ( fontInfo(f).fullName[w][s] && - strcmp( fontInfo(f).fullName[w][s], fontName ) == 0 ) { - curFontInx = f; - curFontWeight = w; - curFontSlant = s; - return; - } - } - - static wBool_t fontInitted = FALSE; ! static wBool_t fontInit( wBool_t getPref ) { ! PangoFontFamily **families; ! gint n_families; ! PangoFontFace **faces; ! int n_faces; int i, j, k; ! char ** fonts; ! const char *familyName, *faceName; ! PangoFontDescription *fontDesc; ! PangoWeight weight; ! PangoStyle style; ! char fullName[1024]; ! long ifw, ifs; ! FILE * f=NULL; ! long stdFontInx; ! const char * stdSerifName; ! const char * stdSanserifName; ! ! stdSerifName = wPrefGetString( "gtkfont", "serif" ); ! stdSanserifName = wPrefGetString( "gtkfont", "sanserif" ); ! fontInitted = TRUE; ! black = wDrawFindColor( 0 ); ! if (wDebugFont >= 2) ! f = fopen( "fonts.lst", "w" ); ! pango_context_list_families(gtk_widget_get_pango_context(GTK_WIDGET(gtkMainW->gtkwin)), &families, &n_families); ! for (i=0; i<n_families; i++) { ! familyName = pango_font_family_get_name(families[i]); ! if (wDebugFont >= 2) ! fprintf( f, "%s\n", familyName ); ! pango_font_family_list_faces(families[i], &faces, &n_faces); ! for (j=0; j<n_faces; ++j) { ! fontDesc = pango_font_face_describe(faces[j]); ! weight = pango_font_description_get_weight(fontDesc); ! style = pango_font_description_get_style(fontDesc); ! faceName = pango_font_face_get_face_name(faces[j]); ! if (weight == PANGO_WEIGHT_NORMAL) ! ifw = FW_MEDIUM; ! else if (weight == PANGO_WEIGHT_BOLD) ! ifw = FW_BOLD; ! else { ! if (wDebugFont >= 1) ! fprintf( stderr, "Unsuported font weight (%d) for \"%s %s\"\n", weight, familyName, faceName ); ! pango_font_description_free(fontDesc); ! continue; ! } ! if (style == PANGO_STYLE_NORMAL) ! ifs = FS_REGULAR; ! else if (style == PANGO_STYLE_ITALIC) ! ifs = FS_ITALIC; ! else { ! if (wDebugFont >= 1) ! fprintf( stderr, "Unsuported font slant (%d) for \"%s %s\"\n", style, familyName, faceName ); ! continue; ! pango_font_description_free(fontDesc); } - sprintf( fullName, "%s %s", familyName, faceName ); - if (wDebugFont >= 2) - fprintf( f, " %s\n", fullName ); - addFont( familyName, ifw, ifs, fullName ); - pango_font_description_free(fontDesc); } - g_free(faces); - } - g_free(families); - if (wDebugFont >= 2) - fclose(f); - qsort( fontInfo_da.ptr, fontInfo_da.cnt, sizeof *(fontInfo_t*)NULL, cmpFontName ); - - standardFonts[F_TIMES] = -1; - standardFonts[F_HELV] = -1; - stdFontInx = -1; - for ( i=0;i<fontInfo_da.cnt;i++ ) { - if (strcasecmp(fontInfo(i).faceName, stdSerifName?stdSerifName:"times")==0) { - standardFonts[F_TIMES] = i; - } else if ( strcasecmp(fontInfo(i).faceName, stdSanserifName?stdSanserifName:"helvetica") == 0 ) - standardFonts[F_HELV] = i; - if ( stdFontInx < 0 && - fontInfo(i).fullName[0][0] != NULL ) - stdFontInx = i; } ! if ( standardFonts[F_TIMES] < 0 ) { ! wNoticeEx( NT_ERROR, _("Can't find standard Serif font.\nPlease choose a font"), _("Continue"), NULL ); ! wSelectStandardFont( F_TIMES ); ! } ! if ( standardFonts[F_HELV] < 0 ) { ! wNoticeEx( NT_ERROR, _("Can't find standard San-Serif font.\nPlease choose a font"), _("Continue"), NULL ); ! wSelectStandardFont( F_HELV ); } ! findFont( wPrefGetString( "font", "name" ) ); ! wPrefGetInteger( "font", "size", &fontSize, fontSize ); return TRUE; } - void wSelectStandardFont( int fontNum ) - { - long oldFontInx = curFontInx; - long oldFontWeight = curFontWeight; - long oldFontSlant = curFontSlant; - int inx; ! curFontInx = 0; ! for ( inx=0; inx<fontInfo_da.cnt; inx++ ) { ! if ( fontInfo(inx).fullName[0][0] != NULL ) { ! curFontInx = inx; ! break; ! } ! } ! curFontWeight = 0; ! curFontSlant = 0; ! fontSelectMode = 1; ! wSelectFont(fontNum==F_TIMES?"Standard Serif Font":"Standard San-Serif Font"); ! standardFonts[fontNum] = curFontInx; ! wPrefSetString( "gtkfont", fontNum==F_TIMES?"serif":"sanserif", fontInfo(curFontInx).faceName ); ! curFontInx = oldFontInx; ! curFontWeight = oldFontWeight; ! curFontSlant = oldFontSlant; ! fontSelectMode = 0; ! } ! static void fontToggleWeightButton( void* junk ) { ! newFontWeight = !newFontWeight; ! wButtonSetBusy( fontWeightB, newFontWeight != 0 ); ! selectAttr(); } ! ! static void fontToggleSlantButton( void* junk ) { ! newFontSlant = !newFontSlant; ! wButtonSetBusy( fontSlantB, newFontSlant != 0 ); ! selectAttr(); } - #include "bold.bmp" - #include "italic.bmp" - void wInitializeFonts() { ! if(!fontInitted) ! fontInit( FALSE ); } --- 66,221 ---- struct wFont_t { ! PangoFontDescription *fontDescription; }; ! static wFont_p standardFonts[F_HELV-F_TIMES+1][2][2]; ! static wFont_p curFont = NULL; ! static void fontSelectionDialogCallback(GtkFontSelectionDialog *fontSelectionDialog, gint response, gpointer data) { ! gchar *fontName; ! ! switch (response) ! { ! case GTK_RESPONSE_APPLY: /* once the apply button is hidden, this should not be used */ ! case GTK_RESPONSE_OK: ! fontName = gtk_font_selection_dialog_get_font_name(fontSelectionDialog); ! wPrefSetString( "font", "name", fontName ); ! g_free(curFont->fontDescription); ! curFont->fontDescription = pango_font_description_from_string(fontName); ! #if WLIB_FONT_DEBUG >= 2 ! fprintf(stderr, "new font selection:\n"); ! fprintf(stderr, " font name \"%s\"\n", fontName); ! fprintf(stderr, " font size is absolute %d\n", pango_font_description_get_size_is_absolute(curFont->fontDescription)); ! #endif ! g_free(fontName); ! break; ! default: ! gtk_widget_hide(GTK_WIDGET(fontSelectionDialog)); } + if (response == GTK_RESPONSE_OK) + gtk_widget_hide(GTK_WIDGET(fontSelectionDialog)); } static wBool_t fontInitted = FALSE; ! static wBool_t fontInit() { ! const char *fontNames[] = { ! "times 18", ! "times italic 18", ! "times bold 18", ! "times bold italic 18", ! "helvetica 18", ! "helvetica oblique 18", ! "helvetica bold 18", ! "helvetica bold oblique 18", ! }; ! ! int s = 0; int i, j, k; ! ! for (i = F_TIMES; i <= F_HELV; ++i) { ! for (j = FW_MEDIUM; j <= FW_BOLD; ++j) { ! for (k = FS_REGULAR; k <= FS_ITALIC; ++k) { ! PangoFontDescription *fontDescription = pango_font_description_from_string(fontNames[s++]); ! wFont_p standardFont = (wFont_p) malloc(sizeof(struct wFont_t)); ! standardFont->fontDescription = fontDescription; ! standardFonts[i-F_TIMES][j][k] = standardFont; } } } ! ! if (curFont == NULL) { ! curFont = (wFont_p) malloc(sizeof(struct wFont_t)); ! if (curFont == NULL) ! return FALSE; ! const char *fontName = wPrefGetString("font", "name"); ! curFont->fontDescription = pango_font_description_from_string(fontName ? fontName : "helvetica 18"); } ! ! fontInitted = TRUE; return TRUE; } ! static double fontFactor = 1.0; ! /* TODO: figure out what this formula means and document it */ ! #define FONTSIZE_TO_PANGOSIZE(fs) ((gint) ((fs) * (fontFactor) + .5)) ! ! PangoLayout *gtkFontCreatePangoLayout(GtkWidget *widget, ! void *cairo, ! wFont_p fp, ! wFontSize_t fs, ! const char *s, ! int *width_p, ! int *height_p, ! int *ascent_p, ! int *descent_p) { ! if (!fontInitted) ! fontInit(); ! ! PangoLayout *layout = NULL; ! ! gchar *utf8 = g_convert((const gchar *) s, -1, "UTF-8", "ISO-8859-1", ! NULL, NULL,NULL); ! ! if (cairo != NULL) { ! layout = pango_cairo_create_layout((cairo_t *) cairo); ! pango_layout_set_text(layout, utf8, -1); ! } ! else ! layout = gtk_widget_create_pango_layout(widget, utf8); ! ! if (fp == NULL) ! fp = curFont; ! ! PangoFontDescription *fontDescription = fp->fontDescription; ! ! PangoContext *context; ! PangoFontMetrics *metrics; ! ! /* set attributes */ ! pango_font_description_set_size(fontDescription, ! FONTSIZE_TO_PANGOSIZE(fs) * PANGO_SCALE); ! pango_layout_set_font_description(layout, fontDescription); ! ! /* get layout measures */ ! pango_layout_get_pixel_size(layout, width_p, height_p); ! context = gtk_widget_get_pango_context(widget); ! metrics = pango_context_get_metrics(context, fontDescription, ! pango_context_get_language(context)); ! *ascent_p = PANGO_PIXELS(pango_font_metrics_get_ascent(metrics)); ! *descent_p = PANGO_PIXELS(pango_font_metrics_get_descent(metrics)); ! pango_font_metrics_unref(metrics); ! ! #if WLIB_FONT_DEBUG >= 3 ! fprintf(stderr, "font layout created:\n"); ! fprintf(stderr, " widget: %p\n", widget); ! fprintf(stderr, " font size: %f\n", fs); ! fprintf(stderr, " layout text: \"%s\" (utf8)\n", utf8); ! fprintf(stderr, " layout width: %d\n", *width_p); ! fprintf(stderr, " layout height: %d\n", *height_p); ! fprintf(stderr, " layout ascent: %d (pixels)\n", *ascent_p); ! fprintf(stderr, " layout descent: %d (pixels)\n", *descent_p); ! #endif ! ! g_free(utf8); ! ! return layout; } ! void gtkFontDestroyPangoLayout(PangoLayout *layout) { ! g_object_unref(G_OBJECT(layout)); } void wInitializeFonts() { ! if (!fontInitted) ! fontInit(); } *************** *** 384,495 **** const char * title ) { - int i; - wPos_t x, y; - wIcon_p fontWeightBM, fontSlantBM; if (!fontInitted) ! fontInit( FALSE ); ! if (fontSelW == NULL) { ! fontSelW = wWinPopupCreate( NULL, 2, 2, "fontSelW", _("Font Select"), "xvfontsel", F_AUTOSIZE|F_RECALLPOS|F_BLOCK, NULL, NULL ); ! ! fontWeightBM = wIconCreateBitMap( bold_width, bold_height, bold_bits, wDrawColorBlack ); ! fontWeightB = wButtonCreate( fontSelW, 2, 2, "fontSelWeight", (const char*)fontWeightBM, BO_ICON, 0, fontToggleWeightButton, NULL ); ! fontSlantBM = wIconCreateBitMap( italic_width, italic_height, italic_bits, wDrawColorBlack ); ! fontSlantB = wButtonCreate( fontSelW, -4, 2, "fontSelSlant", (const char*)fontSlantBM, BO_ICON, 0, fontToggleSlantButton, NULL ); ! fontSizeB = wIntegerCreate( fontSelW, -4, 2, "fontSelSize", NULL, 0, ! 80, 1, 100, &fontSize, (wIntegerCallBack_p)selectAttr, NULL ); ! ! fontListB = wDropListCreate( fontSelW, 2, -4, "fontSelList", NULL, 0, ! 10, 185, NULL, selectFace, NULL ); ! x = 2 + wControlGetWidth( (wControl_p)fontListB ) + 10; ! ! fontOkB = wButtonCreate( fontSelW, x, 2, "fontSelOk", _("Ok"), 2, 0, (wButtonCallBack_p)doFontOk, NULL ); ! fontCancelB = wButtonCreate( fontSelW, x, -4, "fontSelCancel", _("Cancel"), 0, 0, (wButtonCallBack_p)doFontCancel, NULL ); ! x += wControlGetWidth( (wControl_p)fontOkB ); ! y = wControlGetPosY( (wControl_p)fontListB ) + wControlGetHeight( (wControl_p)fontListB ) + 4; ! font_d = wDrawCreate( fontSelW, 2, y, "fontSelSample", 0, x, 50, NULL, fontRedraw, NULL ); ! ! for (i=0;i<fontInfo_da.cnt;i++) { ! wListAddValue( fontListB, fontInfo(i).faceName, NULL, (void*)i ); ! if (fontInfo(i).fullName[0][0] == NULL) ! wListSetActive( fontListB, i, FALSE ); ! } } ! wControlActive( (wControl_p)fontCancelB, fontSelectMode==0 ); ! wControlActive( (wControl_p)fontSizeB, fontSelectMode==0 ); ! wControlActive( (wControl_p)fontWeightB, fontSelectMode==0 ); ! wControlActive( (wControl_p)fontSlantB, fontSelectMode==0 ); ! if (fontInfo_da.cnt == 0) { ! wNoticeEx( NT_ERROR, _("No fonts"), _("Continue"), NULL); ! return; } ! newFontInx = curFontInx; ! newFontWeight = curFontWeight; ! newFontSlant = curFontSlant; ! wButtonSetBusy( fontWeightB, newFontWeight!=0 ); ! wButtonSetBusy( fontSlantB, newFontSlant!=0 ); ! selectAttr(); ! wWinSetTitle( fontSelW, title ); ! wWinShow( fontSelW, TRUE ); } ! ! static const char * wCurFont( void ) { if (!fontInitted) ! fontInit( FALSE ); ! if (fontInfo_da.cnt == 0 || ! fontInfo(curFontInx).fullName[curFontWeight][curFontSlant] == NULL) ! return "times-medium-r"; ! return fontInfo(curFontInx).fullName[curFontWeight][curFontSlant]; } - wFontSize_t wSelectedFontSize( void ) { ! return (wFontSize_t) fontSize; } ! ! const char * gtkFontTranslate( ! wFont_p fp ) { if (fp == NULL) ! return wCurFont(); ! return fontInfo(fp->fi).fullName[fp->bold][fp->italic]; ! } wFont_p wStandardFont( int face, wBool_t bold, wBool_t italic ) { - wFont_p f; if (!fontInitted) ! fontInit( FALSE ); ! if (fontInfo(standardFonts[face]).fullName[bold][italic]) { ! f = &(fontInfo(standardFonts[face]).font[bold][italic]); ! f->fi = standardFonts[face]; ! f->bold = bold; ! f->italic = italic; ! } else if (fontInfo(standardFonts[face]).fullName[FALSE][FALSE]) { ! f = &(fontInfo(standardFonts[face]).font[FALSE][FALSE]); ! f->fi = standardFonts[face]; ! f->bold = FALSE; ! f->italic = FALSE; ! } else { ! f = &(fontInfo(0).font[FALSE][FALSE]); ! f->fi = 0; ! f->bold = FALSE; ! f->italic = FALSE; ! } ! return f; ! } ! ! #ifdef TEST ! static void doSel( wButton_p b ) ! { ! wSelectFont("Test"); ! } ! ! static void Init( INT_T argc, char * argv[] ) ! { } - #endif --- 223,295 ---- const char * title ) { if (!fontInitted) ! fontInit(); ! ! if (fontSelectionDialog == NULL) { ! fontSelectionDialog = gtk_font_selection_dialog_new(_("Font Select")); ! gtk_window_set_position(GTK_WINDOW(fontSelectionDialog), GTK_WIN_POS_MOUSE); ! gtk_window_set_modal(GTK_WINDOW(fontSelectionDialog), TRUE); ! gtk_font_selection_dialog_set_preview_text(GTK_FONT_SELECTION_DIALOG(fontSelectionDialog), sampleText); ! g_signal_connect(G_OBJECT(fontSelectionDialog), "response", G_CALLBACK(fontSelectionDialogCallback), NULL); ! gtk_signal_connect(GTK_OBJECT(fontSelectionDialog), "destroy", GTK_SIGNAL_FUNC(gtk_widget_destroyed), &fontSelectionDialog); } ! gtk_window_set_title(GTK_WINDOW(fontSelectionDialog), title); ! ! if (curFont != NULL) { ! gchar *fontName = pango_font_description_to_string(curFont->fontDescription); ! gtk_font_selection_dialog_set_font_name(GTK_FONT_SELECTION_DIALOG(fontSelectionDialog), fontName); ! g_free(fontName); } ! ! gtk_widget_show(fontSelectionDialog); } ! static wFont_p gtkSelectedFont( void ) { if (!fontInitted) ! fontInit(); ! ! return curFont; } wFontSize_t wSelectedFontSize( void ) { ! if (!fontInitted) ! fontInit(); ! ! return (wFontSize_t) PANGO_PIXELS(pango_font_description_get_size(curFont->fontDescription)); } ! const char *gtkFontTranslate( wFont_p fp ) { + static gchar *fontName = NULL; + + if (fontName != NULL) + g_free(fontName); + + if (!fontInitted) + fontInit(); + if (fp == NULL) ! fp = gtkSelectedFont(); ! ! if (fp == NULL) ! fp = standardFonts[F_TIMES][FW_MEDIUM][FS_REGULAR]; ! ! fontName = pango_font_description_to_string(fp->fontDescription); ! ! #if WLIB_FONT_DEBUG >= 2 ! fprintf(stderr, "font translation: "); ! fprintf(stderr, " \"%s\"\n", fontName); ! #endif + return (const char *) fontName; + } wFont_p wStandardFont( int face, wBool_t bold, wBool_t italic ) { if (!fontInitted) ! fontInit(); ! ! return standardFonts[face-F_TIMES][bold][italic]; } Index: gtksimple.c =================================================================== RCS file: /cvsroot/xtrkcad-fork/xtrkcad/app/wlib/gtklib/gtksimple.c,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** gtksimple.c 12 Nov 2007 21:55:45 -0000 1.5 --- gtksimple.c 25 Sep 2009 05:38:15 -0000 1.6 *************** *** 73,77 **** /** ! * Craate a window for a simple text. * * \param IN parent Handle of parent window --- 73,77 ---- /** ! * Create a window for a simple text. * * \param IN parent Handle of parent window *************** *** 112,122 **** /* get the current font size */ ! fontSize = pango_font_description_get_size( fontDesc ); /* calculate the new font size */ if( flags & BM_LARGE ) { ! pango_font_description_set_size( fontDesc, fontSize * 1.4 ); } else { ! pango_font_description_set_size( fontDesc, fontSize * 0.7 ); } --- 112,122 ---- /* get the current font size */ ! fontSize = PANGO_PIXELS(pango_font_description_get_size( fontDesc )); /* calculate the new font size */ if( flags & BM_LARGE ) { ! pango_font_description_set_size( fontDesc, fontSize * 1.4 * PANGO_SCALE ); } else { ! pango_font_description_set_size( fontDesc, fontSize * 0.7 * PANGO_SCALE ); } *************** *** 140,146 **** if( wMessageSetFont( flags )) { if( flags & BM_LARGE ) { ! pango_font_description_set_size(fontDesc, fontSize); } else { ! pango_font_description_set_size(fontDesc, fontSize); } } --- 140,146 ---- if( wMessageSetFont( flags )) { if( flags & BM_LARGE ) { ! pango_font_description_set_size(fontDesc, fontSize * PANGO_SCALE); } else { ! pango_font_description_set_size(fontDesc, fontSize * PANGO_SCALE); } } --- bold.bmp DELETED --- --- italic.bmp DELETED --- |
From: Daniel S. <dsp...@us...> - 2009-09-25 05:38:32
|
Update of /cvsroot/xtrkcad-fork/xtrkcad/app/wlib/include In directory fdv4jf1.ch3.sourceforge.com:/tmp/cvs-serv1962/xtrkcad/app/wlib/include Modified Files: wlib.h Log Message: ENH: replace the old font select dialog with the GTK standard one, and some code cleanup Index: wlib.h =================================================================== RCS file: /cvsroot/xtrkcad-fork/xtrkcad/app/wlib/include/wlib.h,v retrieving revision 1.16 retrieving revision 1.17 diff -C2 -d -r1.16 -r1.17 *** wlib.h 20 Sep 2009 15:22:47 -0000 1.16 --- wlib.h 25 Sep 2009 05:38:15 -0000 1.17 *************** *** 525,529 **** #define F_HELV (2) wFont_p wStandardFont( int, wBool_t, wBool_t ); - void wSelectStandardFont( int ); --- 525,528 ---- |
From: Martin F. <m_f...@us...> - 2009-09-23 18:57:38
|
Update of /cvsroot/xtrkcad-fork/xtrkcad/app/wlib/gtklib In directory fdv4jf1.ch3.sourceforge.com:/tmp/cvs-serv19997/app/wlib/gtklib Modified Files: ChangeLog gtkbitmap.c gtkmisc.c Log Message: wCreateBitmap implemented Index: gtkmisc.c =================================================================== RCS file: /cvsroot/xtrkcad-fork/xtrkcad/app/wlib/gtklib/gtkmisc.c,v retrieving revision 1.13 retrieving revision 1.14 diff -C2 -d -r1.13 -r1.14 *** gtkmisc.c 24 Jul 2009 15:58:24 -0000 1.13 --- gtkmisc.c 23 Sep 2009 18:57:29 -0000 1.14 *************** *** 646,649 **** --- 646,650 ---- } + void wIconSetColor( wIcon_p ip, wDrawColor color ) { Index: ChangeLog =================================================================== RCS file: /cvsroot/xtrkcad-fork/xtrkcad/app/wlib/gtklib/ChangeLog,v retrieving revision 1.40 retrieving revision 1.41 diff -C2 -d -r1.40 -r1.41 *** ChangeLog 23 Sep 2009 03:41:05 -0000 1.40 --- ChangeLog 23 Sep 2009 18:57:29 -0000 1.41 *************** *** 1,2 **** --- 1,6 ---- + Sep 23, 2009 + FIX: Martin Fischer <m_f...@us...> + gtkbitmap.c gtkmisc.c: implement wCreateBitmap + Sep 22, 2009 FIX: Daniel Spagnol Index: gtkbitmap.c =================================================================== RCS file: /cvsroot/xtrkcad-fork/xtrkcad/app/wlib/gtklib/gtkbitmap.c,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** gtkbitmap.c 23 Sep 2009 02:51:51 -0000 1.1 --- gtkbitmap.c 23 Sep 2009 18:57:29 -0000 1.2 *************** *** 35,38 **** --- 35,41 ---- struct wBitmap_t { WOBJ_COMMON + GdkPixmap *pixmap; + GdkBitmap *mask; + }; *************** *** 48,66 **** wControl_p ! wBitmapCreate( wWin_p parent, wPos_t x, wPos_t y, long option, wIcon_p iconP ) { ! wBitmap_p control; ! ! control = (wBitmap_p)gtkAlloc( parent, B_BITMAP, x, y, NULL, sizeof( struct wBitmap_t ), iconP ); ! gtkComputePos( (wControl_p)control ); ! control->option = option; ! ! /* TODO: implement me */ ! control->widget = NULL; ! ! control->h = iconP->h; ! control->w = iconP->w; ! control->data = iconP; ! ! return (wControl_p)control; } --- 51,72 ---- wControl_p ! wBitmapCreate( wWin_p parent, wPos_t x, wPos_t y, long options, wIcon_p iconP ) { ! wBitmap_p bt; ! GdkPixmap *pixmap; ! GdkBitmap *mask = malloc( 1024 ); ! ! bt = gtkAlloc( parent, B_BITMAP, x, y, NULL, sizeof *bt, NULL ); ! gtkComputePos( (wControl_p)bt ); ! bt->w = iconP->w; ! bt->h = iconP->h; ! bt->option = options; ! gtkComputePos( (wControl_p)bt ); ! ! bt->pixmap = gdk_pixmap_create_from_xpm_d( parent->widget->window, &mask, NULL, (gchar **)iconP->bits ); ! bt->mask = mask; ! bt->widget = gtk_image_new_from_pixmap( bt->pixmap, bt->mask ); ! ! return( (wControl_p)bt ); } + |
From: Martin F. <m_f...@us...> - 2009-09-23 18:17:52
|
Update of /cvsroot/xtrkcad-fork/xtrkcad/app/bin/bitmaps In directory fdv4jf1.ch3.sourceforge.com:/tmp/cvs-serv16121 Added Files: xtc.xpm Log Message: New icon --- NEW FILE: xtc.xpm --- /* XPM */ static char * xtc_xpm[] = { "64 64 16 1", " c None", ". c #888A85", "+ c #555753", "@ c #D3D7CF", "# c #BABDB6", "$ c #EEEEEC", "% c #4E9A06", "& c #73D216", "* c #8AE234", "= c #E9B96E", "- c #FCAF3E", "; c #C4A000", "> c #C17D11", ", c #8F5902", "' c #F57900", ") c #2E3436", " .......................................+++++++++++ ", " .@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.+ ", " .#$$$$$$@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$. ", " .#$$$$$$@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$. ", " .#$$$$$$@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$. ", " .#$$$$$$@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$. ", " .#$$$$$$@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$. ", " .#$$$$$$@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$. ", " .#$$$$$$@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$. ", " .#$$$$$$@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$. ", " .#$$$$$$@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$+ ", " .#$$$$$$@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$+ ", " ..$$$$$$@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$+ ", " ..$$$$$$@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$+ ", " ..$$$$$$@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$+ ", " ..$$$$$$@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$+ ", " ..$$$$$$@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$+ ", " ..$$$$$$@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$+ ", " ..$$$$$$@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$+ ", " ..$$$$$$@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@+ ", " ..$$$@$$@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@%%+ ", " ..$$@#@$@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#%&@+ ", " ..$$$@$$@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@%%*@@+ ", " ..$$$$$$@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%&*@**+ ", " ..$$$$$$@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@%*@=***+ ", " ..$$$$$$@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#%*=***&%+ ", " ..$$$$$$@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%*@***&%%+ ", " ..$$$$$$@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@%&*****%%%%+ ", " ..$$$$$$@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@%&=@***%%%%@+ ", " ..$$$$$$@$$$$$$$$$$$$$$$$$$$$$$$$$$$$=%*=***&%%%%#$+ ", " ..$$$$$$@$$$$$$$$$$$$$$$$$$$$$$$$$$@%&*@***&%%%%@$$+ ", " ..$$$$$$@$$$$$$$$$$$$$$$$$$$$$$$$$@%&*=***%%%%%@$$$+ ", " +.$$$$$$@$$$$$$$$$$$$$$$$$$$$$$$$#%**=**&%%%%#$$$$$+ ", " +.$$$$$$@$$$$$$$$$$$$$$$$$$$$$$$=%*=@**&%%%%@$$$$$$+ ", " +.$$$$$$@$$$$$$$$$$$$$$$$$$$$$$=-*@***%%%%%@$$$$$$$+ ", " +.$$$$$$@$$$===$$$$$$$$$$$$$$$=--=**&%%%%#$$$$$$$$$+ ", " +.$$$$$$@$$@@@@===$$$$$$$$$$$@----;*%%%%@$$$$$$$$$$+ ", " +.$$$@$$@$$@#.#=@=@=@$$$$$$$@------;%%%@$$$$$$$$$$$+ ", " +.$$@#@$@$$$$=..#=@==@@@$$$$--------;%$$$$$$$$$$$$$+ ", " +.$$$@$$@$$$@@=@#.=@=$===@==------=@$$$$$$$$$$$$$$$+ ", " +.$$$$$$@$$$#@=@=@...@==@==------=@$$$$$$$$$$$$$$$$+ ", " +.$$$$$$@$$@#.=##===@...#=-----====$==$@@$$@$$$$$$$+ ", " +.$$$$$$@$$@==>,.>===-===>--=>======-==-'=='@==$$$$+ ", " +.$$$$$$@$$$#===.,,,==>.,>>==..====>======='==@$$$$+ ", " +.$$$$$$@$$$#==#==,.+.,++,=.=====>.,......=>==#$$$$+ ", " +.$$$$$$@$$$@@@@===$-@=...=#=#,,#,#===.=...,..#@$$$+ ", " +.$$$$$$@$$$@@=@=@=$======#.==#>#>@=====@===@=$$$$$+ ", " +.$$$$$$@$$$####=#=#=#====#=#>#,.....,....#####$$$$+ ", " +.$$$$$$@$$$####.#=#=#==#=###=#=#=#,.......####$$$$+ ", " +.$$$$$$@$$$@==@===$=@====@===$-==='=$===@==@==$$$$+ ", " +.$$$$$$@$$$$@=$@@@$@@@@@=$@@@$=@@$==$=-=$==$==@$$$+ ", " +.$$$$$$@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@$$$@$$@$$$$+ ", " +.$$$$$$@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$+ ", " +.$$$$$$@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$+ ", " ++$$$$$$@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$+ ", " ++$$$$$$@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$+ ", " ++$$$$$$@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$+ ", " )+$$$$$$@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$+) ", " )+$$$$$$@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$+) ", " )+.###############################################.+ ", " )+++++++++++++++++++++++++++++++++++++++++++++++++ ", " ", " ", " "}; |
From: Daniel S. <dsp...@us...> - 2009-09-23 03:41:16
|
Update of /cvsroot/xtrkcad-fork/xtrkcad/app/wlib/gtklib In directory fdv4jf1.ch3.sourceforge.com:/tmp/cvs-serv21622/xtrkcad/app/wlib/gtklib Modified Files: ChangeLog Log Message: FIX - text in layout and selection were not aligned Index: ChangeLog =================================================================== RCS file: /cvsroot/xtrkcad-fork/xtrkcad/app/wlib/gtklib/ChangeLog,v retrieving revision 1.39 retrieving revision 1.40 diff -C2 -d -r1.39 -r1.40 *** ChangeLog 23 Sep 2009 03:21:10 -0000 1.39 --- ChangeLog 23 Sep 2009 03:41:05 -0000 1.40 *************** *** 1,10 **** --- 1,16 ---- Sep 22, 2009 FIX: Daniel Spagnol + gtkdraw-cairo.c: text in layout and selection were not aligned + + Sep 22, 2009 + FIX: Daniel Spagnol CMakeLists.txt gtkbitmap.c gtkint.h: file created as a workaround to get the source compiled under POSIX and OSX after wCreateBitmap feature + Aug 12, 2009 ENH: Matthew Sheets wpref.c: initialize with system default config from /etc + Jul 29, 2009 ENH: Martin Fischer <m_f...@us...> |
From: Daniel S. <dsp...@us...> - 2009-09-23 03:38:44
|
Update of /cvsroot/xtrkcad-fork/xtrkcad/app/wlib/gtklib In directory fdv4jf1.ch3.sourceforge.com:/tmp/cvs-serv21093 Modified Files: gtkdraw-cairo.c Log Message: FIX - text in layout and selection were not aligned Index: gtkdraw-cairo.c =================================================================== RCS file: /cvsroot/xtrkcad-fork/xtrkcad/app/wlib/gtklib/gtkdraw-cairo.c,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** gtkdraw-cairo.c 7 Aug 2009 03:31:05 -0000 1.7 --- gtkdraw-cairo.c 23 Sep 2009 03:38:36 -0000 1.8 *************** *** 488,496 **** fprintf(stderr, "drawing text: \"%s\", fontsize=%lf, fontname=\"%s\"\n", utf8, fs, pango_font_description_to_string(bd->fontDesc)); - pango_layout_get_pixel_size(layout, &w, &h); - cairo_move_to(cairo, x, y); - pango_cairo_show_layout(cairo, layout); // width, height, ascent and descent context = gtk_widget_get_pango_context(bd->widget); metrics = pango_context_get_metrics(context, bd->fontDesc, --- 488,494 ---- fprintf(stderr, "drawing text: \"%s\", fontsize=%lf, fontname=\"%s\"\n", utf8, fs, pango_font_description_to_string(bd->fontDesc)); // width, height, ascent and descent + pango_layout_get_pixel_size(layout, &w, &h); context = gtk_widget_get_pango_context(bd->widget); metrics = pango_context_get_metrics(context, bd->fontDesc, *************** *** 500,503 **** --- 498,504 ---- pango_font_metrics_unref(metrics); + cairo_move_to(cairo, x, y-ascent); + pango_cairo_show_layout(cairo, layout); + g_object_unref(layout); |
From: Daniel S. <dsp...@us...> - 2009-09-23 03:21:18
|
Update of /cvsroot/xtrkcad-fork/xtrkcad/app/wlib/gtklib In directory fdv4jf1.ch3.sourceforge.com:/tmp/cvs-serv19770/xtrkcad/app/wlib/gtklib Modified Files: ChangeLog Log Message: FIX - workaround to get the source compiled under POSIX and OSX after wCreateBitmap Index: ChangeLog =================================================================== RCS file: /cvsroot/xtrkcad-fork/xtrkcad/app/wlib/gtklib/ChangeLog,v retrieving revision 1.38 retrieving revision 1.39 diff -C2 -d -r1.38 -r1.39 *** ChangeLog 12 Aug 2009 19:32:55 -0000 1.38 --- ChangeLog 23 Sep 2009 03:21:10 -0000 1.39 *************** *** 1,2 **** --- 1,7 ---- + Sep 22, 2009 + FIX: Daniel Spagnol + CMakeLists.txt gtkbitmap.c gtkint.h: file created as a workaround to + get the source compiled under POSIX and OSX after wCreateBitmap + feature Aug 12, 2009 ENH: Matthew Sheets |
From: Daniel S. <dsp...@us...> - 2009-09-23 02:56:34
|
Update of /cvsroot/xtrkcad-fork/xtrkcad/app/wlib/gtklib In directory fdv4jf1.ch3.sourceforge.com:/tmp/cvs-serv17394/xtrkcad/app/wlib/gtklib Modified Files: gtkint.h Log Message: FIX - type created as a workaround to get the source compiled under POSIX and OSX. Index: gtkint.h =================================================================== RCS file: /cvsroot/xtrkcad-fork/xtrkcad/app/wlib/gtklib/gtkint.h,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** gtkint.h 24 Jul 2009 15:58:24 -0000 1.4 --- gtkint.h 23 Sep 2009 02:56:18 -0000 1.5 *************** *** 48,52 **** B_RADIO, B_TOGGLE, B_DRAW, B_MENU, B_MULTITEXT, B_MESSAGE, B_LINES, ! B_MENUITEM, B_BOX } wType_e; typedef void (*repaintProcCallback_p)( wControl_p ); --- 48,53 ---- B_RADIO, B_TOGGLE, B_DRAW, B_MENU, B_MULTITEXT, B_MESSAGE, B_LINES, ! B_MENUITEM, B_BOX, ! B_BITMAP } wType_e; typedef void (*repaintProcCallback_p)( wControl_p ); |
From: Daniel S. <dsp...@us...> - 2009-09-23 02:52:03
|
Update of /cvsroot/xtrkcad-fork/xtrkcad/app/wlib/gtklib In directory fdv4jf1.ch3.sourceforge.com:/tmp/cvs-serv16342/xtrkcad/app/wlib/gtklib Modified Files: CMakeLists.txt Added Files: gtkbitmap.c Log Message: FIX - file created as a workaround to get the source compiled under POSIX and OSX. Index: CMakeLists.txt =================================================================== RCS file: /cvsroot/xtrkcad-fork/xtrkcad/app/wlib/gtklib/CMakeLists.txt,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** CMakeLists.txt 15 Jan 2008 11:46:04 -0000 1.7 --- CMakeLists.txt 23 Sep 2009 02:51:51 -0000 1.8 *************** *** 2,5 **** --- 2,6 ---- SET(SOURCES + gtkbitmap.c gtkbutton.c gtkcolor.c --- NEW FILE: gtkbitmap.c --- /* * $Header: /cvsroot/xtrkcad-fork/xtrkcad/app/wlib/gtklib/gtkbitmap.c,v 1.1 2009/09/23 02:51:51 dspagnol Exp $ */ /* XTrkCad - Model Railroad CAD * Copyright (C) 2009 Daniel Spagnol * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #include <stdio.h> #include <stdlib.h> #ifndef __APPLE__ #include <malloc.h> #endif #include <unistd.h> #include <string.h> #include <math.h> #include <stdlib.h> #include "gtkint.h" struct wBitmap_t { WOBJ_COMMON }; /** * Create a static control for displaying a bitmap. * * \param parent IN parent window * \param x, y IN position in parent window * \param option IN ignored for now * \param iconP IN icon to use * \return the control */ wControl_p wBitmapCreate( wWin_p parent, wPos_t x, wPos_t y, long option, wIcon_p iconP ) { wBitmap_p control; control = (wBitmap_p)gtkAlloc( parent, B_BITMAP, x, y, NULL, sizeof( struct wBitmap_t ), iconP ); gtkComputePos( (wControl_p)control ); control->option = option; /* TODO: implement me */ control->widget = NULL; control->h = iconP->h; control->w = iconP->w; control->data = iconP; return (wControl_p)control; } |
Update of /cvsroot/xtrkcad-fork/xtrkcad/app/bin In directory fdv4jf1.ch3.sourceforge.com:/tmp/cvs-serv32745 Modified Files: ChangeLog custom.c misc.c param.c param.h smalldlg.c smalldlg.h xtrkcad.ico xtrkcad256.ico Log Message: New 'About' and new icons Index: param.h =================================================================== RCS file: /cvsroot/xtrkcad-fork/xtrkcad/app/bin/param.h,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** param.h 28 Sep 2007 11:17:33 -0000 1.5 --- param.h 21 Sep 2009 18:24:33 -0000 1.6 *************** *** 41,45 **** PD_TEXT, PD_MENU, ! PD_MENUITEM } parameterType; --- 41,46 ---- PD_TEXT, PD_MENU, ! PD_MENUITEM, ! PD_BITMAP } parameterType; Index: xtrkcad256.ico =================================================================== RCS file: /cvsroot/xtrkcad-fork/xtrkcad/app/bin/xtrkcad256.ico,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 Binary files /tmp/cvsNn2Ww7 and /tmp/cvsGwTPha differ Index: misc.c =================================================================== RCS file: /cvsroot/xtrkcad-fork/xtrkcad/app/bin/misc.c,v retrieving revision 1.46 retrieving revision 1.47 diff -C2 -d -r1.46 -r1.47 *** misc.c 5 Sep 2009 16:40:53 -0000 1.46 --- misc.c 21 Sep 2009 18:24:33 -0000 1.47 *************** *** 138,142 **** static wMenuList_p winList_mi; - static wWin_p aboutW; static BOOL_T inMainW = TRUE; --- 138,141 ---- *************** *** 1804,1853 **** /*--------------------------------------------------------------------*/ - static drawCmd_t aboutD = { - NULL, - &screenDrawFuncs, - 0, - 1.0, - 0.0, - {0.0,0.0}, {0.0,0.0}, - Pix2CoOrd, CoOrd2Pix }; - - static paramDrawData_t aboutDrawData = { ICON_WIDTH, ICON_HEIGHT, (wDrawRedrawCallBack_p)RedrawAbout, NULL, &aboutD }; - #define COPYRIGHT N_("\nXTrackCAD is a CAD (computer-aided design) program\nfor designing model railroad layouts.") - static paramData_t aboutPLs[] = { - #define I_ABOUTDRAW (0) - { PD_DRAW, NULL, "about", PDO_NOPSHUPD, &aboutDrawData, NULL, 0 }, - #define I_ABOUTVERSION (1) - { PD_MESSAGE, NULL, NULL, PDO_DLGNEWCOLUMN, NULL, NULL, 0 }, - #define I_ABOUTCOPYRIGHT (2) - { PD_MESSAGE, COPYRIGHT, NULL, 0, NULL, NULL, 0 }, - #define I_ABOUTREGTO (3) - { PD_MESSAGE, NULL, NULL, PDO_DLGUNDERCMDBUTT, (void*)250, NULL, 0 } }; - static paramGroup_t aboutPG = { "about", 0, aboutPLs, sizeof aboutPLs/sizeof aboutPLs[0] }; - - /** - * Create and show the About window. - */ - - static void CreateAboutW( void *ptr ) - { - wPos_t w; - char * copyright = COPYRIGHT; - - if( !aboutW ) { - w = wLabelWidth( copyright ); - aboutPLs[I_ABOUTVERSION].winData = (void*)w; - aboutPLs[I_ABOUTCOPYRIGHT].winData = (void*)w; - ParamRegister( &aboutPG ); - aboutW = ParamCreateDialog( &aboutPG, MakeWindowTitle(_("About")), _("Ok"), (paramActionOkProc)wHide, NULL, FALSE, NULL, F_TOP|F_CENTER, NULL ); - RedrawAbout( aboutD.d, NULL, ICON_WIDTH, ICON_HEIGHT ); - ParamLoadMessage( &aboutPG, I_ABOUTVERSION, sAboutProd ); - } - - wShow( aboutW ); - } - - /*--------------------------------------------------------------------*/ - static wWin_p rotateW; static long rotateValue; --- 1803,1806 ---- Index: param.c =================================================================== RCS file: /cvsroot/xtrkcad-fork/xtrkcad/app/bin/param.c,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** param.c 10 Mar 2008 18:59:53 -0000 1.8 --- param.c 21 Sep 2009 18:24:33 -0000 1.9 *************** *** 47,51 **** #include <stdarg.h> #include <locale.h> ! #include "track.h" #include "common.h" --- 47,51 ---- #include <stdarg.h> #include <locale.h> ! #include <wlib.h> #include "track.h" #include "common.h" *************** *** 1138,1141 **** --- 1138,1142 ---- case PD_MENU: case PD_MENUITEM: + case PD_BITMAP: break; } *************** *** 1223,1226 **** --- 1224,1228 ---- case PD_MENU: case PD_MENUITEM: + case PD_BITMAP: break; } *************** *** 2071,2074 **** --- 2073,2078 ---- paramTextData_t * textDataP; paramListData_t * listDataP; + wIcon_p iconP; + wWin_p win; wPos_t w; *************** *** 2188,2191 **** --- 2192,2199 ---- wTextSetReadonly( (wText_p)pd->control, FALSE ); break; + case PD_BITMAP: + iconP = pd->winData; + pd->control = (wControl_p)wBitmapCreate( win, xx, yy, pd->winOption, iconP ); + break; default: AbortProg( "paramCreatePG" ); Index: ChangeLog =================================================================== RCS file: /cvsroot/xtrkcad-fork/xtrkcad/app/bin/ChangeLog,v retrieving revision 1.77 retrieving revision 1.78 diff -C2 -d -r1.77 -r1.78 *** ChangeLog 16 Sep 2009 18:32:24 -0000 1.77 --- ChangeLog 21 Sep 2009 18:24:33 -0000 1.78 *************** *** 1,2 **** --- 1,7 ---- + Sep 21, 2009 + ENH: Martin Fischer <m_f...@us...> + custom.c, misc.c, param.c, param.h, smalldlg.c smalldlg.h: + New 'About' dialog + Sep 16, 2009 FIX: Martin Fischer <m_f...@us...> Index: xtrkcad.ico =================================================================== RCS file: /cvsroot/xtrkcad-fork/xtrkcad/app/bin/xtrkcad.ico,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 Binary files /tmp/cvs39W4M9 and /tmp/cvsOKC7Bc differ Index: smalldlg.h =================================================================== RCS file: /cvsroot/xtrkcad-fork/xtrkcad/app/bin/smalldlg.h,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** smalldlg.h 23 Sep 2007 16:13:53 -0000 1.1 --- smalldlg.h 21 Sep 2009 18:24:33 -0000 1.2 *************** *** 30,35 **** --- 30,38 ---- #define SHOWTIP_FORCESHOW (2L) + extern wWin_p aboutW; + void InitSmallDlg( void ); void ShowTip( long flags ); + void CreateAboutW( void *ptr ); #endif Index: custom.c =================================================================== RCS file: /cvsroot/xtrkcad-fork/xtrkcad/app/bin/custom.c,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** custom.c 5 Sep 2009 16:40:53 -0000 1.11 --- custom.c 21 Sep 2009 18:24:33 -0000 1.12 *************** *** 116,153 **** #endif - #include "bitmaps/xtc64.xbm" - #define icon64_width xtc64_width - #define icon64_height xtc64_height - #define icon64_bits xtc64_bits - #include "bitmaps/xtc16.xbm" - #define icon16_width xtc16_width - #define icon16_height xtc16_height - #define icon16_bits xtc16_bits - - #if ICON_WIDTH != icon64_width - error - #endif - #if ICON_HEIGHT != icon64_height - error - #endif - - void RedrawAbout( - wDraw_p d, - void * context, - wPos_t w, - wPos_t h ) - { - static wDrawBitMap_p aboutBM = NULL; - if (aboutBM == NULL) - aboutBM = wDrawBitMapCreate( d, w, h, 0, 0, icon64_bits ); - wDrawClear( d ); - wDrawBitMap( d, aboutBM, 0, 0, wDrawColorBlack, 0 ); - } BOOL_T Initialize( void ) { - wWinSetBigIcon( mainW, wIconCreateBitMap(icon64_width, icon64_height, icon64_bits, wDrawColorBlack) ); - wWinSetSmallIcon( mainW, wIconCreateBitMap(icon16_width, icon16_height, icon16_bits, wDrawColorBlack) ); - InitTrkCurve(); InitTrkStraight(); --- 116,122 ---- Index: smalldlg.c =================================================================== RCS file: /cvsroot/xtrkcad-fork/xtrkcad/app/bin/smalldlg.c,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** smalldlg.c 20 Jan 2008 23:29:15 -0000 1.5 --- smalldlg.c 21 Sep 2009 18:24:33 -0000 1.6 *************** *** 56,61 **** #include "i18n.h" static wWin_p tipW; /**< window handle for tip dialog */ ! static long showTipAtStart = 1; /**< flag for visibility */ static dynArr_t tips_da; /**< dynamic array for all tips */ --- 56,63 ---- #include "i18n.h" + wWin_p aboutW; static wWin_p tipW; /**< window handle for tip dialog */ ! ! static long showTipAtStart = 1; /**< flag for visibility */ static dynArr_t tips_da; /**< dynamic array for all tips */ *************** *** 190,193 **** --- 192,237 ---- /*--------------------------------------------------------------------*/ + #include "bitmaps/xtc.xpm" + + static paramTextData_t aboutTextData = { 70, 10 }; + + #define DESCRIPTION N_("XTrackCAD is a CAD (computer-aided design) program for designing model railroad layouts.") + static paramData_t aboutPLs[] = { + #define I_ABOUTDRAW (0) + { PD_BITMAP, NULL, "about", PDO_NOPSHUPD, NULL, NULL, 0 }, + #define I_ABOUTVERSION (1) + { PD_MESSAGE, NULL, NULL, PDO_DLGNEWCOLUMN, NULL, NULL, BM_LARGE }, + #define I_COPYRIGHT (2) + #define COPYRIGHT_T ((wText_p)aboutPLs[I_COPYRIGHT].control) + { PD_TEXT, NULL, NULL, PDO_DLGRESIZE, &aboutTextData, NULL, BT_CHARUNITS } + }; + static paramGroup_t aboutPG = { "about", 0, aboutPLs, sizeof aboutPLs/sizeof aboutPLs[0] }; + + /** + * Create and show the About window. + */ + + void CreateAboutW( void *ptr ) + { + char *copyright = sAboutProd; + + if( !aboutW ) { + aboutPLs[I_ABOUTDRAW].winData = wIconCreatePixMap( xtc_xpm ); + ParamRegister( &aboutPG ); + aboutW = ParamCreateDialog( &aboutPG, MakeWindowTitle(_("About")), _("Ok"), (paramActionOkProc)wHide, NULL, FALSE, NULL, F_TOP|F_CENTER, NULL ); + ParamLoadMessage( &aboutPG, I_ABOUTVERSION, sAboutProd ); + wTextAppend( COPYRIGHT_T, DESCRIPTION ); + wTextAppend( COPYRIGHT_T, "\n\nXTrackCAD is Copyright 2003 by Sillub Technology and 2007 by Martin Fischer and Bob Blackwell." ); + wTextAppend( COPYRIGHT_T, "\n\nIcons by: Tango Desktop Project (http://tango.freedesktop.org)"); + wTextAppend( COPYRIGHT_T, "\n\nContributions by: Robert Heller, Mikko Nissinen, Timothy M. Shead, Daniel Luis Spagnol" ); + wTextAppend( COPYRIGHT_T, "\n\nParameter Files by: Ralph Boyd, Dwayne Ward" ); + + } + + wShow( aboutW ); + } + + /*--------------------------------------------------------------------*/ + /** * Initialize the functions for small dialogs. |
Update of /cvsroot/xtrkcad-fork/xtrkcad/app/bin/bitmaps/SVG In directory fdv4jf1.ch3.sourceforge.com:/tmp/cvs-serv28223/app/bin/bitmaps/SVG Added Files: blockdel.svg blockedit.svg blocknew.svg block.svg switchmdel.svg switchmedit.svg switchmnew.svg switchm.svg Log Message: Add source for new button icons --- NEW FILE: switchm.svg --- <?xml version="1.0" encoding="UTF-8" standalone="no"?> <!-- Created with Inkscape (http://www.inkscape.org/) --> <svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="16px" height="16px" id="svg22" sodipodi:version="0.32" inkscape:version="0.46+devel" sodipodi:docname="switchm.svg" inkscape:output_extension="org.inkscape.output.svg.inkscape"> <defs id="defs24"> <inkscape:perspective sodipodi:type="inkscape:persp3d" inkscape:vp_x="0 : 8 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_z="16 : 8 : 1" inkscape:persp3d-origin="8 : 5.3333333 : 1" id="perspective30" /> </defs> <sodipodi:namedview id="base" pagecolor="#ffffff" bordercolor="#666666" borderopacity="1.0" inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:zoom="22.197802" inkscape:cx="3.3817025" inkscape:cy="8" inkscape:current-layer="layer1" showgrid="true" inkscape:grid-bbox="true" inkscape:document-units="px" inkscape:snap-global="true" showguides="false" inkscape:window-width="1152" inkscape:window-height="793" inkscape:window-x="0" inkscape:window-y="25" inkscape:snap-grids="false"> <inkscape:grid type="xygrid" id="grid32" /> </sodipodi:namedview> <metadata id="metadata27"> <rdf:RDF> <cc:Work rdf:about=""> <dc:format>image/svg+xml</dc:format> <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> <dc:title /> </cc:Work> </rdf:RDF> </metadata> <g id="layer1" inkscape:label="Layer 1" inkscape:groupmode="layer"> <path style="stroke-width:1px" d="m 7.928713,9.9183168 0,2.2074262" id="path58" /> <path style="fill:#00ff00;stroke-width:1px" d="M 7.9737625,10.50396 C 6.1717823,15.549505 6.1717823,15.549505 6.1717823,15.549505" id="path64" /> <path style="stroke-width:1px" d="m 3.9643565,8.1613861 c 0.04505,6.3519799 0.04505,6.3519799 0.04505,6.3519799 l 0,0" id="path34" /> <rect style="fill:#888a85;fill-opacity:1;stroke:#888a85;stroke-width:0.40673011999999997;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" id="rect818" width="0.46330088" height="9.3764267" x="4.3126459" y="8.0054026" transform="matrix(0.96374482,-0.26682563,0.27375433,0.96179965,0,0)" /> <rect style="fill:#cc0000;fill-opacity:1;stroke:#ef2929;stroke-width:1.26722789;stroke-opacity:1" id="rect28" width="1.2625616" height="6.4170895" x="3.7529984" y="2.3978021" ry="0.62467241" transform="matrix(0.96822704,-0.25007277,0.29182642,0.9564713,0,0)" /> <path sodipodi:type="star" style="fill:#e9b96e;fill-opacity:0;stroke:#8f5902;stroke-width:0.57858991999999998;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;opacity:1;stroke-linejoin:bevel" id="path828" sodipodi:sides="3" sodipodi:cx="4.1896038" sodipodi:cy="15.369307" sodipodi:r1="5.1855874" sodipodi:r2="2.2652025" sodipodi:arg1="-1.6142472" sodipodi:arg2="-0.61129667" inkscape:flatsided="false" inkscape:rounded="0.079953976" inkscape:randomized="0" d="m 3.9643564,10.188614 c 0.3506863,-0.03083 1.8911358,3.583684 2.080232,3.880625 0.1976792,0.31042 2.8996375,3.361739 2.7442509,3.695344 -0.1486398,0.319121 -4.0491295,-0.15407 -4.4008365,-0.138779 -0.367671,0.01599 -4.36116969,0.83029 -4.57238707,0.528919 -0.2020465,-0.288286 2.15799367,-3.429614 2.32060457,-3.741847 0.1699918,-0.326405 1.4615321,-4.192029 1.8281361,-4.224262 z" transform="matrix(0.80582785,0.02450966,-0.02314404,0.85337599,4.8820158,0.50401861)" /> </g> </svg> --- NEW FILE: blockedit.svg --- <?xml version="1.0" encoding="UTF-8" standalone="no"?> <!-- Created with Inkscape (http://www.inkscape.org/) --> <svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="16px" height="16px" id="svg2160" sodipodi:version="0.32" inkscape:version="0.46+devel" sodipodi:docname="blockedit.svg" inkscape:output_extension="org.inkscape.output.svg.inkscape"> <defs id="defs2162"> <inkscape:perspective sodipodi:type="inkscape:persp3d" inkscape:vp_x="0 : 8 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_z="16 : 8 : 1" inkscape:persp3d-origin="8 : 5.3333333 : 1" id="perspective29" /> <linearGradient id="linearGradient12512"> <stop style="stop-color:#ffffff;stop-opacity:1.0000000;" offset="0.0000000" id="stop12513" /> <stop style="stop-color:#fff520;stop-opacity:0.89108908;" offset="0.50000000" id="stop12517" /> <stop style="stop-color:#fff300;stop-opacity:0.0000000;" offset="1.0000000" id="stop12514" /> </linearGradient> <radialGradient inkscape:collect="always" xlink:href="#linearGradient12512" id="radialGradient278" gradientUnits="userSpaceOnUse" cx="55.000000" cy="125.00000" fx="55.000000" fy="125.00000" r="14.375000" /> <linearGradient id="linearGradient3240"> <stop style="stop-color:#c6ffc7;stop-opacity:1;" offset="0" id="stop3242" /> <stop style="stop-color:#000000;stop-opacity:0;" offset="1" id="stop3244" /> </linearGradient> <filter inkscape:collect="always" x="-0.40165289" width="1.8033058" y="-0.40165289" height="1.8033058" id="filter4024"> <feGaussianBlur inkscape:collect="always" stdDeviation="0.34075874" id="feGaussianBlur4026" /> </filter> <inkscape:perspective id="perspective1446" inkscape:persp3d-origin="0.5 : 0.33333333 : 1" inkscape:vp_z="1 : 0.5 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_x="0 : 0.5 : 1" sodipodi:type="inkscape:persp3d" /> <radialGradient inkscape:collect="always" xlink:href="#linearGradient2984" id="radialGradient12692" gradientUnits="userSpaceOnUse" gradientTransform="matrix(1.66077,-0.5114749,0.3584765,1.1380119,-52.478445,-7.4863015)" cx="29.053354" cy="27.640751" fx="29.053354" fy="27.640751" r="3.2408545" /> <linearGradient id="linearGradient2984" inkscape:collect="always"> <stop id="stop2986" offset="0" style="stop-color:#e7e2b8;stop-opacity:1;" /> <stop id="stop2988" offset="1" style="stop-color:#e7e2b8;stop-opacity:0;" /> </linearGradient> </defs> <sodipodi:namedview id="base" pagecolor="#ffffff" bordercolor="#666666" borderopacity="1.0" inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:zoom="22.197802" inkscape:cx="-1.7532179" inkscape:cy="8" inkscape:current-layer="layer1" showgrid="true" inkscape:grid-bbox="true" inkscape:document-units="px" inkscape:window-width="1152" inkscape:window-height="793" inkscape:window-x="0" inkscape:window-y="25" /> <metadata id="metadata2165"> <rdf:RDF> <cc:Work rdf:about=""> <dc:format>image/svg+xml</dc:format> <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> <dc:title /> </cc:Work> </rdf:RDF> </metadata> <g id="layer1" inkscape:label="Layer 1" inkscape:groupmode="layer"> <path style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.39860046px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="M 1.6993002,4.8001142 C 1.6993002,4.0323881 1.6993002,6.1874076 1.6993002,7.1314013 C 1.6993002,8.3269519 1.6993002,9.5225027 1.6993002,10.718053" id="path3197" inkscape:transform-center-x="-0.69930023" /> <path style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.30206299px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="M 16.340038,7.9045778 C 16.170995,7.9045778 15.782267,7.9045778 15.510057,7.9045778 C 15.332995,7.9045778 15.155932,7.9045778 14.97887,7.9045778 C 14.646878,7.9045778 14.314885,7.9045778 13.982894,7.9045778 C 13.756061,7.9045778 14.109982,7.9045778 14.182089,7.9045778" id="path3204" /> <path style="fill:none;fill-rule:evenodd;stroke:#729fcf;stroke-width:1.39256011999999996px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="M 4.8935538,8.0622511 C 5.3383788,8.0622511 6.3612827,8.0622511 7.0775815,8.0622511 C 7.5435072,8.0622511 8.0094329,8.0622511 8.4753585,8.0622511 C 9.3489697,8.0622511 10.22258,8.0622511 11.096191,8.0622511 C 11.693085,8.0622511 10.761766,8.0622511 10.572024,8.0622511" id="path3214" /> <path style="fill:none;fill-rule:evenodd;stroke:#729fcf;stroke-width:1.389;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none" d="M 11.694517,4.8941729 C 11.694517,4.1226995 11.694517,6.2882379 11.694517,7.2368393 C 11.694517,8.4382256 11.694517,9.639612 11.694517,10.840998" id="path3216" /> <path style="fill:none;fill-rule:evenodd;stroke:#729fcf;stroke-width:1.336;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none" d="M 4.2655817,10.718063 C 4.2569707,11.44917 4.2811417,9.396941 4.2917297,8.4979743 C 4.305139,7.3594493 4.3185482,6.2209242 4.3319577,5.0823988" id="path3220" inkscape:transform-center-x="2.6989442" inkscape:transform-center-y="1.5477264" /> <path style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.34471488px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="M 14.327643,4.8345845 C 14.327643,4.0668584 14.327643,6.2218779 14.327643,7.1658716 C 14.327643,8.3614222 14.327643,9.5569733 14.327643,10.752524" id="path3222" /> <path sodipodi:type="arc" style="fill:#008c03;fill-opacity:1;fill-rule:nonzero;stroke:#008c04;stroke-linejoin:round;stroke-opacity:1;opacity:0.62101910999999999" id="path3224" sodipodi:cx="8.1990099" sodipodi:cy="3.1608911" sodipodi:rx="1.5316832" sodipodi:ry="1.5316832" d="M 9.7306931 3.1608911 A 1.5316832 1.5316832 0 1 1 6.6673267,3.1608911 A 1.5316832 1.5316832 0 1 1 9.7306931 3.1608911 z" transform="matrix(1.3326023,0,0,1.3326023,-3.0745345,-1.504785)" /> <path sodipodi:type="arc" style="fill:#8bf68e;fill-opacity:1;fill-rule:nonzero;stroke:#d3fcd3;stroke-linejoin:round;stroke-opacity:1;filter:url(#filter4024);opacity:0.62101911" id="path3250" sodipodi:cx="7.5007424" sodipodi:cy="2.4626236" sodipodi:rx="0.51806933" sodipodi:ry="0.51806933" d="M 8.0188118 2.4626236 A 0.51806933 0.51806933 0 1 1 6.9826731,2.4626236 A 0.51806933 0.51806933 0 1 1 8.0188118 2.4626236 z" transform="matrix(1.2433747,0,0,1.2433747,-2.0603915,-0.8322608)" /> <path sodipodi:type="arc" style="fill:#ea0000;fill-opacity:1;fill-rule:nonzero;stroke:#ea0000;stroke-linejoin:round;stroke-opacity:1;opacity:0.60099999999999998" id="path4034" sodipodi:cx="8.1990099" sodipodi:cy="3.1608911" sodipodi:rx="1.5316832" sodipodi:ry="1.5316832" d="M 9.7306931 3.1608911 A 1.5316832 1.5316832 0 1 1 6.6673267,3.1608911 A 1.5316832 1.5316832 0 1 1 9.7306931 3.1608911 z" transform="matrix(1.3326023,0,0,1.3326023,-3.0379006,8.949671)" /> <path sodipodi:type="arc" style="fill:#ed0202;fill-opacity:0.97663549999999999;fill-rule:nonzero;stroke:#fff6f6;stroke-linejoin:round;stroke-opacity:1;filter:url(#filter4024);opacity:0.62101911" id="path4036" sodipodi:cx="7.5007424" sodipodi:cy="2.4626236" sodipodi:rx="0.51806933" sodipodi:ry="0.51806933" d="M 8.0188118 2.4626236 A 0.51806933 0.51806933 0 1 1 6.9826731,2.4626236 A 0.51806933 0.51806933 0 1 1 8.0188118 2.4626236 z" transform="matrix(1.3434079,0,0,1.3868861,-2.6614572,9.403929)" /> <path style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.30206299px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="M 2.3873088,7.8910891 C 2.2182658,7.8910891 1.8295378,7.8910891 1.5573278,7.8910891 C 1.3802658,7.8910891 1.2032028,7.8910891 1.0261408,7.8910891 C 0.69414879,7.8910891 0.36215579,7.8910891 0.030164793,7.8910891 C -0.19666821,7.8910891 0.15725279,7.8910891 0.22935979,7.8910891" id="path4052" /> <g id="g12687" transform="translate(1.8925749,-1.1877081)"> <path sodipodi:nodetypes="cccccc" id="path2960" d="M 3.1781506,12.311899 5.380053,8.1740123 15.072589,-0.80795299 C 16.698027,-2.0773811 18.61549,0.17677763 17.269305,1.5908536 L 7.5460431,10.351631 3.1781506,12.311899 z" style="color:#000000;fill:#cb9022;fill-opacity:1;fill-rule:evenodd;stroke:#5c410c;stroke-width:0.55234361;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" inkscape:r_cx="true" inkscape:r_cy="true" /> <path sodipodi:nodetypes="cccc" id="path2982" d="M 3.6881537,11.914091 5.4496756,8.6037819 c 0.9955939,0.193125 1.676718,0.8098537 1.7219019,1.7569811 l -3.4834238,1.553328 z" style="color:#000000;fill:url(#radialGradient12692);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible" inkscape:r_cx="true" inkscape:r_cy="true" /> <path sodipodi:nodetypes="ccccc" id="path3004" d="M 7.1926465,10.395805 7.156667,9.7679658 17.407525,0.54092818 c 0,0 0.0635,0.50320052 0.01347,0.63421122 L 7.1926465,10.395805 z" style="color:#000000;fill:#000000;fill-opacity:0.36363639;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible" inkscape:r_cx="true" inkscape:r_cy="true" /> </g> </g> </svg> --- NEW FILE: blockdel.svg --- <?xml version="1.0" encoding="UTF-8" standalone="no"?> <!-- Created with Inkscape (http://www.inkscape.org/) --> <svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="16px" height="16px" id="svg2160" sodipodi:version="0.32" inkscape:version="0.46+devel" sodipodi:docname="blockdel.svg" inkscape:output_extension="org.inkscape.output.svg.inkscape"> <defs id="defs2162"> <inkscape:perspective sodipodi:type="inkscape:persp3d" inkscape:vp_x="0 : 8 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_z="16 : 8 : 1" inkscape:persp3d-origin="8 : 5.3333333 : 1" id="perspective938" /> <linearGradient id="linearGradient3240"> <stop style="stop-color:#c6ffc7;stop-opacity:1;" offset="0" id="stop3242" /> <stop style="stop-color:#000000;stop-opacity:0;" offset="1" id="stop3244" /> </linearGradient> <filter inkscape:collect="always" x="-0.40165289" width="1.8033058" y="-0.40165289" height="1.8033058" id="filter4024"> <feGaussianBlur inkscape:collect="always" stdDeviation="0.34075874" id="feGaussianBlur4026" /> </filter> <filter inkscape:collect="always" id="filter4262"> <feGaussianBlur inkscape:collect="always" stdDeviation="0.34439655" id="feGaussianBlur4264" /> </filter> <filter inkscape:collect="always" id="filter4590"> <feGaussianBlur inkscape:collect="always" stdDeviation="0.56189548" id="feGaussianBlur4592" /> </filter> <filter inkscape:collect="always" id="filter1458"> <feGaussianBlur inkscape:collect="always" stdDeviation="0.0419981" id="feGaussianBlur1460" /> </filter> <filter inkscape:collect="always" id="filter1462"> <feGaussianBlur inkscape:collect="always" stdDeviation="0.0419981" id="feGaussianBlur1464" /> </filter> </defs> <sodipodi:namedview id="base" pagecolor="#ffffff" bordercolor="#666666" borderopacity="1.0" inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:zoom="22.197802" inkscape:cx="8" inkscape:cy="8" inkscape:current-layer="layer1" showgrid="true" inkscape:grid-bbox="true" inkscape:document-units="px" inkscape:window-width="980" inkscape:window-height="697" inkscape:window-x="43" inkscape:window-y="33" /> <metadata id="metadata2165"> <rdf:RDF> <cc:Work rdf:about=""> <dc:format>image/svg+xml</dc:format> <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> </cc:Work> </rdf:RDF> </metadata> <g id="layer1" inkscape:label="Layer 1" inkscape:groupmode="layer"> <path style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.39860046px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="M 1.6993002,4.8001142 C 1.6993002,4.0323881 1.6993002,6.1874076 1.6993002,7.1314013 C 1.6993002,8.3269519 1.6993002,9.5225027 1.6993002,10.718053" id="path3197" inkscape:transform-center-x="-0.69930023" /> <path style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.30206299px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="M 16.340038,7.9045778 C 16.170995,7.9045778 15.782267,7.9045778 15.510057,7.9045778 C 15.332995,7.9045778 15.155932,7.9045778 14.97887,7.9045778 C 14.646878,7.9045778 14.314885,7.9045778 13.982894,7.9045778 C 13.756061,7.9045778 14.109982,7.9045778 14.182089,7.9045778" id="path3204" /> <path style="fill:none;fill-rule:evenodd;stroke:#acb5b7;stroke-width:1.39256011999999996px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="M 4.8935538,8.0622511 C 5.3383788,8.0622511 6.3612827,8.0622511 7.0775815,8.0622511 C 7.5435072,8.0622511 8.0094329,8.0622511 8.4753585,8.0622511 C 9.3489697,8.0622511 10.22258,8.0622511 11.096191,8.0622511 C 11.693085,8.0622511 10.761766,8.0622511 10.572024,8.0622511" id="path3214" /> <path style="fill:none;fill-rule:evenodd;stroke:#acb5b7;stroke-width:1.38903474999999998px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="M 11.694517,4.8941729 C 11.694517,4.1226995 11.694517,6.2882379 11.694517,7.2368393 C 11.694517,8.4382256 11.694517,9.639612 11.694517,10.840998" id="path3216" /> <path style="fill:none;fill-rule:evenodd;stroke:#acb5b7;stroke-width:1.33608459999999996px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="M 4.2655817,10.718063 C 4.2569707,11.44917 4.2811417,9.396941 4.2917297,8.4979743 C 4.305139,7.3594493 4.3185482,6.2209242 4.3319577,5.0823988" id="path3220" inkscape:transform-center-x="2.6989442" inkscape:transform-center-y="1.5477264" /> <path style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.34471488px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="M 14.327643,4.8345845 C 14.327643,4.0668584 14.327643,6.2218779 14.327643,7.1658716 C 14.327643,8.3614222 14.327643,9.5569733 14.327643,10.752524" id="path3222" /> <path sodipodi:type="arc" style="fill:#5eb160;fill-opacity:1;fill-rule:nonzero;stroke:#64ab67;stroke-linejoin:round;stroke-opacity:1;opacity:0.59999999999999998;filter:url(#filter1462)" id="path3224" sodipodi:cx="8.1990099" sodipodi:cy="3.1608911" sodipodi:rx="1.5316832" sodipodi:ry="1.5316832" d="M 9.7306931 3.1608911 A 1.5316832 1.5316832 0 1 1 6.6673267,3.1608911 A 1.5316832 1.5316832 0 1 1 9.7306931 3.1608911 z" transform="matrix(1.3326023,0,0,1.3326023,-3.0745345,-1.504785)" /> <path sodipodi:type="arc" style="fill:#8bf68e;fill-opacity:1;fill-rule:nonzero;stroke:#d3fcd3;stroke-linejoin:round;stroke-opacity:1;filter:url(#filter4024)" id="path3250" sodipodi:cx="7.5007424" sodipodi:cy="2.4626236" sodipodi:rx="0.51806933" sodipodi:ry="0.51806933" d="M 8.0188118 2.4626236 A 0.51806933 0.51806933 0 1 1 6.9826731,2.4626236 A 0.51806933 0.51806933 0 1 1 8.0188118 2.4626236 z" transform="matrix(1.2433747,0,0,1.2433747,-2.0603915,-0.8322608)" /> <path sodipodi:type="arc" style="fill:#c64343;fill-opacity:1;fill-rule:nonzero;stroke:#bd4747;stroke-linejoin:round;stroke-opacity:1;opacity:0.59999999999999998;filter:url(#filter1458)" id="path4034" sodipodi:cx="8.1990099" sodipodi:cy="3.1608911" sodipodi:rx="1.5316832" sodipodi:ry="1.5316832" d="M 9.7306931 3.1608911 A 1.5316832 1.5316832 0 1 1 6.6673267,3.1608911 A 1.5316832 1.5316832 0 1 1 9.7306931 3.1608911 z" transform="matrix(1.3326023,0,0,1.3326023,-3.0379006,8.949671)" /> <path sodipodi:type="arc" style="fill:#ed0202;fill-opacity:0.9766355;fill-rule:nonzero;stroke:#fff6f6;stroke-linejoin:round;stroke-opacity:1;filter:url(#filter4024)" id="path4036" sodipodi:cx="7.5007424" sodipodi:cy="2.4626236" sodipodi:rx="0.51806933" sodipodi:ry="0.51806933" d="M 8.0188118 2.4626236 A 0.51806933 0.51806933 0 1 1 6.9826731,2.4626236 A 0.51806933 0.51806933 0 1 1 8.0188118 2.4626236 z" transform="matrix(1.3434079,0,0,1.3868861,-2.6614572,9.403929)" /> <path style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.30206299px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="M 2.3873088,7.8910891 C 2.2182658,7.8910891 1.8295378,7.8910891 1.5573278,7.8910891 C 1.3802658,7.8910891 1.2032028,7.8910891 1.0261408,7.8910891 C 0.69414879,7.8910891 0.36215579,7.8910891 0.030164793,7.8910891 C -0.19666821,7.8910891 0.15725279,7.8910891 0.22935979,7.8910891" id="path4052" /> </g> <g inkscape:groupmode="layer" id="layer2" inkscape:label="Kreuz"> <path style="opacity:1;fill:#ffbcbc;fill-opacity:0.9766355;fill-rule:nonzero;stroke:#fe0c28;stroke-linejoin:round;stroke-opacity:1;filter:url(#filter4262)" id="path4120" d="M 1.6435248,1.2975405 C 1.9595667,1.3765484 2.2002947,1.6483632 2.4416995,1.8566649 C 3.2373367,2.5705845 4.0213749,3.2977861 4.7915955,4.0391247 C 5.4415093,4.6596851 6.0597973,5.3147026 6.6342298,6.005753 C 7.2568986,6.754229 7.859818,7.5169919 8.5114947,8.2408278 C 9.0586715,8.8242157 9.6133079,9.3992859 10.113943,10.023681 C 10.478987,10.485782 10.808409,10.973353 11.104351,11.482134 C 11.336857,11.932116 11.552026,12.391977 11.744823,12.86042 C 11.899032,13.259443 12.042474,13.662523 12.198994,14.060663 C 12.286033,14.327094 12.407326,14.577266 12.542823,14.821368 C 12.600501,14.923636 12.668864,15.019112 12.734963,15.115794 L 12.172674,15.446454 C 12.110596,15.345012 12.046512,15.244666 11.988707,15.140615 C 11.858183,14.888794 11.744276,14.631527 11.661839,14.359116 C 11.517598,13.956085 11.373567,13.552965 11.221243,13.152898 C 11.037284,12.683276 10.825695,12.224316 10.595777,11.775477 C 10.308657,11.264538 9.9826539,10.779502 9.623231,10.316254 C 9.1407305,9.6842321 8.6144381,9.0899817 8.0778158,8.5034329 C 7.4257047,7.7772906 6.8108601,7.020749 6.1709235,6.2841824 C 5.5923741,5.6031984 5.0074194,4.9260316 4.3716643,4.2972277 C 3.6065779,3.5434852 2.8176443,2.812626 1.9668049,2.1554922 C 1.7046979,1.967348 1.4364078,1.7114383 1.1025551,1.6905781 L 1.6435248,1.2975405 z " /> <path style="opacity:1;fill:#ffbcbc;fill-opacity:0.9766355;fill-rule:nonzero;stroke:#ff0000;stroke-width:0.97403181;stroke-linejoin:round;stroke-opacity:1;filter:url(#filter4590)" id="path4362" d="M 1.4870159,15.313791 C 1.5822724,15.197807 1.6688171,15.070473 1.7561343,14.944192 C 1.972201,14.657592 2.1877349,14.370272 2.4070051,14.087955 C 2.8008215,13.579655 3.2072567,13.090057 3.6179882,12.606144 C 4.1271638,12.019005 4.6462737,11.447655 5.1578606,10.864154 C 5.6821133,10.229884 6.1922548,9.575884 6.7255265,8.9547746 C 7.2752277,8.3152345 7.8423787,7.7028731 8.400678,7.0767971 C 8.9291468,6.4552048 9.4751363,5.8642703 10.04859,5.3178007 C 10.821748,4.5892592 11.648276,3.972091 12.477845,3.3661481 C 13.142978,2.8901926 13.898733,2.3394567 14.393623,1.9322919 C 14.615862,1.7541839 14.829261,1.5589115 15.025316,1.3330263 L 15.512984,1.0703325 C 15.301,1.3104258 15.071009,1.5183264 14.831411,1.7072367 C 13.951951,2.4166646 13.04311,3.0573276 12.144837,3.723013 C 11.576836,4.1400553 11.010921,4.5773554 10.47852,5.0922189 C 9.8992238,5.6374375 9.3473562,6.227327 8.8162061,6.8535098 C 8.26037,7.4778595 7.6962121,8.0893376 7.1485091,8.7263782 C 6.6120331,9.3475396 6.0993003,10.002822 5.5737503,10.640039 C 5.0692549,11.219891 4.5598036,11.791456 4.0544491,12.369864 C 3.6535345,12.845636 3.2544407,13.323224 2.8758266,13.830708 C 2.6662807,14.105991 2.4621051,14.387902 2.2547002,14.665968 C 2.1736846,14.787465 2.0948039,14.911438 2.0086923,15.026663 L 1.4870159,15.313791 z " /> </g> </svg> --- NEW FILE: block.svg --- <?xml version="1.0" encoding="UTF-8" standalone="no"?> <!-- Created with Inkscape (http://www.inkscape.org/) --> <svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://web.resource.org/cc/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="16px" height="16px" id="svg2160" sodipodi:version="0.32" inkscape:version="0.45.1" sodipodi:docbase="C:\Dokumente und Einstellungen\MF\Eigene Dateien\xtc\source\xtrkcad\app\bin\bitmaps\SVG" sodipodi:docname="block.svg" inkscape:output_extension="org.inkscape.output.svg.inkscape"> <defs id="defs2162"> <linearGradient id="linearGradient3240"> <stop style="stop-color:#c6ffc7;stop-opacity:1;" offset="0" id="stop3242" /> <stop style="stop-color:#000000;stop-opacity:0;" offset="1" id="stop3244" /> </linearGradient> <filter inkscape:collect="always" x="-0.40165289" width="1.8033058" y="-0.40165289" height="1.8033058" id="filter4024"> <feGaussianBlur inkscape:collect="always" stdDeviation="0.34075874" id="feGaussianBlur4026" /> </filter> </defs> <sodipodi:namedview id="base" pagecolor="#ffffff" bordercolor="#666666" borderopacity="1.0" inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:zoom="22.197802" inkscape:cx="8" inkscape:cy="8" inkscape:current-layer="layer1" showgrid="true" inkscape:grid-bbox="true" inkscape:document-units="px" inkscape:window-width="797" inkscape:window-height="573" inkscape:window-x="43" inkscape:window-y="33" /> <metadata id="metadata2165"> <rdf:RDF> <cc:Work rdf:about=""> <dc:format>image/svg+xml</dc:format> <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> </cc:Work> </rdf:RDF> </metadata> <g id="layer1" inkscape:label="Layer 1" inkscape:groupmode="layer"> <path style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.39860046px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="M 1.6993002,4.8001142 C 1.6993002,4.0323881 1.6993002,6.1874076 1.6993002,7.1314013 C 1.6993002,8.3269519 1.6993002,9.5225027 1.6993002,10.718053" id="path3197" inkscape:transform-center-x="-0.69930023" /> <path style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.30206299px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="M 16.340038,7.9045778 C 16.170995,7.9045778 15.782267,7.9045778 15.510057,7.9045778 C 15.332995,7.9045778 15.155932,7.9045778 14.97887,7.9045778 C 14.646878,7.9045778 14.314885,7.9045778 13.982894,7.9045778 C 13.756061,7.9045778 14.109982,7.9045778 14.182089,7.9045778" id="path3204" /> <path style="fill:none;fill-rule:evenodd;stroke:#00c3ff;stroke-width:1.39256012px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="M 4.8935538,8.0622511 C 5.3383788,8.0622511 6.3612827,8.0622511 7.0775815,8.0622511 C 7.5435072,8.0622511 8.0094329,8.0622511 8.4753585,8.0622511 C 9.3489697,8.0622511 10.22258,8.0622511 11.096191,8.0622511 C 11.693085,8.0622511 10.761766,8.0622511 10.572024,8.0622511" id="path3214" /> <path style="fill:none;fill-rule:evenodd;stroke:#00c3ff;stroke-width:1.38903475px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="M 11.694517,4.8941729 C 11.694517,4.1226995 11.694517,6.2882379 11.694517,7.2368393 C 11.694517,8.4382256 11.694517,9.639612 11.694517,10.840998" id="path3216" /> <path style="fill:none;fill-rule:evenodd;stroke:#00c3ff;stroke-width:1.3360846px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="M 4.2655817,10.718063 C 4.2569707,11.44917 4.2811417,9.396941 4.2917297,8.4979743 C 4.305139,7.3594493 4.3185482,6.2209242 4.3319577,5.0823988" id="path3220" inkscape:transform-center-x="2.6989442" inkscape:transform-center-y="1.5477264" /> <path style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.34471488px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="M 14.327643,4.8345845 C 14.327643,4.0668584 14.327643,6.2218779 14.327643,7.1658716 C 14.327643,8.3614222 14.327643,9.5569733 14.327643,10.752524" id="path3222" /> <path sodipodi:type="arc" style="fill:#00cb05;fill-opacity:1;fill-rule:nonzero;stroke:#00cb05;stroke-linejoin:round;stroke-opacity:1" id="path3224" sodipodi:cx="8.1990099" sodipodi:cy="3.1608911" sodipodi:rx="1.5316832" sodipodi:ry="1.5316832" d="M 9.7306931 3.1608911 A 1.5316832 1.5316832 0 1 1 6.6673267,3.1608911 A 1.5316832 1.5316832 0 1 1 9.7306931 3.1608911 z" transform="matrix(1.3326023,0,0,1.3326023,-3.0745345,-1.504785)" /> <path sodipodi:type="arc" style="fill:#8bf68e;fill-opacity:1;fill-rule:nonzero;stroke:#d3fcd3;stroke-linejoin:round;stroke-opacity:1;filter:url(#filter4024)" id="path3250" sodipodi:cx="7.5007424" sodipodi:cy="2.4626236" sodipodi:rx="0.51806933" sodipodi:ry="0.51806933" d="M 8.0188118 2.4626236 A 0.51806933 0.51806933 0 1 1 6.9826731,2.4626236 A 0.51806933 0.51806933 0 1 1 8.0188118 2.4626236 z" transform="matrix(1.2433747,0,0,1.2433747,-2.0603915,-0.8322608)" /> <path sodipodi:type="arc" style="fill:#ff0000;fill-opacity:1;fill-rule:nonzero;stroke:#ff0000;stroke-linejoin:round;stroke-opacity:1" id="path4034" sodipodi:cx="8.1990099" sodipodi:cy="3.1608911" sodipodi:rx="1.5316832" sodipodi:ry="1.5316832" d="M 9.7306931 3.1608911 A 1.5316832 1.5316832 0 1 1 6.6673267,3.1608911 A 1.5316832 1.5316832 0 1 1 9.7306931 3.1608911 z" transform="matrix(1.3326023,0,0,1.3326023,-3.0379006,8.949671)" /> <path sodipodi:type="arc" style="fill:#ed0202;fill-opacity:0.9766355;fill-rule:nonzero;stroke:#fff6f6;stroke-linejoin:round;stroke-opacity:1;filter:url(#filter4024)" id="path4036" sodipodi:cx="7.5007424" sodipodi:cy="2.4626236" sodipodi:rx="0.51806933" sodipodi:ry="0.51806933" d="M 8.0188118 2.4626236 A 0.51806933 0.51806933 0 1 1 6.9826731,2.4626236 A 0.51806933 0.51806933 0 1 1 8.0188118 2.4626236 z" transform="matrix(1.3434079,0,0,1.3868861,-2.6614572,9.403929)" /> <path style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.30206299px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="M 2.3873088,7.8910891 C 2.2182658,7.8910891 1.8295378,7.8910891 1.5573278,7.8910891 C 1.3802658,7.8910891 1.2032028,7.8910891 1.0261408,7.8910891 C 0.69414879,7.8910891 0.36215579,7.8910891 0.030164793,7.8910891 C -0.19666821,7.8910891 0.15725279,7.8910891 0.22935979,7.8910891" id="path4052" /> </g> </svg> --- NEW FILE: blocknew.svg --- <?xml version="1.0" encoding="UTF-8" standalone="no"?> <!-- Created with Inkscape (http://www.inkscape.org/) --> <svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="16px" height="16px" id="svg2160" sodipodi:version="0.32" inkscape:version="0.46+devel" sodipodi:docname="blocknew.svg" inkscape:output_extension="org.inkscape.output.svg.inkscape" inkscape:export-filename="/home/martin/xtcng/src/xtrkcad/app/bin/bitmaps/SVG/blocknew.png" inkscape:export-xdpi="90" inkscape:export-ydpi="90"> <defs id="defs2162"> <inkscape:perspective sodipodi:type="inkscape:persp3d" inkscape:vp_x="0 : 8 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_z="16 : 8 : 1" inkscape:persp3d-origin="8 : 5.3333333 : 1" id="perspective29" /> <linearGradient id="linearGradient12512"> <stop style="stop-color:#ffffff;stop-opacity:1.0000000;" offset="0.0000000" id="stop12513" /> <stop style="stop-color:#fff520;stop-opacity:0.89108908;" offset="0.50000000" id="stop12517" /> <stop style="stop-color:#fff300;stop-opacity:0.0000000;" offset="1.0000000" id="stop12514" /> </linearGradient> <radialGradient inkscape:collect="always" xlink:href="#linearGradient12512" id="radialGradient278" gradientUnits="userSpaceOnUse" cx="55.000000" cy="125.00000" fx="55.000000" fy="125.00000" r="14.375000" /> <linearGradient id="linearGradient3240"> <stop style="stop-color:#c6ffc7;stop-opacity:1;" offset="0" id="stop3242" /> <stop style="stop-color:#000000;stop-opacity:0;" offset="1" id="stop3244" /> </linearGradient> <filter inkscape:collect="always" x="-0.40165289" width="1.8033058" y="-0.40165289" height="1.8033058" id="filter4024"> <feGaussianBlur inkscape:collect="always" stdDeviation="0.34075874" id="feGaussianBlur4026" /> </filter> <inkscape:perspective id="perspective1410" inkscape:persp3d-origin="0.5 : 0.33333333 : 1" inkscape:vp_z="1 : 0.5 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_x="0 : 0.5 : 1" sodipodi:type="inkscape:persp3d" /> </defs> <sodipodi:namedview id="base" pagecolor="#ffffff" bordercolor="#666666" borderopacity="1.0" inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:zoom="22.197802" inkscape:cx="8.0827131" inkscape:cy="9.3514852" inkscape:current-layer="layer1" showgrid="true" inkscape:grid-bbox="true" inkscape:document-units="px" inkscape:window-width="1152" inkscape:window-height="793" inkscape:window-x="0" inkscape:window-y="25" inkscape:snap-global="false"> <inkscape:grid type="xygrid" id="grid1400" /> </sodipodi:namedview> <metadata id="metadata2165"> <rdf:RDF> <cc:Work rdf:about=""> <dc:format>image/svg+xml</dc:format> <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> <dc:title /> </cc:Work> </rdf:RDF> </metadata> <g id="layer1" inkscape:label="Layer 1" inkscape:groupmode="layer"> <path style="fill:none;stroke:#000000;stroke-width:1.12710667000000009px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="m 1.4966449,5 c 0,-0.9081004 0,1.6409521 0,2.7575495 0,1.4141503 0,2.8283005 0,4.2424505" id="path3197" inkscape:transform-center-x="-0.38395373" /> <path style="fill:none;stroke:#000000;stroke-width:1.10537732000000011px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="m 16.146084,8.5134887 c -0.121831,0 -0.401989,0 -0.598171,0 -0.127609,0 -0.25522,0 -0.382829,0 -0.239268,0 -0.478537,0 -0.717804,0 -0.16348,0 0.09159,0 0.143561,0" id="path3204" /> <path style="fill:#729fcf;fill-rule:evenodd;stroke:#729fcf;stroke-width:1.35949695000000004px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="m 3.8025562,8.4684391 c 0.5980866,0 1.9734259,0 2.9365211,0 0.6264575,0 1.2529151,0 1.8793725,0 1.1746084,0 2.3492152,0 3.5238232,0 0.802551,0 -0.449649,0 -0.704765,0" id="path3214" /> <path style="fill:#729fcf;fill-rule:evenodd;stroke:#729fcf;stroke-width:1.09699999999999998;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none" d="m 3.4703704,12.016263 c -0.00461,0.919965 0.00833,-1.662391 0.013999,-2.793578 0.00718,-1.4326262 0.014358,-2.8652528 0.021537,-4.2978799" id="path3220" inkscape:transform-center-x="1.4449532" inkscape:transform-center-y="1.947532" /> <path style="fill:none;stroke:#000000;stroke-width:1.11496520000000010px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="m 14.575483,5.0049233 c 0,-0.910738 0,1.6457179 0,2.7655584 0,1.4182573 0,2.8365153 0,4.2547733" id="path3222" /> <path sodipodi:type="arc" style="fill:#4e9a06;fill-opacity:1;fill-rule:nonzero;stroke:#4e9a06;stroke-linejoin:round;stroke-opacity:1;opacity:1" id="path3224" sodipodi:cx="8.1990099" sodipodi:cy="3.1608911" sodipodi:rx="1.5316832" sodipodi:ry="1.5316832" d="M 9.7306931 3.1608911 A 1.5316832 1.5316832 0 1 1 6.6673267,3.1608911 A 1.5316832 1.5316832 0 1 1 9.7306931 3.1608911 z" transform="matrix(1.3326023,0,0,1.3326023,-3.0745345,-1.504785)" /> <path sodipodi:type="arc" style="fill:#eeeeec;fill-opacity:1;fill-rule:nonzero;stroke:#eeeeec;stroke-linejoin:round;stroke-opacity:1;filter:url(#filter4024);opacity:1" id="path3250" sodipodi:cx="7.5007424" sodipodi:cy="2.4626236" sodipodi:rx="0.51806933" sodipodi:ry="0.51806933" d="M 8.0188118 2.4626236 A 0.51806933 0.51806933 0 1 1 6.9826731,2.4626236 A 0.51806933 0.51806933 0 1 1 8.0188118 2.4626236 z" transform="matrix(1.2433747,0,0,1.2433747,-2.0603915,-0.8322608)" /> <path sodipodi:type="arc" style="fill:#ef2929;fill-opacity:1;fill-rule:nonzero;stroke:#ef2929;stroke-linejoin:round;stroke-opacity:1;opacity:1" id="path4034" sodipodi:cx="8.1990099" sodipodi:cy="3.1608911" sodipodi:rx="1.5316832" sodipodi:ry="1.5316832" d="M 9.7306931 3.1608911 A 1.5316832 1.5316832 0 1 1 6.6673267,3.1608911 A 1.5316832 1.5316832 0 1 1 9.7306931 3.1608911 z" transform="matrix(1.3326023,0,0,1.3326023,-3.0379006,8.949671)" /> <path sodipodi:type="arc" style="fill:#eeeeec;fill-opacity:0.9766355;fill-rule:nonzero;stroke:#eeeeec;stroke-linejoin:round;stroke-opacity:1;filter:url(#filter4024)" id="path4036" sodipodi:cx="7.5007424" sodipodi:cy="2.4626236" sodipodi:rx="0.51806933" sodipodi:ry="0.51806933" d="m 8.0188118,2.4626236 a 0.51806933,0.51806933 0 1 1 -1.0361387,0 0.51806933,0.51806933 0 1 1 1.0361387,0 z" transform="matrix(1.3434079,0,0,1.3868861,-2.9768036,9.223731)" inkscape:transform-center-x="-1.9821782" inkscape:transform-center-y="-2.5352146" /> <path style="fill:none;stroke:#000000;stroke-width:1.19332730999999992px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="m 2.0185518,8.5 c -0.1419883,0 -0.4685017,0 -0.6971454,0 -0.1487238,0 -0.2974485,0 -0.44617232,0 -0.27885782,0 -0.55771648,0 -0.83657345,0 -0.19052916,0 0.106748,0 0.16731452,0" id="path4052" /> <path sodipodi:type="arc" style="color:#000000;fill:url(#radialGradient278);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.25000024;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block" id="path12511" sodipodi:cx="55" sodipodi:cy="125" sodipodi:rx="14.375" sodipodi:ry="14.375" d="M 69.375 125 A 14.375 14.375 0 1 1 40.625,125 A 14.375 14.375 0 1 1 69.375 125 z" transform="matrix(0.3476829,0,0,0.344549,-7.1205012,-39.69775)" inkscape:export-filename="/home/jimmac/ximian_art/icons/nautilus/suse93/stock_new-16.png" inkscape:export-xdpi="33.852203" inkscape:export-ydpi="33.852203" /> <path style="fill:#729fcf;fill-rule:evenodd;stroke:#729fcf;stroke-width:1.09662747000000005px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="m 12.460945,12.022461 c -0.0046,0.919965 0.0083,-1.662391 0.014,-2.7935772 0.0072,-1.4326264 0.01436,-2.865253 0.02154,-4.2978801" id="path3220-6" inkscape:transform-center-x="1.4449532" inkscape:transform-center-y="1.947532" /> </g> </svg> --- NEW FILE: switchmnew.svg --- <?xml version="1.0" encoding="UTF-8" standalone="no"?> <!-- Created with Inkscape (http://www.inkscape.org/) --> <svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="16px" height="16px" id="svg22" sodipodi:version="0.32" inkscape:version="0.46+devel" sodipodi:docname="switchm.svg" inkscape:output_extension="org.inkscape.output.svg.inkscape"> <defs id="defs24"> <inkscape:perspective sodipodi:type="inkscape:persp3d" inkscape:vp_x="0 : 8 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_z="16 : 8 : 1" inkscape:persp3d-origin="8 : 5.3333333 : 1" id="perspective30" /> <inkscape:perspective id="perspective1018" inkscape:persp3d-origin="0.5 : 0.33333333 : 1" inkscape:vp_z="1 : 0.5 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_x="0 : 0.5 : 1" sodipodi:type="inkscape:persp3d" /> <radialGradient inkscape:collect="always" xlink:href="#linearGradient12512" id="radialGradient278" gradientUnits="userSpaceOnUse" cx="55" cy="125" fx="55" fy="125" r="14.375" /> <linearGradient id="linearGradient12512"> <stop style="stop-color:#ffffff;stop-opacity:1.0000000;" offset="0.0000000" id="stop12513" /> <stop style="stop-color:#fff520;stop-opacity:0.89108908;" offset="0.50000000" id="stop12517" /> <stop style="stop-color:#fff300;stop-opacity:0.0000000;" offset="1.0000000" id="stop12514" /> </linearGradient> <radialGradient r="14.375" fy="125" fx="55" cy="125" cx="55" gradientUnits="userSpaceOnUse" id="radialGradient1028" xlink:href="#linearGradient12512" inkscape:collect="always" /> </defs> <sodipodi:namedview id="base" pagecolor="#ffffff" bordercolor="#666666" borderopacity="1.0" inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:zoom="22.197802" inkscape:cx="3.3817025" inkscape:cy="8" inkscape:current-layer="layer1" showgrid="true" inkscape:grid-bbox="true" inkscape:document-units="px" inkscape:snap-global="true" showguides="false" inkscape:window-width="1152" inkscape:window-height="793" inkscape:window-x="0" inkscape:window-y="25" inkscape:snap-grids="false"> <inkscape:grid type="xygrid" id="grid32" /> </sodipodi:namedview> <metadata id="metadata27"> <rdf:RDF> <cc:Work rdf:about=""> <dc:format>image/svg+xml</dc:format> <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> <dc:title></dc:title> </cc:Work> </rdf:RDF> </metadata> <g id="layer1" inkscape:label="Layer 1" inkscape:groupmode="layer"> <path style="stroke-width:1px" d="m 7.928713,9.9183168 0,2.2074262" id="path58" /> <path style="fill:#00ff00;stroke-width:1px" d="M 7.9737625,10.50396 C 6.1717823,15.549505 6.1717823,15.549505 6.1717823,15.549505" id="path64" /> <path style="stroke-width:1px" d="m 3.9643565,8.1613861 c 0.04505,6.3519799 0.04505,6.3519799 0.04505,6.3519799 l 0,0" id="path34" /> <rect style="fill:#888a85;fill-opacity:1;stroke:#888a85;stroke-width:0.40673011999999997;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" id="rect818" width="0.46330088" height="9.3764267" x="4.3126459" y="8.0054026" transform="matrix(0.96374482,-0.26682563,0.27375433,0.96179965,0,0)" /> <rect style="fill:#cc0000;fill-opacity:1;stroke:#ef2929;stroke-width:1.26722789;stroke-opacity:1" id="rect28" width="1.2625616" height="6.4170895" x="3.7529984" y="2.3978021" ry="0.62467241" transform="matrix(0.96822704,-0.25007277,0.29182642,0.9564713,0,0)" /> <path sodipodi:type="star" style="fill:#e9b96e;fill-opacity:0;stroke:#8f5902;stroke-width:0.57858991999999998;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;opacity:1;stroke-linejoin:bevel" id="path828" sodipodi:sides="3" sodipodi:cx="4.1896038" sodipodi:cy="15.369307" sodipodi:r1="5.1855874" sodipodi:r2="2.2652025" sodipodi:arg1="-1.6142472" sodipodi:arg2="-0.61129667" inkscape:flatsided="false" inkscape:rounded="0.079953976" inkscape:randomized="0" d="m 3.9643564,10.188614 c 0.3506863,-0.03083 1.8911358,3.583684 2.080232,3.880625 0.1976792,0.31042 2.8996375,3.361739 2.7442509,3.695344 -0.1486398,0.319121 -4.0491295,-0.15407 -4.4008365,-0.138779 -0.367671,0.01599 -4.36116969,0.83029 -4.57238707,0.528919 -0.2020465,-0.288286 2.15799367,-3.429614 2.32060457,-3.741847 0.1699918,-0.326405 1.4615321,-4.192029 1.8281361,-4.224262 z" transform="matrix(0.80582785,0.02450966,-0.02314404,0.85337599,4.8820158,0.50401861)" /> <path sodipodi:type="arc" style="color:#000000;fill:url(#radialGradient1028);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.25000024;marker:none;visibility:visible;display:block" id="path12511" sodipodi:cx="55" sodipodi:cy="125" sodipodi:rx="14.375" sodipodi:ry="14.375" d="m 69.375,125 a 14.375,14.375 0 1 1 -28.75,0 14.375,14.375 0 1 1 28.75,0 z" transform="matrix(0.3476829,0,0,0.344549,-7.4547377,-39.36714)" inkscape:export-filename="/home/jimmac/ximian_art/icons/nautilus/suse93/stock_new-16.png" inkscape:export-xdpi="33.852203" inkscape:export-ydpi="33.852203" /> </g> </svg> --- NEW FILE: switchmdel.svg --- <?xml version="1.0" encoding="UTF-8" standalone="no"?> <!-- Created with Inkscape (http://www.inkscape.org/) --> <svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="16px" height="16px" id="svg22" sodipodi:version="0.32" inkscape:version="0.46+devel" sodipodi:docname="switchdel.svg" inkscape:output_extension="org.inkscape.output.svg.inkscape"> <defs id="defs24"> <inkscape:perspective sodipodi:type="inkscape:persp3d" inkscape:vp_x="0 : 8 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_z="16 : 8 : 1" inkscape:persp3d-origin="8 : 5.3333333 : 1" id="perspective30" /> <inkscape:perspective id="perspective1018" inkscape:persp3d-origin="0.5 : 0.33333333 : 1" inkscape:vp_z="1 : 0.5 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_x="0 : 0.5 : 1" sodipodi:type="inkscape:persp3d" /> <radialGradient inkscape:collect="always" xlink:href="#linearGradient12512" id="radialGradient278" gradientUnits="userSpaceOnUse" cx="55" cy="125" fx="55" fy="125" r="14.375" /> <linearGradient id="linearGradient12512"> <stop style="stop-color:#ffffff;stop-opacity:1.0000000;" offset="0.0000000" id="stop12513" /> <stop style="stop-color:#fff520;stop-opacity:0.89108908;" offset="0.50000000" id="stop12517" /> <stop style="stop-color:#fff300;stop-opacity:0.0000000;" offset="1.0000000" id="stop12514" /> </linearGradient> <inkscape:perspective id="perspective1220" inkscape:persp3d-origin="0.5 : 0.33333333 : 1" inkscape:vp_z="1 : 0.5 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_x="0 : 0.5 : 1" sodipodi:type="inkscape:persp3d" /> <inkscape:perspective id="perspective1403" inkscape:persp3d-origin="0.5 : 0.33333333 : 1" inkscape:vp_z="1 : 0.5 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_x="0 : 0.5 : 1" sodipodi:type="inkscape:persp3d" /> <filter color-interpolation-filters="sRGB" inkscape:collect="always" id="filter4590"> <feGaussianBlur inkscape:collect="always" stdDeviation="0.56189548" id="feGaussianBlur4592" /> </filter> <filter color-interpolation-filters="sRGB" inkscape:collect="always" id="filter4262"> <feGaussianBlur inkscape:collect="always" stdDeviation="0.34439655" id="feGaussianBlur4264" /> </filter> </defs> <sodipodi:namedview id="base" pagecolor="#ffffff" bordercolor="#666666" borderopacity="1.0" inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:zoom="22.197802" inkscape:cx="3.336653" inkscape:cy="8" inkscape:current-layer="layer1" showgrid="true" inkscape:grid-bbox="true" inkscape:document-units="px" inkscape:snap-global="true" showguides="false" inkscape:window-width="1152" inkscape:window-height="793" inkscape:window-x="0" inkscape:window-y="25" inkscape:snap-grids="false"> <inkscape:grid type="xygrid" id="grid32" /> </sodipodi:namedview> <metadata id="metadata27"> <rdf:RDF> <cc:Work rdf:about=""> <dc:format>image/svg+xml</dc:format> <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> <dc:title /> </cc:Work> </rdf:RDF> </metadata> <g id="layer1" inkscape:label="Layer 1" inkscape:groupmode="layer"> <path style="stroke-width:1px" d="m 7.928713,9.9183168 0,2.2074262" id="path58" /> <path style="fill:#00ff00;stroke-width:1px" d="M 7.9737625,10.50396 C 6.1717823,15.549505 6.1717823,15.549505 6.1717823,15.549505" id="path64" /> <path style="stroke-width:1px" d="m 3.9643565,8.1613861 c 0.04505,6.3519799 0.04505,6.3519799 0.04505,6.3519799 l 0,0" id="path34" /> <rect style="fill:#888a85;fill-opacity:1;stroke:#555753;stroke-width:0.40673011999999997;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" id="rect818" width="0.46330088" height="9.3764267" x="4.3126459" y="8.0054026" transform="matrix(0.96374482,-0.26682563,0.27375433,0.96179965,0,0)" /> <rect style="fill:#cc0000;fill-opacity:1;stroke:#cc0000;stroke-width:1.26722789000000002;stroke-opacity:1" id="rect28" width="1.2625616" height="6.4170895" x="3.7529984" y="2.3978021" ry="0.62467241" transform="matrix(0.96822704,-0.25007277,0.29182642,0.9564713,0,0)" /> <path sodipodi:type="star" style="fill:#555753;fill-opacity:0;stroke:#555753;stroke-width:0.57858991999999998;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;opacity:1;stroke-linejoin:bevel" id="path828" sodipodi:sides="3" sodipodi:cx="4.1896038" sodipodi:cy="15.369307" sodipodi:r1="5.1855874" sodipodi:r2="2.2652025" sodipodi:arg1="-1.6142472" sodipodi:arg2="-0.61129667" inkscape:flatsided="false" inkscape:rounded="0.079953976" inkscape:randomized="0" d="m 3.9643564,10.188614 c 0.3506863,-0.03083 1.8911358,3.583684 2.080232,3.880625 0.1976792,0.31042 2.8996375,3.361739 2.7442509,3.695344 -0.1486398,0.319121 -4.0491295,-0.15407 -4.4008365,-0.138779 -0.367671,0.01599 -4.36116969,0.83029 -4.57238707,0.528919 -0.2020465,-0.288286 2.15799367,-3.429614 2.32060457,-3.741847 0.1699918,-0.326405 1.4615321,-4.192029 1.8281361,-4.224262 z" transform="matrix(0.80582785,0.02450966,-0.02314404,0.85337599,4.8820158,0.50401861)" /> <path style="fill:#ffbcbc;fill-opacity:0.9766355;fill-rule:nonzero;stroke:#fe0c28;stroke-linejoin:round;stroke-opacity:1;filter:url(#filter4262)" id="path4120" d="m 2.1083765,1.0866666 c 0.3160419,0.079008 0.5567699,0.3508227 0.7981747,0.5591244 0.7956372,0.7139196 1.5796754,1.4411212 2.349896,2.1824598 0.6499138,0.6205604 1.2682018,1.2755779 1.8426343,1.9666283 0.6226688,0.748476 1.2255882,1.5112389 1.8772649,2.2350751 0.5471768,0.583388 1.1018136,1.158457 1.6024486,1.782853 0.365044,0.4621018 0.694466,0.9496728 0.990408,1.4584538 0.232506,0.449982 0.447675,0.909843 0.640472,1.378286 0.154209,0.399023 0.297651,0.802103 0.454171,1.200243 0.08704,0.266431 0.208332,0.516603 0.343829,0.760705 0.05768,0.102268 0.126041,0.197744 0.19214,0.294426 l -0.562289,0.33066 C 12.575448,15.134139 12.511364,15.033793 12.453559,14.929742 12.323035,14.677921 12.209128,14.420654 12.126691,14.148243 11.98245,13.745212 11.838419,13.342092 11.686095,12.942025 11.502136,12.472403 11.290547,12.013443 11.060629,11.564604 10.773509,11.053665 10.447506,10.568629 10.088083,10.105381 9.6055822,9.4733582 9.0792898,8.8791082 8.5426675,8.2925592 7.8905564,7.5664167 7.2757118,6.8098751 6.6357752,6.0733085 6.0572258,5.3923245 5.4722711,4.7151577 4.836516,4.0863538 4.0714296,3.3326113 3.282496,2.6017521 2.4316566,1.9446183 2.1695496,1.7564741 1.9012595,1.5005644 1.5674068,1.4797042 L 2.1083765,1.0866666 z" transform="matrix(0.87171898,-0.19675615,0.18155103,0.94472654,-0.53378643,2.7148317)" /> <path style="fill:#ffbcbc;fill-opacity:0.9766355;fill-rule:nonzero;stroke:#ff0000;stroke-width:0.97403181;stroke-linejoin:round;stroke-opacity:1;filter:url(#filter4590)" id="path4362" d="m 1.5464221,15.057868 c 0.095256,-0.115984 0.1818012,-0.243318 0.2691184,-0.369599 0.2160667,-0.2866 0.4316006,-0.57392 0.6508708,-0.856237 0.3938164,-0.5083 0.8002516,-0.997898 1.2109831,-1.481811 C 4.18657,11.763082 4.7056799,11.191732 5.2172668,10.608231 5.7415195,9.973961 6.251661,9.3199607 6.7849327,8.6988507 7.3346339,8.0593107 7.9017849,7.4469497 8.4600842,6.8208737 8.988553,6.1992814 9.5345425,5.6083469 10.107996,5.0618773 10.881154,4.3333358 11.707682,3.7161676 12.537251,3.1102247 13.202384,2.6342692 13.958139,2.0835333 14.453029,1.6763685 14.675268,1.4982605 14.888667,1.3029881 15.084722,1.0771029 L 15.57239,0.81440911 C 15.360406,1.0545024 15.130415,1.262403 14.890817,1.4513133 14.011357,2.1607412 13.102516,2.8014042 12.204243,3.4670896 11.636242,3.8841319 11.070327,4.321432 10.537926,4.8362955 9.95863,5.3815141 9.4067624,5.9714036 8.8756123,6.5975864 8.3197762,7.2219361 7.7556183,7.8334137 7.2079153,8.4704547 c -0.536476,0.621161 -1.0492088,1.276444 -1.5747588,1.9136613 -0.5044954,0.579852 -1.0139467,1.151417 -1.5193012,1.729825 -0.4009146,0.475772 -0.8000084,0.95336 -1.1786225,1.460844 -0.2095459,0.275283 -0.4137215,0.557194 -0.6211264,0.83526 -0.081016,0.121497 -0.1598963,0.24547 -0.2460079,0.360695 l -0.5216764,0.287128 z" transform="matrix(0.89825723,0.15347844,-0.14440383,0.95470545,1.1384012,-0.68392346)" /> </g> </svg> --- NEW FILE: switchmedit.svg --- <?xml version="1.0" encoding="UTF-8" standalone="no"?> <!-- Created with Inkscape (http://www.inkscape.org/) --> <svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="16px" height="16px" id="svg22" sodipodi:version="0.32" inkscape:version="0.46+devel" sodipodi:docname="switchmnew.svg" inkscape:output_extension="org.inkscape.output.svg.inkscape"> <defs id="defs24"> <inkscape:perspective sodipodi:type="inkscape:persp3d" inkscape:vp_x="0 : 8 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_z="16 : 8 : 1" inkscape:persp3d-origin="8 : 5.3333333 : 1" id="perspective30" /> <inkscape:perspective id="perspective1018" inkscape:persp3d-origin="0.5 : 0.33333333 : 1" inkscape:vp_z="1 : 0.5 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_x="0 : 0.5 : 1" sodipodi:type="inkscape:persp3d" /> <radialGradient inkscape:collect="always" xlink:href="#linearGradient12512" id="radialGradient278" gradientUnits="userSpaceOnUse" cx="55" cy="125" fx="55... [truncated message content] |
From: Martin F. <m_f...@us...> - 2009-09-20 15:29:50
|
Update of /cvsroot/xtrkcad-fork/xtrkcad/app/lib In directory fdv4jf1.ch3.sourceforge.com:/tmp/cvs-serv26869 Added Files: xtrkcad.desktop Log Message: LINUX Desktop File --- NEW FILE: xtrkcad.desktop --- [Desktop Entry] Encoding=UTF-8 Name=XTrackCAD Comment=Design model railroad layouts Exec=xtrkcad Icon=xtrkcad Terminal=false Type=Application Categories=Application;Railroad;Game |
From: Martin F. <m_f...@us...> - 2009-09-20 15:28:15
|
Update of /cvsroot/xtrkcad-fork/xtrkcad/app/lib In directory fdv4jf1.ch3.sourceforge.com:/tmp/cvs-serv26463 Modified Files: icon.icns icon.png Added Files: icon.gif icon.svg pencil.gif Log Message: New application icon --- NEW FILE: icon.gif --- (This appears to be a binary file; contents omitted.) --- NEW FILE: icon.svg --- <?xml version="1.0" encoding="UTF-8" standalone="no"?> <!-- Created with Inkscape (http://www.inkscape.org/) --> <svg xmlns:ns="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://web.resource.org/cc/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="131.88594" height="133.22141" id="svg249" sodipodi:version="0.32" inkscape:version="0.45.1" sodipodi:docbase="C:\Dokumente und Einstellungen\MF\Eigene Dateien\xtc\source\xtrkcad\app\lib" sodipodi:docname="icon.svg" inkscape:export-filename="/home/jimmac/gfx/novell/pdes/trunk/docs/BIGmime-text.png" inkscape:export-xdpi="240.00000" inkscape:export-ydpi="240.00000" inkscape:output_extension="org.inkscape.output.svg.inkscape" version="1.0"> <defs id="defs3"> <inkscape:perspective sodipodi:type="inkscape:persp3d" inkscape:vp_x="0 : 24 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_z="48 : 24 : 1" inkscape:persp3d-origin="24 : 16 : 1" id="perspective69" /> <radialGradient inkscape:collect="always" xlink:href="#linearGradient5060" id="radialGradient5031" gradientUnits="userSpaceOnUse" gradientTransform="matrix(-2.774389,0,0,1.969706,112.7623,-872.8854)" cx="605.71429" cy="486.64789" fx="605.71429" fy="486.64789" r="117.14286" /> <linearGradient inkscape:collect="always" id="linearGradient5060"> <stop style="stop-color:black;stop-opacity:1;" offset="0" id="stop5062" /> <stop style="stop-color:black;stop-opacity:0;" offset="1" id="stop5064" /> </linearGradient> <radialGradient inkscape:collect="always" xlink:href="#linearGradient5060" id="radialGradient5029" gradientUnits="userSpaceOnUse" gradientTransform="matrix(2.774389,0,0,1.969706,-1891.633,-872.8854)" cx="605.71429" cy="486.64789" fx="605.71429" fy="486.64789" r="117.14286" /> <linearGradient id="linearGradient5048"> <stop style="stop-color:black;stop-opacity:0;" offset="0" id="stop5050" /> <stop id="stop5056" offset="0.5" style="stop-color:black;stop-opacity:1;" /> <stop style="stop-color:black;stop-opacity:0;" offset="1" id="stop5052" /> </linearGradient> <linearGradient inkscape:collect="always" xlink:href="#linearGradient5048" id="linearGradient5027" gradientUnits="userSpaceOnUse" gradientTransform="matrix(2.774389,0,0,1.969706,-1892.179,-872.8854)" x1="302.85715" y1="366.64789" x2="302.85715" y2="609.50507" /> <linearGradient inkscape:collect="always" id="linearGradient4542"> <stop style="stop-color:#000000;stop-opacity:1;" offset="0" id="stop4544" /> <stop style="stop-color:#000000;stop-opacity:0;" offset="1" id="stop4546" /> </linearGradient> <radialGradient inkscape:collect="always" xlink:href="#linearGradient4542" id="radialGradient4548" cx="24.306795" cy="42.07798" fx="24.306795" fy="42.07798" r="15.821514" gradientTransform="matrix(1,0,0,0.284916,0,30.08928)" gradientUnits="userSpaceOnUse" /> <linearGradient id="linearGradient15662"> <stop style="stop-color:#ffffff;stop-opacity:1.0000000;" offset="0.0000000" id="stop15664" /> <stop style="stop-color:#f8f8f8;stop-opacity:1.0000000;" offset="1.0000000" id="stop15666" /> </linearGradient> <radialGradient gradientUnits="userSpaceOnUse" fy="64.567902" fx="20.892099" r="5.257" cy="64.567902" cx="20.892099" id="aigrd3"> <stop id="stop15573" style="stop-color:#F0F0F0" offset="0" /> <stop id="stop15575" style="stop-color:#9a9a9a;stop-opacity:1.0000000;" offset="1.0000000" /> </radialGradient> <radialGradient gradientUnits="userSpaceOnUse" fy="114.5684" fx="20.892099" r="5.256" cy="114.5684" cx="20.892099" id="aigrd2"> <stop id="stop15566" style="stop-color:#F0F0F0" offset="0" /> <stop id="stop15568" style="stop-color:#9a9a9a;stop-opacity:1.0000000;" offset="1.0000000" /> </radialGradient> <linearGradient id="linearGradient269"> <stop style="stop-color:#a3a3a3;stop-opacity:1.0000000;" offset="0.0000000" id="stop270" /> <stop style="stop-color:#4c4c4c;stop-opacity:1.0000000;" offset="1.0000000" id="stop271" /> </linearGradient> <linearGradient id="linearGradient259"> <stop style="stop-color:#fafafa;stop-opacity:1.0000000;" offset="0.0000000" id="stop260" /> <stop style="stop-color:#bbbbbb;stop-opacity:1.0000000;" offset="1.0000000" id="stop261" /> </linearGradient> <linearGradient id="linearGradient12512"> <stop style="stop-color:#ffffff;stop-opacity:1.0000000;" offset="0.0000000" id="stop12513" /> <stop style="stop-color:#fff520;stop-opacity:0.89108908;" offset="0.50000000" id="stop12517" /> <stop style="stop-color:#fff300;stop-opacity:0.0000000;" offset="1.0000000" id="stop12514" /> </linearGradient> <radialGradient r="37.751713" fy="3.7561285" fx="8.824419" cy="3.7561285" cx="8.824419" gradientTransform="matrix(2.904819,0,0,3.098301,-37.439277,-48.760686)" gradientUnits="userSpaceOnUse" id="radialGradient15656" xlink:href="#linearGradient269" inkscape:collect="always" /> <radialGradient r="86.70845" fy="35.736916" fx="33.966679" cy="35.736916" cx="33.966679" gradientTransform="matrix(2.881479,0,0,3.123396,-47.499936,-50.700027)" gradientUnits="userSpaceOnUse" id="radialGradient15658" xlink:href="#linearGradient259" inkscape:collect="always" /> <radialGradient r="38.158695" fy="7.2678967" fx="8.1435566" cy="7.2678967" cx="8.1435566" gradientTransform="matrix(2.904819,0,0,3.098301,-37.439277,-48.760686)" gradientUnits="userSpaceOnUse" id="radialGradient15668" xlink:href="#linearGradient15662" inkscape:collect="always" /> <radialGradient inkscape:collect="always" xlink:href="#aigrd2" id="radialGradient2283" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.229703,0,0,0.229703,4.613529,3.979808)" cx="20.892099" cy="114.5684" fx="20.892099" fy="114.5684" r="5.256" /> <radialGradient inkscape:collect="always" xlink:href="#aigrd3" id="radialGradient2285" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.229703,0,0,0.229703,4.613529,3.979808)" cx="20.892099" cy="64.567902" fx="20.892099" fy="64.567902" r="5.257" /> </defs> <sodipodi:namedview id="base" pagecolor="#ffffff" bordercolor="#666666" borderopacity="0.32941176" inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:zoom="1" inkscape:cx="-130.2425" inkscape:cy="-6.4480487" inkscape:current-layer="layer4" showgrid="false" inkscape:grid-bbox="true" inkscape:document-units="px" inkscape:window-width="872" inkscape:window-height="688" inkscape:window-x="448" inkscape:window-y="268" inkscape:showpageshadow="false" width="96px" height="96px" /> <metadata id="metadata4"> <rdf:RDF> <ns:Work rdf:about=""> <dc:format>image/svg+xml</dc:format> <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> <dc:title>New Document</dc:title> <dc:creator> <ns:Agent> <dc:title>Jakub Steiner</dc:title> </ns:Agent> </dc:creator> <dc:source>http://jimmac.musichall.cz</dc:source> <ns:license rdf:resource="http://creativecommons.org/licenses/publicdomain/" /> </ns:Work> <ns:License rdf:about="http://creativecommons.org/licenses/publicdomain/"> <ns:permits rdf:resource="http://creativecommons.org/ns#Reproduction" /> <ns:permits rdf:resource="http://creativecommons.org/ns#Distribution" /> <ns:permits rdf:resource="http://creativecommons.org/ns#DerivativeWorks" /> </ns:License> <cc:Work rdf:about=""> <dc:format>image/svg+xml</dc:format> <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> </cc:Work> </rdf:RDF> </metadata> <g inkscape:label="Shadow" id="layer6" inkscape:groupmode="layer" transform="translate(42.193001,41.260689)"> <g style="display:inline" id="g5022" transform="matrix(6.495456e-2,0,0,4.457229e-2,81.522864,77.356143)"> <rect y="-150.69685" x="-1559.2523" height="478.35718" width="1339.6335" id="rect4173" style="opacity:0.40206185;color:#000000;fill:url(#linearGradient5027);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" /> <path sodipodi:nodetypes="cccc" id="path5058" d="M -219.61876,-150.68038 C -219.61876,-150.68038 -219.61876,327.65041 -219.61876,327.65041 C -76.744594,328.55086 125.78146,220.48075 125.78138,88.454235 C 125.78138,-43.572302 -33.655436,-150.68036 -219.61876,-150.68038 z " style="opacity:0.40206185;color:#000000;fill:url(#radialGradient5029);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" /> <path style="opacity:0.40206185;color:#000000;fill:url(#radialGradient5031);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" d="M -1559.2523,-150.68038 C -1559.2523,-150.68038 -1559.2523,327.65041 -1559.2523,327.65041 C -1702.1265,328.55086 -1904.6525,220.48075 -1904.6525,88.454235 C -1904.6525,-43.572302 -1745.2157,-150.68036 -1559.2523,-150.68038 z " id="path5018" sodipodi:nodetypes="cccc" /> </g> </g> <g id="layer1" inkscape:label="Base" inkscape:groupmode="layer" style="display:inline" transform="translate(42.193001,41.260689)"> <rect ry="3.4471457" y="-39.760689" x="-27.689278" height="122.76148" width="104.625" id="rect15391" style="color:#000000;fill:url(#radialGradient15658);fill-opacity:1;fill-rule:nonzero;stroke:url(#radialGradient15656);stroke-width:3;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block;overflow:visible" /> <rect rx="0.4471457" ry="0.4471457" y="-36.948189" x="-24.501776" height="116.83916" width="98.32766" id="rect15660" style="color:#000000;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:url(#radialGradient15668);stroke-width:3;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block;overflow:visible" /> <g id="g2270" transform="matrix(3,0,0,3,-45.560595,-50.813995)"> <g transform="matrix(0.229703,0,0,0.229703,4.967081,4.244972)" style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-miterlimit:4" id="g1440"> <radialGradient gradientUnits="userSpaceOnUse" fy="114.5684" fx="20.892099" r="5.256" cy="114.5684" cx="20.892099" id="radialGradient1442"> <stop id="stop1444" style="stop-color:#F0F0F0" offset="0" /> <stop id="stop1446" style="stop-color:#474747" offset="1" /> </radialGradient> <path id="path1448" d="M 23.428,113.07 C 23.428,115.043 21.828,116.642 19.855,116.642 C 17.881,116.642 16.282,115.042 16.282,113.07 C 16.282,111.096 17.882,109.497 19.855,109.497 C 21.828,109.497 23.428,111.097 23.428,113.07 z " style="stroke:none" /> <radialGradient gradientUnits="userSpaceOnUse" fy="64.567902" fx="20.892099" r="5.257" cy="64.567902" cx="20.892099" id="radialGradient1450"> <stop id="stop1452" style="stop-color:#F0F0F0" offset="0" /> <stop id="stop1454" style="stop-color:#474747" offset="1" /> </radialGradient> <path id="path1456" d="M 23.428,63.07 C 23.428,65.043 21.828,66.643 19.855,66.643 C 17.881,66.643 16.282,65.043 16.282,63.07 C 16.282,61.096 17.882,59.497 19.855,59.497 C 21.828,59.497 23.428,61.097 23.428,63.07 z " style="stroke:none" /> </g> <path id="path15570" d="M 9.9950109,29.952326 C 9.9950109,30.40553 9.6274861,30.772825 9.1742821,30.772825 C 8.7208483,30.772825 8.3535532,30.405301 8.3535532,29.952326 C 8.3535532,29.498892 8.721078,29.131597 9.1742821,29.131597 C 9.6274861,29.131597 9.9950109,29.499122 9.9950109,29.952326 z " style="fill:url(#radialGradient2283);fill-rule:nonzero;stroke:none;stroke-miterlimit:4" /> <path id="path15577" d="M 9.9950109,18.467176 C 9.9950109,18.92038 9.6274861,19.287905 9.1742821,19.287905 C 8.7208483,19.287905 8.3535532,18.92038 8.3535532,18.467176 C 8.3535532,18.013742 8.721078,17.646447 9.1742821,17.646447 C 9.6274861,17.646447 9.9950109,18.013972 9.9950109,18.467176 z " style="fill:url(#radialGradient2285);fill-rule:nonzero;stroke:none;stroke-miterlimit:4" /> </g> <path sodipodi:nodetypes="cc" id="path15672" d="M -12.982767,-34.217197 L -12.982767,79.50258" style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:2.96565938;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:0.01754384" /> <path sodipodi:nodetypes="cc" id="path15674" d="M -9.9999364,-35.63848 L -9.9999364,78.414657" style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#ffffff;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:0.20467828" /> </g> <g inkscape:groupmode="layer" id="layer4" inkscape:label="new" style="display:inline" transform="translate(42.193001,41.260689)"> <image y="30.908768" x="-4.9355011" id="image2321" height="45" width="73" sodipodi:absref="C:\Dokumente und Einstellungen\MF\Desktop\icon.gif" xlink:href="icon.gif" /> <image y="-17.091236" x="16.564499" id="image2304" height="73" width="58" sodipodi:absref="C:\Dokumente und Einstellungen\MF\Eigene Dateien\xtc\source\xtrkcad\app\lib\pencil.gif" xlink:href="pencil.gif" /> </g> </svg> Index: icon.png =================================================================== RCS file: /cvsroot/xtrkcad-fork/xtrkcad/app/lib/icon.png,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 Binary files /tmp/cvscmd4lN and /tmp/cvsWaloIA differ --- NEW FILE: pencil.gif --- (This appears to be a binary file; contents omitted.) Index: icon.icns =================================================================== RCS file: /cvsroot/xtrkcad-fork/xtrkcad/app/lib/icon.icns,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 Binary files /tmp/cvsQOIvrN and /tmp/cvsZfzMOA differ |
From: Martin F. <m_f...@us...> - 2009-09-20 15:22:57
|
Update of /cvsroot/xtrkcad-fork/xtrkcad/app/wlib/include In directory fdv4jf1.ch3.sourceforge.com:/tmp/cvs-serv26064 Modified Files: wlib.h Log Message: Improved support for bitmaps Index: wlib.h =================================================================== RCS file: /cvsroot/xtrkcad-fork/xtrkcad/app/wlib/include/wlib.h,v retrieving revision 1.15 retrieving revision 1.16 diff -C2 -d -r1.15 -r1.16 *** wlib.h 16 Aug 2009 13:19:20 -0000 1.15 --- wlib.h 20 Sep 2009 15:22:47 -0000 1.16 *************** *** 53,56 **** --- 53,57 ---- typedef struct wDrawBitMap_t * wDrawBitMap_p; typedef struct wFont_t * wFont_p; + typedef struct wBitmap_t * wBitmap_p; typedef int wDrawWidth; typedef int wDrawColor; *************** *** 120,123 **** --- 121,125 ---- wIcon_p wIconCreatePixMap( char *[] ); void wIconSetColor( wIcon_p, wDrawColor ); + void wIconDraw( wDraw_p d, wIcon_p bm, wPos_t x, wPos_t y ); void wConvertToCharSet( char *, int ); *************** *** 676,678 **** --- 678,688 ---- void CleanupCustom( void ); + + /*------------------------------------------------------------------------------ + * + * Bitmap Controls + */ + + wControl_p wBitmapCreate( wWin_p parent, wPos_t xx, wPos_t yy, long options, wIcon_p iconP ); + #endif |
From: Martin F. <m_f...@us...> - 2009-09-20 14:59:05
|
Update of /cvsroot/xtrkcad-fork/xtrkcad/app/bin/bitmaps/SVG In directory fdv4jf1.ch3.sourceforge.com:/tmp/cvs-serv23503 Added Files: tipofday.svg Log Message: New tip of the day icon --- NEW FILE: tipofday.svg --- <?xml version="1.0" encoding="UTF-8" standalone="no"?> <!-- Created with Inkscape (http://www.inkscape.org/) --> <svg xmlns:ns="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://web.resource.org/cc/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" sodipodi:docname="tipofday.svg" sodipodi:docbase="C:\Dokumente und Einstellungen\MF\Eigene Dateien\xtc\source\xtrkcad\app\bin\bitmaps\SVG" inkscape:version="0.45.1" sodipodi:version="0.32" id="svg19655" height="63.500313" width="51" [...1137 lines suppressed...] </g> <path inkscape:r_cy="true" inkscape:r_cx="true" style="opacity:0.5977654;color:#000000;fill:url(#linearGradient4134);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.98750001;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" d="M 25.001158,3.5644322 C 18.737608,3.5644322 13.655359,7.5900329 13.655359,12.547843 C 13.655359,14.527956 14.632918,16.261758 16.006008,17.747035 C 17.558672,18.378895 19.249827,18.832941 21.114752,18.832941 C 27.378302,18.832941 32.460549,14.807341 32.460551,9.849528 C 32.460551,7.857476 31.466744,6.1074629 30.07856,4.6174331 C 28.533139,3.9930601 26.854241,3.5644321 25.001158,3.5644322 z " id="path6334" transform="matrix(0.954439,0,0,0.989869,1.433222,0.639881)" /> </g> </g> <image y="36.5" x="-8.5" id="image2986" height="29" width="51" sodipodi:absref="C:\Dokumente und Einstellungen\MF\Eigene Dateien\xtc\source\xtrkcad\app\lib\icon.gif" xlink:href="C:\Dokumente und Einstellungen\MF\Eigene Dateien\xtc\source\xtrkcad\app\lib\icon.gif" /> </g> </svg> |
From: Martin F. <m_f...@us...> - 2009-09-20 14:56:04
|
Update of /cvsroot/xtrkcad-fork/xtrkcad/app/wlib/mswlib In directory fdv4jf1.ch3.sourceforge.com:/tmp/cvs-serv23171 Modified Files: CMakeLists.txt ChangeLog mswint.h mswmisc.c Added Files: mswbitmap.c Log Message: Enhanced bitmap display control --- NEW FILE: mswbitmap.c --- /** \file mswbitmap.c * Bitmap handling functions * * $Header: /cvsroot/xtrkcad-fork/xtrkcad/app/wlib/mswlib/mswbitmap.c,v 1.1 2009/09/20 14:55:54 m_fischer Exp $ */ /* XTrkCad - Model Railroad CAD * Copyright (C) 2009 Martin Fischer * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #include <windows.h> #include <string.h> #include <malloc.h> #include <stdlib.h> #include <commdlg.h> #include <stdio.h> #include <assert.h> #include "mswint.h" #include "i18n.h" #if _MSC_VER > 1300 #define stricmp _stricmp #define strnicmp _strnicmp #define strdup _strdup #endif struct wBitmap_t { WOBJ_COMMON }; HPALETTE hOldPal; HBITMAP mswCreateBitMap( COLORREF fgCol1, COLORREF fgCol2, COLORREF bgCol, wPos_t w, wPos_t h, const char * bits ) { HDC hDc; HDC hButtDc; HBRUSH oldBrush, newBrush; RECT rect; HBITMAP hBitMap; HBITMAP hOldBitMap; const char * byts_p; int byt, i, j; hDc = GetDC( mswHWnd ); hButtDc = CreateCompatibleDC( hDc ); hBitMap = CreateCompatibleBitmap( hDc, w, h ); ReleaseDC( mswHWnd, hDc ); hOldBitMap = SelectObject( hButtDc, hBitMap ); if (mswPalette) { hOldPal = SelectPalette( hButtDc, mswPalette, 0 ); } /*PatBlt( hButtDc, 0, 0, w, h, WHITENESS );*/ newBrush = CreateSolidBrush( bgCol ); oldBrush = SelectObject( hButtDc, newBrush ); rect.top = 0; rect.left = 0; rect.bottom = h; rect.right = w; FillRect( hButtDc, &rect, newBrush ); DeleteObject( SelectObject( hButtDc, oldBrush ) ); byts_p = bits; for ( j = 0; j < h; j++ ) { byt = (0xFF & *byts_p++) | 0x100; for ( i = 0; i < w; i++ ) { if (byt == 1) byt = (0xFF & *byts_p++) | 0x100; if ( byt & 0x1 ) { SetPixel( hButtDc, i, j, fgCol1 ); SetPixel( hButtDc, i+1, j+1, fgCol2 ); } byt >>= 1; } } SelectObject( hButtDc, hOldBitMap ); DeleteDC( hButtDc ); return hBitMap; } dynArr_t bitmap_da; #define controlMap(N) DYNARR_N(controlMap_t,controlMap_da,N) #define bitmap(N) DYNARR_N(HBITMAP,bitmap_da,N) void mswRegisterBitMap( HBITMAP hBm ) { DYNARR_APPEND( HBITMAP, bitmap_da, 10 ); bitmap(bitmap_da.cnt-1) = hBm; } void deleteBitmaps( void ) { int inx; for ( inx=0; inx<bitmap_da.cnt; inx++ ) DeleteObject( bitmap(inx) ); } /** * Draw a bitmap to the screen. * * \param hDc IN device context * \param offw IN horizontal offset * \param offh IN vertical offset * \param bm IN icon to draw * \param disabled IN draw in disabled state * \param color1 IN for two color bitmaps: foreground color enabled state * \param color2 IN for two color bitmaps: foreground color disabled state * */ void mswDrawIcon( HDC hDc, int offw, int offh, wIcon_p bm, int disabled, COLORREF color1, COLORREF color2 ) { int i; int byt; BITMAPINFO *bmiInfo; COLORREF col; /* draw the bitmap by dynamically creating a Windows DIB in memory */ bmiInfo = malloc( sizeof( BITMAPINFO ) + (bm->colorcnt - 1) * sizeof( RGBQUAD )); if( !bmiInfo ) { fprintf( stderr, "could not allocate memory for bmiInfo\n" ); abort(); } /* initialize bitmap header from XPM information */ bmiInfo->bmiHeader.biSize = sizeof( bmiInfo->bmiHeader ); bmiInfo->bmiHeader.biWidth = bm->w; bmiInfo->bmiHeader.biHeight = bm->h; bmiInfo->bmiHeader.biPlanes = 1; if( bm->type == mswIcon_bitmap ) bmiInfo->bmiHeader.biBitCount = 1; else bmiInfo->bmiHeader.biBitCount = 8; /* up to 256 colors */ bmiInfo->bmiHeader.biCompression = BI_RGB; /* no compression */ bmiInfo->bmiHeader.biSizeImage = 0; bmiInfo->bmiHeader.biXPelsPerMeter = 0; bmiInfo->bmiHeader.biYPelsPerMeter = 0; bmiInfo->bmiHeader.biClrUsed = bm->colorcnt; /* number of colors used */ bmiInfo->bmiHeader.biClrImportant = bm->colorcnt; /* * create a transparency mask and paint to screen */ if( bm->type == mswIcon_bitmap ) { memset( &bmiInfo->bmiColors[ 0 ], 0xFF, sizeof( RGBQUAD )); memset( &bmiInfo->bmiColors[ 1 ], 0, sizeof( RGBQUAD )); } else { memset( bmiInfo->bmiColors, 0, bm->colorcnt * sizeof( RGBQUAD )); memset( &bmiInfo->bmiColors[ bm->transparent ], 0xFF, sizeof( RGBQUAD )); } StretchDIBits(hDc, offw, offh, bmiInfo->bmiHeader.biWidth, bmiInfo->bmiHeader.biHeight, 0, 0, bmiInfo->bmiHeader.biWidth, bmiInfo->bmiHeader.biHeight, bm->pixels, bmiInfo, DIB_RGB_COLORS, SRCAND); /* now paint the bitmap with transparent set to black */ if( bm->type == mswIcon_bitmap ) { if( disabled ) { col = color2; } else { col = color1; } memset( &bmiInfo->bmiColors[ 0 ], 0, sizeof( RGBQUAD )); bmiInfo->bmiColors[ 1 ].rgbRed = GetRValue( col ); bmiInfo->bmiColors[ 1 ].rgbGreen = GetGValue( col ); bmiInfo->bmiColors[ 1 ].rgbBlue = GetBValue( col ); } else { if( disabled ) { /* create a gray scale palette */ for( i = 0; i < bm->colorcnt; i ++ ) { byt = ( 30 * bm->colormap[ i ].rgbRed + 59 * bm->colormap[ i ].rgbGreen + 11 * bm->colormap[ i ].rgbBlue )/100; /* if totally black, use a dark gray */ if( byt == 0 ) byt = 0x66; bmiInfo->bmiColors[ i ].rgbRed = byt; bmiInfo->bmiColors[ i ].rgbGreen = byt; bmiInfo->bmiColors[ i ].rgbBlue = byt; } } else { /* copy the palette */ memcpy( (void *)bmiInfo->bmiColors, (void *)bm->colormap, bm->colorcnt * sizeof( RGBQUAD )); } memset( &bmiInfo->bmiColors[ bm->transparent ], 0, sizeof( RGBQUAD )); } /* show the bitmap */ StretchDIBits(hDc, offw, offh, bmiInfo->bmiHeader.biWidth, bmiInfo->bmiHeader.biHeight, 0, 0, bmiInfo->bmiHeader.biWidth, bmiInfo->bmiHeader.biHeight, bm->pixels, bmiInfo, DIB_RGB_COLORS, SRCPAINT); /* forget the data */ free( bmiInfo ); } /** * Create a two color bitmap. This creates a two color icon. Pixels set to 1 are painted * in the specified color, pixels set to 0 are transparent * in order to convert the format, a lot of bit fiddling is necessary. The order of * scanlines needs to be reversed and the bit order (high order - low order) is reversed * as well. * \param w IN width in pixels * \param h IN height in pixels * \param bits IN pixel data * \param color IN color for foreground * \return pointer to icon */ wIcon_p wIconCreateBitMap( wPos_t w, wPos_t h, const char * bits, wDrawColor color ) { int lineLength; int i, j; unsigned char *dest; static unsigned char revbits[] = { 0, 0x08, 0x04, 0x0C, 0x02, 0x0A, 0x06, 0x0E, 0x01, 0x09, 0x05, 0x0D, 0x03, 0x0B, 0x07, 0x0F }; unsigned long col = wDrawGetRGB( color ); wIcon_p ip; ip = (wIcon_p)malloc( sizeof *ip ); if( !ip ) { fprintf( stderr, "Couldn't allocate memory for bitmap header.\n" ); abort(); } memset( ip, 0, sizeof *ip ); ip->type = mswIcon_bitmap; ip->w = w; ip->h = h; ip->colorcnt = 2; /* set up our two color palette */ ip->colormap = malloc( 2 * sizeof( RGBQUAD )); ip->colormap[ 1 ].rgbBlue = col & 0xFF; ip->colormap[ 1 ].rgbRed = (col>>16) & 0xFF; ip->colormap[ 1 ].rgbGreen = (col>>8) & 0xFF; ip->colormap[ 1 ].rgbReserved = 0; color = GetSysColor( COLOR_BTNFACE ); ip->colormap[ 0 ].rgbBlue = GetBValue( color ); ip->colormap[ 0 ].rgbRed = GetRValue( color ); ip->colormap[ 0 ].rgbGreen = GetGValue( color ); ip->colormap[ 0 ].rgbReserved = 0; lineLength = (((( ip->w + 7 ) / 8 ) + 3 ) >> 2 ) << 2; ip->pixels = malloc( lineLength * ip->h ); if( !ip->pixels ) { fprintf( stderr, "Couldn't allocate memory for pixel data.\n" ); abort(); } /* * copy the bits from source to the buffer, at this time the order of * scanlines is reversed by starting with the last source line. */ for( i = 0; i < ip->h; i++ ) { dest = ip->pixels + i * lineLength; memcpy( dest, bits + ( ip->h - i - 1 ) * (( ip->w + 7) / 8), ( ip->w + 7 ) / 8 ); /* * and now, the bit order is changed, this is done via a lookup table */ for( j = 0; j < lineLength; j++ ) { unsigned byte = dest[ j ]; unsigned low = byte & 0x0F; unsigned high = (byte & 0xF0) >> 4; dest[ j ] = revbits[ low ]<<4 | revbits[ high ]; } } return ip; } /** * Create a pixmap. This functions interprets a XPM icon contained in a * char array. Supported format are one or two byte per pixel and #rrggbb * or #rrrrggggbbbb color specification. Color 'None' is interpreted as * transparency, other symbolic names are not supported. * * \param pm IN XPM variable * \return pointer to icon, call free() if not needed anymore. */ wIcon_p wIconCreatePixMap( char *pm[]) { wIcon_p ip; int col, r, g, b, len; int width, height; char buff[3]; char * cp, * cq, * ptr; int i, j, k; int lineLength; unsigned *keys; unsigned numchars; unsigned pixel; ip = (wIcon_p)malloc( sizeof *ip ); if( !ip ) { fprintf( stderr, "Couldn't allocate memory for bitmap header.\n" ); abort(); } memset( ip, 0, sizeof *ip ); ip->type = mswIcon_pixmap; /* extract values */ cp = pm[0]; width = (int)strtol(cp, &cq, 10 ); /* width of image */ height = (int)strtol(cq, &cq, 10 ); /* height of image */ col = (int)strtol(cq, &cq, 10 ); /* number of colors used */ numchars = (int)strtol(cq, &cq, 10 ); /* get number of chars per pixel */ ip->colormap = malloc( col * sizeof( RGBQUAD )); ip->w = width; ip->h = height; ip->colorcnt = col; /* number of colors used */ keys = malloc( sizeof( unsigned ) * col ); for ( col=0; col<(int)ip->colorcnt; col++ ) { ptr = strdup( pm[col+1] ); /* create duplicate for input string*/ if( numchars == 1 ) { keys[ col ] = (unsigned)ptr[0]; } else if( numchars == 2 ) { keys[ col ] = (unsigned) ( ptr[ 0 ] + ptr[ 1 ] * 256 ); } cp = strtok( ptr + numchars, "\t " ); /* cp points to color type */ assert( *cp == 'c' ); /* should always be color */ cp = strtok( NULL, "\t " ); /* go to next token, the color definition itself */ if( *cp == '#' ) { /* is this a hex RGB specification? */ len = strlen( cp+1 ) / 3; assert( len == 4 || len == 2 ); /* expecting three 2 char or 4 char values */ buff[2] = 0; /* if yes, extract the values */ memcpy( buff, cp + 1, 2 ); r = (int)strtol(buff, &cq, 16); memcpy( buff, cp + 1 + len, 2 ); g = (int)strtol(buff, &cq, 16); memcpy( buff, cp + 1 + 2 * len, 2 ); b = (int)strtol(buff, &cq, 16); ip->colormap[ col ].rgbBlue = b; ip->colormap[ col ].rgbGreen = g; ip->colormap[ col ].rgbRed = r; ip->colormap[ col ].rgbReserved = 0; } else { if( !stricmp( cp, "none" )) { /* special case transparency*/ ip->transparent = col; } else assert( *cp == '#' ); /* if no, abort for the moment */ } free( ptr ); } /* get memory for the pixel data */ /* dword align begin of line */ lineLength = ((ip->w + 3 ) >> 2 ) << 2; ip->pixels = malloc( lineLength * ip->h ); if( !ip->pixels ) { fprintf( stderr, "Couldn't allocate memory for pixel data.\n" ); abort(); } /* convert the XPM pixel data to indexes into color table at the same time the order of rows is reversed Win32 should be able to do that but I couldn't find out how, so this is coded by hand. */ /* for all rows */ for( i = 0; i < ip->h; i++ ) { cq = ip->pixels + lineLength * i; /* get the next row */ cp = pm[ ip->h - i + ip->colorcnt ]; /* for all pixels in row */ for( j = 0; j < ip->w; j++ ) { /* get the pixel info */ if( numchars == 1 ) pixel = ( unsigned )*cp; else pixel = (unsigned) (*cp + *(cp+1)*256); cp += numchars; /* look up pixel info in color table */ k = 0; while( pixel != keys[ k ] ) k++; /* save the index into color table */ *(cq + j) = k; } } free( keys ); return ip; } void wIconSetColor( wIcon_p ip, wDrawColor color ) { unsigned long col = wDrawGetRGB( color ); if( ip->type == mswIcon_bitmap ) { ip->colormap[ 1 ].rgbBlue = col & 0xFF; ip->colormap[ 1 ].rgbRed = (col>>16) & 0xFF; ip->colormap[ 1 ].rgbGreen = (col>>8) & 0xFF; } } /** * Draw icon to screen. * * \param d IN drawing area * \param bm IN bitmap to draw * \param x IN x position * \param y IN y position */ void wIconDraw( wDraw_p d, wIcon_p bm, wPos_t x, wPos_t y ) { mswDrawIcon( d->hDc, (int)x, (int)y, bm, FALSE, 0, 0 ); } /** * Create a static control for displaying a bitmap. * * \param parent IN parent window * \param x, y IN position in parent window * \param option IN ignored for now * \param iconP IN icon to use * \return the control */ wControl_p wBitmapCreate( wWin_p parent, wPos_t x, wPos_t y, long option, wIcon_p iconP ) { wBitmap_p control; int index; DWORD style = SS_OWNERDRAW | WS_VISIBLE | WS_CHILD; control = mswAlloc( parent, B_BITMAP, NULL, sizeof( struct wBitmap_t ), NULL, &index ); mswComputePos( (wControl_p)control, x, y ); control->option = option; control->hWnd = CreateWindow( "STATIC", NULL, style, control->x, control->y, iconP->w, iconP->h, ((wControl_p)parent)->hWnd, (HMENU)index, mswHInst, NULL ); if (control->hWnd == NULL) { mswFail("CreateWindow(BITMAP)"); return (wControl_p)control; } control->h = iconP->h; control->w = iconP->w; control->data = iconP; return (wControl_p)control; } Index: CMakeLists.txt =================================================================== RCS file: /cvsroot/xtrkcad-fork/xtrkcad/app/wlib/mswlib/CMakeLists.txt,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** CMakeLists.txt 16 Aug 2009 13:19:20 -0000 1.6 --- CMakeLists.txt 20 Sep 2009 14:55:54 -0000 1.7 *************** *** 6,9 **** --- 6,10 ---- mswbox.c mswbutt.c + mswbitmap.c mswchksm.c mswchoic.c Index: mswmisc.c =================================================================== RCS file: /cvsroot/xtrkcad-fork/xtrkcad/app/wlib/mswlib/mswmisc.c,v retrieving revision 1.24 retrieving revision 1.25 diff -C2 -d -r1.24 -r1.25 *** mswmisc.c 2 Sep 2009 18:34:03 -0000 1.24 --- mswmisc.c 20 Sep 2009 14:55:54 -0000 1.25 *************** *** 149,154 **** static int inMainWndProc = FALSE; - HPALETTE hOldPal; - int newHelp = 1; --- 149,152 ---- *************** *** 271,392 **** - /** - * Draw a bitmap to the screen. - * - * \param hDc IN device context - * \param offw IN horizontal offset - * \param offh IN vertical offset - * \param bm IN icon to draw - * \param disabled IN draw in disabled state - * \param color1 IN for two color bitmaps: foreground color enabled state - * \param color2 IN for two color bitmaps: foreground color disabled state - * - */ - - void mswDrawIcon( - HDC hDc, - int offw, - int offh, - wIcon_p bm, - int disabled, - COLORREF color1, - COLORREF color2 ) - { - int i; - int byt; - BITMAPINFO *bmiInfo; - COLORREF col; - - /* draw the bitmap by dynamically creating a Windows DIB in memory */ - - bmiInfo = malloc( sizeof( BITMAPINFO ) + (bm->colorcnt - 1) * sizeof( RGBQUAD )); - if( !bmiInfo ) { - fprintf( stderr, "could not allocate memory for bmiInfo\n" ); - abort(); - } - - /* initialize bitmap header from XPM information */ - bmiInfo->bmiHeader.biSize = sizeof( bmiInfo->bmiHeader ); - bmiInfo->bmiHeader.biWidth = bm->w; - bmiInfo->bmiHeader.biHeight = bm->h; - bmiInfo->bmiHeader.biPlanes = 1; - if( bm->type == mswIcon_bitmap ) - bmiInfo->bmiHeader.biBitCount = 1; - else - bmiInfo->bmiHeader.biBitCount = 8; /* up to 256 colors */ - bmiInfo->bmiHeader.biCompression = BI_RGB; /* no compression */ - bmiInfo->bmiHeader.biSizeImage = 0; - bmiInfo->bmiHeader.biXPelsPerMeter = 0; - bmiInfo->bmiHeader.biYPelsPerMeter = 0; - bmiInfo->bmiHeader.biClrUsed = bm->colorcnt; /* number of colors used */ - bmiInfo->bmiHeader.biClrImportant = bm->colorcnt; - - /* - * create a transparency mask and paint to screen - */ - if( bm->type == mswIcon_bitmap ) { - memset( &bmiInfo->bmiColors[ 0 ], 0xFF, sizeof( RGBQUAD )); - memset( &bmiInfo->bmiColors[ 1 ], 0, sizeof( RGBQUAD )); - } else { - memset( bmiInfo->bmiColors, 0, bm->colorcnt * sizeof( RGBQUAD )); - memset( &bmiInfo->bmiColors[ bm->transparent ], 0xFF, sizeof( RGBQUAD )); - } - StretchDIBits(hDc, offw, offh, - bmiInfo->bmiHeader.biWidth, - bmiInfo->bmiHeader.biHeight, - 0, 0, - bmiInfo->bmiHeader.biWidth, - bmiInfo->bmiHeader.biHeight, - bm->pixels, bmiInfo, - DIB_RGB_COLORS, SRCAND); - - /* now paint the bitmap with transparent set to black */ - if( bm->type == mswIcon_bitmap ) { - if( disabled ) { - col = color2; - } else { - col = color1; - } - memset( &bmiInfo->bmiColors[ 0 ], 0, sizeof( RGBQUAD )); - bmiInfo->bmiColors[ 1 ].rgbRed = GetRValue( col ); - bmiInfo->bmiColors[ 1 ].rgbGreen = GetGValue( col ); - bmiInfo->bmiColors[ 1 ].rgbBlue = GetBValue( col ); - } else { - if( disabled ) { - /* create a gray scale palette */ - for( i = 0; i < bm->colorcnt; i ++ ) { - byt = ( 30 * bm->colormap[ i ].rgbRed + - 59 * bm->colormap[ i ].rgbGreen + - 11 * bm->colormap[ i ].rgbBlue )/100; - - /* if totally black, use a dark gray */ - if( byt == 0 ) - byt = 0x66; - - bmiInfo->bmiColors[ i ].rgbRed = byt; - bmiInfo->bmiColors[ i ].rgbGreen = byt; - bmiInfo->bmiColors[ i ].rgbBlue = byt; - } - } else { - /* copy the palette */ - memcpy( (void *)bmiInfo->bmiColors, (void *)bm->colormap, bm->colorcnt * sizeof( RGBQUAD )); - } - memset( &bmiInfo->bmiColors[ bm->transparent ], 0, sizeof( RGBQUAD )); - } - - /* show the bitmap */ - StretchDIBits(hDc, offw, offh, - bmiInfo->bmiHeader.biWidth, - bmiInfo->bmiHeader.biHeight, - 0, 0, - bmiInfo->bmiHeader.biWidth, - bmiInfo->bmiHeader.biHeight, - bm->pixels, bmiInfo, - DIB_RGB_COLORS, SRCPAINT); - - /* forget the data */ - free( bmiInfo ); - } - int mswRegister( --- 269,272 ---- *************** *** 580,656 **** - HBITMAP mswCreateBitMap( - COLORREF fgCol1, - COLORREF fgCol2, - COLORREF bgCol, - wPos_t w, - wPos_t h, - const char * bits ) - { - HDC hDc; - HDC hButtDc; - HBRUSH oldBrush, newBrush; - RECT rect; - HBITMAP hBitMap; - HBITMAP hOldBitMap; - const char * byts_p; - int byt, i, j; - - hDc = GetDC( mswHWnd ); - hButtDc = CreateCompatibleDC( hDc ); - hBitMap = CreateCompatibleBitmap( hDc, w, h ); - ReleaseDC( mswHWnd, hDc ); - hOldBitMap = SelectObject( hButtDc, hBitMap ); - if (mswPalette) { - hOldPal = SelectPalette( hButtDc, mswPalette, 0 ); - } - - /*PatBlt( hButtDc, 0, 0, w, h, WHITENESS );*/ - newBrush = CreateSolidBrush( bgCol ); - oldBrush = SelectObject( hButtDc, newBrush ); - rect.top = 0; - rect.left = 0; - rect.bottom = h; - rect.right = w; - FillRect( hButtDc, &rect, newBrush ); - DeleteObject( SelectObject( hButtDc, oldBrush ) ); - - byts_p = bits; - for ( j = 0; j < h; j++ ) { - byt = (0xFF & *byts_p++) | 0x100; - for ( i = 0; i < w; i++ ) { - if (byt == 1) - byt = (0xFF & *byts_p++) | 0x100; - if ( byt & 0x1 ) { - SetPixel( hButtDc, i, j, fgCol1 ); - SetPixel( hButtDc, i+1, j+1, fgCol2 ); - } - byt >>= 1; - } - } - - SelectObject( hButtDc, hOldBitMap ); - DeleteDC( hButtDc ); - return hBitMap; - } - - dynArr_t bitmap_da; - #define controlMap(N) DYNARR_N(controlMap_t,controlMap_da,N) - #define bitmap(N) DYNARR_N(HBITMAP,bitmap_da,N) - - void mswRegisterBitMap( - HBITMAP hBm ) - { - DYNARR_APPEND( HBITMAP, bitmap_da, 10 ); - bitmap(bitmap_da.cnt-1) = hBm; - } - - static void deleteBitmaps( void ) - { - int inx; - for ( inx=0; inx<bitmap_da.cnt; inx++ ) - DeleteObject( bitmap(inx) ); - } - void mswChainFocus( --- 460,463 ---- *************** *** 1392,1616 **** } - /** - * Create a two color bitmap. This creates a two color icon. Pixels set to 1 are painted - * in the specified color, pixels set to 0 are transparent - * in order to convert the format, a lot of bit fiddling is necessary. The order of - * scanlines needs to be reversed and the bit order (high order - low order) is reversed - * as well. - * \param w IN width in pixels - * \param h IN height in pixels - * \param bits IN pixel data - * \param color IN color for foreground - * \return pointer to icon - */ - - wIcon_p wIconCreateBitMap( wPos_t w, wPos_t h, const char * bits, wDrawColor color ) - { - int lineLength; - int i, j; - unsigned char *dest; - static unsigned char revbits[] = { 0, 0x08, 0x04, 0x0C, 0x02, 0x0A, 0x06, 0x0E, 0x01, 0x09, 0x05, 0x0D, 0x03, 0x0B, 0x07, 0x0F }; - unsigned long col = wDrawGetRGB( color ); - - wIcon_p ip; - ip = (wIcon_p)malloc( sizeof *ip ); - if( !ip ) { - fprintf( stderr, "Couldn't allocate memory for bitmap header.\n" ); - abort(); - } - - memset( ip, 0, sizeof *ip ); - ip->type = mswIcon_bitmap; - ip->w = w; - ip->h = h; - ip->colorcnt = 2; - - /* set up our two color palette */ - ip->colormap = malloc( 2 * sizeof( RGBQUAD )); - - ip->colormap[ 1 ].rgbBlue = col & 0xFF; - ip->colormap[ 1 ].rgbRed = (col>>16) & 0xFF; - ip->colormap[ 1 ].rgbGreen = (col>>8) & 0xFF; - ip->colormap[ 1 ].rgbReserved = 0; - - color = GetSysColor( COLOR_BTNFACE ); - ip->colormap[ 0 ].rgbBlue = GetBValue( color ); - ip->colormap[ 0 ].rgbRed = GetRValue( color ); - ip->colormap[ 0 ].rgbGreen = GetGValue( color ); - ip->colormap[ 0 ].rgbReserved = 0; - - lineLength = (((( ip->w + 7 ) / 8 ) + 3 ) >> 2 ) << 2; - ip->pixels = malloc( lineLength * ip->h ); - if( !ip->pixels ) { - fprintf( stderr, "Couldn't allocate memory for pixel data.\n" ); - abort(); - } - - /* - * copy the bits from source to the buffer, at this time the order of - * scanlines is reversed by starting with the last source line. - */ - for( i = 0; i < ip->h; i++ ) { - dest = ip->pixels + i * lineLength; - memcpy( dest, bits + ( ip->h - i - 1 ) * (( ip->w + 7) / 8), ( ip->w + 7 ) / 8 ); - - /* - * and now, the bit order is changed, this is done via a lookup table - */ - for( j = 0; j < lineLength; j++ ) - { - unsigned byte = dest[ j ]; - unsigned low = byte & 0x0F; - unsigned high = (byte & 0xF0) >> 4; - dest[ j ] = revbits[ low ]<<4 | revbits[ high ]; - } - } - - return ip; - } - - /** - * Create a pixmap. This functions interprets a XPM icon contained in a - * char array. Supported format are one or two byte per pixel and #rrggbb - * or #rrrrggggbbbb color specification. Color 'None' is interpreted as - * transparency, other symbolic names are not supported. - * - * \param pm IN XPM variable - * \return pointer to icon, call free() if not needed anymore. - */ - - wIcon_p wIconCreatePixMap( char *pm[]) - { - wIcon_p ip; - int col, r, g, b, len; - int width, height; - char buff[3]; - char * cp, * cq, * ptr; - int i, j, k; - int lineLength; - unsigned *keys; - unsigned numchars; - unsigned pixel; - - ip = (wIcon_p)malloc( sizeof *ip ); - if( !ip ) { - fprintf( stderr, "Couldn't allocate memory for bitmap header.\n" ); - abort(); - } - - memset( ip, 0, sizeof *ip ); - ip->type = mswIcon_pixmap; - - /* extract values */ - cp = pm[0]; - width = (int)strtol(cp, &cq, 10 ); /* width of image */ - height = (int)strtol(cq, &cq, 10 ); /* height of image */ - col = (int)strtol(cq, &cq, 10 ); /* number of colors used */ - numchars = (int)strtol(cq, &cq, 10 ); /* get number of chars per pixel */ - - ip->colormap = malloc( col * sizeof( RGBQUAD )); - ip->w = width; - ip->h = height; - ip->colorcnt = col; /* number of colors used */ - - keys = malloc( sizeof( unsigned ) * col ); - - for ( col=0; col<(int)ip->colorcnt; col++ ) { - ptr = strdup( pm[col+1] ); /* create duplicate for input string*/ - - if( numchars == 1 ) { - keys[ col ] = (unsigned)ptr[0]; - } - else if( numchars == 2 ) { - keys[ col ] = (unsigned) ( ptr[ 0 ] + ptr[ 1 ] * 256 ); - } - - cp = strtok( ptr + numchars, "\t " ); /* cp points to color type */ - assert( *cp == 'c' ); /* should always be color */ - - cp = strtok( NULL, "\t " ); /* go to next token, the color definition itself */ - - if( *cp == '#' ) { /* is this a hex RGB specification? */ - len = strlen( cp+1 ) / 3; - assert( len == 4 || len == 2 ); /* expecting three 2 char or 4 char values */ - buff[2] = 0; /* if yes, extract the values */ - memcpy( buff, cp + 1, 2 ); - r = (int)strtol(buff, &cq, 16); - memcpy( buff, cp + 1 + len, 2 ); - g = (int)strtol(buff, &cq, 16); - memcpy( buff, cp + 1 + 2 * len, 2 ); - b = (int)strtol(buff, &cq, 16); - - ip->colormap[ col ].rgbBlue = b; - ip->colormap[ col ].rgbGreen = g; - ip->colormap[ col ].rgbRed = r; - ip->colormap[ col ].rgbReserved = 0; - - } else { - if( !stricmp( cp, "none" )) { /* special case transparency*/ - ip->transparent = col; - } - else - assert( *cp == '#' ); /* if no, abort for the moment */ - } - free( ptr ); - } - - /* get memory for the pixel data */ - /* dword align begin of line */ - lineLength = ((ip->w + 3 ) >> 2 ) << 2; - ip->pixels = malloc( lineLength * ip->h ); - if( !ip->pixels ) { - fprintf( stderr, "Couldn't allocate memory for pixel data.\n" ); - abort(); - } - - /* - convert the XPM pixel data to indexes into color table - at the same time the order of rows is reversed - Win32 should be able to do that but I couldn't find out - how, so this is coded by hand. - */ - - /* for all rows */ - for( i = 0; i < ip->h; i++ ) { - - cq = ip->pixels + lineLength * i; - /* get the next row */ - cp = pm[ ip->h - i + ip->colorcnt ]; - /* for all pixels in row */ - for( j = 0; j < ip->w; j++ ) { - /* get the pixel info */ - if( numchars == 1 ) - pixel = ( unsigned )*cp; - else - pixel = (unsigned) (*cp + *(cp+1)*256); - cp += numchars; - - /* look up pixel info in color table */ - k = 0; - while( pixel != keys[ k ] ) - k++; - - /* save the index into color table */ - *(cq + j) = k; - } - } - free( keys ); - - return ip; - } - - void wIconSetColor( wIcon_p ip, wDrawColor color ) - { - unsigned long col = wDrawGetRGB( color ); - - if( ip->type == mswIcon_bitmap ) { - ip->colormap[ 1 ].rgbBlue = col & 0xFF; - ip->colormap[ 1 ].rgbRed = (col>>16) & 0xFF; - ip->colormap[ 1 ].rgbGreen = (col>>8) & 0xFF; - } - } - /* --- 1199,1202 ---- *************** *** 2607,2610 **** --- 2193,2197 ---- switch (message) { + case WM_MOUSEWHEEL: inx = GetWindowWord( hWnd, 0 ); *************** *** 2616,2622 **** message, wParam, lParam ); return( 0 ); case WM_COMMAND: case WM_MEASUREITEM: - case WM_DRAWITEM: case WM_NOTVALID: if (WCMD_PARAM_ID == IDM_DOHELP) { --- 2203,2209 ---- message, wParam, lParam ); return( 0 ); + case WM_DRAWITEM: case WM_COMMAND: case WM_MEASUREITEM: case WM_NOTVALID: if (WCMD_PARAM_ID == IDM_DOHELP) { *************** *** 2635,2650 **** if (!b) break; ! mswSetFocus( b ); ! ret = 0L; ! if (!inMainWndProc) { ! inMainWndProc = TRUE; ! if (mswCallBacks[b->type] != NULL && ! mswCallBacks[b->type]->messageProc) { ! ret = mswCallBacks[b->type]->messageProc( b, hWnd, message, wParam, lParam ); } ! inMainWndProc = FALSE; } - return ret; - case WM_PAINT: inx = GetWindowWord( hWnd, 0 ); --- 2222,2242 ---- if (!b) break; ! if( b->type == B_BITMAP ) { ! // draw the bitmap ! mswDrawIcon(((LPDRAWITEMSTRUCT)lParam)->hDC, 0, 0, (wIcon_p)(b->data), FALSE, (COLORREF)0, (COLORREF)0 ); ! return( TRUE ); ! } else { ! mswSetFocus( b ); ! ret = 0L; ! if (!inMainWndProc) { ! inMainWndProc = TRUE; ! if (mswCallBacks[b->type] != NULL && ! mswCallBacks[b->type]->messageProc) { ! ret = mswCallBacks[b->type]->messageProc( b, hWnd, message, wParam, lParam ); ! } ! inMainWndProc = FALSE; } ! return ret; } case WM_PAINT: inx = GetWindowWord( hWnd, 0 ); *************** *** 3225,3227 **** return FALSE; } - --- 2817,2818 ---- Index: mswint.h =================================================================== RCS file: /cvsroot/xtrkcad-fork/xtrkcad/app/wlib/mswlib/mswint.h,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** mswint.h 2 Sep 2009 18:34:03 -0000 1.7 --- mswint.h 20 Sep 2009 14:55:54 -0000 1.8 *************** *** 52,56 **** B_RADIO, B_TOGGLE, B_DRAW, B_TEXT, B_MESSAGE, B_LINES, ! B_MENUITEM, B_CHOICEITEM, B_BOX } wType_e; typedef void (*repaintProcCallback_p)( HWND, wControl_p ); --- 52,57 ---- B_RADIO, B_TOGGLE, B_DRAW, B_TEXT, B_MESSAGE, B_LINES, ! B_MENUITEM, B_CHOICEITEM, B_BOX, ! B_BITMAP } wType_e; typedef void (*repaintProcCallback_p)( HWND, wControl_p ); *************** *** 159,163 **** void mswAddButton( wControl_p, BOOL_T, const char * ); void mswRepaintLabel( HWND, wControl_p ); - void mswDrawIcon( HDC, int, int, wIcon_p, int, COLORREF, COLORREF ); int mswRegister( wControl_p ); void mswUnregister( int ); --- 160,163 ---- *************** *** 186,189 **** --- 186,193 ---- HPALETTE mswCreatePalette( void ); + /* mswbitmaps.c */ + void deleteBitmaps( void ); + void mswDrawIcon( HDC, int, int, wIcon_p, int, COLORREF, COLORREF ); + /* gwin32.c*/ char *g_win32_getlocale (void); \ No newline at end of file Index: ChangeLog =================================================================== RCS file: /cvsroot/xtrkcad-fork/xtrkcad/app/wlib/mswlib/ChangeLog,v retrieving revision 1.29 retrieving revision 1.30 diff -C2 -d -r1.29 -r1.30 *** ChangeLog 2 Sep 2009 18:34:03 -0000 1.29 --- ChangeLog 20 Sep 2009 14:55:54 -0000 1.30 *************** *** 1,7 **** Sep 02, 2009 ENH: Martin Fischer <m_f...@us...> mswbutt.c, mswint.h, mswlist.c mswmisc.c: ! including true ! transparency Aug 16, 2009 --- 1,12 ---- + Sep 20. 2009 + ENH: Martin Fischer <m_f...@us...> + CMakeLists.txt, mswbitmap.c, mswmisc.c, mswint.h: + new source file for bitmap functions, added bitmap + control to controls available to the application + Sep 02, 2009 ENH: Martin Fischer <m_f...@us...> mswbutt.c, mswint.h, mswlist.c mswmisc.c: ! improved XPM reading including true transparency Aug 16, 2009 |
From: Martin F. <m_f...@us...> - 2009-09-16 18:32:37
|
Update of /cvsroot/xtrkcad-fork/xtrkcad/app/bin In directory fdv4jf1.ch3.sourceforge.com:/tmp/cvs-serv23504 Modified Files: cblock.c ChangeLog cswitchmotor.c Log Message: Remove unused locals Index: cswitchmotor.c =================================================================== RCS file: /cvsroot/xtrkcad-fork/xtrkcad/app/bin/cswitchmotor.c,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** cswitchmotor.c 5 Sep 2009 16:40:53 -0000 1.3 --- cswitchmotor.c 16 Sep 2009 18:32:24 -0000 1.4 *************** *** 5,8 **** --- 5,11 ---- * ------------------------------------------------------------------ * Modification History: $Log$ + * Modification History: Revision 1.4 2009/09/16 18:32:24 m_fischer + * Modification History: Remove unused locals + * Modification History: * Modification History: Revision 1.3 2009/09/05 16:40:53 m_fischer * Modification History: Make layout control commands a build-time choice *************** *** 273,277 **** TRKINX_T trkindex; wIndex_t index; ! track_p trk, strk; switchmotorData_p xx; char *name, *normal, *reverse, *pointsense; --- 276,280 ---- TRKINX_T trkindex; wIndex_t index; ! track_p trk; switchmotorData_p xx; char *name, *normal, *reverse, *pointsense; *************** *** 450,454 **** { track_p trk,btrk; - char msg[STR_SIZE]; switchmotorData_p xx; --- 453,456 ---- *************** *** 492,496 **** static STATUS_T CmdSwitchMotor (wAction_t action, coOrd pos ) { - wIndex_t switchmotorIndex; fprintf(stderr,"*** CmdSwitchMotor(%08x,{%f,%f})\n",action,pos.x,pos.y); --- 494,497 ---- Index: cblock.c =================================================================== RCS file: /cvsroot/xtrkcad-fork/xtrkcad/app/bin/cblock.c,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** cblock.c 5 Sep 2009 16:40:53 -0000 1.3 --- cblock.c 16 Sep 2009 18:32:24 -0000 1.4 *************** *** 5,8 **** --- 5,11 ---- * ------------------------------------------------------------------ * Modification History: $Log$ + * Modification History: Revision 1.4 2009/09/16 18:32:24 m_fischer + * Modification History: Remove unused locals + * Modification History: * Modification History: Revision 1.3 2009/09/05 16:40:53 m_fischer * Modification History: Make layout control commands a build-time choice *************** *** 248,255 **** EPINX_T ep, epCnt, epN; int inx; - coOrd orig, size; track_p trk, trk1; DIST_T dist; ! ANGLE_T angle, angleN; int pathElemStart = 0; coOrd endPtOrig = zero; --- 251,257 ---- EPINX_T ep, epCnt, epN; int inx; track_p trk, trk1; DIST_T dist; ! ANGLE_T angle; int pathElemStart = 0; coOrd endPtOrig = zero; *************** *** 306,310 **** { BOOL_T rc = TRUE; - EPINX_T ep, epCnt; wIndex_t iTrack; blockData_p xx = GetblockData(t); --- 308,311 ---- *************** *** 499,503 **** { track_p trk = NULL; - TRKTYP_T trkType; fprintf(stderr,"*** NewBlockDialog()\n"); --- 500,503 ---- *************** *** 582,586 **** { track_p trk,btrk; - char msg[STR_SIZE]; blockData_p xx; --- 582,585 ---- *************** *** 624,629 **** static STATUS_T CmdBlock (wAction_t action, coOrd pos ) { - wIndex_t blockIndex; - fprintf(stderr,"*** CmdBlock(%08x,{%f,%f})\n",action,pos.x,pos.y); --- 623,626 ---- Index: ChangeLog =================================================================== RCS file: /cvsroot/xtrkcad-fork/xtrkcad/app/bin/ChangeLog,v retrieving revision 1.76 retrieving revision 1.77 diff -C2 -d -r1.76 -r1.77 *** ChangeLog 16 Aug 2009 13:26:41 -0000 1.76 --- ChangeLog 16 Sep 2009 18:32:24 -0000 1.77 *************** *** 1,2 **** --- 1,6 ---- + Sep 16, 2009 + FIX: Martin Fischer <m_f...@us...> + cblock.c, cswitchmotor.c: remove some unused locals + Aug 16, 2009 FIX: Martin Fischer <m_f...@us...> |
From: Martin F. <m_f...@us...> - 2009-09-05 16:41:01
|
Update of /cvsroot/xtrkcad-fork/xtrkcad/app/bin In directory fdv4jf1.ch3.sourceforge.com:/tmp/cvs-serv32543/app/bin Modified Files: CMakeLists.txt cblock.c cswitchmotor.c custom.c custom.h misc.c misc.h Log Message: Make layout control commands a build-time choice Index: misc.c =================================================================== RCS file: /cvsroot/xtrkcad-fork/xtrkcad/app/bin/misc.c,v retrieving revision 1.45 retrieving revision 1.46 diff -C2 -d -r1.45 -r1.46 *** misc.c 16 Aug 2009 13:26:41 -0000 1.45 --- misc.c 5 Sep 2009 16:40:53 -0000 1.46 *************** *** 1703,1706 **** --- 1703,1709 ---- N_("SnapGrid Buttons"), N_("Create Track Buttons"), + #ifdef XTRKCAD_USE_LAYOUTCONTROL + N_("Layout Control Elements"), + #endif N_("Modify Track Buttons"), N_("Describe/Select"), *************** *** 1719,1722 **** --- 1722,1728 ---- 1<<BG_SNAP, 1<<BG_TRKCRT, + #ifdef XTRKCAD_USE_LAYOUTCONTROL + 1<<BG_CONTROL, + #endif 1<<BG_TRKMOD, 1<<BG_SELECT, *************** *** 2217,2225 **** InitCmdHandLaidTurnout( addM ); InitCmdStruct( addM ); - InitCmdBlock( addM ); - InitCmdSwitchMotor( addM ); InitCmdHelix( addM ); InitCmdTurntable( addM ); ! /* --- 2223,2234 ---- InitCmdHandLaidTurnout( addM ); InitCmdStruct( addM ); InitCmdHelix( addM ); InitCmdTurntable( addM ); ! ! #ifdef XTRKCAD_USE_LAYOUTCONTROL ! cmdGroup = BG_CONTROL; ! InitCmdBlock( addM ); ! InitCmdSwitchMotor( addM ); ! #endif /* Index: CMakeLists.txt =================================================================== RCS file: /cvsroot/xtrkcad-fork/xtrkcad/app/bin/CMakeLists.txt,v retrieving revision 1.14 retrieving revision 1.15 diff -C2 -d -r1.14 -r1.15 *** CMakeLists.txt 16 Aug 2009 13:26:41 -0000 1.14 --- CMakeLists.txt 5 Sep 2009 16:40:53 -0000 1.15 *************** *** 64,68 **** ${LIN_SOURCES} bllnhlp.c - cblock.c ccurve.c cdraw.c --- 64,67 ---- *************** *** 86,90 **** cstraigh.c cstruct.c - cswitchmotor.c ctext.c ctodesgn.c --- 85,88 ---- *************** *** 124,127 **** --- 122,133 ---- ) + IF(XTRKCAD_USE_LAYOUTCONTROL) + SET(SOURCES + ${SOURCES} + cblock.c + cswitchmotor.c + ) + ENDIF(XTRKCAD_USE_LAYOUTCONTROL) + INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR}) INCLUDE_DIRECTORIES(${XTrkCAD_BINARY_DIR}) Index: cblock.c =================================================================== RCS file: /cvsroot/xtrkcad-fork/xtrkcad/app/bin/cblock.c,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** cblock.c 8 Jul 2009 19:13:58 -0000 1.2 --- cblock.c 5 Sep 2009 16:40:53 -0000 1.3 *************** *** 5,8 **** --- 5,11 ---- * ------------------------------------------------------------------ * Modification History: $Log$ + * Modification History: Revision 1.3 2009/09/05 16:40:53 m_fischer + * Modification History: Make layout control commands a build-time choice + * Modification History: * Modification History: Revision 1.2 2009/07/08 19:13:58 m_fischer * Modification History: Make compile under MSVC *************** *** 633,641 **** } ! #include "bitmaps/block.xpm" ! ! #include "bitmaps/block1.xpm" ! #include "bitmaps/block2.xpm" ! #include "bitmaps/block3.xpm" EXPORT void InitCmdBlock( wMenu_p menu ) --- 636,642 ---- } ! #include "bitmaps/blocknew.xpm" ! #include "bitmaps/blockedit.xpm" ! #include "bitmaps/blockdel.xpm" EXPORT void InitCmdBlock( wMenu_p menu ) *************** *** 644,650 **** blockScript[0] = '\0'; ButtonGroupBegin( _("Block"), "cmdBlockSetCmd", _("Blocks") ); ! AddMenuButton( menu, CmdBlock, "cmdBlockCreate", _("Create Block"), wIconCreatePixMap(block1_xpm), LEVEL0_50, IC_CANCEL|IC_POPUP, ACCL_BLOCK1, (void*)BLOCK_CREATE ); ! AddMenuButton( menu, CmdBlock, "cmdBlockEdit", _("Edit Block"), wIconCreatePixMap(block2_xpm), LEVEL0_50, IC_CANCEL|IC_POPUP, ACCL_BLOCK2, (void*)BLOCK_EDIT ); ! AddMenuButton( menu, CmdBlock, "cmdBlockDelete", _("Delete Block"), wIconCreatePixMap(block3_xpm), LEVEL0_50, IC_CANCEL|IC_POPUP, ACCL_BLOCK3, (void*)BLOCK_DELETE ); ButtonGroupEnd(); ParamRegister( &blockPG ); --- 645,651 ---- blockScript[0] = '\0'; ButtonGroupBegin( _("Block"), "cmdBlockSetCmd", _("Blocks") ); ! AddMenuButton( menu, CmdBlock, "cmdBlockCreate", _("Create Block"), wIconCreatePixMap(blocknew_xpm), LEVEL0_50, IC_CANCEL|IC_POPUP, ACCL_BLOCK1, (void*)BLOCK_CREATE ); ! AddMenuButton( menu, CmdBlock, "cmdBlockEdit", _("Edit Block"), wIconCreatePixMap(blockedit_xpm), LEVEL0_50, IC_CANCEL|IC_POPUP, ACCL_BLOCK2, (void*)BLOCK_EDIT ); ! AddMenuButton( menu, CmdBlock, "cmdBlockDelete", _("Delete Block"), wIconCreatePixMap(blockdel_xpm), LEVEL0_50, IC_CANCEL|IC_POPUP, ACCL_BLOCK3, (void*)BLOCK_DELETE ); ButtonGroupEnd(); ParamRegister( &blockPG ); Index: misc.h =================================================================== RCS file: /cvsroot/xtrkcad-fork/xtrkcad/app/bin/misc.h,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** misc.h 11 Jul 2008 16:56:37 -0000 1.7 --- misc.h 5 Sep 2009 16:40:53 -0000 1.8 *************** *** 381,382 **** --- 381,388 ---- void AttachTrains( void ); #endif + + /* cblock.c */ + void InitCmdBlock( wMenu_p menu ); + + /* cswitchmotor.c */ + void InitCmdSwitchMotor( wMenu_p menu ); Index: custom.c =================================================================== RCS file: /cvsroot/xtrkcad-fork/xtrkcad/app/bin/custom.c,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** custom.c 16 Aug 2009 13:07:14 -0000 1.10 --- custom.c 5 Sep 2009 16:40:53 -0000 1.11 *************** *** 159,165 **** InitTrkDraw(); InitTrkNote(); InitTrkBlock(); InitTrkSwitchMotor(); ! InitCarDlg(); --- 159,167 ---- InitTrkDraw(); InitTrkNote(); + + #ifdef XTRKCAD_USE_LAYOUTCONTROL InitTrkBlock(); InitTrkSwitchMotor(); ! #endif InitCarDlg(); Index: cswitchmotor.c =================================================================== RCS file: /cvsroot/xtrkcad-fork/xtrkcad/app/bin/cswitchmotor.c,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** cswitchmotor.c 8 Jul 2009 19:13:58 -0000 1.2 --- cswitchmotor.c 5 Sep 2009 16:40:53 -0000 1.3 *************** *** 5,8 **** --- 5,11 ---- * ------------------------------------------------------------------ * Modification History: $Log$ + * Modification History: Revision 1.3 2009/09/05 16:40:53 m_fischer + * Modification History: Make layout control commands a build-time choice + * Modification History: * Modification History: Revision 1.2 2009/07/08 19:13:58 m_fischer * Modification History: Make compile under MSVC *************** *** 501,509 **** } ! #include "bitmaps/switchmotor.xpm" ! #include "bitmaps/switchmotor1.xpm" ! #include "bitmaps/switchmotor2.xpm" ! #include "bitmaps/switchmotor3.xpm" EXPORT void InitCmdSwitchMotor( wMenu_p menu ) --- 504,512 ---- } ! //#include "bitmaps/switchmotor.xpm" ! #include "bitmaps/switchmnew.xpm" ! #include "bitmaps/switchmedit.xpm" ! #include "bitmaps/switchmdel.xpm" EXPORT void InitCmdSwitchMotor( wMenu_p menu ) *************** *** 514,520 **** switchmotorPointSense[0] = '\0'; ButtonGroupBegin( _("SwitchMotor"), "cmdSwitchMotorSetCmd", _("Switch Motors") ); ! AddMenuButton( menu, CmdSwitchMotor, "cmdSwitchMotorCreate", _("Create Switch Motor"), wIconCreatePixMap(switchmotor1_xpm), LEVEL0_50, IC_CANCEL|IC_POPUP, ACCL_SWITCHMOTOR1, (void*)SWITCHMOTOR_CREATE ); ! AddMenuButton( menu, CmdSwitchMotor, "cmdSwitchMotorEdit", _("Edit Switch Motor"), wIconCreatePixMap(switchmotor2_xpm), LEVEL0_50, IC_CANCEL|IC_POPUP, ACCL_SWITCHMOTOR2, (void*)SWITCHMOTOR_EDIT ); ! AddMenuButton( menu, CmdSwitchMotor, "cmdSwitchMotorDelete", _("Delete Switch Motor"), wIconCreatePixMap(switchmotor3_xpm), LEVEL0_50, IC_CANCEL|IC_POPUP, ACCL_SWITCHMOTOR3, (void*)SWITCHMOTOR_DELETE ); ButtonGroupEnd(); ParamRegister( &switchmotorPG ); --- 517,523 ---- switchmotorPointSense[0] = '\0'; ButtonGroupBegin( _("SwitchMotor"), "cmdSwitchMotorSetCmd", _("Switch Motors") ); ! AddMenuButton( menu, CmdSwitchMotor, "cmdSwitchMotorCreate", _("Create Switch Motor"), wIconCreatePixMap(switchmnew_xpm), LEVEL0_50, IC_CANCEL|IC_POPUP, ACCL_SWITCHMOTOR1, (void*)SWITCHMOTOR_CREATE ); ! AddMenuButton( menu, CmdSwitchMotor, "cmdSwitchMotorEdit", _("Edit Switch Motor"), wIconCreatePixMap(switchmedit_xpm), LEVEL0_50, IC_CANCEL|IC_POPUP, ACCL_SWITCHMOTOR2, (void*)SWITCHMOTOR_EDIT ); ! AddMenuButton( menu, CmdSwitchMotor, "cmdSwitchMotorDelete", _("Delete Switch Motor"), wIconCreatePixMap(switchmdel_xpm), LEVEL0_50, IC_CANCEL|IC_POPUP, ACCL_SWITCHMOTOR3, (void*)SWITCHMOTOR_DELETE ); ButtonGroupEnd(); ParamRegister( &switchmotorPG ); Index: custom.h =================================================================== RCS file: /cvsroot/xtrkcad-fork/xtrkcad/app/bin/custom.h,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** custom.h 9 Jul 2009 18:29:42 -0000 1.5 --- custom.h 5 Sep 2009 16:40:53 -0000 1.6 *************** *** 42,45 **** --- 42,46 ---- #define BG_COUNT (13) #define BG_FILE (14) + #define BG_CONTROL (15) #define BG_BIGGAP (1<<8) extern int cmdGroup; |
From: Martin F. <m_f...@us...> - 2009-09-05 16:40:27
|
Update of /cvsroot/xtrkcad-fork/xtrkcad In directory fdv4jf1.ch3.sourceforge.com:/tmp/cvs-serv32470 Modified Files: CMakeLists.txt xtrkcad-config.h.in Log Message: Make layout control commands a build-time choice Index: CMakeLists.txt =================================================================== RCS file: /cvsroot/xtrkcad-fork/xtrkcad/CMakeLists.txt,v retrieving revision 1.19 retrieving revision 1.20 diff -C2 -d -r1.19 -r1.20 *** CMakeLists.txt 1 Jul 2009 18:30:26 -0000 1.19 --- CMakeLists.txt 5 Sep 2009 16:40:19 -0000 1.20 *************** *** 37,43 **** --- 37,45 ---- endif(COMMAND cmake_policy) + SET(XTRKCAD_USE_LAYOUTCONTROL_DEFAULT OFF) OPTION(XTRKCAD_USE_GTK "Use GTK for the graphical user interface back-end" ${XTRKCAD_USE_GTK_DEFAULT}) OPTION(XTRKCAD_USE_GTK_CAIRO "Use Cairo for high-quality antialiased rendering" ${XTRKCAD_USE_GTK_CAIRO_DEFAULT}) OPTION(XTRKCAD_USE_GETTEXT "Use gettext for internationalization" ${XTRKCAD_USE_GETTEXT_DEFAULT}) + OPTION(XTRKCAD_USE_LAYOUTCONTROL "Include layout control commands" ${XTRKCAD_USE_LAYOUTCONTROL_DEFAULT}) IF(APPLE) Index: xtrkcad-config.h.in =================================================================== RCS file: /cvsroot/xtrkcad-fork/xtrkcad/xtrkcad-config.h.in,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** xtrkcad-config.h.in 29 Jan 2008 04:10:21 -0000 1.3 --- xtrkcad-config.h.in 5 Sep 2009 16:40:19 -0000 1.4 *************** *** 23,26 **** --- 23,27 ---- #cmakedefine XTRKCAD_USE_GETTEXT + #cmakedefine XTRKCAD_USE_LAYOUTCONTROL #define XTRKCAD_INSTALL_PREFIX "@CMAKE_INSTALL_PREFIX@" |
From: Martin F. <m_f...@us...> - 2009-09-05 16:38:28
|
Update of /cvsroot/xtrkcad-fork/xtrkcad/app/bin/bitmaps In directory fdv4jf1.ch3.sourceforge.com:/tmp/cvs-serv31973/app/bin/bitmaps Added Files: blockdel.xpm blockedit.xpm blocknew.xpm switchmdel.xpm switchmedit.xpm switchmnew.xpm Removed Files: block.xpm block1.xpm block2.xpm block3.xpm switchmotor.xpm switchmotor1.xpm switchmotor2.xpm switchmotor3.xpm Log Message: Added bitmaps --- NEW FILE: switchmedit.xpm --- /* XPM */ static char * switchmedit_xpm[] = { "16 16 59 1", " c None", ". c #6F4D10", "+ c #A0711A", "@ c #EF2828", "# c #EF2929", "$ c #704E10", "% c #A9781B", "& c #CB9022", "* c #EE2828", "= c #ED2828", "- c #B07D1D", "; c #EE2929", "> c #715010", ", c #B7821E", "' c #CA8F22", ") c #9B6C1A", "! c #71510F", "~ c #BC851F", "{ c #C98E22", "] c #906717", "^ c #684A0F", "/ c #F02929", "( c #755311", "_ c #BF8820", ": c #C68D21", "< c #886116", "[ c #674A10", "} c #D92D24", "| c #775511", "1 c #C38B21", "2 c #C38A21", "3 c #7E5B14", "4 c #6D4B11", "5 c #D03026", "6 c #855517", "7 c #C68D22", "8 c #795613", "9 c #815D19", "0 c #C88F21", "a c #B9831F", "b c #725012", "c c #896C2E", "d c #D3AE5A", "e c #CB9124", "f c #B4801E", "g c #6E4D11", "h c #CDB678", "i c #E2D29B", "j c #BC9746", "k c #8A6C2B", "l c #D7BC78", "m c #AD904F", "n c #816632", "o c #836C40", "p c #65490C", "q c #7A5B21", "r c #785618", "s c #878A85", "t c #898B86", " .+", " @# $%&", " *#= $-&&", " ;#; >,&')", " ## !~&{]^", " ##/ (_&:<[ ", " *#}|1&234 ", " 567&_8 ", " 90&ab ", " cdefg ", " hijg ", " klmnog ", " pqrg sg ", " g ssg ", " g tsg ", " gggggggg "}; --- block2.xpm DELETED --- --- switchmotor.xpm DELETED --- --- NEW FILE: switchmnew.xpm --- /* XPM */ static char * switchmnew_xpm[] = { "16 16 47 1", " c None", ". c #FFF414", "+ c #FFF416", "@ c #FFF314", "# c #EF2828", "$ c #EF2929", "% c #FFF518", "& c #FFF41E", "* c #FFF639", "= c #FFF52B", "- c #FFF41A", "; c #FFF512", "> c #EE2828", ", c #ED2828", "' c #FFF513", ") c #FFF521", "! c #FFF969", "~ c #FFFA92", "{ c #FFF97C", "] c #FFF63B", "^ c #FFF317", "/ c #EE2929", "( c #FFF417", "_ c #FFF63C", ": c #FFFA95", "< c #FFFDE7", "[ c #FFFBB3", "} c #FFF75C", "| c #FFF51B", "1 c #FFF531", "2 c #FFF980", "3 c #FFFBB5", "4 c #FFFA98", "5 c #FFF64C", "6 c #F35820", "7 c #FFF63E", "8 c #FFF74D", "9 c #FFF51F", "0 c #FFF515", "a c #EC2828", "b c #FFF312", "c c #FFF319", "d c #E92C2C", "e c #D5403F", "f c #898A83", "g c #8B7247", "h c #8A8577", " .+@ ", " #$ %&*=-; ", " >$, ')!~{]^ ", " /$/ (_:<[}| ", " $$ (12345- ", " $$6 |7}890 ", " >$a bc|-0 ", " de ", " f ", " g ", " gg ", " ghf ", " g fg ", " g f g ", " g f g ", " gggggggg "}; --- NEW FILE: switchmdel.xpm --- /* XPM */ static char * switchmdel_xpm[] = { "16 16 35 1", " c None", ". c #CC0000", "+ c #CB0000", "@ c #FF0000", "# c #FE0C28", "$ c #FE112B", "% c #FF0101", "& c #F00D21", "* c #FE142E", "= c #F80E27", "- c #D00103", "; c #E80306", "> c #FF0303", ", c #FF0611", "' c #FF060D", ") c #FF0202", "! c #F51022", "~ c #FD132E", "{ c #5A5954", "] c #E71B32", "^ c #FE132D", "/ c #595C58", "( c #575954", "_ c #FE102C", ": c #61635F", "< c #5A5D5A", "[ c #545652", "} c #5E5F5C", "| c #555753", "1 c #FE1530", "2 c #5B5C58", "3 c #626460", "4 c #565752", "5 c #575854", "6 c #575A56", " ", " .. ", " +.+ @ ", " #$ ... @@% ", " ##&.. %@@ ", " *#=-. @@ ", " ##;@> ", " ,@' ", " )@!#~ ", " %@ {]#^ ", " @@ /( #_ ", " @@ :< # ", " @@ [ }| 1# ", "@@ 2 #$ ", " 3 # ", " 4 56 | "}; --- block.xpm DELETED --- --- NEW FILE: blockdel.xpm --- /* XPM */ static char * blockdel_xpm[] = { "16 16 33 1", " c None", ". c #FE0C28", "+ c #FE102B", "@ c #D1FCD1", "# c #D2FCD2", "$ c #FF0000", "% c #FF102A", "& c #D3FCD3", "* c #FF0101", "= c #000000", "- c #C38790", "; c #FE0D29", "> c #B2A8AA", ", c #ACB5B7", "' c #FE122B", ") c #ACB6B7", "! c #DE5162", "~ c #B5A0A2", "{ c #F51819", "] c #FE0A23", "^ c #D66070", "/ c #FF0202", "( c #C67C7E", "_ c #B6A0A5", ": c #FF0303", "< c #FFF5F5", "[ c #FEEEEE", "} c #FFF6F6", "| c #FDF1F1", "1 c #FE142F", "2 c #FFF0F0", "3 c #FD102C", "4 c #FE0D28", " ", " .+ @# $$", " %.. @& $$ ", " .. *$$ ", " = .. $$ = ", " = -.; $$> = ", " = , .'$$ , = ", "=== ,)!$$~,, ===", "=== ,,{$]^,, ===", " = ,/$ +. , = ", " = ($ .._ = ", " $: < .+ ", " $* [}| 1. ", " $$ 2} .3 ", " *$ 4. ", " * . "}; --- NEW FILE: blockedit.xpm --- /* XPM */ static char * blockedit_xpm[] = { "16 16 70 1", " c None", ". c #028D05", "+ c #008B04", "@ c #815C14", "# c #C88F21", "$ c #6AC66C", "% c #94DA95", "& c #008C03", "* c #008D03", "= c #875F15", "- c #CA8F22", "; c #CB9022", "> c #008C04", ", c #8CD68D", "' c #99DD9A", ") c #008B03", "! c #8E6516", "~ c #B7821F", "{ c #575B0E", "] c #976A17", "^ c #B07D1D", "/ c #6C4C10", "( c #000000", "_ c #4E610C", ": c #9F7119", "< c #A8781C", "[ c #5D420D", "} c #00C3FF", "| c #63540F", "1 c #A7771A", "2 c #A0711B", "3 c #61450F", "4 c #090601", "5 c #704E11", "6 c #AE7C1C", "7 c #956B1B", "8 c #5E5526", "9 c #34898C", "0 c #BA9E58", "a c #CE972E", "b c #C88E21", "c c #8D661B", "d c #4C6B4F", "e c #00C4FF", "f c #01C1FB", "g c #7F7C4C", "h c #E3D6A3", "i c #DDC482", "j c #82621C", "k c #467461", "l c #01C2FC", "m c #C9AB64", "n c #CBB06D", "o c #997C3E", "p c #6A4E10", "q c #03BEF7", "r c #634813", "s c #886628", "t c #95360D", "u c #EE2C2C", "v c #F46E6E", "w c #EC1C1C", "x c #EA0000", "y c #F99A9A", "z c #F9B3B3", "A c #F37E7E", "B c #F48080", "C c #F16262", "D c #EB0000", "E c #E90000", " .+ @#", " $%&* =-;", " >,'&) !;;~", " *&&&{];;^/", " ( &&)_:;;<[ ", " ( } |1;;234 ", " ( } 56;-78 ( ", "((( }}90abcd (((", "((( efghijkl (((", " ( e mnop } ( ", " ( qrst } ( ", " uvwx ", " yzAx ", " BzCx ", " DEEx ", " "}; --- switchmotor2.xpm DELETED --- --- block1.xpm DELETED --- --- block3.xpm DELETED --- --- NEW FILE: blocknew.xpm --- /* XPM */ static char * blocknew_xpm[] = { "16 16 71 1", " c None", ". c #028D05", "+ c #3DA505", "@ c #C1DB0D", "# c #FFF417", "$ c #FFF41A", "% c #6AC66C", "& c #96DC91", "* c #7BBE08", "= c #C2DB12", "- c #FCF427", "; c #FFF750", "> c #FFF528", ", c #FFF518", "' c #008C04", ") c #8CD68D", "! c #A9E084", "~ c #9CCC0B", "{ c #E4EA1B", "] c #F9F560", "^ c #FFFAA5", "/ c #FFF864", "( c #FFF41E", "_ c #008D03", ": c #40A604", "< c #A5CF0D", "[ c #EDED1D", "} c #FBF676", "| c #FFFCD0", "1 c #FFFCD1", "2 c #FFF878", "3 c #FFF51F", "4 c #FFF413", "5 c #000000", "6 c #008C03", "7 c #299C05", "8 c #95C90A", "9 c #E4E919", "0 c #FFF756", "a c #F4F795", "b c #FCFA91", "c c #FAF255", "d c #D3CA17", "e c #00C3FF", "f c #FDF215", "g c #E6F14D", "h c #F4F443", "i c #EFE61C", "j c #9B940D", "k c #A4E36A", "l c #D0EC42", "m c #C3BA0E", "n c #585404", "o c #0DC6F2", "p c #3ACEC6", "q c #49D1B9", "r c #7EDB86", "s c #4C4901", "t c #080700", "u c #00C4FF", "v c #EE2C2C", "w c #F46E6E", "x c #EC1C1C", "y c #EA0000", "z c #F99A9A", "A c #F9B3B3", "B c #F37E7E", "C c #F48080", "D c #F16262", "E c #EB0000", "F c #E90000", " .+@#$$# ", " %&*=-;;>, ", " ')!~{]^^/( ", " _:<[}|1234", " 5 67890abcd ", " 5 e f(ghij ", " 5 e 4klmn ", "555 eeeeeopqrst5", "555 ueeeeeee 555", " 5 u e 5 ", " 5 e e 5 ", " vwxy ", " zABy ", " CADy ", " EFFy ", " "}; --- switchmotor3.xpm DELETED --- --- switchmotor1.xpm DELETED --- |
From: Martin F. <m_f...@us...> - 2009-09-05 16:37:25
|
Update of /cvsroot/xtrkcad-fork/xtrkcad/app/bin/bitmaps/SVG In directory fdv4jf1.ch3.sourceforge.com:/tmp/cvs-serv31799/app/bin/bitmaps/SVG Log Message: Directory /cvsroot/xtrkcad-fork/xtrkcad/app/bin/bitmaps/SVG added to the repository |
From: Martin F. <m_f...@us...> - 2009-09-04 19:58:49
|
Update of /cvsroot/xtrkcad-fork/xtrkcad/app/lib/params In directory fdv4jf1.ch3.sourceforge.com:/tmp/cvs-serv25088 Modified Files: flnpicco.xtp Log Message: no message Index: flnpicco.xtp =================================================================== RCS file: /cvsroot/xtrkcad-fork/xtrkcad/app/lib/params/flnpicco.xtp,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** flnpicco.xtp 4 Sep 2009 13:40:36 -0000 1.3 --- flnpicco.xtp 4 Sep 2009 19:58:40 -0000 1.4 *************** *** 1,666 **** ! CONTENTS Fleischmann N Scale Piccolo ! SUBCONTENTS Straight Track ! TURNOUT N "Fleischmann N Scale Straight 222mm 9100" ! U "Straight Section" "Sillub Technology" "Fleischmann N Scale" "Straight 222mm" "9100" 8.740157 0.629921 0.000000 0 ! P "Normal" 1 ! E 0.000000 0.000000 270.000000 ! E 8.740157 0.000000 90.000000 ! S 0 0.000000 0.000000 0.000000 8.740157 0.000000 ! L 0 0.000000 -0.000000 -0.314960 8.740157 -0.314960 ! L 0 0.000000 0.000000 0.314960 8.740157 0.314961 [...1304 lines suppressed...] ! L 0 0.000000 0.000000 0.314960 4.370079 0.314961 ! END ! TURNOUT N "Fleischmann N Scale Straight w/Contact 111mm 9115" ! U "Straight Section" "Sillub Technology" "Fleischmann N Scale" "Straight w/Contact 111mm" "9115" 2.185039 0.629921 0.000000 0 ! P "Normal" 1 ! E 0.000000 0.000000 270.000000 ! E 2.185039 0.000000 90.000000 ! S 0 0.000000 0.000000 0.000000 2.185039 0.000000 ! L 0 0.000000 -0.000000 -0.314960 2.185039 -0.314960 ! L 0 0.000000 0.000000 0.314960 2.185039 0.314961 ! END ! TURNOUT N "Fleischmann N Scale Buffer Stop 9116" ! U "Straight Section" "Sillub Technology" "Fleischmann N Scale" "Buffer Stop" "9116" 1.092520 0.629921 0.000000 0 ! P "Normal" 1 ! E 0.000000 0.000000 270.000000 ! S 0 0.000000 0.000000 0.000000 1.092520 0.000000 ! L 0 0.000000 -0.000000 -0.314960 1.092520 -0.314960 ! L 0 0.000000 0.000000 0.314960 1.092520 0.314961 ! END \ No newline at end of file |
From: Martin F. <m_f...@us...> - 2009-09-04 13:40:45
|
Update of /cvsroot/xtrkcad-fork/xtrkcad/app/lib/params In directory fdv4jf1.ch3.sourceforge.com:/tmp/cvs-serv32591/app/lib/params Modified Files: flnpicco.xtp Added Files: ho-amb.xtp ho-barm.xtp ho-blair.xtp ho-branc.xtp ho-campb.xtp ho-craft.xtp ho-fos.xtp ho-jlinn.xtp ho-ncb-roads.xtp Log Message: New and fixed parameter files Index: flnpicco.xtp =================================================================== RCS file: /cvsroot/xtrkcad-fork/xtrkcad/app/lib/params/flnpicco.xtp,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** flnpicco.xtp 23 Dec 2007 07:45:41 -0000 1.2 --- flnpicco.xtp 4 Sep 2009 13:40:36 -0000 1.3 *************** *** 1,662 **** ! CONTENTS Fleischmann N Scale Piccolo ! TURNOUT N "Fleischmann N Scale Straight 222mm 9100" ! U "Straight Section" "Sillub Technology" "Fleischmann N Scale" "Straight 222mm" "9100" 8.740157 0.629921 0.000000 0 ! P "Normal" 1 ! E 0.000000 0.000000 270.000000 ! E 8.740157 0.000000 90.000000 ! S 0 0.000000 0.000000 0.000000 8.740157 0.000000 ! L 0 0.000000 -0.000000 -0.314960 8.740157 -0.314960 ! L 0 0.000000 0.000000 0.314960 8.740157 0.314961 ! END [...1299 lines suppressed...] ! L 0 0.000000 -0.000000 -0.314960 4.370079 -0.314960 ! L 0 0.000000 0.000000 0.314960 4.370079 0.314961 ! END ! TURNOUT N "Fleischmann N Scale Straight w/Contact 111mm 9115" ! U "Straight Section" "Sillub Technology" "Fleischmann N Scale" "Straight w/Contact 111mm" "9115" 2.185039 0.629921 0.000000 0 ! P "Normal" 1 ! E 0.000000 0.000000 270.000000 ! E 2.185039 0.000000 90.000000 ! S 0 0.000000 0.000000 0.000000 2.185039 0.000000 ! L 0 0.000000 -0.000000 -0.314960 2.185039 -0.314960 ! L 0 0.000000 0.000000 0.314960 2.185039 0.314961 ! END ! TURNOUT N "Fleischmann N Scale Buffer Stop 9116" ! U "Straight Section" "Sillub Technology" "Fleischmann N Scale" "Buffer Stop" "9116" 1.092520 0.629921 0.000000 0 ! P "Normal" 1 ! E 0.000000 0.000000 270.000000 ! S 0 0.000000 0.000000 0.000000 1.092520 0.000000 ! L 0 0.000000 -0.000000 -0.314960 1.092520 -0.314960 ! L 0 0.000000 0.000000 0.314960 1.092520 0.314961 ! END --- NEW FILE: ho-campb.xtp --- CONTENTS Campbell HO STRUCTURE HO "Campbell Schoolhouse 369" F3 11905421 0.000000 4 0.200000 0.000000 0 4.500000 0.000000 0 4.500000 2.340000 0 0.200000 2.340000 0 L3 0 0.000000 0.200000 0.000000 0 4.500000 0.000000 0 L3 0 0.000000 4.500000 0.000000 0 4.500000 2.340000 0 L3 0 0.000000 4.500000 2.340000 0 0.200000 2.340000 0 L3 0 0.000000 0.200000 2.340000 0 0.200000 0.000000 0 L3 0 0.000000 0.200000 1.170000 0 4.500000 1.170000 0 F3 11905421 0.000000 4 0.000000 0.670000 0 0.200000 0.670000 0 0.200000 1.670000 0 0.000000 1.670000 0 L3 0 0.000000 0.000000 0.670000 0 0.200000 0.670000 0 L3 0 0.000000 0.200000 0.670000 0 0.200000 1.670000 0 L3 0 0.000000 0.200000 1.670000 0 0.000000 1.670000 0 L3 0 0.000000 0.000000 1.670000 0 0.000000 0.670000 0 L3 0 0.000000 0.000000 1.170000 0 0.200000 1.170000 0 F3 11905421 0.000000 4 0.500000 0.770000 0 1.300000 0.770000 0 1.300000 1.570000 0 0.500000 1.570000 0 L3 0 0.000000 0.500000 0.770000 0 1.300000 0.770000 0 L3 0 0.000000 1.300000 0.770000 0 1.300000 1.570000 0 L3 0 0.000000 1.300000 1.570000 0 0.500000 1.570000 0 L3 0 0.000000 0.500000 1.570000 0 0.500000 0.770000 0 L3 0 0.000000 0.500000 1.170000 0 1.300000 1.170000 0 END STRUCTURE HO "Campbell Country Barn 382" F3 11305056 0.000000 4 1.000000 1.000000 0 6.250000 1.000000 0 6.250000 4.125000 0 1.000000 4.125000 0 L3 0 0.000000 1.000000 1.000000 0 6.250000 1.000000 0 L3 0 0.000000 6.250000 1.000000 0 6.250000 4.125000 0 L3 0 0.000000 6.250000 4.125000 0 1.000000 4.125000 0 L3 0 0.000000 1.000000 4.125000 0 1.000000 1.000000 0 L3 0 0.000000 1.000000 2.562500 0 6.250000 2.562500 0 F3 11305056 0.000000 4 0.000000 1.000000 0 1.000000 1.000000 0 1.000000 4.125000 0 0.000000 4.125000 0 L3 0 0.000000 0.000000 1.000000 0 1.000000 1.000000 0 L3 0 0.000000 1.000000 1.000000 0 1.000000 4.125000 0 L3 0 0.000000 1.000000 4.125000 0 0.000000 4.125000 0 L3 0 0.000000 0.000000 4.125000 0 0.000000 1.000000 0 F3 11305056 0.000000 4 1.000000 0.000000 0 3.000000 0.000000 0 3.000000 1.000000 0 1.000000 1.000000 0 L3 0 0.000000 1.000000 0.000000 0 3.000000 0.000000 0 L3 0 0.000000 3.000000 0.000000 0 3.000000 1.000000 0 L3 0 0.000000 3.000000 1.000000 0 1.000000 1.000000 0 L3 0 0.000000 1.000000 1.000000 0 1.000000 0.000000 0 F3 11305056 0.000000 4 4.250000 0.000000 0 6.250000 0.000000 0 6.250000 1.000000 0 4.250000 1.000000 0 L3 0 0.000000 4.250000 0.000000 0 6.250000 0.000000 0 L3 0 0.000000 6.250000 0.000000 0 6.250000 1.000000 0 L3 0 0.000000 6.250000 1.000000 0 4.250000 1.000000 0 L3 0 0.000000 4.250000 1.000000 0 4.250000 0.000000 0 END STRUCTURE HO "Campbell Nelson Livestock Co. 400" L3 0 0.000000 4.000000 0.500000 0 9.000000 0.500000 0 L3 0 0.000000 8.500000 0.500000 0 8.500000 7.500000 0 L3 0 0.000000 9.000000 7.500000 0 4.000000 7.500000 0 L3 0 0.000000 4.000000 7.500000 0 4.000000 0.500000 0 L3 0 0.000000 9.000000 0.500000 0 14.000000 0.500000 0 L3 0 0.000000 14.000000 0.500000 0 14.000000 7.500000 0 L3 0 0.000000 14.000000 7.500000 0 9.000000 7.500000 0 L3 0 0.000000 9.000000 7.500000 0 9.000000 0.500000 0 L3 0 0.000000 0.000000 0.000000 0 12.000000 0.000000 0 L3 0 0.000000 12.000000 0.000000 0 12.000000 0.500000 0 L3 0 0.000000 12.000000 0.500000 0 0.000000 0.500000 0 L3 0 0.000000 0.000000 0.500000 0 0.000000 0.000000 0 L3 0 0.000000 0.000000 0.500000 0 4.000000 0.500000 0 L3 0 0.000000 4.000000 0.500000 0 4.000000 5.500000 0 L3 0 0.000000 4.000000 5.500000 0 0.000000 5.500000 0 L3 0 0.000000 0.000000 5.500000 0 0.000000 0.500000 0 F3 8749432 0.000000 4 1.000000 3.000000 0 4.000000 3.000000 0 4.000000 7.000000 0 1.000000 7.000000 0 L3 0 0.000000 1.000000 3.000000 0 4.000000 3.000000 0 L3 0 0.000000 4.000000 3.000000 0 4.000000 7.000000 0 L3 0 0.000000 4.000000 7.000000 0 1.000000 7.000000 0 L3 0 0.000000 1.000000 7.000000 0 1.000000 3.000000 0 L3 0 0.000000 1.000000 5.000000 0 4.000000 5.000000 0 F3 14737632 0.000000 4 4.000000 6.500000 0 8.500000 6.500000 0 8.500000 7.500000 0 4.000000 7.500000 0 L3 0 0.000000 4.000000 6.500000 0 8.500000 6.500000 0 L3 0 0.000000 8.500000 6.500000 0 8.500000 7.500000 0 L3 0 0.000000 8.500000 7.500000 0 4.000000 7.500000 0 L3 0 0.000000 4.000000 7.500000 0 4.000000 6.500000 0 F3 14737632 0.000000 4 9.000000 6.500000 0 14.000000 6.500000 0 14.000000 7.500000 0 9.000000 7.500000 0 L3 0 0.000000 9.000000 6.500000 0 14.000000 6.500000 0 L3 0 0.000000 14.000000 6.500000 0 14.000000 7.500000 0 L3 0 0.000000 14.000000 7.500000 0 9.000000 7.500000 0 L3 0 0.000000 9.000000 7.500000 0 9.000000 6.500000 0 END --- NEW FILE: ho-craft.xtp --- CONTENTS Craftsman Kits HO SUBCONTENTS Banta Modelworks HO STRUCTURE HO "Banta Modelworks Ophir General Merchandise 109" F3 8749432 0.000000 4 2.750000 5.578125 0 6.718750 5.578125 0 6.718750 1.406250 0 2.750000 1.406250 0 F3 14001726 0.000000 4 6.718750 0.000000 0 0.000000 0.000000 0 0.000000 1.390625 0 6.718750 1.390625 0 L3 3289391 0.000000 6.734375 1.390625 0 2.734375 1.390625 0 L3 3289391 0.000000 2.734375 1.390625 0 2.734375 5.593750 0 L3 3289391 0.000000 2.734375 5.593750 0 6.734375 5.593750 0 L3 3289391 0.000000 6.734375 5.593750 0 6.734375 1.390625 0 L3 3289391 0.000000 4.750000 1.375000 0 4.750000 5.593750 0 L3 3289391 0.000000 5.046875 4.015625 0 6.375000 4.015625 0 L3 3289391 0.000000 6.375000 4.015625 0 6.375000 3.046875 0 L3 3289391 0.000000 6.375000 3.046875 0 5.046875 3.046875 0 L3 3289391 0.000000 5.046875 3.046875 0 5.046875 4.015625 0 L3 3289391 0.000000 5.046875 3.515625 0 6.375000 3.515625 0 L3 3289391 0.000000 3.102725 3.977725 0 4.430850 3.977725 0 L3 3289391 0.000000 4.430850 3.977725 0 4.430850 3.008975 0 L3 3289391 0.000000 4.430850 3.008975 0 3.102725 3.008975 0 L3 3289391 0.000000 3.102725 3.008975 0 3.102725 3.977725 0 L3 3289391 0.000000 3.102725 3.477725 0 4.430850 3.477725 0 F3 3289391 0.000000 4 4.609375 4.984375 0 4.890625 4.984375 0 4.890625 4.718750 0 4.609375 4.718750 0 F3 8749432 0.000000 4 2.718750 1.375000 0 0.000000 1.375000 0 0.000000 3.687500 0 2.718750 3.687500 0 END STRUCTURE HO "Banta Modelworks Silver Plume Bakery 2081" F3 8749432 0.000000 4 0.000000 0.000000 0 4.500000 0.000000 0 4.500000 3.000000 0 0.000000 3.000000 0 L3 0 0.000000 0.000000 0.000000 0 4.500000 0.000000 0 L3 0 0.000000 4.500000 0.000000 0 4.500000 3.000000 0 L3 0 0.000000 4.500000 3.000000 0 0.000000 3.000000 0 L3 0 0.000000 0.000000 3.000000 0 0.000000 0.000000 0 L3 0 0.000000 0.000000 1.500000 0 4.500000 1.500000 0 L3 16777215 0.000000 0.000000 3.000000 0 0.187500 3.000000 0 L3 16777215 0.000000 0.187500 3.000000 0 0.187500 0.000000 0 L3 16777215 0.000000 0.187500 0.000000 0 0.000000 0.000000 0 L3 16777215 0.000000 0.000000 0.000000 0 0.000000 3.000000 0 L3 16777215 0.000000 0.187500 0.187500 0 2.343750 0.187500 0 L3 16777215 0.000000 2.343750 0.187500 0 2.343750 0.000000 0 L3 16777215 0.000000 2.343750 0.000000 0 0.187500 0.000000 0 L3 16777215 0.000000 0.187500 0.000000 0 0.187500 0.187500 0 F3 14999519 0.000000 4 0.156250 0.000000 0 0.046875 0.000000 0 0.046875 2.968750 0 0.156250 2.968750 0 F3 14999519 0.000000 4 0.109375 0.171875 0 2.312500 0.171875 0 2.312500 0.031250 0 0.109375 0.031250 0 END CONTENTS Craftsman Kits HO SUBCONTENTS Builders in Scale HO STRUCTURE HOn3 "Builders in Scale Getz' Garage 611" F3 14393493 0.000000 4 0.000000 4.500000 0 4.500000 4.500000 0 4.500000 1.500000 0 0.000000 1.500000 0 F3 14393493 0.000000 4 4.500000 1.500000 0 2.750000 1.500000 0 2.750000 0.000000 0 4.500000 0.000000 0 L3 9332833 0.000000 0.000000 4.500000 0 4.500000 4.500000 0 L3 9332833 0.000000 4.500000 4.500000 0 4.500000 1.500000 0 L3 9332833 0.000000 4.500000 1.500000 0 0.000000 1.500000 0 L3 9332833 0.000000 0.000000 1.500000 0 0.000000 4.500000 0 L3 9332833 0.000000 4.500000 1.500000 0 2.750000 1.500000 0 L3 9332833 0.000000 2.750000 1.500000 0 2.750000 0.000000 0 L3 9332833 0.000000 2.750000 0.000000 0 4.500000 0.000000 0 L3 9332833 0.000000 4.500000 0.000000 0 4.500000 1.500000 0 L3 9332833 0.000000 0.000000 3.000000 0 4.500000 3.000000 0 END STRUCTURE HOn3 "Builders in Scale Lighthouse 612" F3 16768926 0.000000 4 2.750000 1.343750 0 4.984375 1.343750 0 4.984375 0.687500 0 2.750000 0.687500 0 L3 4408131 0.000000 4.968750 1.343750 0 4.968750 0.718750 0 F3 13769756 0.000000 4 1.750000 1.500000 0 2.781250 1.500000 0 2.781250 0.500000 0 1.750000 0.500000 0 G3 10329501 0.000000 1.000000 1.000000 1.000000 0 G3 4408131 0.000000 0.608573 1.000000 1.000000 0 L3 4408131 0.000000 2.000000 1.000000 0 2.750000 1.000000 0 L3 4408131 0.000000 2.765625 1.343750 0 4.968750 1.343750 0 L3 4408131 0.000000 4.968750 0.718750 0 2.765625 0.718750 0 L3 4408131 0.000000 2.765625 0.718750 0 2.765625 1.343750 0 END SUBCONTENTS Evergreen Hill Design STRUCTURE HO "Evergreen Hill Design Dollar Bros Motor Express 207" F3 11905421 0.000000 4 0.800000 1.000000 0 6.500000 1.000000 0 6.500000 5.000000 0 0.800000 5.000000 0 L3 0 0.000000 0.800000 1.000000 0 6.500000 1.000000 0 L3 0 0.000000 6.500000 1.000000 0 6.500000 5.000000 0 L3 0 0.000000 6.500000 5.000000 0 0.800000 5.000000 0 L3 0 0.000000 0.800000 5.000000 0 0.800000 1.000000 0 L3 0 0.000000 0.800000 3.000000 0 6.500000 3.000000 0 F3 16768915 0.000000 4 0.000000 1.000000 0 0.800000 1.000000 0 0.800000 5.000000 0 0.000000 5.000000 0 L3 0 0.000000 0.000000 1.000000 0 0.800000 1.000000 0 L3 0 0.000000 0.800000 1.000000 0 0.800000 5.000000 0 L3 0 0.000000 0.800000 5.000000 0 0.000000 5.000000 0 L3 0 0.000000 0.000000 5.000000 0 0.000000 1.000000 0 F3 11905421 0.000000 4 0.8 1.56 0 3.6 1.56 0 3.6 4.56000 0 0.8 4.56 0 L3 0 0.0 0.8 1.56 0 3.6 1.56 0 L3 0 0.0 3.6 1.56 0 3.6 4.56 0 L3 0 0.0 3.6 4.56 0 0.8 4.56 0 L3 0 0.0 0.8 4.56 0 0.8 1.56 0 L3 0 0.0 0.8 3 0 4.56 3 0 F3 11905421 0.000000 4 1.720000 0.000000 0 4.510000 0.000000 0 4.510000 1.250000 0 1.720000 1.250000 0 L3 0 0.000000 1.720000 0.000000 0 4.510000 0.000000 0 L3 0 0.000000 4.510000 0.000000 0 4.510000 1.250000 0 L3 0 0.000000 4.510000 1.250000 0 1.720000 1.250000 0 L3 0 0.000000 1.720000 1.250000 0 1.720000 0.000000 0 END STRUCTURE HO "Evergreen Hill Design Pool Hall 211" F3 13747366 0.000000 4 0.600000 0.000000 0 3.250000 0.000000 0 3.250000 2.400000 0 0.600000 2.400000 0 L3 0 0.000000 0.600000 0.000000 0 3.250000 0.000000 0 L3 0 0.000000 3.250000 0.000000 0 3.250000 2.400000 0 L3 0 0.000000 3.250000 2.400000 0 0.600000 2.400000 0 L3 0 0.000000 0.600000 2.400000 0 0.600000 0.000000 0 L3 0 0.000000 0.600000 1.200000 0 3.250000 1.200000 0 F3 13747366 0.000000 4 0.000000 0.000000 0 0.600000 0.000000 0 0.600000 2.400000 0 0.000000 2.400000 0 L3 0 0.000000 0.000000 0.000000 0 0.600000 0.000000 0 L3 0 0.000000 0.600000 0.000000 0 0.600000 2.400000 0 L3 0 0.000000 0.600000 2.400000 0 0.000000 2.400000 0 L3 0 0.000000 0.000000 2.400000 0 0.000000 0.000000 0 F3 13747366 0.000000 4 1.920000 2.400000 0 3.245000 2.400000 0 3.245000 3.000000 0 1.920000 3.000000 0 L3 0 0.000000 1.920000 2.400000 0 3.245000 2.400000 0 L3 0 0.000000 3.245000 2.400000 0 3.245000 3.000000 0 L3 0 0.000000 3.245000 3.000000 0 1.920000 3.000000 0 L3 0 0.000000 1.920000 3.000000 0 1.920000 2.400000 0 END SUBCONTENTS Monroe Models HO STRUCTURE HO "Monroe Models Jurgens Junk Yard 2204" F3 10329501 0.000000 4 0.000000 4.515625 0 5.125000 4.515625 0 5.125000 0.000000 0 0.000000 0.000000 0 F3 14337187 0.000000 4 0.000000 4.515625 0 0.250000 4.515625 0 0.250000 0.015625 0 0.000000 0.015625 0 G3 14079702 0.000000 0.200098 1.500000 2.265625 0 G3 14079702 0.000000 0.200098 3.500000 2.265625 0 END SUBCONTENTS Northeastern Scale Models HO STRUCTURE HO "Northeastern Scale Models Sam Cahoon's Fish Pier 20109" F3 16768915 0.000000 4 0.000000 0.000000 0 12.000000 0.000000 0 12.000000 7.000000 0 0.000000 7.000000 0 L3 0 0.000000 0.000000 0.000000 0 12.000000 0.000000 0 L3 0 0.000000 12.000000 0.000000 0 12.000000 7.000000 0 L3 0 0.000000 12.000000 7.000000 0 0.000000 7.000000 0 L3 0 0.000000 0.000000 7.000000 0 0.000000 0.000000 0 F3 8749432 0.000000 4 1.031250 1.812500 0 4.781250 1.812500 0 4.781250 5.312500 0 1.031250 5.312500 0 L3 0 0.000000 1.031250 1.812500 0 4.781250 1.812500 0 L3 0 0.000000 4.781250 1.812500 0 4.781250 5.312500 0 L3 0 0.000000 4.781250 5.312500 0 1.031250 5.312500 0 L3 0 0.000000 1.031250 5.312500 0 1.031250 1.812500 0 F3 12485242 0.000000 4 4.781250 1.612500 0 8.531250 1.612500 0 8.531250 5.612500 0 4.781250 5.612500 0 L3 0 0.000000 4.781250 1.612500 0 8.531250 1.612500 0 L3 0 0.000000 8.531250 1.612500 0 8.531250 5.612500 0 L3 0 0.000000 8.531250 5.612500 0 4.781250 5.612500 0 L3 0 0.000000 4.781250 5.612500 0 4.781250 1.612500 0 L3 0 0.000000 5.468750 1.812500 0 7.843750 1.812500 0 L3 0 0.000000 7.843750 1.812500 0 7.843750 2.562500 0 L3 0 0.000000 7.843750 2.562500 0 5.468750 2.562500 0 L3 0 0.000000 5.468750 2.562500 0 5.468750 1.812500 0 F3 9403516 0.000000 4 8.531250 1.362500 0 11.031250 1.362500 0 11.031250 5.862500 0 8.531250 5.862500 0 L3 0 0.000000 8.531250 1.362500 0 11.031250 1.362500 0 L3 0 0.000000 11.031250 1.362500 0 11.031250 5.862500 0 L3 0 0.000000 11.031250 5.862500 0 8.531250 5.862500 0 L3 0 0.000000 8.531250 5.862500 0 8.531250 1.362500 0 L3 0 0.000000 9.781250 1.362500 0 9.781250 5.862500 0 F3 8749432 0.000000 4 1.031250 5.312500 0 3.231250 5.312500 0 3.231250 6.812500 0 1.031250 6.812500 0 L3 0 0.000000 1.031250 5.312500 0 3.231250 5.312500 0 L3 0 0.000000 3.231250 5.312500 0 3.231250 6.812500 0 L3 0 0.000000 3.231250 6.812500 0 1.031250 6.812500 0 L3 0 0.000000 1.031250 6.812500 0 1.031250 5.312500 0 L3 0 0.000000 2.131250 5.312500 0 2.131250 6.812500 0 L3 0 0.000000 4.781250 3.612500 0 9.187500 3.609375 0 L3 16768926 0.000000 3.437500 1.562500 0 3.437500 1.546875 0 L3 0 0.000000 9.179688 3.601562 0 8.523438 4.390625 0 L3 0 0.000000 9.195312 3.593750 0 8.523438 2.820312 0 END SUBCONTENTS Sea Port Model Works HO STRUCTURE HO "Sea Port Model Works 63' Sardine Carrier H115HO" F3 14001726 0.000000 20 0.006650 0.962100 0 0.569150 1.337100 0 1.256650 1.587100 0 1.756650 1.712100 0 2.631650 1.837100 0 3.303525 1.883975 0 4.569150 1.915225 0 5.866025 1.915225 0 6.194150 1.930850 0 6.756650 1.899600 0 6.491025 1.930850 0 7.053525 1.899600 0 7.584775 1.790225 0 7.850400 1.680850 0 7.975400 1.587100 0 8.178525 1.446475 0 8.366025 1.243350 0 8.506650 0.962100 0 8.506650 0.962100 0 8.506650 0.962100 0 F3 14001726 0.000000 20 0.000000 0.968750 0 0.562500 0.593750 0 1.250000 0.343750 0 1.750000 0.218750 0 2.625000 0.093750 0 3.296875 0.046875 0 4.562500 0.015625 0 5.859375 0.015625 0 6.187500 0.000000 0 6.750000 0.031250 0 6.484375 0.000000 0 7.046875 0.031250 0 7.578125 0.140625 0 7.843750 0.250000 0 7.968750 0.343750 0 8.171875 0.484375 0 8.359375 0.687500 0 8.500000 0.968750 0 8.500000 0.968750 0 8.500000 0.968750 0 F3 10329501 0.000000 4 7.421875 1.437500 0 5.921875 1.437500 0 5.921875 0.437500 0 7.421875 0.437500 0 F3 10329501 0.000000 4 1.671875 1.125000 0 2.328125 1.125000 0 2.328125 0.750000 0 1.671875 0.750000 0 G3 9403516 0.000000 0.125000 2.703125 0.937500 0 F3 9403516 0.000000 4 2.796875 0.968750 0 5.515625 0.968750 0 5.515625 0.890625 0 2.796875 0.890625 0 END --- NEW FILE: ho-fos.xtp --- CONTENTS FOS Scale Limited HO STRUCTURE HO "FOS Scale Limited Lucas Johnson QK7" F3 9403516 0.000000 4 0.000000 0.000000 0 2.500000 0.000000 0 2.500000 3.000000 0 0.000000 3.000000 0 L3 0 0.000000 0.000000 0.000000 0 2.500000 0.000000 0 L3 0 0.000000 2.500000 0.000000 0 2.500000 3.000000 0 L3 0 0.000000 2.500000 3.000000 0 0.000000 3.000000 0 L3 0 0.000000 0.000000 3.000000 0 0.000000 0.000000 0 L3 0 0.000000 1.250000 0.000000 0 1.250000 3.000000 0 L3 0 0.000000 0.300000 0.000000 0 0.300000 3.000000 0 L3 0 0.000000 2.200000 0.000000 0 2.200000 3.000000 0 F3 11905421 0.000000 4 2.500000 0.000000 0 4.000000 0.000000 0 4.000000 3.000000 0 2.500000 3.000000 0 L3 0 0.000000 2.500000 0.000000 0 4.000000 0.000000 0 L3 0 0.000000 4.000000 0.000000 0 4.000000 3.000000 0 L3 0 0.000000 4.000000 3.000000 0 2.500000 3.000000 0 L3 0 0.000000 2.500000 3.000000 0 2.500000 0.000000 0 L3 0 0.000000 3.250000 0.000000 0 3.250000 3.000000 0 F3 9403516 0.000000 4 0.200000 0.400000 0 1.200000 0.400000 0 1.200000 1.200000 0 0.200000 1.200000 0 L3 0 0.000000 0.200000 0.400000 0 1.200000 0.400000 0 L3 0 0.000000 1.200000 0.400000 0 1.200000 1.200000 0 L3 0 0.000000 1.200000 1.200000 0 0.200000 1.200000 0 L3 0 0.000000 0.200000 1.200000 0 0.200000 0.400000 0 END STRUCTURE HO "FOS Scale Limited Genco Oil QK15" F3 8749432 0.000000 4 0.600000 0.000000 0 2.250000 0.000000 0 2.250000 3.000000 0 0.600000 3.000000 0 L3 0 0.000000 0.600000 0.000000 0 2.250000 0.000000 0 L3 0 0.000000 2.250000 0.000000 0 2.250000 3.000000 0 L3 0 0.000000 2.250000 3.000000 0 0.600000 3.000000 0 L3 0 0.000000 0.600000 3.000000 0 0.600000 0.000000 0 L3 0 0.000000 0.600000 1.500000 0 2.250000 1.500000 0 F3 8749432 0.000000 4 0.000000 0.000000 0 0.600000 0.000000 0 0.600000 1.200000 0 0.000000 1.200000 0 L3 0 0.000000 0.000000 0.000000 0 0.600000 0.000000 0 L3 0 0.000000 0.600000 0.000000 0 0.600000 1.200000 0 L3 0 0.000000 0.600000 1.200000 0 0.000000 1.200000 0 L3 0 0.000000 0.000000 1.200000 0 0.000000 0.000000 0 F3 8749432 0.000000 4 1.150000 0.000000 0 1.700000 0.000000 0 1.700000 1.500000 0 1.150000 1.500000 0 L3 0 0.000000 1.150000 0.000000 0 1.700000 0.000000 0 L3 0 0.000000 1.700000 0.000000 0 1.700000 1.500000 0 L3 0 0.000000 1.700000 1.500000 0 1.150000 1.500000 0 L3 0 0.000000 1.150000 1.500000 0 1.150000 0.000000 0 END STRUCTURE HO "FOS Scale Limited Porthole Restaurant QK21" F3 9403516 0.000000 4 0.000000 0.000000 0 4.500000 0.000000 0 4.500000 3.500000 0 0.000000 3.500000 0 L3 0 0.000000 0.000000 0.000000 0 4.500000 0.000000 0 L3 0 0.000000 4.500000 0.000000 0 4.500000 3.500000 0 L3 0 0.000000 4.500000 3.500000 0 0.000000 3.500000 0 L3 0 0.000000 0.000000 3.500000 0 0.000000 0.000000 0 L3 0 0.000000 2.250000 0.000000 0 2.250000 3.500000 0 END STRUCTURE HO "FOS Scale Limited Bikini Car Wash QK22" F3 11513515 0.000000 4 0.000000 0.000000 0 2.250000 0.000000 0 2.250000 5.000000 0 0.000000 5.000000 0 L3 0 0.000000 0.000000 0.000000 0 2.250000 0.000000 0 L3 0 0.000000 2.250000 0.000000 0 2.250000 5.000000 0 L3 0 0.000000 2.250000 5.000000 0 0.000000 5.000000 0 L3 0 0.000000 0.000000 5.000000 0 0.000000 0.000000 0 END STRUCTURE HO "FOS Scale Limited L. Baker Produce Supplier QK26" F3 11905421 0.000000 4 0.000000 0.000000 0 5.000000 0.000000 0 5.000000 6.500000 0 0.000000 6.500000 0 L3 0 0.000000 0.000000 0.000000 0 5.000000 0.000000 0 L3 0 0.000000 5.000000 0.000000 0 5.000000 6.500000 0 L3 0 0.000000 5.000000 6.500000 0 0.000000 6.500000 0 L3 0 0.000000 0.000000 6.500000 0 0.000000 0.000000 0 END STRUCTURE HO "FOS Scale Limited Hoopers Oysters QK31" F3 11305056 0.000000 4 0.000000 0.000000 0 4.000000 0.000000 0 4.000000 3.000000 0 0.000000 3.000000 0 L3 0 0.000000 0.000000 0.000000 0 4.000000 0.000000 0 L3 0 0.000000 4.000000 0.000000 0 4.000000 3.000000 0 L3 0 0.000000 4.000000 3.000000 0 0.000000 3.000000 0 L3 0 0.000000 0.000000 3.000000 0 0.000000 0.000000 0 L3 0 0.000000 0.000000 1.500000 0 4.000000 1.500000 0 F3 14191700 0.000000 4 4.000000 0.000000 0 5.000000 0.000000 0 5.000000 3.000000 0 4.000000 3.000000 0 L3 0 0.000000 4.000000 0.000000 0 5.000000 0.000000 0 L3 0 0.000000 5.000000 0.000000 0 5.000000 3.000000 0 L3 0 0.000000 5.000000 3.000000 0 4.000000 3.000000 0 L3 0 0.000000 4.000000 3.000000 0 4.000000 0.000000 0 END --- NEW FILE: ho-amb.xtp --- CONTENTS American Model Builders HO STRUCTURE HO "American Model Builders Country Barn 119" F3 13747366 0.000000 4 0.000000 4.125000 0 7.500000 4.125000 0 7.500000 1.375000 0 0.000000 1.375000 0 F3 11905421 0.000000 4 0.000000 1.375000 0 7.500000 1.375000 0 7.500000 0.000000 0 0.000000 0.000000 0 L3 0 0.000000 0.000000 0.000000 0 7.500000 0.000000 0 L3 0 0.000000 7.500000 0.000000 0 7.500000 5.500000 0 L3 0 0.000000 7.500000 5.500000 0 0.000000 5.500000 0 L3 0 0.000000 0.000000 5.500000 0 0.000000 0.000000 0 L3 0 0.000000 0.000000 1.375000 0 7.500000 1.375000 0 L3 0 0.000000 0.000000 4.125000 0 7.500000 4.125000 0 F3 11905421 0.000000 4 0.000000 5.500000 0 7.500000 5.500000 0 7.500000 4.125000 0 0.000000 4.125000 0 F3 13747366 0.000000 4 0.703125 1.375000 0 1.593750 1.375000 0 1.593750 0.546875 0 0.703125 0.546875 0 L3 0 0.000000 0.718750 0.546875 0 1.609375 0.546875 0 L3 0 0.000000 1.578125 0.546875 0 1.578125 1.375000 0 L3 0 0.000000 1.578125 1.375000 0 0.687500 1.375000 0 L3 0 0.000000 0.687500 1.375000 0 0.687500 0.546875 0 F3 13747366 0.000000 4 3.212100 1.368350 0 4.102725 1.368350 0 4.102725 0.540225 0 3.212100 0.540225 0 L3 0 0.000000 3.196475 0.540225 0 4.087100 0.540225 0 L3 0 0.000000 4.087100 0.540225 0 4.087100 1.368350 0 L3 0 0.000000 4.087100 1.368350 0 3.196475 1.368350 0 L3 0 0.000000 3.196475 1.368350 0 3.196475 0.540225 0 F3 13747366 0.000000 4 5.430850 1.368350 0 6.321475 1.368350 0 6.321475 0.540225 0 5.430850 0.540225 0 L3 0 0.000000 5.415225 0.540225 0 6.305850 0.540225 0 L3 0 0.000000 6.305850 0.540225 0 6.305850 1.368350 0 L3 0 0.000000 6.305850 1.368350 0 5.415225 1.368350 0 L3 0 0.000000 5.415225 1.368350 0 5.415225 0.540225 0 F3 13747366 0.000000 4 0.790225 4.953125 0 1.680850 4.953125 0 1.680850 4.125000 0 0.790225 4.125000 0 L3 0 0.000000 0.805850 4.125000 0 1.696475 4.125000 0 L3 0 0.000000 1.665225 4.125000 0 1.665225 4.953125 0 L3 0 0.000000 1.665225 4.953125 0 0.774600 4.953125 0 L3 0 0.000000 0.774600 4.953125 0 0.774600 4.125000 0 F3 13747366 0.000000 4 3.299200 4.946475 0 4.189825 4.946475 0 4.189825 4.118350 0 3.299200 4.118350 0 L3 0 0.000000 3.283575 4.118350 0 4.174200 4.118350 0 L3 0 0.000000 4.174200 4.118350 0 4.174200 4.946475 0 L3 0 0.000000 4.174200 4.946475 0 3.283575 4.946475 0 L3 0 0.000000 3.283575 4.946475 0 3.283575 4.118350 0 F3 13747366 0.000000 4 5.517950 4.946475 0 6.408575 4.946475 0 6.408575 4.118350 0 5.517950 4.118350 0 L3 0 0.000000 5.502325 4.118350 0 6.392950 4.118350 0 L3 0 0.000000 6.392950 4.118350 0 6.392950 4.946475 0 L3 0 0.000000 6.392950 4.946475 0 5.502325 4.946475 0 L3 0 0.000000 5.502325 4.946475 0 5.502325 4.118350 0 L3 0 0.000000 2.812500 3.156250 0 4.593750 3.156250 0 L3 0 0.000000 4.593750 3.156250 0 4.593750 2.328125 0 L3 0 0.000000 4.593750 2.328125 0 2.812500 2.328125 0 L3 0 0.000000 2.812500 2.328125 0 2.812500 3.156250 0 F3 11905421 0.000000 4 2.812500 3.140625 0 4.593750 3.140625 0 4.593750 2.328125 0 2.812500 2.328125 0 L3 0 0.000000 0.000000 2.750000 0 7.500000 2.750000 0 L3 0 0.000000 2.812500 2.320312 0 2.812500 3.156250 0 END STRUCTURE HO "American Model Builders Hillview Volunteer Fire Co. 147" F3 8749432 0.000000 4 0.000000 0.000000 0 3.000000 0.000000 0 3.000000 2.000000 0 0.000000 2.000000 0 L3 0 0.000000 0.000000 0.000000 0 3.000000 0.000000 0 L3 0 0.000000 3.000000 0.000000 0 3.000000 2.000000 0 L3 0 0.000000 3.000000 2.000000 0 0.000000 2.000000 0 L3 0 0.000000 0.000000 2.000000 0 0.000000 0.000000 0 L3 0 0.000000 0.000000 1.000000 0 3.000000 1.000000 0 F3 0 0.000000 4 2.578125 0.781250 0 2.765625 0.781250 0 2.765625 0.578125 0 2.578125 0.578125 0 END STRUCTURE HO "American Model Builders Sonnyâs Shack 705" F3 9403516 0.000000 4 0.000000 0.000000 0 4.500000 0.000000 0 4.500000 2.500000 0 0.000000 2.500000 0 L3 0 0.000000 0.000000 2.500000 0 4.500000 2.500000 0 L3 0 0.000000 4.500000 2.500000 0 4.500000 0.000000 0 L3 0 0.000000 4.500000 0.000000 0 0.000000 0.000000 0 L3 0 0.000000 0.000000 0.000000 0 0.000000 2.500000 0 L3 0 0.000000 3.000000 0.000000 0 3.000000 2.500000 0 G3 0 0.000000 0.100049 0.437500 2.125000 0 END --- NEW FILE: ho-branc.xtp --- CONTENTS Branchline - Laserart HO TURNOUT HO "Branchline-Laserart Engine Shed 683" P "P0" 1 E 0.000000 0.000000 270.000000 E 11.328513 -0.000000 90.000000 S 0 0.000000 11.328513 -0.000000 0.000000 0.000000 F3 8749432 0.000000 4 0.844138 -1.725000 0 11.344138 -1.725000 0 11.344138 1.875000 0 0.844138 1.875000 0 L3 0 0.000000 0.844138 -1.725000 0 11.344138 -1.725000 0 L3 0 0.000000 11.344138 -1.725000 0 11.344138 1.875000 0 L3 0 0.000000 11.344138 1.875000 0 0.844138 1.875000 0 L3 0 0.000000 0.844138 1.875000 0 0.844138 -1.725000 0 L3 0 0.000000 0.844138 0.075000 0 11.344138 0.075000 0 F3 8749432 0.000000 4 0.844138 -4.125000 0 9.844138 -4.125000 0 9.844138 -1.725000 0 0.844138 -1.725000 0 L3 0 0.000000 0.844138 -4.125000 0 9.844138 -4.125000 0 L3 0 0.000000 9.844138 -4.125000 0 9.844138 -1.725000 0 L3 0 0.000000 9.844138 -1.725000 0 0.844138 -1.725000 0 L3 0 0.000000 0.844138 -1.725000 0 0.844138 -4.125000 0 END STRUCTURE HO "Branchline-Laserart School House 644" F3 14737632 0.000000 4 0.500000 0.000000 0 6.000000 0.000000 0 6.000000 3.000000 0 0.500000 3.000000 0 L3 0 0.000000 0.500000 0.000000 0 6.000000 0.000000 0 L3 0 0.000000 6.000000 0.000000 0 6.000000 3.000000 0 L3 0 0.000000 6.000000 3.000000 0 0.500000 3.000000 0 L3 0 0.000000 0.500000 3.000000 0 0.500000 0.000000 0 L3 0 0.000000 0.500000 1.500000 0 6.000000 1.500000 0 F3 14737632 0.000000 4 0.000000 1.000000 0 0.500000 1.000000 0 0.500000 2.000000 0 0.000000 2.000000 0 L3 0 0.000000 0.000000 1.000000 0 0.500000 1.000000 0 L3 0 0.000000 0.500000 1.000000 0 0.500000 2.000000 0 L3 0 0.000000 0.500000 2.000000 0 0.000000 2.000000 0 L3 0 0.000000 0.000000 2.000000 0 0.000000 1.000000 0 F3 14737632 0.000000 4 6.000000 1.000000 0 9.000000 1.000000 0 9.000000 3.000000 0 6.000000 3.000000 0 L3 0 0.000000 6.000000 1.000000 0 9.000000 1.000000 0 L3 0 0.000000 9.000000 1.000000 0 9.000000 3.000000 0 L3 0 0.000000 9.000000 3.000000 0 6.000000 3.000000 0 L3 0 0.000000 6.000000 3.000000 0 6.000000 1.000000 0 L3 0 0.000000 6.000000 2.000000 0 9.000000 2.000000 0 F3 14737632 0.000000 4 0.700000 1.000000 0 1.700000 1.000000 0 1.700000 2.000000 0 0.700000 2.000000 0 L3 0 0.000000 0.700000 1.000000 0 1.700000 1.000000 0 L3 0 0.000000 1.700000 1.000000 0 1.700000 2.000000 0 L3 0 0.000000 1.700000 2.000000 0 0.700000 2.000000 0 L3 0 0.000000 0.700000 2.000000 0 0.700000 1.000000 0 L3 0 0.000000 0.700000 1.500000 0 1.700000 1.500000 0 END STRUCTURE HO "Branchline-Laserart Storage Shed 651" F3 8749432 0.000000 4 0.000000 0.000000 0 4.000000 0.000000 0 4.000000 3.750000 0 0.000000 3.750000 0 L3 0 0.000000 0.000000 0.000000 0 4.000000 0.000000 0 L3 0 0.000000 4.000000 0.000000 0 4.000000 3.750000 0 L3 0 0.000000 4.000000 3.750000 0 0.000000 3.750000 0 L3 0 0.000000 0.000000 3.750000 0 0.000000 0.000000 0 L3 0 0.000000 2.280000 0.000000 0 2.280000 3.750000 0 END STRUCTURE HO "Branchline-Laserart Tractor Shed 651" F3 8749432 0.000000 4 1.000000 0.000000 0 4.000000 0.000000 0 4.000000 3.250000 0 1.000000 3.250000 0 L3 0 0.000000 1.000000 0.000000 0 4.000000 0.000000 0 L3 0 0.000000 4.000000 0.000000 0 4.000000 3.250000 0 L3 0 0.000000 4.000000 3.250000 0 1.000000 3.250000 0 L3 0 0.000000 1.000000 3.250000 0 1.000000 0.000000 0 L3 0 0.000000 1.000000 1.625000 0 4.000000 1.625000 0 F3 8749432 0.000000 4 0.000000 0.250000 0 1.000000 0.250000 0 1.000000 3.250000 0 0.000000 3.250000 0 L3 0 0.000000 0.000000 0.250000 0 1.000000 0.250000 0 L3 0 0.000000 1.000000 0.250000 0 1.000000 3.250000 0 L3 0 0.000000 1.000000 3.250000 0 0.000000 3.250000 0 L3 0 0.000000 0.000000 3.250000 0 0.000000 0.250000 0 END STRUCTURE HO "Branchline-Laserart Chicken Coupe 651" F3 8749432 0.000000 4 0.000000 0.000000 0 1.250000 0.000000 0 1.250000 2.500000 0 0.000000 2.500000 0 L3 0 0.000000 0.000000 0.000000 0 1.250000 0.000000 0 L3 0 0.000000 1.250000 0.000000 0 1.250000 2.500000 0 L3 0 0.000000 1.250000 2.500000 0 0.000000 2.500000 0 L3 0 0.000000 0.000000 2.500000 0 0.000000 0.000000 0 L3 0 0.000000 0.625000 0.000000 0 0.625000 2.500000 0 END STRUCTURE HO "Branchline-Laserart Smokehouse 1 651" F3 8749432 0.000000 4 0.000000 0.000000 0 1.250000 0.000000 0 1.250000 1.500000 0 0.000000 1.500000 0 L3 0 0.000000 0.000000 0.000000 0 1.250000 0.000000 0 L3 0 0.000000 1.250000 0.000000 0 1.250000 1.500000 0 L3 0 0.000000 1.250000 1.500000 0 0.000000 1.500000 0 L3 0 0.000000 0.000000 1.500000 0 0.000000 0.000000 0 L3 0 0.000000 0.000000 0.750000 0 1.250000 0.750000 0 END STRUCTURE HO "Branchline-Laserart Smokehouse 2 651" F3 8749432 0.000000 4 0.000000 0.000000 0 0.500000 0.000000 0 0.500000 0.750000 0 0.000000 0.750000 0 L3 0 0.000000 0.000000 0.000000 0 0.500000 0.000000 0 L3 0 0.000000 0.500000 0.000000 0 0.500000 0.750000 0 L3 0 0.000000 0.500000 0.750000 0 0.000000 0.750000 0 L3 0 0.000000 0.000000 0.750000 0 0.000000 0.000000 0 END STRUCTURE HO "Branchline-Laserart Farm House 652" F3 13747366 0.000000 4 0.000000 6.203125 0 0.671875 6.203125 0 0.671875 0.218750 0 0.000000 0.218750 0 F3 13747366 0.000000 4 0.687500 0.718750 0 5.187500 0.718750 0 5.187500 6.218750 0 0.687500 6.218750 0 L3 0 0.000000 0.687500 0.718750 0 5.187500 0.718750 0 L3 0 0.000000 5.187500 0.718750 0 5.187500 6.218750 0 L3 0 0.000000 0.687500 3.468750 0 5.187500 3.468750 0 F3 13747366 0.000000 4 5.187500 0.718750 0 6.687500 0.718750 0 6.687500 6.218750 0 5.187500 6.218750 0 L3 0 0.000000 5.156250 0.906250 0 6.656250 0.906250 0 L3 0 0.000000 6.687500 0.718750 0 6.687500 6.218750 0 L3 0 0.000000 5.187500 6.218750 0 5.187500 0.718750 0 F3 13747366 0.000000 4 2.687500 0.468750 0 5.187500 0.468750 0 5.187500 3.468750 0 2.687500 3.468750 0 L3 0 0.000000 2.687500 0.468750 0 5.187500 0.468750 0 L3 0 0.000000 5.187500 0.468750 0 5.187500 3.468750 0 L3 0 0.000000 5.187500 3.468750 0 2.687500 3.468750 0 L3 0 0.000000 3.937500 0.468750 0 3.937500 3.468750 0 L3 0 0.000000 0.687500 0.218750 0 0.687500 6.218750 0 L3 0 0.000000 0.000000 6.218750 0 0.000000 0.218750 0 F3 13747366 0.000000 4 0.687500 0.218750 0 2.687500 0.218750 0 2.687500 0.718750 0 0.687500 0.718750 0 L3 0 0.000000 2.718750 0.906250 0 0.718750 0.906250 0 F3 13747366 0.000000 4 5.187500 0.218750 0 6.687500 0.218750 0 6.687500 0.718750 0 5.187500 0.718750 0 L3 0 0.000000 5.187500 0.218750 0 6.687500 0.218750 0 L3 0 0.000000 6.687500 0.218750 0 6.687500 0.718750 0 L3 0 0.000000 6.656250 0.906250 0 5.156250 0.906250 0 L3 0 0.000000 5.187500 0.718750 0 5.187500 0.218750 0 L3 0 0.000000 2.687500 0.906250 0 3.937500 3.468750 0 L3 0 0.000000 3.937500 3.437500 0 5.187500 0.906250 0 L3 0 0.000000 0.687500 0.906250 0 0.000000 0.187500 0 L3 0 0.000000 2.656250 0.218750 0 0.000000 0.218750 0 L3 0 0.000000 0.000000 6.218750 0 6.687500 6.218750 0 F3 13747366 0.000000 4 3.531250 0.453125 0 4.343750 0.453125 0 4.343750 0.015625 0 3.531250 0.015625 0 F3 13747366 0.000000 4 3.156250 0.437500 0 4.765625 0.453125 0 4.343750 0.031250 0 3.531250 0.046875 0 L3 0 0.000000 4.296875 0.031250 0 4.718750 0.453125 0 L3 0 0.000000 3.562500 0.031250 0 3.140625 0.453125 0 L3 0 0.000000 3.546875 0.015625 0 4.296875 0.015625 0 L3 0 0.000000 4.265625 0.000000 0 4.265625 0.453125 0 L3 0 0.000000 3.562500 0.015625 0 3.562500 0.453125 0 L3 0 0.000000 2.656250 0.203125 0 2.656250 6.203125 0 L3 0 0.000000 3.921875 3.453125 0 3.921875 6.203125 0 L3 0 0.000000 2.656250 6.203125 0 3.906250 3.453125 0 L3 0 0.000000 5.171875 6.203125 0 3.906250 3.453125 0 L3 0 0.000000 0.671875 0.906250 0 0.671875 6.203125 0 END STRUCTURE HO "Branchline-Laserart Majestic Theater 654" F3 14393493 0.000000 4 0.000000 1.000000 0 6.000000 1.000000 0 6.000000 7.000000 0 0.000000 7.000000 0 L3 0 0.000000 0.000000 1.000000 0 6.000000 1.000000 0 L3 0 0.000000 6.000000 1.000000 0 6.000000 7.000000 0 L3 0 0.000000 6.000000 7.000000 0 0.000000 7.000000 0 L3 0 0.000000 0.000000 7.000000 0 0.000000 1.000000 0 L3 0 0.000000 3.000000 1.000000 0 3.000000 7.000000 0 F3 8749432 0.000000 4 1.000000 0.000000 0 5.000000 0.000000 0 5.000000 1.000000 0 1.000000 1.000000 0 L3 0 0.000000 1.000000 0.000000 0 5.000000 0.000000 0 L3 0 0.000000 5.000000 0.000000 0 5.000000 1.000000 0 L3 0 0.000000 5.000000 1.000000 0 1.000000 1.000000 0 L3 0 0.000000 1.000000 1.000000 0 1.000000 0.000000 0 END STRUCTURE HO "Branchline-Laserart Flour Mill 686" F3 8749432 0.000000 4 0.000000 1.000000 0 7.250000 1.000000 0 7.250000 4.000000 0 0.000000 4.000000 0 L3 0 0.000000 0.000000 1.000000 0 7.250000 1.000000 0 L3 0 0.000000 7.250000 1.000000 0 7.250000 4.000000 0 L3 0 0.000000 7.250000 4.000000 0 0.000000 4.000000 0 L3 0 0.000000 0.000000 4.000000 0 0.000000 1.000000 0 L3 0 0.000000 3.625000 1.000000 0 3.625000 4.000000 0 L3 0 0.000000 3.125000 1.000000 0 3.125000 4.000000 0 L3 0 0.000000 1.600000 1.000000 0 1.600000 4.000000 0 F3 16768915 0.000000 4 1.500000 0.000000 0 4.000000 0.000000 0 4.000000 0.500000 0 1.500000 0.500000 0 L3 0 0.000000 1.500000 0.000000 0 4.000000 0.000000 0 L3 0 0.000000 4.000000 0.000000 0 4.000000 0.500000 0 L3 0 0.000000 4.000000 0.500000 0 1.500000 0.500000 0 L3 0 0.000000 1.500000 0.500000 0 1.500000 0.000000 0 F3 8749432 0.000000 4 1.500000 0.500000 0 4.000000 0.500000 0 4.000000 1.000000 0 1.500000 1.000000 0 L3 0 0.000000 1.500000 0.500000 0 4.000000 0.500000 0 L3 0 0.000000 4.000000 0.500000 0 4.000000 1.000000 0 L3 0 0.000000 4.000000 1.000000 0 1.500000 1.000000 0 L3 0 0.000000 1.500000 1.000000 0 1.500000 0.500000 0 END STRUCTURE HO "Branchline-Laserart Nickels Milling and Feed 692" F3 9403516 0.000000 4 0.000000 0.000000 0 2.800000 0.000000 0 2.800000 2.500000 0 0.000000 2.500000 0 L3 0 0.000000 0.000000 0.000000 0 2.800000 0.000000 0 L3 0 0.000000 2.800000 0.000000 0 2.800000 2.500000 0 L3 0 0.000000 2.800000 2.500000 0 0.000000 2.500000 0 L3 0 0.000000 0.000000 2.500000 0 0.000000 0.000000 0 L3 0 0.000000 0.000000 1.250000 0 2.800000 1.250000 0 F3 9403516 0.000000 4 2.800000 0.000000 0 6.000000 0.000000 0 6.000000 2.500000 0 2.800000 2.500000 0 L3 0 0.000000 2.800000 0.000000 0 6.000000 0.000000 0 L3 0 0.000000 6.000000 0.000000 0 6.000000 2.500000 0 L3 0 0.000000 6.000000 2.500000 0 2.800000 2.500000 0 L3 0 0.000000 2.800000 2.500000 0 2.800000 0.000000 0 L3 0 0.000000 2.800000 1.250000 0 6.000000 1.250000 0 F3 9403516 0.000000 4 6.000000 0.000000 0 8.500000 0.000000 0 8.500000 2.000000 0 6.000000 2.000000 0 L3 0 0.000000 6.000000 0.000000 0 8.500000 0.000000 0 L3 0 0.000000 8.500000 0.000000 0 8.500000 2.000000 0 L3 0 0.000000 8.500000 2.000000 0 6.000000 2.000000 0 L3 0 0.000000 6.000000 2.000000 0 6.000000 0.000000 0 L3 0 0.000000 6.000000 1.000000 0 8.500000 1.000000 0 F3 9403516 0.000000 4 0.000000 2.500000 0 6.000000 2.500000 0 6.000000 5.000000 0 0.000000 5.000000 0 L3 0 0.000000 0.000000 2.500000 0 6.000000 2.500000 0 L3 0 0.000000 6.000000 2.500000 0 6.000000 5.000000 0 L3 0 0.000000 6.000000 5.000000 0 0.000000 5.000000 0 L3 0 0.000000 0.000000 5.000000 0 0.000000 2.500000 0 F3 9403516 0.000000 4 4.500000 5.000000 0 6.000000 5.000000 0 6.000000 6.000000 0 4.500000 6.000000 0 L3 0 0.000000 4.500000 5.000000 0 6.000000 5.000000 0 L3 0 0.000000 6.000000 5.000000 0 6.000000 6.000000 0 L3 0 0.000000 6.000000 6.000000 0 4.500000 6.000000 0 L3 0 0.000000 4.500000 6.000000 0 4.500000 5.000000 0 F3 16768915 0.000000 4 6.000000 3.500000 0 6.500000 3.500000 0 6.500000 5.000000 0 6.000000 5.000000 0 L3 0 0.000000 6.000000 3.500000 0 6.500000 3.500000 0 L3 0 0.000000 6.500000 3.500000 0 6.500000 5.000000 0 L3 0 0.000000 6.500000 5.000000 0 6.000000 5.000000 0 L3 0 0.000000 6.000000 5.000000 0 6.000000 3.500000 0 F3 9403516 0.000000 4 0.700000 0.850000 0 2.100000 0.850000 0 2.100000 1.650000 0 0.700000 1.650000 0 L3 0 0.000000 0.700000 0.850000 0 2.100000 0.850000 0 L3 0 0.000000 2.100000 0.850000 0 2.100000 1.650000 0 L3 0 0.000000 2.100000 1.650000 0 0.700000 1.650000 0 L3 0 0.000000 0.700000 1.650000 0 0.700000 0.850000 0 L3 0 0.000000 0.700000 1.250000 0 2.100000 1.250000 0 END STRUCTURE HO "Branchline-Laserart Crosby's Coal 694" F3 9403516 0.000000 4 0.000000 0.500000 0 8.000000 0.500000 0 8.000000 2.500000 0 0.000000 2.500000 0 L3 0 0.000000 0.000000 0.500000 0 8.000000 0.500000 0 L3 0 0.000000 8.000000 0.500000 0 8.000000 2.500000 0 L3 0 0.000000 8.000000 2.500000 0 0.000000 2.500000 0 L3 0 0.000000 0.000000 2.500000 0 0.000000 0.500000 0 L3 0 0.000000 0.000000 1.500000 0 8.000000 1.500000 0 F3 14737632 0.000000 4 0.000000 0.000000 0 8.000000 0.000000 0 8.000000 0.500000 0 0.000000 0.500000 0 L3 0 0.000000 0.000000 0.000000 0 8.000000 0.000000 0 L3 0 0.000000 8.000000 0.000000 0 8.000000 0.500000 0 L3 0 0.000000 8.000000 0.500000 0 0.000000 0.500000 0 L3 0 0.000000 0.000000 0.500000 0 0.000000 0.000000 0 F3 9403516 0.000000 4 3.000000 0.500000 0 5.000000 0.500000 0 5.000000 2.500000 0 3.000000 2.500000 0 L3 0 0.000000 3.000000 0.500000 0 5.000000 0.500000 0 L3 0 0.000000 5.000000 0.500000 0 5.000000 2.500000 0 L3 0 0.000000 5.000000 2.500000 0 3.000000 2.500000 0 L3 0 0.000000 3.000000 2.500000 0 3.000000 0.500000 0 L3 0 0.000000 4.000000 0.500000 0 4.000000 2.500000 0 END STRUCTURE HO "Branchline-Laserart Sand House 697" F3 8749432 0.000000 4 0.000000 0.000000 0 4.000000 0.000000 0 4.000000 5.000000 0 0.000000 5.000000 0 L3 0 0.000000 0.000000 0.000000 0 4.000000 0.000000 0 L3 0 0.000000 4.000000 0.000000 0 4.000000 5.000000 0 L3 0 0.000000 4.000000 5.000000 0 0.000000 5.000000 0 L3 0 0.000000 0.000000 5.000000 0 0.000000 0.000000 0 L3 0 0.000000 0.000000 2.500000 0 4.000000 2.500000 0 F3 8749432 0.000000 4 4.000000 0.000000 0 7.000000 0.000000 0 7.000000 3.000000 0 4.000000 3.000000 0 L3 0 0.000000 4.000000 0.000000 0 7.000000 0.000000 0 L3 0 0.000000 7.000000 0.000000 0 7.000000 3.000000 0 L3 0 0.000000 7.000000 3.000000 0 4.000000 3.000000 0 L3 0 0.000000 4.000000 3.000000 0 4.000000 0.000000 0 L3 0 0.000000 4.000000 1.500000 0 7.000000 1.500000 0 F3 0 0.000000 4 4.000000 3.000000 0 4.500000 3.000000 0 4.500000 3.500000 0 4.000000 3.500000 0 L3 0 0.000000 4.000000 3.000000 0 4.500000 3.000000 0 L3 0 0.000000 4.500000 3.000000 0 4.500000 3.500000 0 L3 0 0.000000 4.500000 3.500000 0 4.000000 3.500000 0 L3 0 0.000000 4.000000 3.500000 0 4.000000 3.000000 0 F3 8749432 0.000000 4 0.500000 3.000000 0 1.500000 3.000000 0 1.500000 4.000000 0 0.500000 4.000000 0 L3 0 0.000000 0.500000 3.000000 0 1.500000 3.000000 0 L3 0 0.000000 1.500000 3.000000 0 1.500000 4.000000 0 L3 0 0.000000 1.500000 4.000000 0 0.500000 4.000000 0 L3 0 0.000000 0.500000 4.000000 0 0.500000 3.000000 0 L3 0 0.000000 0.500000 3.500000 0 1.500000 3.500000 0 END STRUCTURE HO "Branchline-Laserart Cobleskill Coal 698" F3 10526880 0.000000 4 0.000000 0.000000 0 10.000000 0.000000 0 10.000000 5.000000 0 0.000000 5.000000 0 L3 0 0.000000 0.000000 0.000000 0 10.000000 0.000000 0 L3 0 0.000000 10.000000 0.000000 0 10.000000 5.000000 0 L3 0 0.000000 10.000000 5.000000 0 0.000000 5.000000 0 L3 0 0.000000 0.000000 5.000000 0 0.000000 0.000000 0 L3 0 0.000000 0.000000 2.500000 0 10.000000 2.500000 0 F3 10526880 0.000000 4 10.000000 0.000000 0 12.000000 0.000000 0 12.000000 5.000000 0 10.000000 5.000000 0 L3 0 0.000000 10.000000 0.000000 0 12.000000 0.000000 0 L3 0 0.000000 12.000000 0.000000 0 12.000000 5.000000 0 L3 0 0.000000 12.000000 5.000000 0 10.000000 5.000000 0 L3 0 0.000000 10.000000 5.000000 0 10.000000 0.000000 0 L3 0 0.000000 10.000000 2.500000 0 12.000000 2.500000 0 F3 10526880 0.000000 4 6.000000 0.500000 0 7.800000 0.500000 0 7.800000 2.500000 0 6.000000 2.500000 0 L3 0 0.000000 6.000000 0.500000 0 7.800000 0.500000 0 L3 0 0.000000 7.800000 0.500000 0 7.800000 2.500000 0 L3 0 0.000000 7.800000 2.500000 0 6.000000 2.500000 0 L3 0 0.000000 6.000000 2.500000 0 6.000000 0.500000 0 L3 0 0.000000 6.900000 0.500000 0 6.900000 2.500000 0 F3 10526880 0.000000 4 7.800000 0.000000 0 10.500000 0.000000 0 10.500000 0.500000 0 7.800000 0.500000 0 L3 0 0.000000 7.800000 0.000000 0 10.500000 0.000000 0 L3 0 0.000000 10.500000 0.000000 0 10.500000 0.500000 0 L3 0 0.000000 10.500000 0.500000 0 7.800000 0.500000 0 L3 0 0.000000 7.800000 0.500000 0 7.800000 0.000000 0 END --- NEW FILE: ho-blair.xtp --- CONTENTS Blair Line HO STRUCTURE HO "Blair Line Church 169" F3 11905421 0.000000 4 0.000000 0.000000 0 4.375000 0.000000 0 4.375000 3.062500 0 0.000000 3.062500 0 L3 0 0.000000 0.000000 0.000000 0 4.375000 0.000000 0 L3 0 0.000000 4.375000 0.000000 0 4.375000 3.062500 0 L3 0 0.000000 4.375000 3.062500 0 0.000000 3.062500 0 L3 0 0.000000 0.000000 3.062500 0 0.000000 0.000000 0 L3 0 0.000000 0.000000 1.531250 0 4.375000 1.531250 0 F3 11905421 0.000000 4 3.880000 1.030000 0 4.880000 1.030000 0 4.880000 2.030000 0 3.880000 2.030000 0 L3 0 0.000000 3.880000 1.030000 0 4.880000 1.030000 0 L3 0 0.000000 4.880000 1.030000 0 4.880000 2.030000 0 L3 0 0.000000 4.880000 2.030000 0 3.880000 2.030000 0 L3 0 0.000000 3.880000 2.030000 0 3.880000 1.030000 0 L3 0 0.000000 3.880000 1.030000 0 4.880000 2.030000 0 L3 0 0.000000 3.880000 2.030000 0 4.880000 1.030000 0 END TURNOUT HO "Blair Line Cash Mine 186" P "P0" 1 0 2 E 0.000000 0.000000 270.000000 E 8.750000 0.000000 90.000000 E 8.750000 -6.100000 90.000000 E 0.000000 -6.100000 270.000000 S 0 0.000000 0.000000 -6.100000 8.750000 -6.100000 S 0 0.000000 0.000000 0.000000 8.750000 0.000000 L3 0 0.000000 0.500000 -7.381250 0 8.000000 -7.381250 0 L3 0 0.000000 8.000000 -7.381250 0 8.000000 1.118750 0 L3 0 0.000000 8.000000 1.118750 0 0.500000 1.118750 0 L3 0 0.000000 0.500000 1.118750 0 0.500000 -7.381250 0 F3 12485242 0.000000 4 0.500000 -5.131250 0 8.000000 -5.131250 0 8.000000 -1.131250 0 0.500000 -1.131250 0 L3 0 0.000000 0.500000 -5.131250 0 8.000000 -5.131250 0 L3 0 0.000000 8.000000 -5.131250 0 8.000000 -1.131250 0 L3 0 0.000000 8.000000 -1.131250 0 0.500000 -1.131250 0 L3 0 0.000000 0.500000 -1.131250 0 0.500000 -5.131250 0 F3 12485242 0.000000 4 4.200000 -7.381250 0 7.200000 -7.381250 0 7.200000 1.118750 0 4.200000 1.118750 0 F3 12485242 0.000000 4 3.200000 -7.381250 0 7.200000 -7.381250 0 7.200000 1.118750 0 3.200000 1.118750 0 L3 0 0.000000 3.200000 -7.381250 0 3.200000 -5.131250 0 L3 0 0.000000 7.200000 -7.381250 0 7.200000 -5.131250 0 L3 0 0.000000 7.200000 -1.131250 0 7.200000 1.118750 0 L3 0 0.000000 3.200000 -1.131250 0 3.200000 1.118750 0 L3 0 0.000000 3.200000 -5.131250 0 7.200000 -1.131250 0 L3 0 0.000000 3.200000 -1.131250 0 7.200000 -5.131250 0 L3 0 0.000000 5.200000 -7.381250 0 5.200000 1.118750 0 L3 0 0.000000 0.500000 -3.131250 0 8.000000 -3.131250 0 F3 12485242 0.000000 4 1.500000 -4.131250 0 7.000000 -4.131250 0 7.000000 -2.131250 0 1.500000 -2.131250 0 L3 0 0.000000 1.500000 -4.131250 0 7.000000 -4.131250 0 L3 0 0.000000 7.000000 -4.131250 0 7.000000 -2.131250 0 L3 0 0.000000 7.000000 -2.131250 0 1.500000 -2.131250 0 L3 0 0.000000 1.500000 -2.131250 0 1.500000 -4.131250 0 L3 0 0.000000 1.500000 -3.131250 0 7.000000 -3.131250 0 F3 14737632 0.000000 4 0.500000 -7.381250 0 3.200000 -7.381250 0 3.200000 -5.131250 0 0.500000 -5.131250 0 L3 0 0.000000 0.500000 -7.381250 0 3.200000 -7.381250 0 L3 0 0.000000 3.200000 -7.381250 0 3.200000 -5.131250 0 L3 0 0.000000 3.200000 -5.131250 0 0.500000 -5.131250 0 L3 0 0.000000 0.500000 -5.131250 0 0.500000 -7.381250 0 F3 14737632 0.000000 4 0.500000 -1.131250 0 3.200000 -1.131250 0 3.200000 1.118750 0 0.500000 1.118750 0 L3 0 0.000000 0.500000 -1.131250 0 3.200000 -1.131250 0 L3 0 0.000000 3.200000 -1.131250 0 3.200000 1.118750 0 L3 0 0.000000 3.200000 1.118750 0 0.500000 1.118750 0 L3 0 0.000000 0.500000 1.118750 0 0.500000 -1.131250 0 F3 14737632 0.000000 4 7.200000 -7.381250 0 8.000000 -7.381250 0 8.000000 -5.131250 0 7.200000 -5.131250 0 L3 0 0.000000 7.200000 -7.381250 0 8.000000 -7.381250 0 L3 0 0.000000 8.000000 -7.381250 0 8.000000 -5.131250 0 L3 0 0.000000 8.000000 -5.131250 0 7.200000 -5.131250 0 L3 0 0.000000 7.200000 -5.131250 0 7.200000 -7.381250 0 F3 14737632 0.000000 4 7.200000 -1.131250 0 8.000000 -1.131250 0 8.000000 1.118750 0 7.200000 1.118750 0 L3 0 0.000000 7.200000 -1.131250 0 8.000000 -1.131250 0 L3 0 0.000000 8.000000 -1.131250 0 8.000000 1.118750 0 L3 0 0.000000 8.000000 1.118750 0 7.200000 1.118750 0 L3 0 0.000000 7.200000 1.118750 0 7.200000 -1.131250 0 F3 8417906 0.000000 4 0.500000 -5.131250 0 -0.968750 -5.131250 0 -0.968750 -3.131250 0 0.500000 -3.131250 0 F3 16768915 0.000000 4 5.578125 -7.381250 0 7.078125 -7.381250 0 7.078125 -8.256250 0 5.578125 -8.256250 0 L3 0 0.000000 5.593750 -7.365625 0 5.593750 -8.240625 0 L3 0 0.000000 5.593750 -8.240625 0 7.078125 -8.240625 0 L3 0 0.000000 7.062500 -7.381250 0 7.062500 -8.240625 0 L3 0 0.000000 5.593750 -7.365625 0 7.062500 -7.365625 0 END STRUCTURE HO "Blair Line Fred & Red's 190" F3 9403516 0.000000 4 0.300000 0.000000 0 4.500000 0.000000 0 4.500000 2.000000 0 0.300000 2.000000 0 L3 0 0.000000 0.300000 0.000000 0 4.500000 0.000000 0 L3 0 0.000000 4.500000 0.000000 0 4.500000 2.000000 0 L3 0 0.000000 4.500000 2.000000 0 0.300000 2.000000 0 L3 0 0.000000 0.300000 2.000000 0 0.300000 0.000000 0 F3 13747366 0.000000 4 0.000000 0.250000 0 0.300000 0.250000 0 0.300000 1.750000 0 0.000000 1.750000 0 L3 0 0.000000 0.000000 0.250000 0 0.300000 0.250000 0 L3 0 0.000000 0.300000 0.250000 0 0.300000 1.750000 0 L3 0 0.000000 0.300000 1.750000 0 0.000000 1.750000 0 L3 0 0.000000 0.000000 1.750000 0 0.000000 0.250000 0 END --- NEW FILE: ho-barm.xtp --- CONTENTS Bar Mills Scale Models STRUCTURE HO "Bar Mills Models Bud Smiley's Gas 'n Go 102" F3 8749432 0.000000 4 0.000000 0.000000 0 4.321000 0.000000 0 4.321000 3.091000 0 0.000000 3.091000 0 L3 0 0.000000 0.000000 0.000000 0 4.321000 0.000000 0 L3 0 0.000000 4.321000 0.000000 0 4.321000 3.091000 0 L3 0 0.000000 4.321000 3.091000 0 0.000000 3.091000 0 L3 0 0.000000 0.000000 3.091000 0 0.000000 0.000000 0 L3 0 0.000000 0.468750 1.546875 0 1.585938 2.179688 0 L3 0 0.000000 0.454287 1.522275 0 1.571475 0.889462 0 END STRUCTURE HO "Bar Mills Models Four Fingered Tony's 112" F3 8749432 0.000000 4 8.718750 1.125000 0 3.718750 1.125000 0 3.718750 3.625000 0 8.718750 3.625000 0 L3 0 0.000000 8.718750 1.125000 0 3.718750 1.125000 0 L3 0 0.000000 3.718750 1.125000 0 3.718750 3.125000 0 L3 0 0.000000 0.000000 0.000000 0 4.750000 0.000000 0 L3 0 0.000000 4.750000 0.000000 0 4.750000 2.000000 0 L3 0 0.000000 4.750000 2.000000 0 0.000000 2.000000 0 L3 0 0.000000 0.000000 2.000000 0 0.000000 0.000000 0 L3 0 0.000000 3.718750 1.125000 0 8.703125 1.125000 0 L3 0 0.000000 8.703125 1.125000 0 8.703125 3.625000 0 L3 0 0.000000 8.703125 3.625000 0 3.718750 3.625000 0 L3 0 0.000000 3.718750 3.625000 0 3.718750 1.125000 0 L3 0 0.000000 6.187500 3.625000 0 6.187500 1.109375 0 F3 10329501 0.000000 4 5.500000 2.046875 0 0.000000 2.046875 0 0.000000 0.000000 0 5.500000 0.000000 0 L3 0 0.000000 0.000000 2.031250 0 5.484375 2.031250 0 L3 0 0.000000 5.484375 2.031250 0 5.484375 0.000000 0 L3 0 0.000000 5.484375 0.000000 0 0.000000 0.000000 0 L3 0 0.000000 0.000000 0.000000 0 0.000000 2.031250 0 END STRUCTURE HO "Bar Mills Models Oakleaf Shipping & Storage 182" F3 8749432 0.000000 4 0.000000 0.000000 0 9.000000 0.000000 0 9.000000 6.000000 0 0.000000 6.000000 0 L3 0 0.000000 0.000000 0.000000 0 9.000000 0.000000 0 L3 0 0.000000 9.000000 0.000000 0 9.000000 6.000000 0 L3 0 0.000000 9.000000 6.000000 0 0.000000 6.000000 0 L3 0 0.000000 0.000000 6.000000 0 0.000000 0.000000 0 END STRUCTURE HO "Bar Mills Models Fishing Shack at Cozy Cove 662" F3 8749432 0.000000 4 2.781250 0.000000 0 5.170250 0.000000 0 5.170250 1.884000 0 2.781250 1.884000 0 L3 0 0.000000 2.781250 0.000000 0 5.170250 0.000000 0 L3 0 0.000000 5.170250 0.000000 0 5.170250 1.884000 0 L3 0 0.000000 5.170250 1.884000 0 2.781250 1.884000 0 L3 0 0.000000 2.781250 1.884000 0 2.781250 0.000000 0 L3 0 0.000000 3.976250 0.000000 0 3.976250 1.884000 0 F3 13747366 0.000000 4 0.000000 0.531250 0 2.800000 0.531250 0 2.800000 1.131250 0 0.000000 1.131250 0 L3 0 0.000000 0.000000 0.531250 0 2.800000 0.531250 0 L3 0 0.000000 2.800000 0.531250 0 2.800000 1.131250 0 L3 0 0.000000 2.800000 1.131250 0 0.000000 1.131250 0 L3 0 0.000000 0.000000 1.131250 0 0.000000 0.531250 0 END STRUCTURE HO "Bar Mills Models Revelia Shipping & Storage 722" F3 8749432 0.000000 4 0.000000 0.000000 0 3.390000 0.000000 0 3.390000 1.750000 0 0.000000 1.750000 0 L3 0 0.000000 0.000000 0.000000 0 3.390000 0.000000 0 L3 0 0.000000 3.390000 0.000000 0 3.390000 1.750000 0 L3 0 0.000000 3.390000 1.750000 0 0.000000 1.750000 0 L3 0 0.000000 0.000000 1.750000 0 0.000000 0.000000 0 F3 13747366 0.000000 4 0.000000 2.386000 0 1.350000 2.386000 0 1.350000 1.350000 0 0.000000 1.350000 0 L3 0 0.000000 0.000000 2.386000 0 1.350000 2.386000 0 L3 0 0.000000 1.350000 2.386000 0 1.350000 1.350000 0 L3 0 0.000000 1.350000 1.350000 0 0.000000 1.350000 0 L3 0 0.000000 0.000000 1.350000 0 0.000000 2.386000 0 END STRUCTURE HO "Bar Mills Models Magees Tire Service 772" F3 8749432 0.000000 4 0.000000 0.000000 0 4.700000 0.000000 0 4.700000 2.800000 0 0.000000 2.800000 0 L3 0 0.000000 0.000000 0.000000 0 4.700000 0.000000 0 L3 0 0.000000 4.700000 0.000000 0 4.700000 2.800000 0 L3 0 0.000000 4.700000 2.800000 0 0.000000 2.800000 0 L3 0 0.000000 0.000000 2.800000 0 0.000000 0.000000 0 L3 0 0.000000 1.880000 0.000000 0 1.880000 2.800000 0 END STRUCTURE HO "Bar Mills Models Rusty's Radiators 832" F3 8749432 0.000000 4 0.000000 0.000000 0 3.600000 0.000000 0 1.440000 2.900000 0 0.000000 2.900000 0 L3 0 0.000000 0.000000 0.000000 0 3.600000 0.000000 0 L3 0 0.000000 3.600000 0.000000 0 1.440000 2.900000 0 L3 0 0.000000 1.440000 2.900000 0 0.000000 2.900000 0 L3 0 0.000000 0.000000 2.900000 0 0.000000 0.000000 0 END STRUCTURE HO "Bar Mills Models Gravely Building 882" F3 8749432 0.000000 4 0.000000 0.000000 0 3.000000 0.000000 0 3.000000 4.750000 0 0.000000 4.750000 0 L3 0 0.000000 0.000000 0.000000 0 3.000000 0.000000 0 L3 0 0.000000 3.000000 0.000000 0 3.000000 4.750000 0 L3 0 0.000000 3.000000 4.750000 0 0.000000 4.750000 0 L3 0 0.000000 0.000000 4.750000 0 0.000000 0.000000 0 F3 13769756 0.000000 4 3.000000 1.000000 0 6.750000 1.000000 0 6.750000 4.750000 0 3.000000 4.750000 0 L3 0 0.000000 3.000000 1.000000 0 6.750000 1.000000 0 L3 0 0.000000 6.750000 1.000000 0 6.750000 4.750000 0 L3 0 0.000000 6.750000 4.750000 0 3.000000 4.750000 0 L3 0 0.000000 3.000000 4.750000 0 3.000000 1.000000 0 L3 0 0.000000 3.000000 2.875000 0 6.750000 2.875000 0 F3 13747366 0.000000 4 3.000000 0.000000 0 6.750000 0.000000 0 6.750000 1.000000 0 3.000000 1.000000 0 L3 0 0.000000 3.000000 0.000000 0 6.750000 0.000000 0 L3 0 0.000000 6.750000 0.000000 0 6.750000 1.000000 0 L3 0 0.000000 6.750000 1.000000 0 3.000000 1.000000 0 L3 0 0.000000 3.000000 1.000000 0 3.000000 0.000000 0 END STRUCTURE HO "Bar Mills Models Captain Jack's 892" F3 8749432 0.000000 4 1.470000 0.000000 0 4.340000 0.000000 0 4.340000 4.275000 0 1.470000 4.275000 0 L3 0 0.000000 1.470000 0.000000 0 4.340000 0.000000 0 L3 0 0.000000 4.340000 0.000000 0 4.340000 4.275000 0 L3 0 0.000000 4.340000 4.275000 0 1.470000 4.275000 0 L3 0 0.000000 1.470000 4.275000 0 1.470000 0.000000 0 L3 0 0.000000 2.905000 0.000000 0 2.905000 4.340000 0 F3 8749432 0.000000 4 0.000000 2.140000 0 1.470000 2.140000 0 1.470000 3.740000 0 0.000000 3.740000 0 L3 0 0.000000 0.000000 2.140000 0 1.470000 2.140000 0 L3 0 0.000000 1.470000 2.140000 0 1.470000 3.740000 0 L3 0 0.000000 1.470000 3.740000 0 0.000000 3.740000 0 L3 0 0.000000 0.000000 3.740000 0 0.000000 2.140000 0 F3 8749432 0.000000 4 4.340000 0.000000 0 5.470000 0.000000 0 5.470000 3.280000 0 4.340000 3.280000 0 L3 0 0.000000 4.340000 0.000000 0 5.470000 0.000000 0 L3 0 0.000000 5.470000 0.000000 0 5.470000 3.280000 0 L3 0 0.000000 5.470000 3.280000 0 4.340000 3.280000 0 L3 0 0.000000 4.340000 3.280000 0 4.340000 0.000000 0 F3 11905421 0.000000 4 1.670000 4.275000 0 1.670000 5.675000 0 4.140000 5.675000 0 4.140000 4.275000 0 L3 0 0.000000 1.670000 4.275000 0 1.670000 5.675000 0 L3 0 0.000000 1.670000 5.675000 0 4.140000 5.675000 0 L3 0 0.000000 4.140000 5.675000 0 4.140000 4.275000 0 L3 0 0.000000 4.140000 4.275000 0 1.670000 4.275000 0 END STRUCTURE HO "Bar Mills Models Whistlestop Junction 911" F3 13747366 0.000000 4 0.000000 0.500000 0 5.000000 0.500000 0 5.000000 2.500000 0 0.000000 2.500000 0 L3 0 0.000000 0.000000 0.500000 0 5.000000 0.500000 0 L3 0 0.000000 5.000000 0.500000 0 5.000000 2.500000 0 L3 0 0.000000 5.000000 2.500000 0 0.000000 2.500000 0 L3 0 0.000000 0.000000 2.500000 0 0.000000 0.500000 0 L3 0 0.000000 0.000000 1.750000 0 5.000000 1.750000 0 F3 13747366 0.000000 4 3.250000 0.000000 0 4.750000 0.000000 0 4.750000 1.000000 0 3.250000 1.000000 0 L3 0 0.000000 3.250000 0.000000 0 4.750000 0.000000 0 L3 0 0.000000 4.750000 0.000000 0 4.750000 0.500000 0 L3 0 0.000000 4.750000 0.500000 0 4.000000 1.750000 0 L3 0 0.000000 4.000000 1.750000 0 3.250000 0.500000 0 L3 0 0.000000 3.250000 0.500000 0 3.250000 0.000000 0 L3 0 0.000000 4.000000 0.000000 0 4.000000 1.750000 0 END STRUCTURE HO "Bar Mills Models Waterfront Willies 922" F3 13747366 0.000000 4 0.000000 0.000000 0 6.000000 0.000000 0 6.000000 3.500000 0 0.000000 3.500000 0 L3 0 0.000000 0.000000 0.000000 0 6.000000 0.000000 0 L3 0 0.000000 6.000000 0.000000 0 6.000000 3.500000 0 L3 0 0.000000 6.000000 3.500000 0 0.000000 3.500000 0 L3 0 0.000000 0.000000 3.500000 0 0.000000 0.000000 0 F3 11905421 0.000000 4 2.560000 0.875000 0 5.360000 0.875000 0 5.360000 3.062500 0 2.560000 3.062500 0 L3 0 0.000000 2.560000 0.875000 0 5.360000 0.875000 0 L3 0 0.000000 5.360000 0.875000 0 5.360000 3.062500 0 L3 0 0.000000 5.360000 3.062500 0 2.560000 3.062500 0 L3 0 0.000000 2.560000 3.062500 0 2.560000 0.875000 0 L3 0 0.000000 2.560000 1.968750 0 5.360000 1.968750 0 F3 11905421 0.000000 4 1.200000 1.462500 0 2.560000 1.462500 0 2.560000 3.062500 0 1.200000 3.062500 0 L3 0 0.000000 1.200000 1.462500 0 2.560000 1.462500 0 L3 0 0.000000 2.560000 1.462500 0 2.560000 3.062500 0 L3 0 0.000000 2.560000 3.062500 0 1.200000 3.062500 0 L3 0 0.000000 1.200000 3.062500 0 1.200000 1.462500 0 END STRUCTURE HO "Bar Mills Saulena's Tavern 932" F3 11513516 0.000000 4 0.000000 0.000000 0 6.000000 0.000000 0 6.000000 3.375000 0 0.000000 3.375000 0 L3 0 0.000000 0.000000 0.000000 0 6.000000 0.000000 0 L3 0 0.000000 6.000000 0.000000 0 6.000000 3.375000 0 L3 0 0.000000 6.000000 3.375000 0 0.000000 3.375000 0 L3 0 0.000000 0.000000 3.375000 0 0.000000 0.000000 0 F3 8749432 0.000000 4 0.860000 0.860000 0 6.000000 0.860000 0 6.000000 3.375000 0 0.860000 3.375000 0 L3 0 0.000000 0.860000 0.860000 0 6.000000 0.860000 0 L3 0 0.000000 6.000000 0.860000 0 6.000000 3.375000 0 L3 0 0.000000 6.000000 3.375000 0 0.860000 3.375000 0 L3 0 0.000000 0.860000 3.375000 0 0.860000 0.860000 0 F3 8749432 0.000000 4 0.660000 0.660000 0 2.160000 0.660000 0 2.160000 2.160000 0 0.660000 2.160000 0 L3 0 0.000000 0.660000 0.660000 0 2.160000 0.660000 0 L3 0 0.000000 2.160000 0.660000 0 2.160000 0.860000 0 L3 0 0.000000 0.860000 2.160000 0 0.660000 2.160000 0 L3 0 0.000000 0.660000 2.160000 0 0.660000 0.660000 0 END STRUCTURE HO "Bar Mills Majestic Hardware 942" F3 12485242 0.000000 4 0.500000 0.000000 0 7.000000 0.000000 0 7.000000 4.500000 0 0.500000 4.500000 0 L3 0 0.000000 0.500000 0.000000 0 7.000000 0.000000 0 L3 0 0.000000 7.000000 0.000000 0 7.000000 4.500000 0 L3 0 0.000000 7.000000 4.500000 0 0.500000 4.500000 0 L3 0 0.000000 0.500000 4.500000 0 0.500000 0.000000 0 L3 0 0.000000 0.500000 2.250000 0 7.000000 2.250000 0 F3 8749432 0.000000 4 0.000000 0.200000 0 0.500000 0.200000 0 0.500000 2.000000 0 0.000000 2.000000 0 L3 0 0.000000 0.000000 0.200000 0 0.500000 0.200000 0 L3 0 0.000000 0.500000 0.200000 0 0.500000 2.000000 0 L3 0 0.000000 0.500000 2.000000 0 0.000000 2.000000 0 L3 0 0.000000 0.000000 2.000000 0 0.000000 0.200000 0 L3 0 0.000000 5.800000 0.000000 0 5.800000 4.500000 0 F3 12485242 0.000000 4 5.500000 1.750000 0 6.500000 1.750000 0 6.500000 2.750000 0 5.500000 2.750000 0 L3 0 0.000000 5.500000 1.750000 0 6.500000 1.750000 0 L3 0 0.000000 6.500000 1.750000 0 6.500000 2.750000 0 L3 0 0.000000 6.500000 2.750000 0 5.500000 2.750000 0 L3 0 0.000000 5.500000 2.750000 0 5.500000 1.750000 0 L3 0 0.000000 5.500000 2.250000 0 6.500000 2.250000 0 F3 12485242 0.000000 4 0.500000 4.500000 0 4.500000 4.500000 0 4.500000 6.000000 0 0.500000 6.000000 0 L3 0 0.000000 0.500000 4.500000 0 4.500000 4.500000 0 L3 0 0.000000 4.500000 4.500000 0 4.500000 6.000000 0 L3 0 0.000000 4.500000 6.000000 0 0.500000 6.000000 0 L3 0 0.000000 0.500000 6.000000 0 0.500000 4.500000 0 F3 12485242 0.000000 4 4.500000 4.500000 0 7.000000 4.500000 0 7.000000 7.000000 0 4.500000 7.000000 0 L3 0 0.000000 4.500000 4.500000 0 7.000000 4.500000 0 L3 0 0.000000 7.000000 4.500000 0 7.000000 7.000000 0 L3 0 0.000000 7.000000 7.000000 0 4.500000 7.000000 0 L3 0 0.000000 4.500000 7.000000 0 4.500000 4.500000 0 F3 12485242 0.000000 4 4.000000 2.250000 0 4.700000 2.250000 0 4.700000 2.950000 0 4.000000 2.950000 0 L3 0 0.000000 4.000000 2.250000 0 4.700000 2.250000 0 L3 0 0.000000 4.700000 2.250000 0 4.700000 2.950000 0 L3 0 0.000000 4.700000 2.950000 0 4.000000 2.950000 0 L3 0 0.000000 4.000000 2.950000 0 4.00... [truncated message content] |
From: Martin F. <m_f...@us...> - 2009-09-02 18:34:12
|
Update of /cvsroot/xtrkcad-fork/xtrkcad/app/wlib/mswlib In directory fdv4jf1.ch3.sourceforge.com:/tmp/cvs-serv22532 Modified Files: ChangeLog mswbutt.c mswint.h mswlist.c mswmisc.c Log Message: improve and extend bitmap support Index: mswbutt.c =================================================================== RCS file: /cvsroot/xtrkcad-fork/xtrkcad/app/wlib/mswlib/mswbutt.c,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** mswbutt.c 29 Mar 2008 17:54:29 -0000 1.3 --- mswbutt.c 2 Sep 2009 18:34:03 -0000 1.4 *************** *** 159,171 **** DeleteObject( SelectObject( hButtDc, oldPen ) ); ! if ( disabled ) { ! color1 = GetSysColor( COLOR_BTNSHADOW ); ! color2 = RGB(255,255,255); ! } else { ! color1 = wDrawGetRGB( bm->color ); ! color1 = ((color1>>16)&0x0000FF) | (color1&0x00FF00) | ((color1<<16)&0xFF0000); ! /*color1 = mswGetColor( bm->color );*/ ! color2 = GetSysColor( COLOR_BTNFACE ); ! } if (selected) { --- 159,164 ---- DeleteObject( SelectObject( hButtDc, oldPen ) ); ! color2 = GetSysColor( COLOR_BTNSHADOW ); ! color1 = RGB( bm->colormap[ 1 ].rgbRed, bm->colormap[ 1 ].rgbGreen, bm->colormap[ 1 ].rgbBlue ); if (selected) { Index: ChangeLog =================================================================== RCS file: /cvsroot/xtrkcad-fork/xtrkcad/app/wlib/mswlib/ChangeLog,v retrieving revision 1.28 retrieving revision 1.29 diff -C2 -d -r1.28 -r1.29 *** ChangeLog 16 Aug 2009 13:19:20 -0000 1.28 --- ChangeLog 2 Sep 2009 18:34:03 -0000 1.29 *************** *** 1,2 **** --- 1,8 ---- + Sep 02, 2009 + ENH: Martin Fischer <m_f...@us...> + mswbutt.c, mswint.h, mswlist.c mswmisc.c: + including true + transparency + Aug 16, 2009 ENH: Martin Fischer <m_f...@us...> Index: mswmisc.c =================================================================== RCS file: /cvsroot/xtrkcad-fork/xtrkcad/app/wlib/mswlib/mswmisc.c,v retrieving revision 1.23 retrieving revision 1.24 diff -C2 -d -r1.23 -r1.24 *** mswmisc.c 24 Jul 2009 15:07:53 -0000 1.23 --- mswmisc.c 2 Sep 2009 18:34:03 -0000 1.24 *************** *** 293,351 **** COLORREF color2 ) { ! int i, j; int byt; ! int w=bm->w, h=bm->h; ! const char *byts_p; ! unsigned const char **row_p; ! COLORREF colorMap[256], color; ! if ( bm->type == mswIcon_bitmap ) { ! byts_p = bm->bits; ! for ( j = 0; j < h; j++ ) { ! byt = (0xFF & *byts_p++) | 0x100; ! for ( i = 0; i < w; i++ ) { ! if (byt == 1) ! byt = (0xFF & *byts_p++) | 0x100; ! if ( byt & 0x1 ) { ! SetPixel( hDc, i+offw, j+offh, color1 ); ! if (disabled) ! SetPixel( hDc, i+1+offw, j+1+offh, color2 ); ! } ! byt >>= 1; ! } ! } ! } else if ( bm->type == mswIcon_pixmap ) { ! SetROP2( hDc, R2_COPYPEN ); ! memset( colorMap, 0, sizeof colorMap ); ! for ( i=0; i<bm->colorcnt; i++ ) { ! if( bm->colormap[i].color == 0xFF000000 ) /* color == transparent? */ ! color = GetSysColor( COLOR_BTNFACE ); /* yes, use button face */ ! else ! { ! color = wDrawGetRGB( bm->colormap[i].color ); /* otherwise select color */ ! color = ((color>>16)&0x0000FF) | (color&0x00FF00) | ((color<<16)&0xFF0000); ! } ! colorMap[bm->colormap[i].key] = color; ! } ! row_p = bm->bits; ! for ( j = 0; j < h; j++ ) { ! for ( i = 0; i < w; i++ ) { ! if ( disabled ) { ! color = colorMap[row_p[j][i]]; ! /* convert plain black to a dark grey to take care of simple shapes */ ! if( !color ) ! color = 0x00666666; ! byt = (GetRValue( color ) + GetGValue( color ) + GetBValue( color ))/3; ! ! color = RGB( byt, byt, byt ); ! SetPixel( hDc, i+offw, j+offh, color ); ! } else { ! SetPixel( hDc, i+offw, j+offh, colorMap[row_p[j][i]] ); ! } ! } ! } } else { ! abort(); } } --- 293,390 ---- COLORREF color2 ) { ! int i; int byt; ! BITMAPINFO *bmiInfo; ! COLORREF col; ! /* draw the bitmap by dynamically creating a Windows DIB in memory */ ! ! bmiInfo = malloc( sizeof( BITMAPINFO ) + (bm->colorcnt - 1) * sizeof( RGBQUAD )); ! if( !bmiInfo ) { ! fprintf( stderr, "could not allocate memory for bmiInfo\n" ); ! abort(); ! } ! ! /* initialize bitmap header from XPM information */ ! bmiInfo->bmiHeader.biSize = sizeof( bmiInfo->bmiHeader ); ! bmiInfo->bmiHeader.biWidth = bm->w; ! bmiInfo->bmiHeader.biHeight = bm->h; ! bmiInfo->bmiHeader.biPlanes = 1; ! if( bm->type == mswIcon_bitmap ) ! bmiInfo->bmiHeader.biBitCount = 1; ! else ! bmiInfo->bmiHeader.biBitCount = 8; /* up to 256 colors */ ! bmiInfo->bmiHeader.biCompression = BI_RGB; /* no compression */ ! bmiInfo->bmiHeader.biSizeImage = 0; ! bmiInfo->bmiHeader.biXPelsPerMeter = 0; ! bmiInfo->bmiHeader.biYPelsPerMeter = 0; ! bmiInfo->bmiHeader.biClrUsed = bm->colorcnt; /* number of colors used */ ! bmiInfo->bmiHeader.biClrImportant = bm->colorcnt; ! ! /* ! * create a transparency mask and paint to screen ! */ ! if( bm->type == mswIcon_bitmap ) { ! memset( &bmiInfo->bmiColors[ 0 ], 0xFF, sizeof( RGBQUAD )); ! memset( &bmiInfo->bmiColors[ 1 ], 0, sizeof( RGBQUAD )); } else { ! memset( bmiInfo->bmiColors, 0, bm->colorcnt * sizeof( RGBQUAD )); ! memset( &bmiInfo->bmiColors[ bm->transparent ], 0xFF, sizeof( RGBQUAD )); } + StretchDIBits(hDc, offw, offh, + bmiInfo->bmiHeader.biWidth, + bmiInfo->bmiHeader.biHeight, + 0, 0, + bmiInfo->bmiHeader.biWidth, + bmiInfo->bmiHeader.biHeight, + bm->pixels, bmiInfo, + DIB_RGB_COLORS, SRCAND); + + /* now paint the bitmap with transparent set to black */ + if( bm->type == mswIcon_bitmap ) { + if( disabled ) { + col = color2; + } else { + col = color1; + } + memset( &bmiInfo->bmiColors[ 0 ], 0, sizeof( RGBQUAD )); + bmiInfo->bmiColors[ 1 ].rgbRed = GetRValue( col ); + bmiInfo->bmiColors[ 1 ].rgbGreen = GetGValue( col ); + bmiInfo->bmiColors[ 1 ].rgbBlue = GetBValue( col ); + } else { + if( disabled ) { + /* create a gray scale palette */ + for( i = 0; i < bm->colorcnt; i ++ ) { + byt = ( 30 * bm->colormap[ i ].rgbRed + + 59 * bm->colormap[ i ].rgbGreen + + 11 * bm->colormap[ i ].rgbBlue )/100; + + /* if totally black, use a dark gray */ + if( byt == 0 ) + byt = 0x66; + + bmiInfo->bmiColors[ i ].rgbRed = byt; + bmiInfo->bmiColors[ i ].rgbGreen = byt; + bmiInfo->bmiColors[ i ].rgbBlue = byt; + } + } else { + /* copy the palette */ + memcpy( (void *)bmiInfo->bmiColors, (void *)bm->colormap, bm->colorcnt * sizeof( RGBQUAD )); + } + memset( &bmiInfo->bmiColors[ bm->transparent ], 0, sizeof( RGBQUAD )); + } + + /* show the bitmap */ + StretchDIBits(hDc, offw, offh, + bmiInfo->bmiHeader.biWidth, + bmiInfo->bmiHeader.biHeight, + 0, 0, + bmiInfo->bmiHeader.biWidth, + bmiInfo->bmiHeader.biHeight, + bm->pixels, bmiInfo, + DIB_RGB_COLORS, SRCPAINT); + + /* forget the data */ + free( bmiInfo ); } *************** *** 1353,1371 **** } wIcon_p wIconCreateBitMap( wPos_t w, wPos_t h, const char * bits, wDrawColor color ) { wIcon_p ip; ip = (wIcon_p)malloc( sizeof *ip ); ip->type = mswIcon_bitmap; ip->w = w; ip->h = h; ! ip->color = color; ! ip->bits = bits; return ip; } /** ! * Load a pixmap. This functions interprets a XPM icon contained in a * char array. Supported format are one or two byte per pixel and #rrggbb * or #rrrrggggbbbb color specification. Color 'None' is interpreted as --- 1392,1475 ---- } + /** + * Create a two color bitmap. This creates a two color icon. Pixels set to 1 are painted + * in the specified color, pixels set to 0 are transparent + * in order to convert the format, a lot of bit fiddling is necessary. The order of + * scanlines needs to be reversed and the bit order (high order - low order) is reversed + * as well. + * \param w IN width in pixels + * \param h IN height in pixels + * \param bits IN pixel data + * \param color IN color for foreground + * \return pointer to icon + */ wIcon_p wIconCreateBitMap( wPos_t w, wPos_t h, const char * bits, wDrawColor color ) { + int lineLength; + int i, j; + unsigned char *dest; + static unsigned char revbits[] = { 0, 0x08, 0x04, 0x0C, 0x02, 0x0A, 0x06, 0x0E, 0x01, 0x09, 0x05, 0x0D, 0x03, 0x0B, 0x07, 0x0F }; + unsigned long col = wDrawGetRGB( color ); + wIcon_p ip; ip = (wIcon_p)malloc( sizeof *ip ); + if( !ip ) { + fprintf( stderr, "Couldn't allocate memory for bitmap header.\n" ); + abort(); + } + + memset( ip, 0, sizeof *ip ); ip->type = mswIcon_bitmap; ip->w = w; ip->h = h; ! ip->colorcnt = 2; ! ! /* set up our two color palette */ ! ip->colormap = malloc( 2 * sizeof( RGBQUAD )); ! ! ip->colormap[ 1 ].rgbBlue = col & 0xFF; ! ip->colormap[ 1 ].rgbRed = (col>>16) & 0xFF; ! ip->colormap[ 1 ].rgbGreen = (col>>8) & 0xFF; ! ip->colormap[ 1 ].rgbReserved = 0; ! ! color = GetSysColor( COLOR_BTNFACE ); ! ip->colormap[ 0 ].rgbBlue = GetBValue( color ); ! ip->colormap[ 0 ].rgbRed = GetRValue( color ); ! ip->colormap[ 0 ].rgbGreen = GetGValue( color ); ! ip->colormap[ 0 ].rgbReserved = 0; ! ! lineLength = (((( ip->w + 7 ) / 8 ) + 3 ) >> 2 ) << 2; ! ip->pixels = malloc( lineLength * ip->h ); ! if( !ip->pixels ) { ! fprintf( stderr, "Couldn't allocate memory for pixel data.\n" ); ! abort(); ! } ! ! /* ! * copy the bits from source to the buffer, at this time the order of ! * scanlines is reversed by starting with the last source line. ! */ ! for( i = 0; i < ip->h; i++ ) { ! dest = ip->pixels + i * lineLength; ! memcpy( dest, bits + ( ip->h - i - 1 ) * (( ip->w + 7) / 8), ( ip->w + 7 ) / 8 ); ! ! /* ! * and now, the bit order is changed, this is done via a lookup table ! */ ! for( j = 0; j < lineLength; j++ ) ! { ! unsigned byte = dest[ j ]; ! unsigned low = byte & 0x0F; ! unsigned high = (byte & 0xF0) >> 4; ! dest[ j ] = revbits[ low ]<<4 | revbits[ high ]; ! } ! } ! return ip; } /** ! * Create a pixmap. This functions interprets a XPM icon contained in a * char array. Supported format are one or two byte per pixel and #rrggbb * or #rrrrggggbbbb color specification. Color 'None' is interpreted as *************** *** 1376,1407 **** */ ! wIcon_p wIconCreatePixMap( char *pm[] ) { wIcon_p ip; int col, r, g, b, len; ! long rgb; char buff[3]; char * cp, * cq, * ptr; ip = (wIcon_p)malloc( sizeof *ip ); memset( ip, 0, sizeof *ip ); cp = pm[0]; ! ip->type = mswIcon_pixmap; ! ip->w = (int)strtol(cp, &cq, 10 ); /* width of image */ ! ip->h = (int)strtol(cq, &cp, 10 ); /* height of image */ ! ip->colorcnt = (int)strtol(cp, &cq, 10 ); /* number of colors used */ ! ip->numchars = (int)strtol(cq, &cp, 10 ); /* get number of chars per pixel */ ! ip->colormap = (wIconColorMap_t*)malloc( ip->colorcnt * sizeof ip->colormap[0] ); ! for ( col=0; col<ip->colorcnt; col++ ) { ptr = strdup( pm[col+1] ); /* create duplicate for input string*/ ! if( ip->numchars == 1 ) ! ip->colormap[col].key = (unsigned)ptr[0]; ! else if( ip->numchars == 2 ) ! ip->colormap[col].key = ((unsigned *)ptr)[ 0 ]; ! cp = strtok( ptr + ip->numchars, "\t " ); /* cp points to color type */ assert( *cp == 'c' ); /* should always be color */ --- 1480,1530 ---- */ ! wIcon_p wIconCreatePixMap( char *pm[]) { wIcon_p ip; int col, r, g, b, len; ! int width, height; char buff[3]; char * cp, * cq, * ptr; + int i, j, k; + int lineLength; + unsigned *keys; + unsigned numchars; + unsigned pixel; ip = (wIcon_p)malloc( sizeof *ip ); + if( !ip ) { + fprintf( stderr, "Couldn't allocate memory for bitmap header.\n" ); + abort(); + } + memset( ip, 0, sizeof *ip ); + ip->type = mswIcon_pixmap; + + /* extract values */ cp = pm[0]; + width = (int)strtol(cp, &cq, 10 ); /* width of image */ + height = (int)strtol(cq, &cq, 10 ); /* height of image */ + col = (int)strtol(cq, &cq, 10 ); /* number of colors used */ + numchars = (int)strtol(cq, &cq, 10 ); /* get number of chars per pixel */ ! ip->colormap = malloc( col * sizeof( RGBQUAD )); ! ip->w = width; ! ip->h = height; ! ip->colorcnt = col; /* number of colors used */ ! keys = malloc( sizeof( unsigned ) * col ); ! ! for ( col=0; col<(int)ip->colorcnt; col++ ) { ptr = strdup( pm[col+1] ); /* create duplicate for input string*/ ! if( numchars == 1 ) { ! keys[ col ] = (unsigned)ptr[0]; ! } ! else if( numchars == 2 ) { ! keys[ col ] = (unsigned) ( ptr[ 0 ] + ptr[ 1 ] * 256 ); ! } ! cp = strtok( ptr + numchars, "\t " ); /* cp points to color type */ assert( *cp == 'c' ); /* should always be color */ *************** *** 1419,1427 **** b = (int)strtol(buff, &cq, 16); ! rgb = wRGB( r, g, b ); ! ip->colormap[col].color = wDrawFindColor( rgb ); } else { ! if( !stricmp( cp, "none" )) /* special case transparency*/ ! ip->colormap[col].color = 0xFF000000; else assert( *cp == '#' ); /* if no, abort for the moment */ --- 1542,1554 ---- b = (int)strtol(buff, &cq, 16); ! ip->colormap[ col ].rgbBlue = b; ! ip->colormap[ col ].rgbGreen = g; ! ip->colormap[ col ].rgbRed = r; ! ip->colormap[ col ].rgbReserved = 0; ! } else { ! if( !stricmp( cp, "none" )) { /* special case transparency*/ ! ip->transparent = col; ! } else assert( *cp == '#' ); /* if no, abort for the moment */ *************** *** 1429,1434 **** free( ptr ); } ! ip->color = 0; ! ip->bits = &pm[1+ip->colorcnt]; return ip; } --- 1556,1602 ---- free( ptr ); } ! ! /* get memory for the pixel data */ ! /* dword align begin of line */ ! lineLength = ((ip->w + 3 ) >> 2 ) << 2; ! ip->pixels = malloc( lineLength * ip->h ); ! if( !ip->pixels ) { ! fprintf( stderr, "Couldn't allocate memory for pixel data.\n" ); ! abort(); ! } ! ! /* ! convert the XPM pixel data to indexes into color table ! at the same time the order of rows is reversed ! Win32 should be able to do that but I couldn't find out ! how, so this is coded by hand. ! */ ! ! /* for all rows */ ! for( i = 0; i < ip->h; i++ ) { ! ! cq = ip->pixels + lineLength * i; ! /* get the next row */ ! cp = pm[ ip->h - i + ip->colorcnt ]; ! /* for all pixels in row */ ! for( j = 0; j < ip->w; j++ ) { ! /* get the pixel info */ ! if( numchars == 1 ) ! pixel = ( unsigned )*cp; ! else ! pixel = (unsigned) (*cp + *(cp+1)*256); ! cp += numchars; ! ! /* look up pixel info in color table */ ! k = 0; ! while( pixel != keys[ k ] ) ! k++; ! ! /* save the index into color table */ ! *(cq + j) = k; ! } ! } ! free( keys ); ! return ip; } *************** *** 1436,1440 **** void wIconSetColor( wIcon_p ip, wDrawColor color ) { ! ip->color = color; } --- 1604,1614 ---- void wIconSetColor( wIcon_p ip, wDrawColor color ) { ! unsigned long col = wDrawGetRGB( color ); ! ! if( ip->type == mswIcon_bitmap ) { ! ip->colormap[ 1 ].rgbBlue = col & 0xFF; ! ip->colormap[ 1 ].rgbRed = (col>>16) & 0xFF; ! ip->colormap[ 1 ].rgbGreen = (col>>8) & 0xFF; ! } } Index: mswint.h =================================================================== RCS file: /cvsroot/xtrkcad-fork/xtrkcad/app/wlib/mswlib/mswint.h,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** mswint.h 16 Aug 2009 13:19:20 -0000 1.6 --- mswint.h 2 Sep 2009 18:34:03 -0000 1.7 *************** *** 102,105 **** --- 102,106 ---- #define mswIcon_bitmap (1) #define mswIcon_pixmap (2) + struct wIcon_t { int type; *************** *** 108,114 **** wDrawColor color; int colorcnt; /**< number of colors */ ! int numchars; /**< number of chars per pixel */ ! wIconColorMap_t *colormap; ! const void * bits; /**< pointer to pixel information */ }; --- 109,115 ---- wDrawColor color; int colorcnt; /**< number of colors */ ! RGBQUAD *colormap; ! char *pixels; /**< pointer to pixel information */ ! int transparent; /**< index of transparent color */ }; Index: mswlist.c =================================================================== RCS file: /cvsroot/xtrkcad-fork/xtrkcad/app/wlib/mswlib/mswlist.c,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** mswlist.c 14 Jan 2007 08:43:32 -0000 1.2 --- mswlist.c 2 Sep 2009 18:34:03 -0000 1.3 *************** *** 567,570 **** --- 567,571 ---- HBRUSH hBrush; WPARAM notification; + COLORREF col; if (bl) switch( message ) { *************** *** 744,748 **** DeleteObject( SelectObject( lpdis->hDC, hPen ) ); DeleteObject( SelectObject( lpdis->hDC, hBrush ) ); ! mswDrawIcon( lpdis->hDC, rc1.left+2, rc.top+0, ldp->bm, 0, mswGetColor( mswPalette!=NULL, ldp->bm->color ), mswGetColor( mswPalette!=NULL, ldp->bm->color ) ); rc1.left += ldp->bm->w+6; colWidth -= ldp->bm->w+6; --- 745,754 ---- DeleteObject( SelectObject( lpdis->hDC, hPen ) ); DeleteObject( SelectObject( lpdis->hDC, hBrush ) ); ! ! col = RGB( (ldp->bm->colormap[ 1 ]).rgbRed, ! (ldp->bm->colormap[ 1 ]).rgbGreen, ! (ldp->bm->colormap[ 1 ]).rgbBlue ); ! mswDrawIcon( lpdis->hDC, rc1.left+2, rc.top+0, ldp->bm, 0, col, col); ! rc1.left += ldp->bm->w+6; colWidth -= ldp->bm->w+6; |
From: Martin F. <m_f...@us...> - 2009-08-16 13:26:51
|
Update of /cvsroot/xtrkcad-fork/xtrkcad/app/bin In directory fdv4jf1.ch3.sourceforge.com:/tmp/cvs-serv2349 Modified Files: CMakeLists.txt ChangeLog cprint.c denum.c i18n.c i18n.h misc.c Log Message: Improve internationalization support, use simple gettext on Win32 Index: i18n.h =================================================================== RCS file: /cvsroot/xtrkcad-fork/xtrkcad/app/bin/i18n.h,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** i18n.h 18 Jan 2008 03:11:51 -0000 1.2 --- i18n.h 16 Aug 2009 13:26:41 -0000 1.3 *************** *** 21,36 **** #ifdef XTRKCAD_USE_GETTEXT /* Use gettext */ ! #include <libintl.h> ! #include <string.h> - #define _(String) ((String && strlen(String) > 0) \ - ? gettext(String) : String) - #define gettext_noop(String) String - #define N_(String) gettext_noop(String) #else ! /* Don't use gettext */ ! #define _(String) String ! #define gettext_noop(String) String ! #define N_(String) String #endif /* XTRKCAD_USE_GETTEXT */ --- 21,40 ---- #ifdef XTRKCAD_USE_GETTEXT /* Use gettext */ ! #ifndef USE_SIMPLE_GETTEXT ! #include <libintl.h> ! #endif ! ! #include <string.h> ! ! #define _(String) ((String && strlen(String) > 0) \ ! ? gettext(String) : String) ! #define gettext_noop(String) String ! #define N_(String) gettext_noop(String) #else ! /* Don't use gettext */ ! #define _(String) String ! #define gettext_noop(String) String ! #define N_(String) String #endif /* XTRKCAD_USE_GETTEXT */ Index: denum.c =================================================================== RCS file: /cvsroot/xtrkcad-fork/xtrkcad/app/bin/denum.c,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** denum.c 9 Jul 2009 18:29:42 -0000 1.3 --- denum.c 16 Aug 2009 13:26:41 -0000 1.4 *************** *** 107,111 **** char * cp; int len; ! sprintf( message, "%5ld | %s\n", count, desc ); if (enableListPrices) { cp = message + strlen( message )-1; --- 107,111 ---- char * cp; int len; ! sprintf( message, "%*ld | %s\n", strlen(_("Count")), count, desc ); if (enableListPrices) { cp = message + strlen( message )-1; *************** *** 115,122 **** cp += len; if (price > 0.0) { ! sprintf( cp, " |%7.2f |%9.2f\n", price, price*count ); enumerateTotal += price*count; } else { ! sprintf( cp, " | |\n" ); } } --- 115,122 ---- cp += len; if (price > 0.0) { ! sprintf( cp, " | %7.2f |%9.2f\n", price, price*count ); enumerateTotal += price*count; } else { ! sprintf( cp, " | %-*s |\n", max( 7, strlen( _("Each"))), " " ); } } *************** *** 127,132 **** { time_t clock; ! int len; char * cp; if (enumW == NULL) { ParamRegister( &enumPG ); --- 127,133 ---- { time_t clock; ! struct tm *tm; char * cp; + if (enumW == NULL) { ParamRegister( &enumPG ); *************** *** 137,141 **** wTextClear( enumT ); ! sprintf( message, "%s Parts List\n\n", sProdName); wTextAppend( enumT, message ); --- 138,142 ---- wTextClear( enumT ); ! sprintf( message, _("%s Parts List\n\n"), sProdName); wTextAppend( enumT, message ); *************** *** 159,193 **** time(&clock); ! /* tm = localtime(&clock); ! strftime( dat, sizeof dat, "%a %y %b %d", tm );*/ ! sprintf( message, "%s\n", ctime(&clock) ); wTextAppend( enumT, message ); enumerateTotal = 0.0; ! if (enableListPrices) { ! sprintf( message, "Count | Description" ); ! cp = message + strlen( message ); ! len = enumerateMaxDescLen-strlen( "Description"); ! memset( cp, ' ', len ); ! cp += len; ! sprintf( cp, " | Each | Extended\n" ); ! } else { ! sprintf( message, "Count | Description\n" ); ! } ! wTextAppend( enumT, message ); ! sprintf( message, "------+"); ! cp = message+strlen(message); ! memset( cp, '-', enumerateMaxDescLen+2 ); ! if (enableListPrices) ! strcpy( cp+enumerateMaxDescLen+2, "+--------+----------\n"); ! else { ! *(cp+enumerateMaxDescLen+2) = '\n'; ! *(cp+enumerateMaxDescLen+3) = '\0'; ! } wTextAppend( enumT, message ); } void EnumerateEnd(void) --- 160,194 ---- time(&clock); ! tm = localtime(&clock); ! strftime( message, STR_LONG_SIZE, "%x\n", tm ); wTextAppend( enumT, message ); enumerateTotal = 0.0; ! if( strlen( _("Description")) > (unsigned)enumerateMaxDescLen ) ! enumerateMaxDescLen = strlen( _("Description" )); ! /* create the table header */ ! sprintf( message, "%s | %-*s", _("Count"), enumerateMaxDescLen, _("Description")); ! ! if( enableListPrices ) ! sprintf( message+strlen(message), " | %-*s | %-*s\n", max( 7, strlen( _("Each"))), _("Each"), max( 9, strlen(_("Extended"))), _("Extended")); ! else ! strcat( message, "\n" ); wTextAppend( enumT, message ); + /* underline the header */ + cp = message; + while( *cp && *cp != '\n' ) + if( *cp == '|' ) + *cp++ = '+'; + else + *cp++ = '-'; + + wTextAppend( enumT, message ); } + /** + * End of parts list. Print the footer line and the totals if necessary. + */ void EnumerateEnd(void) *************** *** 196,205 **** char * cp; ScaleLengthEnd(); ! sprintf( message, "------+" ); cp = message+strlen(message); memset( cp, '-', enumerateMaxDescLen+2 ); ! if (enableListPrices) ! strcpy( cp+enumerateMaxDescLen+2, "+--------+----------\n"); ! else { *(cp+enumerateMaxDescLen+2) = '\n'; *(cp+enumerateMaxDescLen+3) = '\0'; --- 197,212 ---- char * cp; ScaleLengthEnd(); ! ! memset( message, '\0', STR_LONG_SIZE ); ! memset( message, '-', strlen(_("Count")) + 1 ); ! strcpy( message + strlen(_("Count")) + 1, "+"); cp = message+strlen(message); memset( cp, '-', enumerateMaxDescLen+2 ); ! if (enableListPrices){ ! strcpy( cp+enumerateMaxDescLen+2, "+-" ); ! memset( cp+enumerateMaxDescLen+4, '-', max( 7, strlen( _("Each")))); ! strcat( cp, "-+-"); ! memset( message+strlen( message ), '-', max( 9, strlen(_("Extended")))); ! } else { *(cp+enumerateMaxDescLen+2) = '\n'; *(cp+enumerateMaxDescLen+3) = '\0'; *************** *** 208,215 **** if (enableListPrices) { ! len = enumerateMaxDescLen-strlen( "Total"); ! memset ( message, ' ', len+1 ); ! cp = message+len+1; ! sprintf( cp, " Total |%9.2f\n", enumerateTotal ); wTextAppend( enumT, message ); } --- 215,222 ---- if (enableListPrices) { ! len = strlen( message ) - strlen( _("Total")) - max( 9, strlen(_("Extended"))) + 2 ; ! memset ( message, ' ', len ); ! cp = message+len; ! sprintf( cp, ("%s |%9.2f\n"), _("Total"), enumerateTotal ); wTextAppend( enumT, message ); } Index: ChangeLog =================================================================== RCS file: /cvsroot/xtrkcad-fork/xtrkcad/app/bin/ChangeLog,v retrieving revision 1.75 retrieving revision 1.76 diff -C2 -d -r1.75 -r1.76 *** ChangeLog 30 Jul 2009 16:58:42 -0000 1.75 --- ChangeLog 16 Aug 2009 13:26:41 -0000 1.76 *************** *** 1,2 **** --- 1,11 ---- + Aug 16, 2009 + FIX: Martin Fischer <m_f...@us...> + CMakeLists.txt cprint.c denum.c i18n.c i18n.h misc.c + Improve internationalization support, use simple gettext on Win32 + + Aug 16, 2009 + FIX: Martin Fischer <m_f...@us...> + custom.c cturnout.c: Code cleanup + Jul 30, 2009 FIX: Martin Fischer <m_f...@us...> Index: i18n.c =================================================================== RCS file: /cvsroot/xtrkcad-fork/xtrkcad/app/bin/i18n.c,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** i18n.c 18 Jan 2008 03:11:51 -0000 1.2 --- i18n.c 16 Aug 2009 13:26:41 -0000 1.3 *************** *** 18,21 **** --- 18,22 ---- #include "i18n.h" + #include "wlib.h" #include <locale.h> Index: misc.c =================================================================== RCS file: /cvsroot/xtrkcad-fork/xtrkcad/app/bin/misc.c,v retrieving revision 1.44 retrieving revision 1.45 diff -C2 -d -r1.44 -r1.45 *** misc.c 24 Jul 2009 15:07:52 -0000 1.44 --- misc.c 16 Aug 2009 13:26:41 -0000 1.45 *************** *** 2038,2041 **** --- 2038,2042 ---- #include "bitmaps/document-save.xpm" #include "bitmaps/document-open.xpm" + #include "bitmaps/document-print.xpm" static void CreateMenus( void ) *************** *** 2092,2095 **** --- 2093,2097 ---- AddToolbarButton( "menuFile-load", wIconCreatePixMap(document_open), IC_MODETRAIN_TOO, (addButtonCallBack_t)ChkLoad, NULL ); AddToolbarButton( "menuFile-save", wIconCreatePixMap(document_save), IC_MODETRAIN_TOO, (addButtonCallBack_t)DoSave, NULL ); + // AddToolbarButton( "menuFile-print", wIconCreatePixMap(document_print_xpm), IC_MODETRAIN_TOO, (addButtonCallBack_t)DoPrint, NULL ); cmdGroup = BG_ZOOM; *************** *** 2328,2332 **** wMenuSeparatorCreate( manageM ); ! InitNewTurnRedir( wMenuMenuCreate( manageM, "cmdTurnoutNew", _("Tur&nout Designer...") ) ); MiscMenuItemCreate( manageM, NULL, "cmdGroup", _("&Group"), ACCL_GROUP, (void*)(wMenuCallBack_p)DoGroup, IC_SELECTED, (void *)0 ); --- 2330,2334 ---- wMenuSeparatorCreate( manageM ); ! InitNewTurn( wMenuMenuCreate( manageM, "cmdTurnoutNew", _("Tur&nout Designer...") ) ); MiscMenuItemCreate( manageM, NULL, "cmdGroup", _("&Group"), ACCL_GROUP, (void*)(wMenuCallBack_p)DoGroup, IC_SELECTED, (void *)0 ); Index: CMakeLists.txt =================================================================== RCS file: /cvsroot/xtrkcad-fork/xtrkcad/app/bin/CMakeLists.txt,v retrieving revision 1.13 retrieving revision 1.14 diff -C2 -d -r1.13 -r1.14 *** CMakeLists.txt 8 Jul 2009 18:40:27 -0000 1.13 --- CMakeLists.txt 16 Aug 2009 13:26:41 -0000 1.14 *************** *** 49,57 **** # IF(WIN32) ! GET_FILENAME_COMPONENT( GETTEXTPATH ! [HKEY_LOCAL_MACHINE\\SOFTWARE\\GnuWin32;InstallPath] ! ABSOLUTE) ! INCLUDE_DIRECTORIES(${GETTEXTPATH}/include) ! LINK_DIRECTORIES(${GETTEXTPATH}/lib) ENDIF(WIN32) ELSE(XTRKCAD_USE_GETTEXT) --- 49,53 ---- # IF(WIN32) ! ADD_DEFINITIONS(-DUSE_SIMPLE_GETTEXT ) ENDIF(WIN32) ELSE(XTRKCAD_USE_GETTEXT) *************** *** 148,155 **** TARGET_LINK_LIBRARIES(xtrkcad xtrkcad-wlib) - IF(WIN32 AND XTRKCAD_USE_GETTEXT) - SET_TARGET_PROPERTIES( xtrkcad PROPERTIES LINK_FLAGS "libintl.lib") - ENDIF(WIN32 AND XTRKCAD_USE_GETTEXT) - ADD_EXECUTABLE(mkturnout ${LIN_SOURCES} --- 144,147 ---- Index: cprint.c =================================================================== RCS file: /cvsroot/xtrkcad-fork/xtrkcad/app/bin/cprint.c,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** cprint.c 3 Feb 2008 08:52:31 -0000 1.5 --- cprint.c 16 Aug 2009 13:26:41 -0000 1.6 *************** *** 1,7 **** ! /* ! * $Header$ ! * ! * PRINT * */ --- 1,6 ---- ! /** \file cprint.c ! * Printing functions. * + * $Header$ */ *************** *** 326,329 **** --- 325,335 ---- + /** + * Print the basic layout for a trackplan. This includes the frame and some + * information like room size, print scale etc.. + * + * \param roomSize IN size of the layout + */ + static void PrintGaudyBox( coOrd roomSize ) *************** *** 341,345 **** time(&clock); tm = localtime(&clock); - /* strftime( dat, sizeof dat, "%a %y %b %d", tm ); */ strftime( dat, STR_SIZE, "%x", tm ); --- 347,350 ---- *************** *** 380,385 **** DrawString( &page_d, p00, 0.0, dat, fp, 16.0, wDrawColorBlack ); p00.y = 0.5+0.05; - /*DrawString( &page_d, p00, - 0.0, (regName[0]?regName:"UNREGISTERED"), fp, 16.0, wDrawColorBlack );*/ DrawTextSize( &mainD, Title1, fp, 16.0, FALSE, &textsize ); --- 385,388 ---- *************** *** 1177,1181 **** } - EXPORT wIndex_t InitCmdPrint( wMenu_p menu ) { --- 1180,1183 ---- |