http://wiki.caminobrowser.org/index.php?title=Development:Summer_of_Code_2007:AppleScript:Proposal&feed=atom&action=historyDevelopment:Summer of Code 2007:AppleScript:Proposal - Revision history2024-03-28T22:55:37ZRevision history for this page on the wikiMediaWiki 1.34.4http://wiki.caminobrowser.org/index.php?title=Development:Summer_of_Code_2007:AppleScript:Proposal&diff=7930&oldid=prevPeeja: Original Proposal moved to Development:Summer of Code 2007:AppleScript:Proposal: Created the page with a bad link. Moving it to where it was supposed to be.2007-06-04T17:09:53Z<p><a href="/Original_Proposal" class="mw-redirect" title="Original Proposal">Original Proposal</a> moved to <a href="/Development:Summer_of_Code_2007:AppleScript:Proposal" title="Development:Summer of Code 2007:AppleScript:Proposal">Development:Summer of Code 2007:AppleScript:Proposal</a>: Created the page with a bad link. Moving it to where it was supposed to be.</p>
<table class="diff diff-contentalign-left" data-mw="interface">
<tr class="diff-title" lang="en">
<td colspan="1" style="background-color: #fff; color: #222; text-align: center;">← Older revision</td>
<td colspan="1" style="background-color: #fff; color: #222; text-align: center;">Revision as of 17:09, 4 June 2007</td>
</tr><tr><td colspan="2" class="diff-notice" lang="en"><div class="mw-diff-empty">(No difference)</div>
</td></tr></table>Peejahttp://wiki.caminobrowser.org/index.php?title=Development:Summer_of_Code_2007:AppleScript:Proposal&diff=7928&oldid=prevPeeja: /* Details */ More tweaking2007-06-04T17:06:39Z<p><span dir="auto"><span class="autocomment">Details: </span> More tweaking</span></p>
<table class="diff diff-contentalign-left" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="en">
<td colspan="2" style="background-color: #fff; color: #222; text-align: center;">← Older revision</td>
<td colspan="2" style="background-color: #fff; color: #222; text-align: center;">Revision as of 17:06, 4 June 2007</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l32" >Line 32:</td>
<td colspan="2" class="diff-lineno">Line 32:</td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> Properties: </div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> Properties: </div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> URL (Unicode text, r/o) : Current URL </div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> URL (Unicode text, r/o) : Current URL </div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;"></pre></ins></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>I would like to re-implement the suite with the following classes: </div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>I would like to re-implement the suite with the following classes: </div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;"><pre></ins></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> Class: application [inh. application (Standard Suite)] </div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> Class: application [inh. application (Standard Suite)] </div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> Contains: </div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> Contains: </div></td></tr>
<tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l66" >Line 66:</td>
<td colspan="2" class="diff-lineno">Line 68:</td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>has proved immensely useful in OmniOutliner; an entire application (Kinkless GTD, http://www.kinkless.com/) has </div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>has proved immensely useful in OmniOutliner; an entire application (Kinkless GTD, http://www.kinkless.com/) has </div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>been implemented this way. This idea has not been discussed with the community as of this writing, but a bug has </div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>been implemented this way. This idea has not been discussed with the community as of this writing, but a bug has </div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>been filed, and future discussion will be found at {{bug|375123}}. </div></td><td class='diff-marker'>+</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>been filed, and future discussion will be found at {{bug|375123}}.</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>==Schedule==</div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>==Schedule==</div></td></tr>
</table>Peejahttp://wiki.caminobrowser.org/index.php?title=Development:Summer_of_Code_2007:AppleScript:Proposal&diff=7927&oldid=prevPeeja: Tweeking syntax2007-06-04T17:05:59Z<p>Tweeking syntax</p>
<table class="diff diff-contentalign-left" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="en">
<td colspan="2" style="background-color: #fff; color: #222; text-align: center;">← Older revision</td>
<td colspan="2" style="background-color: #fff; color: #222; text-align: center;">Revision as of 17:05, 4 June 2007</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l60" >Line 60:</td>
<td colspan="2" class="diff-lineno">Line 60:</td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Furthermore, I would like to expose the bookmark catalog through AppleScript. This would be done in the obvious </div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Furthermore, I would like to expose the bookmark catalog through AppleScript. This would be done in the obvious </div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>way: by mapping the Cocoa bookmark classes to AppleScript classes. This was implicitly requested by a user and </div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>way: by mapping the Cocoa bookmark classes to AppleScript classes. This was implicitly requested by a user and </div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>relayed by Simon Fraser in {{bug|156078<del class="diffchange diffchange-inline">|4</del>}}. </div></td><td class='diff-marker'>+</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>relayed by Simon Fraser in {{bug|156078}}<ins class="diffchange diffchange-inline">, Comment 4</ins>. </div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Finally, to make this support more useful, I would like to implement script toolbar items as OmniOutliner does. For </div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Finally, to make this support more useful, I would like to implement script toolbar items as OmniOutliner does. For </div></td></tr>
<tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l73" >Line 73:</td>
<td colspan="2" class="diff-lineno">Line 73:</td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>; Weeks 1-3 - Windows and Tabs</div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>; Weeks 1-3 - Windows and Tabs</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>: I will begin by implementing the improved window/tab support outlined in the first two </div></td><td class='diff-marker'>+</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>: I will begin by implementing the improved window/tab support outlined in the first two paragraphs of the Details section. I estimate that this will take approximately half a week to design, one week to write, and one and a half weeks to debug and polish to a high gloss. The design will consist of marrying the dictionary outlined above with the actual code. The basic implementation of this is straightforward. Therefore, the difficult part will be working out the kinks which experience tells me will make themselves known. </div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>paragraphs of the Details section. I estimate that this will take approximately half a week to </div></td><td colspan="2"> </td></tr>
<tr><td class='diff-marker'>−</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>design, one week to write, and one and a half weeks to debug and polish to a high gloss. The </div></td><td colspan="2"> </td></tr>
<tr><td class='diff-marker'>−</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>design will consist of marrying the dictionary outlined above with the actual code. The basic </div></td><td colspan="2"> </td></tr>
<tr><td class='diff-marker'>−</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>implementation of this is straightforward. Therefore, the difficult part will be working out the </div></td><td colspan="2"> </td></tr>
<tr><td class='diff-marker'>−</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>kinks which experience tells me will make themselves known. </div></td><td colspan="2"> </td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>; Weeks 4-6 - Bookmarks </div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>; Weeks 4-6 - Bookmarks </div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>: Bookmark support should take a similar course: half week for design, one for implementation, one </div></td><td class='diff-marker'>+</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>: Bookmark support should take a similar course: half week for design, one for implementation, one and a half to make it perfect. </div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>and a half to make it perfect. </div></td><td colspan="2"> </td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>; Weeks 7-10 - Script Toolbar Items </div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>; Weeks 7-10 - Script Toolbar Items </div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>: The toolbar feature has the possibility of running longer, so I've given it a fourth week. I've </div></td><td class='diff-marker'>+</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>: The toolbar feature has the possibility of running longer, so I've given it a fourth week. I've implemented NSToolbars and their items before, and I know it can be tricky. (I'm thinking specifically of issues such as validation.) I plan to spend a half week designing, a week and a half writing, and two weeks debugging and cleaning.</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>implemented NSToolbars and their items before, and I know it can be tricky. (I'm thinking </div></td><td colspan="2"> </td></tr>
<tr><td class='diff-marker'>−</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>specifically of issues such as validation.) I plan to spend a half week designing, a week and a half </div></td><td colspan="2"> </td></tr>
<tr><td class='diff-marker'>−</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>writing, and two weeks debugging and cleaning.</div></td><td colspan="2"> </td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>; Weeks 11-12 - Reserved </div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>; Weeks 11-12 - Reserved </div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>: I anticipate there will be changes and additions to the proposed features. I also know from </div></td><td class='diff-marker'>+</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>: I anticipate there will be changes and additions to the proposed features. I also know from experience that a project will tend to take longer than one plans. This time is to allow the project to expand a bit, if necessary. If I reach Week 11 and find I have completed what I proposed, I am sure the community will help me find more work to do regarding AppleScript support. In fact, I expect they will have already. </div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>experience that a project will tend to take longer than one plans. This time is to allow the project </div></td><td colspan="2"> </td></tr>
<tr><td class='diff-marker'>−</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>to expand a bit, if necessary. If I reach Week 11 and find I have completed what I proposed, I am </div></td><td colspan="2"> </td></tr>
<tr><td class='diff-marker'>−</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>sure the community will help me find more work to do regarding AppleScript support. In fact, I </div></td><td colspan="2"> </td></tr>
<tr><td class='diff-marker'>−</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>expect they will have already. </div></td><td colspan="2"> </td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>==Biography==</div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>==Biography==</div></td></tr>
</table>Peejahttp://wiki.caminobrowser.org/index.php?title=Development:Summer_of_Code_2007:AppleScript:Proposal&diff=7919&oldid=prevPeeja: Original proposal, wikified2007-06-04T16:43:13Z<p>Original proposal, wikified</p>
<p><b>New page</b></p><div>==Synopsis==<br />
This project will make Camino a good scriptable citizen of the Mac OS. It will improve scriptability in Camino and <br />
provide a new way to extend the browser using AppleScript. <br />
<br />
==Benefits to Community==<br />
Camino's stated goal is to deliver the power and flexibility of the Gecko rendering engine in a native Mac OS X <br />
application. Unlike the cross-platform Firefox, Camino is able to leverage OS X technologies, such as the Keychain <br />
for password storage and Address Book for filling out forms. One of the Macintosh's strongest technologies is <br />
AppleScript, but at the moment Camino provides very little AppleScript support. <br />
<br />
This project will bring AppleScript support up to the level of the rest of the Camino application, staying abreast of <br />
other Mac browsers' support. In particular, OmniWeb's scripting dictionary provides substantially more capability <br />
to scripts, allowing access to individual tabs (not just to windows) and to bookmarks. This project will bring similar <br />
capability to the Camino dictionary, opening the door to more sophisticated uses of Camino. <br />
<br />
==Deliverables==<br />
At the end of the project, Camino's scriptability will provide scripts with access to windows, tabs, bookmarks, and <br />
possibly other Camino features based on community discussions. Camino will also allow users to run scripts from <br />
the toolbar using new toolbar items. <br />
<br />
==Details==<br />
At the moment, the Camino suite of the dictionary is very limited, and some parts of it (such as "application's <br />
windows") yield unexpected behavior (such as returning nonexistent windows). The current suite's classes look like <br />
this: <br />
<br />
<pre><br />
Class: application [inh. application (Standard Suite)] <br />
Contains: <br />
documents <br />
windows <br />
Class: browser window [inh. window (Standard Suite) > item (Standard Suite)] <br />
Properties: <br />
URL (Unicode text, r/o) : Current URL <br />
<br />
I would like to re-implement the suite with the following classes: <br />
<br />
Class: application [inh. application (Standard Suite)] <br />
Contains: <br />
windows -- excluding nonexistent windows <br />
browser windows <br />
Class: browser window [inh. window (Standard Suite) > item (Standard Suite)]<br />
Contains: <br />
tabs <br />
Properties: <br />
visible tab (tab, r/o) : The tab currently visible in the window <br />
URL (Unicode text) : Current URL <br />
source (Unicode text, r/o) : Source of the window's current page <br />
Class: tab [inh. item (Standard Suite)] <br />
Properties: <br />
URL (Unicode text) : Current URL <br />
name (Unicode text, r/o) : Tab's displayed title <br />
source (Unicode text, r/o) : Source of the tab's current page <br />
</pre><br />
<br />
This gives us access to either all the windows or specifically to the browser windows. Browser windows now <br />
expose tabs, which have a URL and a name and also provide the source of the page. Browser windows also provide <br />
a reference to the currently visible tab. Its URL and source are conveniences for "visible tab's URL" and "visible <br />
tab's source", respectively, for the sake of users who do not use tabs. (For more on this part of the proposal, see {{bug|314061}}). <br />
<br />
Furthermore, I would like to expose the bookmark catalog through AppleScript. This would be done in the obvious <br />
way: by mapping the Cocoa bookmark classes to AppleScript classes. This was implicitly requested by a user and <br />
relayed by Simon Fraser in {{bug|156078|4}}. <br />
<br />
Finally, to make this support more useful, I would like to implement script toolbar items as OmniOutliner does. For <br />
every script in Library/Script/Applications/Camino, Camino would generate a toolbar item to run that script. This <br />
has proved immensely useful in OmniOutliner; an entire application (Kinkless GTD, http://www.kinkless.com/) has <br />
been implemented this way. This idea has not been discussed with the community as of this writing, but a bug has <br />
been filed, and future discussion will be found at {{bug|375123}}. <br />
<br />
==Schedule==<br />
I will not have other commitments over the summer, so I will be free to dedicate myself to the project. Here is an <br />
outline of the schedule I envision: <br />
<br />
; Weeks 1-3 - Windows and Tabs<br />
: I will begin by implementing the improved window/tab support outlined in the first two <br />
paragraphs of the Details section. I estimate that this will take approximately half a week to <br />
design, one week to write, and one and a half weeks to debug and polish to a high gloss. The <br />
design will consist of marrying the dictionary outlined above with the actual code. The basic <br />
implementation of this is straightforward. Therefore, the difficult part will be working out the <br />
kinks which experience tells me will make themselves known. <br />
; Weeks 4-6 - Bookmarks <br />
: Bookmark support should take a similar course: half week for design, one for implementation, one <br />
and a half to make it perfect. <br />
; Weeks 7-10 - Script Toolbar Items <br />
: The toolbar feature has the possibility of running longer, so I've given it a fourth week. I've <br />
implemented NSToolbars and their items before, and I know it can be tricky. (I'm thinking <br />
specifically of issues such as validation.) I plan to spend a half week designing, a week and a half <br />
writing, and two weeks debugging and cleaning.<br />
; Weeks 11-12 - Reserved <br />
: I anticipate there will be changes and additions to the proposed features. I also know from <br />
experience that a project will tend to take longer than one plans. This time is to allow the project <br />
to expand a bit, if necessary. If I reach Week 11 and find I have completed what I proposed, I am <br />
sure the community will help me find more work to do regarding AppleScript support. In fact, I <br />
expect they will have already. <br />
<br />
==Biography==<br />
I've been a Mac geek all my life. I found AppleScript in my father's PowerBook almost ten years ago, and we've <br />
been friends ever since. He can act a little strange sometimes, but once you get to know him you realize he's pretty <br />
nice, and he's very helpful. He claims English is his first language, but I think he's lying. I don't hold it against him, <br />
though, because he's always been a good friend. <br />
<br />
Then, a little over four years ago, I upgraded from OS 9 to OS X. That's when I met Cocoa. Cocoa was a little more <br />
grown up than AppleScript, and he could do really impressive things. This one time, he built a text editor for me, <br />
and all I had to do was tell him where to put everything. I was worried that AppleScript would get jealous now that <br />
I was spending so much time with Cocoa, but it turned out they were good friends! <br />
<br />
So, for the past four years, I've been spending a lot of my free time working with Cocoa and working with <br />
AppleScript and working with the two together. Unfortunately, most of my projects disappeared when my faithful <br />
PowerBook G4 died last summer. Included in that number was one of my proudest creations: a Dashboard widget <br />
which used JavaScript to call on a Cocoa plug-in to run an AppleScript to retrieve rows from an OmniOutliner <br />
document. <br />
<br />
Last summer was also when I discovered the Camino community. I spent much of my summer doing bug triage for <br />
Camino, but I was living on borrowed cycles (from my girlfriend's iBook) and I couldn't build trunk or do actual <br />
development. I've kept in touch with the Camino project, and began writing patches over winter break on my new <br />
machine, but while school is in session time is hard to come by. I look forward to having the opportunity this <br />
summer to contribute to Camino again.</div>Peeja