[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