Discussion:
[WiX-users] User Interface Help Needed On Displaying A Custom DIalog
Scullum
2007-01-09 19:29:41 UTC
Permalink
Wix V3

I am attempting to insert a very simple dialog between the "WelcomeDlg" and
the "LicenseAgreementDlg" pages.

I am attempting to wire up the dialogs, such that

WelcomeDlg-->Next Button-->HelloWorldDlg
HelloWorldDlg-->Back Button--> WelcomeDlg
HelloWorld-->Next Button-->LicenseAgreementDlg
LicenseAgreementDlg-->Back Button-->HelloWorld

If do
<Show Dialog="HelloWorld" After="CostFinalize" />

The dialog sequence is ::

HelloWorldDlg immediately appears
HelloWorld-->Next == LicenseAgreement
LicenseAgreement-->Back == WelcomeDlg ...hmmmm
..after this WelcomeDlg-->Next skips my HelloWorldDlg

If i restart MSI and do
HelloWorld-->Back == WelcomDlg
WelcomeDlg-->Next == LicenseAgreement .. skipping my HelloWorldDlg

Once i leave the HelloWorldDlg, i can never get back to it via the next or
back buttons on the dialogs "either-side-of-it".

If do <Show Dialog="HelloWorld" After="WelcomeDlg" /> ..my HelloWorld
dialog never displays.

Can somebody clean this confusion up for me.

Thanks in advance

This is my simple test dialog .. xml ::


<UIRef Id="WixUI_Mondo"/>
<UIRef Id="WixUI_ErrorProgressText" />
<UI>
<Dialog Width="370" Height="270" Id="HelloWorld">
<Control Type="Text" Width="50" Height="17" X="150" Y="116" Id="Hello"
TabSkip="no">
<Text>Hello World</Text>
</Control>
<Control Id="Back" Type="PushButton" X="180" Y="243" Width="56" Height="17"
Text="&amp;Back">
</Control>
<Control Id="Next" Type="PushButton" X="236" Y="243" Width="56" Height="17"
Default="yes" Text="&amp;Next">
</Control>
</Dialog>
<Publish Dialog="WelcomeDlg" Control="Next" Event="NewDialog"
Value="HelloWorld">1</Publish>
<Publish Dialog="HelloWorld" Control="Back" Event="NewDialog"
Value="WelcomeDlg">1</Publish>
<Publish Dialog="HelloWorld" Control="Next" Event="NewDialog"
Value="LicenseAgreementDlg">1</Publish>
<Publish Dialog="LicenseAgreementDlg" Control="Back" Event="NewDialog"
Value="HelloWorld">1</Publish>
<AdminUISequence />
<InstallUISequence>
<Show Dialog="HelloWorld" After="WelcomeDlg" /> <!-- never displays -->
</InstallUISequence>
</UI>

________________________________________________
Message sent using UebiMiau 2.7.2
Boris Kolpackov
2007-01-09 19:48:38 UTC
Permalink
Hi,
Post by Scullum
I am attempting to insert a very simple dialog between the "WelcomeDlg" and
the "LicenseAgreementDlg" pages.
Have you checked wixwiki.com, in particular this page:

http://www.wixwiki.com/index.php?title=WixUI_Custom


It shows how to insert a custom dialog into WixUI_InstallDir sequence.
I used this example to do just that and everything seems to work ok.
Also note that the code looks quite a bit different compared yours
(e.g., there is no use for the Show element).


