mirror of
https://github.com/cappuccino/cappuccino.git
synced 2026-10-26 01:55:42 +00:00
Deploying to gh-pages from @ cappuccino/cappuccino@96cf42c763 🚀
This commit is contained in:
1 parent
f2b846ee76
commit
31f4732e20
4 files changed
+301
-188
No files matched your search
@@ -75025,7 +75025,7 @@ var meta_class = the_class.isa;class_addMethods(the_class, [new objj_method(sel_
|
||||
|
||||
,["void"])]);
|
||||
}
|
||||
p;12;CPTextView.jt;313891;@STATIC;1.0;i;8;CPText.ji;14;CPPasteboard.ji;14;CPColorPanel.ji;15;CPFontManager.ji;15;CPTextStorage.ji;17;CPLayoutManager.ji;18;CPParagraphStyle.ji;12;CPTextList.ji;17;CPTextContainer.ji;13;CPRulerView.ji;14;_CPRTFParser.ji;16;_CPRTFProducer.jt;313638;objj_executeFile("CPText.j", YES);objj_executeFile("CPPasteboard.j", YES);objj_executeFile("CPColorPanel.j", YES);objj_executeFile("CPFontManager.j", YES);objj_executeFile("CPTextStorage.j", YES);objj_executeFile("CPLayoutManager.j", YES);objj_executeFile("CPParagraphStyle.j", YES);objj_executeFile("CPTextList.j", YES);objj_executeFile("CPTextContainer.j", YES);objj_executeFile("CPRulerView.j", YES);objj_executeFile("_CPRTFParser.j", YES);objj_executeFile("_CPRTFProducer.j", YES);;
|
||||
p;12;CPTextView.jt;318372;@STATIC;1.0;i;8;CPText.ji;14;CPPasteboard.ji;14;CPColorPanel.ji;15;CPFontManager.ji;15;CPTextStorage.ji;17;CPLayoutManager.ji;18;CPParagraphStyle.ji;12;CPTextList.ji;17;CPTextContainer.ji;13;CPRulerView.ji;14;_CPRTFParser.ji;16;_CPRTFProducer.jt;318119;objj_executeFile("CPText.j", YES);objj_executeFile("CPPasteboard.j", YES);objj_executeFile("CPColorPanel.j", YES);objj_executeFile("CPFontManager.j", YES);objj_executeFile("CPTextStorage.j", YES);objj_executeFile("CPLayoutManager.j", YES);objj_executeFile("CPParagraphStyle.j", YES);objj_executeFile("CPTextList.j", YES);objj_executeFile("CPTextContainer.j", YES);objj_executeFile("CPRulerView.j", YES);objj_executeFile("_CPRTFParser.j", YES);objj_executeFile("_CPRTFProducer.j", YES);;
|
||||
;
|
||||
;
|
||||
;
|
||||
@@ -75035,7 +75035,17 @@ var aProtocol = objj_getProtocol("CPTextDelegate");
|
||||
if (!aProtocol) throw new SyntaxError("*** Could not find definition for protocol \"CPTextViewDelegate\"");
|
||||
protocol_addProtocol(the_protocol, aProtocol);
|
||||
objj_registerProtocol(the_protocol);
|
||||
}_MakeRangeFromAbs = function(a1, a2)
|
||||
}var _CPTextViewClipboardStringsMatch = function(aString, anotherString)
|
||||
{
|
||||
if (!aString || !anotherString)
|
||||
return NO;
|
||||
return aString.replace(/\r\n?/g, "\n") === anotherString.replace(/\r\n?/g, "\n");
|
||||
};
|
||||
var _CPTextViewHasAsyncClipboard = function()
|
||||
{
|
||||
return CPDOMAvailable && typeof navigator !== "undefined" && !!navigator.clipboard && !!navigator.clipboard.readText && !!navigator.clipboard.writeText;
|
||||
};
|
||||
_MakeRangeFromAbs = function(a1, a2)
|
||||
{
|
||||
return a1 < a2 ? CPMakeRange(a1, a2 - a1) : CPMakeRange(a2, a1 - a2);
|
||||
};
|
||||
@@ -75454,7 +75464,13 @@ class_addMethods(the_class, [new objj_method(sel_getUid("allowsUndo"), function
|
||||
(self.isa.method_msgSend["_becomeFirstResponder"] || _objj_forward)(self, "_becomeFirstResponder");
|
||||
}
|
||||
|
||||
,["void","CPNotification"]), new objj_method(sel_getUid("copy:"), function $CPTextView__copy_(self, _cmd, sender)
|
||||
,["void","CPNotification"]), new objj_method(sel_getUid("_isKeyboardClipboardAction:"), function $CPTextView___isKeyboardClipboardAction_(self, _cmd, sender)
|
||||
{
|
||||
return sender === _CPNativeInputManager || (sender == null ? sender : (sender.isa.method_msgSend["isKindOfClass:"] || _objj_forward)(sender, "isKindOfClass:", _CPNativeInputManager)) || ((___r1 = (CPApp == null ? CPApp : (CPApp.isa.method_msgSend["currentEvent"] || _objj_forward)(CPApp, "currentEvent"))), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["type"] || _objj_forward)(___r1, "type")) === CPKeyDown;
|
||||
var ___r1;
|
||||
}
|
||||
|
||||
,["BOOL","id"]), new objj_method(sel_getUid("copy:"), function $CPTextView__copy_(self, _cmd, sender)
|
||||
{
|
||||
(objj_getClass("CPTextView").super_class.method_dtable["copy:"] || _objj_forward)(self, "copy:", sender);
|
||||
var selectedRange = (self.isa.method_msgSend["selectedRange"] || _objj_forward)(self, "selectedRange"),
|
||||
@@ -75475,6 +75491,13 @@ class_addMethods(the_class, [new objj_method(sel_getUid("allowsUndo"), function
|
||||
(pasteboard == null ? pasteboard : (pasteboard.isa.method_msgSend["setString:forType:"] || _objj_forward)(pasteboard, "setString:forType:", stringForPasting._string, CPStringPboardType));
|
||||
(pasteboard == null ? pasteboard : (pasteboard.isa.method_msgSend["setString:forType:"] || _objj_forward)(pasteboard, "setString:forType:", self._previousSelectionGranularity + '', _CPSmartPboardType));
|
||||
}
|
||||
if (selectedRange.length && !(self.isa.method_msgSend["_isKeyboardClipboardAction:"] || _objj_forward)(self, "_isKeyboardClipboardAction:", sender) && _CPTextViewHasAsyncClipboard())
|
||||
{
|
||||
navigator.clipboard.writeText((pasteboard == null ? pasteboard : (pasteboard.isa.method_msgSend["stringForType:"] || _objj_forward)(pasteboard, "stringForType:", CPStringPboardType)) || "").then(nil, function(anError)
|
||||
{
|
||||
CPLog.warn("CPTextView: the browser refused to write to the clipboard: " + anError);
|
||||
});
|
||||
}
|
||||
var ___r1;
|
||||
}
|
||||
|
||||
@@ -75511,21 +75534,51 @@ class_addMethods(the_class, [new objj_method(sel_getUid("allowsUndo"), function
|
||||
|
||||
,["void","id"]), new objj_method(sel_getUid("pasteAsPlainText:"), function $CPTextView__pasteAsPlainText_(self, _cmd, sender)
|
||||
{
|
||||
if (!(sender == null ? sender : (sender.isa.method_msgSend["isKindOfClass:"] || _objj_forward)(sender, "isKindOfClass:", _CPNativeInputManager)) && ((___r1 = (CPApp == null ? CPApp : (CPApp.isa.method_msgSend["currentEvent"] || _objj_forward)(CPApp, "currentEvent"))), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["type"] || _objj_forward)(___r1, "type")) != CPAppKitDefined)
|
||||
return;
|
||||
(self.isa.method_msgSend["_pasteString:"] || _objj_forward)(self, "_pasteString:", (self.isa.method_msgSend["_plainStringForPasting"] || _objj_forward)(self, "_plainStringForPasting"));
|
||||
var ___r1;
|
||||
if (sender === _CPNativeInputManager || (sender == null ? sender : (sender.isa.method_msgSend["isKindOfClass:"] || _objj_forward)(sender, "isKindOfClass:", _CPNativeInputManager)))
|
||||
(self.isa.method_msgSend["_pasteString:"] || _objj_forward)(self, "_pasteString:", (self.isa.method_msgSend["_plainStringForPasting"] || _objj_forward)(self, "_plainStringForPasting"));
|
||||
else if (!(self.isa.method_msgSend["_isKeyboardClipboardAction:"] || _objj_forward)(self, "_isKeyboardClipboardAction:", sender))
|
||||
(self.isa.method_msgSend["_pasteFromSystemClipboardAsPlainText:"] || _objj_forward)(self, "_pasteFromSystemClipboardAsPlainText:", YES);
|
||||
}
|
||||
|
||||
,["void","id"]), new objj_method(sel_getUid("paste:"), function $CPTextView__paste_(self, _cmd, sender)
|
||||
{
|
||||
if (((___r1 = (CPApp == null ? CPApp : (CPApp.isa.method_msgSend["currentEvent"] || _objj_forward)(CPApp, "currentEvent"))), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["type"] || _objj_forward)(___r1, "type")) != CPAppKitDefined)
|
||||
return;
|
||||
(self.isa.method_msgSend["_pasteString:"] || _objj_forward)(self, "_pasteString:", (self.isa.method_msgSend["_stringForPasting"] || _objj_forward)(self, "_stringForPasting"));
|
||||
var ___r1;
|
||||
if (!(self.isa.method_msgSend["_isKeyboardClipboardAction:"] || _objj_forward)(self, "_isKeyboardClipboardAction:", sender))
|
||||
(self.isa.method_msgSend["_pasteFromSystemClipboardAsPlainText:"] || _objj_forward)(self, "_pasteFromSystemClipboardAsPlainText:", NO);
|
||||
}
|
||||
|
||||
,["void","id"]), new objj_method(sel_getUid("acceptsFirstResponder"), function $CPTextView__acceptsFirstResponder(self, _cmd)
|
||||
,["void","id"]), new objj_method(sel_getUid("_pasteFromSystemClipboardAsPlainText:"), function $CPTextView___pasteFromSystemClipboardAsPlainText_(self, _cmd, asPlainText)
|
||||
{
|
||||
if (!_CPTextViewHasAsyncClipboard())
|
||||
{
|
||||
(self.isa.method_msgSend["_pasteString:"] || _objj_forward)(self, "_pasteString:", asPlainText ? (self.isa.method_msgSend["_plainStringForPasting"] || _objj_forward)(self, "_plainStringForPasting") : (self.isa.method_msgSend["_stringForPasting"] || _objj_forward)(self, "_stringForPasting"));
|
||||
return;
|
||||
}
|
||||
var textView = self;
|
||||
navigator.clipboard.readText().then( function(aString)
|
||||
{
|
||||
(textView == null ? textView : (textView.isa.method_msgSend["_pasteSystemClipboardString:asPlainText:"] || _objj_forward)(textView, "_pasteSystemClipboardString:asPlainText:", aString, asPlainText));
|
||||
((___r1 = (CPRunLoop.isa.method_msgSend["currentRunLoop"] || _objj_forward)(CPRunLoop, "currentRunLoop")), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["limitDateForMode:"] || _objj_forward)(___r1, "limitDateForMode:", CPDefaultRunLoopMode));
|
||||
var ___r1;
|
||||
}, function(anError)
|
||||
{
|
||||
CPLog.warn("CPTextView: the browser refused to read the clipboard: " + anError);
|
||||
});
|
||||
}
|
||||
|
||||
,["void","BOOL"]), new objj_method(sel_getUid("_pasteSystemClipboardString:asPlainText:"), function $CPTextView___pasteSystemClipboardString_asPlainText_(self, _cmd, aString, asPlainText)
|
||||
{
|
||||
var pasteboard = (CPPasteboard.isa.method_msgSend["generalPasteboard"] || _objj_forward)(CPPasteboard, "generalPasteboard");
|
||||
if (!_CPTextViewClipboardStringsMatch(aString, (pasteboard == null ? pasteboard : (pasteboard.isa.method_msgSend["stringForType:"] || _objj_forward)(pasteboard, "stringForType:", CPStringPboardType))))
|
||||
{
|
||||
if (!aString)
|
||||
return;
|
||||
(pasteboard == null ? pasteboard : (pasteboard.isa.method_msgSend["declareTypes:owner:"] || _objj_forward)(pasteboard, "declareTypes:owner:", [CPStringPboardType], nil));
|
||||
(pasteboard == null ? pasteboard : (pasteboard.isa.method_msgSend["setString:forType:"] || _objj_forward)(pasteboard, "setString:forType:", aString, CPStringPboardType));
|
||||
}
|
||||
(self.isa.method_msgSend["_pasteString:"] || _objj_forward)(self, "_pasteString:", asPlainText ? (self.isa.method_msgSend["_plainStringForPasting"] || _objj_forward)(self, "_plainStringForPasting") : (self.isa.method_msgSend["_stringForPasting"] || _objj_forward)(self, "_stringForPasting"));
|
||||
}
|
||||
|
||||
,["void","CPString","BOOL"]), new objj_method(sel_getUid("acceptsFirstResponder"), function $CPTextView__acceptsFirstResponder(self, _cmd)
|
||||
{
|
||||
return (self.isa.method_msgSend["isSelectable"] || _objj_forward)(self, "isSelectable");
|
||||
}
|
||||
@@ -76613,14 +76666,13 @@ class_addMethods(the_class, [new objj_method(sel_getUid("allowsUndo"), function
|
||||
|
||||
,["void","id"]), new objj_method(sel_getUid("cut:"), function $CPTextView__cut_(self, _cmd, sender)
|
||||
{
|
||||
if (((___r1 = (CPApp == null ? CPApp : (CPApp.isa.method_msgSend["currentEvent"] || _objj_forward)(CPApp, "currentEvent"))), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["type"] || _objj_forward)(___r1, "type")) != CPAppKitDefined)
|
||||
if ((self.isa.method_msgSend["_isKeyboardClipboardAction:"] || _objj_forward)(self, "_isKeyboardClipboardAction:", sender))
|
||||
return;
|
||||
var selectedRange = (self.isa.method_msgSend["selectedRange"] || _objj_forward)(self, "selectedRange");
|
||||
if (selectedRange.length < 1)
|
||||
return;
|
||||
(self.isa.method_msgSend["copy:"] || _objj_forward)(self, "copy:", sender);
|
||||
(self.isa.method_msgSend["deleteBackward:handleSmart:"] || _objj_forward)(self, "deleteBackward:handleSmart:", sender, self._previousSelectionGranularity);
|
||||
var ___r1;
|
||||
}
|
||||
|
||||
,["void","id"]), new objj_method(sel_getUid("insertLineBreak:"), function $CPTextView__insertLineBreak_(self, _cmd, sender)
|
||||
@@ -78668,6 +78720,13 @@ class_addMethods(meta_class, [new objj_method(sel_getUid("isDeadKey:"), function
|
||||
e.preventDefault();
|
||||
var nativeClipboard = (e.originalEvent || e).clipboardData;
|
||||
var currentFirstResponder = ((___r1 = (CPApp == null ? CPApp : (CPApp.isa.method_msgSend["keyWindow"] || _objj_forward)(CPApp, "keyWindow"))), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["firstResponder"] || _objj_forward)(___r1, "firstResponder"));
|
||||
var pasteboard = (CPPasteboard.isa.method_msgSend["generalPasteboard"] || _objj_forward)(CPPasteboard, "generalPasteboard");
|
||||
var nativePlainText = nativeClipboard.getData('text/plain');
|
||||
if (nativePlainText && !_CPTextViewClipboardStringsMatch(nativePlainText, (pasteboard == null ? pasteboard : (pasteboard.isa.method_msgSend["stringForType:"] || _objj_forward)(pasteboard, "stringForType:", CPStringPboardType))))
|
||||
{
|
||||
(pasteboard == null ? pasteboard : (pasteboard.isa.method_msgSend["declareTypes:owner:"] || _objj_forward)(pasteboard, "declareTypes:owner:", [CPStringPboardType], nil));
|
||||
(pasteboard == null ? pasteboard : (pasteboard.isa.method_msgSend["setString:forType:"] || _objj_forward)(pasteboard, "setString:forType:", nativePlainText, CPStringPboardType));
|
||||
}
|
||||
if ((currentFirstResponder == null ? currentFirstResponder : (currentFirstResponder.isa.method_msgSend["respondsToSelector:"] || _objj_forward)(currentFirstResponder, "respondsToSelector:", sel_getUid("isRichText"))) && (currentFirstResponder == null ? currentFirstResponder : (currentFirstResponder.isa.method_msgSend["isRichText"] || _objj_forward)(currentFirstResponder, "isRichText")))
|
||||
{
|
||||
var richtext = nativeClipboard.getData('text/rtf');
|
||||
@@ -78675,7 +78734,6 @@ class_addMethods(meta_class, [new objj_method(sel_getUid("isDeadKey:"), function
|
||||
richtext = ((___r1 = (_CPRTFParser.isa.method_msgSend["new"] || _objj_forward)(_CPRTFParser, "new")), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["parseRTF:"] || _objj_forward)(___r1, "parseRTF:", richtext));
|
||||
else
|
||||
{
|
||||
var pasteboard = (CPPasteboard.isa.method_msgSend["generalPasteboard"] || _objj_forward)(CPPasteboard, "generalPasteboard");
|
||||
var richData = (pasteboard == null ? pasteboard : (pasteboard.isa.method_msgSend["stringForType:"] || _objj_forward)(pasteboard, "stringForType:", _CPASPboardType));
|
||||
if (richData)
|
||||
richtext = (CPKeyedUnarchiver.isa.method_msgSend["unarchiveObjectWithData:"] || _objj_forward)(CPKeyedUnarchiver, "unarchiveObjectWithData:", (CPData.isa.method_msgSend["dataWithRawString:"] || _objj_forward)(CPData, "dataWithRawString:", richData));
|
||||
@@ -78689,7 +78747,7 @@ class_addMethods(meta_class, [new objj_method(sel_getUid("isDeadKey:"), function
|
||||
return;
|
||||
}
|
||||
}
|
||||
var nativeString = nativeClipboard.getData('text/plain');
|
||||
var nativeString = nativePlainText;
|
||||
setTimeout( function()
|
||||
{
|
||||
(currentFirstResponder == null ? currentFirstResponder : (currentFirstResponder.isa.method_msgSend["_pasteString:"] || _objj_forward)(currentFirstResponder, "_pasteString:", nativeString || (pasteboard == null ? pasteboard : (pasteboard.isa.method_msgSend["stringForType:"] || _objj_forward)(pasteboard, "stringForType:", CPStringPboardType)) || ''));
|
||||
|
||||
@@ -75025,7 +75025,7 @@ var meta_class = the_class.isa;class_addMethods(the_class, [new objj_method(sel_
|
||||
|
||||
,["void"])]);
|
||||
}
|
||||
p;12;CPTextView.jt;313891;@STATIC;1.0;i;8;CPText.ji;14;CPPasteboard.ji;14;CPColorPanel.ji;15;CPFontManager.ji;15;CPTextStorage.ji;17;CPLayoutManager.ji;18;CPParagraphStyle.ji;12;CPTextList.ji;17;CPTextContainer.ji;13;CPRulerView.ji;14;_CPRTFParser.ji;16;_CPRTFProducer.jt;313638;objj_executeFile("CPText.j", YES);objj_executeFile("CPPasteboard.j", YES);objj_executeFile("CPColorPanel.j", YES);objj_executeFile("CPFontManager.j", YES);objj_executeFile("CPTextStorage.j", YES);objj_executeFile("CPLayoutManager.j", YES);objj_executeFile("CPParagraphStyle.j", YES);objj_executeFile("CPTextList.j", YES);objj_executeFile("CPTextContainer.j", YES);objj_executeFile("CPRulerView.j", YES);objj_executeFile("_CPRTFParser.j", YES);objj_executeFile("_CPRTFProducer.j", YES);;
|
||||
p;12;CPTextView.jt;318372;@STATIC;1.0;i;8;CPText.ji;14;CPPasteboard.ji;14;CPColorPanel.ji;15;CPFontManager.ji;15;CPTextStorage.ji;17;CPLayoutManager.ji;18;CPParagraphStyle.ji;12;CPTextList.ji;17;CPTextContainer.ji;13;CPRulerView.ji;14;_CPRTFParser.ji;16;_CPRTFProducer.jt;318119;objj_executeFile("CPText.j", YES);objj_executeFile("CPPasteboard.j", YES);objj_executeFile("CPColorPanel.j", YES);objj_executeFile("CPFontManager.j", YES);objj_executeFile("CPTextStorage.j", YES);objj_executeFile("CPLayoutManager.j", YES);objj_executeFile("CPParagraphStyle.j", YES);objj_executeFile("CPTextList.j", YES);objj_executeFile("CPTextContainer.j", YES);objj_executeFile("CPRulerView.j", YES);objj_executeFile("_CPRTFParser.j", YES);objj_executeFile("_CPRTFProducer.j", YES);;
|
||||
;
|
||||
;
|
||||
;
|
||||
@@ -75035,7 +75035,17 @@ var aProtocol = objj_getProtocol("CPTextDelegate");
|
||||
if (!aProtocol) throw new SyntaxError("*** Could not find definition for protocol \"CPTextViewDelegate\"");
|
||||
protocol_addProtocol(the_protocol, aProtocol);
|
||||
objj_registerProtocol(the_protocol);
|
||||
}_MakeRangeFromAbs = function(a1, a2)
|
||||
}var _CPTextViewClipboardStringsMatch = function(aString, anotherString)
|
||||
{
|
||||
if (!aString || !anotherString)
|
||||
return NO;
|
||||
return aString.replace(/\r\n?/g, "\n") === anotherString.replace(/\r\n?/g, "\n");
|
||||
};
|
||||
var _CPTextViewHasAsyncClipboard = function()
|
||||
{
|
||||
return CPDOMAvailable && typeof navigator !== "undefined" && !!navigator.clipboard && !!navigator.clipboard.readText && !!navigator.clipboard.writeText;
|
||||
};
|
||||
_MakeRangeFromAbs = function(a1, a2)
|
||||
{
|
||||
return a1 < a2 ? CPMakeRange(a1, a2 - a1) : CPMakeRange(a2, a1 - a2);
|
||||
};
|
||||
@@ -75454,7 +75464,13 @@ class_addMethods(the_class, [new objj_method(sel_getUid("allowsUndo"), function
|
||||
(self.isa.method_msgSend["_becomeFirstResponder"] || _objj_forward)(self, "_becomeFirstResponder");
|
||||
}
|
||||
|
||||
,["void","CPNotification"]), new objj_method(sel_getUid("copy:"), function $CPTextView__copy_(self, _cmd, sender)
|
||||
,["void","CPNotification"]), new objj_method(sel_getUid("_isKeyboardClipboardAction:"), function $CPTextView___isKeyboardClipboardAction_(self, _cmd, sender)
|
||||
{
|
||||
return sender === _CPNativeInputManager || (sender == null ? sender : (sender.isa.method_msgSend["isKindOfClass:"] || _objj_forward)(sender, "isKindOfClass:", _CPNativeInputManager)) || ((___r1 = (CPApp == null ? CPApp : (CPApp.isa.method_msgSend["currentEvent"] || _objj_forward)(CPApp, "currentEvent"))), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["type"] || _objj_forward)(___r1, "type")) === CPKeyDown;
|
||||
var ___r1;
|
||||
}
|
||||
|
||||
,["BOOL","id"]), new objj_method(sel_getUid("copy:"), function $CPTextView__copy_(self, _cmd, sender)
|
||||
{
|
||||
(objj_getClass("CPTextView").super_class.method_dtable["copy:"] || _objj_forward)(self, "copy:", sender);
|
||||
var selectedRange = (self.isa.method_msgSend["selectedRange"] || _objj_forward)(self, "selectedRange"),
|
||||
@@ -75475,6 +75491,13 @@ class_addMethods(the_class, [new objj_method(sel_getUid("allowsUndo"), function
|
||||
(pasteboard == null ? pasteboard : (pasteboard.isa.method_msgSend["setString:forType:"] || _objj_forward)(pasteboard, "setString:forType:", stringForPasting._string, CPStringPboardType));
|
||||
(pasteboard == null ? pasteboard : (pasteboard.isa.method_msgSend["setString:forType:"] || _objj_forward)(pasteboard, "setString:forType:", self._previousSelectionGranularity + '', _CPSmartPboardType));
|
||||
}
|
||||
if (selectedRange.length && !(self.isa.method_msgSend["_isKeyboardClipboardAction:"] || _objj_forward)(self, "_isKeyboardClipboardAction:", sender) && _CPTextViewHasAsyncClipboard())
|
||||
{
|
||||
navigator.clipboard.writeText((pasteboard == null ? pasteboard : (pasteboard.isa.method_msgSend["stringForType:"] || _objj_forward)(pasteboard, "stringForType:", CPStringPboardType)) || "").then(nil, function(anError)
|
||||
{
|
||||
CPLog.warn("CPTextView: the browser refused to write to the clipboard: " + anError);
|
||||
});
|
||||
}
|
||||
var ___r1;
|
||||
}
|
||||
|
||||
@@ -75511,21 +75534,51 @@ class_addMethods(the_class, [new objj_method(sel_getUid("allowsUndo"), function
|
||||
|
||||
,["void","id"]), new objj_method(sel_getUid("pasteAsPlainText:"), function $CPTextView__pasteAsPlainText_(self, _cmd, sender)
|
||||
{
|
||||
if (!(sender == null ? sender : (sender.isa.method_msgSend["isKindOfClass:"] || _objj_forward)(sender, "isKindOfClass:", _CPNativeInputManager)) && ((___r1 = (CPApp == null ? CPApp : (CPApp.isa.method_msgSend["currentEvent"] || _objj_forward)(CPApp, "currentEvent"))), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["type"] || _objj_forward)(___r1, "type")) != CPAppKitDefined)
|
||||
return;
|
||||
(self.isa.method_msgSend["_pasteString:"] || _objj_forward)(self, "_pasteString:", (self.isa.method_msgSend["_plainStringForPasting"] || _objj_forward)(self, "_plainStringForPasting"));
|
||||
var ___r1;
|
||||
if (sender === _CPNativeInputManager || (sender == null ? sender : (sender.isa.method_msgSend["isKindOfClass:"] || _objj_forward)(sender, "isKindOfClass:", _CPNativeInputManager)))
|
||||
(self.isa.method_msgSend["_pasteString:"] || _objj_forward)(self, "_pasteString:", (self.isa.method_msgSend["_plainStringForPasting"] || _objj_forward)(self, "_plainStringForPasting"));
|
||||
else if (!(self.isa.method_msgSend["_isKeyboardClipboardAction:"] || _objj_forward)(self, "_isKeyboardClipboardAction:", sender))
|
||||
(self.isa.method_msgSend["_pasteFromSystemClipboardAsPlainText:"] || _objj_forward)(self, "_pasteFromSystemClipboardAsPlainText:", YES);
|
||||
}
|
||||
|
||||
,["void","id"]), new objj_method(sel_getUid("paste:"), function $CPTextView__paste_(self, _cmd, sender)
|
||||
{
|
||||
if (((___r1 = (CPApp == null ? CPApp : (CPApp.isa.method_msgSend["currentEvent"] || _objj_forward)(CPApp, "currentEvent"))), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["type"] || _objj_forward)(___r1, "type")) != CPAppKitDefined)
|
||||
return;
|
||||
(self.isa.method_msgSend["_pasteString:"] || _objj_forward)(self, "_pasteString:", (self.isa.method_msgSend["_stringForPasting"] || _objj_forward)(self, "_stringForPasting"));
|
||||
var ___r1;
|
||||
if (!(self.isa.method_msgSend["_isKeyboardClipboardAction:"] || _objj_forward)(self, "_isKeyboardClipboardAction:", sender))
|
||||
(self.isa.method_msgSend["_pasteFromSystemClipboardAsPlainText:"] || _objj_forward)(self, "_pasteFromSystemClipboardAsPlainText:", NO);
|
||||
}
|
||||
|
||||
,["void","id"]), new objj_method(sel_getUid("acceptsFirstResponder"), function $CPTextView__acceptsFirstResponder(self, _cmd)
|
||||
,["void","id"]), new objj_method(sel_getUid("_pasteFromSystemClipboardAsPlainText:"), function $CPTextView___pasteFromSystemClipboardAsPlainText_(self, _cmd, asPlainText)
|
||||
{
|
||||
if (!_CPTextViewHasAsyncClipboard())
|
||||
{
|
||||
(self.isa.method_msgSend["_pasteString:"] || _objj_forward)(self, "_pasteString:", asPlainText ? (self.isa.method_msgSend["_plainStringForPasting"] || _objj_forward)(self, "_plainStringForPasting") : (self.isa.method_msgSend["_stringForPasting"] || _objj_forward)(self, "_stringForPasting"));
|
||||
return;
|
||||
}
|
||||
var textView = self;
|
||||
navigator.clipboard.readText().then( function(aString)
|
||||
{
|
||||
(textView == null ? textView : (textView.isa.method_msgSend["_pasteSystemClipboardString:asPlainText:"] || _objj_forward)(textView, "_pasteSystemClipboardString:asPlainText:", aString, asPlainText));
|
||||
((___r1 = (CPRunLoop.isa.method_msgSend["currentRunLoop"] || _objj_forward)(CPRunLoop, "currentRunLoop")), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["limitDateForMode:"] || _objj_forward)(___r1, "limitDateForMode:", CPDefaultRunLoopMode));
|
||||
var ___r1;
|
||||
}, function(anError)
|
||||
{
|
||||
CPLog.warn("CPTextView: the browser refused to read the clipboard: " + anError);
|
||||
});
|
||||
}
|
||||
|
||||
,["void","BOOL"]), new objj_method(sel_getUid("_pasteSystemClipboardString:asPlainText:"), function $CPTextView___pasteSystemClipboardString_asPlainText_(self, _cmd, aString, asPlainText)
|
||||
{
|
||||
var pasteboard = (CPPasteboard.isa.method_msgSend["generalPasteboard"] || _objj_forward)(CPPasteboard, "generalPasteboard");
|
||||
if (!_CPTextViewClipboardStringsMatch(aString, (pasteboard == null ? pasteboard : (pasteboard.isa.method_msgSend["stringForType:"] || _objj_forward)(pasteboard, "stringForType:", CPStringPboardType))))
|
||||
{
|
||||
if (!aString)
|
||||
return;
|
||||
(pasteboard == null ? pasteboard : (pasteboard.isa.method_msgSend["declareTypes:owner:"] || _objj_forward)(pasteboard, "declareTypes:owner:", [CPStringPboardType], nil));
|
||||
(pasteboard == null ? pasteboard : (pasteboard.isa.method_msgSend["setString:forType:"] || _objj_forward)(pasteboard, "setString:forType:", aString, CPStringPboardType));
|
||||
}
|
||||
(self.isa.method_msgSend["_pasteString:"] || _objj_forward)(self, "_pasteString:", asPlainText ? (self.isa.method_msgSend["_plainStringForPasting"] || _objj_forward)(self, "_plainStringForPasting") : (self.isa.method_msgSend["_stringForPasting"] || _objj_forward)(self, "_stringForPasting"));
|
||||
}
|
||||
|
||||
,["void","CPString","BOOL"]), new objj_method(sel_getUid("acceptsFirstResponder"), function $CPTextView__acceptsFirstResponder(self, _cmd)
|
||||
{
|
||||
return (self.isa.method_msgSend["isSelectable"] || _objj_forward)(self, "isSelectable");
|
||||
}
|
||||
@@ -76613,14 +76666,13 @@ class_addMethods(the_class, [new objj_method(sel_getUid("allowsUndo"), function
|
||||
|
||||
,["void","id"]), new objj_method(sel_getUid("cut:"), function $CPTextView__cut_(self, _cmd, sender)
|
||||
{
|
||||
if (((___r1 = (CPApp == null ? CPApp : (CPApp.isa.method_msgSend["currentEvent"] || _objj_forward)(CPApp, "currentEvent"))), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["type"] || _objj_forward)(___r1, "type")) != CPAppKitDefined)
|
||||
if ((self.isa.method_msgSend["_isKeyboardClipboardAction:"] || _objj_forward)(self, "_isKeyboardClipboardAction:", sender))
|
||||
return;
|
||||
var selectedRange = (self.isa.method_msgSend["selectedRange"] || _objj_forward)(self, "selectedRange");
|
||||
if (selectedRange.length < 1)
|
||||
return;
|
||||
(self.isa.method_msgSend["copy:"] || _objj_forward)(self, "copy:", sender);
|
||||
(self.isa.method_msgSend["deleteBackward:handleSmart:"] || _objj_forward)(self, "deleteBackward:handleSmart:", sender, self._previousSelectionGranularity);
|
||||
var ___r1;
|
||||
}
|
||||
|
||||
,["void","id"]), new objj_method(sel_getUid("insertLineBreak:"), function $CPTextView__insertLineBreak_(self, _cmd, sender)
|
||||
@@ -78668,6 +78720,13 @@ class_addMethods(meta_class, [new objj_method(sel_getUid("isDeadKey:"), function
|
||||
e.preventDefault();
|
||||
var nativeClipboard = (e.originalEvent || e).clipboardData;
|
||||
var currentFirstResponder = ((___r1 = (CPApp == null ? CPApp : (CPApp.isa.method_msgSend["keyWindow"] || _objj_forward)(CPApp, "keyWindow"))), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["firstResponder"] || _objj_forward)(___r1, "firstResponder"));
|
||||
var pasteboard = (CPPasteboard.isa.method_msgSend["generalPasteboard"] || _objj_forward)(CPPasteboard, "generalPasteboard");
|
||||
var nativePlainText = nativeClipboard.getData('text/plain');
|
||||
if (nativePlainText && !_CPTextViewClipboardStringsMatch(nativePlainText, (pasteboard == null ? pasteboard : (pasteboard.isa.method_msgSend["stringForType:"] || _objj_forward)(pasteboard, "stringForType:", CPStringPboardType))))
|
||||
{
|
||||
(pasteboard == null ? pasteboard : (pasteboard.isa.method_msgSend["declareTypes:owner:"] || _objj_forward)(pasteboard, "declareTypes:owner:", [CPStringPboardType], nil));
|
||||
(pasteboard == null ? pasteboard : (pasteboard.isa.method_msgSend["setString:forType:"] || _objj_forward)(pasteboard, "setString:forType:", nativePlainText, CPStringPboardType));
|
||||
}
|
||||
if ((currentFirstResponder == null ? currentFirstResponder : (currentFirstResponder.isa.method_msgSend["respondsToSelector:"] || _objj_forward)(currentFirstResponder, "respondsToSelector:", sel_getUid("isRichText"))) && (currentFirstResponder == null ? currentFirstResponder : (currentFirstResponder.isa.method_msgSend["isRichText"] || _objj_forward)(currentFirstResponder, "isRichText")))
|
||||
{
|
||||
var richtext = nativeClipboard.getData('text/rtf');
|
||||
@@ -78675,7 +78734,6 @@ class_addMethods(meta_class, [new objj_method(sel_getUid("isDeadKey:"), function
|
||||
richtext = ((___r1 = (_CPRTFParser.isa.method_msgSend["new"] || _objj_forward)(_CPRTFParser, "new")), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["parseRTF:"] || _objj_forward)(___r1, "parseRTF:", richtext));
|
||||
else
|
||||
{
|
||||
var pasteboard = (CPPasteboard.isa.method_msgSend["generalPasteboard"] || _objj_forward)(CPPasteboard, "generalPasteboard");
|
||||
var richData = (pasteboard == null ? pasteboard : (pasteboard.isa.method_msgSend["stringForType:"] || _objj_forward)(pasteboard, "stringForType:", _CPASPboardType));
|
||||
if (richData)
|
||||
richtext = (CPKeyedUnarchiver.isa.method_msgSend["unarchiveObjectWithData:"] || _objj_forward)(CPKeyedUnarchiver, "unarchiveObjectWithData:", (CPData.isa.method_msgSend["dataWithRawString:"] || _objj_forward)(CPData, "dataWithRawString:", richData));
|
||||
@@ -78689,7 +78747,7 @@ class_addMethods(meta_class, [new objj_method(sel_getUid("isDeadKey:"), function
|
||||
return;
|
||||
}
|
||||
}
|
||||
var nativeString = nativeClipboard.getData('text/plain');
|
||||
var nativeString = nativePlainText;
|
||||
setTimeout( function()
|
||||
{
|
||||
(currentFirstResponder == null ? currentFirstResponder : (currentFirstResponder.isa.method_msgSend["_pasteString:"] || _objj_forward)(currentFirstResponder, "_pasteString:", nativeString || (pasteboard == null ? pasteboard : (pasteboard.isa.method_msgSend["stringForType:"] || _objj_forward)(pasteboard, "stringForType:", CPStringPboardType)) || ''));
|
||||
|
||||
@@ -9,12 +9,6 @@ TextEditor is a document-based test application and a tutorial. When the app use
|
||||
- **The "save changes" alert is modal for the whole app.** `CPDocument` shows it with `runModal` (`CPDocument.j:903`). Cocoa attaches it as a sheet to the document window, so that only that document is blocked.
|
||||
- **Save cannot work without a server.** With no file URL, Save uses `CPSavePanel`, which falls back to `window.prompt` (`CPSavePanel.j:79`). `CPDocument` then sends an HTTP POST. A storage facade is needed, with local (IndexedDB) and remote (HTTP) implementations.
|
||||
|
||||
### Clipboard
|
||||
|
||||
- **Paste and Cut from the Edit menu do nothing.** `-[CPTextView paste:]` (`CPTextView.j:521`) and `cut:` (`:1754`) return unless the current event is `CPAppKitDefined`. Only the browser's native clipboard events, from the keyboard, create that event.
|
||||
- **Copy from the Edit menu cannot reach the system clipboard.** It fills only the internal `CPPasteboard`.
|
||||
- **Fix:** when a menu item calls these methods, use the asynchronous Clipboard API (`navigator.clipboard`). Read RTF first, then plain text. Write plain text, and RTF where the browser allows it. Keep the keyboard path unchanged.
|
||||
|
||||
### Toolbar
|
||||
|
||||
- **The Fonts and Print standard items are not implemented.** `_standardItemWithItemIdentifier:` returns `nil` for both (`_CPToolbarItem.j:641`). AppKit needs `_CPToolbarShowFontsItem` (sends `orderFrontFontPanel:`) and `_CPToolbarPrintItem` (sends `printDocument:`). nib2cib needs matching classes.
|
||||
@@ -50,6 +44,8 @@ How the text system works, for the entries below: `CPTextView` does not use CSS
|
||||
|
||||
## Opportunities for improvement
|
||||
|
||||
- **Rich text through the asynchronous Clipboard API.** Edit > Copy, Cut and Paste chosen from the menu reach the system clipboard through `navigator.clipboard`, which carries plain text only. Rich text still moves between applications through the keyboard path, in the browser's clipboard events, and within the application through the internal pasteboard. Handling attributed text in general is an unbounded task, but a limited subset could be supported, for example through `text/html` in a `ClipboardItem`.
|
||||
|
||||
- **Justification is nominally functional, but its quality is limited.** `CPSimpleTypesetter` breaks lines greedily: it fills each line as far as it fits, as Cocoa does, and then spreads the spare width of each wrapped line evenly over that line's spaces. This naive algorithm does not and cannot produce the quality that modern typesetting expects. It decides each line alone, so word spacing varies widely from line to line, and loose lines are common. Quality needs paragraph-wide line breaking in the manner of Knuth-Plass, as Typst also uses, with language-aware hyphenation. Cappuccino measures and lays out text itself, so this belongs in the typesetter, as its only behaviour, with no setting for users or developers.
|
||||
|
||||
## Planned additions to the app
|
||||
@@ -86,4 +82,5 @@ How the text system works, for the entries below: `CPTextView` does not use CSS
|
||||
- Format > List: bulleted and numbered lists, applied to one or several paragraphs and removed with None. Return starts the next item and keeps the item's text style; Return in an empty item ends the list. Tab at the start of an item nests it, and Shift-Tab returns it. Delete at the start of an item's text removes it from the list. The items are numbered again after each change.
|
||||
- Format > Text > Copy Ruler and Paste Ruler with lists: pasting adds or removes list markers, on one or several paragraphs, and a pasted item joins the neighbouring list.
|
||||
- Typing at the end of styled text, and the font panel, use the style of the character before the insertion point.
|
||||
- Edit > Copy, Cut and Paste from the menu: plain text moves to and from other applications through the system clipboard; text copied and pasted within the application keeps its style. Command-V pastes text copied in another application, not an earlier copy within the application.
|
||||
- Builds with both the legacy toolchain and capp-build.
|
||||
+150
-150
@@ -1,150 +1,150 @@
|
||||
1792863446508|ArrayControllerInitialSelectionTest|
|
||||
1792863446525|ArrayControllerRemovingFirstTest|
|
||||
1792863446543|ArrayControllerTest|
|
||||
1792863446560|AttachedSheet2Test|
|
||||
1792863446577|AttachedSheetTest|
|
||||
1792863446593|BindingContentArrayTest|
|
||||
1792863446610|CGCanvasContextTest|
|
||||
1792863446627|CGPathTest|
|
||||
1792863446645|CPAlertTest|
|
||||
1792863446662|CPAnimatablePropertyContainerTest|
|
||||
1792863446680|CPAnimationContextTest|
|
||||
1792863446698|CPAnimationTest|
|
||||
1792863446715|CPBinderEchoBug|
|
||||
1792863446732|CPBoxCibTest|
|
||||
1792863446749|CPBoxTest|
|
||||
1792863446766|CPBrowserTest|
|
||||
1792863446783|CPButtonBarTest|
|
||||
1792863446800|CPButtonKeyEquivalentDefaultTest|
|
||||
1792863446817|CPButtonTest|
|
||||
1792863446834|CPByteCountFormatterTest|
|
||||
1792863446851|CPCollectionViewNibTest|
|
||||
1792863446868|CPColorCPImageDescriptionTest|
|
||||
1792863446885|CPColorWellBindingsTest|
|
||||
1792863446902|CPComboBoxTest|
|
||||
1792863446919|CPControlPerformClickExceptionTest|
|
||||
1792863446936|CPControlSizeTest|
|
||||
1792863446953|CPCursorTest|
|
||||
1792863446970|CPDateFormatterTest|
|
||||
1792863446987|CPDatePickerTest|
|
||||
1792863447428|CPDictionaryControllerTest|
|
||||
1792863447213|CPDocumentControllerTest|
|
||||
1792863447382|CPFormatterTest|
|
||||
1792863447552|CPGraphicsTest|
|
||||
1792863447721|CPImageAndTextViewImageScalingTest|
|
||||
1792863447891|CPImageViewAlignmentScaling|
|
||||
1792863447106|CPImageViewTest|
|
||||
1792863447122|CPImageViewbindingsTest|
|
||||
1792863447139|CPLanguageModelChatbotTest|
|
||||
1792863447156|CPLevelIndicator|
|
||||
1792863447173|CPLevelIndicatorTest|
|
||||
1792863447190|CPLocalizationTest|
|
||||
1792863447207|CPLogTest|
|
||||
1792863447224|CPMarkdownParserTest|
|
||||
1792863447241|CPMenuCALayerTest|
|
||||
1792863447258|CPMenuEnabledBindingsTest|
|
||||
1792863447275|CPMenuKeyEquivalentsTest|
|
||||
1792863447292|CPMenuRemoveAllTest|
|
||||
1792863447309|CPMenuSubmenuPlacementConstraints|
|
||||
1792863447326|CPMenuTest|
|
||||
1792863447343|CPOutlineViewCibTest|
|
||||
1792863447360|CPOutlineViewTest|
|
||||
1792863447377|CPOutlineViewViewBasedCibTest|
|
||||
1792863447394|CPPanelTest|
|
||||
1792863447411|CPPlatformWindow|
|
||||
1792863447428|CPPlattformWindowMinSize|
|
||||
1792863447445|CPPopUpButtonBindingsTest|
|
||||
1792863447461|CPPopUpButtonTest|
|
||||
1792863447478|CPPopoverTest|
|
||||
1792863447495|CPPredicateEditorCibTest|
|
||||
1792863447512|CPProgressIndicatorTest|
|
||||
1792863447529|CPPropertyListSerializationTest|
|
||||
1792863447546|CPRadioBindingsTest|
|
||||
1792863447563|CPRuleEditorCibTest|
|
||||
1792863447580|CPRuleEditorTest|
|
||||
1792863447597|CPScrollView2Test|
|
||||
1792863447614|CPScrollViewTest|
|
||||
1792863447631|CPSearchFieldPredicateBinding|
|
||||
1792863447648|CPSearchFieldTest|
|
||||
1792863447664|CPSegmentedControlBindingsTest|
|
||||
1792863447681|CPSegmentedControlTest|
|
||||
1792863447698|CPSoundTest|
|
||||
1792863447715|CPSplitViewDividerTest|
|
||||
1792863447732|CPSplitViewTest|
|
||||
1792863447749|CPStackViewTest|
|
||||
1792863447766|CPStepperBindingsTest|
|
||||
1792863447783|CPStepperNibTest|
|
||||
1792863447800|CPTabView2Test|
|
||||
1792863447817|CPTabViewBindingsTest|
|
||||
1792863447834|CPTabViewNibTest|
|
||||
1792863447851|CPTableViewGroupRowsTest|
|
||||
1792863447868|CPTextFieldEditingStyleTest|
|
||||
1792863447885|CPTextFieldHeightTest|
|
||||
1792863447902|CPTextFieldMovementsTest|
|
||||
1792863447919|CPTextFieldMultiLineTest|
|
||||
1792863447936|CPTextFieldTest|
|
||||
1792863447953|CPTextViewCibTest|
|
||||
1792863447970|CPTextViewDelegateAndNotificationsTest|
|
||||
1792863447987|CPTimeZoneTest|
|
||||
1792863448395|CPTokenFieldTest|
|
||||
1792863448211|CPToolTipTest|
|
||||
1792863448382|CPToolbarTest|
|
||||
1792863448551|CPTreeControllerTest|
|
||||
1792863448719|CPURLConnectionAsyncTest|
|
||||
1792863448890|CPURLConnectionSynchronousTest|
|
||||
1792863448105|CPUserDefaultsControllerTest|
|
||||
1792863448122|CPUserDefaultsTest|
|
||||
1792863448139|CPUserNotificationTest|
|
||||
1792863448156|CPViewControllerTest|
|
||||
1792863448173|CPVisualEffectViewTest|
|
||||
1792863448190|CPWebViewTest|
|
||||
1792863448207|CPWebViewTest2|
|
||||
1792863448224|CPWindowLiveResizeTest|
|
||||
1792863448241|CPWindowMovableTest|
|
||||
1792863448258|CPWindowResizeStyleTest|
|
||||
1792863448275|ChildWindowsTest|
|
||||
1792863448292|CompilationTests|
|
||||
1792863448309|ContinuouslyUpdatesValueBinding|
|
||||
1792863448326|CopyAndPasteTest|
|
||||
1792863448342|CrossOriginTest|
|
||||
1792863448359|FF4096Test|
|
||||
1792863448376|FontEnhancementTest|
|
||||
1792863448393|FontMetricsExplorerTest|
|
||||
1792863448410|KeyEquivalentsTest|
|
||||
1792863448427|KeyViewLoopTest|
|
||||
1792863448444|KeyWindowInTheBackgroundActivation|
|
||||
1792863448461|LayoutTest|
|
||||
1792863448478|LoadDynamicFrameworksTest|
|
||||
1792863448494|LoadTimeTest|
|
||||
1792863448512|LongBindingsTest|
|
||||
1792863448528|MobileTest|
|
||||
1792863448546|MultipleValueBindingsTest|
|
||||
1792863448563|NSBoxTest|
|
||||
1792863448580|NSBrowserTest|
|
||||
1792863448597|NewTextFieldBezelTest|
|
||||
1792863448614|Nib2CibAlignmentTest|
|
||||
1792863448631|Nib2CibBaselineAlignementTest|
|
||||
1792863448648|Nib2CibSubviewsOrderTest|
|
||||
1792863448665|NibAppRemixedTest|
|
||||
1792863448682|PatternFillTest|
|
||||
1792863448700|PlatformWindowsTest|
|
||||
1792863448717|PopUpButtonEscTest|
|
||||
1792863448734|PredicateWithFormatTest|
|
||||
1792863448751|ResignFirstResponderWithCPControlTextDidEndEditingTest|
|
||||
1792863448769|Scaling2Test|
|
||||
1792863448786|ScalingTest|
|
||||
1792863448803|ScrollviewThemingTest|
|
||||
1792863448820|SimpleBindings2Test|
|
||||
1792863448837|SizeToFitTest|
|
||||
1792863448854|SmartFoldersDemo|
|
||||
1792863448870|SmartFoldersTest|
|
||||
1792863448887|TableTest|
|
||||
1792863448904|TextEditor|
|
||||
1792863448921|ThemeBrowserTest|
|
||||
1792863448938|ThemeKitchenSinkTest|
|
||||
1792863448955|TrackingAreaTest|
|
||||
1792863448972|UndoRedoWithMenuUpdateTest|
|
||||
1792863448989|UserlandNSTest|
|
||||
1792863449603|WindowSheetOrderTest|
|
||||
1792863449230|layoutEphemeralSubviewTest|
|
||||
1792863449400|performKeyEquivalentTest|
|
||||
1792864698623|ArrayControllerInitialSelectionTest|
|
||||
1792864698643|ArrayControllerRemovingFirstTest|
|
||||
1792864698662|ArrayControllerTest|
|
||||
1792864698681|AttachedSheet2Test|
|
||||
1792864698700|AttachedSheetTest|
|
||||
1792864698720|BindingContentArrayTest|
|
||||
1792864698739|CGCanvasContextTest|
|
||||
1792864698758|CGPathTest|
|
||||
1792864698778|CPAlertTest|
|
||||
1792864698798|CPAnimatablePropertyContainerTest|
|
||||
1792864698819|CPAnimationContextTest|
|
||||
1792864698839|CPAnimationTest|
|
||||
1792864698858|CPBinderEchoBug|
|
||||
1792864698878|CPBoxCibTest|
|
||||
1792864698897|CPBoxTest|
|
||||
1792864698916|CPBrowserTest|
|
||||
1792864698935|CPButtonBarTest|
|
||||
1792864698954|CPButtonKeyEquivalentDefaultTest|
|
||||
1792864698973|CPButtonTest|
|
||||
1792864698992|CPByteCountFormatterTest|
|
||||
1792864699122|CPCollectionViewNibTest|
|
||||
1792864699312|CPColorCPImageDescriptionTest|
|
||||
1792864699502|CPColorWellBindingsTest|
|
||||
1792864699692|CPComboBoxTest|
|
||||
1792864699883|CPControlPerformClickExceptionTest|
|
||||
1792864699107|CPControlSizeTest|
|
||||
1792864699126|CPCursorTest|
|
||||
1792864699145|CPDateFormatterTest|
|
||||
1792864699163|CPDatePickerTest|
|
||||
1792864699182|CPDictionaryControllerTest|
|
||||
1792864699201|CPDocumentControllerTest|
|
||||
1792864699220|CPFormatterTest|
|
||||
1792864699238|CPGraphicsTest|
|
||||
1792864699257|CPImageAndTextViewImageScalingTest|
|
||||
1792864699276|CPImageViewAlignmentScaling|
|
||||
1792864699295|CPImageViewTest|
|
||||
1792864699314|CPImageViewbindingsTest|
|
||||
1792864699332|CPLanguageModelChatbotTest|
|
||||
1792864699352|CPLevelIndicator|
|
||||
1792864699370|CPLevelIndicatorTest|
|
||||
1792864699389|CPLocalizationTest|
|
||||
1792864699408|CPLogTest|
|
||||
1792864699427|CPMarkdownParserTest|
|
||||
1792864699446|CPMenuCALayerTest|
|
||||
1792864699464|CPMenuEnabledBindingsTest|
|
||||
1792864699483|CPMenuKeyEquivalentsTest|
|
||||
1792864699502|CPMenuRemoveAllTest|
|
||||
1792864699521|CPMenuSubmenuPlacementConstraints|
|
||||
1792864699540|CPMenuTest|
|
||||
1792864699559|CPOutlineViewCibTest|
|
||||
1792864699578|CPOutlineViewTest|
|
||||
1792864699597|CPOutlineViewViewBasedCibTest|
|
||||
1792864699617|CPPanelTest|
|
||||
1792864699636|CPPlatformWindow|
|
||||
1792864699656|CPPlattformWindowMinSize|
|
||||
1792864699675|CPPopUpButtonBindingsTest|
|
||||
1792864699694|CPPopUpButtonTest|
|
||||
1792864699714|CPPopoverTest|
|
||||
1792864699733|CPPredicateEditorCibTest|
|
||||
1792864699753|CPProgressIndicatorTest|
|
||||
1792864699773|CPPropertyListSerializationTest|
|
||||
1792864699792|CPRadioBindingsTest|
|
||||
1792864699812|CPRuleEditorCibTest|
|
||||
1792864699831|CPRuleEditorTest|
|
||||
1792864699850|CPScrollView2Test|
|
||||
1792864699869|CPScrollViewTest|
|
||||
1792864699889|CPSearchFieldPredicateBinding|
|
||||
1792864699908|CPSearchFieldTest|
|
||||
1792864699927|CPSegmentedControlBindingsTest|
|
||||
1792864699946|CPSegmentedControlTest|
|
||||
1792864699966|CPSoundTest|
|
||||
1792864699985|CPSplitViewDividerTest|
|
||||
1792864700497|CPSplitViewTest|
|
||||
1792864700242|CPStackViewTest|
|
||||
1792864700435|CPStepperBindingsTest|
|
||||
1792864700627|CPStepperNibTest|
|
||||
1792864700822|CPTabView2Test|
|
||||
1792864700101|CPTabViewBindingsTest|
|
||||
1792864700120|CPTabViewNibTest|
|
||||
1792864700139|CPTableViewGroupRowsTest|
|
||||
1792864700159|CPTextFieldEditingStyleTest|
|
||||
1792864700178|CPTextFieldHeightTest|
|
||||
1792864700197|CPTextFieldMovementsTest|
|
||||
1792864700216|CPTextFieldMultiLineTest|
|
||||
1792864700236|CPTextFieldTest|
|
||||
1792864700255|CPTextViewCibTest|
|
||||
1792864700274|CPTextViewDelegateAndNotificationsTest|
|
||||
1792864700293|CPTimeZoneTest|
|
||||
1792864700313|CPTokenFieldTest|
|
||||
1792864700332|CPToolTipTest|
|
||||
1792864700351|CPToolbarTest|
|
||||
1792864700371|CPTreeControllerTest|
|
||||
1792864700391|CPURLConnectionAsyncTest|
|
||||
1792864700411|CPURLConnectionSynchronousTest|
|
||||
1792864700431|CPUserDefaultsControllerTest|
|
||||
1792864700450|CPUserDefaultsTest|
|
||||
1792864700470|CPUserNotificationTest|
|
||||
1792864700489|CPViewControllerTest|
|
||||
1792864700508|CPVisualEffectViewTest|
|
||||
1792864700527|CPWebViewTest|
|
||||
1792864700546|CPWebViewTest2|
|
||||
1792864700565|CPWindowLiveResizeTest|
|
||||
1792864700585|CPWindowMovableTest|
|
||||
1792864700604|CPWindowResizeStyleTest|
|
||||
1792864700623|ChildWindowsTest|
|
||||
1792864700641|CompilationTests|
|
||||
1792864700660|ContinuouslyUpdatesValueBinding|
|
||||
1792864700679|CopyAndPasteTest|
|
||||
1792864700698|CrossOriginTest|
|
||||
1792864700717|FF4096Test|
|
||||
1792864700736|FontEnhancementTest|
|
||||
1792864700756|FontMetricsExplorerTest|
|
||||
1792864700775|KeyEquivalentsTest|
|
||||
1792864700794|KeyViewLoopTest|
|
||||
1792864700813|KeyWindowInTheBackgroundActivation|
|
||||
1792864700832|LayoutTest|
|
||||
1792864700851|LoadDynamicFrameworksTest|
|
||||
1792864700870|LoadTimeTest|
|
||||
1792864700889|LongBindingsTest|
|
||||
1792864700908|MobileTest|
|
||||
1792864700927|MultipleValueBindingsTest|
|
||||
1792864700946|NSBoxTest|
|
||||
1792864700966|NSBrowserTest|
|
||||
1792864700985|NewTextFieldBezelTest|
|
||||
1792864701449|Nib2CibAlignmentTest|
|
||||
1792864701238|Nib2CibBaselineAlignementTest|
|
||||
1792864701434|Nib2CibSubviewsOrderTest|
|
||||
1792864701625|NibAppRemixedTest|
|
||||
1792864701818|PatternFillTest|
|
||||
1792864701101|PlatformWindowsTest|
|
||||
1792864701120|PopUpButtonEscTest|
|
||||
1792864701139|PredicateWithFormatTest|
|
||||
1792864701158|ResignFirstResponderWithCPControlTextDidEndEditingTest|
|
||||
1792864701178|Scaling2Test|
|
||||
1792864701197|ScalingTest|
|
||||
1792864701217|ScrollviewThemingTest|
|
||||
1792864701236|SimpleBindings2Test|
|
||||
1792864701255|SizeToFitTest|
|
||||
1792864701275|SmartFoldersDemo|
|
||||
1792864701294|SmartFoldersTest|
|
||||
1792864701314|TableTest|
|
||||
1792864701333|TextEditor|
|
||||
1792864701353|ThemeBrowserTest|
|
||||
1792864701372|ThemeKitchenSinkTest|
|
||||
1792864701391|TrackingAreaTest|
|
||||
1792864701411|UndoRedoWithMenuUpdateTest|
|
||||
1792864701430|UserlandNSTest|
|
||||
1792864701450|WindowSheetOrderTest|
|
||||
1792864701469|layoutEphemeralSubviewTest|
|
||||
1792864701489|performKeyEquivalentTest|
|
||||
Reference in new issue
Block a user