diff dstep/appkit/NSSavePanel.d @ 16:19885b43130e

Huge update, the bridge actually works now
author Jacob Carlborg <doob@me.com>
date Sun, 03 Jan 2010 22:06:11 +0100
parents
children b9de51448c6b
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dstep/appkit/NSSavePanel.d	Sun Jan 03 22:06:11 2010 +0100
@@ -0,0 +1,327 @@
+/**
+ * Copyright: Copyright (c) 2009 Jacob Carlborg.
+ * Authors: Jacob Carlborg
+ * Version: Initial created: Sep 24, 2009 
+ * License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost Software License 1.0)
+ */
+module dstep.appkit.NSSavePanel;
+
+import dstep.appkit.NSBox;
+import dstep.appkit.NSNibDeclarations;
+import dstep.appkit.NSPanel;
+import dstep.appkit.NSTextField;
+import dstep.appkit.NSTextView;
+import dstep.appkit.NSView;
+import dstep.appkit.NSWindow;
+import dstep.foundation.NSArray;
+import dstep.foundation.NSObjCRuntime;
+import dstep.foundation.NSString;
+import dstep.foundation.NSURL;
+import dstep.objc.bridge.Bridge;
+import dstep.objc.objc;
+
+// This should no need to be here
+private enum
+{
+	NSOKButton = 1,
+	NSCancelButton = 0
+}
+
+enum
+{
+	NSFileHandlingPanelCancelButton = NSCancelButton,
+	NSFileHandlingPanelOKButton = NSOKButton
+}
+
+struct _SPFlags
+{
+	uint saveMode;
+	uint isExpanded;
+	uint allowsOtherFileTypes;
+	uint canCreateDirectories;
+	uint canSelectedHiddenExtension;
+	uint reserved;
+}
+
+const TNSSavePanelRuntime = `
+
+	void ok (Object sender)
+	{
+		return invokeObjcSelf!(void, "ok:", Object)(sender);
+	}
+
+	void cancel (Object sender)
+	{
+		return invokeObjcSelf!(void, "cancel:", Object)(sender);
+	}
+
+	void beginSheetForDirectory (NSString path, NSString name, NSWindow docWindow, Object delegate_, SEL didEndSelector, void* contextInfo)
+	{
+		return invokeObjcSelf!(void, "beginSheetForDirectory:file:modalForWindow:modalDelegate:didEndSelector:contextInfo:", NSString, NSString, NSWindow, Object, SEL, void*)(path, name, docWindow, delegate_, didEndSelector, contextInfo);
+	}
+
+	NSInteger runModalForDirectory (NSString path, NSString name)
+	{
+		return invokeObjcSelf!(NSInteger, "runModalForDirectory:file:", NSString, NSString)(path, name);
+	}
+
+	NSInteger runModal ()
+	{
+		return invokeObjcSelf!(NSInteger, "runModal");
+	}
+
+	//mixin ObjcBindMethod!(ok, "ok:");
+	//mixin ObjcBindMethod!(cancel, "cancel:");
+	//mixin ObjcBindMethod!(beginSheetForDirectory, "beginSheetForDirectory:file:modalForWindow:modalDelegate:didEndSelector:contextInfo:");
+	//mixin ObjcBindMethod!(runModalForDirectory, "runModalForDirectory:file:");
+	//mixin ObjcBindMethod!(runModal, "runModal");
+
+`;
+
+const TNSSavePanelDelegate = `
+
+	bool panel (Object sender, NSString filename)
+	{
+		return invokeObjcSelf!(bool, "panel:shouldShowFilename:", Object, NSString)(sender, filename);
+	}
+
+	int panel (Object sender, NSString name1, NSString name2, bool caseSensitive)
+	{
+		return invokeObjcSelf!(int, "panel:compareFilename:with:caseSensitive:", Object, NSString, NSString, bool)(sender, name1, name2, caseSensitive);
+	}
+
+	bool panel (Object sender, NSString filename)
+	{
+		return invokeObjcSelf!(bool, "panel:isValidFilename:", Object, NSString)(sender, filename);
+	}
+
+	NSString panel (Object sender, NSString filename, bool okFlag)
+	{
+		return invokeObjcSelf!(NSString, "panel:userEnteredFilename:confirmed:", Object, NSString, bool)(sender, filename, okFlag);
+	}
+
+	void panel (Object sender, bool expanding)
+	{
+		return invokeObjcSelf!(void, "panel:willExpand:", Object, bool)(sender, expanding);
+	}
+
+	void panel (Object sender, NSString path)
+	{
+		return invokeObjcSelf!(void, "panel:directoryDidChange:", Object, NSString)(sender, path);
+	}
+
+	void panelSelectionDidChange (Object sender)
+	{
+		return invokeObjcSelf!(void, "panelSelectionDidChange:", Object)(sender);
+	}
+
+	//mixin ObjcBindMethod!(panel, "panel:shouldShowFilename:");
+	//mixin ObjcBindMethod!(panel, "panel:compareFilename:with:caseSensitive:");
+	//mixin ObjcBindMethod!(panel, "panel:isValidFilename:");
+	//mixin ObjcBindMethod!(panel, "panel:userEnteredFilename:confirmed:");
+	//mixin ObjcBindMethod!(panel, "panel:willExpand:");
+	//mixin ObjcBindMethod!(panel, "panel:directoryDidChange:");
+	//mixin ObjcBindMethod!(panelSelectionDidChange, "panelSelectionDidChange:");
+
+`;
+
+class NSSavePanel : NSPanel
+{
+	mixin (ObjcWrap);
+
+	static NSSavePanel savePanel ()
+	{
+		return invokeObjcSelfClass!(NSSavePanel, "savePanel");
+	}
+
+	NSURL URL ()
+	{
+		return invokeObjcSelf!(NSURL, "URL");
+	}
+
+	NSString filename ()
+	{
+		return invokeObjcSelf!(NSString, "filename");
+	}
+
+	NSString directory ()
+	{
+		return invokeObjcSelf!(NSString, "directory");
+	}
+
+	void setDirectory (NSString path)
+	{
+		return invokeObjcSelf!(void, "setDirectory:", NSString)(path);
+	}
+
+	NSString requiredFileType ()
+	{
+		return invokeObjcSelf!(NSString, "requiredFileType");
+	}
+
+	void setRequiredFileType (NSString type)
+	{
+		return invokeObjcSelf!(void, "setRequiredFileType:", NSString)(type);
+	}
+
+	NSArray allowedFileTypes ()
+	{
+		return invokeObjcSelf!(NSArray, "allowedFileTypes");
+	}
+
+	void setAllowedFileTypes (NSArray types)
+	{
+		return invokeObjcSelf!(void, "setAllowedFileTypes:", NSArray)(types);
+	}
+
+	bool allowsOtherFileTypes ()
+	{
+		return invokeObjcSelf!(bool, "allowsOtherFileTypes");
+	}
+
+	void setAllowsOtherFileTypes (bool flag)
+	{
+		return invokeObjcSelf!(void, "setAllowsOtherFileTypes:", bool)(flag);
+	}
+
+	NSView accessoryView ()
+	{
+		return invokeObjcSelf!(NSView, "accessoryView");
+	}
+
+	void setAccessoryView (NSView view)
+	{
+		return invokeObjcSelf!(void, "setAccessoryView:", NSView)(view);
+	}
+
+	Object delegate_ ()
+	{
+		return invokeObjcSelf!(Object, "delegate");
+	}
+
+	void setDelegate (Object delegate_)
+	{
+		return invokeObjcSelf!(void, "setDelegate:", Object)(delegate_);
+	}
+
+	bool isExpanded ()
+	{
+		return invokeObjcSelf!(bool, "isExpanded");
+	}
+
+	bool canCreateDirectories ()
+	{
+		return invokeObjcSelf!(bool, "canCreateDirectories");
+	}
+
+	void setCanCreateDirectories (bool flag)
+	{
+		return invokeObjcSelf!(void, "setCanCreateDirectories:", bool)(flag);
+	}
+
+	bool canSelectHiddenExtension ()
+	{
+		return invokeObjcSelf!(bool, "canSelectHiddenExtension");
+	}
+
+	void setCanSelectHiddenExtension (bool flag)
+	{
+		return invokeObjcSelf!(void, "setCanSelectHiddenExtension:", bool)(flag);
+	}
+
+	bool isExtensionHidden ()
+	{
+		return invokeObjcSelf!(bool, "isExtensionHidden");
+	}
+
+	void setExtensionHidden (bool flag)
+	{
+		return invokeObjcSelf!(void, "setExtensionHidden:", bool)(flag);
+	}
+
+	bool treatsFilePackagesAsDirectories ()
+	{
+		return invokeObjcSelf!(bool, "treatsFilePackagesAsDirectories");
+	}
+
+	void setTreatsFilePackagesAsDirectories (bool flag)
+	{
+		return invokeObjcSelf!(void, "setTreatsFilePackagesAsDirectories:", bool)(flag);
+	}
+
+	NSString prompt ()
+	{
+		return invokeObjcSelf!(NSString, "prompt");
+	}
+
+	void setPrompt (NSString prompt)
+	{
+		return invokeObjcSelf!(void, "setPrompt:", NSString)(prompt);
+	}
+
+	NSString title ()
+	{
+		return invokeObjcSelf!(NSString, "title");
+	}
+
+	void setTitle (NSString title)
+	{
+		return invokeObjcSelf!(void, "setTitle:", NSString)(title);
+	}
+
+	NSString nameFieldLabel ()
+	{
+		return invokeObjcSelf!(NSString, "nameFieldLabel");
+	}
+
+	void setNameFieldLabel (NSString label)
+	{
+		return invokeObjcSelf!(void, "setNameFieldLabel:", NSString)(label);
+	}
+
+	NSString message ()
+	{
+		return invokeObjcSelf!(NSString, "message");
+	}
+
+	void setMessage (NSString message)
+	{
+		return invokeObjcSelf!(void, "setMessage:", NSString)(message);
+	}
+
+	void validateVisibleColumns ()
+	{
+		return invokeObjcSelf!(void, "validateVisibleColumns");
+	}
+
+	void selectText (Object sender)
+	{
+		return invokeObjcSelf!(void, "selectText:", Object)(sender);
+	}
+	
+	// NSSavePanelRuntime
+	void ok (Object sender)
+	{
+		return invokeObjcSelf!(void, "ok:", Object)(sender);
+	}
+
+	void cancel (Object sender)
+	{
+		return invokeObjcSelf!(void, "cancel:", Object)(sender);
+	}
+
+	void beginSheetForDirectory (NSString path, NSString name, NSWindow docWindow, Object delegate_, SEL didEndSelector, void* contextInfo)
+	{
+		return invokeObjcSelf!(void, "beginSheetForDirectory:file:modalForWindow:modalDelegate:didEndSelector:contextInfo:", NSString, NSString, NSWindow, Object, SEL, void*)(path, name, docWindow, delegate_, didEndSelector, contextInfo);
+	}
+
+	NSInteger runModalForDirectory (NSString path, NSString name)
+	{
+		return invokeObjcSelf!(NSInteger, "runModalForDirectory:file:", NSString, NSString)(path, name);
+	}
+
+	NSInteger runModal ()
+	{
+		return invokeObjcSelf!(NSInteger, "runModal");
+	}
+}
\ No newline at end of file