139 lines
3.4 KiB
Elixir
139 lines
3.4 KiB
Elixir
|
|
------------------------------------------------------------------------
|
|
--# Fiddling with Frames;
|
|
-- This is just an experiment to see how many different types of frames
|
|
-- I can create. One or two might prove useful.
|
|
------------------------------------------------------------------------
|
|
|
|
include GtkEngine.e
|
|
|
|
integer x = 0, y = 60
|
|
atom angle = 0
|
|
|
|
constant docs = `<b><u>Fiddling with Frames</u></b>
|
|
These frames have their appearance
|
|
modified by mystyle4.css.`
|
|
|
|
constant css = create(GtkCssProvider,
|
|
locate_file("resources/mystyle4.css"))
|
|
|
|
constant win = create(GtkWindow,
|
|
"size=355x-1,border=10,position=1,background=lightgray,$destroy=Quit")
|
|
|
|
constant panel = create(GtkBox,"orientation=VERTICAL,spacing=10")
|
|
add(win,panel)
|
|
|
|
constant lbl = create(GtkLabel)
|
|
set(lbl,"markup",docs)
|
|
add(panel,lbl)
|
|
|
|
constant goose = create(GtkImage,create(GdkPixbuf,"thumbnails/mongoose.png",20,20,TRUE))
|
|
constant frame1 = create(GtkFrame,{
|
|
{"name","frame1"},
|
|
{"label widget",goose}})
|
|
add(frame1,create(GtkLabel,
|
|
`
|
|
Frame with border-style: none;
|
|
background-color: skyblue;
|
|
label widget(goose)
|
|
|
|
`))
|
|
add(panel,frame1)
|
|
|
|
constant frame2 = create(GtkFrame,{
|
|
{"label","Frame 2"},
|
|
{"label align",1,0},
|
|
{"name","frame2"}})
|
|
add(frame2,create(GtkLabel,
|
|
`
|
|
Frame with border-style: inset;
|
|
label align(1,0)
|
|
|
|
`))
|
|
add(panel,frame2)
|
|
constant frame3 = create(GtkFrame,{
|
|
{"label","Frame Number 3"},
|
|
{"label align",0.5,0.5},
|
|
{"name","frame3"}})
|
|
add(frame3,create(GtkLabel,
|
|
`
|
|
Frame with border-style: outset;
|
|
label align(0.5,0.5)
|
|
`))
|
|
add(panel,frame3)
|
|
|
|
constant tab4 = create(GtkLabel)
|
|
set(tab4,"markup","<span color='red' font='URW Chancery L 16'><i><u>Fancy Title 4</u></i></span>")
|
|
|
|
constant frame4 = create(GtkFrame,"4")
|
|
set(frame4,"name","frame4")
|
|
set(frame4,"label widget",tab4)
|
|
|
|
constant lbl4 = create(GtkLabel)
|
|
set(lbl4,"font","10")
|
|
set(lbl4,"markup",
|
|
`Frame with border-radius: 20px;
|
|
label font URW Chancery L 16`)
|
|
add(frame4,lbl4)
|
|
add(panel,frame4)
|
|
|
|
constant frame5 = create(GtkFrame)
|
|
set(frame5,"size request",-1,140)
|
|
set(frame5,"name","frame5")
|
|
set(frame5,"label align",1,1)
|
|
|
|
constant layout = create(GtkLayout)
|
|
constant lbl5 = create(GtkLabel,{
|
|
{"name","label5"},
|
|
{"markup","Inset frame with image and label"}})
|
|
set(layout,"put",lbl5,25,20)
|
|
|
|
constant img5 = create(GtkImage,"thumbnails/cowbell2a.gif")
|
|
set(layout,"put",img5,x,y)
|
|
add(frame5,layout)
|
|
add(panel,frame5)
|
|
|
|
constant frame6 = create(GtkFrame,{
|
|
{"name","frame6"},
|
|
{"size request",-1,130}})
|
|
add(panel,frame6)
|
|
|
|
constant eulbl = create(GtkLabel,{
|
|
{"font","24"},
|
|
{"color","rgba(255,0,0,0.5)"}, -- overlay semi-transparent
|
|
{"markup","<small>\n</small><b>and EuGTK!</b>"}})
|
|
add(frame6,eulbl)
|
|
|
|
constant btn = create(GtkButton,"gtk-quit","Quit")
|
|
pack(panel,-btn)
|
|
set(btn,"tooltip markup",
|
|
"<span color='black'><b>Click this button and hold!</b></span>")
|
|
|
|
constant tick = create(GTimeout,50,call_back(routine_id("TickTock")))
|
|
|
|
show_all(win)
|
|
main()
|
|
|
|
---------------------
|
|
function TickTock()
|
|
---------------------
|
|
x += 1
|
|
y += rand(3)-2
|
|
|
|
set(layout,"move",img5,x,y)
|
|
if x > 170 then
|
|
set(layout,"move",lbl5,25,x-260)
|
|
angle += .1
|
|
set(lbl5,"angle",angle)
|
|
set(layout,"move",lbl5,25,20)
|
|
end if
|
|
|
|
if x > 400 then
|
|
x = -100
|
|
angle = 0
|
|
set(layout,"move",lbl5,25,20)
|
|
set(lbl5,"angle",0)
|
|
end if
|
|
return 1
|
|
end function
|