GTK# lebegő toolbox

Szisztok!

GTK#-pal szeretnék fejleszteni OpenMoko-ra.
A levelezési listák szerint már van Mono és GTK# portolva rá, tehát eddig rendben van.

Olyan GUI-t szeretnék csinálni, aminek a közepén egy nagyméretű DrawArea van (ami mellesleg egy térkép), tehát egy a program által rajzolt terület. Ez a terület alapesetben a teljes képernyőt elfoglalná, rajta az érintés és húzás műveletek már eleve jelentéssel bírnának.

Valamelyik sarokba gondoltam egy gombot, ami "lebeg" a DrawArea felett: tehát nem foglal el egy teljes sort, vagy teljes oszlopot, hanem csak a sarkot és éppen akkora, hogy az újjunkkal kényelmesen eltalálhassuk. A térképnek a gomb alatti részét is kirajzolhatjuk, ez mivel a teljes képernyőhöz képest kis terület nem lenne nagy veszteség szerintem.
Erre a gombra kattintva(érintve) jönne fel a toolbox (menüpontok, ha úgy tetszik).
A feljövő menüpontok is jó lenne, ha a DrawArea felett lebegnének, mert így a menü felugratása nem idézne elő (átméretezést és) újrarajzolást a DrawArea-n, tehát elvileg elég reszponzív lenne.
Tehát valami olyan gyermek ablak kellene, amit always on top paraméterrel keret nélkül jelenítünk meg. Egy ilyenre kerülne a nyomógomb és a felugró toolbox is.

Ezt hogy kell megoldani GTK#-pal?
A GTK# a GTK+ körül egy c# wrapper, tehát ha a GTK+-os megoldást tudod, az is ugyanúgy jó, át lehet alakítani GTK#-ra.

A GUI-t amúgy glade-del lenne a legjobb tervezni, tehát az lenne a legjobb, ha a glade-3-ban toplevel widget lenne a lebegő gomb és toolbox is.

Hozzászólások

Hm. Lehet en olvastam felre, de mar leirtad a megoldast :)

Egy uj toplevel window vagy widget kell, amit pozicionalsz a sarokba :) Azt hiszem meg lehet mondani egy window/widget -nek hogy hova is keruljon. Center, Left Corner, stb. Es automatice oda helyezodik ki.

Egy toplevel window-nak pedig meg tudsz adni parametereket, hogy pl latszodjon-e a cimsor, a statusbar, a menu, mekkora legyen a frame keret korulotte, stb.stb.

Ez a legkezenfekvobb megoldas. Meg lehet neki mondani hogy latszodjanak-e a bezaro, elrejto gombok, stb.

+ a main widgettel ami a drawarea tuti hogy ossze lehet kapcsolni valahogy.

De GTK+ API reference-t ajanlom olvasgatni :)

http://library.gnome.org/devel/gtk/unstable/index.html

Itt mindent megtalalsz. (Ez GTK# -hoz is jo csak figyelni kell a verziora. + arra hogy mit "portoltak" at mert lehet nem minden funkciot)

Udv
-krix-

>Hm. Lehet en olvastam felre, de mar leirtad a megoldast :)
Egy lehetséges megoldás vázát :-). Arra lennék kiváncsi, hogy ha valaki GTK guru ő hogyan csinálná.

>Egy uj toplevel window vagy widget kell, amit pozicionalsz a sarokba :)
Kérdések:
- csak toplevel window lehet-e
- van-e olyan toplevel window, amit a szülőjéhez relatív lehet pozícionálni, illetve a szülővel egyszerre eltüntetni (mert amit eddig csináltam teljesen függetlenül működik)? Vagy ezekre az eseményekre kézzel kell a szülő követését beprogramozni?