Archive: onMouseOver Descriptions incorrect


onMouseOver Descriptions incorrect
I have searched the forum and Google and haven't found an answer to my question. I have an installer with a few sections and section groups but the .onMouseOverSection callback does not display the correct description for some of the sections. Below is the basic structure for my sections and the mouseOver callback (you'll notice a few oddities in the mouseOver section which I will explain after the code).

SectionGroup /e "HardwareDriver"

Section Firmware SECFirmware
SectionIn 1 2
SectionEnd

Section DeviceDriver SECDeviceDriver
SectionIn 1 2
SectionEnd

Section SNMP SECSnmp
SectionIn 1 2
SectionEnd

Section Utilities SECUtilites
SectionIn 1 2
SectionEnd

SectionGroup /e "SMIS"

Section WMI SECWmi
SectionIn 1 2
SectionEnd

SectionGroup CMPI
Section -CMPI
SectionIn 1 2
SectionEnd
Section cim-schema
SectionIn 1 2
SectionEnd
SectionGroupEnd ;end of CMPI Section Group

SectionGroupEnd ;End of SMIS Section Group

SectionGroupEnd ;End of HardwareDriver Section Group

SectionGroup /e "IO Management"

Section -ioManager SECIoMan
SectionIn 1 2
SectionEnd

Section "Java Runtime Environment" SECJre
SectionIn 1 2
SectionEnd

SectionGroupEnd ;End of IO Management Section Group

Section "Software Development Kit" SECSdk
SectionIn 2
SectionEnd

-------OnMouseOver----------

FindWindow $R0 "#32770" "" $HWNDPARENT
GetDlgItem $R0 $R0 1043 ; description item (must be added to the UI)

${IF} $0 == 0
SendMessage $R0 ${WM_SETTEXT} 0 "Sec 1"
${ELSEIF} $0 == 1
SendMessage $R0 ${WM_SETTEXT} 0 "Sec 2"
${ELSEIF} $0 == 2
SendMessage $R0 ${WM_SETTEXT} 0 "Sec 3"
${ELSEIF} $0 == 3
SendMessage $R0 ${WM_SETTEXT} 0 "Sec 4"
${ELSEIF} $0 == 4
SendMessage $R0 ${WM_SETTEXT} 0 "Sec 5"
${ELSEIF} $0 == 5
SendMessage $R0 ${WM_SETTEXT} 0 "Sec 6"
${ELSEIF} $0 == 6
SendMessage $R0 ${WM_SETTEXT} 0 "Sec 7"
${ELSEIF} $0 == 7
SendMessage $R0 ${WM_SETTEXT} 0 "Sec 8"
${ELSEIF} $0 == 9
SendMessage $R0 ${WM_SETTEXT} 0 "Sec 9"
${ELSEIF} $0 == 11
SendMessage $R0 ${WM_SETTEXT} 0 "Sec 10"
${ELSEIF} $0 == 13
SendMessage $R0 ${WM_SETTEXT} 0 "Sec 11"
${ELSEIF} $0 == 14
SendMessage $R0 ${WM_SETTEXT} 0 "Sec 12"
${ENDIF}

All of the sections display their correct descriptions except the last two. Now I know it looks like I have the section numbers wrong, and I agree, but they don't work when I use 12 and 13 for those (in fact, changing them to 12 and 13 ruins the description for Sec 10). You will also notice that 8 is missing. Basically, the section numbers I expect to be checking for in the ${IF} statements are not quite right and am not sure why this is. Shouldn't they be in sequential order from the way the sections are listed? Does having section groups throw things off? Any input is appreciated as I have tried all kinds of combinations and failed miserably. Thanks in advance.


in short: yes, the section groups change the numbering you might be expecting.

comment out the the section logic and put...
SendMessage $R0 ${WM_SETTEXT} 0 "STR:$0"
...in there. That way you can see which numbers it assigns.

But better than relying on numbers is to use the section IDs directly.

e.g.
${IF} $0 = 1
becomes
${IF} $0 = ${SECFirmware}

( you'll want to add IDs for the section groups )


Ah yes, the Group Id's worked perfectly. Too many hours staring at this; Thank you very much for the help.