diff options
Diffstat (limited to 'cocoa')
| -rw-r--r-- | cocoa/ScintillaCocoa.h | 3 | ||||
| -rw-r--r-- | cocoa/ScintillaCocoa.mm | 62 | ||||
| -rw-r--r-- | cocoa/ScintillaTest/AppController.h | 1 | ||||
| -rw-r--r-- | cocoa/ScintillaTest/AppController.mm | 12 | ||||
| -rw-r--r-- | cocoa/ScintillaTest/English.lproj/MainMenu.xib | 927 | ||||
| -rw-r--r-- | cocoa/ScintillaView.h | 16 | ||||
| -rw-r--r-- | cocoa/ScintillaView.mm | 88 | 
7 files changed, 963 insertions, 146 deletions
| diff --git a/cocoa/ScintillaCocoa.h b/cocoa/ScintillaCocoa.h index 5be17c773..a5d6575f4 100644 --- a/cocoa/ScintillaCocoa.h +++ b/cocoa/ScintillaCocoa.h @@ -14,7 +14,7 @@   */  #include <stdlib.h> -#include <string.h> +#include <string>  #include <stdio.h>  #include <ctype.h>  #include <time.h> @@ -122,6 +122,7 @@ protected:    virtual void Initialise();    virtual void Finalise(); +  virtual std::string CaseMapString(const std::string &s, int caseMapping);  public:    ScintillaCocoa(NSView* view);    virtual ~ScintillaCocoa(); diff --git a/cocoa/ScintillaCocoa.mm b/cocoa/ScintillaCocoa.mm index f91183aa2..6d3296a51 100644 --- a/cocoa/ScintillaCocoa.mm +++ b/cocoa/ScintillaCocoa.mm @@ -255,6 +255,31 @@ void ScintillaCocoa::Finalise()  //--------------------------------------------------------------------------------------------------  /** + * Case-fold the given string depending on the specified case mapping type. + * Note: ScintillaCocoa exclusively works with Unicode. We don't even think about adding support for + *       obsolete code page stuff.     + */ +std::string ScintillaCocoa::CaseMapString(const std::string &s, int caseMapping) +{ +  NSString* textToConvert = [NSString stringWithUTF8String: s.c_str()]; +  std::string result; +  switch (caseMapping) +  { +    case cmUpper: +      result = [[textToConvert uppercaseString] UTF8String]; +      break; +    case cmLower: +      result = [[textToConvert lowercaseString] UTF8String]; +      break; +    default: +      result = s; +  } +  return result; +} + +//-------------------------------------------------------------------------------------------------- + +/**   * Helper function to get the outer container which represents the Scintilla editor on application side.   */  ScintillaView* ScintillaCocoa::TopContainer() @@ -501,14 +526,15 @@ void ScintillaCocoa::Paste(bool forceRectangular)    pdoc->BeginUndoAction();    ClearSelection(); +  int length = selectedText.len - 1; // One less to avoid inserting the terminating 0 character.    if (selectedText.rectangular)    {      SelectionPosition selStart = sel.RangeMain().Start(); -    PasteRectangular(selStart, selectedText.s, selectedText.len); +    PasteRectangular(selStart, selectedText.s, length);    }    else  -    if (pdoc->InsertString(sel.RangeMain().caret.Position(), selectedText.s, selectedText.len)) -      SetEmptySelection(sel.RangeMain().caret.Position() + selectedText.len); +    if (pdoc->InsertString(sel.RangeMain().caret.Position(), selectedText.s, length)) +      SetEmptySelection(sel.RangeMain().caret.Position() + length);    pdoc->EndUndoAction(); @@ -1373,34 +1399,32 @@ void ScintillaCocoa::MouseUp(NSEvent* event)  void ScintillaCocoa::MouseWheel(NSEvent* event)  {    bool command = ([event modifierFlags] & NSCommandKeyMask) != 0; -  bool shift = ([event modifierFlags] & NSShiftKeyMask) != 0; -  int delta; -  if (shift) -    delta = 10 * [event deltaX]; // Arbitrary scale factor. -  else -  { +  int dX = 0; +  int dY = 0; + +  dX = 10 * [event deltaX]; // Arbitrary scale factor. +      // In order to make scrolling with larger offset smoother we scroll less lines the larger the       // delta value is.      if ([event deltaY] < 0) -      delta = -(int) sqrt(-10.0 * [event deltaY]); +    dY = -(int) sqrt(-10.0 * [event deltaY]);      else -      delta = (int) sqrt(10.0 * [event deltaY]); -  } +    dY = (int) sqrt(10.0 * [event deltaY]);    if (command)    {      // Zoom! We play with the font sizes in the styles.      // Number of steps/line is ignored, we just care if sizing up or down. -    if (delta > 0) +    if (dY > 0.5)        KeyCommand(SCI_ZOOMIN); -    else +    else if (dY < -0.5)        KeyCommand(SCI_ZOOMOUT);    }    else -    if (shift) -      HorizontalScrollTo(xOffset - delta); -    else -      ScrollTo(topLine - delta, true); +  { +    HorizontalScrollTo(xOffset - dX); +    ScrollTo(topLine - dY, true); +  }  }  //-------------------------------------------------------------------------------------------------- @@ -1429,7 +1453,7 @@ void ScintillaCocoa::Undo()  void ScintillaCocoa::Redo()  { -  Editor::Undo(); +  Editor::Redo();  }  //-------------------------------------------------------------------------------------------------- diff --git a/cocoa/ScintillaTest/AppController.h b/cocoa/ScintillaTest/AppController.h index f324615d1..dbc2417f5 100644 --- a/cocoa/ScintillaTest/AppController.h +++ b/cocoa/ScintillaTest/AppController.h @@ -19,5 +19,6 @@  - (void) awakeFromNib;  - (void) setupEditor; +- (IBAction) searchText: (id) sender;  @end diff --git a/cocoa/ScintillaTest/AppController.mm b/cocoa/ScintillaTest/AppController.mm index d660e0f75..9bce5fd11 100644 --- a/cocoa/ScintillaTest/AppController.mm +++ b/cocoa/ScintillaTest/AppController.mm @@ -209,6 +209,18 @@ const char user_keywords[] = // Definition of own keywords, not used by MySQL.    [mEditor setStatusText: @"Operation complete"];  } +//-------------------------------------------------------------------------------------------------- + +- (IBAction) searchText: (id) sender +{ +  NSSearchField* searchField = (NSSearchField*) sender; +  [mEditor findAndHighlightText: [searchField stringValue] +                      matchCase: NO +                      wholeWord: NO +                       scrollTo: YES +                           wrap: YES]; +} +  @end  //-------------------------------------------------------------------------------------------------- diff --git a/cocoa/ScintillaTest/English.lproj/MainMenu.xib b/cocoa/ScintillaTest/English.lproj/MainMenu.xib index e795086ed..6de460712 100644 --- a/cocoa/ScintillaTest/English.lproj/MainMenu.xib +++ b/cocoa/ScintillaTest/English.lproj/MainMenu.xib @@ -1,23 +1,26 @@  <?xml version="1.0" encoding="UTF-8"?> -<archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="7.03"> +<archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="7.10">  	<data>  		<int key="IBDocument.SystemTarget">1050</int> -		<string key="IBDocument.SystemVersion">9G55</string> -		<string key="IBDocument.InterfaceBuilderVersion">677</string> -		<string key="IBDocument.AppKitVersion">949.43</string> -		<string key="IBDocument.HIToolboxVersion">353.00</string> +		<string key="IBDocument.SystemVersion">10D573</string> +		<string key="IBDocument.InterfaceBuilderVersion">762</string> +		<string key="IBDocument.AppKitVersion">1038.29</string> +		<string key="IBDocument.HIToolboxVersion">460.00</string> +		<object class="NSMutableDictionary" key="IBDocument.PluginVersions"> +			<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin</string> +			<string key="NS.object.0">762</string> +		</object>  		<object class="NSMutableArray" key="IBDocument.EditedObjectIDs">  			<bool key="EncodedWithXMLCoder">YES</bool>  			<integer value="372"/>  		</object>  		<object class="NSArray" key="IBDocument.PluginDependencies">  			<bool key="EncodedWithXMLCoder">YES</bool> -			<string>com.apple.InterfaceBuilderKit</string>  			<string>com.apple.InterfaceBuilder.CocoaPlugin</string>  		</object>  		<object class="NSMutableDictionary" key="IBDocument.Metadata">  			<bool key="EncodedWithXMLCoder">YES</bool> -			<object class="NSArray" key="dict.sortedKeys"> +			<object class="NSArray" key="dict.sortedKeys" id="0">  				<bool key="EncodedWithXMLCoder">YES</bool>  			</object>  			<object class="NSMutableArray" key="dict.values"> @@ -79,7 +82,7 @@  								</object>  								<object class="NSMenuItem" id="609285721">  									<reference key="NSMenu" ref="110575045"/> -									<string type="base64-UTF8" key="NSTitle">UHJlZmVyZW5jZXPigKY</string> +									<string key="NSTitle">Preferences…</string>  									<string key="NSKeyEquiv">,</string>  									<int key="NSKeyEquivModMask">1048576</int>  									<int key="NSMnemonicLoc">2147483647</int> @@ -200,7 +203,7 @@  								</object>  								<object class="NSMenuItem" id="722745758">  									<reference key="NSMenu" ref="720053764"/> -									<string type="base64-UTF8" key="NSTitle">T3BlbuKApg</string> +									<string key="NSTitle">Open…</string>  									<string key="NSKeyEquiv">o</string>  									<int key="NSKeyEquivModMask">1048576</int>  									<int key="NSMnemonicLoc">2147483647</int> @@ -264,7 +267,7 @@  								</object>  								<object class="NSMenuItem" id="117038363">  									<reference key="NSMenu" ref="720053764"/> -									<string type="base64-UTF8" key="NSTitle">U2F2ZSBBc+KApg</string> +									<string key="NSTitle">Save As…</string>  									<string key="NSKeyEquiv">S</string>  									<int key="NSKeyEquivModMask">1179648</int>  									<int key="NSMnemonicLoc">2147483647</int> @@ -302,7 +305,7 @@  								</object>  								<object class="NSMenuItem" id="49223823">  									<reference key="NSMenu" ref="720053764"/> -									<string type="base64-UTF8" key="NSTitle">UHJpbnTigKY</string> +									<string key="NSTitle">Print…</string>  									<string key="NSKeyEquiv">p</string>  									<int key="NSKeyEquivModMask">1048576</int>  									<int key="NSMnemonicLoc">2147483647</int> @@ -425,7 +428,7 @@  											<bool key="EncodedWithXMLCoder">YES</bool>  											<object class="NSMenuItem" id="447796847">  												<reference key="NSMenu" ref="963351320"/> -												<string type="base64-UTF8" key="NSTitle">RmluZOKApg</string> +												<string key="NSTitle">Find…</string>  												<string key="NSKeyEquiv">f</string>  												<int key="NSKeyEquivModMask">1048576</int>  												<int key="NSMnemonicLoc">2147483647</int> @@ -490,7 +493,7 @@  											<bool key="EncodedWithXMLCoder">YES</bool>  											<object class="NSMenuItem" id="679648819">  												<reference key="NSMenu" ref="769623530"/> -												<string type="base64-UTF8" key="NSTitle">U2hvdyBTcGVsbGluZ+KApg</string> +												<string key="NSTitle">Show Spelling…</string>  												<string key="NSKeyEquiv">:</string>  												<int key="NSKeyEquivModMask">1048576</int>  												<int key="NSMnemonicLoc">2147483647</int> @@ -1017,7 +1020,7 @@  								</object>  								<object class="NSMenuItem" id="237841660">  									<reference key="NSMenu" ref="466310130"/> -									<string type="base64-UTF8" key="NSTitle">Q3VzdG9taXplIFRvb2xiYXLigKY</string> +									<string key="NSTitle">Customize Toolbar…</string>  									<string key="NSKeyEquiv"/>  									<int key="NSKeyEquivModMask">1048576</int>  									<int key="NSMnemonicLoc">2147483647</int> @@ -1118,7 +1121,7 @@  				<string key="NSWindowTitle">Window</string>  				<string key="NSWindowClass">NSWindow</string>  				<nil key="NSViewClass"/> -				<string key="NSWindowContentMaxSize">{3.40282e+38, 3.40282e+38}</string> +				<string key="NSWindowContentMaxSize">{1.79769e+308, 1.79769e+308}</string>  				<object class="NSView" key="NSWindowView" id="439893737">  					<reference key="NSNextResponder"/>  					<int key="NSvFlags">319</int> @@ -1132,11 +1135,11 @@  								<object class="NSView" id="33804839">  									<reference key="NSNextResponder" ref="1016473779"/>  									<int key="NSvFlags">256</int> -									<string key="NSFrame">{{1, 1}, {842, 640}}</string> +									<string key="NSFrame">{{1, 1}, {842, 590}}</string>  									<reference key="NSSuperview" ref="1016473779"/>  								</object>  							</object> -							<string key="NSFrame">{{17, 16}, {844, 656}}</string> +							<string key="NSFrame">{{17, 16}, {844, 606}}</string>  							<reference key="NSSuperview" ref="439893737"/>  							<string key="NSOffsets">{0, 0}</string>  							<object class="NSTextFieldCell" key="NSTitleCell"> @@ -1145,10 +1148,10 @@  								<string key="NSContents">Scintilla Editor</string>  								<object class="NSFont" key="NSSupport">  									<string key="NSName">LucidaGrande</string> -									<double key="NSSize">1.100000e+01</double> +									<double key="NSSize">11</double>  									<int key="NSfFlags">3100</int>  								</object> -								<object class="NSColor" key="NSBackgroundColor"> +								<object class="NSColor" key="NSBackgroundColor" id="561710607">  									<int key="NSColorSpace">6</int>  									<string key="NSCatalogName">System</string>  									<string key="NSColorName">textBackgroundColor</string> @@ -1178,9 +1181,9 @@  								<int key="NSCellFlags">67239424</int>  								<int key="NSCellFlags2">134217728</int>  								<string key="NSContents">Quit</string> -								<object class="NSFont" key="NSSupport"> +								<object class="NSFont" key="NSSupport" id="887178038">  									<string key="NSName">LucidaGrande</string> -									<double key="NSSize">1.300000e+01</double> +									<double key="NSSize">13</double>  									<int key="NSfFlags">1044</int>  								</object>  								<reference key="NSControlView" ref="610247741"/> @@ -1192,12 +1195,81 @@  								<int key="NSPeriodicInterval">25</int>  							</object>  						</object> +						<object class="NSSearchField" id="552917647"> +							<reference key="NSNextResponder" ref="439893737"/> +							<int key="NSvFlags">268</int> +							<string key="NSFrame">{{20, 630}, {287, 22}}</string> +							<reference key="NSSuperview" ref="439893737"/> +							<bool key="NSEnabled">YES</bool> +							<object class="NSSearchFieldCell" key="NSCell" id="515024530"> +								<int key="NSCellFlags">343014976</int> +								<int key="NSCellFlags2">268436480</int> +								<string key="NSContents"/> +								<reference key="NSSupport" ref="887178038"/> +								<reference key="NSControlView" ref="552917647"/> +								<bool key="NSDrawsBackground">YES</bool> +								<int key="NSTextBezelStyle">1</int> +								<reference key="NSBackgroundColor" ref="561710607"/> +								<object class="NSColor" key="NSTextColor"> +									<int key="NSColorSpace">6</int> +									<string key="NSCatalogName">System</string> +									<string key="NSColorName">controlTextColor</string> +									<object class="NSColor" key="NSColor"> +										<int key="NSColorSpace">3</int> +										<bytes key="NSWhite">MAA</bytes> +									</object> +								</object> +								<object class="NSButtonCell" key="NSSearchButtonCell"> +									<int key="NSCellFlags">130560</int> +									<int key="NSCellFlags2">0</int> +									<string key="NSContents">search</string> +									<reference key="NSControlView" ref="552917647"/> +									<string key="NSAction">_searchFieldSearch:</string> +									<reference key="NSTarget" ref="515024530"/> +									<int key="NSButtonFlags">138690815</int> +									<int key="NSButtonFlags2">0</int> +									<string key="NSKeyEquivalent"/> +									<int key="NSPeriodicDelay">400</int> +									<int key="NSPeriodicInterval">75</int> +								</object> +								<object class="NSButtonCell" key="NSCancelButtonCell"> +									<int key="NSCellFlags">130560</int> +									<int key="NSCellFlags2">0</int> +									<string key="NSContents">clear</string> +									<object class="NSMutableArray" key="NSAccessibilityOverriddenAttributes"> +										<bool key="EncodedWithXMLCoder">YES</bool> +										<object class="NSMutableDictionary"> +											<bool key="EncodedWithXMLCoder">YES</bool> +											<object class="NSArray" key="dict.sortedKeys"> +												<bool key="EncodedWithXMLCoder">YES</bool> +												<string>AXDescription</string> +												<string>NSAccessibilityEncodedAttributesValueType</string> +											</object> +											<object class="NSMutableArray" key="dict.values"> +												<bool key="EncodedWithXMLCoder">YES</bool> +												<string>cancel</string> +												<integer value="1"/> +											</object> +										</object> +									</object> +									<reference key="NSControlView" ref="552917647"/> +									<string key="NSAction">_searchFieldCancel:</string> +									<reference key="NSTarget" ref="515024530"/> +									<int key="NSButtonFlags">138690815</int> +									<int key="NSButtonFlags2">0</int> +									<string key="NSKeyEquivalent"/> +									<int key="NSPeriodicDelay">400</int> +									<int key="NSPeriodicInterval">75</int> +								</object> +								<int key="NSMaximumRecents">255</int> +							</object> +						</object>  					</object>  					<string key="NSFrameSize">{982, 692}</string>  					<reference key="NSSuperview"/>  				</object>  				<string key="NSScreenRect">{{0, 0}, {1440, 878}}</string> -				<string key="NSMaxSize">{3.40282e+38, 3.40282e+38}</string> +				<string key="NSMaxSize">{1.79769e+308, 1.79769e+308}</string>  			</object>  			<object class="NSCustomObject" id="755631768">  				<string key="NSClassName">NSFontManager</string> @@ -1753,34 +1825,40 @@  					</object>  					<int key="connectionID">455</int>  				</object> +				<object class="IBConnectionRecord"> +					<object class="IBActionConnection" key="connection"> +						<string key="label">searchText:</string> +						<reference key="source" ref="229445039"/> +						<reference key="destination" ref="552917647"/> +					</object> +					<int key="connectionID">468</int> +				</object>  			</object>  			<object class="IBMutableOrderedSet" key="objectRecords">  				<object class="NSArray" key="orderedObjects">  					<bool key="EncodedWithXMLCoder">YES</bool>  					<object class="IBObjectRecord">  						<int key="objectID">0</int> -						<object class="NSArray" key="object" id="1049"> -							<bool key="EncodedWithXMLCoder">YES</bool> -						</object> +						<reference key="object" ref="0"/>  						<reference key="children" ref="1048"/>  						<nil key="parent"/>  					</object>  					<object class="IBObjectRecord">  						<int key="objectID">-2</int>  						<reference key="object" ref="1021"/> -						<reference key="parent" ref="1049"/> -						<string type="base64-UTF8" key="objectName">RmlsZSdzIE93bmVyA</string> +						<reference key="parent" ref="0"/> +						<string key="objectName">File's Owner</string>  					</object>  					<object class="IBObjectRecord">  						<int key="objectID">-1</int>  						<reference key="object" ref="1014"/> -						<reference key="parent" ref="1049"/> +						<reference key="parent" ref="0"/>  						<string key="objectName">First Responder</string>  					</object>  					<object class="IBObjectRecord">  						<int key="objectID">-3</int>  						<reference key="object" ref="1050"/> -						<reference key="parent" ref="1049"/> +						<reference key="parent" ref="0"/>  						<string key="objectName">Application</string>  					</object>  					<object class="IBObjectRecord"> @@ -1796,7 +1874,7 @@  							<reference ref="586577488"/>  							<reference ref="302598603"/>  						</object> -						<reference key="parent" ref="1049"/> +						<reference key="parent" ref="0"/>  						<string key="objectName">MainMenu</string>  					</object>  					<object class="IBObjectRecord"> @@ -2332,7 +2410,7 @@  							<bool key="EncodedWithXMLCoder">YES</bool>  							<reference ref="439893737"/>  						</object> -						<reference key="parent" ref="1049"/> +						<reference key="parent" ref="0"/>  					</object>  					<object class="IBObjectRecord">  						<int key="objectID">372</int> @@ -2341,6 +2419,7 @@  							<bool key="EncodedWithXMLCoder">YES</bool>  							<reference ref="1016473779"/>  							<reference ref="610247741"/> +							<reference ref="552917647"/>  						</object>  						<reference key="parent" ref="972006081"/>  					</object> @@ -2652,12 +2731,12 @@  					<object class="IBObjectRecord">  						<int key="objectID">420</int>  						<reference key="object" ref="755631768"/> -						<reference key="parent" ref="1049"/> +						<reference key="parent" ref="0"/>  					</object>  					<object class="IBObjectRecord">  						<int key="objectID">450</int>  						<reference key="object" ref="229445039"/> -						<reference key="parent" ref="1049"/> +						<reference key="parent" ref="0"/>  					</object>  					<object class="IBObjectRecord">  						<int key="objectID">451</int> @@ -2678,14 +2757,26 @@  						<reference key="object" ref="1009897894"/>  						<reference key="parent" ref="610247741"/>  					</object> +					<object class="IBObjectRecord"> +						<int key="objectID">466</int> +						<reference key="object" ref="552917647"/> +						<object class="NSMutableArray" key="children"> +							<bool key="EncodedWithXMLCoder">YES</bool> +							<reference ref="515024530"/> +						</object> +						<reference key="parent" ref="439893737"/> +					</object> +					<object class="IBObjectRecord"> +						<int key="objectID">467</int> +						<reference key="object" ref="515024530"/> +						<reference key="parent" ref="552917647"/> +					</object>  				</object>  			</object>  			<object class="NSMutableDictionary" key="flattenedProperties">  				<bool key="EncodedWithXMLCoder">YES</bool> -				<object class="NSMutableArray" key="dict.sortedKeys"> +				<object class="NSArray" key="dict.sortedKeys">  					<bool key="EncodedWithXMLCoder">YES</bool> -					<string>-1.IBPluginDependency</string> -					<string>-2.IBPluginDependency</string>  					<string>-3.IBPluginDependency</string>  					<string>103.IBPluginDependency</string>  					<string>103.ImportedFromIB2</string> @@ -2817,6 +2908,7 @@  					<string>354.IBPluginDependency</string>  					<string>354.ImportedFromIB2</string>  					<string>371.IBEditorWindowLastContentRect</string> +					<string>371.IBPluginDependency</string>  					<string>371.IBWindowTemplateEditedContentRect</string>  					<string>371.NSWindowTemplate.visibleAtLaunch</string>  					<string>371.editorWindowContentRectSynchronizationRect</string> @@ -2869,11 +2961,11 @@  					<string>417.IBPluginDependency</string>  					<string>418.IBPluginDependency</string>  					<string>419.IBPluginDependency</string> -					<string>420.IBPluginDependency</string> -					<string>450.IBPluginDependency</string>  					<string>451.IBPluginDependency</string>  					<string>452.IBPluginDependency</string>  					<string>453.IBPluginDependency</string> +					<string>466.IBPluginDependency</string> +					<string>467.IBPluginDependency</string>  					<string>5.IBPluginDependency</string>  					<string>5.ImportedFromIB2</string>  					<string>56.IBPluginDependency</string> @@ -2913,117 +3005,115 @@  				<object class="NSMutableArray" key="dict.values">  					<bool key="EncodedWithXMLCoder">YES</bool>  					<string>com.apple.InterfaceBuilder.CocoaPlugin</string> -					<string>com.apple.InterfaceBuilderKit</string> -					<string>com.apple.InterfaceBuilderKit</string>  					<string>com.apple.InterfaceBuilder.CocoaPlugin</string> -					<integer value="1" id="9"/> +					<integer value="1"/>  					<string>com.apple.InterfaceBuilder.CocoaPlugin</string> -					<reference ref="9"/> +					<integer value="1"/>  					<string>{{596, 852}, {216, 23}}</string>  					<string>com.apple.InterfaceBuilder.CocoaPlugin</string> -					<reference ref="9"/> +					<integer value="1"/>  					<string>com.apple.InterfaceBuilder.CocoaPlugin</string> -					<reference ref="9"/> +					<integer value="1"/>  					<string>com.apple.InterfaceBuilder.CocoaPlugin</string> -					<reference ref="9"/> +					<integer value="1"/>  					<string>com.apple.InterfaceBuilder.CocoaPlugin</string> -					<reference ref="9"/> +					<integer value="1"/>  					<string>{{522, 812}, {146, 23}}</string>  					<string>com.apple.InterfaceBuilder.CocoaPlugin</string> -					<reference ref="9"/> +					<integer value="1"/>  					<string>com.apple.InterfaceBuilder.CocoaPlugin</string> -					<reference ref="9"/> +					<integer value="1"/>  					<string>com.apple.InterfaceBuilder.CocoaPlugin</string> -					<reference ref="9"/> +					<integer value="1"/>  					<string>{{436, 809}, {64, 6}}</string>  					<string>com.apple.InterfaceBuilder.CocoaPlugin</string> -					<reference ref="9"/> +					<integer value="1"/>  					<string>com.apple.InterfaceBuilder.CocoaPlugin</string> -					<reference ref="9"/> +					<integer value="1"/>  					<string>com.apple.InterfaceBuilder.CocoaPlugin</string> -					<reference ref="9"/> +					<integer value="1"/>  					<string>com.apple.InterfaceBuilder.CocoaPlugin</string> -					<reference ref="9"/> +					<integer value="1"/>  					<string>com.apple.InterfaceBuilder.CocoaPlugin</string> -					<reference ref="9"/> +					<integer value="1"/>  					<string>com.apple.InterfaceBuilder.CocoaPlugin</string> -					<reference ref="9"/> +					<integer value="1"/>  					<string>com.apple.InterfaceBuilder.CocoaPlugin</string> -					<reference ref="9"/> +					<integer value="1"/>  					<string>com.apple.InterfaceBuilder.CocoaPlugin</string> -					<reference ref="9"/> +					<integer value="1"/>  					<string>com.apple.InterfaceBuilder.CocoaPlugin</string> -					<reference ref="9"/> +					<integer value="1"/>  					<string>com.apple.InterfaceBuilder.CocoaPlugin</string> -					<reference ref="9"/> +					<integer value="1"/>  					<string>com.apple.InterfaceBuilder.CocoaPlugin</string> -					<reference ref="9"/> +					<integer value="1"/>  					<string>com.apple.InterfaceBuilder.CocoaPlugin</string> -					<reference ref="9"/> +					<integer value="1"/>  					<string>com.apple.InterfaceBuilder.CocoaPlugin</string> -					<reference ref="9"/> +					<integer value="1"/>  					<string>com.apple.InterfaceBuilder.CocoaPlugin</string> -					<reference ref="9"/> +					<integer value="1"/>  					<string>com.apple.InterfaceBuilder.CocoaPlugin</string> -					<reference ref="9"/> +					<integer value="1"/>  					<string>{{608, 612}, {275, 83}}</string>  					<string>com.apple.InterfaceBuilder.CocoaPlugin</string> -					<reference ref="9"/> +					<integer value="1"/>  					<string>com.apple.InterfaceBuilder.CocoaPlugin</string> -					<reference ref="9"/> +					<integer value="1"/>  					<string>com.apple.InterfaceBuilder.CocoaPlugin</string> -					<reference ref="9"/> +					<integer value="1"/>  					<string>com.apple.InterfaceBuilder.CocoaPlugin</string> -					<reference ref="9"/> +					<integer value="1"/>  					<string>com.apple.InterfaceBuilder.CocoaPlugin</string> -					<reference ref="9"/> +					<integer value="1"/>  					<string>{{187, 434}, {243, 243}}</string>  					<string>com.apple.InterfaceBuilder.CocoaPlugin</string> -					<reference ref="9"/> +					<integer value="1"/>  					<string>com.apple.InterfaceBuilder.CocoaPlugin</string> -					<reference ref="9"/> +					<integer value="1"/>  					<string>com.apple.InterfaceBuilder.CocoaPlugin</string> -					<reference ref="9"/> +					<integer value="1"/>  					<string>com.apple.InterfaceBuilder.CocoaPlugin</string> -					<reference ref="9"/> +					<integer value="1"/>  					<string>com.apple.InterfaceBuilder.CocoaPlugin</string> -					<reference ref="9"/> +					<integer value="1"/>  					<string>com.apple.InterfaceBuilder.CocoaPlugin</string> -					<reference ref="9"/> +					<integer value="1"/>  					<string>com.apple.InterfaceBuilder.CocoaPlugin</string> -					<reference ref="9"/> +					<integer value="1"/>  					<string>{{608, 612}, {167, 43}}</string>  					<string>com.apple.InterfaceBuilder.CocoaPlugin</string> -					<reference ref="9"/> +					<integer value="1"/>  					<string>com.apple.InterfaceBuilder.CocoaPlugin</string> -					<reference ref="9"/> +					<integer value="1"/>  					<string>com.apple.InterfaceBuilder.CocoaPlugin</string> -					<reference ref="9"/> +					<integer value="1"/>  					<string>com.apple.InterfaceBuilder.CocoaPlugin</string> -					<reference ref="9"/> +					<integer value="1"/>  					<string>com.apple.InterfaceBuilder.CocoaPlugin</string> -					<reference ref="9"/> +					<integer value="1"/>  					<string>com.apple.InterfaceBuilder.CocoaPlugin</string> -					<reference ref="9"/> +					<integer value="1"/>  					<string>com.apple.InterfaceBuilder.CocoaPlugin</string> -					<reference ref="9"/> +					<integer value="1"/>  					<string>com.apple.InterfaceBuilder.CocoaPlugin</string> -					<reference ref="9"/> +					<integer value="1"/>  					<string>{{608, 612}, {241, 103}}</string>  					<string>com.apple.InterfaceBuilder.CocoaPlugin</string> -					<reference ref="9"/> +					<integer value="1"/>  					<string>com.apple.InterfaceBuilder.CocoaPlugin</string> -					<reference ref="9"/> +					<integer value="1"/>  					<string>com.apple.InterfaceBuilder.CocoaPlugin</string> -					<reference ref="9"/> +					<integer value="1"/>  					<string>com.apple.InterfaceBuilder.CocoaPlugin</string> -					<reference ref="9"/> +					<integer value="1"/>  					<string>com.apple.InterfaceBuilder.CocoaPlugin</string> -					<reference ref="9"/> +					<integer value="1"/>  					<string>{{525, 802}, {197, 73}}</string>  					<string>{{207, 285}, {478, 20}}</string>  					<string>com.apple.InterfaceBuilder.CocoaPlugin</string> -					<reference ref="9"/> +					<integer value="1"/>  					<string>{74, 862}</string>  					<string>{{6, 978}, {478, 20}}</string>  					<string>com.apple.InterfaceBuilder.CocoaPlugin</string> @@ -3032,21 +3122,22 @@  					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>  					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>  					<string>com.apple.InterfaceBuilder.CocoaPlugin</string> -					<reference ref="9"/> +					<integer value="1"/>  					<string>com.apple.InterfaceBuilder.CocoaPlugin</string> -					<reference ref="9"/> +					<integer value="1"/>  					<string>com.apple.InterfaceBuilder.CocoaPlugin</string> -					<reference ref="9"/> +					<integer value="1"/>  					<string>{{608, 612}, {215, 63}}</string>  					<string>com.apple.InterfaceBuilder.CocoaPlugin</string> -					<reference ref="9"/> +					<integer value="1"/> +					<string>com.apple.InterfaceBuilder.CocoaPlugin</string> +					<integer value="1"/>  					<string>com.apple.InterfaceBuilder.CocoaPlugin</string> -					<reference ref="9"/> +					<integer value="1"/> +					<string>{{274, 370}, {982, 692}}</string>  					<string>com.apple.InterfaceBuilder.CocoaPlugin</string> -					<reference ref="9"/> -					<string>{{274, 369}, {982, 692}}</string> -					<string>{{274, 369}, {982, 692}}</string> -					<reference ref="9"/> +					<string>{{274, 370}, {982, 692}}</string> +					<integer value="1"/>  					<string>{{33, 99}, {480, 360}}</string>  					<string>{3.40282e+38, 3.40282e+38}</string>  					<string>com.apple.InterfaceBuilder.CocoaPlugin</string> @@ -3103,47 +3194,45 @@  					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>  					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>  					<string>com.apple.InterfaceBuilder.CocoaPlugin</string> -					<reference ref="9"/> +					<integer value="1"/>  					<string>com.apple.InterfaceBuilder.CocoaPlugin</string> -					<reference ref="9"/> +					<integer value="1"/>  					<string>{{219, 102}, {245, 183}}</string>  					<string>com.apple.InterfaceBuilder.CocoaPlugin</string> -					<reference ref="9"/> +					<integer value="1"/>  					<string>{{23, 794}, {245, 183}}</string>  					<string>com.apple.InterfaceBuilder.CocoaPlugin</string> -					<reference ref="9"/> +					<integer value="1"/>  					<string>com.apple.InterfaceBuilder.CocoaPlugin</string> -					<reference ref="9"/> +					<integer value="1"/>  					<string>com.apple.InterfaceBuilder.CocoaPlugin</string> -					<reference ref="9"/> +					<integer value="1"/>  					<string>com.apple.InterfaceBuilder.CocoaPlugin</string> -					<reference ref="9"/> +					<integer value="1"/>  					<string>com.apple.InterfaceBuilder.CocoaPlugin</string> -					<reference ref="9"/> +					<integer value="1"/>  					<string>com.apple.InterfaceBuilder.CocoaPlugin</string> -					<reference ref="9"/> +					<integer value="1"/>  					<string>com.apple.InterfaceBuilder.CocoaPlugin</string> -					<reference ref="9"/> +					<integer value="1"/>  					<string>com.apple.InterfaceBuilder.CocoaPlugin</string> -					<reference ref="9"/> +					<integer value="1"/>  					<string>com.apple.InterfaceBuilder.CocoaPlugin</string> -					<reference ref="9"/> +					<integer value="1"/>  					<string>com.apple.InterfaceBuilder.CocoaPlugin</string> -					<reference ref="9"/> +					<integer value="1"/>  					<string>{{145, 474}, {199, 203}}</string>  					<string>com.apple.InterfaceBuilder.CocoaPlugin</string> -					<reference ref="9"/> +					<integer value="1"/>  					<string>com.apple.InterfaceBuilder.CocoaPlugin</string> -					<reference ref="9"/> +					<integer value="1"/>  					<string>com.apple.InterfaceBuilder.CocoaPlugin</string> -					<reference ref="9"/> +					<integer value="1"/>  				</object>  			</object>  			<object class="NSMutableDictionary" key="unlocalizedProperties">  				<bool key="EncodedWithXMLCoder">YES</bool> -				<object class="NSArray" key="dict.sortedKeys"> -					<bool key="EncodedWithXMLCoder">YES</bool> -				</object> +				<reference key="dict.sortedKeys" ref="0"/>  				<object class="NSMutableArray" key="dict.values">  					<bool key="EncodedWithXMLCoder">YES</bool>  				</object> @@ -3151,15 +3240,13 @@  			<nil key="activeLocalization"/>  			<object class="NSMutableDictionary" key="localizations">  				<bool key="EncodedWithXMLCoder">YES</bool> -				<object class="NSArray" key="dict.sortedKeys"> -					<bool key="EncodedWithXMLCoder">YES</bool> -				</object> +				<reference key="dict.sortedKeys" ref="0"/>  				<object class="NSMutableArray" key="dict.values">  					<bool key="EncodedWithXMLCoder">YES</bool>  				</object>  			</object>  			<nil key="sourceID"/> -			<int key="maxID">458</int> +			<int key="maxID">468</int>  		</object>  		<object class="IBClassDescriber" key="IBDocument.Classes">  			<object class="NSMutableArray" key="referencedPartialClassDescriptions"> @@ -3167,6 +3254,10 @@  				<object class="IBPartialClassDescription">  					<string key="className">AppController</string>  					<string key="superclassName">NSObject</string> +					<object class="NSMutableDictionary" key="actions"> +						<string key="NS.key.0">searchText:</string> +						<string key="NS.object.0">id</string> +					</object>  					<object class="NSMutableDictionary" key="outlets">  						<string key="NS.key.0">mEditHost</string>  						<string key="NS.object.0">NSBox</string> @@ -3177,9 +3268,601 @@  					</object>  				</object>  			</object> +			<object class="NSMutableArray" key="referencedPartialClassDescriptionsV3.2+"> +				<bool key="EncodedWithXMLCoder">YES</bool> +				<object class="IBPartialClassDescription"> +					<string key="className">NSActionCell</string> +					<string key="superclassName">NSCell</string> +					<object class="IBClassDescriptionSource" key="sourceIdentifier"> +						<string key="majorKey">IBFrameworkSource</string> +						<string key="minorKey">AppKit.framework/Headers/NSActionCell.h</string> +					</object> +				</object> +				<object class="IBPartialClassDescription"> +					<string key="className">NSApplication</string> +					<string key="superclassName">NSResponder</string> +					<object class="IBClassDescriptionSource" key="sourceIdentifier" id="905531705"> +						<string key="majorKey">IBFrameworkSource</string> +						<string key="minorKey">AppKit.framework/Headers/NSApplication.h</string> +					</object> +				</object> +				<object class="IBPartialClassDescription"> +					<string key="className">NSApplication</string> +					<object class="IBClassDescriptionSource" key="sourceIdentifier" id="854027565"> +						<string key="majorKey">IBFrameworkSource</string> +						<string key="minorKey">AppKit.framework/Headers/NSApplicationScripting.h</string> +					</object> +				</object> +				<object class="IBPartialClassDescription"> +					<string key="className">NSApplication</string> +					<object class="IBClassDescriptionSource" key="sourceIdentifier" id="562071960"> +						<string key="majorKey">IBFrameworkSource</string> +						<string key="minorKey">AppKit.framework/Headers/NSColorPanel.h</string> +					</object> +				</object> +				<object class="IBPartialClassDescription"> +					<string key="className">NSApplication</string> +					<object class="IBClassDescriptionSource" key="sourceIdentifier"> +						<string key="majorKey">IBFrameworkSource</string> +						<string key="minorKey">AppKit.framework/Headers/NSHelpManager.h</string> +					</object> +				</object> +				<object class="IBPartialClassDescription"> +					<string key="className">NSApplication</string> +					<object class="IBClassDescriptionSource" key="sourceIdentifier"> +						<string key="majorKey">IBFrameworkSource</string> +						<string key="minorKey">AppKit.framework/Headers/NSPageLayout.h</string> +					</object> +				</object> +				<object class="IBPartialClassDescription"> +					<string key="className">NSApplication</string> +					<object class="IBClassDescriptionSource" key="sourceIdentifier"> +						<string key="majorKey">IBFrameworkSource</string> +						<string key="minorKey">AppKit.framework/Headers/NSUserInterfaceItemSearching.h</string> +					</object> +				</object> +				<object class="IBPartialClassDescription"> +					<string key="className">NSBox</string> +					<string key="superclassName">NSView</string> +					<object class="IBClassDescriptionSource" key="sourceIdentifier"> +						<string key="majorKey">IBFrameworkSource</string> +						<string key="minorKey">AppKit.framework/Headers/NSBox.h</string> +					</object> +				</object> +				<object class="IBPartialClassDescription"> +					<string key="className">NSBrowser</string> +					<string key="superclassName">NSControl</string> +					<object class="IBClassDescriptionSource" key="sourceIdentifier"> +						<string key="majorKey">IBFrameworkSource</string> +						<string key="minorKey">AppKit.framework/Headers/NSBrowser.h</string> +					</object> +				</object> +				<object class="IBPartialClassDescription"> +					<string key="className">NSButton</string> +					<string key="superclassName">NSControl</string> +					<object class="IBClassDescriptionSource" key="sourceIdentifier"> +						<string key="majorKey">IBFrameworkSource</string> +						<string key="minorKey">AppKit.framework/Headers/NSButton.h</string> +					</object> +				</object> +				<object class="IBPartialClassDescription"> +					<string key="className">NSButtonCell</string> +					<string key="superclassName">NSActionCell</string> +					<object class="IBClassDescriptionSource" key="sourceIdentifier"> +						<string key="majorKey">IBFrameworkSource</string> +						<string key="minorKey">AppKit.framework/Headers/NSButtonCell.h</string> +					</object> +				</object> +				<object class="IBPartialClassDescription"> +					<string key="className">NSCell</string> +					<string key="superclassName">NSObject</string> +					<object class="IBClassDescriptionSource" key="sourceIdentifier"> +						<string key="majorKey">IBFrameworkSource</string> +						<string key="minorKey">AppKit.framework/Headers/NSCell.h</string> +					</object> +				</object> +				<object class="IBPartialClassDescription"> +					<string key="className">NSControl</string> +					<string key="superclassName">NSView</string> +					<object class="IBClassDescriptionSource" key="sourceIdentifier" id="10957210"> +						<string key="majorKey">IBFrameworkSource</string> +						<string key="minorKey">AppKit.framework/Headers/NSControl.h</string> +					</object> +				</object> +				<object class="IBPartialClassDescription"> +					<string key="className">NSDocument</string> +					<string key="superclassName">NSObject</string> +					<object class="NSMutableDictionary" key="actions"> +						<bool key="EncodedWithXMLCoder">YES</bool> +						<object class="NSArray" key="dict.sortedKeys"> +							<bool key="EncodedWithXMLCoder">YES</bool> +							<string>printDocument:</string> +							<string>revertDocumentToSaved:</string> +							<string>runPageLayout:</string> +							<string>saveDocument:</string> +							<string>saveDocumentAs:</string> +							<string>saveDocumentTo:</string> +						</object> +						<object class="NSMutableArray" key="dict.values"> +							<bool key="EncodedWithXMLCoder">YES</bool> +							<string>id</string> +							<string>id</string> +							<string>id</string> +							<string>id</string> +							<string>id</string> +							<string>id</string> +						</object> +					</object> +					<object class="IBClassDescriptionSource" key="sourceIdentifier"> +						<string key="majorKey">IBFrameworkSource</string> +						<string key="minorKey">AppKit.framework/Headers/NSDocument.h</string> +					</object> +				</object> +				<object class="IBPartialClassDescription"> +					<string key="className">NSDocument</string> +					<object class="IBClassDescriptionSource" key="sourceIdentifier"> +						<string key="majorKey">IBFrameworkSource</string> +						<string key="minorKey">AppKit.framework/Headers/NSDocumentScripting.h</string> +					</object> +				</object> +				<object class="IBPartialClassDescription"> +					<string key="className">NSDocumentController</string> +					<string key="superclassName">NSObject</string> +					<object class="NSMutableDictionary" key="actions"> +						<bool key="EncodedWithXMLCoder">YES</bool> +						<object class="NSArray" key="dict.sortedKeys"> +							<bool key="EncodedWithXMLCoder">YES</bool> +							<string>clearRecentDocuments:</string> +							<string>newDocument:</string> +							<string>openDocument:</string> +							<string>saveAllDocuments:</string> +						</object> +						<object class="NSMutableArray" key="dict.values"> +							<bool key="EncodedWithXMLCoder">YES</bool> +							<string>id</string> +							<string>id</string> +							<string>id</string> +							<string>id</string> +						</object> +					</object> +					<object class="IBClassDescriptionSource" key="sourceIdentifier"> +						<string key="majorKey">IBFrameworkSource</string> +						<string key="minorKey">AppKit.framework/Headers/NSDocumentController.h</string> +					</object> +				</object> +				<object class="IBPartialClassDescription"> +					<string key="className">NSFontManager</string> +					<string key="superclassName">NSObject</string> +					<object class="IBClassDescriptionSource" key="sourceIdentifier" id="60454901"> +						<string key="majorKey">IBFrameworkSource</string> +						<string key="minorKey">AppKit.framework/Headers/NSFontManager.h</string> +					</object> +				</object> +				<object class="IBPartialClassDescription"> +					<string key="className">NSFormatter</string> +					<string key="superclassName">NSObject</string> +					<object class="IBClassDescriptionSource" key="sourceIdentifier"> +						<string key="majorKey">IBFrameworkSource</string> +						<string key="minorKey">Foundation.framework/Headers/NSFormatter.h</string> +					</object> +				</object> +				<object class="IBPartialClassDescription"> +					<string key="className">NSMatrix</string> +					<string key="superclassName">NSControl</string> +					<object class="IBClassDescriptionSource" key="sourceIdentifier"> +						<string key="majorKey">IBFrameworkSource</string> +						<string key="minorKey">AppKit.framework/Headers/NSMatrix.h</string> +					</object> +				</object> +				<object class="IBPartialClassDescription"> +					<string key="className">NSMenu</string> +					<string key="superclassName">NSObject</string> +					<object class="IBClassDescriptionSource" key="sourceIdentifier" id="687201532"> +						<string key="majorKey">IBFrameworkSource</string> +						<string key="minorKey">AppKit.framework/Headers/NSMenu.h</string> +					</object> +				</object> +				<object class="IBPartialClassDescription"> +					<string key="className">NSMenuItem</string> +					<string key="superclassName">NSObject</string> +					<object class="IBClassDescriptionSource" key="sourceIdentifier" id="283337664"> +						<string key="majorKey">IBFrameworkSource</string> +						<string key="minorKey">AppKit.framework/Headers/NSMenuItem.h</string> +					</object> +				</object> +				<object class="IBPartialClassDescription"> +					<string key="className">NSMovieView</string> +					<string key="superclassName">NSView</string> +					<object class="IBClassDescriptionSource" key="sourceIdentifier"> +						<string key="majorKey">IBFrameworkSource</string> +						<string key="minorKey">AppKit.framework/Headers/NSMovieView.h</string> +					</object> +				</object> +				<object class="IBPartialClassDescription"> +					<string key="className">NSObject</string> +					<object class="IBClassDescriptionSource" key="sourceIdentifier"> +						<string key="majorKey">IBFrameworkSource</string> +						<string key="minorKey">AppKit.framework/Headers/NSAccessibility.h</string> +					</object> +				</object> +				<object class="IBPartialClassDescription"> +					<string key="className">NSObject</string> +					<reference key="sourceIdentifier" ref="905531705"/> +				</object> +				<object class="IBPartialClassDescription"> +					<string key="className">NSObject</string> +					<reference key="sourceIdentifier" ref="854027565"/> +				</object> +				<object class="IBPartialClassDescription"> +					<string key="className">NSObject</string> +					<reference key="sourceIdentifier" ref="562071960"/> +				</object> +				<object class="IBPartialClassDescription"> +					<string key="className">NSObject</string> +					<reference key="sourceIdentifier" ref="10957210"/> +				</object> +				<object class="IBPartialClassDescription"> +					<string key="className">NSObject</string> +					<object class="IBClassDescriptionSource" key="sourceIdentifier"> +						<string key="majorKey">IBFrameworkSource</string> +						<string key="minorKey">AppKit.framework/Headers/NSDictionaryController.h</string> +					</object> +				</object> +				<object class="IBPartialClassDescription"> +					<string key="className">NSObject</string> +					<object class="IBClassDescriptionSource" key="sourceIdentifier"> +						<string key="majorKey">IBFrameworkSource</string> +						<string key="minorKey">AppKit.framework/Headers/NSDragging.h</string> +					</object> +				</object> +				<object class="IBPartialClassDescription"> +					<string key="className">NSObject</string> +					<reference key="sourceIdentifier" ref="60454901"/> +				</object> +				<object class="IBPartialClassDescription"> +					<string key="className">NSObject</string> +					<object class="IBClassDescriptionSource" key="sourceIdentifier"> +						<string key="majorKey">IBFrameworkSource</string> +						<string key="minorKey">AppKit.framework/Headers/NSFontPanel.h</string> +					</object> +				</object> +				<object class="IBPartialClassDescription"> +					<string key="className">NSObject</string> +					<object class="IBClassDescriptionSource" key="sourceIdentifier"> +						<string key="majorKey">IBFrameworkSource</string> +						<string key="minorKey">AppKit.framework/Headers/NSKeyValueBinding.h</string> +					</object> +				</object> +				<object class="IBPartialClassDescription"> +					<string key="className">NSObject</string> +					<reference key="sourceIdentifier" ref="687201532"/> +				</object> +				<object class="IBPartialClassDescription"> +					<string key="className">NSObject</string> +					<object class="IBClassDescriptionSource" key="sourceIdentifier"> +						<string key="majorKey">IBFrameworkSource</string> +						<string key="minorKey">AppKit.framework/Headers/NSNibLoading.h</string> +					</object> +				</object> +				<object class="IBPartialClassDescription"> +					<string key="className">NSObject</string> +					<object class="IBClassDescriptionSource" key="sourceIdentifier"> +						<string key="majorKey">IBFrameworkSource</string> +						<string key="minorKey">AppKit.framework/Headers/NSOutlineView.h</string> +					</object> +				</object> +				<object class="IBPartialClassDescription"> +					<string key="className">NSObject</string> +					<object class="IBClassDescriptionSource" key="sourceIdentifier"> +						<string key="majorKey">IBFrameworkSource</string> +						<string key="minorKey">AppKit.framework/Headers/NSPasteboard.h</string> +					</object> +				</object> +				<object class="IBPartialClassDescription"> +					<string key="className">NSObject</string> +					<object class="IBClassDescriptionSource" key="sourceIdentifier"> +						<string key="majorKey">IBFrameworkSource</string> +						<string key="minorKey">AppKit.framework/Headers/NSSavePanel.h</string> +					</object> +				</object> +				<object class="IBPartialClassDescription"> +					<string key="className">NSObject</string> +					<object class="IBClassDescriptionSource" key="sourceIdentifier" id="1040540259"> +						<string key="majorKey">IBFrameworkSource</string> +						<string key="minorKey">AppKit.framework/Headers/NSTableView.h</string> +					</object> +				</object> +				<object class="IBPartialClassDescription"> +					<string key="className">NSObject</string> +					<object class="IBClassDescriptionSource" key="sourceIdentifier"> +						<string key="majorKey">IBFrameworkSource</string> +						<string key="minorKey">AppKit.framework/Headers/NSToolbarItem.h</string> +					</object> +				</object> +				<object class="IBPartialClassDescription"> +					<string key="className">NSObject</string> +					<object class="IBClassDescriptionSource" key="sourceIdentifier" id="763667182"> +						<string key="majorKey">IBFrameworkSource</string> +						<string key="minorKey">AppKit.framework/Headers/NSView.h</string> +					</object> +				</object> +				<object class="IBPartialClassDescription"> +					<string key="className">NSObject</string> +					<object class="IBClassDescriptionSource" key="sourceIdentifier"> +						<string key="majorKey">IBFrameworkSource</string> +						<string key="minorKey">Foundation.framework/Headers/NSArchiver.h</string> +					</object> +				</object> +				<object class="IBPartialClassDescription"> +					<string key="className">NSObject</string> +					<object class="IBClassDescriptionSource" key="sourceIdentifier"> +						<string key="majorKey">IBFrameworkSource</string> +						<string key="minorKey">Foundation.framework/Headers/NSClassDescription.h</string> +					</object> +				</object> +				<object class="IBPartialClassDescription"> +					<string key="className">NSObject</string> +					<object class="IBClassDescriptionSource" key="sourceIdentifier"> +						<string key="majorKey">IBFrameworkSource</string> +						<string key="minorKey">Foundation.framework/Headers/NSError.h</string> +					</object> +				</object> +				<object class="IBPartialClassDescription"> +					<string key="className">NSObject</string> +					<object class="IBClassDescriptionSource" key="sourceIdentifier"> +						<string key="majorKey">IBFrameworkSource</string> +						<string key="minorKey">Foundation.framework/Headers/NSFileManager.h</string> +					</object> +				</object> +				<object class="IBPartialClassDescription"> +					<string key="className">NSObject</string> +					<object class="IBClassDescriptionSource" key="sourceIdentifier"> +						<string key="majorKey">IBFrameworkSource</string> +						<string key="minorKey">Foundation.framework/Headers/NSKeyValueCoding.h</string> +					</object> +				</object> +				<object class="IBPartialClassDescription"> +					<string key="className">NSObject</string> +					<object class="IBClassDescriptionSource" key="sourceIdentifier"> +						<string key="majorKey">IBFrameworkSource</string> +						<string key="minorKey">Foundation.framework/Headers/NSKeyValueObserving.h</string> +					</object> +				</object> +				<object class="IBPartialClassDescription"> +					<string key="className">NSObject</string> +					<object class="IBClassDescriptionSource" key="sourceIdentifier"> +						<string key="majorKey">IBFrameworkSource</string> +						<string key="minorKey">Foundation.framework/Headers/NSKeyedArchiver.h</string> +					</object> +				</object> +				<object class="IBPartialClassDescription"> +					<string key="className">NSObject</string> +					<object class="IBClassDescriptionSource" key="sourceIdentifier"> +						<string key="majorKey">IBFrameworkSource</string> +						<string key="minorKey">Foundation.framework/Headers/NSObject.h</string> +					</object> +				</object> +				<object class="IBPartialClassDescription"> +					<string key="className">NSObject</string> +					<object class="IBClassDescriptionSource" key="sourceIdentifier"> +						<string key="majorKey">IBFrameworkSource</string> +						<string key="minorKey">Foundation.framework/Headers/NSObjectScripting.h</string> +					</object> +				</object> +				<object class="IBPartialClassDescription"> +					<string key="className">NSObject</string> +					<object class="IBClassDescriptionSource" key="sourceIdentifier"> +						<string key="majorKey">IBFrameworkSource</string> +						<string key="minorKey">Foundation.framework/Headers/NSPortCoder.h</string> +					</object> +				</object> +				<object class="IBPartialClassDescription"> +					<string key="className">NSObject</string> +					<object class="IBClassDescriptionSource" key="sourceIdentifier"> +						<string key="majorKey">IBFrameworkSource</string> +						<string key="minorKey">Foundation.framework/Headers/NSRunLoop.h</string> +					</object> +				</object> +				<object class="IBPartialClassDescription"> +					<string key="className">NSObject</string> +					<object class="IBClassDescriptionSource" key="sourceIdentifier"> +						<string key="majorKey">IBFrameworkSource</string> +						<string key="minorKey">Foundation.framework/Headers/NSScriptClassDescription.h</string> +					</object> +				</object> +				<object class="IBPartialClassDescription"> +					<string key="className">NSObject</string> +					<object class="IBClassDescriptionSource" key="sourceIdentifier"> +						<string key="majorKey">IBFrameworkSource</string> +						<string key="minorKey">Foundation.framework/Headers/NSScriptKeyValueCoding.h</string> +					</object> +				</object> +				<object class="IBPartialClassDescription"> +					<string key="className">NSObject</string> +					<object class="IBClassDescriptionSource" key="sourceIdentifier"> +						<string key="majorKey">IBFrameworkSource</string> +						<string key="minorKey">Foundation.framework/Headers/NSScriptObjectSpecifiers.h</string> +					</object> +				</object> +				<object class="IBPartialClassDescription"> +					<string key="className">NSObject</string> +					<object class="IBClassDescriptionSource" key="sourceIdentifier"> +						<string key="majorKey">IBFrameworkSource</string> +						<string key="minorKey">Foundation.framework/Headers/NSScriptWhoseTests.h</string> +					</object> +				</object> +				<object class="IBPartialClassDescription"> +					<string key="className">NSObject</string> +					<object class="IBClassDescriptionSource" key="sourceIdentifier"> +						<string key="majorKey">IBFrameworkSource</string> +						<string key="minorKey">Foundation.framework/Headers/NSThread.h</string> +					</object> +				</object> +				<object class="IBPartialClassDescription"> +					<string key="className">NSObject</string> +					<object class="IBClassDescriptionSource" key="sourceIdentifier"> +						<string key="majorKey">IBFrameworkSource</string> +						<string key="minorKey">Foundation.framework/Headers/NSURL.h</string> +					</object> +				</object> +				<object class="IBPartialClassDescription"> +					<string key="className">NSObject</string> +					<object class="IBClassDescriptionSource" key="sourceIdentifier"> +						<string key="majorKey">IBFrameworkSource</string> +						<string key="minorKey">Foundation.framework/Headers/NSURLConnection.h</string> +					</object> +				</object> +				<object class="IBPartialClassDescription"> +					<string key="className">NSObject</string> +					<object class="IBClassDescriptionSource" key="sourceIdentifier"> +						<string key="majorKey">IBFrameworkSource</string> +						<string key="minorKey">Foundation.framework/Headers/NSURLDownload.h</string> +					</object> +				</object> +				<object class="IBPartialClassDescription"> +					<string key="className">NSResponder</string> +					<object class="IBClassDescriptionSource" key="sourceIdentifier"> +						<string key="majorKey">IBFrameworkSource</string> +						<string key="minorKey">AppKit.framework/Headers/NSInterfaceStyle.h</string> +					</object> +				</object> +				<object class="IBPartialClassDescription"> +					<string key="className">NSResponder</string> +					<string key="superclassName">NSObject</string> +					<object class="IBClassDescriptionSource" key="sourceIdentifier"> +						<string key="majorKey">IBFrameworkSource</string> +						<string key="minorKey">AppKit.framework/Headers/NSResponder.h</string> +					</object> +				</object> +				<object class="IBPartialClassDescription"> +					<string key="className">NSSearchField</string> +					<string key="superclassName">NSTextField</string> +					<object class="IBClassDescriptionSource" key="sourceIdentifier"> +						<string key="majorKey">IBFrameworkSource</string> +						<string key="minorKey">AppKit.framework/Headers/NSSearchField.h</string> +					</object> +				</object> +				<object class="IBPartialClassDescription"> +					<string key="className">NSSearchFieldCell</string> +					<string key="superclassName">NSTextFieldCell</string> +					<object class="IBClassDescriptionSource" key="sourceIdentifier"> +						<string key="majorKey">IBFrameworkSource</string> +						<string key="minorKey">AppKit.framework/Headers/NSSearchFieldCell.h</string> +					</object> +				</object> +				<object class="IBPartialClassDescription"> +					<string key="className">NSTableView</string> +					<string key="superclassName">NSControl</string> +					<reference key="sourceIdentifier" ref="1040540259"/> +				</object> +				<object class="IBPartialClassDescription"> +					<string key="className">NSText</string> +					<string key="superclassName">NSView</string> +					<object class="IBClassDescriptionSource" key="sourceIdentifier"> +						<string key="majorKey">IBFrameworkSource</string> +						<string key="minorKey">AppKit.framework/Headers/NSText.h</string> +					</object> +				</object> +				<object class="IBPartialClassDescription"> +					<string key="className">NSTextField</string> +					<string key="superclassName">NSControl</string> +					<object class="IBClassDescriptionSource" key="sourceIdentifier"> +						<string key="majorKey">IBFrameworkSource</string> +						<string key="minorKey">AppKit.framework/Headers/NSTextField.h</string> +					</object> +				</object> +				<object class="IBPartialClassDescription"> +					<string key="className">NSTextFieldCell</string> +					<string key="superclassName">NSActionCell</string> +					<object class="IBClassDescriptionSource" key="sourceIdentifier"> +						<string key="majorKey">IBFrameworkSource</string> +						<string key="minorKey">AppKit.framework/Headers/NSTextFieldCell.h</string> +					</object> +				</object> +				<object class="IBPartialClassDescription"> +					<string key="className">NSTextView</string> +					<string key="superclassName">NSText</string> +					<object class="IBClassDescriptionSource" key="sourceIdentifier"> +						<string key="majorKey">IBFrameworkSource</string> +						<string key="minorKey">AppKit.framework/Headers/NSTextView.h</string> +					</object> +				</object> +				<object class="IBPartialClassDescription"> +					<string key="className">NSView</string> +					<object class="IBClassDescriptionSource" key="sourceIdentifier"> +						<string key="majorKey">IBFrameworkSource</string> +						<string key="minorKey">AppKit.framework/Headers/NSClipView.h</string> +					</object> +				</object> +				<object class="IBPartialClassDescription"> +					<string key="className">NSView</string> +					<reference key="sourceIdentifier" ref="283337664"/> +				</object> +				<object class="IBPartialClassDescription"> +					<string key="className">NSView</string> +					<object class="IBClassDescriptionSource" key="sourceIdentifier"> +						<string key="majorKey">IBFrameworkSource</string> +						<string key="minorKey">AppKit.framework/Headers/NSRulerView.h</string> +					</object> +				</object> +				<object class="IBPartialClassDescription"> +					<string key="className">NSView</string> +					<string key="superclassName">NSResponder</string> +					<reference key="sourceIdentifier" ref="763667182"/> +				</object> +				<object class="IBPartialClassDescription"> +					<string key="className">NSWindow</string> +					<object class="IBClassDescriptionSource" key="sourceIdentifier"> +						<string key="majorKey">IBFrameworkSource</string> +						<string key="minorKey">AppKit.framework/Headers/NSDrawer.h</string> +					</object> +				</object> +				<object class="IBPartialClassDescription"> +					<string key="className">NSWindow</string> +					<string key="superclassName">NSResponder</string> +					<object class="IBClassDescriptionSource" key="sourceIdentifier"> +						<string key="majorKey">IBFrameworkSource</string> +						<string key="minorKey">AppKit.framework/Headers/NSWindow.h</string> +					</object> +				</object> +				<object class="IBPartialClassDescription"> +					<string key="className">NSWindow</string> +					<object class="IBClassDescriptionSource" key="sourceIdentifier"> +						<string key="majorKey">IBFrameworkSource</string> +						<string key="minorKey">AppKit.framework/Headers/NSWindowScripting.h</string> +					</object> +				</object> +			</object>  		</object>  		<int key="IBDocument.localizationMode">0</int> +		<string key="IBDocument.TargetRuntimeIdentifier">IBCocoaFramework</string> +		<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencies"> +			<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin.macosx</string> +			<integer value="1050" key="NS.object.0"/> +		</object> +		<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencyDefaults"> +			<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin.macosx</string> +			<integer value="1050" key="NS.object.0"/> +		</object> +		<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDevelopmentDependencies"> +			<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3</string> +			<integer value="3000" key="NS.object.0"/> +		</object> +		<bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>  		<string key="IBDocument.LastKnownRelativeProjectPath">../ScintillaTest.xcodeproj</string>  		<int key="IBDocument.defaultPropertyAccessControl">3</int> +		<object class="NSMutableDictionary" key="IBDocument.LastKnownImageSizes"> +			<bool key="EncodedWithXMLCoder">YES</bool> +			<object class="NSArray" key="dict.sortedKeys"> +				<bool key="EncodedWithXMLCoder">YES</bool> +				<string>NSMenuCheckmark</string> +				<string>NSMenuMixedState</string> +			</object> +			<object class="NSMutableArray" key="dict.values"> +				<bool key="EncodedWithXMLCoder">YES</bool> +				<string>{9, 8}</string> +				<string>{7, 2}</string> +			</object> +		</object>  	</data>  </archive> diff --git a/cocoa/ScintillaView.h b/cocoa/ScintillaView.h index 73903c369..0d66d36a4 100644 --- a/cocoa/ScintillaView.h +++ b/cocoa/ScintillaView.h @@ -53,6 +53,9 @@ extern NSString *SCIUpdateUINotification;    // It uses the content view for display.    Scintilla::ScintillaCocoa* mBackend; +  // The object (eg NSDocument) that controls the ScintillaView. +  NSObject* mOwner; +      // This is the actual content to which the backend renders itself.    InnerView* mContent; @@ -92,6 +95,11 @@ extern NSString *SCIUpdateUINotification;  - (NSString*) selectedString; +- (void)setFontName: (NSString*) font +               size: (int) size +               bold: (BOOL) bold +             italic: (BOOL) italic; +  // Native call through to the backend.  + (sptr_t) directCall: (ScintillaView*) sender message: (unsigned int) message wParam: (uptr_t) wParam                 lParam: (sptr_t) lParam; @@ -115,6 +123,12 @@ extern NSString *SCIUpdateUINotification;  - (void) setInfoBar: (NSView <InfoBarCommunicator>*) aView top: (BOOL) top;  - (void) setStatusText: (NSString*) text; -@property Scintilla::ScintillaCocoa* backend; +- (void) findAndHighlightText: (NSString*) searchText +                    matchCase: (BOOL) matchCase +                    wholeWord: (BOOL) wholeWord +                     scrollTo: (BOOL) scrollTo +                         wrap: (BOOL) wrap; +@property Scintilla::ScintillaCocoa* backend; +@property (retain) NSObject* owner;  @end diff --git a/cocoa/ScintillaView.mm b/cocoa/ScintillaView.mm index 84362e1c2..6f4557c2b 100644 --- a/cocoa/ScintillaView.mm +++ b/cocoa/ScintillaView.mm @@ -287,10 +287,13 @@ NSString *SCIUpdateUINotification = @"SCIUpdateUI";      currentPosition = mMarkedTextRange.location;    } +  // Note: Scintilla internally works almost always with bytes instead chars, so we need to take +  //       this into account when determining selection ranges and such. +  std::string raw_text = [newText UTF8String];    mOwner.backend->InsertText(newText);    mMarkedTextRange.location = currentPosition; -  mMarkedTextRange.length = [newText length]; +  mMarkedTextRange.length = raw_text.size();    // Mark the just inserted text. Keep the marked range for later reset.    [mOwner setGeneralProperty: SCI_SETINDICATORCURRENT parameter: INPUT_INDICATOR value: 0]; @@ -298,7 +301,7 @@ NSString *SCIUpdateUINotification = @"SCIUpdateUI";                     parameter: mMarkedTextRange.location                         value: mMarkedTextRange.length]; -  // Select the part which is indicated in the given range. +  // Select the part which is indicated in the given range. It does not scroll the caret into view.    if (range.length > 0)    {      [mOwner setGeneralProperty: SCI_SETSELECTIONSTART @@ -558,6 +561,7 @@ NSString *SCIUpdateUINotification = @"SCIUpdateUI";  @implementation ScintillaView  @synthesize backend = mBackend; +@synthesize owner   = mOwner;  /**   * ScintiallView is a composite control made from an NSView and an embedded NSView that is @@ -1360,17 +1364,95 @@ static void notification(intptr_t windowid, unsigned int iMessage, uintptr_t wPa      [mInfoBar notify: IBNStatusChanged message: text location: NSZeroPoint value: 0];  } +//-------------------------------------------------------------------------------------------------- +  - (NSRange) selectedRange  {    return [mContent selectedRange];  } +//-------------------------------------------------------------------------------------------------- +  - (void)insertText: (NSString*)text  {    [mContent insertText: text];  } -@end +//-------------------------------------------------------------------------------------------------- + +/** + * Searches and marks the first occurance of the given text and optionally scrolls it into view. + */ +- (void) findAndHighlightText: (NSString*) searchText +                    matchCase: (BOOL) matchCase +                    wholeWord: (BOOL) wholeWord +                     scrollTo: (BOOL) scrollTo +                         wrap: (BOOL) wrap +{ +  // The current position is where we start searching. That is either the end of the current +  // (main) selection or the caret position. That ensures we do proper "search next" too. +  int currentPosition = [self getGeneralProperty: SCI_GETCURRENTPOS parameter: 0]; +  int length = [self getGeneralProperty: SCI_GETTEXTLENGTH parameter: 0]; + +  int searchFlags= 0; +  if (matchCase) +    searchFlags |= SCFIND_MATCHCASE; +  if (wholeWord) +    searchFlags |= SCFIND_WHOLEWORD; + +  Sci_TextToFind ttf; +  ttf.chrg.cpMin = currentPosition; +  ttf.chrg.cpMax = length; +  ttf.lpstrText = (char*) [searchText UTF8String]; +  int position = mBackend->WndProc(SCI_FINDTEXT, searchFlags, (sptr_t) &ttf); +   +  if (position < 0 && wrap) +  { +    ttf.chrg.cpMin = 0; +    ttf.chrg.cpMax = currentPosition; +    position = mBackend->WndProc(SCI_FINDTEXT, searchFlags, (sptr_t) &ttf); +  } +   +  if (position >= 0) +  { +    // Highlight the found text. +    [self setGeneralProperty: SCI_SETSELECTIONSTART +                   parameter: position +                       value: 0]; +    [self setGeneralProperty: SCI_SETSELECTIONEND +                   parameter: position + [searchText length] +                       value: 0]; +     +    if (scrollTo) +      [self setGeneralProperty: SCI_SCROLLCARET parameter: 0 value: 0]; +  } +}  //-------------------------------------------------------------------------------------------------- +- (void) setFontName: (NSString*) font +                size: (int) size +                bold: (BOOL) bold +                italic: (BOOL) italic +{ +  for (int i = 0; i < 32; i++) +  { +    [self setGeneralProperty: SCI_STYLESETFONT +                   parameter: i +                       value: (sptr_t)[font UTF8String]]; +    [self setGeneralProperty: SCI_STYLESETSIZE +                   parameter: i +                       value: size]; +    [self setGeneralProperty: SCI_STYLESETBOLD +                   parameter: i +                       value: bold]; +    [self setGeneralProperty: SCI_STYLESETITALIC +                   parameter: i +                       value: italic]; +  } +} + +//-------------------------------------------------------------------------------------------------- + +@end + | 