hth,
-boris
--
Boris Kolpackov
Code Synthesis Tools CC
http://www.codesynthesis.com
Open-Source, Cross-Platform C++ XML Data Binding
Bob Arnson
2007-01-10 05:07:13 UTC
Permalink
Post by Scullum
I am attempting to insert a very simple dialog between the "WelcomeDlg" and
the "LicenseAgreementDlg" pages.
That requires publishing control events for the WelcomeDlg's Next button
and LicenseAgreementDlg's Back button. Once the "wizard" starts, the UI
sequence is suspended so you can't insert or remove dialogs via
InstallUISequence. You'll need to replace WixUI_Mondo -- you're adding
additional control events to the ones that WixUI_Mondo already
publishes. There's no way to override them at present.
--
sig://boB
http://bobs.org
Scullum
2007-01-10 17:19:57 UTC
Permalink
<P><BR>Thanks for the link to the wiki <A
href="http://www.wixwiki.com/index.php?title=WixUI_Custom">http://www.wixwiki.com/index.php?title=WixUI_Custom</A>
very useful</P>
<P>But i am still confused, my end goal is to provide a dialog allowing the
user to select the website to install to, much like the websetup installer
created by visual studio.</P>
<P>The chm manual states ::</P>
<P>&nbsp; You could insert a dialog between WelcomeDlg and
LicenseAgreementDlg by changing the control events for the Back and Next
buttons of the dialogs before and after the one you want to add. For
example:<BR>&nbsp; &lt;Publish Dialog="WelcomeDlg" Control="Next"
Event="NewDialog" Value="SpecialDlg"&gt;1&lt;/Publish&gt;<BR>&nbsp;
&lt;Publish Dialog="SpecialDlg" Control="Back" Event="NewDialog"
Value="WelcomeDlg"&gt;1&lt;/Publish&gt;<BR>&nbsp; &lt;Publish
Dialog="SpecialDlg" Control="Next" Event="NewDialog"
Value="LicenseAgreementDlg"&gt;1&lt;/Publish&gt;<BR>&nbsp; &lt;Publish
Dialog="LicenseAgreementDlg" Control="Back" Event="NewDialog"
Value="SpecialDlg"&gt;1&lt;/Publish&gt;<BR>&nbsp; &lt;Publish
Dialog="LicenseAgreementDlg" Control="Next" Event="NewDialog"
Value="InstallDirDlg"&gt;LicenseAccepted = "1"&lt;/Publish&gt;</P>
<P>&nbsp;</P>
<P>Creating a simple dialog and using this example, pasting it into my WIX
file gives me an error </P>
<P>Error LGHT0204: ICE17: PushButton: 'Next' of Dialog: 'InstallDirDlg' does
not have an event defined in the ControlEvent table. It is a 'Do Nothing'
button.<BR>Error LGHT0204: ICE17: PushButton: 'Back' of Dialog:
'InstallDirDlg' does not have an event defined in the ControlEvent table. It
is a 'Do Nothing' button.<BR>Error LGHT0204: ICE17: PushButton:
'ChangeFolder' of Dialog: 'InstallDirDlg' does not have an event defined in
the ControlEvent table. It is a 'Do Nothing' button.</P>
<P>Firstly i understand that with a WixUI_Mondo UI, LicenseAgreementDlg next
button should wire up to custom install dialog.&nbsp; <BR>But i do not know
the names of all the dialogs, what would this be called.&nbsp; Is there a of
the dialog names somewhere, i have looked in the user guide and the wiki but
have not found anything of relevance</P>
<P>Secondly assuming the custom install dialog is called 'CustomInstallDlg'
would this be sufficient to display my dialog within the
sequence?<BR>&nbsp;&nbsp;&nbsp;&nbsp; &lt;Publish
Dialog="LicenseAgreementDlg" Control="Next" Event="NewDialog"
Value="CustomInstallDlg"&gt;LicenseAccepted = "1"&lt;/Publish&gt;</P>
<P>Have i missed something very fundemental here.</P>
<P>Thanks for all your continued support/help sofar</P>
<P>&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; &lt;UIRef
Id="WixUI_Mondo"/&gt;<BR>&nbsp;&nbsp;&nbsp; &lt;UIRef
Id="WixUI_ErrorProgressText" /&gt;</P> <P>&nbsp;&nbsp;&nbsp; &lt;UI&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&lt;Publish Dialog="WelcomeDlg" Control="Next" Event="NewDialog"
Value="SpecialDlg"&gt;1&lt;/Publish&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&lt;Publish Dialog="SpecialDlg" Control="Back" Event="NewDialog"
Value="WelcomeDlg"&gt;1&lt;/Publish&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&lt;Publish Dialog="SpecialDlg" Control="Next" Event="NewDialog"
Value="LicenseAgreementDlg"&gt;1&lt;/Publish&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&lt;Publish Dialog="LicenseAgreementDlg" Control="Back" Event="NewDialog"
Value="SpecialDlg"&gt;1&lt;/Publish&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&lt;Publish Dialog="LicenseAgreementDlg" Control="Next" Event="NewDialog"
Value="InstallDirDlg"&gt;LicenseAccepted = "1"&lt;/Publish&gt;</P>
<P>&lt;!-- Assume Custom Installation dialog is called
CustomInstallDlg<BR>&nbsp;&nbsp;&nbsp;&nbsp; &lt;Publish
Dialog="LicenseAgreementDlg" Control="Next" Event="NewDialog"
Value="CustomInstallDlg"&gt;LicenseAccepted =
"1"&lt;/Publish&gt;<BR>--&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;Dialog Width="370" Height="270"
Id="SpecialDlg"&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&lt;Control Type="Text" Width="50" Height="17" X="150" Y="116" Id="Hello"
TabSkip="no"&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&lt;Text&gt;Hello
World&lt;/Text&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&lt;/Control&gt;</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;Control Id="Next"
Type="PushButton" X="236" Y="243" Width="56" Height="17" Default="yes"
Text="Next" /&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;Control
Id="Back" Type="PushButton" X="180" Y="243" Width="56" Height="17"
Text="Back" /&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;Control
Id="Cancel" Type="PushButton" X="304" Y="243" Width="56" Height="17"
Cancel="yes"
Text="Cancel"&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&lt;Publish Event="SpawnDialog"
Value="CancelDlg"&gt;1&lt;/Publish&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&lt;/Control&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&lt;/Dialog&gt;<BR>&nbsp;&nbsp;&nbsp; &lt;/UI&gt;</P><BR />
<BR />
________________________________________________<BR />
Message sent using UebiMiau 2.7.2<BR />
Bob Arnson
2007-01-11 04:57:14 UTC
Permalink
Post by Scullum
Error LGHT0204: ICE17: PushButton: 'Next' of Dialog: 'InstallDirDlg'
does not have an event defined in the ControlEvent table. It is a 'Do
Nothing' button.
WixUI_Mondo doesn't use InstallDirDlg -- are you referencing it?
Post by Scullum
But i do not know the names of all the dialogs, what would this be
called. Is there a of the dialog names somewhere, i have looked in
the user guide and the wiki but have not found anything of relevance
There's no such list. If you're customizing the UI, it's assumed you're
also looking at the source code in src/ext/UIExtension/wixlib.
Post by Scullum
Secondly assuming the custom install dialog is called
'CustomInstallDlg' would this be sufficient to display my dialog
within the sequence?
<Publish Dialog="LicenseAgreementDlg" Control="Next"
Event="NewDialog" Value="CustomInstallDlg">LicenseAccepted = "1"</Publish>
You have to provide an entire dialog set; you can't just override the
dialogs you're interested in. You have to replace WixUI_Mondo, for
example, by copying it and updating the Back/Next control events to
refer to your custom dialog.
--
sig://boB
http://bobs.org
Rob MacFadyen
2007-01-11 11:11:45 UTC
Permalink
There's a list of dialogs (with screen shots) at:
http://www.wixwiki.com/index.php?title=UiExtension

