goldy1064
16th August 2005 18:55 UTC
Unfortunately I cannot post a screenshot because of work. The characters that do appear are Japanese, but they're not the ones that are suppose to be appearing.
The weird thing, I thought, was that when I do a SetFont on the labels and links between init and show, the Japanese appears correct, but only on English WinXP running in Japanese.
Here is an example of one field from the ini file and the corresponding code that sets it in the script.
[Field 1]
Type=Link
Text=
Left=54
Right=188
Top=8
Bottom=22
Width=
Height=
Notify=ONCLICK
TxtColor=0x000000
BgColor=0xE9E8E5
NotifyCursor=HAND
LangString localizedString ${LANG_ENGLISH} "english"
LangString localizedString ${LANG_JAPANESE} "japanese"
...
WriteINIStr "$PLUGINSDIR\install_menu.ini" "Field 1" "Text" "$(localizedString)"
...
Function MenuPre
Push $HWND
InstallOptionsEx::initDialog /NOUNLOAD $PLUGINSDIR\install_menu.ini
Pop $HWND ; HWND of window
GetDlgItem $R0 $HWND 1200
SendMessage $R0 ${WM_SETFONT} $MyFont 1
InstallOptionsEx::show
FunctionEnd
The font is being set correctly. The langstring for japanese actually has Japanese in it. And I've saved all of my script files, ini files, etc. as Shift-JIS encoding.
Thanks for the help.
goldy1064
16th August 2005 21:50 UTC
I had had the system plug-in and call to CreateFont (based from that thread) and didn't think about changing the charset. However, I was using the DEFAULT_CHARSET, which should have worked on a Japanese system, right? Anyways, I changed it to:
!define DEFAULT_CHARSET 0x01
!define SHIFTJIS_CHARSET 0x80
${If} $LANGUAGE == ${LANG_JAPANESE}
StrCpy $CharSet ${SHIFTJIS_CHARSET}
${Else}
StrCpy $CharSet ${DEFAULT_CHARSET}
${EndIf}
System::Call "gdi32::CreateFont(i 0, i 0, i 0, i 0, i 0, \
i 0, i 0, i 0, i $CharSet, i ${OUT_DEFAULT_PRECIS}, \
i ${CLIP_DEFAULT_PRECIS}, i ${DEFAULT_QUALITY}, \
i ${DEFAULT_PITCH}, t 'Sans Serif') i .r0"
This doesn't work either. It will still change appropriately on my English WinXP system, but my Japanese WinXP system, still doesn't show correct Japanese.
Thanks.
EDIT:
Also, the title bar caption and the button I have don't change on the English WinXP (ever). Is this because of how Windows works?
deguix
19th August 2005 18:31 UTC
ok, so i've been diving into the code and it seems the problem is the $$ is being converted twice
I fixed this region for the next version. It was really being called twice, and I fixed other small bugs also. But first, I need to finish the implementation of RichText control.
I still think there should be only one starting escape character, not "$", but "\", because putting "$$" is probably making the text for those who use "$$" complicated... and the "\\" is already considered a "\", so I could also make "\r9" to be considered equals to $R9 in NSIS. But this is just an opinion...
I didn't have time to look through all of the IOEx code to try and figure out where the fix should go because all I needed to expand off of IO was clickable bitmaps with a hand cursor for rollover, which was a quick fix.
Did you try
NotifyCursor?
The other things that I added (yes added) in the next version are:
- the combination of all image controls into just one control called "Image" (even "Animation" control got in, because it shows animation of images without sound).
- added new image types using OLE and others using GDI+.
- adjustment of the size of all buffers ("BufferSize" value name for "Settings" section), which made easier to discover fixes related to memory allocation/destruction (like the two ConvertVariables one).
deguix
20th August 2005 05:51 UTC
That's why it's said IOEx is a beta... until I'm satisfied with the features. That is, not really soon...
should check p3 before dereferencing. I can cause a crash by putting $R119 in a text label, causing p3 to be null.
I fixed that by adding a new variable called
p4. This does the job done by
p1, except that it correctly holds the variable number used by
getuservariable function.
myatoi function gets the entire number value that appears first, and so as in your example, the variable $INSTDIR would be used (10+11 = 21 = INST_INSTDIR -> see defines in NSIS\Contrib\ExDLL\exdll.h).
EDIT: I still need to check the existance of the variable though. I don't know how NSIS works totally, but it appears that $INSTDIR is not initialized when nothing is assigned to it.
Thanks for the bug report.
- NSIS Discussion
- InstallOptionsEx
Archive: InstallOptionsEx
deguix
7th October 2005 21:07 UTC
InstallOptionsEx 2.4.2 beta 5 - DLL + Source
Hmmm... this was not completed in today morning, but I wasn't satisfied to release it with annoying bugs, so I spend the time fixing some more bugs...
Also, as you may have noticed, the files for all versions for IOEx are hosted in the NSIS Wiki now. After the first stable build is released, all of them will be deleted (or at least I think so).
This version brings a lot of big changes. In this version, RichText and Image controls were implemented, along with the BufferSize key name for "Settings" section, the new notification queuing and escape characters for "|", "{" and "}", and more types of images. Other changes include:
- Added RichText control.
- Added BufferSize value name for Settings section. A note though, everything, including Type value for all fields are affected.
- Added ReadOnlyTxtColor and ReadOnlyBgColor value names for Text and RichText controls.
- Added ONTEXTSELCHANGE notification flag for RichText controls.
- Bitmap, Icon and Animation controls have now fused together into a control called Image. The old control names are still supported for compatibility.
- Image controls now use GDI+ or OLE when needed. So there are new file types supported: .jpg, .jpeg, .gif (GDI+ or OLE), .png, .tiff, .wmf, .emf (GDI+ only).
- Older INI files braking notice: Renamed icon names for ToolTipIcon value name to INFORMATION,EXCLAMATION and STOP, as defined under the icon resources for the State value name for Image controls.
- Added "\|" escape characters for ListBox, DropList, ComboBox controls.This applies to list based value names only.
- Added "\|", "\{" and "\}" escape characters for ListView and TreeView controls. This applies to list based value names that do not use just numbers only.
- Fixed internal memory leaks and bugs.
- For Link and Button controls using DIRREQUEST flag:
- Fixed the non-disabling "OK" button when a non-folder item was selected (like My Computer).
- Added ability for the State INI value name to specify the initial folder shown in the DIRREQUEST dialog.
- Now FONTREQUEST and COLORREQUEST flags for Button and Link controls output the control state even if a value is specified for the RefFields value name.
- Fixed string not being truncated at the maximum buffer size allowed when Text and Password controls returned (IO bug).
- Fixed Link and Button controls with DIRREQUEST flag: "|" character was appended everytime to the end of ListItems value name.
- Corrected the formula to convert pixels into points for Link and Button controls with FONTREQUEST flag.
- Fixed Link and Button controls State value name return value when used with FILE_OPENREQUEST and MULTISELECT flags: String was truncated to the first 1023 characters (1024 w/ the terminator character).
- State INI value name for ComboBox controls now uses the text specified for the state if it is not one of the items specified in ListItems.
- HSCROLL and VSCROLL flags won't work anymore if specified for controls that do not support this flag. The effect is simply useless.
- Re-added EXTENDEDSELCT and REQ_SAVE flags for compatibility purposes with IO.
- Fixed bugs #1287731 and #1283528.
I didn't have much time to test everything, but now you have a chance to test what's new. Also, I still need to implement flags for the
Image control and some more code for transparency.
One more thing, I couldn't put support for "\\" characters for most of the controls that support the use of a list of items for input and/or output. I might be able to add that to the next version later.
To download IOEx, go to InstallOptionsEx wiki page
Jamyn
7th October 2005 21:10 UTC
Background of Welcome/Finish
Posted by Deliverator on 08-22-2004 11:52 PM:
When using this with the Modern UI my Welcome and Finish pages are not displayed correctly.
The background of the window is gray, and the background of the text is white.
What am I doing wrong?
It seems this problem is back again? When replacing InstallOptions.dll with InstallOptionsEx.dll, the background of the page is not rendered correctly. I have attached a screenshot of:
NSIS\Examples\Modern UI\WelcomeFinish.nsi
Picture 1: With standard InstallOptions.
Picture 2: With InstallOptionsEX
I know it has already been stated that ModernUI may not work with InstallOptionsEX for various things, but I hope this particular problem may be fixed in the future? InstallOptionsEX has many features I like to use :) Thanks very much for writing it, by the way.
(PS: I tried to manually set the background color with
SetCtlColors $MUI_HWND "" "${MUI_BGCOLOR}"
GetDlgItem $MUI_TEMP1 $MUI_HWND 1203
SetCtlColors $MUI_TEMP1 "" "${MUI_BGCOLOR}"
[...]
But it does not seem to fix the issue.
deguix
7th October 2005 21:50 UTC
I still didn't update the file. I have to upload every single file from this thread to wiki yet. You were downloading an older version of IOEx. I didn't think it would take that long to upload all those files, but now I know. Sorry if I didn't tell you that before...
deguix
7th October 2005 22:11 UTC
Now it's ok to download, but I didn't upload older versions to wiki. This is still not a big issue. If you want older versions, just search the thread.
NeoAlus
8th October 2005 00:57 UTC
The new version works great, thanks. A few notes:
I thought the ComboBox (DropList) control had a broken pulldown menu on Windows 98. But it's a common problem, and here's the scoop:
"The reason is that when you specify the height of the control, you are specifying it's height when OPEN not when closed. ... you can use SetWindowPos() to increase the height, or specify a greater height when creating it in the first place."
Specifying a greater height in the .ini works as expected.
msvs 7.1 users will need this:
#ifndef USER_TIMER_MAXIMUM
#define USER_TIMER_MAXIMUM 0x7FFFFFFF
#endif
#ifndef USER_TIMER_MINIMUM
#define USER_TIMER_MINIMUM 0x0000000A
#endif
There's an alternative, which is to set the winver I think, but the above works just fine.
Yathosho
8th October 2005 03:53 UTC
i don't quite understand how to use the "\|" escape characters. i also think the more feature are getting implemented, the more the overview of the documentation suffers.
deguix
8th October 2005 08:24 UTC
Hehe. Don't blame me. Maintaining both plug-in and documentation is quite difficult.
This escape character only works for any value name which supports to input or output a list of items. A list of items is a list containing items that has the "|" character basically separating them (there are also some which use "{" and "}").
One exception for this is when a value name supports to input or output a list of items with only numbers, because there are only numbers + the "|" character allowed in there. "\|" is not a number.
When you use it in those conditions stated above, it results into a "|" character.
Common example: "ListItems" value name.
The use for "\{" and "\}" is even more complicated. They only work for those values that actually use "{" and "}". Example: "State" value name for ListView and TreeView controls.
Also, don't forget that "\\", "\n" and "\r" are not supported on most of the value names supporting list of items as input or output, except for "ListItems" and "State" value names for ComboBox and DropList controls. The "\\" -> "\" effect is applied before the "\|" -> "|" effect is applied. This is the thing that I should fix in the next version.
One "simple" code example of the usage:
[Field 1]
Type=TreeView
Left=0
Right=-1
Top=0
Bottom=-1
ListItems=\{\\\|A\|\\\}{\{\\\|A1\|\\\}|\{\\\|A2\|\\\}}\{\\\|B\|\\\}
State=0{1|2}3
Flags=CHECKBOXES
StateImageList=C:\Dev\NSIS Source\Contrib\Graphics\Checks\modern.bmp
You can't apply this to the "State" value name in this case because the
CHECKBOXES flag turns it into a "number-only" list of items. Also, see that the "\\" -> "\" transformation doesn't happen in there.
Just a note: you always should use the flag
CHECKBOXES w/ the
StateImageList value name, or the flag won't work. Also the file has to exist, so you should change the path first.
BUG: When
StateImageList points to an invalid file, it still applies the
CHECKBOXES flag normally. This flag uses the default checkboxes when this happens. Those checkboxes don't have the features this
TreeView control has.
Yathosho
31st October 2005 12:15 UTC
a feature request
would it be possible to add a feature, which allows me to specify a default directory for contols (i.e. filerequest).
let's say the user has to specify a file in on of my ioex pages and that it's most likely that this file is stored in a specific directory (i.e. my documents). i would love to have the option to specify this directory, when the installer initialises. when clicking on browse (filerequest dialog), it would start browsing in that specified directory.
Afrow UK
31st October 2005 13:37 UTC
I'm not sure if this would work, but you could try storing an initial path in the box (State), and get rid of the text when the page is shown (with SendMessage ... "STR:").
-Stu
iceman_k
1st November 2005 15:06 UTC
deguix, IMHO you should stop taking feature requests for a while and concentrate on stabilizing and documenting what you currently have.
I want to add support for InstallOptionsEx to EclipseNSIS, but I am hesitant because IOEx is in constant flux.
deguix
2nd November 2005 00:41 UTC
No problem. I'll try to fix the maximum amount of bugs that appear. There aren't many though (except in docs). But I generally find more because I have to test most of the stuff; bugs generally aren't reported to me, even with the huge amount of people that read this thread.
Maybe I should put this plug-in somewhere like sourceforge. It will probably be more organized, and will support some direct feedback without cluttering the forums more than they are already... a dump of this would probably take many days.
would it be possible to add a feature, which allows me to specify a default directory for contols (i.e. filerequest).
let's say the user has to specify a file in on of my ioex pages and that it's most likely that this file is stored in a specific directory (i.e. my documents). i would love to have the option to specify this directory, when the installer initialises. when clicking on browse (filerequest dialog), it would start browsing in that specified directory.
Well, okay... what should I do then? Put it in "ListItems" or to make the plug-in to select the path from the file path automatically by using an extra flag? If "MULTISELECT" flag is specified, would the path of the first file be used if you want me to add the extra flag feature?
Could I ask you a question? Do you think the plug-in is confusing to use (except for the documentation which needs adjustments)?
iceman_k
2nd November 2005 04:29 UTC
I think moving the project to SourceForge would be a great idea. It will add more structure to your development, with clearly defined trackers for bugs, feature requests, etc. You can better manage what you are doing. Plus you get all the associated stuff for free (e.g., source control, release mechanism, etc.). Also, you may be able to recruit other developers to help out with it.
The plugin can be overwhelming, I feel, for a new user since it has sooo much stuff in it (given that the documentation is not synced up yet).
deguix
11th November 2005 00:10 UTC
Next version, 2.4.2 beta 6, is going to have removed the GPL code for allowing more types of images. Does anyone have any suggestions for a free code (no GPL, no commercial licenses) replacing the current GPL code for this? If yes, then I can include it readly. Also, part of it is not considered GPL because it was taken from another source, so I can modify it to not be a copy anymore. Thus, general support for .jpg, .jpge, and .gif image types is still on IOEx.
I'll only talk about the other modifications when I release it.
Animaether
11th November 2005 00:55 UTC
Just for reference, I think the last message on the GPL found its basis at :
WINAMP.COM | Forums > Developer Center > NSIS Discussion > Changing the form
http://forums.winamp.com/showthread.php?threadid=230625
-----
GPL: http://www.gnu.org/copyleft/gpl.html
I don't mind the GPL so much myself - I admire its premise, actually.
The problem, at least to me, is that I've never found it quite clear what happens when you include a -compiled- piece of GPL code in your product or distribution.
I.e. if somebody were to use InstallOptionsEx with the GPL code in there, I can only imagine that it would consitute one of the two basic things..
- you're distributing a GPL'd product
- you're dynamically linking to a lib (the dll is 'separate' in the installer and gets extracted - so it doesn't become an integral part to the installer code itself)
So as far as I can tell - using InstallOptionsEx with the GPL'd code in the binary doesn't mean your entire installer becomes GPL - much less so any other software you may be installing with the installer.
However, it does leave questions such as :
- do I need to include the GPL text with my installer ?
- do I need to display that GPL code is being used ?
- do I need to give users access to the source code of InstallOptionsEx if they were to ask for it ? and/or include it ?
etc.
I believe the answer to all the above is 'yes', but I'm not a lawyer :)
-----
Lastly, separate of the GPL, InstallOptionsEx has its own licensing requirement;
"3. This notice may not be removed or altered from any distribution."
Similar questions - where, when and how should said notice be included ? Or does it apply to distributions of the InstallOptionsEx -package- only ? i.e. doesn't apply if you're simply using the plugin in your installer.
Thanks in advance :)
deguix
11th November 2005 12:25 UTC
The maximum thing needed is to inform the user about IOEx and where it's source code is when there is GPL code, which is already not good for me.
Lastly, separate of the GPL, InstallOptionsEx has its own licensing requirement;
"3. This notice may not be removed or altered from any distribution."
Similar questions - where, when and how should said notice be included ? Or does it apply to distributions of the InstallOptionsEx -package- only ? i.e. doesn't apply if you're simply using the plugin in your installer.
Well, this part shows the reasoning of this:
[...] to alter it and redistribute it freely, subject to the following restrictions
This "and" shows that it applies only when altering the code
and redistributing it.
Animaether
11th November 2005 12:31 UTC
Ahhh okay... I'm not a lawyer, etc. but I think phrased that way it's actually two separate terms... e.g.
"to alter it, subject to the following restrictions"
"to redistribute it freely, subject to the following restrictions"'
The intended meaning, I *think*, would be phrased as "to alter and redistribute it freely, subject to the following restrictions"
Regardless though - cool, thanks for clarification :)
deguix
12th November 2005 18:06 UTC
I just forgot to say that it won't have the features I planned for it, it will be just a quick version to fix the GPL issue and some other fixes I picked up. Also, as NSIS 2.11 was released with InstallOptions version 2.44, it's going to be called "IOEx 2.44 beta 1" (Next time I should consider how I put versions on my projects, now I can only go forth to version 3 or to make patches for IO with IOEx code).
deguix
13th November 2005 16:36 UTC
InstallOptionsEx 2.4.4 beta 1 - DLL + Source
New version released. No much was changed, as expected. See the full list of changes for this version:
- Removed GPL'd code from the plug-in. Removed support for GDI+, which in turn, removed newer systems support of .png, .tiff, and .emf files.
- Added support for the key "F2" on TreeView and ListView controls.
- Fixed the selection of the last item with the "End" key in a ListView control without the CHECKBOXES flag and without using LargeImageList INI key.
- Fixed: When StateImageList points to an invalid file, it still applies the CHECKBOXES flag normally.
- Fixed: When a label was not changed in TreeView or ListView controls that use the EDITLABELS flags, it was emptied.
To download IOEx, go to InstallOptionsEx wiki page
Takhir
13th November 2005 17:08 UTC
BTW this plug-in supports png and other formats without GDI ;)
May be problems with some complex variants of tiff formats on systems with old IEs (or may be not, I cannot remember this precisely in the sunday evening) :)
deguix
13th November 2005 17:29 UTC
Yes, I saw your plug-in source code one time, but I didn't got the inclusion to work. I might try to do that again later, or you could submit a patch, if you can read a big amount of code... Just search for IMAGE_TYPE_OLE and you can find the current OLE implementation I have. I think your code is somewhat based on that.
nandhp
21st November 2005 20:51 UTC
I have an AVI being displayed in an Image with the TRANSPARENT flag, and it's only transparent on Windows XP with XPStyle on. What do I have to do to get a transparent Animate?
deguix
21st November 2005 22:02 UTC
Reproduced. I just can't understand, it works for some avi, but not for others. Does your avi have a sound channel in it and is of type "MS-RLE" of 8-bits? I've tested two avi files, one with sound w/ 8-bits "MS-RLE" type, and another without, to see if transparency went ok. The one w/ sound had this transparency problem.
Maybe the new version of the control for WinXP fixes this problem. This is not mentioned in MSDN.
nandhp
22nd November 2005 10:13 UTC
I'm looking at properties on the file in Windows XP and on the summary tab under "Video" it says it is an 8-bit MS-RLE, 4fps 3kbps, and under "Audio" says "4 seconds". I used the "AVIEdit" tool from some oldish version of the windows SDK to create the AVI. Does this help?
Edit: Made a mistake, that's the wrong AVI, the one above works fine. The one that doesn't work says: Under video, the correct avi is 15fps, 1164kbps, 24 bit sample size, uncompressed. Under audio it says "2 seconds". I think I need to try converting it to MS-RLE. A 3MB AVI for 2 seconds of video is just stupid.
nandhp
24th November 2005 10:38 UTC
I managed to convert it to RLE and it worked fine. The problem was I needed to convert it to 8-bit, otherwise the codec wouldn't appear. So I opened the uncompressed avi in quicktime pro, exported it as a uncompressed avi in 8-bit color, load it back into aviedit, and exported it to RLE there. Thanks quicktime!
flyakite
25th November 2005 14:42 UTC
I hate asking questions that I feel I should have been able to find the answer to, but I couldn't, so I have to ask.
Is there a way to change the cursor to a Hand, when it is over an Image control using a GIF image?
Basically I'm using the Image control with a GIF image, and the NOTIFY=ONCLICK event to call the leave/validate function which in turn will open up a link. But I would like the cursor to be a hand, so that people realize the image is clickable.
Takhir
25th November 2005 19:36 UTC
Yes, I saw your plug-in source code one time, but I didn't got the inclusion to work. I might try to do that again later, or you could submit a patch, if you can read a big amount of code... Just search for IMAGE_TYPE_OLE and you can find the current OLE implementation I have. I think your code is somewhat based on that.
Attached short 'page' sample shows how IImgCtx may be used: ownerdraw control and paint on wm_drawitem. Both Ole and Ctx support transparency, so you can skip 'window region' part for them.
I also updated my plug-in - it's 'the best' version was lost during last archive crash.
deguix
29th November 2005 11:17 UTC
Is there a way to change the cursor to a Hand, when it is over an Image control using a GIF image?
Try
NotifyCursor=HAND.
Now, about the IImgCtx interface: is there anywhere a list of image types supported by the older IE versions and when this interface was started to be used on IE? This is just to know what image types it adds.
Takhir
29th November 2005 11:40 UTC
(Found in russian): It appeared in Internet Explorer 4.0 and supports BMP, GIF, JPEG, ICO, WMF, EMF, PNG, XBM, CUR, TIFF (may be others).
About some tiff limitations I read here http://codeproject.com/bitmap/JianImgCtxDecoder.asp
deguix
29th November 2005 19:23 UTC
Thanks. I'm not working on the plug-in now, but when I will, I'll implement this.
SeanB
19th December 2005 16:48 UTC
Hi - I've just downloaded the latest version of IOEx from the link given above, and I have the problem with the Welcome and Finish pages not displaying correctly. Was this not fixed? Do I have the wrong version of the file?
deguix
20th December 2005 10:52 UTC
Hmmm... There are probably 2 problems in the latest version:
- some problem when using "Text" INI key name for "Image" controls.
- trying to color the dialog itself - which is probably unhandled by the plug-in at all.
I still couldn't even start to work on features for next version though, so I can't expect it to be released even on next month. You should pretty much try to go around the problems, but right now I can't say much than just that.
michaelcsikos
21st December 2005 01:06 UTC
FileRequest - Text & Button example?
I can't seem to find an example anywhere of an InstallOptionsEx Text & Button FileRequest dialog. Could someone please post an example .ini file? Thanks!
deguix
21st December 2005 10:44 UTC
[Field 1]
Type=Text
Left=0
Right=100
Top=0
Bottom=10
[Field 2]
Type=Button
Text=...
Left=110
Right=125
Top=0
Bottom=10
Flags=OPEN_FILEREQUEST
RefFields=1
Notify=ONCLICK
michaelcsikos
22nd December 2005 01:55 UTC
Thanks Deguix, you're the man!
I converted from IO to IOex, and now have two problems:
1. For some reason the file Filter isn't working for me. It truncates the last character of the name, showing "DB Config Fil", and all files are still visible. I've tried lots of different examples, including copying directly from the readme.
[Field 1]
Type=Text
Left=8
Right=283
Top=21
Bottom=34
[Field 2]
Type=Button
Text=Browse
Left=192
Right=242
Top=68
Bottom=84
Flags=OPEN_FILEREQUEST
Filter=DB Config File|*.xml
RefFields=1
Notify=ONCLICK
2. When a file is selected and Open is clicked, the Installer goes to the next page immediately, instead of going back to the DBConfigXML custom page and waiting for the user to click Install.
Function DBConfigXML
!insertmacro MUI_HEADER_TEXT "$(TEXT_IO_TITLE)" "$(TEXT_IO_SUBTITLE)"
Push $R0
${Plugin}::dialog $PLUGINSDIR\DBConfigXML.ini
Pop $R0
FunctionEnd
Function ValidateDBConfigXML
ReadINIStr $DB_CONFIG_FILE "$PLUGINSDIR\DBConfigXML.ini" "Field 1" "State"
IfFileExists "$DB_CONFIG_FILE" OK
MessageBox MB_OK|MB_ICONSTOP 'File does not exist.'
Abort
OK:
FunctionEnd
Thanks in advance.
deguix
22nd December 2005 12:20 UTC
1. For some reason the file Filter isn't working for me. It truncates the last character of the name, showing "DB Config Fil", and all files are still visible. I've tried lots of different examples, including copying directly from the readme.
When I comeback for IOEx development, I'll look at it.
2. When a file is selected and Open is clicked, the Installer goes to the next page immediately, instead of going back to the DBConfigXML custom page and waiting for the user to click Install.
This is normal because a notification flag is used. You should use abort in the custom page function when this is used.
akn
2nd January 2006 13:24 UTC
Custom page bitmap disappeared after replacing IO with IOEx
Hi,
I've problem with bitmaps on custom pages.
I've downloaded InstallOptionsEx plug-in and saved InstallOptionsEx.dll on InstallOptions.dll in NSIS directory.
After that images on custom pages are not displayed.
With InstallOptions.dll installator worked properly.
Any help will be appreciated.
deguix
4th January 2006 12:40 UTC
Because futuraly I want to patch InstallOptions with changes I mostly developed, I'll be working only on InstallOptionsEx for a while, and no other projects will be involved.
All those bugs were confirmed and all are my fault. Damn. These bugs are the ones confirmed:
- Image controls bug: Some image types don't work - bitmaps for example. Internal problems can range from not recognizing the file as image and not identifying the image type as to be destroyed.
- Filter key name bug: Last character is cropped. Internal problem is the replacement of last char with "\0".
- Dialog coloring bug: Since IOEx 2.4.1 beta 6 (version which custom drawn controls were implemented). I didn't check this one out yet.
SuperPat
12th February 2006 18:45 UTC
I Need to use InstallOptionsEx, but unfortunately, with the lastest version, the background don't work correctly and the bitmaps are not draw.
But you know it already.
Thus can you give online the lastest version where this two bugs did not exist?
Thank you in advance.
deguix
13th February 2006 04:53 UTC
InstallOptionsEx 2.4.4 beta 2 - DLL + Source
Sorry about that. New Release:
- Fixed: Image controls implementation was coded poorly.
- Fixed: Dialog box now can be colored (bug introduced IOEx 2.4.1 beta 6).
- Fixed: Filter key value had last character chop down.
- Fixed: Filter key value's first item in array is the only one detected.
- Fixed: Filter key value can overrun the buffer by one byte besides the "BufferSize" limit for characters.
- Added: Ability to convert "\\" to "\" in lists.
- Fixed: The ListItems value name for ComboBox and DropList controls can't have the combination "\\" and "\|". This needs to be verified.
I'm very unhappy with the progress of this project. I was hoping to be able to use its multithreading capabilities to allow the creation of multiple windows.
I actually have almost no interest in an old project, which was the inspiration for all of those changes in this plugin, so you can only expect me to don't implement much at all to this plugin anymore. Maybe someone else might be interested in continuing this on, principally because my needs were realized already, and the TODO list contains suggestions - which are not always what the developer needs. I couldn't even adapt myself to newer plug-in versions, and my programs still use older versions of my own plug-in.
dandaman32
16th February 2006 05:48 UTC
Documentation overhaul
Perhaps you should consider changing the documentation layout-wise - increase the indentation on sub-sections etc becuase the current version can be a bit hard to read.
I've attached an updated basic.js file that makes the text areas padded by 0.2in. Only change was:
document.write('<div id="' + pszDivisionPrefix + nTable + '" class=sc><table ');
changed to
document.write('<div id="' + pszDivisionPrefix + nTable + '" class=sc><table style="padding: 0.2in;" ');
hope this helps
nice plugin :)
-dandaman32
- NSIS Discussion
- InstallOptionsEx
Archive: InstallOptionsEx
SuperPat
17th February 2006 19:08 UTC
The new version does not work better :-(
Look at the WelcomeFinish example.
deguix
17th February 2006 20:44 UTC
Hmmm... shit! I forgot to post the dll of the newer version! Fixed. Sorry for the forgotten new dll file.
SuperPat45
18th February 2006 16:15 UTC
Thank you very much
SuperPat
18th February 2006 16:47 UTC
There are two other bug:
The checkBox, radiobutton, textbox (and maybe others) cannot have their background color and their text color changed by the SetCtlColors instruction.
I have also an other problem with a page which use a ListBox:
It post a MessageBox with the title "error" with the list of the items of the messagebox. If I click on ok, it repost the same messagebox but with the first character in less and so on until there do not remain any character and it jump the page... This page work well with the original InstallOption.
WebMatze
18th February 2006 18:23 UTC
I found a problem with the new DLL that has been upload today, the real 2.44 beta2, I used IOEx to display the installer icon, and it doesn't work anymore, the only thing that works is to display an external icon using the text field in the ini, but i cant use the default installer icon(internal)
I worked without problem with the previous IOEx version.
deguix
19th February 2006 16:49 UTC
InstallOptionsEx 2.4.4 beta 2 PB 1 - DLL
I released the Post Build #1 with quick fixes for the bugs discussed.
I've also implemented dandaman32's suggestion of padding to docs text tables - I used 2% of indentation for text tables (instead of 0.2in) in the style.css file -> better for smaller resolutions. Still, I don't know how it would look in a 640x480 resolution.
InstallOptionsEx wiki page
WebMatze
19th February 2006 19:22 UTC
Thanks for the quick fix...
SuperPat
19th February 2006 21:37 UTC
Thanks for the fix of my bugs.
dandaman32
20th February 2006 06:45 UTC
Still, I don't know how it would look in a 640x480 resolution.
Nobody uses elinks anymore :)
I have a linux server that runs maybe a pentium 200mhz and a 2.5gig hd and trustix 3.0 rc1 ...the only time i use gnome 2.10 is when i'm testing its website with firefox, and even then the video runs at 1024x768.
-dandaman32
deguix
20th February 2006 08:10 UTC
Thanks for the quick fix.../Thanks for the fix of my bugs.
After that, I had to make up for my mistake somewhere :).
and even then the video runs at 1024x768
That's the resolution I thought about when I used those precentages, so it won't have problems.
SuperPat
20th February 2006 18:28 UTC
I still found another bug:
with the Link control:
In the finish page, when I define:
!define MUI_FINISHPAGE_LINK "Text Link"
!define MUI_FINISHPAGE_LINK_LOCATION "http://www.address.com"
The background is not colored, and the text link does not appear. Moreover, when I click on this link, Nothing occurs :-(
SuperPat
21st February 2006 15:32 UTC
Another small thing:
The vertical scrollbar (VSCROLL) don't work with a multiline textbox, contrary to the horizontal scrollbar (HSCROLL).
goldy1064
21st February 2006 20:26 UTC
I have finally backtracked to where the East Asain strings will work with IOEx. 2.4.1b9 is the first version while backtracking that I was able to get strings to appear correctly using IOEx. If you need/want more information, just let me know.
goldy1064
23rd February 2006 19:31 UTC
It appears that the function ConvertVariables, called from myGetProfileString on line 874 in InstallOptions.h, is what is garbling the data because when I comment out that function call, my strings appear correctly.
For testing purposes, you can change your system locale for non-Unicode applications to Japanese, Chinese, etc. to see the strings show up correctly.
deguix
24th February 2006 18:16 UTC
InstallOptionsEx 2.4.4 beta 2 PB 2 - DLL
I released Post Build #2 with more quick fixes for the recent bugs discussed. String manipulation functions were ravamped with old modified InstallOptions functions to support multibyte code pages. VSCROLL flag was fixed for Text and Password controls.
Changes for the adaptation with Modern UI: Link controls will always have the color set in the ini file, or if defaults are used and SetCtlColors is used, then it will use the SetCtlColors colors, and if that instruction is not used, only then it will use the default colors. Also, NotifyCursor is now set to "HAND" by default when using those controls. It is still needed to use Notify key to have the ONCLICK notification flag though - This allows to use other notifications with Link controls without always firing the ONCLICK notification flag when not needed.
Thus, the use of !define MUI_PAGE_CUSTOMFUNCTION_PRE and !insertmacro MUI_INSTALLOPTIONS_WRITE are required in Modern UI if you want to implement links using InstallOptionsEx.
InstallOptionsEx wiki page
goldy1064
24th February 2006 21:30 UTC
FYI: 2.4.4b2PB2 I think was compiled in Debug mode because every time the screen is redrawn, I get a messagebox display 0.
deguix
24th February 2006 21:41 UTC
My bad... Fixed.
SuperPat
25th February 2006 11:54 UTC
It work fine, thanks.
SuperPat
25th February 2006 13:25 UTC
Is is still me,
In the lastest version (2.44) of InstallOption, I can read in the version history:
"Added HWND and HWND2 entries to the INI file to avoid messy calculations of the correct control id."
Can you add this into InstallOptionEx?
Because it is very usefull and I need it in one of my install.
Thanks in advance.
SuperPat
26th February 2006 12:52 UTC
hello,
There is a option which could be interresting:
That InstallOptionEx can, automatically, sort the itemslist alphabetically before posting them in the listbox, treeview, droplist, combobox...
Because it is rather complicated to do it in NSIS script because the StrCmp instruction cant compare if a string is inferior or supperior.
deguix
26th February 2006 20:10 UTC
In the lastest version (2.44) of InstallOption, I can read in the version history:
"Added HWND and HWND2 entries to the INI file to avoid messy calculations of the correct control id."
Can you add this into InstallOptionEx?
There is no messy ID calculation: the field you chose + 1200 - 1 is always the field you want... thus, it's the same as using GetDlgItem, so there is no point in it.
That InstallOptionEx can, automatically, sort the itemslist alphabetically before posting them in the listbox, treeview, droplist, combobox...
Because it is rather complicated to do it in NSIS script because the StrCmp instruction cant compare if a string is inferior or supperior.
There's this
Array plug-in for that. I don't need to implement what's already have been implemented in another plug-in (removed from TODO).
goldy1064
28th February 2006 00:23 UTC
I have a bunch of different labels on my page and none of them are tabstops anymore (and I don't have that flag set to make them notabstop). Is there a new setting somewhere that I'm missing?
deguix
28th February 2006 10:14 UTC
There's nothing wrong. Label controls can't be focused, so they are always not "tabstopped". There is no sense in adding a "tab stop" option for that type of control, unless if you make it a "link" by using notification messages. Maybe unifying both "label" and "link" controls would solve this problem...
goldy1064
28th February 2006 17:22 UTC
Yeah, I'm using a label as a link because I have a background image and it was causing me issues when I would use a link control and not a label because the link control would cause unpredictable behaviour, it seemed. For instance, when I would click a link, the link worked, but it would sometimes also register a state change on another control or it would not allow my exit button to work (using a modified resource file with no Cancel button but instead a custom button).
What you could do is get rid of the link control and instead have a label control do both (since it can) and have a flag for it called TABSTOP. Just a thought.
deguix
28th February 2006 22:17 UTC
I'll test this later and think about making Label and Link to be only one control - still, this provides some more compatibility problems with Modern UI.
Now InstallOptionsEx plug-in project can be found in SourceForge: http://sourceforge.net/projects/nsis-ioex. I'll upload stuff there in a week. You can already start posting bug reports, suggestions and patches too. I'm not planning on creating a web-site though - it would be a waste of effort.
If someone else would like to be a project admin, if you have some time to maintain the project there, then you could suggest here too. Even with some enough time I'm having, I'm still not really focusing much in this project, and I'm just lazy in working in a project...
T.Slappy
1st March 2006 21:46 UTC
How can I add VSCROLL to RichEdit?
Is it Supported??
T.Slappy
1st March 2006 21:47 UTC
RichEdit
I have the newest version but it do nothing if I add VSCROLL flag
deguix
3rd March 2006 15:03 UTC
Sorry, I'll do that after I finish uploading stuff to the sf project page. I already uploaded CVS files, but I just don't know how can I make automated CVS builds of the plug-in like NSIS dev snapshots.
naxan
10th March 2006 00:14 UTC
good job!
But:
There is a bug in TreeView with Checkboxes.
When i unselect Checkboxes and select them again State is still 0.
I used ONSELCHANGE as notifier.
btw. ONSELCHANGE is working probably also not correct.
it recognizes only focus changes on treeView-items.
ONSELCHANGE should get Checkboxchanges or iam wrong?
It would be also nice if you could implement a focusState for treeView-items. So the selectet itemLabel can be read out.
deguix
10th March 2006 09:30 UTC
:o
I couldn't reproduce the first one and third bugs, because I can't even get the CHECKBOXES working. :( The second one was reproduced, so I do expect those others to be true. I even got another bug: ending a level is normal, but ending two levels or more at once will make these levels except the first one and the main level to add an extra empty item, like when using "{{". This came with the multibyte charsets fix.
Now about the focus state, you can get it using TVM_* messages with the System plug-in. I'm also accepting help from the NSIS coding side to make functions available for either compile-time or run-time for the plug-in. Those functions would be great for operations like to get the focus state from an item in the TreeView control.
I got everything uploaded and ready in the sf, so I'll be working on IOEx in the weekend. I still got to accomodate myself to upload commits to the CVS.
quotient
21st March 2006 06:49 UTC
I think I've found a bug with the Button control when using:
1. The OPEN_FILEREQUEST flag;
2. The RefFields=Field_ID key; &
3. TIMEOUT=time_in_ms key in the Settings section.
I use the TIMEOUT key to leave the page and decrement a counter (countdown timer) before updating the page with a WM_SETTEXT and returning (via Abort). When a control is clicked the countdown stops and no more WM_SETTEXT messages are sent, but the TIMEOUT notification still occurs.
I can successfully use the Button control to browse the file system and select a file but as soon as the browsing dialog closes (if I double-click the file or click the “Open” or “Cancel” buttons) the page returns a State value of “0” (the page) and a Notify value of “ONNEXT”…! If I disable the TIMEOUT function, the problem disappears. Similarly, if I increase the TIMEOUT value to about 8000ms the problem becomes less frequent… Everything else seems to work…
Here are some of the pertinent elements of the dialog *.ini file, FYI:
[Settings]
NumFields=20
TimeOut=1000
NextButtonText=Configure...
[Field 1]
Type=Label
Left=61
Top=130
Right=185
Bottom=137
Text=Seconds until these options are used:
TxtColor=0x0000FF
[Field 2]
Type=Label
Left=189
Top=130
Right=205
Bottom=137
Text=30
; TxtColor=0x0000FF remarked out as it breaks WM_SETTEXT function… :(
…
[Field 11]
Type=Text
Left=147
Top=104
Right=239
Bottom=117
State=c:\unattend.txt
Flags=DISABLED
[Field 12]
Type=Button
Left=243
Top=104
Right=282
Bottom=117
Text=&Browse...
RefFields=11
Notify=ONCLICK
Flags=OPEN_FILEREQUEST|FILE_EXPLORER|DISABLED
…
Any chance you can help me with this one?
quotient
21st March 2006 10:28 UTC
Edit to previous post:
Fields 11 & 12 are disabled when the page shows, but if a user clicks a related checkbox, Field 10 (not shown above), EnableWindow $HWND 1 is used to enable the controls. Removal of the DISABLED flag had no effect on the problem.
NSIS 2.15 and IOEx 2.4.4b2a2 are in use.
Any help or alternative solutions appreciated.
Excellent plug-in btw.
deguix
27th March 2006 12:01 UTC
I cannot promise anything, but I'll return to make updates to this plug-in this week, even if not published. I see I'm going to have some new school projects to do, but I'll try to speed up development anyways. I plan to stop developing other projects for other communities to work on this one.
I still didn't make many changes yet and I couldn't verify how your problem happens quotient. Hopefully, I'll find the answer this week.
NeoAlus
29th March 2006 03:38 UTC
crashing
Using:
2.4.4 beta 2 PB 2
NSIS 2.15
I get a crash anytime I have any $ variables in my ini file.
This worked previously.
Here's the ini that used to work:
[Field 1]
Type=Label
Text=Setup will install $5 in the following folder. To install in a different folder, click Browse and select another folder. Click Next to continue.
Left=0
Right=-1
Top=0
Bottom=30
[Field 2]
Type=Label
Text=Select the install type:
Left=0
Right=80
Top=40
Bottom=56
[Field 3]
Type=DropList
ListItems=Default Install|Custom Location
State=Default Install
Notify=ONSELCHANGE
Left=80
Right=-80
Top=38
Bottom=94
[Field 4]
Type=GroupBox
Text=Destination Folder
Left=0
Right=-1
Top=70
Bottom=105
[Field 5]
Type=Text
State=$4
Left=10
Right=-75
Top=85
Bottom=97
[Field 6]
Type=Button
Flags=DIRREQUEST
Text=B&rowse...
Notfy=ONCLICK
ListItems=Select the folder to install $5 in:
RefFields=5
Notify=ONCLICK
State=$4
Left=-67
Right=-12
Top=83
Bottom=98
Afrow UK
29th March 2006 14:46 UTC
I'm not sure why it crashes with $, but anyway you can't just put a $var in the INI file and hope that it is going to be replaced with the value of the variable itself (unless the plugin itself does this now?)
You should write the new strings containing the variables at run time with WriteINIStr.
-Stu
NeoAlus
29th March 2006 18:38 UTC
Well, it did work previously.
Also, WriteINIStr would only affect the strings on load, while one of those $ vars ($4) is used to display the user's current choice, which could change many times after load.
deguix
29th March 2006 19:44 UTC
well, this probably happens after the fix about multibyte strings showing correctly (latest alpha). You can try a previous alpha (Post-Build) from the 2.4.4 beta 2 release. It doesn't have this multibyte strings fix.
goldy1064
29th March 2006 22:11 UTC
Just wondering if you were thinking of giving the label controls tabstop functionality like I had mentioned a little while ago?
Thanks.
NeoAlus
29th March 2006 22:26 UTC
Thanks deguix, 2.4.4 beta 2 (PB 1) works great for me.
deguix
30th March 2006 12:48 UTC
Tabstop is done, merge of Label and Link controls is still not done... I'm not using CVS yet, because I often have to call back a change.
- NSIS Discussion
- InstallOptionsEx
Archive: InstallOptionsEx
deguix
30th March 2006 14:12 UTC
Thinking about several months about this, I should abandon this project now.
First and main reason is that I don't like hacking environments like the Windows GUI - there are many glitches with everything. I like working in an already solid environment or an unstable one with the ability to change how it works. NSIS is stable, but Windows API is "stable" with bugs, which is more like unstable for me.
Second is the continuity of a project. I don't like to change the same code over and over again, I like to create new things instead, without rewriting old code once again.
Third, I like language standards and low-level coding to improve high-level coding, and I like when there exists a "model" code that can be changed later to create variations.
Thank you for at least saying that this is a good project, and making suggestions and mentioning bugs. I see that someone will take advantage of some of the code for his own purpose.
goldy1064
30th March 2006 17:09 UTC
Ok, cool. That's going to help out a lot. Thanks!
Comm@nder21
30th March 2006 22:22 UTC
thanx for all you did man!
though i never used it, its for sure a great plugin!
i'll pack it with the plugin rollup package i plan to release in the next months :)
deguix
31st March 2006 19:46 UTC
It would be better to standardize the code first, so that only necessary plug-ins would be used and implemented in the package.
iceman_k
5th April 2006 15:18 UTC
I don't like to change the same code over and over again, I like to create new things instead, without rewriting old code once again.
Unfortunately, the reality of software development is that old code needs to rewritten/fixed several times until it passes some predefined level of acceptability. And
THEN go on to the new stuff. Just the nature of the business. :)
(Doesn't seem to stop Microsoft, however :D)
Anyway, good luck with whatever you decide to do next.
I suppose I will shelve my plans for IOEx support in EclipseNSIS- I was waiting for it to get out of beta stage. :(
SuperPat
30th April 2006 21:22 UTC
Problem with the TreeView
Good evening,
I have a problem with the treeview:
When I select a subitem, only the parent item is reported in "State"
[Field 3]
Type=TreeView
Left=0
Right=-1
Top=41
Bottom=-12
Notify=ONSELCHANGE
ListItems=A|B|C|D|E{F|G}H|I{K|L|M}N|O
State=E
In this example, if I select "F" or "G", "state" will be equal at "E" intead of "E{F}" or "E{G}" as it should.
Can you fix this?
deguix
3rd May 2006 01:28 UTC
Well, I'm in a vacation, and the project is abandoned. But I might return developing it later, if I develop another project needing this.
You could always test older versions to "fix" whatever the problem you need. Still, thank you for continuing to report stuff.
Brummelchen
15th May 2006 03:24 UTC
how to perform a file request?
please give me a code example for ini + nsi.
thx