forum.vdsworld.com Forum Index forum.vdsworld.com
Visit VDSWORLD.com
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 


Custom POPUP menu...
Goto page Previous  1, 2, 3  Next
 
Post new topic   Reply to topic    forum.vdsworld.com Forum Index -> Visual DialogScript 3 Source Code
View previous topic :: View next topic  
Author Message
Mac
Professional Member
Professional Member


Joined: 08 Jul 2000
Posts: 1585
Location: Oklahoma USA

PostPosted: Sat Jan 12, 2002 5:03 am    Post subject: Reply with quote

Uh... Sheep's is the one that does highlights. Garrett's is
just supposed to coordinate the color scheme. I assume
it tries to get the button highlight and shadow for the trim
colors (edges) on the popup menu.

Unless I'm REALLY confused... Confused

_________________
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 Sat Jan 12, 2002 5:16 am; edited 2 times in total
Back to top
View user's profile Send private message Send e-mail
SnarlingSheep
Professional Member
Professional Member


Joined: 13 Mar 2001
Posts: 759
Location: Michigan

PostPosted: Sat Jan 12, 2002 5:10 am    Post subject: Reply with quote

Yes mine highlights in blue..I imagine it could use the Windows set highlight color, Garrett didn't try to implement that I don't believe.
_________________
-Sheep
My pockets hurt...
Back to top
View user's profile Send private message Send e-mail
Garrett
Moderator Team


Joined: 04 Oct 2001
Posts: 2144
Location: A House

PostPosted: Sun Jan 13, 2002 12:29 am    Post subject: Reply with quote

No, I sure didn't try that since you had already achieved that. I only had one problem with your highlighter.... It constantly flickers while the mouse is over a selected menu item. I think you need to add a routine to stop reactivating the highlight when the mouse is still over the same menu item.
_________________
'What you do not want done to yourself, do not do to others.' - Confucius (550 b.c. to 479 b.c.)
Necroprogramming FTW! - "Wait.. Is necroprogramming legal?"
http://www.freewarehome.com <-- Freeware listings since 1996
Back to top
View user's profile Send private message
SnarlingSheep
Professional Member
Professional Member


Joined: 13 Mar 2001
Posts: 759
Location: Michigan

PostPosted: Sun Jan 13, 2002 1:48 am    Post subject: Reply with quote

Alright..it's no longer just a reference appearantly Wink
I think this looks/works better. I left out the Windows color settings for now. Maybe we can figure out how to get the settings from Win95.
I added space to the menu items so highlight looks better and changed Mac's text menu line to a Group element, let me know if that looks better to you Mac.

Code:

REM --------------------------------------------------------------------------------------------------------------------------------
REM Start Copy Below
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
  %%MenuOpen = No
  %%Highlight1 = Off
  %%Highlight2 = Off
  %%Highlight3 = Off
