home *** CD-ROM | disk | FTP | other *** search
/ Chip 2003 January / soundCD_1.03.iso / players / Sonique / s2alpha_install_021004.exe / install_gui_mml < prev    next >
Text File  |  2002-10-04  |  20KB  |  473 lines

  1. <?mml version="0.5" ?>
  2. <mml>
  3.     <interface>
  4.         <fontstyle name="title" size="24" face="Tahoma" style="bold"   />
  5.         <fontstyle name="edit" size="16"  face="Impact"   />
  6.         <fontstyle name="q"    size="16"  face="Tahoma"   />
  7.         <fontstyle name="checkbox_font"    size="12"  face="Lucida Console"   />
  8.  
  9.         <!--
  10.         
  11.         row0long 39
  12.         row1along 59/63
  13.         row2along 81/85
  14.         row3along 103/106
  15.         row3along 125/128
  16.         
  17.         -->
  18.         <rect name="center" > 16,59,389,109  </rect>
  19.  
  20.         <rect name="row0long" > 16,39,389,59  </rect>
  21.  
  22.         <rect name="row1along" > 16,59,389,88  </rect>
  23.         <rect name="row1a" > 16,63,30,79 </rect>
  24.         <rect name="row1blong" > 36,59,389,81 </rect>
  25.         <rect name="row1b" > 36,59,150,81 </rect>
  26.         <rect name="row1c" > 156,63,170,79 </rect>
  27.         <rect name="row1d" > 176,59,240,81 </rect>
  28.         <rect name="row1e" > 246,63,310,79 </rect>
  29.         <rect name="row1f" > 316,59,389,81 </rect>
  30.  
  31.         <rect name="row2along" > 16,81,389,109 </rect>
  32.         <rect name="row2a" > 16,85,30,99 </rect>
  33.         <rect name="row2blong" > 36,81,389,101 </rect>
  34.         <rect name="row2b" > 36,81,150,101 </rect>
  35.         <rect name="row2c" > 156,85,170,99 </rect>
  36.         <rect name="row2d" > 176,81,240,101 </rect>
  37.  
  38.  
  39.         <rect name="row3a" > 16,106,30,119 </rect>
  40.         <rect name="row3blong" > 36,103,389,123 </rect>
  41.         <rect name="row3b" > 36,103,150,123 </rect>
  42.         <rect name="row3c" > 156,106,170,119 </rect>
  43.         <rect name="row3d" > 176,103,240,123 </rect>
  44.  
  45.  
  46.         <rect name="row4a" > 16,128,29,141 </rect>
  47.         <rect name="row4blong" > 36,125,389,145 </rect>
  48.         <rect name="row4b" > 36,125,150,145 </rect>
  49.         <rect name="row4c" > 156,128,170,141 </rect>
  50.         <rect name="row4d" > 176,125,240,144 </rect>
  51.  
  52.  
  53.         <window name="install" offset="200,200,600,400" alignment=".5,.5,.5,.5" hitstyle="drag" >
  54.             <color name="dg" >0xFF015826</color>
  55.             <color name="lg" >0xFF598527</color>
  56.             <color name="do" >0xFFD55000</color>
  57.             <imagestyle name="background" >
  58.                 <color_fill color = "dg"    offset = "0,0,0,30"    alignment = "0,0,1,0" />
  59.                 <color_fill color = "do"    offset="0,30,0,-50"    alignment="0,0,1,1"    />
  60.                 <color_fill color = "dg"    offset="0,-50,0,0"    alignment="0,1,1,1"    />
  61.                 <text offset="10,0,0,0" alignment="0,0,1,1" color="0xFFFFFFFF" font_style="title">Sonique2 Alpha2</text>
  62.             </imagestyle>
  63.  
  64.             <?macrodef textbutton 
  65.                 <window name="$(name)" type="button" offset="$(loc) @ 0,0,400,300" alignment="1,1,1,1" transparent="true" hitstyle="active"  >
  66.                     <imagestyle name="state0">
  67.                         <color_rect 
  68.                             thickness="1.5" 
  69.                             cornerradius="6" 
  70.                             color="0xFFFFFFFF" 
  71.                             blendmode="PS_NORMAL" 
  72.                             opacity="0.75" 
  73.                         />
  74.                         <color_rect thickness="1.5" cornerradius="6" color="0xFFFFFFFF" blendmode="PS_NORMAL" state="hit" offset="1,1,-1,-1" alignment="0,0,1,1" />
  75.                         <text font_style="edit" color="#FFFFFF" justification="h_center|v_center" state="normal" opacity="0.75" >$(name)</text>
  76.                         <text font_style="edit" color="#FFFFFF" justification="h_center|v_center" state="hit" >$(name)</text>
  77.                     </imagestyle>
  78.             ?>
  79.             <?macrodef bkgrnd
  80.                 <imagestyle name="background$(name)" >
  81.                     <color_fill color="dg" />
  82.                     <color_rect color="lg" thickness="3" />
  83.                 </imagestyle>
  84.             ?>
  85.  
  86.             <?macrodef rndbtn 
  87.                 <window name="$(name)" type="button" offset="install.psd|$(name) @ install.psd" alignment="1,0,1,0" hitstyle="active" transparent="true" >
  88.                     <imagestyle name="state0" >
  89.                         <raster source="install.psd|$(name)"
  90.                             blendmode="PS_NORMAL"
  91.                             opacity="0.75"
  92.                         />    
  93.                         <raster source="install.psd|$(name)"
  94.                             blendmode="PS_NORMAL"
  95.                             state="HIT"
  96.                             opacity="1.0"
  97.                         />    
  98.                     </imagestyle>
  99.             ?>
  100.             <?macrodef checkbox 
  101.                 <window name="$(name)" type="button" offset="$(offset)" alignment="$(alignment)" transparent="true" hitstyle="active"  >
  102.                     <property hover="true" />
  103.                     <imagestyle name="state0">
  104.                         <raster source="install.psd|unchecked"
  105.                             blendmode="PS_NORMAL"
  106.                         />    
  107.                     </imagestyle>
  108.                     <imagestyle name="state1">
  109.                         <raster source="install.psd|checked"
  110.                             blendmode="PS_NORMAL"
  111.                         />    
  112.                     </imagestyle>
  113.                     <script name="OnInit">
  114.                         $(name).SetToggle(true);
  115.                         $(name).SetButtonState($(state));
  116.                     </script>
  117.                 </window>
  118.  
  119.             ?>
  120.  
  121.             <?macrodef checkbox_label 
  122.                 <window name="$(name)" type="textdisplay" offset="$(offset)" alignment="$(alignment)" transparent="true" >
  123.                     <property font_color="0xFFFFFFFF" font_style="q" text="$(description)"/>
  124.                 </window>
  125.             ?>
  126.  
  127.         <!-- minimize button -->
  128.             <?macroins rndbtn name="minimize" ?>
  129.                 <script name="OnClick" > parent.MinimizeWindow(1); </script>
  130.             </window>
  131.  
  132.         <!-- close button -->
  133.             <?macroins rndbtn name="close" ?>
  134.                 <script name="OnClick" > parent.DestroyWindow(); </script>
  135.             </window>
  136.  
  137.         <!-- about window -->
  138.             <window name="about" type="textdisplay" offset="center" transparent="true" >
  139.                 <property 
  140.                     text="You are about to install a pre-release version of Sonique2.  Install at your own risk."  
  141.                     justification="h_center|v_center"
  142.                     font_style="q" font_color="0xFFFFFFFF" 
  143.                 />
  144.             </window>
  145.  
  146.  
  147.         <!-- close s2 window -->
  148.             <window name="close_sonique2" type="textdisplay" offset="center" alignment="1,0,1,0" transparent="true" >
  149.                 <property 
  150.                     text="Before continuing, please ensure that there are no instances of sonique2.exe running."  
  151.                     justification="h_center|v_center"
  152.                     font_style="q" font_color="0xFFFFFFFF" 
  153.                 />
  154.             </window>
  155.  
  156.         <!-- license window 
  157.             <window name="license" type="textdisplay" offset="row1along" alignment="-1,0,-1,0" transparent="true" >
  158.                 <property text="LEGALIZE!" font_style="q" font_color="0xFFFFFFFF" />
  159.             </window>-->
  160.  
  161.  
  162.         <!-- destination window -->
  163.             <window name="where" type="textdisplay" offset="row1along" alignment="-1,0,-1,0" transparent="true" >
  164.                 <property text="where?" font_style="q" font_color="0xFFFFFFFF" />
  165.             </window>
  166.         <!-- path window -->
  167.             <window name="edit" type="EditBox" offset="row2along" alignment="-1,0,-1,0" hitstyle="active"  >
  168.                 <property 
  169.                     font_style        = "edit"
  170.                     font_color        = "0xFFFFFFFF"
  171.                     cursor_on_color    = "0xFFFFFFFF"
  172.                     cursor_off_color    = "lg"
  173.                     selection_color    = "lg"
  174.                     text_offset_rect    = "4,4,-4,-4"
  175.                     text                = "c:\Program Files\Sonique2"
  176.                 />
  177.                 <?macroins bkgrnd name="_active" ?>
  178.                 <?macroins bkgrnd name="_inactive" ?>
  179.             </window>
  180.  
  181.         <!-- options window -->
  182.             <window name="options" type="textdisplay" offset="row1along" alignment="-1,0,-1,0" transparent="true" >
  183.                 <property text="please specify your preferences:" font_style="q" font_color="0xFFFFFFFF" />
  184.             </window>
  185.         <!-- startmenu check box -->
  186.             <?macroins checkbox name="startmenu" offset="row2a" alignment="-1,0,-1,0" state="1" ?>
  187.             <?macroins checkbox_label name="startmenu_label" offset="row2blong" alignment="-1,0,-1,0" description="Create a program group in your Start menu" ?>
  188.         <!-- desktop icon check box -->
  189.             <?macroins checkbox name="desktop_icon" offset="row3a" alignment="-1,0,-1,0" state="1" ?>
  190.             <?macroins checkbox_label name="desktop_icon_label" offset="row3blong" alignment="-1,0,-1,0" description="Create a shortcut on your desktop" ?>
  191.  
  192.         <!-- file associations window -->
  193.             <window name="associations" type="textdisplay" offset="row0long" alignment="-1,0,-1,0" transparent="true" >
  194.                 <property text="file associations:" font_style="q" font_color="0xFFFFFFFF" />
  195.             </window>
  196.         <!-- mp3 check box -->
  197.             <?macroins checkbox name="mp3" offset="row1a" alignment="-1,0,-1,0" state="1" ?>
  198.             <?macroins checkbox_label name="mp3_label" offset="row1b" alignment="-1,0,-1,0"    description=".mp3" ?>
  199.         <!-- ogg check box -->
  200.             <?macroins checkbox name="ogg" offset="row2a" alignment="-1,0,-1,0" state="1" ?>
  201.             <?macroins checkbox_label name="ogg_label" offset="row2b" alignment="-1,0,-1,0" description=".ogg" ?>
  202.         <!-- cda check box -->
  203.             <?macroins checkbox name="cda" offset="row3a" alignment="-1,0,-1,0" state="1" ?>
  204.             <?macroins checkbox_label name="cda_label" offset="row3b" alignment="-1,0,-1,0" description=".cda" ?>
  205.         <!-- wav check box     -->
  206.             <?macroins checkbox name="wav" offset="row4a" alignment="-1,0,-1,0" state="0" ?>
  207.             <?macroins checkbox_label name="wav_label" offset="row4b" alignment="-1,0,-1,0" description=".wav"    ?>
  208.         <!-- xpl check box -->
  209.             <?macroins checkbox name="xpl" offset="row1c" alignment="-1,0,-1,0" state="1" ?>
  210.             <?macroins checkbox_label name="xpl_label" offset="row1d" alignment="-1,0,-1,0" description=".xpl" ?>
  211.         <!-- pls check box -->
  212.             <?macroins checkbox name="pls" offset="row2c" alignment="-1,0,-1,0" state="1" ?>
  213.             <?macroins checkbox_label name="pls_label" offset="row2d" alignment="-1,0,-1,0" description=".pls" ?>
  214.         <!-- m3u check box -->
  215.             <?macroins checkbox name="m3u" offset="row3c" alignment="-1,0,-1,0" state="1" ?>
  216.             <?macroins checkbox_label name="m3u_label" offset="row3d" alignment="-1,0,-1,0" description=".m3u" ?>
  217.  
  218.         <!-- plugins window -->
  219.             <window name="plugins" type="textdisplay" offset="row0long" alignment="-1,0,-1,0" transparent="true" >
  220.                 <property text="optional plugins:" font_style="q" font_color="0xFFFFFFFF" />
  221.             </window>
  222.         <!-- cdraw check box -->
  223.             <?macroins checkbox name="cdraw" offset="row1a" alignment="-1,0,-1,0" state="1" ?>
  224.             <?macroins checkbox_label name="cdraw_label" offset="row1blong" alignment="-1,0,-1,0" description="CD Raw (win9x/me support is kinda buggy)" ?>
  225.         <!-- aorta check box -->
  226.             <?macroins checkbox name="aorta" offset="row2a" alignment="-1,0,-1,0" state="1" ?>
  227.             <?macroins checkbox_label name="aorta_label" offset="row2blong" alignment="-1,0,-1,0" description="Aorta vis" ?>
  228.         <!-- wav check box     -->
  229.             <?macroins checkbox name="cosmicbelt" offset="row3a" alignment="-1,0,-1,0" state="1" ?>
  230.             <?macroins checkbox_label name="cosmicbelt_label" offset="row3blong" alignment="-1,0,-1,0" description="CosmicBelt vis" ?>
  231.  
  232.  
  233.         <!-- installing window -->
  234.             <window name="installing" type="textdisplay" offset="row1along" alignment="1,0,1,0"  transparent="true">
  235.                 <property text="installing files..." font_style="q" font_color="0xFFFFFFFF" />
  236.             </window>
  237.         <!-- progress window -->
  238.             <window name="progress" type="fillbar" offset="row2along" alignment="1,0,1,0" >
  239.                 <Property orientation="left_to_right"
  240.                           bar_align_rect ="0,0,1,1"
  241.                           bar_offset_rect="3,3,-3,-3"
  242.                 />
  243.                 <?macroins bkgrnd name="" ?>
  244.                 <ImageStyle name="barfilled">
  245.                     <color_fill color="0xFFFFFFFF" />
  246.                 </ImageStyle>
  247.             </window>
  248.  
  249.  
  250.         <!-- done window -->
  251.             <window name="done" type="textdisplay" offset="row1along" alignment="1,0,1,0"  transparent="true">
  252.                 <property text="done! enjoy." font_style="q" font_color="0xFFFFFFFF" />
  253.             </window>
  254.         <!-- readme check box -->
  255.             <?macroins checkbox name="readme" offset="row2a" alignment="-1,0,-1,0" state="1" ?>
  256.             <?macroins checkbox_label name="readme_label" offset="row2blong" alignment="-1,0,-1,0" description="View ReadMe file" ?>
  257.         <!-- launch check box -->
  258.             <?macroins checkbox name="launch" offset="row3a" alignment="-1,0,-1,0" state="1" ?>
  259.             <?macroins checkbox_label name="launch_label" offset="row3blong" alignment="-1,0,-1,0" description="Launch Sonique2"?>
  260.  
  261.         <!-- OK button (and main install logic) -->
  262.             <?macroins textbutton name="ok" loc="322,264,393,290" ?>
  263.                 <script name="OnInit"> screen=0; </script>
  264.                 <script name="OnClick">
  265.                     screen++;
  266.                     if (screen == 1) 
  267.                     {
  268.                         // move out about
  269.                         about.SetAlignment({-1,0,-1,0},0,300,"linear_accel" );
  270.  
  271.                         // move in close_sonique2
  272.                         close_sonique2.SetAlignment({0,0,0,0},0,300,"linear_accel" );
  273.                     }
  274.                     else if (screen == 2)
  275.                     {                
  276.                         // move out close_sonique2
  277.                         close_sonique2.SetAlignment({-1,0,-1,0},0,300,"linear_accel" );
  278.  
  279.                         // move in edit, where
  280.                         edit.SetText(:installer.GetInstallPath());
  281.                         where.SetAlignment({0,0,0,0},0,300,"linear_decel" );
  282.                         edit.SetAlignment({0,0,0,0},0,300,"linear_decel" );
  283.                     }
  284.                     else if (screen == 3)
  285.                     {
  286.                         // move out edit and where
  287.                         edit.SetAlignment({-1,0,-1,0},0,300,"linear_accel" );
  288.                         where.SetAlignment({-1,0,-1,0},0,300,"linear_accel" );
  289.  
  290.                         // move in plugin checkboxes
  291.                         plugins.SetAlignment({0,0,0,0},0,300,"linear_decel" );
  292.                         cdraw.SetAlignment({0,0,0,0},0,300,"linear_decel" );
  293.                         cdraw_label.SetAlignment({0,0,0,0},0,300,"linear_decel" );
  294.                         aorta.SetAlignment({0,0,0,0},0,300,"linear_decel" );
  295.                         aorta_label.SetAlignment({0,0,0,0},0,300,"linear_decel" );
  296.                         cosmicbelt.SetAlignment({0,0,0,0},0,300,"linear_decel" );
  297.                         cosmicbelt_label.SetAlignment({0,0,0,0},0,300,"linear_decel" );
  298.  
  299.                     }
  300.                     else if (screen == 4)
  301.                     {
  302.  
  303.                         // move out plugin checkboxes
  304.                         plugins.SetAlignment({-1,0,-1,0},0,300,"linear_accel" );
  305.                         cdraw.SetAlignment({-1,0,-1,0},0,300,"linear_accel" );
  306.                         cdraw_label.SetAlignment({-1,0,-1,0},0,300,"linear_accel" );
  307.                         aorta.SetAlignment({-1,0,-1,0},0,300,"linear_accel" );
  308.                         aorta_label.SetAlignment({-1,0,-1,0},0,300,"linear_accel" );
  309.                         cosmicbelt.SetAlignment({-1,0,-1,0},0,300,"linear_accel" );
  310.                         cosmicbelt_label.SetAlignment({-1,0,-1,0},0,300,"linear_accel" );
  311.  
  312.  
  313.                         // move in 
  314.                         associations.SetAlignment({0,0,0,0},0,300,"linear_decel" );
  315.                         mp3.SetAlignment({0,0,0,0},0,300,"linear_decel" );
  316.                         mp3_label.SetAlignment({0,0,0,0},0,300,"linear_decel" );
  317.                         ogg.SetAlignment({0,0,0,0},0,300,"linear_decel" );
  318.                         ogg_label.SetAlignment({0,0,0,0},0,300,"linear_decel" );
  319.                         if ( !cdraw.GetButtonState() ) 
  320.                         {
  321.                             cda.SetButtonState(0);
  322.                             cda.Disable();
  323.                             cda_label.Disable();
  324.                         }
  325.                         cda.SetAlignment({0,0,0,0},0,300,"linear_decel" );
  326.                         cda_label.SetAlignment({0,0,0,0},0,300,"linear_decel" );
  327.                         wav.SetAlignment({0,0,0,0},0,300,"linear_decel" );
  328.                         wav_label.SetAlignment({0,0,0,0},0,300,"linear_decel" );
  329.                         xpl.SetAlignment({0,0,0,0},0,300,"linear_decel" );
  330.                         xpl_label.SetAlignment({0,0,0,0},0,300,"linear_decel" );
  331.                         pls.SetAlignment({0,0,0,0},0,300,"linear_decel" );
  332.                         pls_label.SetAlignment({0,0,0,0},0,300,"linear_decel" );
  333.                         m3u.SetAlignment({0,0,0,0},0,300,"linear_decel" );
  334.                         m3u_label.SetAlignment({0,0,0,0},0,300,"linear_decel" );
  335.                     }
  336.                     else if (screen == 5)
  337.                     {
  338.                         // move out association checkboxes
  339.                         associations.SetAlignment({-1,0,-1,0},0,300,"linear_accel" );
  340.                         mp3.SetAlignment({-1,0,-1,0},0,300,"linear_accel" );
  341.                         mp3_label.SetAlignment({-1,0,-1,0},0,300,"linear_accel" );
  342.                         ogg.SetAlignment({-1,0,-1,0},0,300,"linear_accel" );
  343.                         ogg_label.SetAlignment({-1,0,-1,0},0,300,"linear_accel" );
  344.                         cda.SetAlignment({-1,0,-1,0},0,300,"linear_accel" );
  345.                         cda_label.SetAlignment({-1,0,-1,0},0,300,"linear_accel" );
  346.                         wav.SetAlignment({-1,0,-1,0},0,300,"linear_accel" );
  347.                         wav_label.SetAlignment({-1,0,-1,0},0,300,"linear_accel" );
  348.                         xpl.SetAlignment({-1,0,-1,0},0,300,"linear_accel" );
  349.                         xpl_label.SetAlignment({-1,0,-1,0},0,300,"linear_accel" );
  350.                         pls.SetAlignment({-1,0,-1,0},0,300,"linear_accel" );
  351.                         pls_label.SetAlignment({-1,0,-1,0},0,300,"linear_accel" );
  352.                         m3u.SetAlignment({-1,0,-1,0},0,300,"linear_accel" );
  353.                         m3u_label.SetAlignment({-1,0,-1,0},0,300,"linear_accel" );
  354.  
  355.                         // move in options checkboxes
  356.                         options.SetAlignment({0,0,0,0},0,300,"linear_decel" );
  357.                         startmenu.SetAlignment({0,0,0,0},0,300,"linear_decel" );
  358.                         startmenu_label.SetAlignment({0,0,0,0},0,300,"linear_decel" );
  359.                         desktop_icon.SetAlignment({0,0,0,0},0,300,"linear_decel" );
  360.                         desktop_icon_label.SetAlignment({0,0,0,0},0,300,"linear_decel" );
  361.                     }
  362.                     else
  363.                     {
  364.                         // move out options, checkboxes
  365.                         options.SetAlignment({-1,0,-1,0},0,300,"linear_accel" );
  366.                         startmenu.SetAlignment({-1,0,-1,0},0,300,"linear_accel" );
  367.                         startmenu_label.SetAlignment({-1,0,-1,0},0,300,"linear_accel" );
  368.                         desktop_icon.SetAlignment({-1,0,-1,0},0,300,"linear_accel" );
  369.                         desktop_icon_label.SetAlignment({-1,0,-1,0},0,300,"linear_accel" );
  370.  
  371.                         parent.DoInstall();
  372.                     }
  373.                 </script>
  374.             </window>
  375.  
  376.             <?macroins textbutton name="cancel" loc="236,264,307,290" ?>
  377.                 <script name="OnClick" > parent.DestroyWindow(); </script>
  378.             </window>
  379.  
  380.             <window name="error" type="textdisplay" offset="15,78,388,106" transparent="true" />
  381.  
  382.             <script name="DoInstall">
  383.                 $path = edit.GetText();
  384.                 if( :installer.SetInstallPath($path) )
  385.                 {
  386.                     // move in installing, progress and ok
  387.                     installing.SetAlignment({0,0,0,0},0,300,"linear_decel" );
  388.                     progress.SetAlignment({0,0,0,0},0,300,"linear_decel" );
  389.                     cancel.SetAlignment({-1,0,-1,0},0,300,"linear_accel" );
  390.                     ok.SetAlignment({2,1,2,1},0,300,"linear_accel" );
  391.  
  392.                     ok.OnClick= "";
  393.  
  394.                     // select main package
  395.                     :installer.SelectPackageForInstall("{A717B122-2492-47af-9D41-960DA77A0865}");
  396.  
  397.                     // select media formats
  398.                     if ( mp3.GetButtonState() ) { :installer.SelectSubPackageForInstall("mp3"); }
  399.                     if ( ogg.GetButtonState() ) { :installer.SelectSubPackageForInstall("ogg"); }
  400.                     if ( cda.GetButtonState() ) { :installer.SelectSubPackageForInstall("cda"); }
  401.                     if ( wav.GetButtonState() ) { :installer.SelectSubPackageForInstall("wav"); }
  402.                     // select playlist formats
  403.                     if ( xpl.GetButtonState() ) {    :installer.SelectSubPackageForInstall("xpl"); }
  404.                     if ( pls.GetButtonState() ) {    :installer.SelectSubPackageForInstall("pls"); }
  405.                     if ( m3u.GetButtonState() ) { :installer.SelectSubPackageForInstall("m3u"); }
  406.  
  407.                                     
  408.                     // select plugins formats
  409.                     if ( cdraw.GetButtonState() ) {    :installer.SelectSubPackageForInstall("cdraw"); }
  410.                     if ( aorta.GetButtonState() ) { :installer.SelectSubPackageForInstall("aorta"); }
  411.                     if ( cosmicbelt.GetButtonState() ) { :installer.SelectSubPackageForInstall("cosmicbelt"); }
  412.  
  413.  
  414.                     // create shortcuts?
  415.                     if ( desktop_icon.GetButtonState() ) { :installer.SelectSubPackageForInstall("desktop"); }
  416.                     if ( startmenu.GetButtonState() ) { :installer.SelectSubPackageForInstall("start_menu"); }
  417.  
  418.                     // register install progress callbacks
  419.                     :installer.Register("installprogress","progress.SetRealPos( $params[1] );", this ); 
  420.                     :installer.Register("installdone", "Done();", this ); 
  421.  
  422.                     // shut down any existing sonique2's
  423.                     // jmctodo this is ugly.  make it pretty.
  424.                     while ( :installer.IsWindowOpen("Sonique2 Window Class", "Sonique2") )
  425.                     {
  426.                         :installer.Popup("Warning","Sonique2 is running.  Please shut it down and then click OK." );
  427.                     }
  428.  
  429.                     // install selected packages
  430.                     :installer.InstallSelectedPackages();
  431.                 }
  432.                 else
  433.                 {
  434.                     :installer.Popup("oops", "Bad Install path.");
  435.                 }
  436.             </script>
  437.             <script name="Done" >
  438.                 :installer.UnRegister("installprogress",this );
  439.                 :installer.UnRegister("installdone",this );
  440.  
  441.                 // move out progress indicators
  442.                 installing.SetAlignment({-1,0,-1,0},0,300,"linear_accel" );
  443.                 progress.SetAlignment({-1,0,-1,0},0,300,"linear_accel" );
  444.  
  445.                 // move in options, checkboxes
  446.                 readme.SetAlignment({0,0,0,0},0,300,"linear_decel" );
  447.                 readme_label.SetAlignment({0,0,0,0},0,300,"linear_decel" );
  448.                 launch.SetAlignment({0,0,0,0},0,300,"linear_decel" );
  449.                 launch_label.SetAlignment({0,0,0,0},0,300,"linear_decel" );
  450.  
  451.                 done.SetAlignment({0,0,0,0},0,300,"linear_decel" );
  452.                 ok.SetAlignment({1,1,1,1},0,300,"linear_decel" );
  453.                 ok.OnClick="Close();";
  454.             </script>
  455.             <script name="Close">
  456.                 install.SetSize({400,0},0,200,"linear_accel" ); 
  457.                 install.SetLocation({0,300/4},0,200,"linear_accel",1 ); 
  458.  
  459.                 if (readme.GetButtonState())
  460.                 {
  461.                     :installer.OpenFile("$(instdir)/readme.rtf"); 
  462.                 }
  463.  
  464.                 if (launch.GetButtonState())
  465.                 {
  466.                     :installer.Execute("$(instdir)/Sonique2.exe -i -play theme1.mp3", "$(instdir)" ); 
  467.                 }
  468.                 install.DestroyWindow(300);
  469.             </script>
  470.         </window>
  471.     </interface>
  472. </mml>
  473.