Initial import.
This commit is contained in:
commit
76e2008e54
28 changed files with 1162 additions and 0 deletions
3
.cvsignore
Normal file
3
.cvsignore
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
.DS_Store
|
||||||
|
build
|
||||||
|
*~
|
BIN
Channel.icns
Normal file
BIN
Channel.icns
Normal file
Binary file not shown.
145
Channel/Channel.xml
Normal file
145
Channel/Channel.xml
Normal file
|
@ -0,0 +1,145 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
SherlockRSS License
|
||||||
|
|
||||||
|
Copyright (c) 2004, Erik C. Thauvin (http://www.thauvin.net/erik/)
|
||||||
|
All rights reserved.
|
||||||
|
|
||||||
|
Redistribution and use in source and binary forms, with or without
|
||||||
|
modification, are permitted provided that the following conditions are
|
||||||
|
met:
|
||||||
|
|
||||||
|
Redistributions of source code must retain the above copyright notice,
|
||||||
|
this list of conditions and the following disclaimer.
|
||||||
|
|
||||||
|
Redistributions in binary form must reproduce the above copyright notice,
|
||||||
|
this list of conditions and the following disclaimer in the documentation
|
||||||
|
and/or other materials provided with the distribution.
|
||||||
|
|
||||||
|
Neither the name of the authors nor the names of its contributors may be
|
||||||
|
used to endorse or promote products derived from this software without
|
||||||
|
specific prior written permission.
|
||||||
|
|
||||||
|
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
|
||||||
|
IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
|
||||||
|
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||||
|
PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
|
||||||
|
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
||||||
|
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
||||||
|
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
|
||||||
|
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
||||||
|
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||||
|
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||||
|
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
-->
|
||||||
|
|
||||||
|
<channel>
|
||||||
|
|
||||||
|
<initialize language="JavaScript">
|
||||||
|
|
||||||
|
debug("----- Initializing the data store -----");
|
||||||
|
|
||||||
|
/* Set the channel's minimum size */
|
||||||
|
DataStore.Set("Internet.minViewSize", "{width=310; height=260}");
|
||||||
|
|
||||||
|
/* Update the data store representation of the search field as the
|
||||||
|
user types into it. This way, if they click the search button
|
||||||
|
before hitting return, the data store will reflect the latest
|
||||||
|
changes made by the user.
|
||||||
|
*/
|
||||||
|
DataStore.Set("Internet.MainQueryField.updateValueOnTextChanged", true);
|
||||||
|
|
||||||
|
/* Customize the NSTableView a bit */
|
||||||
|
DataStore.Set("Internet.SearchResultsTable.pasteboardTypes.NSStringPboardType", "description.URL.objectValue");
|
||||||
|
DataStore.Set("Internet.SearchResultsTable.pasteboardTypes.NSURLPboardType", "doubleClickURL");
|
||||||
|
DataStore.Set("Internet.SearchResultsTable.visibleDragColumns", "description");
|
||||||
|
DataStore.Set("Internet.NoItemsFound.objectValue", "");
|
||||||
|
|
||||||
|
/* Initialize this with an empty document, so it fills in with white */
|
||||||
|
DataStore.Set("Internet.DetailHTMLView.htmlData", "");
|
||||||
|
</initialize>
|
||||||
|
|
||||||
|
<triggers>
|
||||||
|
|
||||||
|
|
||||||
|
<trigger path="Internet.didInstall" language="JavaScript">
|
||||||
|
|
||||||
|
debug("----- Channel did install -----");
|
||||||
|
|
||||||
|
/* Set a default value in the search field */
|
||||||
|
// DataStore.Set("Internet.MainQueryField.objectValue", "");
|
||||||
|
</trigger>
|
||||||
|
|
||||||
|
|
||||||
|
<trigger path="Internet.SearchButton.action" language="JavaScript">
|
||||||
|
|
||||||
|
debug("----- User clicked the search button -----");
|
||||||
|
|
||||||
|
/* Clear out the previous results */
|
||||||
|
DataStore.Set("Internet.SearchResultsTable.dataValue", null);
|
||||||
|
|
||||||
|
/* Indicate that a search is about to take place */
|
||||||
|
DataStore.Set("Internet.NetworkArrows.animating", true);
|
||||||
|
|
||||||
|
|
||||||
|
/* Kick off the search. Searches are usually done in XQuery, since
|
||||||
|
it has better data parsing/manipulating characteristics than
|
||||||
|
JavaScript.
|
||||||
|
*/
|
||||||
|
DataStore.Notify("DATA.action.performSearch");
|
||||||
|
</trigger>
|
||||||
|
|
||||||
|
<trigger path="DATA.action.performSearch" language="XQuery"
|
||||||
|
inputs="query=Internet.MainQueryField.objectValue">
|
||||||
|
|
||||||
|
let $log := msg("----- Performing the search -----")
|
||||||
|
let $log := msg("----- Query: ", $query)
|
||||||
|
|
||||||
|
let $httpRequest := http-request($query)
|
||||||
|
let $rss:= http-request-value($httpRequest, "DATA")
|
||||||
|
let $results := for $item in $rss/rss/channel/item
|
||||||
|
return dictionary(
|
||||||
|
("description", $item/title/text()/convert-html(.)),
|
||||||
|
("doubleClickURL", $item/link/text()/convert-html(.))
|
||||||
|
)
|
||||||
|
|
||||||
|
{-- From the trigger, return a dictionary with key/value pairs representing
|
||||||
|
data store locations and their values.
|
||||||
|
--}
|
||||||
|
return dictionary(
|
||||||
|
("Internet.SearchResultsTable.dataValue", $results),
|
||||||
|
("Internet.SearchResultsTable.selectedRows", null()),
|
||||||
|
("Internet.NetworkArrows.animating", false()),
|
||||||
|
("Internet.NoItemsFound.objectValue", if ($results) then "" else "No items found.")
|
||||||
|
)
|
||||||
|
</trigger>
|
||||||
|
|
||||||
|
<trigger language="JavaScript" path="URL.complete">
|
||||||
|
query = DataStore.Get("URL.query");
|
||||||
|
if (query)
|
||||||
|
{
|
||||||
|
DataStore.Set("Internet.MainQueryField.objectValue", query);
|
||||||
|
DataStore.Set("Internet.NetworkArrows.animating", true);
|
||||||
|
DataStore.Notify("DATA.action.performSearch");
|
||||||
|
}
|
||||||
|
</trigger>
|
||||||
|
|
||||||
|
<trigger path="Internet.SearchResultsTable" language="XQuery"
|
||||||
|
inputs="tableRows=Internet.SearchResultsTable.dataValue, selectedRows=Internet.SearchResultsTable.selectedRows"
|
||||||
|
output="Internet.DetailHTMLView.url" task="true">
|
||||||
|
{-- If any aspect of the results table changes (.dataValue, or .selectedRows) --}
|
||||||
|
{-- we want to trigger an update of the detail view. --}
|
||||||
|
|
||||||
|
let $selectedItem := if (exists($selectedRows)) then
|
||||||
|
$tableRows[1+$selectedRows]
|
||||||
|
else
|
||||||
|
null()
|
||||||
|
|
||||||
|
return $selectedItem/doubleClickURL
|
||||||
|
</trigger>
|
||||||
|
|
||||||
|
</triggers>
|
||||||
|
|
||||||
|
</channel>
|
||||||
|
|
BIN
Channel/en.lproj/Channel.nib/CVS.tiff
Normal file
BIN
Channel/en.lproj/Channel.nib/CVS.tiff
Normal file
Binary file not shown.
45
Channel/en.lproj/Channel.nib/classes.nib
generated
Normal file
45
Channel/en.lproj/Channel.nib/classes.nib
generated
Normal file
|
@ -0,0 +1,45 @@
|
||||||
|
{
|
||||||
|
IBClasses = (
|
||||||
|
{CLASS = Aqua2SplitView; LANGUAGE = ObjC; SUPERCLASS = NSSplitView; },
|
||||||
|
{CLASS = ColorView; LANGUAGE = ObjC; SUPERCLASS = NSView; },
|
||||||
|
{
|
||||||
|
CLASS = ElasticMatrix;
|
||||||
|
LANGUAGE = ObjC;
|
||||||
|
OUTLETS = {dataSource = id; };
|
||||||
|
SUPERCLASS = NSMatrix;
|
||||||
|
},
|
||||||
|
{
|
||||||
|
ACTIONS = {makeFontBigger = id; makeFontSmaller = id; print = id; };
|
||||||
|
CLASS = HTMLView;
|
||||||
|
LANGUAGE = ObjC;
|
||||||
|
SUPERCLASS = NSView;
|
||||||
|
},
|
||||||
|
{CLASS = NSObject; LANGUAGE = ObjC; },
|
||||||
|
{
|
||||||
|
ACTIONS = {clear = id; };
|
||||||
|
CLASS = NSTableViewWithDraggableItems;
|
||||||
|
LANGUAGE = ObjC;
|
||||||
|
SUPERCLASS = NSTableView;
|
||||||
|
},
|
||||||
|
{CLASS = RankCell; LANGUAGE = ObjC; SUPERCLASS = NSActionCell; },
|
||||||
|
{
|
||||||
|
CLASS = SherlockChannel;
|
||||||
|
LANGUAGE = ObjC;
|
||||||
|
OUTLETS = {channelView = NSView; thumbnailCell = NSView; };
|
||||||
|
SUPERCLASS = NSObject;
|
||||||
|
},
|
||||||
|
{
|
||||||
|
ACTIONS = {clear = id; };
|
||||||
|
CLASS = SherlockNSTableView;
|
||||||
|
LANGUAGE = ObjC;
|
||||||
|
SUPERCLASS = NSTableView;
|
||||||
|
},
|
||||||
|
{
|
||||||
|
ACTIONS = {startAnimation = id; stopAnimation = id; };
|
||||||
|
CLASS = SpinningArrows;
|
||||||
|
LANGUAGE = ObjC;
|
||||||
|
SUPERCLASS = NSView;
|
||||||
|
}
|
||||||
|
);
|
||||||
|
IBVersion = 1;
|
||||||
|
}
|
BIN
Channel/en.lproj/Channel.nib/classes.nib.tiff
Normal file
BIN
Channel/en.lproj/Channel.nib/classes.nib.tiff
Normal file
Binary file not shown.
10
Channel/en.lproj/Channel.nib/data.dependency
Normal file
10
Channel/en.lproj/Channel.nib/data.dependency
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
|
<plist version="1.0">
|
||||||
|
<dict>
|
||||||
|
<key>IBPaletteDependency</key>
|
||||||
|
<array>
|
||||||
|
<string>Sherlock</string>
|
||||||
|
</array>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
BIN
Channel/en.lproj/Channel.nib/data.dependency.tiff
Normal file
BIN
Channel/en.lproj/Channel.nib/data.dependency.tiff
Normal file
Binary file not shown.
34
Channel/en.lproj/Channel.nib/info.nib
generated
Normal file
34
Channel/en.lproj/Channel.nib/info.nib
generated
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
|
<plist version="1.0">
|
||||||
|
<dict>
|
||||||
|
<key>IBDocumentLocation</key>
|
||||||
|
<string>186 -55 397 423 0 0 1152 746 </string>
|
||||||
|
<key>IBEditorPositions</key>
|
||||||
|
<dict>
|
||||||
|
<key>5</key>
|
||||||
|
<string>238 230 547 506 0 0 1024 746 </string>
|
||||||
|
</dict>
|
||||||
|
<key>IBFramework Version</key>
|
||||||
|
<string>364.0</string>
|
||||||
|
<key>IBOpenObjects</key>
|
||||||
|
<array>
|
||||||
|
<integer>5</integer>
|
||||||
|
</array>
|
||||||
|
<key>IBSystem Version</key>
|
||||||
|
<string>7H63</string>
|
||||||
|
<key>IBUserGuides</key>
|
||||||
|
<dict>
|
||||||
|
<key>5</key>
|
||||||
|
<dict>
|
||||||
|
<key>guideLocations</key>
|
||||||
|
<array>
|
||||||
|
<string>Horizontal:459.000000</string>
|
||||||
|
<string>Horizontal:268.000000</string>
|
||||||
|
</array>
|
||||||
|
<key>guidesLocked</key>
|
||||||
|
<false/>
|
||||||
|
</dict>
|
||||||
|
</dict>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
BIN
Channel/en.lproj/Channel.nib/info.nib.tiff
Normal file
BIN
Channel/en.lproj/Channel.nib/info.nib.tiff
Normal file
Binary file not shown.
BIN
Channel/en.lproj/Channel.nib/objects.nib
generated
Normal file
BIN
Channel/en.lproj/Channel.nib/objects.nib
generated
Normal file
Binary file not shown.
BIN
Channel/en.lproj/Channel.nib/objects.nib.tiff
Normal file
BIN
Channel/en.lproj/Channel.nib/objects.nib.tiff
Normal file
Binary file not shown.
BIN
Channel/en.lproj/Channel~.nib/CVS.tiff
Normal file
BIN
Channel/en.lproj/Channel~.nib/CVS.tiff
Normal file
Binary file not shown.
45
Channel/en.lproj/Channel~.nib/classes.nib
generated
Normal file
45
Channel/en.lproj/Channel~.nib/classes.nib
generated
Normal file
|
@ -0,0 +1,45 @@
|
||||||
|
{
|
||||||
|
IBClasses = (
|
||||||
|
{CLASS = Aqua2SplitView; LANGUAGE = ObjC; SUPERCLASS = NSSplitView; },
|
||||||
|
{CLASS = ColorView; LANGUAGE = ObjC; SUPERCLASS = NSView; },
|
||||||
|
{
|
||||||
|
CLASS = ElasticMatrix;
|
||||||
|
LANGUAGE = ObjC;
|
||||||
|
OUTLETS = {dataSource = id; };
|
||||||
|
SUPERCLASS = NSMatrix;
|
||||||
|
},
|
||||||
|
{
|
||||||
|
ACTIONS = {makeFontBigger = id; makeFontSmaller = id; print = id; };
|
||||||
|
CLASS = HTMLView;
|
||||||
|
LANGUAGE = ObjC;
|
||||||
|
SUPERCLASS = NSView;
|
||||||
|
},
|
||||||
|
{CLASS = NSObject; LANGUAGE = ObjC; },
|
||||||
|
{
|
||||||
|
ACTIONS = {clear = id; };
|
||||||
|
CLASS = NSTableViewWithDraggableItems;
|
||||||
|
LANGUAGE = ObjC;
|
||||||
|
SUPERCLASS = NSTableView;
|
||||||
|
},
|
||||||
|
{CLASS = RankCell; LANGUAGE = ObjC; SUPERCLASS = NSActionCell; },
|
||||||
|
{
|
||||||
|
CLASS = SherlockChannel;
|
||||||
|
LANGUAGE = ObjC;
|
||||||
|
OUTLETS = {channelView = NSView; thumbnailCell = NSView; };
|
||||||
|
SUPERCLASS = NSObject;
|
||||||
|
},
|
||||||
|
{
|
||||||
|
ACTIONS = {clear = id; };
|
||||||
|
CLASS = SherlockNSTableView;
|
||||||
|
LANGUAGE = ObjC;
|
||||||
|
SUPERCLASS = NSTableView;
|
||||||
|
},
|
||||||
|
{
|
||||||
|
ACTIONS = {startAnimation = id; stopAnimation = id; };
|
||||||
|
CLASS = SpinningArrows;
|
||||||
|
LANGUAGE = ObjC;
|
||||||
|
SUPERCLASS = NSView;
|
||||||
|
}
|
||||||
|
);
|
||||||
|
IBVersion = 1;
|
||||||
|
}
|
BIN
Channel/en.lproj/Channel~.nib/classes.nib.tiff
Normal file
BIN
Channel/en.lproj/Channel~.nib/classes.nib.tiff
Normal file
Binary file not shown.
10
Channel/en.lproj/Channel~.nib/data.dependency
Normal file
10
Channel/en.lproj/Channel~.nib/data.dependency
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
|
<plist version="1.0">
|
||||||
|
<dict>
|
||||||
|
<key>IBPaletteDependency</key>
|
||||||
|
<array>
|
||||||
|
<string>Sherlock</string>
|
||||||
|
</array>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
BIN
Channel/en.lproj/Channel~.nib/data.dependency.tiff
Normal file
BIN
Channel/en.lproj/Channel~.nib/data.dependency.tiff
Normal file
Binary file not shown.
34
Channel/en.lproj/Channel~.nib/info.nib
generated
Normal file
34
Channel/en.lproj/Channel~.nib/info.nib
generated
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
|
<plist version="1.0">
|
||||||
|
<dict>
|
||||||
|
<key>IBDocumentLocation</key>
|
||||||
|
<string>186 -55 397 423 0 0 1152 746 </string>
|
||||||
|
<key>IBEditorPositions</key>
|
||||||
|
<dict>
|
||||||
|
<key>5</key>
|
||||||
|
<string>238 230 547 506 0 0 1024 746 </string>
|
||||||
|
</dict>
|
||||||
|
<key>IBFramework Version</key>
|
||||||
|
<string>364.0</string>
|
||||||
|
<key>IBOpenObjects</key>
|
||||||
|
<array>
|
||||||
|
<integer>5</integer>
|
||||||
|
</array>
|
||||||
|
<key>IBSystem Version</key>
|
||||||
|
<string>7H63</string>
|
||||||
|
<key>IBUserGuides</key>
|
||||||
|
<dict>
|
||||||
|
<key>5</key>
|
||||||
|
<dict>
|
||||||
|
<key>guideLocations</key>
|
||||||
|
<array>
|
||||||
|
<string>Horizontal:459.000000</string>
|
||||||
|
<string>Horizontal:268.000000</string>
|
||||||
|
</array>
|
||||||
|
<key>guidesLocked</key>
|
||||||
|
<false/>
|
||||||
|
</dict>
|
||||||
|
</dict>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
BIN
Channel/en.lproj/Channel~.nib/info.nib.tiff
Normal file
BIN
Channel/en.lproj/Channel~.nib/info.nib.tiff
Normal file
Binary file not shown.
BIN
Channel/en.lproj/Channel~.nib/objects.nib
generated
Normal file
BIN
Channel/en.lproj/Channel~.nib/objects.nib
generated
Normal file
Binary file not shown.
BIN
Channel/en.lproj/Channel~.nib/objects.nib.tiff
Normal file
BIN
Channel/en.lproj/Channel~.nib/objects.nib.tiff
Normal file
Binary file not shown.
10
Channel/en.lproj/LocalizedResources.plist
Normal file
10
Channel/en.lproj/LocalizedResources.plist
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE plist SYSTEM "file://localhost/System/Library/DTDs/PropertyList.dtd">
|
||||||
|
<plist version="0.9">
|
||||||
|
<dict>
|
||||||
|
<key>CHANNEL_NAME</key>
|
||||||
|
<string>SherlockRSS</string>
|
||||||
|
<key>CHANNEL_DESCRIPTION</key>
|
||||||
|
<string>A simple RSS feed viewer.</string>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
37
Channel/en.lproj/help.html
Normal file
37
Channel/en.lproj/help.html
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
<HTML>
|
||||||
|
|
||||||
|
<HEAD>
|
||||||
|
<META HTTP-EQUIV="content-type" CONTENT="text/html;charset=iso-8859-1">
|
||||||
|
<TITLE>SherlockRSS Channel Help</TITLE>
|
||||||
|
</HEAD>
|
||||||
|
|
||||||
|
<BODY BGCOLOR="#ffffff" LEFTMARGIN="0" MARGINHEIGHT="0" MARGINWIDTH="0" TOPMARGIN="0">
|
||||||
|
<DIV ALIGN="left">
|
||||||
|
<TABLE WIDTH="100%" BORDER="0" CELLSPACING="0" CELLPADDING="0">
|
||||||
|
<TR ALIGN="left" VALIGN="top" HEIGHT="63">
|
||||||
|
<TD ALIGN="left" VALIGN="top" WIDTH="4" HEIGHT="63"></TD>
|
||||||
|
<TD ROWSPAN="2" VALIGN="bottom" WIDTH="250" HEIGHT="68"><FONT SIZE="5" FACE="Lucida Grande"><b>SherlockRSS Channel Help</b></font></TD>
|
||||||
|
</TR>
|
||||||
|
</TABLE>
|
||||||
|
<TABLE WIDTH="100%" BORDER="0" CELLSPACING="0" CELLPADDING="0">
|
||||||
|
<TR VALIGN="top" HEIGHT="2">
|
||||||
|
<TD WIDTH="14" HEIGHT="2"></TD>
|
||||||
|
<TD WIDTH="46%" HEIGHT="2"><FONT SIZE="1"><hr></FONT></TD>
|
||||||
|
</TR>
|
||||||
|
<TR VALIGN="top">
|
||||||
|
<TD WIDTH="14"></TD>
|
||||||
|
<TD WIDTH="46%">
|
||||||
|
<DIV ALIGN="left">
|
||||||
|
<P>
|
||||||
|
<FONT SIZE="4" FACE="Lucida Grande">About...</FONT>
|
||||||
|
<BR><BR>
|
||||||
|
<FONT SIZE="2" FACE="Lucida Grande">Use this Sherlock Channel to view RSS feeds.<br>Developed by <a href="http://www.thauvin.net/erik/">Erik C. Thauvin</a>.</FONT>
|
||||||
|
</P>
|
||||||
|
</DIV>
|
||||||
|
</TD>
|
||||||
|
</TR>
|
||||||
|
</TABLE>
|
||||||
|
</DIV>
|
||||||
|
</BODY>
|
||||||
|
|
||||||
|
</HTML>
|
69
SherlockRSS.xcode/default.pbxuser
Normal file
69
SherlockRSS.xcode/default.pbxuser
Normal file
|
@ -0,0 +1,69 @@
|
||||||
|
// !$*UTF8*$!
|
||||||
|
{
|
||||||
|
F514AB0D030D998B01CA1440 = {
|
||||||
|
exec = F58EDDA5030C6D2F01CA1440;
|
||||||
|
isa = PBXExecutableBookmark;
|
||||||
|
uiCtxt = {
|
||||||
|
buildSettingsExpandedSubviews = (
|
||||||
|
0,
|
||||||
|
1,
|
||||||
|
2,
|
||||||
|
3,
|
||||||
|
4,
|
||||||
|
5,
|
||||||
|
);
|
||||||
|
buildSettingsVisRect = "{{0, 0}, {626, 471}}";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
F5231FF5030C0E1D01CA1440 = {
|
||||||
|
activeBuildStyle = F5231FF3030C0E1D01CA1440;
|
||||||
|
activeExecutable = F58EDDA5030C6D2F01CA1440;
|
||||||
|
activeTarget = F523204D030C18FC01CA1440;
|
||||||
|
executables = (
|
||||||
|
F58EDDA5030C6D2F01CA1440,
|
||||||
|
);
|
||||||
|
perUserProjectItems = {
|
||||||
|
F514AB0D030D998B01CA1440 = F514AB0D030D998B01CA1440;
|
||||||
|
F58EDDA8030C6D4201CA1440 = F58EDDA8030C6D4201CA1440;
|
||||||
|
};
|
||||||
|
projectwideBuildSettings = {
|
||||||
|
};
|
||||||
|
wantsIndex = 1;
|
||||||
|
wantsSCM = -1;
|
||||||
|
};
|
||||||
|
F523204D030C18FC01CA1440 = {
|
||||||
|
activeExec = 0;
|
||||||
|
};
|
||||||
|
F58EDDA5030C6D2F01CA1440 = {
|
||||||
|
activeArgIndex = 2147483647;
|
||||||
|
argumentStrings = (
|
||||||
|
);
|
||||||
|
debuggerPlugin = GDBDebugging;
|
||||||
|
dylibVariantSuffix = "";
|
||||||
|
enableDebugStr = 1;
|
||||||
|
environmentEntries = (
|
||||||
|
{
|
||||||
|
active = YES;
|
||||||
|
name = SHERLOCK_DEBUG_CHANNELS;
|
||||||
|
value = 1;
|
||||||
|
},
|
||||||
|
);
|
||||||
|
isa = PBXExecutable;
|
||||||
|
launchableReference = F58EDDA6030C6D2F01CA1440;
|
||||||
|
name = Sherlock;
|
||||||
|
shlibInfoDictList = (
|
||||||
|
);
|
||||||
|
sourceDirectories = (
|
||||||
|
);
|
||||||
|
};
|
||||||
|
F58EDDA6030C6D2F01CA1440 = {
|
||||||
|
isa = PBXApplicationReference;
|
||||||
|
name = Sherlock.app;
|
||||||
|
path = /Applications/Sherlock.app;
|
||||||
|
refType = 0;
|
||||||
|
};
|
||||||
|
F58EDDA8030C6D4201CA1440 = {
|
||||||
|
exec = F58EDDA5030C6D2F01CA1440;
|
||||||
|
isa = PBXExecutableBookmark;
|
||||||
|
};
|
||||||
|
}
|
479
SherlockRSS.xcode/erik.pbxuser
Normal file
479
SherlockRSS.xcode/erik.pbxuser
Normal file
|
@ -0,0 +1,479 @@
|
||||||
|
// !$*UTF8*$!
|
||||||
|
{
|
||||||
|
03FB894606C2B72500727077 = {
|
||||||
|
isa = PBXSourceControlManager;
|
||||||
|
scmConfiguration = {
|
||||||
|
};
|
||||||
|
scmType = scm.cvs;
|
||||||
|
};
|
||||||
|
03FB894706C2B72500727077 = {
|
||||||
|
indexTemplatePath = "";
|
||||||
|
isa = PBXCodeSenseManager;
|
||||||
|
usesDefaults = 1;
|
||||||
|
wantsCodeCompletion = 1;
|
||||||
|
wantsCodeCompletionAutoPopup = 0;
|
||||||
|
wantsCodeCompletionAutoSuggestions = 0;
|
||||||
|
wantsCodeCompletionCaseSensitivity = 1;
|
||||||
|
wantsCodeCompletionOnlyMatchingItems = 1;
|
||||||
|
wantsCodeCompletionParametersIncluded = 1;
|
||||||
|
wantsCodeCompletionPlaceholdersInserted = 1;
|
||||||
|
wantsCodeCompletionTabCompletes = 1;
|
||||||
|
wantsIndex = 1;
|
||||||
|
};
|
||||||
|
2407DB63030C590B03CA16AF = {
|
||||||
|
uiCtxt = {
|
||||||
|
sepNavIntBoundsRect = "{{0, 0}, {711, 2043}}";
|
||||||
|
sepNavSelRange = "{1617, 0}";
|
||||||
|
sepNavVisRect = "{{0, 0}, {711, 449}}";
|
||||||
|
sepNavWindowFrame = "{{199, 15}, {750, 558}}";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
2407DB67030C590B03CA16AF = {
|
||||||
|
uiCtxt = {
|
||||||
|
sepNavIntBoundsRect = "{{0, 0}, {711, 428}}";
|
||||||
|
sepNavSelRange = "{268, 0}";
|
||||||
|
sepNavVisRect = "{{0, 0}, {711, 428}}";
|
||||||
|
sepNavWindowFrame = "{{15, 183}, {750, 558}}";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
F5231FF5030C0E1D01CA1440 = {
|
||||||
|
activeBuildStyle = F5231FF3030C0E1D01CA1440;
|
||||||
|
activeExecutable = F58EDDA5030C6D2F01CA1440;
|
||||||
|
activeTarget = F523204D030C18FC01CA1440;
|
||||||
|
addToTargets = (
|
||||||
|
);
|
||||||
|
codeSenseManager = 03FB894706C2B72500727077;
|
||||||
|
executables = (
|
||||||
|
F58EDDA5030C6D2F01CA1440,
|
||||||
|
);
|
||||||
|
perUserDictionary = {
|
||||||
|
PBXPerProjectTemplateStateSaveDate = 113439148;
|
||||||
|
PBXPrepackagedSmartGroups_v2 = (
|
||||||
|
{
|
||||||
|
PBXTransientLocationAtTop = bottom;
|
||||||
|
absolutePathToBundle = "";
|
||||||
|
activationKey = OldTargetSmartGroup;
|
||||||
|
clz = PBXTargetSmartGroup;
|
||||||
|
description = "Displays all targets of the project.";
|
||||||
|
globalID = 1C37FABC04509CD000000102;
|
||||||
|
name = Targets;
|
||||||
|
preferences = {
|
||||||
|
image = Targets;
|
||||||
|
};
|
||||||
|
},
|
||||||
|
{
|
||||||
|
PBXTransientLocationAtTop = bottom;
|
||||||
|
absolutePathToBundle = "";
|
||||||
|
clz = PBXTargetSmartGroup2;
|
||||||
|
description = "Displays all targets of the project as well as nested build phases.";
|
||||||
|
globalID = 1C37FBAC04509CD000000102;
|
||||||
|
name = Targets;
|
||||||
|
preferences = {
|
||||||
|
image = Targets;
|
||||||
|
};
|
||||||
|
},
|
||||||
|
{
|
||||||
|
PBXTransientLocationAtTop = bottom;
|
||||||
|
absolutePathToBundle = "";
|
||||||
|
clz = PBXExecutablesSmartGroup;
|
||||||
|
description = "Displays all executables of the project.";
|
||||||
|
globalID = 1C37FAAC04509CD000000102;
|
||||||
|
name = Executables;
|
||||||
|
preferences = {
|
||||||
|
image = Executable;
|
||||||
|
};
|
||||||
|
},
|
||||||
|
{
|
||||||
|
" PBXTransientLocationAtTop " = bottom;
|
||||||
|
absolutePathToBundle = "";
|
||||||
|
clz = PBXErrorsWarningsSmartGroup;
|
||||||
|
description = "Displays files with errors or warnings.";
|
||||||
|
globalID = 1C08E77C0454961000C914BD;
|
||||||
|
name = "Errors and Warnings";
|
||||||
|
preferences = {
|
||||||
|
fnmatch = "";
|
||||||
|
image = WarningsErrors;
|
||||||
|
recursive = 1;
|
||||||
|
regex = "";
|
||||||
|
root = "<PROJECT>";
|
||||||
|
};
|
||||||
|
},
|
||||||
|
{
|
||||||
|
PBXTransientLocationAtTop = bottom;
|
||||||
|
absolutePathToBundle = "";
|
||||||
|
clz = PBXFilenameSmartGroup;
|
||||||
|
description = "Filters items in a given group (potentially recursively) based on matching the name with the regular expression of the filter.";
|
||||||
|
globalID = 1CC0EA4004350EF90044410B;
|
||||||
|
name = "Implementation Files";
|
||||||
|
preferences = {
|
||||||
|
canSave = 1;
|
||||||
|
fnmatch = "";
|
||||||
|
image = SmartFolder;
|
||||||
|
isLeaf = 0;
|
||||||
|
recursive = 1;
|
||||||
|
regex = "?*\\.[mcMC]";
|
||||||
|
root = "<PROJECT>";
|
||||||
|
};
|
||||||
|
},
|
||||||
|
{
|
||||||
|
PBXTransientLocationAtTop = bottom;
|
||||||
|
absolutePathToBundle = "";
|
||||||
|
clz = PBXFilenameSmartGroup;
|
||||||
|
description = "This group displays Interface Builder NIB Files.";
|
||||||
|
globalID = 1CC0EA4004350EF90041110B;
|
||||||
|
name = "NIB Files";
|
||||||
|
preferences = {
|
||||||
|
canSave = 1;
|
||||||
|
fnmatch = "*.nib";
|
||||||
|
image = SmartFolder;
|
||||||
|
isLeaf = 0;
|
||||||
|
recursive = 1;
|
||||||
|
regex = "";
|
||||||
|
root = "<PROJECT>";
|
||||||
|
};
|
||||||
|
},
|
||||||
|
{
|
||||||
|
PBXTransientLocationAtTop = no;
|
||||||
|
absolutePathToBundle = "";
|
||||||
|
clz = PBXFindSmartGroup;
|
||||||
|
description = "Displays Find Results.";
|
||||||
|
globalID = 1C37FABC05509CD000000102;
|
||||||
|
name = "Find Results";
|
||||||
|
preferences = {
|
||||||
|
image = spyglass;
|
||||||
|
};
|
||||||
|
},
|
||||||
|
{
|
||||||
|
PBXTransientLocationAtTop = no;
|
||||||
|
absolutePathToBundle = "";
|
||||||
|
clz = PBXBookmarksSmartGroup;
|
||||||
|
description = "Displays Project Bookmarks.";
|
||||||
|
globalID = 1C37FABC05539CD112110102;
|
||||||
|
name = Bookmarks;
|
||||||
|
preferences = {
|
||||||
|
image = Bookmarks;
|
||||||
|
};
|
||||||
|
},
|
||||||
|
{
|
||||||
|
PBXTransientLocationAtTop = bottom;
|
||||||
|
absolutePathToBundle = "";
|
||||||
|
clz = XCSCMSmartGroup;
|
||||||
|
description = "Displays files with interesting SCM status.";
|
||||||
|
globalID = E2644B35053B69B200211256;
|
||||||
|
name = SCM;
|
||||||
|
preferences = {
|
||||||
|
image = PBXRepository;
|
||||||
|
isLeaf = 0;
|
||||||
|
};
|
||||||
|
},
|
||||||
|
{
|
||||||
|
PBXTransientLocationAtTop = bottom;
|
||||||
|
absolutePathToBundle = "";
|
||||||
|
clz = PBXSymbolsSmartGroup;
|
||||||
|
description = "Displays all symbols for the project.";
|
||||||
|
globalID = 1C37FABC04509CD000100104;
|
||||||
|
name = "Project Symbols";
|
||||||
|
preferences = {
|
||||||
|
image = ProjectSymbols;
|
||||||
|
isLeaf = 1;
|
||||||
|
};
|
||||||
|
},
|
||||||
|
{
|
||||||
|
PBXTransientLocationAtTop = bottom;
|
||||||
|
absolutePathToBundle = "";
|
||||||
|
clz = PBXFilenameSmartGroup;
|
||||||
|
description = "Filters items in a given group (potentially recursively) based on matching the name with the regular expression of the filter.";
|
||||||
|
globalID = PBXTemplateMarker;
|
||||||
|
name = "Simple Filter SmartGroup";
|
||||||
|
preferences = {
|
||||||
|
canSave = 1;
|
||||||
|
fnmatch = "*.nib";
|
||||||
|
image = SmartFolder;
|
||||||
|
isLeaf = 0;
|
||||||
|
recursive = 1;
|
||||||
|
regex = "";
|
||||||
|
root = "<PROJECT>";
|
||||||
|
};
|
||||||
|
},
|
||||||
|
{
|
||||||
|
PBXTransientLocationAtTop = bottom;
|
||||||
|
absolutePathToBundle = "";
|
||||||
|
clz = PBXFilenameSmartGroup;
|
||||||
|
description = "Filters items in a given group (potentially recursively) based on matching the name with the regular expression of the filter.";
|
||||||
|
globalID = PBXTemplateMarker;
|
||||||
|
name = "Simple Regular Expression SmartGroup";
|
||||||
|
preferences = {
|
||||||
|
canSave = 1;
|
||||||
|
fnmatch = "";
|
||||||
|
image = SmartFolder;
|
||||||
|
isLeaf = 0;
|
||||||
|
recursive = 1;
|
||||||
|
regex = "?*\\.[mcMC]";
|
||||||
|
root = "<PROJECT>";
|
||||||
|
};
|
||||||
|
},
|
||||||
|
);
|
||||||
|
PBXWorkspaceContents = (
|
||||||
|
{
|
||||||
|
PBXProjectWorkspaceModule_StateKey_Rev39 = {
|
||||||
|
PBXProjectWorkspaceModule_DataSourceSelectionKey_Rev6 = {
|
||||||
|
BoundsStr = "{{0, 0}, {403, 284}}";
|
||||||
|
Rows = (
|
||||||
|
);
|
||||||
|
VisibleRectStr = "{{0, 0}, {403, 284}}";
|
||||||
|
};
|
||||||
|
PBXProjectWorkspaceModule_EditorOpen = false;
|
||||||
|
PBXProjectWorkspaceModule_EmbeddedNavigatorGroup = {
|
||||||
|
PBXSplitModuleInNavigatorKey = {
|
||||||
|
SplitCount = 1;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
PBXProjectWorkspaceModule_GeometryKey_Rev15 = {
|
||||||
|
PBXProjectWorkspaceModule_SGTM_Geometry = {
|
||||||
|
_collapsingFrameDimension = 0;
|
||||||
|
_indexOfCollapsedView = 0;
|
||||||
|
_percentageOfCollapsedView = 0;
|
||||||
|
sizes = (
|
||||||
|
"{{0, 0}, {182, 301}}",
|
||||||
|
"{{182, 0}, {418, 301}}",
|
||||||
|
);
|
||||||
|
};
|
||||||
|
};
|
||||||
|
PBXProjectWorkspaceModule_OldDetailFrame = "{{0, 0}, {418, 301}}";
|
||||||
|
PBXProjectWorkspaceModule_OldEditorFrame = "{{0, 0}, {750, 480}}";
|
||||||
|
PBXProjectWorkspaceModule_OldSuperviewFrame = "{{182, 0}, {418, 301}}";
|
||||||
|
PBXProjectWorkspaceModule_SGTM = {
|
||||||
|
PBXBottomSmartGroupGIDs = (
|
||||||
|
1C37FBAC04509CD000000102,
|
||||||
|
1C37FAAC04509CD000000102,
|
||||||
|
1C08E77C0454961000C914BD,
|
||||||
|
1CC0EA4004350EF90044410B,
|
||||||
|
1CC0EA4004350EF90041110B,
|
||||||
|
1C37FABC05509CD000000102,
|
||||||
|
1C37FABC05539CD112110102,
|
||||||
|
E2644B35053B69B200211256,
|
||||||
|
1C37FABC04509CD000100104,
|
||||||
|
);
|
||||||
|
PBXSmartGroupTreeModuleColumnData = {
|
||||||
|
PBXSmartGroupTreeModuleColumnWidthsKey = (
|
||||||
|
165,
|
||||||
|
);
|
||||||
|
PBXSmartGroupTreeModuleColumnsKey_v4 = (
|
||||||
|
MainColumn,
|
||||||
|
);
|
||||||
|
};
|
||||||
|
PBXSmartGroupTreeModuleOutlineStateKey_v7 = {
|
||||||
|
PBXSmartGroupTreeModuleOutlineStateExpansionKey = (
|
||||||
|
F5231FF1030C0E1D01CA1440,
|
||||||
|
2407DB62030C590B03CA16AF,
|
||||||
|
2407DB64030C590B03CA16AF,
|
||||||
|
2407DB66030C590B03CA16AF,
|
||||||
|
);
|
||||||
|
PBXSmartGroupTreeModuleOutlineStateSelectionKey = (
|
||||||
|
(
|
||||||
|
0,
|
||||||
|
),
|
||||||
|
);
|
||||||
|
PBXSmartGroupTreeModuleOutlineStateVisibleRectKey = "{{0, 0}, {165, 283}}";
|
||||||
|
};
|
||||||
|
PBXTopSmartGroupGIDs = (
|
||||||
|
);
|
||||||
|
};
|
||||||
|
};
|
||||||
|
},
|
||||||
|
);
|
||||||
|
"PBXWorkspaceContents:PBXConfiguration.PBXModule.PBXBuildResultsModule" = {
|
||||||
|
};
|
||||||
|
"PBXWorkspaceContents:PBXConfiguration.PBXModule.PBXCVSModule" = {
|
||||||
|
};
|
||||||
|
"PBXWorkspaceContents:PBXConfiguration.PBXModule.PBXDebugCLIModule" = {
|
||||||
|
};
|
||||||
|
"PBXWorkspaceContents:PBXConfiguration.PBXModule.PBXNavigatorGroup" = {
|
||||||
|
PBXSplitModuleInNavigatorKey = {
|
||||||
|
SplitCount = 1;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
"PBXWorkspaceContents:PBXConfiguration.PBXModule.PBXProjectWorkspaceModule" = {
|
||||||
|
PBXProjectWorkspaceModule_StateKey_Rev39 = {
|
||||||
|
PBXProjectWorkspaceModule_DataSourceSelectionKey_Rev6 = {
|
||||||
|
BoundsStr = "{{0, 0}, {403, 284}}";
|
||||||
|
Rows = (
|
||||||
|
0,
|
||||||
|
);
|
||||||
|
VisibleRectStr = "{{0, 0}, {403, 284}}";
|
||||||
|
};
|
||||||
|
PBXProjectWorkspaceModule_EditorOpen = false;
|
||||||
|
PBXProjectWorkspaceModule_EmbeddedNavigatorGroup = {
|
||||||
|
PBXSplitModuleInNavigatorKey = {
|
||||||
|
SplitCount = 1;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
PBXProjectWorkspaceModule_GeometryKey_Rev15 = {
|
||||||
|
PBXProjectWorkspaceModule_SGTM_Geometry = {
|
||||||
|
_collapsingFrameDimension = 0;
|
||||||
|
_indexOfCollapsedView = 0;
|
||||||
|
_percentageOfCollapsedView = 0;
|
||||||
|
sizes = (
|
||||||
|
"{{0, 0}, {182, 301}}",
|
||||||
|
"{{182, 0}, {418, 301}}",
|
||||||
|
);
|
||||||
|
};
|
||||||
|
};
|
||||||
|
PBXProjectWorkspaceModule_OldDetailFrame = "{{0, 0}, {418, 301}}";
|
||||||
|
PBXProjectWorkspaceModule_OldEditorFrame = "{{0, 0}, {750, 480}}";
|
||||||
|
PBXProjectWorkspaceModule_OldSuperviewFrame = "{{182, 0}, {418, 301}}";
|
||||||
|
PBXProjectWorkspaceModule_SGTM = {
|
||||||
|
PBXBottomSmartGroupGIDs = (
|
||||||
|
1C37FBAC04509CD000000102,
|
||||||
|
1C37FAAC04509CD000000102,
|
||||||
|
1C08E77C0454961000C914BD,
|
||||||
|
1CC0EA4004350EF90044410B,
|
||||||
|
1CC0EA4004350EF90041110B,
|
||||||
|
1C37FABC05509CD000000102,
|
||||||
|
1C37FABC05539CD112110102,
|
||||||
|
E2644B35053B69B200211256,
|
||||||
|
1C37FABC04509CD000100104,
|
||||||
|
);
|
||||||
|
PBXSmartGroupTreeModuleColumnData = {
|
||||||
|
PBXSmartGroupTreeModuleColumnWidthsKey = (
|
||||||
|
165,
|
||||||
|
);
|
||||||
|
PBXSmartGroupTreeModuleColumnsKey_v4 = (
|
||||||
|
MainColumn,
|
||||||
|
);
|
||||||
|
};
|
||||||
|
PBXSmartGroupTreeModuleOutlineStateKey_v7 = {
|
||||||
|
PBXSmartGroupTreeModuleOutlineStateExpansionKey = (
|
||||||
|
);
|
||||||
|
PBXSmartGroupTreeModuleOutlineStateSelectionKey = (
|
||||||
|
(
|
||||||
|
0,
|
||||||
|
),
|
||||||
|
);
|
||||||
|
PBXSmartGroupTreeModuleOutlineStateVisibleRectKey = "{{0, 0}, {165, 283}}";
|
||||||
|
};
|
||||||
|
PBXTopSmartGroupGIDs = (
|
||||||
|
);
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
"PBXWorkspaceContents:PBXConfiguration.PBXModule.PBXRunSessionModule" = {
|
||||||
|
LauncherConfigVersion = 3;
|
||||||
|
Runner = {
|
||||||
|
HorizontalSplitView = {
|
||||||
|
_collapsingFrameDimension = 0;
|
||||||
|
_indexOfCollapsedView = 0;
|
||||||
|
_percentageOfCollapsedView = 0;
|
||||||
|
isCollapsed = yes;
|
||||||
|
sizes = (
|
||||||
|
"{{0, 0}, {493, 167}}",
|
||||||
|
"{{0, 176}, {493, 267}}",
|
||||||
|
);
|
||||||
|
};
|
||||||
|
VerticalSplitView = {
|
||||||
|
_collapsingFrameDimension = 0;
|
||||||
|
_indexOfCollapsedView = 0;
|
||||||
|
_percentageOfCollapsedView = 0;
|
||||||
|
isCollapsed = yes;
|
||||||
|
sizes = (
|
||||||
|
"{{0, 0}, {405, 443}}",
|
||||||
|
"{{414, 0}, {514, 443}}",
|
||||||
|
);
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
PBXWorkspaceGeometries = (
|
||||||
|
{
|
||||||
|
Frame = "{{0, 0}, {600, 301}}";
|
||||||
|
PBXProjectWorkspaceModule_GeometryKey_Rev15 = {
|
||||||
|
};
|
||||||
|
RubberWindowFrame = "51 371 600 343 0 0 1024 746 ";
|
||||||
|
},
|
||||||
|
);
|
||||||
|
"PBXWorkspaceGeometries:PBXConfiguration.PBXModule.PBXBuildResultsModule" = {
|
||||||
|
Frame = "{{0, 0}, {480, 217}}";
|
||||||
|
PBXModuleWindowStatusBarHidden = YES;
|
||||||
|
RubberWindowFrame = "272 407 480 238 0 0 1024 746 ";
|
||||||
|
};
|
||||||
|
"PBXWorkspaceGeometries:PBXConfiguration.PBXModule.PBXCVSModule" = {
|
||||||
|
Frame = "{{0, 0}, {482, 276}}";
|
||||||
|
RubberWindowFrame = "262 214 482 318 0 0 1024 746 ";
|
||||||
|
};
|
||||||
|
"PBXWorkspaceGeometries:PBXConfiguration.PBXModule.PBXDebugCLIModule" = {
|
||||||
|
Frame = "{{0, 0}, {400, 201}}";
|
||||||
|
PBXModuleWindowStatusBarHidden = YES;
|
||||||
|
RubberWindowFrame = "50 718 400 222 0 0 1024 746 ";
|
||||||
|
};
|
||||||
|
"PBXWorkspaceGeometries:PBXConfiguration.PBXModule.PBXNavigatorGroup" = {
|
||||||
|
Frame = "{{0, 0}, {830, 495}}";
|
||||||
|
PBXModuleWindowStatusBarHidden = YES;
|
||||||
|
RubberWindowFrame = "61 183 830 516 0 0 1024 746 ";
|
||||||
|
};
|
||||||
|
"PBXWorkspaceGeometries:PBXConfiguration.PBXModule.PBXProjectWorkspaceModule" = {
|
||||||
|
Frame = "{{0, 0}, {600, 301}}";
|
||||||
|
PBXProjectWorkspaceModule_GeometryKey_Rev15 = {
|
||||||
|
};
|
||||||
|
RubberWindowFrame = "51 371 600 343 0 0 1024 746 ";
|
||||||
|
};
|
||||||
|
"PBXWorkspaceGeometries:PBXConfiguration.PBXModule.PBXRunSessionModule" = {
|
||||||
|
Frame = "{{0, 0}, {745, 422}}";
|
||||||
|
RubberWindowFrame = "139 272 745 464 0 0 1024 746 ";
|
||||||
|
};
|
||||||
|
PBXWorkspaceStateSaveDate = 113439148;
|
||||||
|
};
|
||||||
|
sourceControlManager = 03FB894606C2B72500727077;
|
||||||
|
userBuildSettings = {
|
||||||
|
};
|
||||||
|
};
|
||||||
|
F5231FFF030C0F5201CA1440 = {
|
||||||
|
uiCtxt = {
|
||||||
|
sepNavWindowFrame = "{{61, 127}, {830, 572}}";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
F523204D030C18FC01CA1440 = {
|
||||||
|
activeExec = 0;
|
||||||
|
};
|
||||||
|
F58EDDA5030C6D2F01CA1440 = {
|
||||||
|
activeArgIndex = 2147483647;
|
||||||
|
activeArgIndices = (
|
||||||
|
);
|
||||||
|
argumentStrings = (
|
||||||
|
);
|
||||||
|
configStateDict = {
|
||||||
|
};
|
||||||
|
debuggerPlugin = GDBDebugging;
|
||||||
|
dylibVariantSuffix = "";
|
||||||
|
enableDebugStr = 1;
|
||||||
|
environmentEntries = (
|
||||||
|
{
|
||||||
|
active = YES;
|
||||||
|
name = SHERLOCK_DEBUG_CHANNELS;
|
||||||
|
value = 1;
|
||||||
|
},
|
||||||
|
);
|
||||||
|
isa = PBXExecutable;
|
||||||
|
launchableReference = F58EDDA6030C6D2F01CA1440;
|
||||||
|
name = Sherlock;
|
||||||
|
shlibInfoDictList = (
|
||||||
|
);
|
||||||
|
sourceDirectories = (
|
||||||
|
);
|
||||||
|
};
|
||||||
|
F58EDDA6030C6D2F01CA1440 = {
|
||||||
|
fallbackIsa = PBXFileReference;
|
||||||
|
isa = PBXApplicationReference;
|
||||||
|
lastKnownFileType = wrapper.application;
|
||||||
|
name = Sherlock.app;
|
||||||
|
path = /Applications/Sherlock.app;
|
||||||
|
refType = 0;
|
||||||
|
sourceTree = "<absolute>";
|
||||||
|
};
|
||||||
|
F5E000E1030C2E9901CA1440 = {
|
||||||
|
uiCtxt = {
|
||||||
|
sepNavIntBoundsRect = "{{0, 0}, {711, 630}}";
|
||||||
|
sepNavSelRange = "{1825, 0}";
|
||||||
|
sepNavVisRect = "{{0, 181}, {711, 449}}";
|
||||||
|
sepNavWindowFrame = "{{38, 162}, {750, 558}}";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
184
SherlockRSS.xcode/project.pbxproj
Normal file
184
SherlockRSS.xcode/project.pbxproj
Normal file
|
@ -0,0 +1,184 @@
|
||||||
|
// !$*UTF8*$!
|
||||||
|
{
|
||||||
|
archiveVersion = 1;
|
||||||
|
classes = {
|
||||||
|
};
|
||||||
|
objectVersion = 39;
|
||||||
|
objects = {
|
||||||
|
033EA7B106C2E6AA00C73937 = {
|
||||||
|
fileEncoding = 30;
|
||||||
|
isa = PBXFileReference;
|
||||||
|
lastKnownFileType = text.html;
|
||||||
|
path = index.html;
|
||||||
|
refType = 4;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
|
//030
|
||||||
|
//031
|
||||||
|
//032
|
||||||
|
//033
|
||||||
|
//034
|
||||||
|
//240
|
||||||
|
//241
|
||||||
|
//242
|
||||||
|
//243
|
||||||
|
//244
|
||||||
|
2407DB62030C590B03CA16AF = {
|
||||||
|
children = (
|
||||||
|
2407DB63030C590B03CA16AF,
|
||||||
|
2407DB64030C590B03CA16AF,
|
||||||
|
2407DB66030C590B03CA16AF,
|
||||||
|
);
|
||||||
|
isa = PBXGroup;
|
||||||
|
path = Channel;
|
||||||
|
refType = 4;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
|
2407DB63030C590B03CA16AF = {
|
||||||
|
fileEncoding = 4;
|
||||||
|
isa = PBXFileReference;
|
||||||
|
lastKnownFileType = text.plist.xml;
|
||||||
|
path = Channel.xml;
|
||||||
|
refType = 4;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
|
2407DB64030C590B03CA16AF = {
|
||||||
|
children = (
|
||||||
|
2407DB65030C590B03CA16AF,
|
||||||
|
);
|
||||||
|
isa = PBXVariantGroup;
|
||||||
|
name = Channel.nib;
|
||||||
|
path = "";
|
||||||
|
refType = 4;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
|
2407DB65030C590B03CA16AF = {
|
||||||
|
isa = PBXFileReference;
|
||||||
|
lastKnownFileType = wrapper.nib;
|
||||||
|
name = en;
|
||||||
|
path = en.lproj/Channel.nib;
|
||||||
|
refType = 4;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
|
2407DB66030C590B03CA16AF = {
|
||||||
|
children = (
|
||||||
|
2407DB67030C590B03CA16AF,
|
||||||
|
);
|
||||||
|
isa = PBXVariantGroup;
|
||||||
|
name = LocalizedResources.plist;
|
||||||
|
path = "";
|
||||||
|
refType = 4;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
|
2407DB67030C590B03CA16AF = {
|
||||||
|
fileEncoding = 4;
|
||||||
|
isa = PBXFileReference;
|
||||||
|
lastKnownFileType = text.plist.xml;
|
||||||
|
name = en;
|
||||||
|
path = en.lproj/LocalizedResources.plist;
|
||||||
|
refType = 4;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
|
//240
|
||||||
|
//241
|
||||||
|
//242
|
||||||
|
//243
|
||||||
|
//244
|
||||||
|
//F50
|
||||||
|
//F51
|
||||||
|
//F52
|
||||||
|
//F53
|
||||||
|
//F54
|
||||||
|
F5231FF1030C0E1D01CA1440 = {
|
||||||
|
children = (
|
||||||
|
033EA7B106C2E6AA00C73937,
|
||||||
|
F5E000E1030C2E9901CA1440,
|
||||||
|
F5231FFF030C0F5201CA1440,
|
||||||
|
2407DB62030C590B03CA16AF,
|
||||||
|
);
|
||||||
|
isa = PBXGroup;
|
||||||
|
refType = 4;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
|
F5231FF3030C0E1D01CA1440 = {
|
||||||
|
buildRules = (
|
||||||
|
);
|
||||||
|
buildSettings = {
|
||||||
|
COPY_PHASE_STRIP = NO;
|
||||||
|
GCC_DYNAMIC_NO_PIC = NO;
|
||||||
|
GCC_ENABLE_FIX_AND_CONTINUE = YES;
|
||||||
|
GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
|
||||||
|
GCC_OPTIMIZATION_LEVEL = 0;
|
||||||
|
ZERO_LINK = YES;
|
||||||
|
};
|
||||||
|
isa = PBXBuildStyle;
|
||||||
|
name = Development;
|
||||||
|
};
|
||||||
|
F5231FF4030C0E1D01CA1440 = {
|
||||||
|
buildRules = (
|
||||||
|
);
|
||||||
|
buildSettings = {
|
||||||
|
COPY_PHASE_STRIP = YES;
|
||||||
|
GCC_ENABLE_FIX_AND_CONTINUE = NO;
|
||||||
|
ZERO_LINK = NO;
|
||||||
|
};
|
||||||
|
isa = PBXBuildStyle;
|
||||||
|
name = Deployment;
|
||||||
|
};
|
||||||
|
F5231FF5030C0E1D01CA1440 = {
|
||||||
|
buildSettings = {
|
||||||
|
};
|
||||||
|
buildStyles = (
|
||||||
|
F5231FF3030C0E1D01CA1440,
|
||||||
|
F5231FF4030C0E1D01CA1440,
|
||||||
|
);
|
||||||
|
hasScannedForEncodings = 1;
|
||||||
|
isa = PBXProject;
|
||||||
|
knownRegions = (
|
||||||
|
English,
|
||||||
|
Japanese,
|
||||||
|
French,
|
||||||
|
German,
|
||||||
|
en,
|
||||||
|
);
|
||||||
|
mainGroup = F5231FF1030C0E1D01CA1440;
|
||||||
|
projectDirPath = "";
|
||||||
|
targets = (
|
||||||
|
F523204D030C18FC01CA1440,
|
||||||
|
);
|
||||||
|
};
|
||||||
|
F5231FFF030C0F5201CA1440 = {
|
||||||
|
isa = PBXFileReference;
|
||||||
|
lastKnownFileType = image.icns;
|
||||||
|
path = Channel.icns;
|
||||||
|
refType = 4;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
|
F523204D030C18FC01CA1440 = {
|
||||||
|
buildPhases = (
|
||||||
|
);
|
||||||
|
buildSettings = {
|
||||||
|
OTHER_CFLAGS = "";
|
||||||
|
OTHER_LDFLAGS = "";
|
||||||
|
OTHER_REZFLAGS = "";
|
||||||
|
PRODUCT_NAME = SherlockRSS;
|
||||||
|
SECTORDER_FLAGS = "";
|
||||||
|
WARNING_CFLAGS = "-Wmost -Wno-four-char-constants -Wno-unknown-pragmas";
|
||||||
|
};
|
||||||
|
dependencies = (
|
||||||
|
);
|
||||||
|
isa = PBXAggregateTarget;
|
||||||
|
name = SherlockRSS;
|
||||||
|
productName = MyChannel;
|
||||||
|
};
|
||||||
|
F5E000E1030C2E9901CA1440 = {
|
||||||
|
fileEncoding = 4;
|
||||||
|
isa = PBXFileReference;
|
||||||
|
lastKnownFileType = text.plist.xml;
|
||||||
|
path = SherlockRSS.xml;
|
||||||
|
refType = 4;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
rootObject = F5231FF5030C0E1D01CA1440;
|
||||||
|
}
|
45
SherlockRSS.xml
Normal file
45
SherlockRSS.xml
Normal file
|
@ -0,0 +1,45 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
SherlockRSS License
|
||||||
|
|
||||||
|
Copyright (c) 2004, Erik C. Thauvin (http://www.thauvin.net/erik/)
|
||||||
|
All rights reserved.
|
||||||
|
|
||||||
|
Redistribution and use in source and binary forms, with or without
|
||||||
|
modification, are permitted provided that the following conditions are
|
||||||
|
met:
|
||||||
|
|
||||||
|
Redistributions of source code must retain the above copyright notice,
|
||||||
|
this list of conditions and the following disclaimer.
|
||||||
|
|
||||||
|
Redistributions in binary form must reproduce the above copyright notice,
|
||||||
|
this list of conditions and the following disclaimer in the documentation
|
||||||
|
and/or other materials provided with the distribution.
|
||||||
|
|
||||||
|
Neither the name of the authors nor the names of its contributors may be
|
||||||
|
used to endorse or promote products derived from this software without
|
||||||
|
specific prior written permission.
|
||||||
|
|
||||||
|
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
|
||||||
|
IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
|
||||||
|
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||||
|
PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
|
||||||
|
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
||||||
|
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
||||||
|
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
|
||||||
|
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
||||||
|
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||||
|
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||||
|
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
-->
|
||||||
|
|
||||||
|
<channel_info
|
||||||
|
identifier="net.thauvin.sherlockRSS"
|
||||||
|
icon_url="Channel.icns"
|
||||||
|
channel_url="Channel/Channel.xml"
|
||||||
|
localized_base_url="Channel/"
|
||||||
|
nib_url="Channel.nib/objects.nib"
|
||||||
|
help_file="help.html"
|
||||||
|
check_point="true"
|
||||||
|
/>
|
12
index.html
Normal file
12
index.html
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>SherlockRSS Tests</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<h3>SherlockRSS Tests</h3>
|
||||||
|
<ul>
|
||||||
|
<li><a href="sherlock://www.thauvin.net/erik/download/SherlockRSS/SherlockRSS.xml?action=add&subscribe&query=http%3A//www.thauvin.net/blog/xml.jsp">Subscribe & View Erik's Weblog</a>
|
||||||
|
<li><a href="sherlock://www.thauvin.net/erik/download/SherlockRSS/SherlockRSS.xml?action=add&subscribe&query=http%3A//www.thauvin.net/linkblog/xml.jsp?view=links">Subscribe & View Erik's Linkblog</a>
|
||||||
|
</ul>
|
||||||
|
</body>
|
||||||
|
</html>
|
Loading…
Add table
Add a link
Reference in a new issue