Regards,

Rob

-----Original Message-----
From: wix-users-***@lists.sourceforge.net
[mailto:wix-users-***@lists.sourceforge.net] On Behalf Of Bob Arnson
Sent: Wednesday, January 10, 2007 11:57 PM
To: Scullum
Cc: wix-***@lists.sourceforge.net
Subject: Re: [WiX-users] User Interface Help Needed On Displaying A Custom
DIalog
Post by Scullum
Error LGHT0204: ICE17: PushButton: 'Next' of Dialog: 'InstallDirDlg'
does not have an event defined in the ControlEvent table. It is a 'Do
Nothing' button.
WixUI_Mondo doesn't use InstallDirDlg -- are you referencing it?
Post by Scullum
But i do not know the names of all the dialogs, what would this be
called. Is there a of the dialog names somewhere, i have looked in
the user guide and the wiki but have not found anything of relevance
There's no such list. If you're customizing the UI, it's assumed you're also
looking at the source code in src/ext/UIExtension/wixlib.
Post by Scullum
Secondly assuming the custom install dialog is called
'CustomInstallDlg' would this be sufficient to display my dialog
within the sequence?
<Publish Dialog="LicenseAgreementDlg" Control="Next"
Event="NewDialog" Value="CustomInstallDlg">LicenseAccepted =
"1"</Publish>
You have to provide an entire dialog set; you can't just override the
dialogs you're interested in. You have to replace WixUI_Mondo, for example,
by copying it and updating the Back/Next control events to refer to your
custom dialog.

--
sig://boB
http://bobs.org



