view dstep/appkit/NSMovieView.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 source

/**
 * 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.NSMovieView;

import dstep.appkit.NSMovie;
import dstep.appkit.NSUserInterfaceValidation;
import dstep.appkit.NSView;
import dstep.applicationservices.coregraphics.CGBase;
import dstep.foundation.NSGeometry;
import dstep.foundation.NSObjCRuntime;
import dstep.internal.Version;
import dstep.objc.bridge.Bridge;
import dstep.objc.objc;

static if (!D_LP64):
	
enum : NSUInteger
{
    NSQTMovieNormalPlayback,
    NSQTMovieLoopingPlayback,
    NSQTMovieLoopingBackAndForthPlayback
}

typedef NSUInteger NSQTMovieLoopMode;

struct _MVFlags
{
    uint editable;// :1;
	NSQTMovieLoopMode loopMode; //:3;
	uint playsEveryFrame; //:1;
	uint playsSelectionOnly; //:1;
	uint controllerVisible; //:1;
	uint reserved; //:25;
}

class NSMovieView : NSView, INSUserInterfaceValidations
{
	mixin (ObjcWrap);
	
	bool validateUserInterfaceItem (INSValidatedUserInterfaceItem anItem)
	{
		return invokeObjcSelf!(bool, "validateUserInterfaceItem:", INSValidatedUserInterfaceItem)(anItem);
	}
	
	void setMovie (NSMovie movie)
	{
		return invokeObjcSelf!(void, "setMovie:", NSMovie)(movie);
	}
	
	NSMovie movie ()
	{
		return invokeObjcSelf!(NSMovie, "movie");
	}
	
	void* movieController ()
	{
		return invokeObjcSelf!(void*, "movieController");
	}
	
	NSRect movieRect ()
	{
		return invokeObjcSelf!(NSRect, "movieRect");
	}
	
	void start (Object sender)
	{
		return invokeObjcSelf!(void, "start:", Object)(sender);
	}
	
	void stop (Object sender)
	{
		return invokeObjcSelf!(void, "stop:", Object)(sender);
	}
	
	bool isPlaying ()
	{
		return invokeObjcSelf!(bool, "isPlaying");
	}
	
	void gotoPosterFrame (Object sender)
	{
		return invokeObjcSelf!(void, "gotoPosterFrame:", Object)(sender);
	}
	
	void gotoBeginning (Object sender)
	{
		return invokeObjcSelf!(void, "gotoBeginning:", Object)(sender);
	}
	
	void gotoEnd (Object sender)
	{
		return invokeObjcSelf!(void, "gotoEnd:", Object)(sender);
	}
	
	void stepForward (Object sender)
	{
		return invokeObjcSelf!(void, "stepForward:", Object)(sender);
	}
	
	void stepBack (Object sender)
	{
		return invokeObjcSelf!(void, "stepBack:", Object)(sender);
	}
	
	void setRate (float rate)
	{
		return invokeObjcSelf!(void, "setRate:", float)(rate);
	}
	
	float rate ()
	{
		return invokeObjcSelf!(float, "rate");
	}
	
	void setVolume (float volume)
	{
		return invokeObjcSelf!(void, "setVolume:", float)(volume);
	}
	
	float volume ()
	{
		return invokeObjcSelf!(float, "volume");
	}
	
	void setMuted (bool mute)
	{
		return invokeObjcSelf!(void, "setMuted:", bool)(mute);
	}
	
	bool isMuted ()
	{
		return invokeObjcSelf!(bool, "isMuted");
	}
	
	void setLoopMode (NSQTMovieLoopMode mode)
	{
		return invokeObjcSelf!(void, "setLoopMode:", NSQTMovieLoopMode)(mode);
	}
	
	NSQTMovieLoopMode loopMode ()
	{
		return invokeObjcSelf!(NSQTMovieLoopMode, "loopMode");
	}
	
	void setPlaysSelectionOnly (bool flag)
	{
		return invokeObjcSelf!(void, "setPlaysSelectionOnly:", bool)(flag);
	}
	
	bool playsSelectionOnly ()
	{
		return invokeObjcSelf!(bool, "playsSelectionOnly");
	}
	
	void setPlaysEveryFrame (bool flag)
	{
		return invokeObjcSelf!(void, "setPlaysEveryFrame:", bool)(flag);
	}
	
	bool playsEveryFrame ()
	{
		return invokeObjcSelf!(bool, "playsEveryFrame");
	}
	
	void showController (bool show, bool adjustingSize)
	{
		return invokeObjcSelf!(void, "showController:adjustingSize:", bool, bool)(show, adjustingSize);
	}
	
	bool isControllerVisible ()
	{
		return invokeObjcSelf!(bool, "isControllerVisible");
	}
	
	void resizeWithMagnification (CGFloat magnification)
	{
		return invokeObjcSelf!(void, "resizeWithMagnification:", CGFloat)(magnification);
	}
	
	NSSize sizeForMagnification (CGFloat magnification)
	{
		return invokeObjcSelf!(NSSize, "sizeForMagnification:", CGFloat)(magnification);
	}
	
	void setEditable (bool editable)
	{
		return invokeObjcSelf!(void, "setEditable:", bool)(editable);
	}
	
	bool isEditable ()
	{
		return invokeObjcSelf!(bool, "isEditable");
	}
	
	void cut (Object sender)
	{
		return invokeObjcSelf!(void, "cut:", Object)(sender);
	}
	
	void copy (Object sender)
	{
		return invokeObjcSelf!(void, "copy:", Object)(sender);
	}
	
	void paste (Object sender)
	{
		return invokeObjcSelf!(void, "paste:", Object)(sender);
	}
	
	void delete_ (Object sender)
	{
		return invokeObjcSelf!(void, "delete:", Object)(sender);
	}
	
	void selectAll (Object sender)
	{
		return invokeObjcSelf!(void, "selectAll:", Object)(sender);
	}
	
	void clear (Object sender)
	{
		return invokeObjcSelf!(void, "clear:", Object)(sender);
	}
}