View previous topic :: View next topic |
Author |
Message |
Mac Professional Member
Joined: 08 Jul 2000 Posts: 1585 Location: Oklahoma USA
|
Posted: Mon Jan 07, 2002 10:30 pm Post subject: Custom POPUP menu... |
|
|
-- VDS3 and VDS4 Compatible --
Here's a custom menu example using a child dialog
that will allow you to put icons, etc. in the menu items.
I used "Wingding" fonts for the Menu icons, but you can
use BITMAP elements (with CLICK style) if you want.
_______________________________________________________________________________________________________________________________________________________
Code: |
OPTION SCALE, 96
OPTION DECIMALSEP, "."
TITLE By Mac
DIALOG CREATE,"Main Test Window",-1,0,200,100,CLICK
DIALOG ADD,Text,T1,5,5,,,"Right click anywhere"
DIALOG SHOW
:EVLOOP
WAIT EVENT
rem -- %e is event, %d is dialog number that issued it (0,1,2,etc.)--
Parse "%e;%d", @event(D)
goto %e
:CLICK
PARSE "%b;%x;%y",@click(BXY)
rem -- Open menu on right click only --
if @equal(%b, "RIGHT")
rem -- In case menu is already open --
GOSUB CLoseMenu
rem -- Store the Menu child window ID number --
%%menu = @succ(%d)
DIALOG CREATE,"Menu",@sum(%y,@winpos("Main Test Window",T)),@sum(%x,@winpos("Main Test Window",L)),100,70,NOTITLE
DIALOG ADD,STYLE,Style1,,,,WHITE
DIALOG ADD,STYLE,Style2,,,,BLACK
DIALOG ADD,STYLE,Style3,Wingdings,11
rem -- Draw the trim for the menu box --
DIALOG ADD,TEXT,TOP,0,0,100,1,,,Style1
DIALOG ADD,TEXT,LEFT,0,0,1,70,,,Style1
DIALOG ADD,TEXT,BOTTOM,69,0,100,1,,,Style2
DIALOG ADD,TEXT,RIGHT,0,99,1,70,,,Style2
DIALOG ADD,TEXT,Menu1icon,5,5,,,@chr(49),,Style3,CLICK
DIALOG ADD,TEXT,Menu1,5,30,,,"File Open",,CLICK
DIALOG ADD,TEXT,Menu2icon,25,5,,,@chr(60),,Style3,CLICK
DIALOG ADD,TEXT,Menu2,25,30,,,"Save",,CLICK
DIALOG ADD,GROUP,MenuLine,45,2,96,1,,,Style1
DIALOG ADD,TEXT,Menu3icon,50,5,,,@chr(77),,Style3,CLICK
DIALOG ADD,TEXT,Menu3,50,30,,,"Exit",,CLICK
DIALOG SHOW
else
GOSUB CloseMenu
end
goto EVLOOP
:Menu1iconCLICK
:Menu1CLICK
GOSUB CloseMenu
%f = @filedlg()
goto EVLOOP
:Menu2iconCLICK
:Menu2CLICK
GOSUB CloseMenu
INFO Save something here. @tab()
goto EVLOOP
:Menu3iconCLICK
:Menu3CLICK
GOSUB CloseMenu
:CLOSE
EXIT
rem ---- GOSUB ROUTINES ----
:CloseMenu
if %%menu
DIALOG SELECT, %%menu
DIALOG CLOSE, %%menu
%e = @event()
%%menu = ""
end
exit
|
[EDIT]
Changed the MenuLine from a "TEXT" to a "GROUP" element.
Thanks to Snarling Sheep for this idea. _________________ VDSug.dll does file IO, check/disable menu items,
non-VDS dlls, draw functions and more...
Free download (30k dll size) at:
http://www.vdsworld.com/download.php?id=361
Last edited by Mac on Sun Jan 13, 2002 11:23 am; edited 4 times in total |
|
Back to top |
|
|
PGWARE Web Host
Joined: 29 Dec 2001 Posts: 1562
|
Posted: Mon Jan 07, 2002 11:10 pm Post subject: |
|
|
Amazing. I've never seen anyone think of this idea before. Very nice work Mac. |
|
Back to top |
|
|
Mac Professional Member
Joined: 08 Jul 2000 Posts: 1585 Location: Oklahoma USA
|
Posted: Mon Jan 07, 2002 11:18 pm Post subject: |
|
|
Thanks Prakash,
BTW, the CLASS style is unnecessary on the child window.
I was playing around with it and forgot to remove it...
[EDIT]
I removed the CLASS style and adjusted the "MenuLine". _________________ VDSug.dll does file IO, check/disable menu items,
non-VDS dlls, draw functions and more...
Free download (30k dll size) at:
http://www.vdsworld.com/download.php?id=361
|
|
Back to top |
|
|
SnarlingSheep Professional Member
Joined: 13 Mar 2001 Posts: 759 Location: Michigan
|
Posted: Tue Jan 08, 2002 4:17 am Post subject: |
|
|
Nice Mac
This is a bit lengthy, but it will highlight the menu item on mouseover.
_________________ -Sheep
My pockets hurt...
Last edited by SnarlingSheep on Sun Jan 13, 2002 1:50 am; edited 1 time in total |
|
Back to top |
|
|
Garrett Moderator Team
Joined: 04 Oct 2001 Posts: 2149 Location: A House
|
Posted: Tue Jan 08, 2002 7:08 am Post subject: |
|
|
I couldn't help but make the menu more realistic with the proper colors for the borders
Code: | OPTION SCALE, 96
OPTION DECIMALSEP, "."
TITLE By Mac
DIALOG CREATE,"Main Test Window",-1,0,200,100,CLICK
DIALOG ADD,Text,T1,5,5,,,"Right click anywhere"
DIALOG SHOW
:EVLOOP
WAIT EVENT
rem -- %e is event, %d is dialog number that issued it (0,1,2,etc.)--
Parse "%e;%d", @event(D)
goto %e
:CLICK
PARSE "%b;%x;%y",@click(BXY)
rem -- Open menu on right click only --
if @equal(%b, "RIGHT")
rem -- In case menu is already open --
GOSUB CLoseMenu
rem -- Store the Menu child window ID number --
Option Fieldsep,@chr(32)
%A = @regread(CURUSER,Control Panel\Colors,ButtonLight)
Parse "%R;%G;%B",%A
%%ButtonLightColor = $00@hex(%B,2)@hex(%G,2)@hex(%R,2)
%A = @regread(CURUSER,Control Panel\Colors,ButtonHilight)
Parse "%R;%G;%B",%A
%%ButtonHilightColor = $00@hex(%B,2)@hex(%G,2)@hex(%R,2)
%A = @regread(CURUSER,Control Panel\Colors,ButtonShadow)
Parse "%R;%G;%B",%A
%%ButtonShadowColor = $00@hex(%B,2)@hex(%G,2)@hex(%R,2)
%A = @regread(CURUSER,Control Panel\Colors,ButtonDkShadow)
Parse "%R;%G;%B",%A
%%ButtonDkShadowColor = $00@hex(%B,2)@hex(%G,2)@hex(%R,2)
%%menu = @succ(%d)
DIALOG CREATE,"Menu",@sum(%y,@winpos("Main Test Window",T)),@sum(%x,@winpos("Main Test Window",L)),100,70,NOTITLE
DIALOG ADD,STYLE,Style1,,,,%%ButtonLightColor
DIALOG ADD,STYLE,Style1b,,,,%%ButtonHilightColor
DIALOG ADD,STYLE,Style2,,,,%%ButtonDkShadowColor
DIALOG ADD,STYLE,Style2b,,,,%%ButtonShadowColor
DIALOG ADD,STYLE,Style3,Wingdings,11
rem -- Draw the trim for the menu box --
DIALOG ADD,TEXT,TOP,0,0,100,1,,,Style1
DIALOG ADD,TEXT,TOP2,1,1,99,1,,,Style1b
DIALOG ADD,TEXT,LEFT,0,0,1,70,,,Style1
DIALOG ADD,TEXT,LEFT2,1,1,1,69,,,Style1b
DIALOG ADD,TEXT,BOTTOM,69,0,100,1,,,Style2
DIALOG ADD,TEXT,BOTTOM2,68,1,99,1,,,Style2b
DIALOG ADD,TEXT,RIGHT,0,99,1,70,,,Style2
DIALOG ADD,TEXT,RIGHT2,1,98,1,68,,,Style2b
DIALOG ADD,TEXT,Menu1icon,5,5,,,@chr(49),,Style3,CLICK
DIALOG ADD,TEXT,Menu1,5,30,,,"File Open",,CLICK
DIALOG ADD,TEXT,Menu2icon,25,5,,,@chr(60),,Style3,CLICK
DIALOG ADD,TEXT,Menu2,25,30,,,"Save",,CLICK
DIALOG ADD,TEXT,MenuLine2,44,4,92,1,,,Style2b
DIALOG ADD,TEXT,MenuLine,45,4,92,1,,,Style1b
DIALOG ADD,TEXT,Menu3icon,50,5,,,@chr(77),,Style3,CLICK
DIALOG ADD,TEXT,Menu3,50,30,,,"Exit",,CLICK
DIALOG SHOW
else
GOSUB CloseMenu
end
goto EVLOOP
:Menu1iconCLICK
:Menu1CLICK
GOSUB CloseMenu
%f = @filedlg()
goto EVLOOP
:Menu2iconCLICK
:Menu2CLICK
GOSUB CloseMenu
INFO Save something here. @tab()
goto EVLOOP
:Menu3iconCLICK
:Menu3CLICK
GOSUB CloseMenu
:CLOSE
EXIT
rem ---- GOSUB ROUTINES ----
:CloseMenu
if %%menu
DIALOG SELECT, %%menu
DIALOG CLOSE, %%menu
%e = @event()
%%menu = ""
end
exit |
_________________ 'What you do not want done to yourself, do not do to others.' - Confucius (550 b.c. to 479 b.c.) |
|
Back to top |
|
|
Mac Professional Member
Joined: 08 Jul 2000 Posts: 1585 Location: Oklahoma USA
|
Posted: Tue Jan 08, 2002 8:55 am Post subject: |
|
|
Nice going Sheep. You could also add some
spaces (or use a width on the text elements)
and highlight it all the way across.
What system are you running Garrett? I made it
to match Windows 95. Your changes made a very
wide solid black border on my system...
Cheers, Mac _________________ VDSug.dll does file IO, check/disable menu items,
non-VDS dlls, draw functions and more...
Free download (30k dll size) at:
http://www.vdsworld.com/download.php?id=361
|
|
Back to top |
|
|
marty Professional Member
Joined: 10 May 2001 Posts: 789
|
Posted: Tue Jan 08, 2002 12:36 pm Post subject: |
|
|
This is amazing! Great example! Definetly going to be useful to a lot of VDS people.!!!
Thanks Mac ! And Garrett and SnarlingSheep!
Marty |
|
Back to top |
|
|
Garrett Moderator Team
Joined: 04 Oct 2001 Posts: 2149 Location: A House
|
Posted: Wed Jan 09, 2002 5:42 pm Post subject: |
|
|
Mac, I'm on Win98. What I added is suppose to just grab the system colors from the registry and then use those in the STYLE commands. Unless 95 didn't have these registry settings?
Can you check your registry for the @regread() entries I have on that? _________________ 'What you do not want done to yourself, do not do to others.' - Confucius (550 b.c. to 479 b.c.) |
|
Back to top |
|
|
Mac Professional Member
Joined: 08 Jul 2000 Posts: 1585 Location: Oklahoma USA
|
Posted: Wed Jan 09, 2002 10:55 pm Post subject: |
|
|
Hey Garrett,
Apparently that's the problem.
I have "HK_CURRENT_USER\Control Panel",
but no "Color" subkey.
And a registry search fails to find these anywhere:
ButtonLight
ButtonHilight
ButtonShadow
ButtonDkShadow
Cheers, Mac _________________ VDSug.dll does file IO, check/disable menu items,
non-VDS dlls, draw functions and more...
Free download (30k dll size) at:
http://www.vdsworld.com/download.php?id=361
|
|
Back to top |
|
|
Garrett Moderator Team
Joined: 04 Oct 2001 Posts: 2149 Location: A House
|
Posted: Fri Jan 11, 2002 12:07 am Post subject: |
|
|
Bet 95 uses the win.ini settings instead then.
I know 98 also still has the color settings in the win.ini also, but obviously it uses the registry entries instead, and I know win2k doesn't. _________________ 'What you do not want done to yourself, do not do to others.' - Confucius (550 b.c. to 479 b.c.) |
|
Back to top |
|
|
Tommy Admin Team
Joined: 16 Nov 2002 Posts: 746 Location: The Netherlands
|
Posted: Fri Jan 11, 2002 8:39 pm Post subject: |
|
|
If the values you are trying to read don't exist, it's supposed to use default values instead. |
|
Back to top |
|
|
Mac Professional Member
Joined: 08 Jul 2000 Posts: 1585 Location: Oklahoma USA
|
Posted: Fri Jan 11, 2002 10:00 pm Post subject: |
|
|
Hey Tommy,
Hmmm... well, Garrett's routine makes about a 1/16 inch (1.6 mm )
solid black border all the way around the menu, and the same size
for the menu line.
I also couldn't find any reference to the settings in WIN.INI or
SYSTEM.INI...
Cheers, Mac _________________ VDSug.dll does file IO, check/disable menu items,
non-VDS dlls, draw functions and more...
Free download (30k dll size) at:
http://www.vdsworld.com/download.php?id=361
|
|
Back to top |
|
|
Garrett Moderator Team
Joined: 04 Oct 2001 Posts: 2149 Location: A House
|
Posted: Sat Jan 12, 2002 12:31 am Post subject: |
|
|
No way! that just can't be! Where in the heck are the color settings being stored on your system?????
Anybody else out there with a verion Win95 sitting on a box that can check into this on theirs?? _________________ 'What you do not want done to yourself, do not do to others.' - Confucius (550 b.c. to 479 b.c.) |
|
Back to top |
|
|
Mac Professional Member
Joined: 08 Jul 2000 Posts: 1585 Location: Oklahoma USA
|
Posted: Sat Jan 12, 2002 12:52 am Post subject: |
|
|
Maybe popup menu styles, etc. are built into each scheme? _________________ VDSug.dll does file IO, check/disable menu items,
non-VDS dlls, draw functions and more...
Free download (30k dll size) at:
http://www.vdsworld.com/download.php?id=361
|
|
Back to top |
|
|
PGWARE Web Host
Joined: 29 Dec 2001 Posts: 1562
|
Posted: Sat Jan 12, 2002 4:25 am Post subject: |
|
|
I tried running the code Garret posted and it doesnt work for me either, infact it shows no highlight at all, none under the text or any visual appearance of a mouse over. Using Windows XP Home with the Silver theme. Here are my registry settings:
ButtonLight: 241 239 226
ButtonHilight: 255 255 255
ButtonShadow: 157 157 161
ButtonDkShadow: 113 111 100 |
|
Back to top |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum You can attach files in this forum You can download files in this forum
|
|