added eugtk examples
This commit is contained in:
69
eugtk/examples/test116.ex
Normal file
69
eugtk/examples/test116.ex
Normal file
@@ -0,0 +1,69 @@
|
||||
|
||||
-----------------------------------------------------------------
|
||||
--# GtkComboBox with images
|
||||
-----------------------------------------------------------------
|
||||
|
||||
include GtkEngine.e
|
||||
|
||||
constant docs = `<u><b>GtkComboBox</b></u>
|
||||
with a little work, you can add images
|
||||
to a combo!
|
||||
|
||||
Click on the dotted line to 'tear-off' a menu!
|
||||
`
|
||||
-- We have to use the GtkComboBox, rather than the simpler
|
||||
-- GtkComboBoxText, because we're adding an image to each
|
||||
-- option;
|
||||
|
||||
enum NAME,PIX
|
||||
|
||||
constant items = {
|
||||
{"Fish",create(GdkPixbuf,"thumbnails/fish.png",30,30)},
|
||||
{"Fox",create(GdkPixbuf,"thumbnails/fox.png",30,30)},
|
||||
{"Mouse",create(GdkPixbuf,"thumbnails/mouse.png",30,30)}
|
||||
}
|
||||
|
||||
constant win = create(GtkWindow,"size=200x100,border_width=10,position=1,$destroy=Quit")
|
||||
|
||||
constant panel = create(GtkBox,"orientation=VERTICAL")
|
||||
add(win,panel)
|
||||
|
||||
constant doclbl = create(GtkLabel)
|
||||
set(doclbl,"markup",docs)
|
||||
add(panel,doclbl)
|
||||
|
||||
constant
|
||||
mdl = create(GtkListStore,{gSTR,gPIX}),
|
||||
renderer1 = create(GtkCellRendererText),
|
||||
renderer2 = create(GtkCellRendererPixbuf)
|
||||
set(mdl,"data",items)
|
||||
|
||||
constant combo = create(GtkComboBox,{
|
||||
{"model",mdl},
|
||||
{"pack start",renderer1,TRUE},
|
||||
{"add attribute",renderer1,"text",1},
|
||||
{"pack start",renderer2,TRUE},
|
||||
{"add attribute",renderer2,"pixbuf",2},
|
||||
{"active",1},
|
||||
{"connect","changed",_("UpdateTitleBar")}})
|
||||
|
||||
-- try this:
|
||||
set(combo,"add tearoffs",TRUE)
|
||||
set(combo,"title","Animals")
|
||||
|
||||
-- or this:
|
||||
-- set(combo,"wrap width",2)
|
||||
|
||||
add(panel,combo)
|
||||
|
||||
show_all(win)
|
||||
main()
|
||||
|
||||
-----------------------------------------
|
||||
function UpdateTitleBar(atom ctl)
|
||||
-----------------------------------------
|
||||
integer x = get(ctl,"active")
|
||||
set(win,"title",items[x][NAME])
|
||||
set(win,"icon",items[x][PIX])
|
||||
return 1
|
||||
end function
|
||||
Reference in New Issue
Block a user