:Timer
  if @EQUAL(%%MenuOpen,Yes)
    %%Menu1Pos = @DLGPOS(Menu1,T)
   %%Menu1Pos = @FADD(@WINPOS(Menu,T),%%Menu1Pos)
   %%Menu2Pos = @DLGPOS(Menu2,T)
   %%Menu2Pos = @FADD(@WINPOS(Menu,T),%%Menu2Pos)
   %%Menu3Pos = @DLGPOS(Menu3,T)
   %%Menu3Pos = @FADD(@WINPOS(Menu,T),%%Menu3Pos)
   %%MouseTPos = @MOUSEPOS(Y)
   if @GREATER(%%MouseTPos,%%Menu1Pos)
      if @NOT(@GREATER(%%MouseTPos,@FADD(%%Menu1Pos,20)))
       if @EQUAL(%%Highlight1,Off)
         DIALOG REMOVE,Menu1
         DIALOG ADD,TEXT,Menu1,5,30,65,15,"File Open",,CLICK,Highlight
        %%Highlight1 = On
      end
     else
       if @EQUAL(%%Highlight1,On)
         DIALOG REMOVE,Menu1
         DIALOG ADD,TEXT,Menu1,5,30,65,15,"File Open",,CLICK
        %%Highlight1 = Off
      end
     end
   else
     if @EQUAL(%%Highlight1,On)
       DIALOG REMOVE,Menu1
       DIALOG ADD,TEXT,Menu1,5,30,65,15,"File Open",,CLICK
      %%Highlight1 = Off
     end
   end
   if @GREATER(%%MouseTPos,%%Menu2Pos)
     if @NOT(@GREATER(%%MouseTPos,@FADD(%%Menu2Pos,20)))
       if @EQUAL(%%Highlight2,Off)
         DIALOG REMOVE,Menu2
         DIALOG ADD,TEXT,Menu2,25,30,65,15,"Save",,CLICK,Highlight
        %%Highlight2 = On
      end
     else
       if @EQUAL(%%Highlight2,On)
         DIALOG REMOVE,Menu2
         DIALOG ADD,TEXT,Menu2,25,30,65,15,"Save",,CLICK
        %%Highlight2 = Off
      end
     end
   else
     if @EQUAL(%%Highlight2,On)
       DIALOG REMOVE,Menu2
       DIALOG ADD,TEXT,Menu2,25,30,65,15,"Save",,CLICK
      %%Highlight2 = Off
      end
   end
   if @GREATER(%%MouseTPos,%%Menu3Pos)
     if @NOT(@GREATER(%%MouseTPos,@FADD(%%Menu3Pos,20)))
       if @EQUAL(%%Highlight3,Off)
         DIALOG REMOVE,Menu3
         DIALOG ADD,TEXT,Menu3,50,30,65,15,"Exit",,CLICK,Highlight
        %%Highlight3 = On
      end
      else
       if @EQUAL(%%Highlight3,On)
         DIALOG REMOVE,Menu3
         DIALOG ADD,TEXT,Menu3,50,30,65,15,"Exit",,CLICK
        %%Highlight3 = Off
      end
     end
   else
     if @EQUAL(%%Highlight3,On)
       DIALOG REMOVE,Menu3
       DIALOG ADD,TEXT,Menu3,50,30,65,15,"Exit",,CLICK
      %%Highlight3 = Off
     end
   end
  end
:EVLOOP
  wait event,0.1
  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,CLASS #TestMenu,NOTITLE
     DIALOG ADD,STYLE,Style1,,,,WHITE
     DIALOG ADD,STYLE,Style2,,,,BLACK
     DIALOG ADD,STYLE,Style3,Wingdings,11
    DIALOG ADD,STYLE,Highlight,,,,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,Menu1icon,5,5,,,@chr(49),,Style3,CLICK
     DIALOG ADD,TEXT,Menu1,5,30,65,15,"File Open",,CLICK

     DIALOG ADD,TEXT,Menu2icon,25,5,,,@chr(60),,Style3,CLICK
     DIALOG ADD,TEXT,Menu2,25,30,65,15,"Save",,CLICK

     DIALOG ADD,GROUP,MenuLine,45,2,96,2,,,Style1

     DIALOG ADD,TEXT,Menu3icon,50,5,,,@chr(77),,Style3,CLICK
     DIALOG ADD,TEXT,Menu3,50,30,65,15,"Exit",,CLICK
     DIALOG SHOW
    %%MenuOpen = Yes
  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 = ""
    %%MenuOpen = No
  end
  exit

_________________
-Sheep
My pockets hurt...
Back to top
View user's profile Send private message Send e-mail
Mac
Professional Member
Professional Member


Joined: 08 Jul 2000
Posts: 1585
Location: Oklahoma USA

PostPosted: Sun Jan 13, 2002 3:09 am    Post subject: Reply with quote

Hey Sheep, Smile

Yep, the group element has a more original look
than the white line I used. This new mouseover
looks better too.

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
View user's profile Send private message Send e-mail
Mac
Professional Member
Professional Member


Joined: 08 Jul 2000
Posts: 1585
Location: Oklahoma USA

PostPosted: Sun Jan 13, 2002 4:56 am    Post subject: Reply with quote

Well, here's a little different approach to the mouseover. It keeps the
menu routine all within the main window CLICK event. It also uses a
var to check position on each menu item in a repeat loop.

You can add up to 10 menu items (Menu0 - Menu9), and all you have to
modify is the %%lastmenuitem var (and add your elements and Menu?
labels of course...). Just be sure to use the same "Menu?" format as in
the example.

It also highlights both elements on a line.
_________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
Code:

rem -- Thanks to Snarling Sheep for the mouseover idea --
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
  rem -- Open menu on right click only --
  if @equal(@click(B), "RIGHT")
     rem -- In case menu is already open --
     GOSUB CLoseMenu
     rem -- Store Menu child window ID, X/Y and width/height --
     %%menu = @succ(%d)
     %%menuX = @mousepos(X)
     %%menuY = @mousepos(Y)
     %%menuW = 100
     %%menuH = 70
     DIALOG CREATE,"Menu",%%menuY,%%menuX,%%menuW,%%menuH,NOTITLE
     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
     DIALOG ADD,TEXT,Menu0iconHL,5,5,25,,@chr(49),,CLICK,Style5
     DIALOG ADD,TEXT,Menu0,5,30,65,,"File Open",,CLICK
     DIALOG ADD,TEXT,Menu0HL,5,30,65,,"File Open",,CLICK,Style3

     DIALOG ADD,TEXT,Menu1icon,25,5,25,,@chr(60),,CLICK,Style4
     DIALOG ADD,TEXT,Menu1iconHL,25,5,25,,@chr(60),,CLICK,Style5
     DIALOG ADD,TEXT,Menu1,25,30,65,,"Save",,CLICK
     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
     DIALOG ADD,TEXT,Menu2iconHL,50,5,25,,@chr(77),,CLICK,Style5
     DIALOG ADD,TEXT,Menu2,50,30,65,,"Exit",,CLICK
     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
     %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
  else
     GOSUB CloseMenu
  end
  goto EVLOOP

: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

[EDIT]
Optimized the code a little more, and added a %%lastmenuitem var.
Just set %%lastmenuitem to the last menu item number you have,
and you don't have to mess with the repeat loops.

_________________
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 12:31 pm; edited 7 times in total
Back to top
View user's profile Send private message Send e-mail
SnarlingSheep
Professional Member
Professional Member


Joined: 13 Mar 2001
Posts: 759
Location: Michigan

PostPosted: Sun Jan 13, 2002 5:21 am    Post subject: Reply with quote

Wow..why wouldn't I use the @both() function? lol
I thought about highlighting the icon..but if it was a bitmap you would have to have a second bitmap to show the highlight.
Looks good to me, and less code.

_________________
-Sheep
My pockets hurt...
Back to top
View user's profile Send private message Send e-mail
Mac
Professional Member
Professional Member


Joined: 08 Jul 2000
Posts: 1585
Location: Oklahoma USA

PostPosted: Sun Jan 13, 2002 7:40 am    Post subject: Reply with quote

Thanks Sheep, Smile

Actually it could be a few lines less if you combined the two "if @both()"
lines with another "@both()", but it'd be one long line of confusing code.

Also, I guess ya could add two bitmaps, one "highlighted" and one not.
Just use the same "Menu?" and "Menu?icon" name structure...

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
View user's profile Send private message Send e-mail
Mac
Professional Member
Professional Member


Joined: 08 Jul 2000
Posts: 1585
Location: Oklahoma USA

PostPosted: Sun Jan 13, 2002 10:41 am    Post subject: Reply with quote

OK, I crammed all the mouseover checks on one line, modified the
procedure that goes to the menu item, and a few other minor things.

This optimized the code a little more, and I also added a variable
(%%lastmenuitem) for the last menu item number. Just set it to
the last menu item number you have, and you don't have to mess
with the repeat loops (be sure to start menu items at zero).

Cheers, Mac Smile

_________________
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
View user's profile Send private message Send e-mail
SnarlingSheep
Professional Member
Professional Member


Joined: 13 Mar 2001
Posts: 759
Location: Michigan

PostPosted: Mon Jan 14, 2002 4:51 am    Post subject: Reply with quote

By adding this after the Menu's DIALOG SHOW it will animate like Windows 98 Menus..was this an option in Win95? I forget.

___________________________________________________________________
Code:

    REM --- Animate Menu ---
    %%NumX = 1
    %%NumY = 1
    repeat
      if @NOT(@GREATER(%%NumX,100))
        WINDOW POSITION,@WINEXISTS("Menu"),%%menuY,%%menuX,%%NumX,
      end
      if @NOT(@GREATER(%%NumY,70))
        WINDOW POSITION,@WINEXISTS("Menu"),%%menuY,%%menuX,,%%NumY
      end
      %%NumX = @SUCC(%%NumX)
      %%NumY = @SUCC(%%NumY)
    until @BOTH(@GREATER(%%NumX,100),@GREATER(%%NumY,70))
    Rem --- End Animation ---

_________________
-Sheep
My pockets hurt...
Back to top
View user's profile Send private message Send e-mail
Mac
Professional Member
Professional Member


Joined: 08 Jul 2000
Posts: 1585
Location: Oklahoma USA

PostPosted: Mon Jan 14, 2002 8:48 pm    Post subject: Reply with quote

Hey Sheep, Smile

