commit 76e2008e544f9c68772c587458e4c905418ab62a Author: Erik C. Thauvin Date: Fri Aug 6 00:32:20 2004 +0000 Initial import. diff --git a/.cvsignore b/.cvsignore new file mode 100644 index 0000000..d2c928a --- /dev/null +++ b/.cvsignore @@ -0,0 +1,3 @@ +.DS_Store +build +*~ diff --git a/Channel.icns b/Channel.icns new file mode 100644 index 0000000..29f1785 Binary files /dev/null and b/Channel.icns differ diff --git a/Channel/Channel.xml b/Channel/Channel.xml new file mode 100644 index 0000000..0680dd8 --- /dev/null +++ b/Channel/Channel.xml @@ -0,0 +1,145 @@ + + + + + + + + + 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", ""); + + + + + + + + debug("----- Channel did install -----"); + + /* Set a default value in the search field */ + // DataStore.Set("Internet.MainQueryField.objectValue", ""); + + + + + + 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"); + + + + + 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.") + ) + + + + query = DataStore.Get("URL.query"); + if (query) + { + DataStore.Set("Internet.MainQueryField.objectValue", query); + DataStore.Set("Internet.NetworkArrows.animating", true); + DataStore.Notify("DATA.action.performSearch"); + } + + + + {-- 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 + + + + + + diff --git a/Channel/en.lproj/Channel.nib/CVS.tiff b/Channel/en.lproj/Channel.nib/CVS.tiff new file mode 100644 index 0000000..6aaecb7 Binary files /dev/null and b/Channel/en.lproj/Channel.nib/CVS.tiff differ diff --git a/Channel/en.lproj/Channel.nib/classes.nib b/Channel/en.lproj/Channel.nib/classes.nib new file mode 100644 index 0000000..c3dbbba --- /dev/null +++ b/Channel/en.lproj/Channel.nib/classes.nib @@ -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; +} \ No newline at end of file diff --git a/Channel/en.lproj/Channel.nib/classes.nib.tiff b/Channel/en.lproj/Channel.nib/classes.nib.tiff new file mode 100644 index 0000000..00a9317 Binary files /dev/null and b/Channel/en.lproj/Channel.nib/classes.nib.tiff differ diff --git a/Channel/en.lproj/Channel.nib/data.dependency b/Channel/en.lproj/Channel.nib/data.dependency new file mode 100644 index 0000000..df01f23 --- /dev/null +++ b/Channel/en.lproj/Channel.nib/data.dependency @@ -0,0 +1,10 @@ + + + + + IBPaletteDependency + + Sherlock + + + diff --git a/Channel/en.lproj/Channel.nib/data.dependency.tiff b/Channel/en.lproj/Channel.nib/data.dependency.tiff new file mode 100644 index 0000000..573f821 Binary files /dev/null and b/Channel/en.lproj/Channel.nib/data.dependency.tiff differ diff --git a/Channel/en.lproj/Channel.nib/info.nib b/Channel/en.lproj/Channel.nib/info.nib new file mode 100644 index 0000000..2b92c67 --- /dev/null +++ b/Channel/en.lproj/Channel.nib/info.nib @@ -0,0 +1,34 @@ + + + + + IBDocumentLocation + 186 -55 397 423 0 0 1152 746 + IBEditorPositions + + 5 + 238 230 547 506 0 0 1024 746 + + IBFramework Version + 364.0 + IBOpenObjects + + 5 + + IBSystem Version + 7H63 + IBUserGuides + + 5 + + guideLocations + + Horizontal:459.000000 + Horizontal:268.000000 + + guidesLocked + + + + + diff --git a/Channel/en.lproj/Channel.nib/info.nib.tiff b/Channel/en.lproj/Channel.nib/info.nib.tiff new file mode 100644 index 0000000..00a9317 Binary files /dev/null and b/Channel/en.lproj/Channel.nib/info.nib.tiff differ diff --git a/Channel/en.lproj/Channel.nib/objects.nib b/Channel/en.lproj/Channel.nib/objects.nib new file mode 100644 index 0000000..0bc8659 Binary files /dev/null and b/Channel/en.lproj/Channel.nib/objects.nib differ diff --git a/Channel/en.lproj/Channel.nib/objects.nib.tiff b/Channel/en.lproj/Channel.nib/objects.nib.tiff new file mode 100644 index 0000000..00a9317 Binary files /dev/null and b/Channel/en.lproj/Channel.nib/objects.nib.tiff differ diff --git a/Channel/en.lproj/Channel~.nib/CVS.tiff b/Channel/en.lproj/Channel~.nib/CVS.tiff new file mode 100644 index 0000000..6aaecb7 Binary files /dev/null and b/Channel/en.lproj/Channel~.nib/CVS.tiff differ diff --git a/Channel/en.lproj/Channel~.nib/classes.nib b/Channel/en.lproj/Channel~.nib/classes.nib new file mode 100644 index 0000000..c3dbbba --- /dev/null +++ b/Channel/en.lproj/Channel~.nib/classes.nib @@ -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; +} \ No newline at end of file diff --git a/Channel/en.lproj/Channel~.nib/classes.nib.tiff b/Channel/en.lproj/Channel~.nib/classes.nib.tiff new file mode 100644 index 0000000..00a9317 Binary files /dev/null and b/Channel/en.lproj/Channel~.nib/classes.nib.tiff differ diff --git a/Channel/en.lproj/Channel~.nib/data.dependency b/Channel/en.lproj/Channel~.nib/data.dependency new file mode 100644 index 0000000..df01f23 --- /dev/null +++ b/Channel/en.lproj/Channel~.nib/data.dependency @@ -0,0 +1,10 @@ + + + + + IBPaletteDependency + + Sherlock + + + diff --git a/Channel/en.lproj/Channel~.nib/data.dependency.tiff b/Channel/en.lproj/Channel~.nib/data.dependency.tiff new file mode 100644 index 0000000..573f821 Binary files /dev/null and b/Channel/en.lproj/Channel~.nib/data.dependency.tiff differ diff --git a/Channel/en.lproj/Channel~.nib/info.nib b/Channel/en.lproj/Channel~.nib/info.nib new file mode 100644 index 0000000..2b92c67 --- /dev/null +++ b/Channel/en.lproj/Channel~.nib/info.nib @@ -0,0 +1,34 @@ + + + + + IBDocumentLocation + 186 -55 397 423 0 0 1152 746 + IBEditorPositions + + 5 + 238 230 547 506 0 0 1024 746 + + IBFramework Version + 364.0 + IBOpenObjects + + 5 + + IBSystem Version + 7H63 + IBUserGuides + + 5 + + guideLocations + + Horizontal:459.000000 + Horizontal:268.000000 + + guidesLocked + + + + + diff --git a/Channel/en.lproj/Channel~.nib/info.nib.tiff b/Channel/en.lproj/Channel~.nib/info.nib.tiff new file mode 100644 index 0000000..00a9317 Binary files /dev/null and b/Channel/en.lproj/Channel~.nib/info.nib.tiff differ diff --git a/Channel/en.lproj/Channel~.nib/objects.nib b/Channel/en.lproj/Channel~.nib/objects.nib new file mode 100644 index 0000000..d2b1ed1 Binary files /dev/null and b/Channel/en.lproj/Channel~.nib/objects.nib differ diff --git a/Channel/en.lproj/Channel~.nib/objects.nib.tiff b/Channel/en.lproj/Channel~.nib/objects.nib.tiff new file mode 100644 index 0000000..00a9317 Binary files /dev/null and b/Channel/en.lproj/Channel~.nib/objects.nib.tiff differ diff --git a/Channel/en.lproj/LocalizedResources.plist b/Channel/en.lproj/LocalizedResources.plist new file mode 100644 index 0000000..33d5145 --- /dev/null +++ b/Channel/en.lproj/LocalizedResources.plist @@ -0,0 +1,10 @@ + + + + + CHANNEL_NAME + SherlockRSS + CHANNEL_DESCRIPTION + A simple RSS feed viewer. + + diff --git a/Channel/en.lproj/help.html b/Channel/en.lproj/help.html new file mode 100644 index 0000000..44363a5 --- /dev/null +++ b/Channel/en.lproj/help.html @@ -0,0 +1,37 @@ + + + + + SherlockRSS Channel Help + + + +
+ + + + + +
SherlockRSS Channel Help
+ + + + + + + + + +

