summaryrefslogtreecommitdiff
path: root/documentation/frames.mdwn
diff options
context:
space:
mode:
Diffstat (limited to 'documentation/frames.mdwn')
-rw-r--r--documentation/frames.mdwn64
1 files changed, 64 insertions, 0 deletions
diff --git a/documentation/frames.mdwn b/documentation/frames.mdwn
new file mode 100644
index 0000000..236277f
--- /dev/null
+++ b/documentation/frames.mdwn
@@ -0,0 +1,64 @@
+[[!meta title="Documentation/Frames"]]
+[[!meta author="James Bursa"]]
+[[!meta date="2010-03-01T02:56:32Z"]]
+
+
+[[!toc]] Frames cut across many
+parts of the browser.
+
+Representation in content
+-------------------------
+
+During box-tree construction (box\_construct.c), frameset, frame, and
+iframe elements are converted into structures in the 'struct content'
+for the HTML document.
+
+Framesets and frames form a tree of 'struct content\_html\_frames' at
+content-\>data.html.frameset. For example, the source
+
+ <nowiki>
+ <frameset rows="50%,50%">
+ <frameset cols="40,200">
+ <frame name="A" src="aaa">
+ <frame name="B" src="bbb">
+ </frameset>
+ <frameset cols="3*,*">
+ <frame name="C" src="ccc">
+ <frame name="D" src="ddd">
+ </frameset>
+ </frameset>
+ </nowiki>
+
+results in the tree
+
+ 0x6099f2f4 (2 1) w0px h0px (margin w0 h0) (scrolling no)
+ (0 0): 0x608b730c (1 2) w100% h50% (margin w0 h0) (scrolling no)
+ (0 0): 0x608dae74 (0 0) w40px h100% (margin w0 h0) 'A' <aaa> (scrolling auto) border 0
+ (0 1): 0x608daeb0 (0 0) w200px h100% (margin w0 h0) 'B' <bbb> (scrolling auto) border 0
+ (1 0): 0x608b7348 (1 2) w100% h50% (margin w0 h0) (scrolling no)
+ (0 0): 0x608d9b4c (0 0) w3* h100% (margin w0 h0) 'C' <ccc> (scrolling auto) border 0
+ (0 1): 0x608d9b88 (0 0) w1* h100% (margin w0 h0) 'D' <ddd> (scrolling auto) border 0
+
+(output from html\_dump\_frameset()).
+
+Creation of browser windows
+---------------------------
+
+When a document containing frames is displayed in a browser window,
+child windows are created for frames and iframes. This occurs when a
+browser window receives a CONTENT\_MSG\_READY in
+browser\_window\_callback(), which calls
+browser\_window\_create\_frameset().
+
+browser\_window\_create\_frameset() constructs a tree of 'struct
+browser\_window' corresponding to the tree of 'struct
+content\_html\_frames'. For each new browser\_window, it calls
+gui\_create\_browser\_window() to create and open the actual
+platform-specific window (represented by a 'struct gui\_window').
+
+When this is completed it calls browser\_window\_recalculate\_frameset()
+which calculates the positions of each frame in pixels and calls
+gui\_window\_position\_frame() to position each one.
+
+[[!inline raw=yes pages="Documentation"]]
+