added eugtk examples
This commit is contained in:
123
eugtk/examples/test132.ex
Normal file
123
eugtk/examples/test132.ex
Normal file
@@ -0,0 +1,123 @@
|
||||
|
||||
------------------------------------------------------------------------
|
||||
--# Tool Palette and buttons
|
||||
|
||||
-- To create a button with an icon, attach the icon widget as the
|
||||
-- first parameter. Second param can be anything.
|
||||
|
||||
-- Icon can be a widget you create, such as the LeftArrow below,
|
||||
-- or the name of a gtk-stock item, themed icon, etc
|
||||
|
||||
-- For a text button, send a null as the first parameter.
|
||||
-- Second param will be the text to use.
|
||||
-- Third param is the function to call when clicked, 4th is [opt] data.
|
||||
|
||||
-- Note:
|
||||
-- If you set tooltip text for the ToolPalette, then you MUST set
|
||||
-- tooltip text for the buttons, otherwise they display the same
|
||||
-- tooltip as the ToolPalette, which can be confusing.
|
||||
-------------------------------------------------------------------------
|
||||
|
||||
include GtkEngine.e
|
||||
include std/sort.e
|
||||
|
||||
constant WIDTH = 300, HEIGHT = 300
|
||||
|
||||
chdir(canonical_path("~/demos"))
|
||||
|
||||
object images =
|
||||
dir("screenshots/*.jpg") & dir("screenshots/*.gif") & dir("screenshots/*.png")
|
||||
images = sort(vslice(images,D_NAME))
|
||||
images = images[3..$]
|
||||
|
||||
for i = 1 to length(images) do
|
||||
images[i] = locate_file("screenshots/"& images[i])
|
||||
end for
|
||||
|
||||
integer n = 1
|
||||
|
||||
constant win = create(GtkWindow,"border=10,size=500x200,position=1,icon=face-smile,$destroy=Quit")
|
||||
|
||||
constant panel = create(GtkBox,"orientation=VERTICAL")
|
||||
add(win,panel)
|
||||
|
||||
constant pal = create(GtkToolPalette,{
|
||||
{"icon size",GTK_ICON_SIZE_SMALL_TOOLBAR},
|
||||
{"orientation",VERTICAL},
|
||||
{"style",GTK_TOOLBAR_BOTH},
|
||||
{"size request",-1,100}}) -- allow room to show icons;
|
||||
add(panel,pal)
|
||||
|
||||
constant group = create(GtkToolItemGroup,{
|
||||
{"header relief",GTK_RELIEF_NORMAL},
|
||||
{"label","Tool Palette - click to hide/show toolbuttons"}})
|
||||
add(pal,group)
|
||||
|
||||
constant btn1 = create(GtkToolButton,{
|
||||
{"stock_id","gtk-quit"},
|
||||
{"label","Exit"},
|
||||
{"tooltip text","Click to quit"}})
|
||||
connect(btn1,"clicked","Quit")
|
||||
set(group,"insert",btn1,-1)
|
||||
|
||||
constant btn2 = create(GtkToolButton,
|
||||
"stock id=gtk-go-back,label=Back,tooltip_text='Previous Pix'")
|
||||
connect(btn2,"clicked",_("Go"))
|
||||
set(group,"insert",btn2,-1)
|
||||
|
||||
constant btn3 = create(GtkToolButton,{
|
||||
{"stock id","gtk-go-forward"},
|
||||
{"label","Fwd"},
|
||||
{"tooltip text","Next Pix"},
|
||||
{"connect","clicked",_("Go")}})
|
||||
set(group,"insert",btn3,-1)
|
||||
|
||||
constant btn4 = create(GtkMenuToolButton,
|
||||
"label=More...,arrow_tooltip_text='Click to open submenu'")
|
||||
set(group,"insert",btn4,-1)
|
||||
|
||||
constant submenu = create(GtkMenu), -- submenu for btn4;
|
||||
item1 = create(GtkMenuItem,"gtk-yes#Yes",,TRUE),
|
||||
item2 = create(GtkMenuItem,"gtk-no#No",,FALSE),
|
||||
item3 = create(GtkMenuItem,"gtk-quit#Quit","Bail")
|
||||
set(submenu,"append",{item1,item2,item3})
|
||||
set(item1,"sensitive",FALSE)
|
||||
set(item2,"sensitive",FALSE)
|
||||
show_all(submenu)
|
||||
set(btn4,"menu",submenu)
|
||||
|
||||
|
||||
object pix = create(GdkPixbuf,images[n],WIDTH,HEIGHT,TRUE)
|
||||
object img = create(GtkImage,pix)
|
||||
add(panel,img)
|
||||
|
||||
constant lbl = create(GtkLabel)
|
||||
set(lbl,"text",images[n])
|
||||
pack(panel,-lbl)
|
||||
|
||||
show_all(win)
|
||||
main()
|
||||
|
||||
-----------------------------------------
|
||||
function Go(atom ctl, atom data)
|
||||
-----------------------------------------
|
||||
switch ctl do
|
||||
case btn2 then n -= 1
|
||||
case btn3 then n += 1
|
||||
end switch
|
||||
if n > length(images) then n = 1 end if
|
||||
n = ensure_in_range(n,{1,length(images)})
|
||||
pix = create(GdkPixbuf,images[n],WIDTH,HEIGHT,TRUE)
|
||||
set(img,"from pixbuf",pix)
|
||||
set(lbl,"text",images[n])
|
||||
return 1
|
||||
end function
|
||||
|
||||
|
||||
--------------------------
|
||||
global function Bail()
|
||||
--------------------------
|
||||
Info(win,"Thanks!",
|
||||
"Thank you","Please come again!",,"face-smile")
|
||||
return Quit()
|
||||
end function
|
||||
Reference in New Issue
Block a user