+static void addViewer(gfxdevice_t* dev)
+{
+ swfoutput_internal*i = (swfoutput_internal*)dev->internal;
+
+ SHAPE*s;
+ RGBA button_colors[3]= {{0xbf,0x00,0x00,0x80},{0xbf,0x20,0x20,0xc0}, {0xbf,0xc0,0xc0,0xff}};
+ int ids[6];
+ int button_sizex = 20;
+ int button_sizey = 20;
+ int t;
+ RGBA black = {255,0,0,0};
+ for(t=0;t<6;t++) {
+ i->tag = swf_InsertTag(i->tag,ST_DEFINESHAPE3);
+ swf_ShapeNew(&s);
+ int ls1 = swf_ShapeAddLineStyle(s,40,&black);
+ int fs1 = swf_ShapeAddSolidFillStyle(s,&button_colors[t/2]);
+ int shapeid = ids[t] = getNewID(dev);
+ swf_SetU16(i->tag,shapeid);
+ SRECT r;
+ r.xmin = -20*button_sizex;
+ r.xmax = 20*button_sizex;
+ r.ymin = 0;
+ r.ymax = 40*button_sizey;
+ swf_SetRect(i->tag,&r); // set shape bounds
+ swf_SetShapeHeader(i->tag,s); // write all styles to tag
+ swf_ShapeSetAll(i->tag,s,0*button_sizex,0,ls1,fs1,0);
+ swf_ShapeSetLine(i->tag,s,(1-(t&1)*2)*20*button_sizex,20*button_sizey);
+ swf_ShapeSetLine(i->tag,s,-(1-(t&1)*2)*20*button_sizex,20*button_sizey);
+ swf_ShapeSetLine(i->tag,s,0,-40*button_sizey);
+ swf_ShapeSetEnd(i->tag); // finish drawing
+ swf_ShapeFree(s); // clean shape structure (which isn't needed anymore after writing the tag)
+ }
+ ActionTAG*a1=0,*a2=0,*a3=0;
+ a1 = action_NextFrame(a1);
+ a1 = action_Stop(a1);
+ a1 = action_End(a1);
+
+ a2 = action_PreviousFrame(a2);
+ a2 = action_Stop(a2);
+ a2 = action_End(a2);
+
+ a3 = action_Stop(a3);
+ a3 = action_End(a3);
+
+ i->tag = swf_InsertTag(i->tag, ST_DOACTION);
+ swf_ActionSet(i->tag,a3);
+
+ i->tag = swf_InsertTag(i->tag,ST_DEFINEBUTTON);
+ int buttonid1 = getNewID(dev);
+ swf_SetU16(i->tag, buttonid1);
+ swf_ButtonSetRecord(i->tag,BS_UP|BS_HIT,ids[0],1,NULL,NULL);
+ swf_ButtonSetRecord(i->tag,BS_OVER,ids[2],1,NULL,NULL);
+ swf_ButtonSetRecord(i->tag,BS_DOWN,ids[4],1,NULL,NULL);
+ swf_SetU8(i->tag,0); // end of button records
+ swf_ActionSet(i->tag,a1);
+
+ i->tag = swf_InsertTag(i->tag,ST_DEFINEBUTTON);
+ int buttonid2 = getNewID(dev);
+ swf_SetU16(i->tag, buttonid2);
+ swf_ButtonSetRecord(i->tag,BS_UP|BS_HIT,ids[1],1,NULL,NULL);
+ swf_ButtonSetRecord(i->tag,BS_OVER,ids[3],1,NULL,NULL);
+ swf_ButtonSetRecord(i->tag,BS_DOWN,ids[5],1,NULL,NULL);
+ swf_SetU8(i->tag,0); // end of button records
+ swf_ActionSet(i->tag,a2);
+
+ i->tag = swf_InsertTag(i->tag,ST_PLACEOBJECT2);
+ MATRIX m;
+ swf_GetMatrix(0, &m);
+ m.tx = button_sizex*20+200;
+ swf_ObjectPlace(i->tag, buttonid2, 65534,&m,0,0);
+ i->tag = swf_InsertTag(i->tag,ST_PLACEOBJECT2);
+ m.tx = button_sizex*20+200+200;
+ swf_ObjectPlace(i->tag, buttonid1, 65535,&m,0,0);
+}
+
+