+
+

+ About... +

+ Use this Sherlock Channel to view RSS feeds.
Developed by Erik C. Thauvin.
+

+
+
+
+ + + \ No newline at end of file diff --git a/SherlockRSS.xcode/default.pbxuser b/SherlockRSS.xcode/default.pbxuser new file mode 100644 index 0000000..c104f8a --- /dev/null +++ b/SherlockRSS.xcode/default.pbxuser @@ -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; + }; +} diff --git a/SherlockRSS.xcode/erik.pbxuser b/SherlockRSS.xcode/erik.pbxuser new file mode 100644 index 0000000..d8c44e7 --- /dev/null +++ b/SherlockRSS.xcode/erik.pbxuser @@ -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 = ""; + }; + }, + { + 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 = ""; + }; + }, + { + 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 = ""; + }; + }, + { + 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 = ""; + }; + }, + { + 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 = ""; + }; + }, + ); + 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 = ""; + }; + F5E000E1030C2E9901CA1440 = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {711, 630}}"; + sepNavSelRange = "{1825, 0}"; + sepNavVisRect = "{{0, 181}, {711, 449}}"; + sepNavWindowFrame = "{{38, 162}, {750, 558}}"; + }; + }; +} diff --git a/SherlockRSS.xcode/project.pbxproj b/SherlockRSS.xcode/project.pbxproj new file mode 100644 index 0000000..c813653 --- /dev/null +++ b/SherlockRSS.xcode/project.pbxproj @@ -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 = ""; + }; +//030 +//031 +//032 +//033 +//034 +//240 +//241 +//242 +//243 +//244 + 2407DB62030C590B03CA16AF = { + children = ( + 2407DB63030C590B03CA16AF, + 2407DB64030C590B03CA16AF, + 2407DB66030C590B03CA16AF, + ); + isa = PBXGroup; + path = Channel; + refType = 4; + sourceTree = ""; + }; + 2407DB63030C590B03CA16AF = { + fileEncoding = 4; + isa = PBXFileReference; + lastKnownFileType = text.plist.xml; + path = Channel.xml; + refType = 4; + sourceTree = ""; + }; + 2407DB64030C590B03CA16AF = { + children = ( + 2407DB65030C590B03CA16AF, + ); + isa = PBXVariantGroup; + name = Channel.nib; + path = ""; + refType = 4; + sourceTree = ""; + }; + 2407DB65030C590B03CA16AF = { + isa = PBXFileReference; + lastKnownFileType = wrapper.nib; + name = en; + path = en.lproj/Channel.nib; + refType = 4; + sourceTree = ""; + }; + 2407DB66030C590B03CA16AF = { + children = ( + 2407DB67030C590B03CA16AF, + ); + isa = PBXVariantGroup; + name = LocalizedResources.plist; + path = ""; + refType = 4; + sourceTree = ""; + }; + 2407DB67030C590B03CA16AF = { + fileEncoding = 4; + isa = PBXFileReference; + lastKnownFileType = text.plist.xml; + name = en; + path = en.lproj/LocalizedResources.plist; + refType = 4; + sourceTree = ""; + }; +//240 +//241 +//242 +//243 +//244 +//F50 +//F51 +//F52 +//F53 +//F54 + F5231FF1030C0E1D01CA1440 = { + children = ( + 033EA7B106C2E6AA00C73937, + F5E000E1030C2E9901CA1440, + F5231FFF030C0F5201CA1440, + 2407DB62030C590B03CA16AF, + ); + isa = PBXGroup; + refType = 4; + sourceTree = ""; + }; + 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 = ""; + }; + 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 = ""; + }; + }; + rootObject = F5231FF5030C0E1D01CA1440; +} diff --git a/SherlockRSS.xml b/SherlockRSS.xml new file mode 100644 index 0000000..12aef76 --- /dev/null +++ b/SherlockRSS.xml @@ -0,0 +1,45 @@ + + + + + \ No newline at end of file diff --git a/index.html b/index.html new file mode 100644 index 0000000..84ffbeb --- /dev/null +++ b/index.html @@ -0,0 +1,12 @@ + + +SherlockRSS Tests + + +

SherlockRSS Tests

+ + + \ No newline at end of file