Not an option in Win95 as far as I know.
LOL, it'd drive me nuts (OK, more nuts than I am).

Interesting idea though...

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
View user's profile Send private message Send e-mail
SnarlingSheep
Professional Member
Professional Member


Joined: 13 Mar 2001
Posts: 759
Location: Michigan

PostPosted: Mon Jan 14, 2002 9:46 pm    Post subject: Reply with quote

I kind of like that the menus don't just appear, they seem to come out of the mouse. Of course it looks better in Windows than in my code Smile
_________________
-Sheep
My pockets hurt...
Back to top
View user's profile Send private message Send e-mail
Mac
Professional Member
Professional Member


Joined: 08 Jul 2000
Posts: 1585
Location: Oklahoma USA

PostPosted: Mon Jan 14, 2002 10:09 pm    Post subject: Reply with quote

LOL, I put it in the wrong place. It kept reappearing when I did
mouseovers. What an idiot.

OK, I know what you mean now, but don't the menus in Win98
appear just from the top down like this? (it's smoother if you
use:

DIALOG CREATE,"Menu",%%menuY,%%menuX,%%menuW,0,NOTITLE

to create the menu window.
Code:

REM --- Animate Menu ---
     %%numH = 1
     REPEAT
       WINDOW POSITION,"Menu",,,,%%numH
       %%numH = @fadd(%%numH, ".1")
     UNTIL @greater(%%numH, %%menuH)
Rem --- End Animation ---

_________________
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 Mon Jan 14, 2002 10:46 pm; edited 1 time in total
Back to top
View user's profile Send private message Send e-mail
Mac
Professional Member
Professional Member


Joined: 08 Jul 2000
Posts: 1585
Location: Oklahoma USA

PostPosted: Mon Jan 14, 2002 10:29 pm    Post subject: Reply with quote

OK, here's the whole thing with the animated menu. You can
change the @fadd numbers (currently ".1" and "1") to modify
the animation speed.
Nice idea Sheep!
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
  rem -- Open menu on right click only --
  if @equal(@click(B), "RIGHT")
     rem -- In case menu is already open --
     GOSUB CLoseMenu
     rem -- Store Menu child window ID, X/Y and width/height --
     %%menu = @succ(%d)
     %%menuX = @mousepos(X)
     %%menuY = @mousepos(Y)
     %%menuW = 100
     %%menuH = 70
     rem -- Use zero width/height here for animated menu --
     DIALOG CREATE,"Menu",%%menuY,%%menuX,0,0,NOTITLE
     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
     DIALOG ADD,TEXT,Menu0iconHL,5,5,25,,@chr(49),,CLICK,Style5
     DIALOG ADD,TEXT,Menu0,5,30,65,,"File Open",,CLICK
     DIALOG ADD,TEXT,Menu0HL,5,30,65,,"File Open",,CLICK,Style3

     DIALOG ADD,TEXT,Menu1icon,25,5,25,,@chr(60),,CLICK,Style4
     DIALOG ADD,TEXT,Menu1iconHL,25,5,25,,@chr(60),,CLICK,Style5
     DIALOG ADD,TEXT,Menu1,25,30,65,,"Save",,CLICK
     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
     DIALOG ADD,TEXT,Menu2iconHL,50,5,25,,@chr(77),,CLICK,Style5
     DIALOG ADD,TEXT,Menu2,50,30,65,,"Exit",,CLICK
     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))
     Rem --- End Animation ---

     %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
  else
     GOSUB CloseMenu
  end
  goto EVLOOP

: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

[EDIT]
Added code to animate both horizontally and vertically.
Slight optimization in animation sequence.

_________________
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 Tue Jan 15, 2002 11:46 pm; edited 3 times in total
Back to top
View user's profile Send private message Send e-mail
SnarlingSheep
Professional Member
Professional Member


Joined: 13 Mar 2001
Posts: 759
Location: Michigan

PostPosted: Mon Jan 14, 2002 10:45 pm    Post subject: Reply with quote

No, they appear from the corner like I had it Smile
_________________
-Sheep
My pockets hurt...
Back to top
View user's profile Send private message Send e-mail
Display posts from previous:   
Post new topic   Reply to topic    forum.vdsworld.com Forum Index -> Visual DialogScript 3 Source Code All times are GMT
Goto page Previous  1, 2, 3  Next
Page 2 of 3

 
Jump to:  
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




Twitter@vdsworld       RSS

Powered by phpBB © 2001, 2005 phpBB Group