René Nyffenegger's collection of things on the web
René Nyffenegger on Oracle - Most wanted - Feedback -
 

DisplayClip [Ming wrapper class]

The source

DisplayClip.h
#ifndef DISPLAY_CLIP_H
#define DISPLAY_CLIP_H

#include "DisplayItem.h"

#include "Action.h"


/* A Character_ can be Add'ed to a MovieClip_ which
   returns a DisplayItem.

   A MovieClip is a Character_, therefor, it can be Added
   to a MovieClip_ as well. However, an added MovieClip has
   some functionality, notably adding Actions for mouse and key
   events, which give raise to a derived class from DisplayItem. */

class DisplayClip : public DisplayItem {
    friend class Movie;
    friend class MovieClip;

  protected:
    DisplayClip(SWFDisplayItem d);

  public:
    void OnLoad      (std::string const&);
    void OnEnterFrame(std::string const&);
    void OnUnLoad    (std::string const&);
    void OnMouseMove (std::string const&);
    void OnMouseDown (std::string const&);
    void OnMouseUp   (std::string const&);
    void OnKeyDown   (std::string const&);
    void OnKeyUp     (std::string const&);
    void OnData      (std::string const&);

    void OnLoad      (Action const&);
    void OnEnterFrame(Action const&);
    void OnUnLoad    (Action const&);
    void OnMouseMove (Action const&);
    void OnMouseDown (Action const&);
    void OnMouseUp   (Action const&);
    void OnKeyDown   (Action const&);
    void OnKeyUp     (Action const&);
    void OnData      (Action const&);

		/*  Todo: flags one of the following???
SWFACTION_ONLOAD
SWFACTION_ENTERFRAME
SWFACTION_UNLOAD
SWFACTION_MOUSEMOVE
SWFACTION_MOUSEDOWN
SWFACTION_MOUSEUP
SWFACTION_KEYDOWN
SWFACTION_KEYUP
SWFACTION_DATA


   Does only work (???) if DisplayItem is an instance of a MovieClip.
	 Generates a onClipEvent() action => For this reason, it is perheps 
	 advisable to sub class DisplayItem for classes instances that
	 represent MovieClips.
*/
  private:
		void On(     Action const&, int flags);
		void On(std::string const&, int flags);
};


#endif
DisplayClip.cpp
#include "DisplayClip.h"
#include "ming.h"

DisplayClip::DisplayClip(SWFDisplayItem d) : DisplayItem(d) {
}

void DisplayClip::OnLoad(std::string const& a) {
  On(a, SWFACTION_ONLOAD);
}

void DisplayClip::OnEnterFrame(std::string const& a) {
  On(a, SWFACTION_ENTERFRAME);
}

void DisplayClip::OnUnLoad(std::string const& a) {
  On(a, SWFACTION_UNLOAD);
}

void DisplayClip::OnMouseMove(std::string const& a) {
  On(a, SWFACTION_MOUSEMOVE);
}

void DisplayClip::OnMouseDown(std::string const& a) {
  On(a, SWFACTION_MOUSEDOWN);
}

void DisplayClip::OnMouseUp(std::string const& a) {
  On(a, SWFACTION_MOUSEUP);
}

void DisplayClip::OnKeyDown(std::string const& a) {
  On(a, SWFACTION_KEYDOWN);
}

void DisplayClip::OnKeyUp(std::string const& a) {
  On(a, SWFACTION_KEYUP);
}

void DisplayClip::OnData(std::string const& a) {
  On(a, SWFACTION_DATA);
}

void DisplayClip::OnLoad(Action const& a) {
  On(a, SWFACTION_ONLOAD);
}

void DisplayClip::OnEnterFrame(Action const& a) {
  On(a, SWFACTION_ENTERFRAME);
}

void DisplayClip::OnUnLoad(Action const& a) {
  On(a, SWFACTION_UNLOAD);
}

void DisplayClip::OnMouseMove(Action const& a) {
  On(a, SWFACTION_MOUSEMOVE);
}

void DisplayClip::OnMouseDown(Action const& a) {
  On(a, SWFACTION_MOUSEDOWN);
}

void DisplayClip::OnMouseUp(Action const& a) {
  On(a, SWFACTION_MOUSEUP);
}

void DisplayClip::OnKeyDown(Action const& a) {
  On(a, SWFACTION_KEYDOWN);
}

void DisplayClip::OnKeyUp(Action const& a) {
  On(a, SWFACTION_KEYUP);
}

void DisplayClip::OnData(Action const& a) {
  On(a, SWFACTION_DATA);
}

void DisplayClip::On(std::string const& a, int flags) {
  On(Action(a), flags);
}

void DisplayClip::On(Action const& a, int flags) {
	SWFDisplayItem_addAction(item_, a.action_, flags);
}

Examples

The following clsses demonstrate this class: