Hi Gyus

I have a working GUI for installing my product, and now I would like to create a GUI for modifying / changing the installation options - you know .. remove the whole pakage .. or just add or remove selected features.

My problem is: How do I specify which GUI´s to use - base on wheter the product is installed or not.

My Wix project file:


<?xml version='1.0'?>
<Wix xmlns='http://schemas.microsoft.com/wix/2003/01/wi'>

  <Product Id='7307AB7E-1A1A-4A21-9C6A-8C48AE8CF0DE'
      Name='Castle Draco'
      Language='1033'
      Version='0.0.5'
      Manufacturer='Soren Schimkat'>

     <Package Id='E95C9CAE-88B0-4333-8A4D-1563E0CE6228'
         Description='Castle Draco'
         Comments='This is the Castle Draco installer.'
         Manufacturer='Soren Schimkat'
         InstallerVersion='200'
         Compressed='no' />

     <Property Id='ARPCONTACT'>Soren Schimkat</Property>
     <Property Id='ARPURLINFOABOUT'>www.castledraco.schimkat.dk</Property>
     <Property Id='ARPHELPLINK'>www.castledraco.schimkat.dk</Property>

     <Property Id='BannerBitmap'>BannerImage</Property>
     <Property Id='REBOOT'>ReallySuppress</Property>
     <Property Id='ALLUSERS'>1</Property>
     <Property Id='LAUNCH'>0</Property>

     <Media Id='1' />
     <Media Id='2' />
     <Media Id='3' />
     <Media Id='4' />

     <Directory Id='TARGETDIR' Name='SourceDir'>

        <Directory Id="ProgramFilesFolder" Name="PFiles" SourceName=".">

            <Directory Id="INSTALLDIR" Name="Castle" LongName="Castle Draco" SourceName="." src=''>

              <Component Id='GameComponent1' Guid='5DC04EA0-0874-4B76-96DB-3C93E7B0E62B'>
                 <File Vital='yes' Id='GameFile1' Name='Castle.exe' Source='\devel\CastleDist\CastleDraco-0.0.5\Castle.exe' DiskId='1' >
                    <Shortcut Id="Shortcut1" Directory="ProgramMenuDir" Name="Castle" LongName="Castle Draco" WorkingDirectory="INSTALLDIR" />
                    <Shortcut Id="Shortcut2" Directory="DesktopFolder" Name="Castle" LongName="Castle Draco" WorkingDirectory="INSTALLDIR" />
                 </File>
                 <Registry Id='RegistryKey1' Root='HKLM' Key='Software\Soren Schimkat\Castle Draco' Name='InstallDir' Action='' Type='string' Value='[INSTALLDIR]' />
                 <Registry Id='RegistryKey2' Root='HKLM' Key='Software\Soren Schimkat\Castle Draco' Name='Version' Action='' Type='string' Value='0.0.5' />
              </Component>

              <Component Id='GameComponent2' Guid='A041125A-EF50-4751-AA75-407EE5C3EA6B'>
                 <File Vital='yes' Id='GameFile2' Name='Castle.dat' Source='\devel\CastleDist\CastleDraco-0.0.5\Castle.dat' DiskId='1' />
              </Component>

              <Component Id='GameComponent3' Guid='B1E641C4-D664-48E1-81F7-B9E26838B201'>
                 <File Vital='yes' Id='GameFile3' Name='Menu.dat' Source='\devel\CastleDist\CastleDraco-0.0.5\Menu.dat' DiskId='1' />
              </Component>

              <Component Id='GameComponent4' Guid='84909781-11F0-45AC-B3C4-B0FB520E9BE2'>
                 <File Vital='yes' Id='GameFile4' Name='Irrlicht.dll' Source='\devel\CastleDist\CastleDraco-0.0.5\Irrlicht.dll' DiskId='1' />
              </Component>

              <Component Id='GameComponent5' Guid='1BB6C26E-6E24-44C5-B7E7-440CDD945670'>
                 <File Vital='yes' Id='GameFile5' Name='audiere.dll' Source='\devel\CastleDist\CastleDraco-0.0.5\audiere.dll' DiskId='1' />
              </Component>





              <Directory Id='AudioDir' Name='audio' src=''>

                 <Component Id='AudioComponent1' Guid='CCDF6300-E455-4C09-9CD5-AF26D95B9EE7'>
                    <File Vital='yes' Id='AudioFile1' Name='Back.mp3' Source='\devel\CastleDist\CastleDraco-0.0.5\audio\Back.mp3' DiskId='2' />
                 </Component>

              </Directory>





              <Directory Id='SourceDir' Name='source' src=''>

                 <Component Id='SourceComponent1' Guid='97982CB3-4927-445E-8051-0AD3C2FC9B17'>
                    <File Vital='yes' Id='SourceFile1' Name='CastleEx.Man' LongName='Castle.exe.Manifest' Source='\devel\CastleDist\CastleDraco-0.0.5\source\Castle.exe.Manifest' DiskId='3' />
                 </Component>

                 <Component Id='SourceComponent2' Guid='4413FA61-4B32-44A4-853D-8379BE79C181'>
                    <File Vital='yes' Id='SourceFile2' Name='Castle.ico' Source='\devel\CastleDist\CastleDraco-0.0.5\source\Castle.ico' DiskId='3' />
                 </Component>

                 <Component Id='SourceComponent3' Guid='286A6340-3EB0-4C4E-B4DA-1874C8D29AD6'>
                    <File Vital='yes' Id='SourceFile3' Name='Castle_p.rc' LongName='Castle_private.rc' Source='\devel\CastleDist\CastleDraco-0.0.5\source\game.cpp' DiskId='3' />
                 </Component>

                 <Component Id='SourceComponent4' Guid='5AB07A18-55D1-47BB-B315-442E26940A64'>
                    <File Vital='yes' Id='SourceFile4' Name='game.cpp' Source='\devel\CastleDist\CastleDraco-0.0.5\source\main.cpp' DiskId='3' />
                 </Component>

                 <Component Id='SourceComponent5' Guid='1F1CB4D1-FF2A-4CE5-BC83-1C4B74C16FAF'>
                    <File Vital='yes' Id='SourceFile5' Name='main.cpp' Source='\devel\CastleDist\CastleDraco-0.0.5\source\main.cpp' DiskId='3' />
                 </Component>

                 <Component Id='SourceComponent6' Guid='14273ABE-1DFA-42B0-BE44-45A8F4F1E395'>
                    <File Vital='yes' Id='SourceFile6' Name='main.h' Source='\devel\CastleDist\CastleDraco-0.0.5\source\main.h' DiskId='3' />
                 </Component>

                 <Component Id='SourceComponent7' Guid='A32D59D8-5F2C-470D-9E69-7A2F93D26618'>
                    <File Vital='yes' Id='SourceFile7' Name='Makefile' Source='\devel\CastleDist\CastleDraco-0.0.5\source\Makefile' DiskId='3' />
                 </Component>

                 <Component Id='SourceComponent8' Guid='2E4A049C-C3F7-460C-882B-76389E7B4FB7'>
                    <File Vital='yes' Id='SourceFile8' Name='Makefile.LNX' LongName='Makefile.Linux' Source='\devel\CastleDist\CastleDraco-0.0.5\source\Makefile.Linux' DiskId='3' />
                 </Component>

                 <Component Id='SourceComponent9' Guid='B1917822-D508-4C89-B79B-BD440528B421'>
                    <File Vital='yes' Id='SourceFile9' Name='Makefile.win' LongName='Makefile.Win32' Source='\devel\CastleDist\CastleDraco-0.0.5\source\Makefile.Win32' DiskId='3' />
                 </Component>

                 <Component Id='SourceComponent10' Guid='343965C0-14AC-446F-96F2-CCB679259AA1'>
                    <File Vital='yes' Id='SourceFile10' Name='menu.cpp' Source='\devel\CastleDist\CastleDraco-0.0.5\source\menu.cpp' DiskId='3' />
                 </Component>

                 <Component Id='SourceComponent11' Guid='AA90C70A-F42E-4B0C-8722-47A1C27FCEA2'>
                    <File Vital='yes' Id='SourceFile11' Name='setup.wxs' Source='\devel\CastleDist\CastleDraco-0.0.5\source\setup.wxs' DiskId='3' />
                 </Component>

              </Directory>





              <Directory Id='DocDir' Name='doc' src=''>

                 <Component Id='DocComponent1' Guid='AAC5AE05-A577-48B4-AB4A-0AE2B5B239BE'>
                    <File Vital='yes' Id='DocFile1' Name='Readme.htm' Source='\devel\CastleDist\CastleDraco-0.0.5\doc\Readme.htm' DiskId='4'>
                       <Shortcut Id="Shortcut3" Directory="ProgramMenuDir" Name="Readme" />
                    </File>
                 </Component>

                 <Component Id='DocComponent2' Guid='AB4545F5-93AF-49E7-9B09-777D9C1328D2'>
                    <File Vital='yes' Id='DocFile2' Name='License.rtf' Source='\devel\CastleDist\CastleDraco-0.0.5\doc\License.rtf' DiskId='4'>
                       <Shortcut Id="Shortcut4" Directory="ProgramMenuDir" Name="License" />
                    </File>
                 </Component>

              </Directory>





           </Directory>

        </Directory>

        <Directory Id="ProgramMenuFolder" Name="PMenu">
            <Directory Id="ProgramMenuDir" Name="Castle" LongName="Castle Draco"/>        
        </Directory>
        <Directory Id="DesktopFolder" Name="Desktop" />
     </Directory>


     <Feature Id='Complete' Title='Castle Draco' Description='The whole thing' Display='expand' Level='1' ConfigurableDirectory='INSTALLDIR'>





         <Feature Id='Game' Title='Game' Level='1'>

            <ComponentRef Id='GameComponent1' />
            <ComponentRef Id='GameComponent2' />
            <ComponentRef Id='GameComponent3' />
            <ComponentRef Id='GameComponent4' />
            <ComponentRef Id='GameComponent5' />
            <ComponentRef Id='AudioComponent1' />

         </Feature>





         <Feature Id='Source' Title='Sourcecode' Level='10'>

            <ComponentRef Id='SourceComponent1' />
            <ComponentRef Id='SourceComponent2' />
            <ComponentRef Id='SourceComponent3' />
            <ComponentRef Id='SourceComponent4' />
            <ComponentRef Id='SourceComponent5' />
            <ComponentRef Id='SourceComponent6' />
            <ComponentRef Id='SourceComponent7' />
            <ComponentRef Id='SourceComponent8' />
            <ComponentRef Id='SourceComponent9' />
            <ComponentRef Id='SourceComponent10' />
            <ComponentRef Id='SourceComponent11' />

         </Feature>





         <Feature Id='Documentation' Title='Documentation' Level='20'>

            <ComponentRef Id='DocComponent1' />
            <ComponentRef Id='DocComponent2' />

         </Feature>
      </Feature>

      <CustomAction Id='LaunchFile' FileKey='GameFile1' ExeCommand='' Return="asyncNoWait" />

      <UI>

         <Property Id="DefaultUIFont">DlgFont8</Property>





         <Dialog Id="InstallDlg" Width="370" Height="270" Title="Castle Draco 0.0.5 Setup" NoMinimize="yes">

           <Control Id="BannerBitmap" Type="Bitmap" X="0" Y="0" Width="370" Height="44" TabSkip="no" Text="[BannerBitmap]" />
           <Control Id="BannerLine" Type="Line" X="0" Y="44" Width="370" Height="0" />

           <Control Id="Text" Type="Text" X="25" Y="55" Width="320" Height="20">
              <Text>Please read the following license agreement carefully.</Text>
           </Control>

           <Control Id="License" Type="ScrollableText" X="25" Y="85" Width="320" Height="120" Sunken="yes" TabSkip="no">
              <Text SourceFile="\devel\CastleDist\lib\License.rtf" />
           </Control>

           <Control Id="BottomLine" Type="Line" X="0" Y="234" Width="370" Height="0" />

           <Control Id="No" Type="PushButton" X="240" Y="243" Width="56" Height="17" Default="no" Cancel="yes" Text="Cancel">
              <Publish Event="EndDialog" Value="Exit">1</Publish>
           </Control>

           <Control Id="Install" Type="PushButton" X="304" Y="243" Width="56" Height="17" Default="yes" Text="Accept">
              <Publish Event="NewDialog" Value="CustomizeDlg">1</Publish>            
           </Control>

        </Dialog>





        <Dialog Id="CustomizeDlg" Width="370" Height="270" Title="Castle Draco 0.0.5 Setup" NoMinimize="yes">

           <Control Id="BannerBitmap" Type="Bitmap" X="0" Y="0" Width="370" Height="44" TabSkip="no" Text="[BannerBitmap]" />
           <Control Id="BannerLine" Type="Line" X="0" Y="44" Width="370" Height="0" />

           <Control Id="Text" Type="Text" X="25" Y="55" Width="320" Height="20">
              <Text>Click on the icons in the tree below to select the items to be installed.</Text>
           </Control>

           <Control Id="Tree" Type="SelectionTree" X="25" Y="85" Width="320" Height="95" Property="_BrowseProperty" Sunken="yes" TabSkip="no" Text="Tree of selections" />
           <Control Id="BottomLine" Type="Line" X="0" Y="234" Width="370" Height="0" />

           <Control Id="Location" Type="Text" X="75" Y="200" Width="215" Height="20">
              <Text>&lt;The selection's path&gt;</Text>
              <Subscribe Event="SelectionPath" Attribute="Text" />
              <Subscribe Event="SelectionPathOn" Attribute="Visible" />
           </Control>

           <Control Id="LocationLabel" Type="Text" X="25" Y="200" Width="50" Height="10" Text="Location:">
              <Subscribe Event="SelectionPathOn" Attribute="Visible" />
           </Control>

           <Control Id="Browse" Type="PushButton" X="304" Y="200" Width="56" Height="17" Text="Browse">
              <Publish Event="SelectionBrowse" Value="BrowseDlg">1</Publish>
           </Control>

           <Control Id="No" Type="PushButton" X="240" Y="243" Width="56" Height="17" Default="no" Cancel="yes" Text="Cancel">
              <Publish Event="EndDialog" Value="Exit">1</Publish>
           </Control>

           <Control Id="Install" Type="PushButton" X="304" Y="243" Width="56" Height="17" Default="yes" Text="Install">
              <Publish Event="NewDialog" Value="ProgressDlg" />       
           </Control>

        </Dialog>





        <Dialog Id="BrowseDlg" Width="370" Height="270" Title="Castle Draco 0.0.5 Setup" NoMinimize="yes">

           <Control Id="BannerBitmap" Type="Bitmap" X="0" Y="0" Width="370" Height="44" TabSkip="no" Text="[BannerBitmap]" />
           <Control Id="BannerLine" Type="Line" X="0" Y="44" Width="370" Height="0" />

           <Control Id="PathEdit" Type="PathEdit" X="84" Y="202" Width="261" Height="18" Property="_BrowseProperty" Indirect="yes" />
           <Control Id="ComboLabel" Type="Text" X="25" Y="58" Width="44" Height="10" TabSkip="no" Text="&amp;Look in:" />

           <Control Id="DirectoryCombo" Type="DirectoryCombo" X="70" Y="55" Width="220" Height="80" Property="_BrowseProperty" Indirect="yes" Fixed="yes" Remote="yes">
              <Subscribe Event="IgnoreChange" Attribute="IgnoreChange" />
           </Control>

           <Control Id="Up" Type="PushButton" X="298" Y="55" Width="19" Height="19" ToolTip="Up One Level" Icon="yes" FixedSize="yes" IconSize="16" Text="Up">
              <Publish Event="DirectoryListUp" Value="0">1</Publish>
           </Control>

           <Control Id="NewFolder" Type="PushButton" X="325" Y="55" Width="19" Height="19" ToolTip="Create A New Folder" Icon="yes" FixedSize="yes" IconSize="16" Text="New">
              <Publish Event="DirectoryListNew" Value="0">1</Publish>
           </Control>

           <Control Id="DirectoryList" Type="DirectoryList" X="25" Y="83" Width="320" Height="110" Property="_BrowseProperty" Sunken="yes" Indirect="yes" TabSkip="no" />
           <Control Id="PathLabel" Type="Text" X="25" Y="205" Width="59" Height="10" TabSkip="no" Text="&amp;Folder name:" />

           <Control Id="BottomLine" Type="Line" X="0" Y="234" Width="370" Height="0" />

           <Control Id="Cancel" Type="PushButton" X="240" Y="243" Width="56" Height="17" Cancel="yes" Text="Cancel">
              <Publish Event="Reset" Value="0">1</Publish>
             <Publish Event="EndDialog" Value="Return">1</Publish>
           </Control>

           <Control Id="OK" Type="PushButton" X="304" Y="243" Width="56" Height="17" Default="yes" Text="OK">
              <Publish Event="SetTargetPath" Value="[_BrowseProperty]">1</Publish>
              <Publish Event="EndDialog" Value="Return">1</Publish>
           </Control>

        </Dialog>





        <Dialog Id="ProgressDlg" Width="370" Height="270" Title="Castle Draco 0.0.5 Setup" Modeless="yes">

           <Control Id="BannerBitmap" Type="Bitmap" X="0" Y="0" Width="370" Height="44" TabSkip="no" Text="[BannerBitmap]" />
           <Control Id="BannerLine" Type="Line" X="0" Y="44" Width="370" Height="0" />

           <Control Id="ActionText" Type="Text" X="70" Y="100" Width="265" Height="10">
              <Subscribe Event="ActionText" Attribute="Text" />
           </Control>

           <Control Id="Text" Type="Text" X="35" Y="65" Width="300" Height="20">
              <Text>Please wait while the Castle Draco installer completes. This may take several minutes.</Text>
           </Control>

           <Control Id="StatusLabel" Type="Text" X="35" Y="100" Width="35" Height="10" Text="Status:" />

           <Control Id="ProgressBar" Type="ProgressBar" X="35" Y="115" Width="300" Height="10" ProgressBlocks="yes" Text="Progress done">
              <Subscribe Event="SetProgress" Attribute="Progress" />
           </Control>

           <Control Id="BottomLine" Type="Line" X="0" Y="234" Width="370" Height="0" />
           <Control Id="Cancel" Type="PushButton" X="240" Y="243" Width="56" Height="17" Disabled="yes" Text="Cancel" />
           <Control Id="OK" Type="PushButton" X="304" Y="243" Width="56" Height="17" Disabled="yes" Text="Next" />

        </Dialog>





        <Dialog Id="ExitDlg" Width="370" Height="270" Title="Castle Draco 0.0.5 Setup" NoMinimize="yes">

           <Control Id="BannerBitmap" Type="Bitmap" X="0" Y="0" Width="370" Height="44" TabSkip="no" Text="[BannerBitmap]" />
           <Control Id="BannerLine" Type="Line" X="0" Y="44" Width="370" Height="0" />

           <Control Id="Description" Type="Text" X="135" Y="70" Width="220" Height="20" Transparent="yes" NoPrefix="yes">
              <Text>Click the Finish button to exit the setup.</Text>
           </Control>

           <Control Id="Launch" Type="CheckBox" X="135" Y="120" Width="150" Height="17" Property='LAUNCH' CheckBoxValue='0'>
              <Text>Launch Castle Draco</Text>
           </Control>

           <Control Id="BottomLine" Type="Line" X="0" Y="234" Width="370" Height="0" />

           <Control Id="Cancel" Type="PushButton" X="240" Y="243" Width="56" Height="17" Disabled="yes" Text="Cancel" />

           <Control Id="OK" Type="PushButton" X="304" Y="243" Width="56" Height="17" Cancel="yes" Text="Finish">
              <Publish Event="EndDialog" Value="Return">1</Publish>
              <Publish Event='DoAction' Value='LaunchFile'>(NOT Installed) AND (LAUNCH = 1)</Publish>
           </Control>
       
        </Dialog>

        <TextStyle Id="DlgFont8" FaceName="Tahoma" Size="8" />
        <TextStyle Id="DlgFontBold8" FaceName="Tahoma" Size="8" Bold="yes" />
        <TextStyle Id="VerdanaBold13" FaceName="Verdana" Size="13" Bold="yes" />

        <UIText Id="AbsentPath" />
        <UIText Id="MenuAbsent">Entire feature will be unavailable</UIText>
        <UIText Id="MenuAdvertise">Feature will be installed when required</UIText>
        <UIText Id="MenuAllCD">Entire feature will be installed to run from CD</UIText>
        <UIText Id="MenuAllLocal">Entire feature will be installed on local hard drive</UIText>
        <UIText Id="MenuAllNetwork">Entire feature will be installed to run from network</UIText>
        <UIText Id="MenuCD">Will be installed to run from CD</UIText>
        <UIText Id="MenuLocal">Will be installed on local hard drive</UIText>
        <UIText Id="MenuNetwork">Will be installed to run from network</UIText>

        <AdminUISequence />

        <InstallUISequence>
           <Show Dialog="InstallDlg" After="CostFinalize" />
           <Show Dialog="ExitDlg" />
        </InstallUISequence>

     </UI>

     <Binary Id="Up" SourceFile="\devel\CastleDist\lib\Up.ico" />
     <Binary Id="New" SourceFile="\devel\CastleDist\lib\New.ico" />
     <Binary Id="BannerImage" SourceFile="\devel\CastleDist\lib\Banner.bmp" />
   
  </Product>

</Wix>


-- 
mvh Søren Schimkat

www.schimkat.dk


Attachment: smime.p7s
Description: S/MIME Cryptographic Signature

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

Reply via email to