more horizontal refactoring
[swftools.git] / lib / example / buttontest.c
index daf0a2c..1823817 100644 (file)
@@ -6,9 +6,20 @@
 
    Copyright (c) 2000, 2001 Matthias Kramm <kramm@quiss.org>
                             Rainer Böhme <rfxswf@reflex-studio.de>
-   This file is distributed under the GPL, see file COPYING for details 
-*/
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software
+   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA */
 
 #include <stdio.h>
 #include <fcntl.h>
@@ -19,14 +30,14 @@ TAG* t;
 
 #define ID_BUTTON 31
 
-int useDefineButton2 = 0; // set this to 1 to use DefineButton2 Tags
+int useDefineButton2 = 1; // set this to 1 to use DefineButton2 Tags
                           // instead of DefineButton1
                
 int main (int argc,char ** argv)
 { SWF swf;
   RGBA rgb;
   SRECT r;
-  LPSHAPE s;
+  SHAPE* s;
   ActionTAG*a1,*a2,*a3, *actiontoset;
   S32 width=300,height = 300;
   
@@ -35,7 +46,7 @@ int main (int argc,char ** argv)
 
   memset(&swf,0x00,sizeof(SWF));        // set global movie parameters
 
-  swf.fileVersion    = 4;               // make flash 4 compatible swf
+  swf.fileVersion    = 8;               // make flash 4 compatible swf
   swf.frameRate      = 0x1900;          // about 0x19 frames per second
   
   swf.movieSize.xmax = 20*width;        // flash units: 1 pixel = 20 units
@@ -69,24 +80,18 @@ int main (int argc,char ** argv)
       swf_ShapeFree(s);                   // clean shape structure (which isn't needed anymore after writing the tag)
   }
 
-  a1 = swf_ActionStart(t);
-    action_SetTarget("movie");
-    action_NextFrame();
-    action_SetTarget("");
-    action_End();
-  swf_ActionEnd();
+  a1 = action_SetTarget(0, "movie");
+  a1 = action_NextFrame(a1);
+  a1 = action_SetTarget(a1, "");
+  a1 = action_End(a1);
  
-  a2 = swf_ActionStart(t);
-    //action_GetUrl("test.swf","_level0"); // load a swf
-    //action_GetUrl("index.html","_this"); // load html in new window
-    action_GetUrl("http://www.quiss.org/swftools/index.html","_parent"); // load html in this window
-    action_End();
-  swf_ActionEnd();
-
-  a3 = swf_ActionStart(t);
-    action_GotoFrame(33);
-    action_End();
-  swf_ActionEnd();
+    //a2 = action_GetUrl(a2, "test.swf","_level0"); // load a swf
+    //a2 = action_GetUrl(a2, "index.html","_this"); // load html in new window
+    a2 = action_GetUrl(0, "http://www.quiss.org/swftools/index.html","_parent"); // load html in this window
+    a2 = action_End(a2);
+
+    a3 = action_GotoFrame(0,33);
+    a3 = action_End(a3);
 
   actiontoset = a2;  
 
@@ -99,7 +104,7 @@ int main (int argc,char ** argv)
       swf_ButtonSetRecord(t,BS_DOWN,36,1,NULL,NULL);
       swf_SetU8(t,0); // end of button records
       
-      swf_SetActions(t,actiontoset);
+      swf_ActionSet(t,actiontoset);
   }
   else
   {
@@ -111,13 +116,15 @@ int main (int argc,char ** argv)
       swf_ButtonSetRecord(t,BS_DOWN,36,1,NULL,NULL);
       swf_SetU8(t,0); // end of button records
 
-      swf_ButtonSetCondition(t, BC_OVERDOWN_OVERUP);
-       swf_SetActions(t,actiontoset);
+      swf_ButtonSetCondition(t, BC_IDLE_OVERUP);
+      swf_ActionSet(t,actiontoset);
        
       swf_ButtonPostProcess(t, 1); // don't forget!
   }
 
-  // FIXME: Free Action Tag lists
+  swf_ActionFree(a1);
+  swf_ActionFree(a2);
+  swf_ActionFree(a3);
 
   t = swf_InsertTag(t,ST_PLACEOBJECT2);
   swf_ObjectPlace(t, ID_BUTTON, 2,0,0,0);
@@ -125,7 +132,7 @@ int main (int argc,char ** argv)
   t = swf_InsertTag(t,ST_SHOWFRAME);
   t = swf_InsertTag(t,ST_END);
 
-  f = open("buttontest.swf",O_WRONLY|O_CREAT, 0644);
+  f = open("buttontest.swf",O_WRONLY|O_CREAT|O_BINARY, 0644);
   if FAILED(swf_WriteSWF(f,&swf)) fprintf(stderr,"WriteSWF() failed.\n");
   close(f);