Author: spouliot
Date: 2007-10-02 08:53:35 -0400 (Tue, 02 Oct 2007)
New Revision: 86743

Modified:
   trunk/moon/src/ChangeLog
   trunk/moon/src/xaml.cpp
Log:
xaml.cpp: Add support for 'F' in the PML parser to enable setting the FillMode 
of Geometry objects. Removed default value set as it is identical to the 
default property value.

Modified: trunk/moon/src/ChangeLog
===================================================================
--- trunk/moon/src/ChangeLog    2007-10-02 12:43:10 UTC (rev 86742)
+++ trunk/moon/src/ChangeLog    2007-10-02 12:53:35 UTC (rev 86743)
@@ -1,3 +1,9 @@
+2007-10-02  Sebastien Pouliot  <[EMAIL PROTECTED]>
+
+       * xaml.cpp: Add support for 'F' in the PML parser to enable setting
+       the FillMode of Geometry objects. Removed default value set as it is 
+       identical to the default property value.
+
 2007-10-02  Jb Evain  <[EMAIL PROTECTED]>
 
        * playlist.cpp|h: implemented start time for playlist entries.

Modified: trunk/moon/src/xaml.cpp
===================================================================
--- trunk/moon/src/xaml.cpp     2007-10-02 12:43:10 UTC (rev 86742)
+++ trunk/moon/src/xaml.cpp     2007-10-02 12:53:35 UTC (rev 86743)
@@ -1486,14 +1486,11 @@
        PathSegment *prev = NULL;
        PathSegmentCollection *psc = NULL;
        
-
        PathGeometry *pg = new PathGeometry ();
        PathFigureCollection *pfc = new PathFigureCollection ();
        pg->SetValue (PathGeometry::FiguresProperty, pfc);
        pfc->unref ();
 
-       geometry_set_fill_rule (pg, FillRuleEvenOdd);
-
        while (*data) {
                if (g_ascii_isspace (*data))
                        data++;
@@ -1504,6 +1501,20 @@
                bool relative = false;
 
                switch (*data) {
+               case 'f':
+               case 'F':
+                       data++;
+                       if (!*data)
+                               break;
+
+                       if (*data == '0')
+                               geometry_set_fill_rule (pg, FillRuleEvenOdd);
+                       else if (*data == '1')
+                               geometry_set_fill_rule (pg, FillRuleNonzero);
+                       // FIXME: else it's a bad value and nothing should be 
rendered
+                       data++;
+                       break;
+
                case 'm':
                        relative = true;
                case 'M':

_______________________________________________
Mono-patches maillist  -  [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches

Reply via email to