1. FastMenu for Win32Lib

I've created a menu creation library for use with Win32Lib.

   http://www.cklester.com/euphoria/

It's the first item in the <b>Euphoria Programs & Code</b> section.

More details can be found here: http://www.cklester.com/euphoria/?fastmenu

After I created it, I found that Win32Lib's new control creation system
using newUIObj creates menus almost the same way. Until the IDE starts to
use the newUIObj features, I think FastMenu for Win32Lib will still be
useful.

Derek, I translated menubang.exw to use FastMenu, and here's what it
looks like (call it "menubang2.exw" for the win32lib demo library)...

<code>
-----------------menubang2.exw
include win32lib.ew
include fastmenu.ew

without warning
constant SimpleWin =  create( Window, "Simple Window", 0, 0, 0, 320,200, 0 ),
         SB        =  create(StatusBar, "", SimpleWin, 0, {200,-1}, 0, 0, 0)

atom defHandler, bangHandler
         
---------------------------------
procedure w32HClick_menu(integer self,integer event,sequence params)
---------------------------------  
    sequence text          
    text = getText(self)
    setText({SB,1}, text)
    setText({SB,2}, "")
end procedure
defHandler = routine_id("w32HClick_menu")

---------------------------------
procedure w32HClick_bang(integer self,integer event,sequence params)
---------------------------------
    setText({SB,2}, "Immediate Action for " & getMenuItem(self))
end procedure
bangHandler = routine_id("w32HClick_bang")

sequence myMenu
myMenu =
	{
		{"Options",
			{ "Cold", "Warm", "Hot", "-", "Color" }
		},
		{"!BANG!:" & bangHandler,""},
		{"!POW!:" & bangHandler,""}
	}

create_Menu( SimpleWin, myMenu, defHandler )

WinMain(SimpleWin, Normal)
</code>

Let me know what y'all think.

-=ck
"Programming in a state of EUPHORIA."
http://www.cklester.com/euphoria/

new topic     » topic index » view message » categorize

2. Re: FastMenu for Win32Lib

cklester wrote:
> 
> I've created a menu creation library for use with Win32Lib.
> 
>    <a
>    href="http://www.cklester.com/euphoria/">http://www.cklester.com/euphoria/</a>
> 
> It's the first item in the <b>Euphoria Programs & Code</b> section.
> 
> More details can be found here: <a
> href="http://www.cklester.com/euphoria/?fastmenu">http://www.cklester.com/euphoria/?fastmenu</a>
> 
> After I created it, I found that Win32Lib's new control creation system
> using newUIObj creates menus almost the same way. Until the IDE starts to
> use the newUIObj features, I think FastMenu for Win32Lib will still be
> useful.

Sure will, well done.
 
> Derek, I translated menubang.exw to use FastMenu, and here's what it
> looks like (call it "menubang2.exw" for the win32lib demo library)...
> 
> -----------------menubang2.exw
> include win32lib.ew
> include fastmenu.ew
> 
> without warning
> constant SimpleWin =  create( Window, "Simple Window", 0, 0, 0, 320,200, 0 ),
>          SB        =  create(StatusBar, "", SimpleWin, 0, {200,-1}, 0, 0, 0)
> 
> atom defHandler, bangHandler
>          
> ---------------------------------
> procedure w32HClick_menu(integer self,integer event,sequence params)
> ---------------------------------  
>     sequence text          
>     text = getText(self)
>     setText({SB,1}, text)
>     setText({SB,2}, "")
> end procedure
> defHandler = routine_id("w32HClick_menu")
> 
> ---------------------------------
> procedure w32HClick_bang(integer self,integer event,sequence params)
> ---------------------------------
>     setText({SB,2}, "Immediate Action for " & getMenuItem(self))
> end procedure
> bangHandler = routine_id("w32HClick_bang")
> 
> sequence myMenu
> myMenu =
> 	{
> 		{"Options",
> 			{ "Cold", "Warm", "Hot", "-", "Color" }
> 		},
> 		{"!BANG!:" & bangHandler,""},
> 		{"!POW!:" & bangHandler,""}
> 	}
> 
> create_Menu( SimpleWin, myMenu, defHandler )
> 
> WinMain(SimpleWin, Normal)

Just for comparision, here is the same routine coded using the
built-in Win32lib method.

-----------------menubang.exw
include win32lib.ew
without warning
createForm({
    "Window,   Simple Window, size=(320,200), Bar=Status=(200,-1)",
    "Menu,     Options",
      "MenuItem, Cold",
      "MenuItem, Warm",
      "MenuSpacer",
      "MenuItem, Color",
    "Menu,     !BANG!",
    "Menu,     !POW!"
    })

---------------------------------
procedure w32HClick_menu(integer self,integer event,sequence params)
---------------------------------  
    showMessage({ getText(self),   {0,1}} )
    showMessage({ "Normal Action", {0,2}} )
end procedure
registerRoutine("Click_Cold",  routine_id("w32HClick_menu"))
registerRoutine("Click_Warm",  routine_id("w32HClick_menu"))
registerRoutine("Click_Color", routine_id("w32HClick_menu"))

---------------------------------
procedure w32HClick_bang(integer self,integer event,sequence params)
---------------------------------  
    showMessage({ getText(self),     {0,1}} )
    showMessage({"Immediate Action", {0,2}})
end procedure
registerRoutine("Click_BANG", routine_id("w32HClick_bang"))
registerRoutine("Click_POW",  routine_id("w32HClick_bang"))

include w32Start.ew



-- 
Derek Parnell
Melbourne, Australia

new topic     » goto parent     » topic index » view message » categorize

Search



Quick Links

User menu

Not signed in.

Misc Menu