Mac Professional Member

Joined: 08 Jul 2000 Posts: 1585 Location: Oklahoma USA
|
Posted: Thu Oct 03, 2002 12:15 am Post subject: Gradient Window, Gradient Menu... |
|
|
Ok, it may not be practical, but maybe it'll give ya
some ideas (it may look different in VDS4)...
The main window "File" menu is a text element, so
ALT+F doesn't activate it.
____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
| Code: |
OPTION SCALE, 96
OPTION DECIMALSEP, "."
%%title = "Main Test Window"
TITLE By Mac
DIALOG CREATE,%%title,-1,0,300,200,CLICK
%%color = FF0000
rem -- Adjust to fit window width, narrow window needs smaller divisor --
%%divisor = 128
rem -- Get RGB increments needed to fade color --
%%inc1 = "0"@div(@diff($FF,$@substr(%%color,1,2)),%%divisor)
%%inc2 = "0"@div(@diff($FF,$@substr(%%color,3,4)),%%divisor)
%%inc3 = "0"@div(@diff($FF,$@substr(%%color,5,6)),%%divisor)
%%color = $00FF0000
%x = 0
REPEAT
if @equal(@mod(%x, 2), 0)
DIALOG ADD,STYLE,Style%x,,,,%%color
DIALOG ADD,TEXT,BG%x,0,%x,2,200,,,Style%x
%%color = @sum(%%color, $00%%inc1%%inc2%%inc3)
end
%x = @succ(%x)
UNTIL @greater(%x, 300)
DIALOG ADD,STYLE,S1,,,,BLACK
DIALOG ADD,Text,File,5,5,,," &File ",,CLICK,TRANSPARENT
DIALOG ADD,Text,Line,20,2,296,1,,,,S1
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
GOSUB CLoseMenu
goto EVLOOP
:FileMENU
:FileCLICK
rem -- In case menu is already open --
GOSUB CLoseMenu
rem -- Store Menu child window ID, X/Y and width/height --
%%menu = @succ(%d)
rem %%menuX = @mousepos(X)
%%menuX = @sum(@winpos(%%title, L), 5)
rem %%menuY = @mousepos(Y)
%%menuY = @sum(@winpos(%%title, T), 44)
%%menuW = 100
%%menuH = 70
rem -- Use zero width/height here for animated menu --
DIALOG CREATE,"Menu",%%menuy,%%menuX,0,0,NOTITLE
%%color = FF0000
rem -- Adjust to fit window width, narrow window needs smaller divisor --
%%divisor = 50
rem -- Get RGB increments needed to fade color --
%%inc1 = "0"@div(@diff($FF,$@substr(%%color,1,2)),%%divisor)
%%inc2 = "0"@div(@diff($FF,$@substr(%%color,3,4)),%%divisor)
%%inc3 = "0"@div(@diff($FF,$@substr(%%color,5,6)),%%divisor)
%%color = $00FF0000
%x = 0
REPEAT
if @equal(@mod(%x, 2), 0)
DIALOG ADD,STYLE,ChildStyle%x,,,,%%color
DIALOG ADD,TEXT,ChildBG%x,0,%x,2,200,,,ChildStyle%x
%%color = @sum(%%color, $00%%inc1%%inc2%%inc3)
end
%x = @succ(%x)
UNTIL @greater(%x, 300)
DIALOG ADD,STYLE,Style1,,,,WHITE
DIALOG ADD,STYLE,Style2,,,,BLACK
DIALOG ADD,STYLE,Style3,,,,DKBLUE,WHITE
DIALOG ADD,STYLE,Style4,Wingdings,11
DIALOG ADD,STYLE,Style5,Wingdings,11,,DKBLUE,WHITE
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,Menu0icon,5,5,25,,@chr(49),,CLICK,Style4,TRANSPARENT
DIALOG ADD,TEXT,Menu0iconHL,5,5,25,,@chr(49),,CLICK,Style5
DIALOG ADD,TEXT,Menu0,5,30,65,,"File Open",,CLICK,TRANSPARENT
DIALOG ADD,TEXT,Menu0HL,5,30,65,,"File Open",,CLICK,Style3
DIALOG ADD,TEXT,Menu1icon,25,5,25,,@chr(60),,CLICK,Style4,TRANSPARENT
DIALOG ADD,TEXT,Menu1iconHL,25,5,25,,@chr(60),,CLICK,Style5
DIALOG ADD,TEXT,Menu1,25,30,65,,"Save",,CLICK,TRANSPARENT
DIALOG ADD,TEXT,Menu1HL,25,30,65,,"Save",,CLICK,Style3
DIALOG ADD,GROUP,MenuLine1,45,2,96,2,,,Style1
DIALOG ADD,TEXT,Menu2icon,50,5,25,,@chr(77),,CLICK,Style4,TRANSPARENT
DIALOG ADD,TEXT,Menu2iconHL,50,5,25,,@chr(77),,CLICK,Style5
DIALOG ADD,TEXT,Menu2,50,30,65,,"Exit",,CLICK,TRANSPARENT
DIALOG ADD,TEXT,Menu2HL,50,30,65,,"Exit",,CLICK,Style3
%%lastmenuitem = 2
%x = 0
REPEAT
DIALOG HIDE, Menu%xiconHL
DIALOG HIDE, Menu%xHL
%x = @succ(%x)
UNTIL @greater(%x, %%lastmenuitem)
DIALOG SHOW
REM -- Animate Menu --
%%numW = 1
%%numH = 1
REPEAT
if @greater(%%menuH, %%numH)
%%numH = @fadd(%%numH, ".1")
end
if @greater(%%menuW, %%numW)
%%numW = @fadd(%%numW, 1)
end
WINDOW POSITION,"Menu",,,%%numW,%%numH
UNTIL @both(@equal(%%numH, %%menuH), @equal(%%numW, %%menuW))
%x = 0
REPEAT
if @greater(%%lastmenuitem, %x)
%x = @succ(%x)
else
%x = 0
end
if @both(@both(@greater(@mousepos(X),%%menuX), @greater(@sum(%%menuX, %%menuW), @mousepos(X))), @both(@greater(@mousepos(Y),@sum(%%menuY, @dlgpos(Menu%x, T))), @greater(@sum(18,%%menuY, @dlgpos(Menu%x, T)),@mousepos(Y))))
DIALOG SHOW, Menu%xiconHL
DIALOG SHOW, Menu%xHL
else
DIALOG HIDE, Menu%xiconHL
DIALOG HIDE, Menu%xHL
end
Parse "%e;%d", @event(D)
UNTIL %e
if @equal(@substr(%e,1,4), "Menu")
%x = @substr(%e,5)
goto Menu%x
end
goto %e
:Menu0
GOSUB CloseMenu
%f = @filedlg()
goto EVLOOP
:Menu1
GOSUB CloseMenu
INFO Save something here. @tab()
goto EVLOOP
:Menu2
GOSUB CloseMenu
:CLOSE
EXIT
rem ---- GOSUB ROUTINES ----
:CloseMenu
if %%menu
DIALOG SELECT, %%menu
DIALOG CLOSE, %%menu
%e = @event()
%%menu = ""
end
exit
|
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
 |
|