Diff
diff --git a/cstyle/main.go b/cstyle/main.go
index d03f69b..eb88a53 100644
--- a/cstyle/main.go
+++ b/cstyle/main.go
@@ -8 +7,0 @@ import (
- "strconv"
@@ -77 +75,0 @@ func (c *CSS) Map(doc *html.Node) Mapped {
- println("inherit")
@@ -80 +78 @@ func (c *CSS) Map(doc *html.Node) Mapped {
- println("size")
+ fmt.Printf("123 %f %f\n", c.Width, c.Height)
@@ -83,2 +81 @@ func (c *CSS) Map(doc *html.Node) Mapped {
- println("position")
- position(doc, styleMap, 0, 0, c.Width, c.Height)
+ position(doc, styleMap, 0, 0, c.Width, c.Height, c.Width, c.Height)
@@ -114 +111 @@ func flatten(n *html.Node) []Node {
-func position(n *html.Node, styleMap map[string]map[string]string, x1, y1, windowWidth, windowHeight float32) (float32, float32) {
+func position(n *html.Node, styleMap map[string]map[string]string, x1, y1, x2, y2, windowWidth, windowHeight float32) (float32, float32, float32, float32) {
@@ -116 +112,0 @@ func position(n *html.Node, styleMap map[string]map[string]string, x1, y1, windo
- println(dom.TagName(n))
@@ -122 +118,2 @@ func position(n *html.Node, styleMap map[string]map[string]string, x1, y1, windo
- fs := utils.GetFontSize(styleMap[id])
+ width, _ := utils.ConvertToPixels(styleMap[id]["width"], windowWidth)
+ height, _ := utils.ConvertToPixels(styleMap[id]["height"], windowHeight)
@@ -124,9 +121,2 @@ func position(n *html.Node, styleMap map[string]map[string]string, x1, y1, windo
- rawWidth, _ := strconv.ParseFloat(styleMap[id]["width"], 32)
- rawHeight, _ := strconv.ParseFloat(styleMap[id]["height"], 32)
- width := float32(rawWidth)
- height := float32(rawHeight)
-
- x2 := x1 + width
- y2 := y1 + height
-
- var btmOS float32 = 0
+ x2 = width
+ y2 = height
@@ -135 +125 @@ func position(n *html.Node, styleMap map[string]map[string]string, x1, y1, windo
- v, _ := utils.ConvertToPixels(styleMap[id]["margin-left"], float32(fs), windowWidth)
+ v, _ := utils.ConvertToPixels(styleMap[id]["margin-left"], windowWidth)
@@ -137 +126,0 @@ func position(n *html.Node, styleMap map[string]map[string]string, x1, y1, windo
- x2 += v
@@ -140 +129 @@ func position(n *html.Node, styleMap map[string]map[string]string, x1, y1, windo
- v, _ := utils.ConvertToPixels(styleMap[id]["margin-top"], float32(fs), windowHeight)
+ v, _ := utils.ConvertToPixels(styleMap[id]["margin-top"], windowHeight)
@@ -142,2 +130,0 @@ func position(n *html.Node, styleMap map[string]map[string]string, x1, y1, windo
- y2 += v
- btmOS += v
@@ -145,0 +133,4 @@ func position(n *html.Node, styleMap map[string]map[string]string, x1, y1, windo
+ if styleMap[id]["margin-right"] != "" {
+ v, _ := utils.ConvertToPixels(styleMap[id]["margin-left"], windowWidth)
+ x2 += v
+ }
@@ -147,2 +138,2 @@ func position(n *html.Node, styleMap map[string]map[string]string, x1, y1, windo
- v, _ := utils.ConvertToPixels(styleMap[id]["margin-top"], float32(fs), windowHeight)
- btmOS += v
+ v, _ := utils.ConvertToPixels(styleMap[id]["margin-top"], windowHeight)
+ y2 += v
@@ -152 +143 @@ func position(n *html.Node, styleMap map[string]map[string]string, x1, y1, windo
- oY := btmOS
+
@@ -155,3 +146,2 @@ func position(n *html.Node, styleMap map[string]map[string]string, x1, y1, windo
- _, h := position(ch, styleMap, x1, y1+oY, width, height)
-
- oY += h
+ _, b, _, d := position(ch, styleMap, x1, y1, x2, y2, width, height)
+ y1 += b + d
@@ -165 +155 @@ func position(n *html.Node, styleMap map[string]map[string]string, x1, y1, windo
- return x2 - x1, (y2 + btmOS) - y1
+ return x1, y1, x2, y2
@@ -168,0 +159 @@ func size(n *html.Node, styleMap map[string]map[string]string, windowWidth, wind
+ fmt.Printf("%f %f\n", windowWidth, windowHeight)
@@ -170 +160,0 @@ func size(n *html.Node, styleMap map[string]map[string]string, windowWidth, wind
- println(dom.TagName(n))
@@ -175,3 +164,0 @@ func size(n *html.Node, styleMap map[string]map[string]string, windowWidth, wind
-
- fs := utils.GetFontSize(styleMap[id])
-
@@ -181 +168,5 @@ func size(n *html.Node, styleMap map[string]map[string]string, windowWidth, wind
- width, _ = utils.ConvertToPixels(styleMap[id]["width"], float32(fs), windowWidth)
+ width, _ = utils.ConvertToPixels(styleMap[id]["width"], windowWidth)
+ fmt.Printf("%f %f %s %s\n", width, windowWidth, dom.TagName(n), styleMap[id]["width"])
+ fmt.Printf("%s\n", styleMap[id])
+ t, _ := utils.ConvertToPixels("50%", 100)
+ fmt.Printf("%s\n", t)
@@ -185 +176 @@ func size(n *html.Node, styleMap map[string]map[string]string, windowWidth, wind
- height, _ = utils.ConvertToPixels(styleMap[id]["height"], float32(fs), windowHeight)
+ height, _ = utils.ConvertToPixels(styleMap[id]["height"], windowHeight)
@@ -191,4 +182,5 @@ func size(n *html.Node, styleMap map[string]map[string]string, windowWidth, wind
- var wW, wH float32 = width, height
- if n.Type != html.ElementNode {
- wW = windowWidth
- wH = windowHeight
+ if width == 0 {
+ width = windowWidth
+ }
+ if height == 0 {
+ height = windowHeight
@@ -196 +188 @@ func size(n *html.Node, styleMap map[string]map[string]string, windowWidth, wind
- w, h := size(ch, styleMap, wW, wH)
+ w, h := size(ch, styleMap, width, height)
@@ -198 +190 @@ func size(n *html.Node, styleMap map[string]map[string]string, windowWidth, wind
- width = utils.Max(width, w)
+ width = utils.Max(w, width)
@@ -209 +201,2 @@ func size(n *html.Node, styleMap map[string]map[string]string, windowWidth, wind
- fs2, _ := utils.ConvertToPixels(styleMap[id]["font-size"], fs, width)
+ fs, _ := utils.ConvertToPixels(styleMap[id]["font-size"], width)
+ w, h := utils.GetTextBounds(text, fs, width, height)
@@ -211 +204 @@ func size(n *html.Node, styleMap map[string]map[string]string, windowWidth, wind
- _, h := utils.GetTextBounds(text, fs2, width, height)
+ width = w
@@ -218,6 +210,0 @@ func size(n *html.Node, styleMap map[string]map[string]string, windowWidth, wind
- var (
- wMarginWidth float32
- wMarginHeight float32
- )
-
- utils.SetMP(id, styleMap)
@@ -225 +212 @@ func size(n *html.Node, styleMap map[string]map[string]string, windowWidth, wind
- width, height, wMarginWidth, wMarginHeight = utils.AddMarginAndPadding(styleMap, id, width, height)
+ width, height = utils.AddMarginAndPadding(styleMap, id, width, height)
@@ -230,4 +217 @@ func size(n *html.Node, styleMap map[string]map[string]string, windowWidth, wind
-
- _, right, _, left := utils.GetMarginOffset(n, styleMap, windowWidth, windowHeight)
-
- styleMap[id]["width"] = fmt.Sprintf("%g", width-(left+right))
+ styleMap[id]["width"] = fmt.Sprintf("%g", width)
@@ -235,20 +219 @@ func size(n *html.Node, styleMap map[string]map[string]string, windowWidth, wind
- return wMarginWidth, wMarginHeight
-}
-
-var inheritedProps = []string{
- "color",
- "cursor",
- "font",
- "font-family",
- "font-size",
- "font-style",
- "font-weight",
- "letter-spacing",
- "line-height",
- "text-align",
- "text-indent",
- "text-justify",
- "text-shadow",
- "text-transform",
- "visibility",
- "word-spacing",
+ return width, height
@@ -272,6 +237 @@ func inherit(n *html.Node, styleMap map[string]map[string]string) {
-
- for _, v := range inheritedProps {
- if styleMap[id][v] == "" && styleMap[pId][v] != "" {
- styleMap[id][v] = styleMap[pId][v]
- }
- }
+ styleMap[id] = utils.ExMerge(styleMap[id], styleMap[pId])