-------------------------------------------------------------------------
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
Scullum
2007-01-11 13:50:43 UTC
Permalink
Sorry for being such an idiot.&nbsp; I dont know how i missed this in the
wiki.. much appreciated.<BR><BR>So basically,&nbsp; I have to recompile the
entire UIExtension.dll with my necessary dialogs inside; not&nbsp;too much
of a problem.&nbsp; <BR><BR>As an aside has anyone already created a new
UIExtension with IIS settings akin to the freebie websetup installer you get
with VS.<BR><BR>Wishfully thinking that maybe some internal microsoft
product uses this and may release the dialog code as a starting
point<BR><BR>Thanks for all the help thus
far<BR><BR><BR><BR><BR><BR><BR><BR><BR><BR>
<BLOCKQUOTE dir=ltr style="PADDING-RIGHT: 0px; PADDING-LEFT: 5px;
MARGIN-LEFT: 5px; BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">
<DIV style="FONT: 10pt arial">--------- Original Message --------<BR>From:
"Rob MacFadyen" &lt;***@rmtrack.com&gt;<BR>To: "'Bob Arnson'"
&lt;***@bobs.org&gt;, "'Scullum'" &lt;***@nildram.co.uk&gt;<BR>Cc:
wix-***@lists.sourceforge.net<BR>Subject: RE: [WiX-users] User Interface
Help Needed On Displaying A Custom DIalog<BR>Date: 11/01/07
11:14<BR><BR><FONT face="Courier New" size=2><BR>There's a list of dialogs
(with screen shots) at:<BR><A class=autolink
href="http://www.wixwiki.com/index.php?title=UiExtension"
target=_blank>http://www.wixwiki.com/index.php?title=UiExtension</A><BR><BR>Regards,<BR><BR>Rob<BR><BR>-----Original
Message-----<BR>From: <A class=autolink
href="mailto:wix-users-***@lists.sourceforge.net">wix-users-***@lists.sourceforge.net</A><BR>[mailto:wix-users-***@lists.sourceforge.net]
On Behalf Of Bob Arnson<BR>Sent: Wednesday, January 10, 2007 11:57 PM<BR>To:
Scullum<BR>Cc: <A class=autolink
href="mailto:wix-***@lists.sourceforge.net">wix-***@lists.sourceforge.net</A><BR>Subject:
Re: [WiX-users] User Interface Help Needed On Displaying A
Custom<BR>DIalog<BR><BR>Scullum wrote:<BR>&gt;<BR>&gt; Error LGHT0204:
ICE17: PushButton: 'Next' of Dialog: 'InstallDirDlg'<BR>&gt; does not have
an event defined in the ControlEvent table. It is a 'Do<BR>&gt; Nothing'
button.<BR>&gt;<BR><BR>WixUI_Mondo doesn't use InstallDirDlg -- are you
referencing it?<BR><BR>&gt; But i do not know the names of all the dialogs,
what would this be<BR>&gt; called. Is there a of the dialog names somewhere,
i have looked in<BR>&gt; the user guide and the wiki but have not found
anything of relevance<BR>&gt;<BR><BR>There's no such list. If you're
customizing the UI, it's assumed you're also<BR>looking at the source code
in src/ext/UIExtension/wixlib.<BR>&gt;<BR>&gt; Secondly assuming the custom
install dialog is called<BR>&gt; 'CustomInstallDlg' would this be sufficient
to display my dialog<BR>&gt; within the sequence?<BR>&gt; &lt;Publish
Dialog="LicenseAgreementDlg" Control="Next"<BR>&gt; Event="NewDialog"
Value="CustomInstallDlg"&gt;LicenseAccepted =<BR>&gt;
"1"&lt;/Publish&gt;<BR>&gt;<BR><BR>You have to provide an entire dialog set;
you can't just override the<BR>dialogs you're interested in. You have to
replace WixUI_Mondo, for example,<BR>by copying it and updating the
Back/Next control events to refer to your<BR>custom
dialog.<BR><BR>--<BR>sig://boB<BR><A class=autolink href="http://bobs.org/"
target=_blank>http://bobs.org</A><BR><BR><BR><BR>-------------------------------------------------------------------------<BR>Take
Surveys. Earn Cash. Influence the Future of IT<BR>Join SourceForge.net's
Techsay panel and you'll get the chance to share your<BR>opinions on IT
&amp; business topics through brief surveys - and earn cash<BR><A
class=autolink
href="http://www.techsay.com/default.php?page=join.php&amp;p=sourceforge&amp;CID=DEVDEV"
target=_blank>http://www.techsay.com/default.php?page=join.php&amp;p=sourceforge&amp;CID=DEVDEV</A><BR>_______________________________________________<BR>WiX-users
mailing list<BR><A class=autolink
href="mailto:WiX-***@lists.sourceforge.net">WiX-***@lists.sourceforge.net</A><BR><A
class=autolink href="https://lists.sourceforge.net/lists/listinfo/wix-users"
target=_blank>https://lists.sourceforge.net/lists/listinfo/wix-users</A><BR><BR><BR><BR><BR><BR><BR></FONT></DIV></BLOCKQUOTE><BR
/>
<BR />
________________________________________________<BR />
Message sent using UebiMiau 2.7.2<BR />
Levi Wilson
2007-01-11 13:58:06 UTC
Permalink
I don't believe that you have to recompile the UIExtension.dll to achieve
what you want. If you take a look at
http://www.wixwiki.com/index.php?title=WixUI_Custom you'll notice that they
have a <UIRef /> tag that references the common dialogs. Then underneath in
their <UI /> tag is where they basically define the same sequence that the
WixUI_InstallDir.wxs defines (found in the src/ext/UIExtension/wixlib
directory), and then adds the appropriate tags in there for the
LicenseKeyDlg that they also define in there. This would be defined in your
main .wxs file I believe. Then you just candle / light it and you should be
good to go. You don't need to recompile the UIExtension.dll.
Sorry for being such an idiot. I dont know how i missed this in the
wiki.. much appreciated.
So basically, I have to recompile the entire UIExtension.dll with my
necessary dialogs inside; not too much of a problem.
As an aside has anyone already created a new UIExtension with IIS settings
akin to the freebie websetup installer you get with VS.
Wishfully thinking that maybe some internal microsoft product uses this
and may release the dialog code as a starting point
Thanks for all the help thus far
--------- Original Message --------
Subject: RE: [WiX-users] User Interface Help Needed On Displaying A Custom
DIalog
Date: 11/01/07 11:14
http://www.wixwiki.com/index.php?title=UiExtension
Regards,
Rob
-----Original Message-----
Sent: Wednesday, January 10, 2007 11:57 PM
To: Scullum
Subject: Re: [WiX-users] User Interface Help Needed On Displaying A Custom
DIalog
Post by Scullum
Error LGHT0204: ICE17: PushButton: 'Next' of Dialog: 'InstallDirDlg'
does not have an event defined in the ControlEvent table. It is a 'Do
Nothing' button.
WixUI_Mondo doesn't use InstallDirDlg -- are you referencing it?
Post by Scullum
But i do not know the names of all the dialogs, what would this be
called. Is there a of the dialog names somewhere, i have looked in
the user guide and the wiki but have not found anything of relevance
There's no such list. If you're customizing the UI, it's assumed you're
also
looking at the source code in src/ext/UIExtension/wixlib.
Post by Scullum
Secondly assuming the custom install dialog is called
'CustomInstallDlg' would this be sufficient to display my dialog
within the sequence?
<Publish Dialog="LicenseAgreementDlg" Control="Next"
Event="NewDialog" Value="CustomInstallDlg">LicenseAccepted =
"1"</Publish>
You have to provide an entire dialog set; you can't just override the
dialogs you're interested in. You have to replace WixUI_Mondo, for
example,
by copying it and updating the Back/Next control events to refer to your
custom dialog.
--
sig://boB
http://bobs.org
-------------------------------------------------------------------------
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
https://lists.sourceforge.net/lists/listinfo/wix-users
________________________________________________
Message sent using UebiMiau 2.7.2
-------------------------------------------------------------------------
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
https://lists.sourceforge.net/lists/listinfo/wix-users
Bob Arnson
2007-01-11 15:27:14 UTC
Permalink
So basically, I have to recompile the entire UIExtension.dll with my
necessary dialogs inside; not too much of a problem.
No. As WiX.chm says:

