[mapserver-commits] r7270 - trunk/mapserver
svn at osgeo.org
svn at osgeo.org
Thu Jan 17 02:21:39 EST 2008
Author: sdlime
Date: 2008-01-17 02:21:36 -0500 (Thu, 17 Jan 2008)
New Revision: 7270
Modified:
trunk/mapserver/mapcopy.c
trunk/mapserver/mapfile.c
trunk/mapserver/mapfile.h
trunk/mapserver/maplexer.l
trunk/mapserver/mapscale.c
trunk/mapserver/mapserver.h
Log:
Added ALIGN keyword to scalebar object. (bug #2468)
Modified: trunk/mapserver/mapcopy.c
===================================================================
--- trunk/mapserver/mapcopy.c 2008-01-16 07:58:05 UTC (rev 7269)
+++ trunk/mapserver/mapcopy.c 2008-01-17 07:21:36 UTC (rev 7270)
@@ -656,6 +656,7 @@
MS_COPYSTELEM(transparent);
MS_COPYSTELEM(interlace);
MS_COPYSTELEM(postlabelcache);
+ MS_COPYSTELEM(align);
return MS_SUCCESS;
}
Modified: trunk/mapserver/mapfile.c
===================================================================
--- trunk/mapserver/mapfile.c 2008-01-16 07:58:05 UTC (rev 7269)
+++ trunk/mapserver/mapfile.c 2008-01-17 07:21:36 UTC (rev 7270)
@@ -76,6 +76,7 @@
static char *msTrueFalse[2]={"FALSE", "TRUE"};
/* static char *msYesNo[2]={"NO", "YES"}; */
static char *msJoinType[2]={"ONE-TO-ONE", "ONE-TO-MANY"};
+static char *msAlignValue[3]={"LEFT","CENTER","RIGHT"};
int msEvalRegex(char *e, char *s) {
ms_regex_t re;
@@ -3538,6 +3539,7 @@
scalebar->transparent = MS_NOOVERRIDE; /* no transparency */
scalebar->interlace = MS_NOOVERRIDE;
scalebar->postlabelcache = MS_FALSE; /* draw with labels */
+ scalebar->align = MS_ALIGN_CENTER;
}
void freeScalebar(scalebarObj *scalebar) {
@@ -3548,6 +3550,9 @@
{
for(;;) {
switch(msyylex()) {
+ case(ALIGN):
+ if((scalebar->align = getSymbol(3, MS_ALIGN_LEFT,MS_ALIGN_CENTER,MS_ALIGN_RIGHT)) == -1) return(-1);
+ break;
case(BACKGROUNDCOLOR):
if(loadColor(&(scalebar->backgroundcolor), NULL) != MS_SUCCESS) return(-1);
break;
@@ -3645,6 +3650,7 @@
static void writeScalebar(scalebarObj *scalebar, FILE *stream)
{
fprintf(stream, " SCALEBAR\n");
+ fprintf(stream, " ALIGN %s\n", msAlignValue[scalebar->align]);
writeColor(&(scalebar->backgroundcolor), stream, "BACKGROUNDCOLOR", " ");
writeColor(&(scalebar->color), stream, "COLOR", " ");
writeColor(&(scalebar->imagecolor), stream, "IMAGECOLOR", " ");
Modified: trunk/mapserver/mapfile.h
===================================================================
--- trunk/mapserver/mapfile.h 2008-01-16 07:58:05 UTC (rev 7269)
+++ trunk/mapserver/mapfile.h 2008-01-17 07:21:36 UTC (rev 7270)
@@ -235,4 +235,6 @@
#define CLASSGROUP 1202
+#define ALIGN 1203 /* bug 2468 */
+
#endif /* MAPFILE_H */
Modified: trunk/mapserver/maplexer.l
===================================================================
--- trunk/mapserver/maplexer.l 2008-01-16 07:58:05 UTC (rev 7269)
+++ trunk/mapserver/maplexer.l 2008-01-17 07:21:36 UTC (rev 7270)
@@ -134,6 +134,7 @@
<INITIAL>datarange { return(DATARANGE); }
<INITIAL>rangeitem { return(RANGEITEM); }
+<INITIAL,URL_STRING>align { return(ALIGN); }
<INITIAL>alphacolor { return(ALPHACOLOR); }
<INITIAL,URL_VARIABLE,URL_STRING>angle { return(ANGLE); }
<INITIAL,URL_STRING>antialias { return(ANTIALIAS); }
@@ -306,6 +307,7 @@
<INITIAL>butt { return(MS_CJC_BUTT); }
<INITIAL>cartoline { return(MS_SYMBOL_CARTOLINE); }
<INITIAL,URL_STRING>cc { return(MS_CC); }
+<INITIAL,URL_STRING>center { return(MS_ALIGN_CENTER); }
<INITIAL>chart { return(MS_LAYER_CHART); }
<INITIAL>circle { return(MS_LAYER_CIRCLE); }
<INITIAL,URL_STRING>cl { return(MS_CL); }
@@ -327,6 +329,7 @@
<INITIAL,URL_STRING>kilometers { return(MS_KILOMETERS); }
<INITIAL>large { return(MS_LARGE); }
<INITIAL,URL_STRING>lc { return(MS_LC); }
+<INITIAL,URL_STRING>left { return(MS_ALIGN_LEFT); }
<INITIAL>line { return(MS_LAYER_LINE); }
<INITIAL,URL_STRING>ll { return(MS_LL); }
<INITIAL,URL_STRING>lr { return(MS_LR); }
@@ -353,6 +356,7 @@
<INITIAL>plugin { return(MS_PLUGIN); }
<INITIAL>query { return(MS_LAYER_QUERY); }
<INITIAL>raster { return(MS_LAYER_RASTER); }
+<INITIAL,URL_STRING>right { return(MS_ALIGN_RIGHT); }
<INITIAL>round { return(MS_CJC_ROUND); }
<INITIAL>sde { return(MS_SDE); }
<INITIAL>selected { return(MS_SELECTED); }
Modified: trunk/mapserver/mapscale.c
===================================================================
--- trunk/mapserver/mapscale.c 2008-01-16 07:58:05 UTC (rev 7269)
+++ trunk/mapserver/mapscale.c 2008-01-17 07:21:36 UTC (rev 7270)
@@ -275,7 +275,16 @@
if (map->outputformat->imagemode == MS_IMAGEMODE_RGB || map->outputformat->imagemode == MS_IMAGEMODE_RGBA) gdImageAlphaBlending(image->img.gd, 1);
- ox = MS_NINT((map->scalebar.width - sx)/2.0 + fontPtr->w/2.0); /* center the computed scalebar */
+ switch(map->scalebar.align) {
+ case(MS_ALIGN_LEFT):
+ ox = HMARGIN;
+ break;
+ case(MS_ALIGN_RIGHT):
+ ox = MS_NINT((map->scalebar.width - sx) + fontPtr->w);
+ break;
+ default:
+ ox = MS_NINT((map->scalebar.width - sx)/2.0 + fontPtr->w/2.0); /* center the computed scalebar */
+ }
oy = VMARGIN;
/* turn RGB colors into indexed values */
Modified: trunk/mapserver/mapserver.h
===================================================================
--- trunk/mapserver/mapserver.h 2008-01-16 07:58:05 UTC (rev 7269)
+++ trunk/mapserver/mapserver.h 2008-01-17 07:21:36 UTC (rev 7270)
@@ -342,6 +342,8 @@
enum MS_JOIN_CONNECTION_TYPE {MS_DB_XBASE, MS_DB_CSV, MS_DB_MYSQL, MS_DB_ORACLE, MS_DB_POSTGRES};
enum MS_JOIN_TYPE {MS_JOIN_ONE_TO_ONE, MS_JOIN_ONE_TO_MANY};
+enum MS_ALIGN_VALUE {MS_ALIGN_LEFT, MS_ALIGN_CENTER, MS_ALIGN_RIGHT};
+
enum MS_CAPS_JOINS_AND_CORNERS {MS_CJC_NONE, MS_CJC_BEVEL, MS_CJC_BUTT, MS_CJC_MITER, MS_CJC_ROUND, MS_CJC_SQUARE, MS_CJC_TRIANGLE};
enum MS_RETURN_VALUE {MS_SUCCESS, MS_FAILURE, MS_DONE};
enum MS_IMAGEMODE { MS_IMAGEMODE_PC256, MS_IMAGEMODE_RGB, MS_IMAGEMODE_RGBA, MS_IMAGEMODE_INT16, MS_IMAGEMODE_FLOAT32, MS_IMAGEMODE_BYTE, MS_IMAGEMODE_NULL };
@@ -944,6 +946,7 @@
int interlace;
#endif /* not SWIG */
int postlabelcache;
+ int align;
} scalebarObj;
/************************************************************************/
More information about the mapserver-commits
mailing list