D言語からObjective-CとCocoaAPIを使いたい
NSButton を含め NSControl関連API を分けてみました。
NSArray および NSTextView関連APIを統合しました。
サンプルコード
Powered by Prism
cocoa/control.d
/**
* cocoa/control.d Version 0.0.10
*/
module cocoa.control;
import core.attribute : optional, selector;
import cocoa.window;
extern (Objective-C)
extern class NSControl : NSView {
override static NSControl alloc() @selector("alloc");
override NSControl init(NSRect) @selector("initWithFrame:");
void font(NSFont) @selector("setFont:");
void target(NSColorWell) @selector("setTarget:");
SEL action(SEL sel) @selector("setAction:");
// extern (D) final SEL action_(string s) { //
// return action(sel_registerName(s.toCs)); }
}
extern (Objective-C)
extern class NSButton : NSControl{
static NSButton checkbox(NSString, NSButton, SEL)
@selector("checkboxWithTitle:target:action:");
static NSButton radioButton(NSString,NSButton, SEL)
@selector("radioButtonWithTitle:target:action:");
static NSButton button(NSString, NSButton, SEL)
@selector("buttonWithTitle:target:action:");
override static NSButton alloc() @selector("alloc");
override NSButton init() @selector("init");
override NSButton init(NSRect) @selector("initWithFrame:");
NSButton target(NSButton) @selector("setTarget:");
override SEL action(SEL sel) @selector("setAction:");
extern (D) final SEL action_(string s) { //
return action(sel_registerName(s.toCs)); }
void type(NSButtonType) @selector("setButtonType:");
void draw(NSRect, NSView) @selector("drawWithExpansionFrame:inView:");
void draw(NSRect rect) @selector("drawRect:");
// override CALayer layer() @selector("layer");
void bezelStyle(NSBezelStyle) @selector("setBezelStyle:");
NSBezelStyle bezelStyle() @selector("bezelStyle");
// NSColor bgColor(NSColor) @selector("setBackgroundColor:");
NSColor bezelColor(NSColor) @selector("setBezelColor:");
void title(NSString) @selector("setTitle:");
extern (D) final void title(string s) { return title(s.toNs); }
NSAttributedString attrTitle() @selector("attributedTitle");
void attrTitle(NSAttributedString) @selector("setAttributedTitle:");
NSString title() @selector("title");
void bordered(bool) @selector("setBordered:");
void showsBorder(bool) @selector("setShowsBorderOnlyWhileMouseInside:");
NSControlStateValue state() @selector("state");
void setState(StateValue) @selector("setState:");
void state(StateValue) @selector("setState:");
}
enum NSControlStateValue : NSInteger { On = 1, Off = 0, Mixed = -1 }
alias StateValue = NSControlStateValue;
alias stateVal = NSControlStateValue;
alias state = NSControlStateValue; //
alias btnState = NSControlStateValue;
extern (Objective-C)
interface Res {
bool respondsToSelector(SEL) @selector("respondsToSelector:");
}
NSAttributedString toAttrStr(string str, NSColor textColor) {
NSMutableAttributedString mAttrStr
= NSMutableAttributedString.alloc.init(str.toNs);
NSFont font = NSFont.nameSize("YuMincho Demibold".toNs, 16);
NSRange range = NSMakeRange(0, mAttrStr.length);
mAttrStr.addAttrFont("NSFont".toNs, font, range);
mAttrStr.addAttrColor("NSColor".toNs, textColor, range);
NSMutableParagraphStyle paragraph = NSMutableParagraphStyle.alloc.init;
paragraph.lineSpace = 9;
mAttrStr.addAttrPara("NSParagraphStyle".toNs, paragraph, range);
return mAttrStr.copy;
}
NSAttributedString toAttrStr(string str, NSFont font, NSColor textColor) {
NSMutableAttributedString mAttrStr
= NSMutableAttributedString.alloc.init(str.toNs);
NSRange range = NSMakeRange(0, mAttrStr.length);
mAttrStr.addAttrFont("NSFont".toNs, font, range);
mAttrStr.addAttrColor("NSColor".toNs, textColor, range);
NSMutableParagraphStyle paragraph = NSMutableParagraphStyle.alloc.init;
paragraph.lineSpace = 9;
mAttrStr.addAttrPara("NSParagraphStyle".toNs, paragraph, range);
return mAttrStr.copy;
}
extern (Objective-C)
extern class NSMutableAttributedString : NSAttributedString {
override static NSMutableAttributedString alloc()
@selector("alloc");
override NSMutableAttributedString init(NSString)
@selector("initWithString:");
NSUInteger length() @selector("length");
void addAttrFont(NSString, NSFont, NSRange)
@selector("addAttribute:value:range:");
void addAttribute(NSString, NSFont, NSRange)
@selector("addAttribute:value:range:");
void addAttrColor(NSString, NSColor, NSRange)
@selector("addAttribute:value:range:");
void addAttribute(NSString, NSColor, NSRange)
@selector("addAttribute:value:range:");
void addAttrPara(NSString, NSParagraphStyle, NSRange)
@selector("addAttribute:value:range:");
NSAttributedString copy() @selector("copy");
override NSMutableAttributedString drawAtPoint(NSPoint)
@selector("drawAtPoint:");
}
extern (Objective-C)
extern class NSTextField : NSControl {
override static NSTextField alloc() @selector("alloc");
override NSTextField init() @selector("init");
override NSTextField init(NSRect) @selector("initWithFrame:");
static NSTextField labelStr(NSString) @selector("labelWithString:");
override void font(NSFont) @selector("setFont:");
void bezeled(bool) @selector("setBezeled:");
void editable(bool) @selector("setEditable:");
void selectable(bool) @selector("setSelectable:");
void bordered(bool) @selector("setBordered:");
void drawsBg(bool) @selector("setDrawsBackground:");
override void wantsLayer(bool) @selector("setWantsLayer:");
void textColor(NSColor) @selector("setTextColor:");
void str(NSString) @selector("setStringValue:");
extern (D) final void str(string s) { return str(s.toNs); }
NSString str() @selector("stringValue");
void holderStr(NSString) @selector("setPlaceholderString:");
void holderStr(NSAttributedString) @selector("setPlaceholderString:");
NSAttributedString attrStr() @selector("attributedStringValue");
void attrStr(NSAttributedString) @selector("setAttributedStringValue:");
void attrStr(NSMutableAttributedString) @selector("setAttributedStringValue:");
NSColor bgColor() @selector("backgroundColor"); //
void bgColor(NSColor) @selector("setBackgroundColor:"); //
override SEL action(SEL sel) @selector("setAction:"); //
extern (D) final SEL action_(string s) { //
return action(sel_registerName(s.toCs)); }
}
alias identifier = NSString; //
enum NSTextFieldBezel : NSUInteger {
Square = 0,
Rounded = 1
}
alias NSBezelStyle = NSTextFieldBezelStyle;
alias BezelStyle = NSTextFieldBezelStyle;
enum NSTextFieldBezelStyle : NSUInteger {
Automatic = 0, // macOS 14.0+
Push = 1, // macOS 14.0+
FlexiblePush = 2, // macOS 14.0+
Disclosure = 5, // macOS 10.12+
Circular = 7, // macOS 10.12+
HelpButton = 9, // macOS 10.12+
SmallSquare = 10, // macOS 10.12+
Toolbar = 11, // macOS 14.0+
AccessoryBarAction = 12, // macOS 14.0+
AccessoryBar = 13, // macOS 14.0+
PushDisclosure = 14, // macOS 14.0+
Badge = 15, // macOS 10.7+
}
enum NSButtonType : NSUInteger {
MomentaryLight = 0, // macOS 10.12+
PushOnPushOff = 1, // macOS 10.12+
Toggle = 2, // macOS 10.12+
Switch = 3, // macOS 10.12+
Radio = 4, // macOS 10.12+
MomentaryChange = 5, // macOS 10.12+
PushOnOff = 6, // macOS 10.12+
MomentaryPushIn = 7, // macOS 10.12+
Accelerator = 8, // macOS 10.10.3+
MultiLevelAccelerator = 9, // macOS 10.10.3+
}
alias buttonType = NSButtonType; //
extern (Objective-C)
extern class NSFont : NSObject {
static NSFont nameSize(NSString, CGFloat) @selector("fontWithName:size:");
static NSFont fontWithName(NSString, CGFloat) @selector("fontWithName:size:"); //
}
extern (Objective-C)
extern class NSAttributedString : NSObject {
override static NSAttributedString alloc() @selector("alloc");
override NSAttributedString init() @selector("init");
NSAttributedString init(NSString) @selector("initWithString:");
NSAttributedString init(NSString, NSDictionary)
@selector("initWithString:attributes:");
NSAttributedString drawAtPoint(NSPoint) @selector("drawAtPoint:");
}
extern (Objective-C)
extern class NSMutableParagraphStyle : NSParagraphStyle {
override static NSMutableParagraphStyle alloc() @selector("alloc");
override NSMutableParagraphStyle init() @selector("init");
void paraStyle(NSParagraphStyle) @selector("setParagraphStyle:");
void lineSpace(CGFloat) @selector("setLineSpacing:");
}
extern (Objective-C)
extern class NSParagraphStyle : NSObject {
}
extern (Objective-C)
extern class NSSlider : NSControl {
override static NSSlider alloc() @selector("alloc");
override NSSlider init(NSRect) @selector("initWithFrame:");
static NSSlider sliderWithTarget(NSSlider, SEL)
@selector("sliderWithTarget:action:");
static NSSlider slider(NSSlider, SEL) @selector("sliderWithTarget:action:");
NSSlider target(NSSlider) @selector("setTarget:");
override SEL action(SEL sel) @selector("setAction:");
extern (D) final SEL action_(string s) {
return action(sel_registerName(s.toCs)); }
bool continuous() @selector("isContinuous");
void continuous(bool) @selector("setContinuous:");
NSUInteger sliderType() @selector("sliderType");
void sliderType(NSUInteger) @selector("setSliderType:");
CGFloat knobThickness() @selector("knobThickness");
void intValue(int) @selector("setIntValue:");
int intValue() @selector("intValue");
void maxValue(double) @selector("setMaxValue:");
double maxValue() @selector("maxValue");
void minValue(double) @selector("setMinValue:");
double minValue() @selector("minValue");
double value() @selector("value");
void value(double) @selector("setDoubleValue:");
void vertical(bool) @selector("setVertical:");
NSColor trackFillColor(NSColor) @selector("setTrackFillColor:");
void sizeToFit() @selector("sizeToFit");
}
enum NSSliderType : NSUInteger { Linear, Circular }
/*
extern (Objective-C)
extern class NSImageView : NSControl {
override static NSImageView alloc() @selector("alloc");
override NSImageView init(NSRect) @selector("initWithFrame:");
NSImageScaling imageScaling() @selector("imageScaling");
}
enum NSImageScaling : NSUInteger {
ProportionallyDown, // 縦横比を維持したまま画像を縮小
AxesIndependently, // 画像の縦横比は保持されない
NonZero, // 画像の拡大縮小をしない
ProportionallyUpOrDown // 縦横比を維持しながら、最大にする
}
*/
extern (Objective-C)
extern class NSBox : NSView {
override static NSBox alloc() @selector("alloc");
override NSBox init() @selector("init");
override NSBox init(NSRect) @selector("initWithFrame:");
NSRect borderRect() @selector("borderRect");
NSBoxType boxType() @selector("boxType");
void boxType(NSBoxType) @selector("setBoxType:");
bool transparent() @selector("transparent");
NSString title() @selector("title");
void title(NSString) @selector("setTitle:");
extern (D) final void title(string s) { return title(s.toNs); }
NSFont titleFont() @selector("titleFont");
void titlePosition(NSTitlePosition) @selector("setTitlePosition:");
NSRect titleRect() @selector("titleRect");
NSColor borderColor() @selector("borderColor");
void borderColor(NSColor) @selector("setBorderColor:");
CGFloat borderWidth() @selector("borderWidth");
void borderWidth(CGFloat) @selector("setBorderWidth:");
CGFloat cornerRadius() @selector("cornerRadius");
void cornerRadius(CGFloat) @selector("setCornerRadius:");
NSColor fillColor() @selector("fillColor");
NSView contentView() @selector("contentView");
NSSize contentViewMargins() @selector("contentViewMargins");
void setFrameFromContentFrame(NSRect contentFrame)
@selector("setFrameFromContentFrame:");
void sizeToFit() @selector("sizeToFit");
}
enum NSBoxType : NSUInteger {
Primary = 0,
Separator = 2,
Custom = 4
}
enum NSTitlePosition : NSUInteger {
NoTitle = 0,
AboveTop = 1,
AtTop = 2,
BelowTop = 3,
AboveBottom = 4,
AtBottom = 5,
BelowBottom = 6
}
struct objc_class;
alias Class = objc_class*;
extern (Objective-C)
extern class NSScrollView : NSView {
override static NSScrollView alloc() @selector("alloc");
override NSScrollView init() @selector("init");
override NSScrollView init(NSRect) @selector("initWithFrame:");
/* Calculating Layout */
static NSSize frameSizeForContentSize(NSSize, Class, Class, //
NSBorderType, NSControlSize, NSScrollerStyle) @selector(
"frameSizeForContentSize:horizontalScrollerClass:"
~ "verticalScrollerClass:borderType:controlSize:scrollerStyle:");
static NSSize contentSizeForFrameSize(NSSize, Class, Class, //
NSBorderType, NSControlSize, NSScrollerStyle) @selector(
"contentSizeForFrameSize:horizontalScrollerClass:"
~ "verticalScrollerClass:borderType:controlSize:scrollerStyle:");
/* Determining Component Sizes */
NSSize contentSize() @selector("contentSize"); //
NSRect documentVisibleRect() @selector("documentVisibleRect"); //
/* Managing Graphics Attributes */
NSColor backgroundColor() @selector("backgroundColor"); //
NSColor bgColor() @selector("backgroundColor"); //
void bgColor(NSColor) @selector("setBackgroundColor:"); //
void documentView(NSView) @selector("setDocumentView:");
NSBorderType borderType() @selector("borderType"); //
void borderType(NSBorderType) @selector("setBorderType:"); //
NSCursor documentCursor() @selector("documentCursor"); //
NSRect visibleRect() @selector("visibleRect"); //
void contentView(NSView) @selector("setContentView:"); //
void hRuler(bool) @selector("setHasHorizontalRuler:");
void vRuler(bool) @selector("setHasVerticalRuler:");
void rulersVisible(bool) @selector("setRulersVisible:");
void autohidesScrollers(bool) @selector("setAutohidesScrollers:");
void hScroller(bool) @selector("setHasHorizontalScroller:");
void vScroller(bool) @selector("setHasVerticalScroller:");
void scrollerStyle(NSScrollerStyle) @selector("setScrollerStyle:");
override void frameOrigin(NSPoint) @selector("setFrameOrigin:"); // 23.12.19
void adjustsContent(bool) @selector("setAutomaticallyAdjustsContentInsets:");
}
enum NSControlSize : NSUInteger { Mini, Small, Regular, Large, } //
enum NSScrollerStyle : NSInteger { Legacy, Overlay }
enum NSBorderType : NSUInteger { No, Line, Bezel, Groover } // 枠なし、線、立体、溝
extern (Objective-C)
extern class NSClipView : NSView {
override static NSClipView alloc() @selector("alloc");
override NSClipView init() @selector("init");
override NSClipView init(NSRect) @selector("initWithFrame:");
/* Setting the Document View */
void documentView(NSView) @selector("setDocumentView:");
/* Scrolling */
bool autoscroll(NSEvent) @selector("autoscroll:");
// void autoscroll(bool) @selector("setAutoscroll:");
NSRect constrainBoundsRect(NSRect) @selector("constrainBoundsRect:"); //
NSEdgeInsets contentInsets() @selector("contentInsets"); //
}
struct NSEdgeInsets {
double bottom;
double left;
double right;
double top;
}
extern (Objective-C)
extern class NSColorWell : NSControl {
override static NSColorWell alloc() @selector("alloc");
override NSColorWell init() @selector("init");
override NSColorWell init(NSRect) @selector("initWithFrame:");
void color(NSColor) @selector("setColor:");
NSColor color() @selector("color");
void bordered(bool) @selector("setBordered:");
bool bordered() @selector("isBordered");
void activate(bool) @selector("activate:");
bool activate() @selector("isActivate");
void deactivat() @selector("deactivate");
void drawWell(NSRect) @selector("drawWellInside:");
static NSColorWell colorWellWithStyle(NSColorWellStyle)
@selector("setColorWellWithStyle:");
NSColorWellStyle colorWellStyle() @selector("colorWellStyle");
override SEL action(SEL sel) @selector("setAction:");
extern (D) final SEL action_(string s) {
return action(sel_registerName(s.toCs)); } //
}
enum NSColorWellStyle : NSInteger {
Default = 0,
Minimal = 1,
Expanded = 2
}
enum : string { // NSColorSpaceName
CaWhite = "NSCalibratedWhiteColorSpace", // 1.0 == white
CaRGB = "NSCalibratedRGBColorSpace",
DeWhite = "NSDeviceWhiteColorSpace", // 1.0 == white
DeRGB = "NSDeviceRGBColorSpace",
DeCMYK = "NSDeviceCMYKColorSpace",
Named = "NSNamedColorSpace", // Used for "catalog" colors
Pattern = "NSPatternColorSpace",
Custom = "NSCustomColorSpace"
}
/* NSArray */
extern (Objective-C)
extern class NSArray : NSObject {
static NSArray array() @selector("array");
static NSArray array(NSArray) @selector("arrayWithArray:");
static NSArray array(NSString) @selector("arrayWithObject:");
static NSArray array(NSString, NSUInteger) @selector("arrayWithObjects:count:");
override NSArray init() @selector("init");
NSArray init(NSArray) @selector("initWithArray:");
NSArray init(NSArray, bool) @selector("initWithArray:copyItem:");
NSInteger count() @selector("count");
NSObject atIndex(NSUInteger) @selector("objectAtIndex:");
NSView atIndex(int) @selector("objectAtIndex:"); //
NSDictionary dicAtIndex(NSUInteger) @selector("objectAtIndex:");
NSString strAtIndex(NSUInteger) @selector("objectAtIndex:");
// NSString atIndex(NSUInteger) @selector("objectAtIndex:");
NSURL urlAtIndex(NSUInteger) @selector("objectAtIndex:"); //
NSArray arrayAtIndex(NSUInteger) @selector("objectAtIndex:");
NSScreen scrAtIndex(NSUInteger) @selector("objectAtIndex:"); //
NSMutableArray copy(NSZone) @selector("mutableCopyWithZone:");
NSMutableArray copy() @selector("mutableCopy");
NSMutableArray muCopy() @selector("mutableCopy");
}
extern (Objective-C)
extern class NSMutableArray : NSArray {
override static NSMutableArray alloc() @selector("alloc");
override static NSMutableArray array() @selector("array");
override NSMutableArray init() @selector("init");
void add(NSObject) @selector("addObject:");
void addArray(NSArray) @selector("addObjectsFromArray:");
void add(NSMutableArray) @selector("addObjectsFromArray:");
void add(NSString) @selector("addObject:");
void insert(NSObject, NSUInteger) @selector("insertObject:atIndex:");
void insert(NSArray, NSIndexSet) @selector("insertObjects:atIndexes:");
NSArray copy() @selector("copy");
}
extern (Objective-C)
extern class NSIndexSet : NSObject {
static NSIndexSet indexSet() @selector("indexset");
static NSIndexSet indexSet(NSUInteger) @selector("indexSetWithIndex:");
static NSIndexSet indexSet(NSRange) @selector("indexSetWithIndexesInRange:");
override NSIndexSet init() @selector("init");
NSUInteger count() @selector("count");
NSUInteger first() @selector("firstIndex");
NSUInteger last() @selector("lastIndex");
}
extern (Objective-C)
interface NSMutableCopying {
// NSMutableArray copy(NSZone) @selector("mutableCopyWithZone:");
NSMutableArray copy() @selector("mutableCopy");
NSMutableDictionary copy() @selector("mutableCopy");
}
extern (Objective-C)
interface NSCopying {
// NSCopying copy(NSZone) @selector("copyWithZone:");
NSArray copy() @selector("copy");
NSDictionary copy() @selector("copy");
NSString copy() @selector("copy");
}
struct NSZone { }
extern (Objective-C)
extern class NSImage : NSObject {
static NSArray imageTypes() @selector("imageTypes");
static NSImage name(NSString) @selector("imageNamed:");
override static NSImage alloc() @selector("alloc");
NSImage init(NSString) @selector("initWithContentsOfFile:");
NSImage init(NSURL) @selector("initWithContentsOfURL:");
void draw(NSRect) @selector("drawInRect:");
void draw(NSPoint, NSRect, NSUInteger, CGFloat)
@selector("drawAtPoint:fromRect:operation:fraction:");
NSSize size() @selector("size");
}
extern (Objective-C)
extern class NSBundle : NSObject { // ==
static NSBundle mainBundle() @selector("mainBundle");
NSString path(NSString, NSString) @selector("pathForResource:ofType:");
NSString url(NSString) @selector("bundleWithURL:");
}
extern (Objective-C)
extern class NSDictionary : NSObject {
/* Creating an Empty Dictionary */
static NSDictionary dictionary() @selector("dictionary");
override NSDictionary init() @selector("init"); //
static NSDictionary dic(NSArray, NSArray)
@selector("dictionaryWithObject:forKeys:");
static NSDictionary dic(NSArray, NSArray)
@selector("dictionaryWithObjects:forKeys:"); // 訂正 2024.10.29
static NSDictionary dic(NSArray, NSArray, NSUInteger)
@selector("dictionaryWithObjects:forKeys:count:"); //
/* Creating a Dictionary from Another Dictionary */
/* Creating a Dictionary from External Source */
/* Creating a Dictionary from an NSCoder */
/* Creating Key Sets for Shared-Key Optimized Dictionaries */
/* Counting Entires */
NSUInteger count() @selector("count");
/* Comparing Dictionaries */
/* Accessing Keys and Values */
NSObject valueForKey(NSString) @selector("valueForKey:"); //
NSString strForKey(NSString) @selector("objectForKey:");
void strValForKey(NSString) @selector("setValueForKey:"); //
NSString strForKey(NSString) @selector("objectForKey:"); //
NSString key(NSString) @selector("objectForKey:");
NSObject objectForKey(NSObject) @selector("objectForKey:");
/* Enumerating Dictionaries */
/* Sorting Dictionaries */
/* Filtering Dictionaries */
/* Storing Dictionaries */
/* Accessing File Attributes */
/* Describing a Dictionary */
// static NSDictionary dicStrStr("NSString, NSString, NSInteger")
// @selector("dictionaryWithObjects:forKeys:count:");
// static NSDictionary dicStrNum("NSString, NSNumber, NSInteger")
// @selector("dictionaryWithObjects:forKeys:count:");
NSMutableDictionary copy() @selector("mutableCopy");
}
extern (Objective-C)
extern class NSMutableDictionary : NSDictionary {
override static NSMutableDictionary dictionary() @selector("dictionary");
NSMutableDictionary setObjKey(NSString, NSString) @selector("setObject:forKey:");
NSString objKey(NSString) @selector("objectForKey:"); // keyの要素の取得
void removeKey(NSString) @selector("removeObjectForKey:"); // keyの要素を削除
void removeAll() @selector("removeAllObjects"); // 全要素を削除
NSDictionary copy() @selector("copy");
}
/* TextAPI */
extern (Objective-C)
extern class NSTextView : NSText {
override static NSTextView alloc() @selector("alloc");
override NSTextView init() @selector("init");
override NSTextView init(NSRect) @selector("initWithFrame:");
override void frame(NSRect) @selector("setFrame:");
void linkDetection(bool)
@selector("setAutomaticLinkDetectionEnabled:");
void textCompletion(bool)
@selector("setAutomaticTextCompletionEnabled:");
void autoresizingMask(NSAutoresizingMaskOptions)
@selector("setAutoresizingMask:");
void resizeMask(ResizingMask)
@selector("setAutoresizingMask:"); // 2
bool allowsUndo() @selector("allowsUndo"); //
void allowsUndo(bool) @selector("setAllowsUndo:"); //
}
extern (Objective-C)
extern class NSTextStorage : NSMutableAttributedString {} //
extern (Objective-C)
extern class NSText : NSView {
override static NSText alloc() @selector("alloc");
override NSText init(NSRect) @selector("initWithFrame:");
NSFont font(NSFont) @selector("setFont:");
}
extern (Objective-C)
extern class NSOpenPanel : NSSavePanel {
static NSOpenPanel openPanel() @selector("openPanel");
}
extern (Objective-C)
extern class NSSavePanel : NSPanel {
static NSSavePanel savePanel() @selector("savePanel");
void run() @selector("runModal");
}
extern (Objective-C)
extern class NSPanel : NSWindow { }
extern (Objective-C)
extern class NSEvent : NSObject { // 追加 Cocoaから 24.01.26
/* Creating an event object */
/* Getting general event information */
NSPoint locationInWindow() @selector("locationInWindow");
NSPoint locatInWin() @selector("locationInWindow");
NSWindow window() @selector("window");
/* Getting modifier flags */
NSEventModifierFlags modifierFlags() @selector("modifierFlags");
/* Getting key event information */
ushort keyCode() @selector("keyCode"); //
/* Getting mouse event information (readonly)*/
NSUInteger pressedMouseButtons() @selector("pressedMouseButtons");
NSTimeInterval doubleClickInterval() @selector("doubleClickInterval");
NSPoint mouseLocation() @selector("mouseLocation");
NSInteger buttonNumber() @selector("buttonNumber");
NSInteger clickCount() @selector("clickCount");
NSEventMask associatedEventsMask() @selector("associatedEventsMask");
/* Monitoring app events */
}
alias NSTimeInterval = double;
enum NSEventMask : ulong {
/* Getting Any Event */
Any = ulong.max, // NSUIntegerMax
/* Getting Mouse-Related Events */
LeftMouseDown = 1UL << NSEventType.LeftMouseDown,
LeftMouseDragged = 1UL << NSEventType.LeftMouseDragged,
LeftMouseUp = 1UL << NSEventType.LeftMouseUp,
RightMouseDown = 1UL << NSEventType.RightMouseDown,
RightMouseDragged = 1UL << NSEventType.RightMouseDragged,
RightMouseUp = 1UL << NSEventType.RightMouseUp,
OtherMouseDown = 1UL << NSEventType.OtherMouseDown,
OtherMouseDragged = 1UL << NSEventType.OtherMouseDragged,
OtherMouseUp = 1UL << NSEventType.OtherMouseUp,
MouseEntered = 1UL << NSEventType.MouseEntered,
MouseMoved = 1UL << NSEventType.MouseMoved,
MouseExited = 1UL << NSEventType.MouseExited,
/* Getting Keyboard Events */
KeyDown = 1UL << NSEventType.KeyDown,
KeyUp = 1UL << NSEventType.KeyUp,
/* Getting Touch Events */
BeginGesture = 1UL << NSEventType.BeginGesture,
EndGesture = 1UL << NSEventType.EndGesture,
Magnify = 1UL << NSEventType.Magnify,
SmartMagnify = 1UL << NSEventType.SmartMagnify,
Swipe = 1UL << NSEventType.Swipe,
Rotate = 1UL << NSEventType.Rotate,
Gesture = 1UL << NSEventType.Gesture,
DirectTouch = 1UL << NSEventType.DirectTouch,
TablePoint = 1UL << NSEventType.TablePoint,
TableProximity = 1UL << NSEventType.TableProximity,
Pressure = 1UL << NSEventType.Pressure,
/* Getting Input Events */
ScrollWheel = 1UL << NSEventType.ScrollWheel,
ChangeMode = 1UL << NSEventType.ChangeMode,
/* GettingSystem Events */
AppKitDefined = 1UL << NSEventType.AppKitDefined,
ApplicationDefined = 1UL << NSEventType.ApplicationDefined,
CursorUpdate = 1UL << NSEventType.CursorUpdate,
FlagsChanged = 1UL << NSEventType.FlagsChanged,
Periodic = 1UL << NSEventType.Periodic,
SystemDefined = 1UL << NSEventType.SystemDefined,
}
enum NSEventType : NSUInteger {
/* Getting Mouse-Related Event Types */
LeftMouseDown = 1,
LeftMouseDragged = 6,
LeftMouseUp = 2,
RightMouseDown = 3,
RightMouseUp = 4,
RightMouseDragged = 7,
OtherMouseDown = 25,
OtherMouseDragged = 27,
OtherMouseUp = 26,
MouseMoved = 5,
MouseEntered = 8,
MouseExited = 9,
/* Getting Keyboard Event Types */
KeyDown = 10,
KeyUp = 11,
/* Getting Touch-Based Events */
BeginGesture = 19,
EndGesture = 20,
Magnify = 30,
SmartMagnify = 32,
Swipe = 31,
Rotate = 18,
Gesture = 29,
DirectTouch = 37,
TablePoint = 23,
TableProximity = 24,
Pressure = 34,
/* Getting Input Events */
ScrollWheel = 22,
ChangeMode = 38,
/* GettingSystem Events */
AppKitDefined = 13,
ApplicationDefined = 15,
CursorUpdate = 17,
FlagsChanged = 12,
Periodic = 16,
QuickLook = 33,
SystemDefined = 14,
}
enum NSEventModifierFlags : NSUInteger {
CapsLoc = 1 << 16,
Shift = 1 << 17,
Control = 1 << 18,
Option = 1 << 19,
Command = 1 << 20,
NumericPat = 1 << 21,
Help = 1 << 22,
Function = 1 << 23,
DeviceIndependentFlagMask = 0xffff0000uL,
}
extern (Objective-C)
extern class NSError : NSObject {
static NSError errorWithDomain(NSErrorDomain, NSInteger, NSDictionary)
@selector("errorWithDomain:code:userInfo:");
// static NSError error(NSErrorDomain, NSInteger, NSDictionary)
// @selector("errorWithDomain:code:userInfo:");
override NSError init() @selector("init");
extern (D)
NSError error(ErrorDomain domain, int i, NSDictionary dic) {
return errorWithDomain(domain.toNs, i, dic);
}
}
alias NSErrorDomain = NSString;
enum ErrorDomain : string {
Cocoa = "NSCocoaErrorDomain",
POSIX = "NSPOSIXErrorDomain",
OSStatus = "NSOSStatusErrorDomain",
Mach = "NSMachErrorDomain",
URL = "NSURLErrorDomain",
StreamSOCKS = "NSStreamSOCKErrorDomain",
StreamSocketSSL = "NSStreamSocketSSLErrorDomain",
}
enum NSFileReadError : NSInteger {
Unknown = 256,
NoPermission = 257,
InvalidFileName = 258,
CorruptFileError = 259,
NoSuchFile = 260,
InapplicableStringEncoding = 261,
UnsupportedScheme = 262,
TooLarge = 263,
UnknownStringEdncodeing = 264,
}
extern (Objective-C)
extern class NSData : NSObject {
/* Creating Data */
// override static NSData alloc() @selector("alloc");
static NSData data() @selector("data");
static NSData bytes(void*, NSUInteger) @selector("dataWithBytes:length:");
static NSData noCopy(void*, NSUInteger) @selector("dataWithBytesNoCopy:length:");
static NSData noCopy(void*, NSUInteger, bool)
@selector("dataWithBytesNoCopy:length:freeWhenDone:");
static NSData data(NSData) @selector("dataWithData:");
NSData init(void*, NSUInteger) @selector("initWithBytes:length:");
NSData initNoCopy(void*, NSUInteger) @selector("initWithBytesNoCopy:length:");
// NSData initNoCopy(void*, NSUInteger, void*)
// @selector("initWithBytesNoCopy:length:deallocator:");
NSData init(NSData) @selector("initWithData:");
/* Reading Data from a File */
static NSData data(NSString path) @selector("dataWithContentsOfFile:");
static NSData data(NSString, NSDataReading, NSError)
@selector("dataWithContentsOfFile:options:NSError:");
static NSData data(NSURL url) @selector("dataWithContentsOfURL:");
/* Writing Data to a File */
NSData writeFile(NSString path, bool) @selector("writeToFiel:atomically:");
NSData writeFile(NSString, NSDataWriting, NSError)
@selector("writeToFile:options:error:");
/* Encoding a Decoding Base64 Representations */
/* Accessing UderLying Bytes */
/* Finding Data */
/* Testing Data */
NSUInteger length() @selector("length");
/* Compressing and Decompressing Data */
}
enum NSDataReading : NSUInteger { // NSDataReadingOptions
MappedIfSafe = 1UL << 0, // ファイルを仮想メモリにマップ
Uncached = 1UL << 1, // キャッシュに保存すべきでない
MappedAlways = 1UL << 3 // ファイルをマップする
}
enum NSDataWriting : NSUInteger {
Atomic = 1UL << 0, // 補助ファイル使用
WithoutOverwriting = 1UL << 1, // ファイルが存在する時はエラー
FileProtectionNone = 0x10000000,
ProtectNone = 0x10000000, // 暗号化しない
FileProtectionComplete = 0x20000000,
ProtectComplete = 0x20000000, // ロックが解除されている間のみ
FileProtectionCompleteUnlessOpen = 0x30000000,
ProtectUnlessOpen = 0x30000000, // ロック解除または開いているとき
FileProtectionCompleteUntilFirstUserAuthentication = 0x40000000,
ProtectFirstUse = 0x40000000, // 最初に解除したとき
FileProtectionMask = 0xf0000000 // システムが使用
}
extern (Objective-C)
extern class NSException : NSObject {
static NSException raise(NSExceptionName, NSString)
@selector("raise:format:");
}
alias NSExceptionName = NSString;
alias ExceptionName = NSExceptionName;
/* TableAPI.d --> control_api.d */
extern (Objective-C)
extern class NSController : NSObject {
override static NSController alloc() @selector("alloc");
override NSController init() @selector("init");
// NSController init(NSCoder) @selector("initWithCorder:");
void objectDidBeginEditing(NSEditor) @selector("objectDidBeginEditing:");
void objectDidEndEditing(NSEditor) @selector("objectDidEndEditing:");
bool commitEditing() @selector("commitEditing");
void commitEditing(bool) @selector("isCommitEditing:");
// void commitEditingWithDelegate(void*, SEL, void* )
// selector("commitEditingWithDelegate:didCommitSelector:contextInfo:");
void descardEditing() @selector("discardEditing");
bool editing() @selector("editing");
void editing(bool) @selector("isEditing:");
}
extern (Objective-C)
interface NSEditor {}
extern (Objective-C)
extern class NSCursor : NSObject {
NSCursor arrowCursor() @selector("arrowCursor");
NSCursor iBeamCursor() @selector("IBeamCursor");
NSCursor crosshairCursor() @selector("crosshairCursor");
NSCursor closedHandCursor() @selector("closedHandCursor");
NSCursor openHandCursor() @selector("openHandCursor");
NSCursor pointingHandCursor() @selector("pointingHandCursor");
NSCursor resizeLeftCursor() @selector("resizeLeftCursor");
NSCursor resizeRightCursor() @selector("resizeRightCursor");
NSCursor resizeLeftRightCursor() @selector("resizeLeftRightCursor");
}
extern (Objective-C)
interface NSStandardKeyBindingResponding {
/* Moving the Insertion Pointer */
@optional void moveBackward(NSEvent event) @selector("moveBackward:");
@optional void moveDown(NSEvent event) @selector("moveDown:");
@optional void moveForward(NSEvent event) @selector("moveForward:");
@optional void moveLeft(NSEvent event) @selector("moveLeft:");
@optional void moveRight(NSEvent event) @selector("moveRight:");
@optional void moveUp(NSEvent event) @selector("moveUp:");
}
cocoa/window.d
- Log
- 2025-03-08 修正しました。
- 2025-03-04 修正しました。
- 2024-08-23 追加・修正しました。
- 2024-08-20 追加・修正しました。
- 2024-06-14 追加・修正しました。
- 2024-06-05 修正しました。
- 2024-03-25 追加・修正
- 2023-12-12 追加・修正
- 2023-10-29 追加・修正 NSTextView 他
- 2023-10-20 追加・修正 NSArray 他
- 2023-07-06 追加・修正
- 2023-05-16 upload