You don't need to rebuild WixUIExtension to customize the WixUI dialog
sets. Compile your dialog fragment and your custom set fragment with the
rest of your setup project. Continue using WixUIExtension so your
fragments can find the stock dialog fragments.
--
sig://boB
http://bobs.org
Scullum
2007-01-11 16:40:05 UTC
Permalink
<P>Levi, thanks for this information, i think the penny has finally
dropped.&nbsp; There is no need to recompile anything, just cut and paste
xml.</P>
<P>Using the Wiki example <A
href="http://www.wixwiki.com/index.php?title=WixUI_Custom">http://www.wixwiki.com/index.php?title=WixUI_Custom</A>
as base i have been able to successfully<BR>insert the license key
dialog.</P>
<P>For other people who are stuggling, here is how i did it</P>
<P>To insert the license key dialog described in the <A
href="http://www.wixwiki.com/index.php?title=WixUI_Custom">http://www.wixwiki.com/index.php?title=WixUI_Custom</A>
into the WixUI_Mondo <BR>sequence...</P>
<P>1)&nbsp;Download the WIX source package <BR>2)&nbsp;Extract the package
and browse to the {sourcedir}\src\ext\UIExtension\wixlib<BR>3)&nbsp;Open the
file WixUI_Mondo.wxs and copy the entire &lt;UI&gt; section from
it<BR>4)&nbsp;Replace the Wiki example &lt;UI&gt; section with the
&lt;UI&gt; section from WixUI_Mondo.wxs<BR>5)&nbsp;Add the new
&lt;dialog&gt; code from the example to &lt;UI&gt; section<BR>6)&nbsp;Rewire
the Next and Back buttons, as per the original example<BR>7) &nbsp;Re-insert
the template for the license key entry control&nbsp;&nbsp;&nbsp;
<BR>&nbsp;&nbsp;&lt;Property Id="PIDTemplate" Value="####-####-####-####"
/&gt;<BR>8)&nbsp;No need to recompile the WixUIExtension.dll just use -ext
WixUIExtension.dll as normal</P>
<P>&nbsp;</P>
<P><BR>You should end up with something looking similar to this </P>
<P>&nbsp;&nbsp;&nbsp; &lt;!--WixUI_Mondo.wxs&nbsp;includes this so we need
it --&gt;<BR>&nbsp;&nbsp;&nbsp; &lt;UIRef Id="WixUI_Common" /&gt;</P>
<P>&nbsp;&nbsp;&nbsp; <FONT color=#0000ff size=2></P>
<P>&lt;</FONT><FONT color=#a31515 size=2>UI</FONT><FONT color=#0000ff
size=2> </FONT><FONT color=#ff0000 size=2>Id</FONT><FONT color=#0000ff
size=2>=</FONT><FONT size=2>"</FONT><FONT color=#0000ff
size=2>WixUI_Mondo</FONT><FONT size=2>"</FONT><FONT color=#0000ff
size=2>&gt;</FONT><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;Property
Id="PIDTemplate" Value="####-####-####-####" /&gt;</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;TextStyle Id="WixUI_Font_Normal"
FaceName="Tahoma" Size="8" /&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&lt;TextStyle Id="WixUI_Font_Bigger" FaceName="Tahoma" Size="12"
/&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;TextStyle Id="WixUI_Font_Title"
FaceName="Tahoma" Size="9" Bold="yes" /&gt;</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;Property Id="DefaultUIFont"
Value="WixUI_Font_Normal" /&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&lt;Property Id="WixUI_Mode" Value="Mondo" /&gt;</P>
<P><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;DialogRef Id="ErrorDlg"
/&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;DialogRef Id="FatalError"
/&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;DialogRef Id="FilesInUse"
/&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;DialogRef Id="MsiRMFilesInUse"
/&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;DialogRef Id="PrepareDlg"
/&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;DialogRef Id="ProgressDlg"
/&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;DialogRef Id="ResumeDlg"
/&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;DialogRef Id="UserExit"
/&gt;</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;Publish Dialog="ExitDialog"
Control="Finish" Event="EndDialog" Value="Return"
Order="999"&gt;1&lt;/Publish&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&lt;Publish Dialog="WelcomeDlg" Control="Next" Event="NewDialog"
Value="LicenseAgreementDlg"&gt;1&lt;/Publish&gt;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&lt;Publish Dialog="LicenseAgreementDlg" Control="Back" Event="NewDialog"
Value="WelcomeDlg"&gt;1&lt;/Publish&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&lt;Publish Dialog="LicenseAgreementDlg" Control="Next" Event="NewDialog"
Value="LicenseKeyDlg" Order="2"&gt;LicenseAccepted = "1"&lt;/Publish&gt;</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;Publish Dialog="LicenseKeyDlg"
Control="Back" Event="NewDialog"
Value="LicenseAgreementDlg"&gt;1&lt;/Publish&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&lt;Publish Dialog="LicenseKeyDlg" Control="Next" Event="ValidateProductID"
Value="[PIDKEY]"
Order="1"&gt;1&lt;/Publish&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;Publish
Dialog="LicenseKeyDlg" Control="Next" Event="NewDialog" Value="SetupTypeDlg"
Order="2"&gt;ProductID&lt;/Publish&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;Publish Dialog="SetupTypeDlg"
Control="Back" Event="NewDialog"
Value="LicenseKeyDlg"&gt;1&lt;/Publish&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&lt;Publish Dialog="SetupTypeDlg" Control="TypicalButton" Event="NewDialog"
Value="VerifyReadyDlg"&gt;1&lt;/Publish&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&lt;Publish Dialog="SetupTypeDlg" Control="CustomButton" Event="NewDialog"
Value="CustomizeDlg"&gt;1&lt;/Publish&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&lt;Publish Dialog="SetupTypeDlg" Control="CompleteButton" Event="NewDialog"
Value="VerifyReadyDlg"&gt;1&lt;/Publish&gt;</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;Publish Dialog="CustomizeDlg"
Control="Back" Event="NewDialog" Value="MaintenanceTypeDlg"
Order="1"&gt;WixUI_InstallMode =
"Change"&lt;/Publish&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;Publish
Dialog="CustomizeDlg" Control="Back" Event="NewDialog" Value="SetupTypeDlg"
Order="2"&gt;WixUI_InstallMode =
"InstallCustom"&lt;/Publish&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&lt;Publish Dialog="CustomizeDlg" Control="Next" Event="NewDialog"
Value="VerifyReadyDlg"&gt;1&lt;/Publish&gt;</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;Publish Dialog="VerifyReadyDlg"
Control="Back" Event="NewDialog" Value="CustomizeDlg"
Order="1"&gt;WixUI_InstallMode =
"InstallCustom"&lt;/Publish&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&lt;Publish Dialog="VerifyReadyDlg" Control="Back" Event="NewDialog"
Value="SetupTypeDlg" Order="2"&gt;WixUI_InstallMode = "InstallTypical" OR
WixUI_InstallMode =
"InstallComplete"&lt;/Publish&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&lt;Publish Dialog="VerifyReadyDlg" Control="Back" Event="NewDialog"
Value="CustomizeDlg" Order="3"&gt;WixUI_InstallMode =
"Change"&lt;/Publish&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;Publish
Dialog="VerifyReadyDlg" Control="Back" Event="NewDialog"
Value="MaintenanceTypeDlg" Order="4"&gt;WixUI_InstallMode = "Repair" OR
WixUI_InstallMode = "Remove"&lt;/Publish&gt;</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;Publish Dialog="MaintenanceWelcomeDlg"
Control="Next" Event="NewDialog"
Value="MaintenanceTypeDlg"&gt;1&lt;/Publish&gt;</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;Publish Dialog="MaintenanceTypeDlg"
Control="ChangeButton" Event="NewDialog"
Value="CustomizeDlg"&gt;1&lt;/Publish&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&lt;Publish Dialog="MaintenanceTypeDlg" Control="RepairButton"
Event="NewDialog"
Value="VerifyReadyDlg"&gt;1&lt;/Publish&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&lt;Publish Dialog="MaintenanceTypeDlg" Control="RemoveButton"
Event="NewDialog"
Value="VerifyReadyDlg"&gt;1&lt;/Publish&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&lt;Publish Dialog="MaintenanceTypeDlg" Control="Back" Event="NewDialog"
Value="MaintenanceWelcomeDlg"&gt;1&lt;/Publish&gt;</P>
<P><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;Dialog Id="LicenseKeyDlg"
Width="370" Height="270" Title="[ProductName]
Setup"&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;Control
Id="Title" Type="Text" X="15" Y="6" Width="200" Height="15"
Transparent="yes" NoPrefix="yes" Text="{\WixUI_Font_Title}User Information"
/&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;Control
Id="Description" Type="Text" X="25" Y="23" Width="280" Height="15"
Transparent="yes" NoPrefix="yes" Text="Enter the following information to
personalize your installation"
/&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;Control
Id="BannerBitmap" Type="Bitmap" X="0" Y="0" Width="370" Height="44"
TabSkip="no" Text="!(loc.InstallDirDlgBannerBitmap)"
/&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;Control
Id="BannerLine" Type="Line" X="0" Y="44" Width="370" Height="0" /&gt;</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;Control Id="UserNameLabel"
Type="Text" X="20" Y="60" Width="290" Height="13" Text="Full Name:"
/&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;Control
Id="UserName" Type="Edit" X="20" Y="72" Width="320" Height="18"
Property="USERNAME"
Text="47"/&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;Control
Id="OrgNameLabel" Type="Text" X="20" Y="93" Width="290" Height="13"
Text="Organization:" /&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&lt;Control Id="OrgName" Type="Edit" X="20" Y="105" Width="320" Height="18"
Property="COMPANYNAME" Text="{53}"
/&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;Control
Id="LicenseKeyLabel" Type="Text" X="20" Y="126" Width="290" Height="13"
Text="License Key:" /&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&lt;Control Id="LicenseKey" Type="MaskedEdit" X="20" Y="139" Width="320"
Height="15" Property="PIDKEY" Text="[PIDTemplate]" /&gt;</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;Control Id="BottomLine"
Type="Line" X="0" Y="234" Width="370" Height="0"
/&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;Control Id="Next"
Type="PushButton" X="236" Y="243" Width="56" Height="17" Default="yes"
Text="Next" /&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;Control
Id="Back" Type="PushButton" X="180" Y="243" Width="56" Height="17"
Text="Back" /&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;Control
Id="Cancel" Type="PushButton" X="304" Y="243" Width="56" Height="17"
Cancel="yes"
Text="Cancel"&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&lt;Publish Event="SpawnDialog"
Value="CancelDlg"&gt;1&lt;/Publish&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&lt;/Control&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&lt;/Dialog&gt;<BR>&nbsp;&nbsp;&nbsp; &lt;/UI&gt;</P>
<P>&nbsp;&nbsp; <BR></P>
<BLOCKQUOTE dir=ltr style="PADDING-RIGHT: 0px; PADDING-LEFT: 5px;
MARGIN-LEFT: 5px; BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">
<DIV style="FONT: 10pt arial">--------- Original Message --------<BR>From:
"Levi Wilson" &lt;***@gmail.com&gt;<BR>To: "Scullum"
&lt;***@nildram.co.uk&gt;, "wix-***@lists.sourceforge.net"
&lt;wix-***@lists.sourceforge.net&gt;<BR>Subject: Re: [WiX-users] User
Interface Help Needed On Displaying A Custom DIalog<BR>Date: 11/01/07
13:58<BR><BR>I don't believe that you have to recompile the UIExtension.dll
to achieve what you want.&nbsp; If you take a look at <A
href="http://www.wixwiki.com/index.php?title=WixUI_Custom">http://www.wixwiki.com/index.php?title=WixUI_Custom </A>you'll notice that they have a &lt;UIRef /&gt; tag that references the
common dialogs.&nbsp; Then underneath in their &lt;UI /&gt; tag is where
they basically define the same sequence that the WixUI_InstallDir.wxs
defines (found in the src/ext/UIExtension/wixlib directory), and then adds
the appropriate tags in there for the LicenseKeyDlg that they also define in
there.&nbsp; This would be defined in your main .wxs file I believe.&nbsp;
Then you just candle / light it and you should be good to go.&nbsp; You
don't need to recompile the UIExtension.dll.<BR><BR>
<DIV><SPAN class=gmail_quote>On 1/11/07, <B
class=gmail_sendername>Scullum</B> &lt;<A
href="mailto:***@nildram.co.uk">***@nildram.co.uk</A>&gt;
wrote:</SPAN>
<BLOCKQUOTE class=gmail_quote style="PADDING-LEFT: 1ex; MARGIN: 0pt 0pt 0pt
0.8ex; BORDER-LEFT: rgb(204,204,204) 1px solid">Sorry for being such an
idiot.&nbsp; I dont know how i missed this in the wiki.. much
appreciated.<BR><BR>So basically,&nbsp; I have to recompile the entire
UIExtension.dll with my necessary dialogs inside; not&nbsp;too much of a
problem.&nbsp; <BR><BR>As an aside has anyone already created a new
UIExtension with IIS settings akin to the freebie websetup installer you get
with VS.<BR><BR>Wishfully thinking that maybe some internal microsoft
product uses this and may release the dialog code as a starting
point<BR><BR>Thanks for all the help thus
far<BR><BR><BR><BR><BR><BR><BR><BR><BR><BR>
<BLOCKQUOTE dir=ltr style="PADDING-RIGHT: 0px; PADDING-LEFT: 5px;
MARGIN-LEFT: 5px; BORDER-LEFT: rgb(0,0,0) 2px solid; MARGIN-RIGHT: 0px">
<DIV style="FONT: 10pt arial; font-size-adjust: none; font-stretch:
normal"><SPAN class=q>--------- Original Message -------- <BR>From: "Rob
MacFadyen" &lt;<A onclick="return top.js.OpenExtLink(window,event,this)"
href="mailto:***@rmtrack.com"
target=_blank>***@rmtrack.com</A>&gt;<BR>To: "'Bob Arnson'" &lt;<A
onclick="return top.js.OpenExtLink(window,event,this)"
href="mailto:***@bobs.org" target=_blank>***@bobs.org</A>&gt;, "'Scullum'"
&lt;<A onclick="return top.js.OpenExtLink(window,event,this)"
href="mailto:***@nildram.co.uk" target=_blank>
***@nildram.co.uk</A>&gt;<BR>Cc: <A onclick="return
top.js.OpenExtLink(window,event,this)"
href="mailto:wix-***@lists.sourceforge.net"
target=_blank>wix-***@lists.sourceforge.net</A><BR></SPAN>
<DIV><SPAN class=e id=q_110116d29b7dcff3_2>Subject: RE: [WiX-users] User
Interface Help Needed On Displaying A Custom DIalog<BR>Date: 11/01/07
11:14<BR><BR><FONT face="Courier New" size=2><BR>There's a list of dialogs
(with screen shots) at:<BR><A onclick="return
top.js.OpenExtLink(window,event,this)"
href="http://www.wixwiki.com/index.php?title=UiExtension"
target=_blank>http://www.wixwiki.com/index.php?title=UiExtension</A><BR><BR>Regards,<BR><BR>Rob<BR><BR>-----Original
Message-----<BR>From: <A onclick="return
top.js.OpenExtLink(window,event,this)"
href="mailto:wix-users-***@lists.sourceforge.net"
target=_blank>wix-users-***@lists.sourceforge.net</A><BR>[mailto:<A
onclick="return top.js.OpenExtLink(window,event,this)"
href="mailto:wix-users-***@lists.sourceforge.net" target=_blank>
wix-users-***@lists.sourceforge.net</A>] On Behalf Of Bob
Arnson<BR>Sent: Wednesday, January 10, 2007 11:57 PM<BR>To: Scullum<BR>Cc:
<A onclick="return top.js.OpenExtLink(window,event,this)"
href="mailto:wix-***@lists.sourceforge.net"
target=_blank>wix-***@lists.sourceforge.net</A><BR>Subject: Re:
[WiX-users] User Interface Help Needed On Displaying A
Custom<BR>DIalog<BR><BR>Scullum wrote:<BR>&gt;<BR>&gt; Error LGHT0204:
ICE17: PushButton: 'Next' of Dialog: 'InstallDirDlg'<BR>&gt; does not have
an event defined in the ControlEvent table. It is a 'Do<BR>&gt; Nothing'
button.<BR>&gt;<BR><BR>WixUI_Mondo doesn't use InstallDirDlg -- are you
referencing it?<BR><BR>&gt; But i do not know the names of all the dialogs,
what would this be<BR>&gt; called. Is there a of the dialog names somewhere,
i have looked in<BR>&gt; the user guide and the wiki but have not found
anything of relevance<BR>&gt;<BR><BR>There's no such list. If you're
customizing the UI, it's assumed you're also<BR>looking at the source code
in src/ext/UIExtension/wixlib.<BR>&gt;<BR>&gt; Secondly assuming the custom
install dialog is called<BR>&gt; 'CustomInstallDlg' would this be sufficient
to display my dialog<BR>&gt; within the sequence?<BR>&gt; &lt;Publish
Dialog="LicenseAgreementDlg" Control="Next"<BR>&gt; Event="NewDialog"
Value="CustomInstallDlg"&gt;LicenseAccepted =<BR>&gt;
"1"&lt;/Publish&gt;<BR>&gt;<BR><BR>You have to provide an entire dialog set;
you can't just override the<BR>dialogs you're interested in. You have to
replace WixUI_Mondo, for example,<BR>by copying it and updating the
Back/Next control events to refer to your<BR>custom
dialog.<BR><BR>--<BR>sig://boB<BR><A onclick="return
top.js.OpenExtLink(window,event,this)" href="http://bobs.org/"
target=_blank>http://bobs.org</A><BR><BR><BR><BR>-------------------------------------------------------------------------
<BR>Take Surveys. Earn Cash. Influence the Future of IT<BR>Join
SourceForge.net's Techsay panel and you'll get the chance to share
your<BR>opinions on IT &amp; business topics through brief surveys - and
earn cash<BR><A onclick="return top.js.OpenExtLink(window,event,this)"
href="http://www.techsay.com/default.php?page=join.php&amp;p=sourceforge&amp;CID=DEVDEV"
target=_blank>http://www.techsay.com/default.php?page=join.php&amp;p=sourceforge&amp;CID=DEVDEV</A><BR>_______________________________________________<BR>WiX-users
mailing list<BR><A onclick="return top.js.OpenExtLink(window,event,this)"
href="mailto:WiX-***@lists.sourceforge.net"
target=_blank>WiX-***@lists.sourceforge.net</A><BR><A onclick="return
top.js.OpenExtLink(window,event,this)"
href="https://lists.sourceforge.net/lists/listinfo/wix-users"
target=_blank>https://lists.sourceforge.net/lists/listinfo/wix-users</A><BR><BR><BR><BR><BR><BR><BR></FONT></SPAN></DIV></DIV></BLOCKQUOTE><BR>
<DIV><SPAN class=e
id=q_110116d29b7dcff3_4><BR>________________________________________________<BR>Message
sent using UebiMiau
2.7.2<BR></SPAN></DIV><BR>-------------------------------------------------------------------------<BR>Take
Surveys. Earn Cash. Influence the Future of IT<BR>Join SourceForge.net's
Techsay panel and you'll get the chance to share your <BR>opinions on IT
&amp; business topics through brief surveys - and earn cash<BR><A
onclick="return top.js.OpenExtLink(window,event,this)"
href="http://www.techsay.com/default.php?page=join.php&amp;p=sourceforge&amp;CID=DEVDEV"
target=_blank>http://www.techsay.com/default.php?page=join.php&amp;p=sourceforge&amp;CID=DEVDEV</A><BR><BR>_______________________________________________<BR>WiX-users
mailing list<BR><A onclick="return top.js.OpenExtLink(window,event,this)"
href="mailto:WiX-***@lists.sourceforge.net">WiX-***@lists.sourceforge.net</A><BR><A
onclick="return top.js.OpenExtLink(window,event,this)"
href="https://lists.sourceforge.net/lists/listinfo/wix-users"
target=_blank>https://lists.sourceforge.net/lists/listinfo/wix-users
</A><BR><BR><BR></BLOCKQUOTE></DIV><BR></DIV></BLOCKQUOTE><BR />
<BR />
________________________________________________<BR />
Message sent using UebiMiau 2.7.2<BR />

Continue reading on narkive:
Loading...