Meeting on irc.gnome.org:#gtk-devel Meeting started September 27 2005 16:00 EDT In attendence: Kristian Rietveld (kris) Tim Janik (rambokid) Matthias Clasen (matthias) Alex Larsson (alex) Johan Dahlin (jdahlin) Jonathan Blandford (jrb) Thorsten Schoenfeld (kaffee) Shawn Amundson (Snorfle_) welcome all ehlo krismaster. matthias might be a few minutes late; (matthias should show up real soon now) there he is fresh from the bike and without an agenda what do we need to talk about ? do we have a schedule for the next 2.8 releases? http://people.redhat.com/alexl/files/offscreen3.html Here is my latest cool screen capture :) kris: one went out today... kris: I would expect to do the next one in 6-8 weeks ok i know one went out today, but was wondering if there was a target date for the next release or whether we would just spin a release once needed matthias: is owen gonna be around for the meeting today? alex: I don't expect him to ok alex: mail is the best way to reach him currently (even for us) ok I wanna discuss the Gdk stuff i'm working on and i think he's still the one who knows that sort of things best alex: does that make sense without owen, or should we specifically invite him to a meeting about that topic ? matthias: i'll mail him for some opinions first. Maybe we can have a meeting about it later. sounds good I have an item for the agenda, a name for GladeXML alex: so, what does your demo show ? I only see a black square, due to lack of a plugin... and the name for an interface which provides additional information about constructable objects (such as how to add a child) matthias: it's pretty sweet. It shows rotated widgets interacting with the moused matthias: some widgets, and a GtkHScale that lets you rotate some of them alex: do you generate your own crossing events? rambokid: yeah Sep 27 16:16:00 * matthias remembers that from playing with Fresco 10 years ago... rambokid: pain in the ass.... rambokid: especially with grabs... alex: yeah, mitch said they once had to cook that logic up for the FB port alex: that might still be sitting around somewhere. rambokid: I've already done it once for the linux-fb port we might need xserver-in-a-lib rambokid: so, i had both code that i could use and some idea how it works There are some issues though for instance, take the GtkComboBox popup menu it calculates the menu position by taking the root-origin on the top-left corner of widget->window and adding widget->allocation.x/y Now, if the widget is not axis-aligned this isn't really right... alex: that gives you the untransformed position alex: there should be a generic position calculation function in gtk that can deal with this. half-transformed. The root-origin is using the transform this kind of logic has been replicated in a LOT of places, even in third party apps rambokid: yeah alex: you could transform the displacement vector matthias: atm i have a signal on the GdkWindow that you can hook up to to add your own window-to-parent-coord transform. matthias: that would need changes to e.g. GtkComboBox though and everyone gets it wrong since menu popup positions/dimensions need to be bounded by monitor dimensions, and special hacks are involved to sync this with option menu offsets, etc, etc (the default signal handler does the standard child position transform) it would be nice to have an exported positioning function that can handle the few things that are generally needed like clamping to monitors, popping above/below a widget, etc alex: wouldn't it make sense to implement the concept of a virtual desktop that does positioning if drawing multiple windows offscreen? rambokid: i'm not sure what you mean alex: well for real windows, you have a desktop/rootwindow and a window manager that takes care of the positioning. for drawing offscreen, it's kinda hard to tell where the windows go (all 0,0 would be insane for instance). so you could implement some kind of window manager positioning logic which behaves as if the offscreen windows were positioned on a virtual desktop. You're talking about toplevel windows here? Composite and the compositing manager have this issue. ATM Composite only allow you to use the "standard transform", ie. the one using the normal window coordinates keithp supposedly have a plan how to get more general tranformations working, but i haven't seen it alex: hm no. i thought you just had toplevel positioning problems with your offscreen windows (toplevel ones of course), with the corresponding _Get_root_origin. jdahlin: what does the current patch use (for names) ? matthias: GtkObjectBuilder and the interface is called GtkConstructable matthias: what's this for? wouldn't it be better if the two names matched? (GtkObjectConstructor + GtkConstructable or GtkObjectBuilder + GtkBuildable) rambokid: The way i implement gdk_window_get_origin() is, take the gdk_window_get_origin() of the non-offscreen parent of the offscreen window, then add the back-transformed coordinates of the window in relation to the toplevel offscreen window. The transformation is user-specifiable, so in general it would be handled by the canvas widget using the offscreen windows. rambokid: libglade functionality kaffee: definitely alex: ah, i didn't know you were tying this to a an onscreen window. ok, and what's builder respectively buildable doing? matthias: is this a component in its own respect or will it actually use/include libglade code? builder constructs objects from xml/gmarkup buildable provides additional information needed by builder, constructing, setting name, attaching children jdahlin: what's buildable technically? an interface? implemented by what? rambokid: I think an interface, not sure if it's possible yet eg, it's not written yet in the python prototype I've used an adapter jdahlin: yeah, but who would iplement it? i.e. supply this functionality? rambokid: GtkWidget would implement parts of it, GtkContainer other parts adapter yeah, i see. jdahlin: where would the xml come from? rambokid: a buffer or from disk jdahlin: well how's it produced? rambokid: in a user interface designer, such as glade and the designer is not supposed to be part of gtk? rambokid: for all practical purposes, glade is part of GTK right now jrb: it's not shipped with it/gtkbuilder, so the question still stands. sure, as soon as matthias accepts pygtk to be included rambokid: it's not an interesting question jrb: oh it is, for multiple reasons. rambokid: there are at least 3 independent .glade file creaters out there. jrb: like libglade, glade and libglade2? glade-2, glade-2, gazpacho, stetic sorry, glade-3 please add to agenda: website changes the thing is, either you're going to ship an xml creator with gtk, or you get to standardize the xml somehow. jdahlin: i wrote such a builder component already for beast, the xml there is optimized to be easily written by hand. rambokid: for better or worse, the .glade format is pretty mature rambokid: I don't see how we could accept a libglade-alike in gtk without defining the xml format jdahlin: what i did for the buildable part was attaching function tables to types, and i'm even supporting "adding children" there which are objects which is usefull in a couple szenarios (the most obvious reason is canvas items) rambokid: xml & easily written by hand does really go well together (actually, it's a giant PITA in practice) rambokid: where can I find this code? jdahlin: so we might want to take that part to private mail, so you can look at some of the work i've done there/concepts i've used which may be interesting for your take. as for the GUI building component, a couple apps are emerging that support basic GUI building functionality and currently this is duplicated across projects. so it might not only be ineteresting to ship a builder with gtk, but to support GUI building as a library component, usable by applicaitons. if an xml based builder component goes into gtk, a GUI building lib obviously should be in sync with that builder functionality. matthias: i don't quite understand your point about libglade-alike, can you rephrase that please? jrb: enough reason for thorough review if your going to move this into a standard supported by gtk. at least that'd be my take opn it. rambokid: I don't think we can support generating UI from an xml format without defining the xm format rambokid: GxkRadgetType seem very similar to what I had in mind jdahlin: the code is as i said in beast, but you probably want a bit of more private chit-chat about this to understand what i did there. matthias: ok yes, agreed. i do think that having a somewhat more formal definition of that xml format than just "it's what libglade uses" would be good in terms of compatibility and reliability. rambokid: yes, "what libglade uses" doesn't cut it as a definition jdahlin: yes, it's the radget code. dunno, the funtions might even be partly documented on the beast website at this point. matthias: ok, agreement there ;) ok, Snorfle_ mentioned the new website / web server, so let me mention it here: http://beta.gtk.org did we agree on any names? jdahlin: I didn't see any new proposals jdahlin: (ignoring GxkRadget...) oh, and for examples of where third party apps need GUI builder funtionality, toolbar editing, menu editing are already wide use examples. and work also is underway to support simple dialog design from properties of plugin networks (a couple other music programs are also working on this). the Screenshot page links to screenshots of 2.4 -- maybe 2.10 or even 2.12 would be better. my current plan for the website is to update the look to what is reflected on beta.gtk.org currently matthias: the current list: Gtk(Object|Widget)(Builder|Constructor|XML|Glade) (GNOME 2.4, that is.) jdahlin: from what i understood so far, GtkBuilder and GtkBuildable makes sense to me. jdahlin: online docs: http://beast.gtk.org/beast-gxk.3.html#fnindex-70 rambokid: I wanted to use an interface, but it seems to be tricky to make it work for the actual construction Snorfle_: the image boxes on the success page overlap the text boxes of different nodes here. jdahlin: I think owen was slightly unhappy with GtkBuilder, but I don't recall his objections kaffee: is the behavior the same on www.gtk.org? Snorfle_: yes. Snorfle_: same here GtkBuilder isn't awful, though it isn't terribly descriptive Is the object really a factory / builder? It corresponds to one resource file right? I think that is on purpose, but I didn't write that page jdahlin: right, the function table GxkRadgetType works better there. i don't think this can be properly objectified with the GObject framework unless you create a dedicated function object which would just be an API wrapper around a function table like GxkRadgetType. Snorfle_: on the team page, Søren's umlaut isn't displayed correctly. (that doesn't happen on gtk.org) kaffee: the don't overlap here, firefox resize the text layout as the images appear. this should be tested with IE though... the CSS is not written from scratch (it is public domain) and seems to have a lot of effort working in IE rambokid: hrm, not for me. (firefox 1.0.7) Snorfle_: well we do have regular windows users though. kaffee: oh, it's actually over the text, not just the boxes? rambokid: I can test in IE as well Snorfle_: nope, just the boxes. the text gets wrapped properly. kaffee: where is the team page? in the upper right there's a link. that might be a hint that those two links aren't terribly well discoverable. agreed however, the goal isn't to keep the site like this long-term. The goal is to clean it up enough that we have a base which validates so we can make small incremental changes as time goes on. well soeren really doesn't look good there ;) prolly iso vs. UTF-8 again. you think if I switch it all to UTF-8 that will go away? yes I'll do that. Snorfle_: yep. any content you have (docs etc.) are going to be utf-8 anyway (and i18n maintainer names) Snorfle_: couldn't the green of the menu on the left be the blue of the top bar? Snorfle_: and, does it actually have all the content that www.gtk.org has? (with all its boxes etc.) rambokid: so they are both blue? Snorfle_: no the menu is green and i don't lik ethe green ;) Snorfle_: oh you mean as outcome? yes, make both blue. rambokid: I didn't realize you were anti-green :-) that has some odd conotations... ;) heh matthias previously commented text size being too small, but I think it's the same as wikipedia and some other sites rambokid: talk tigert or one of the other graphics gurus to design us a nice look :-) Snorfle_: or maybe we shouldn't use colorized backgrounds at all for important text (such as menus): http://beast.gtk.org/wiki:UsabilityGuidelines#colors Snorfle_: well, who's responsible for beta? though in this case, the color is the only hint about the text being links rambokid: I am Snorfle_: i mean for the graphical design of beta. rambokid: I ripped off some CSS and did the work myself to get the current look and i agree with matthias on too small text size. Snorfle_: ah, then i don't need to really talk to tigert to change the design ;) (he appears to be way overworked tehse days anyway) rambokid: I mean, let's get someone besides me to design it and it would look better but, I think it beats the previous attempt from 5 years ago my goal is to switch this over on thursday or friday of this week so I can start looking at things like site design instead of html/css some content is missing from the old site, though, e.g. the boxes on the right "Origins" the "hard" parts will probably be the faq and tutorial "Origins" was deleted on purpose, and the other links are to old release announcements Snorfle_: "switch" means save the old site and copy over contents from beta to wilber? Snorfle_: I agree that the other box is outdated and should go, but why remove the "Origins", that seems to be useful information ? switch will involve migrating www.gtk.org to the cube.gtk.org; currently it runs on wilber.gimp.org. Snorfle_: we need the 1.0 announcement still inked there! ;) Snorfle_: where's cube located? and, was there consensus about moving the actual site at some point? rambokid: I don't think we have th 1.0 announcement on www.gtk.org, do we ? matthias: no ;) but 1.0 was a *lot* of work. yeah, shutting up already. just grandpa's ramblings... ;) rambokid: we did discuss cube previously Snorfle_: i think i remember the discussion but not the consensus. rambokid: one could move the contents of the "Origins" tab to a "History" page, that would be a nice place for the 1.0 announcement rambokid: it is located on the University of Minnesota network very close to the servers which first housed the original gtk webpage and faq rambokid: the hardware was paid for by me matthias: i was just kidding. but yes, a history page makes sense. rambokid: is there objections? s/is/are/ matthias: I like the idea of a history page Snorfle_: i think owen wasn't fully convinced. and my personal concern is that for wilber we got yosh doing maintenance for 7+ years now, and he's pretty reliably around, while i'm not sure that's the same case of r cube. Snorfle_: and of course we (i) don't have accounts on cube. at least not yet. yosh has access to cube and I will create accounts as needed I've also been maintaining the box since january; patches, updates, etc. Snorfle_: well, can you send a announcement of intention (email) and make sure to cc the relevant maintainers? i.e. owen, matthias, yosh, me, ... so if there are any issues left, people can speak up? Snorfle_: that way you can move the site if there aren't any other issues raised. sure, sounds like a plan Snorfle_: maybe cc-ing gtk-devel on the heads up would be appropriate? other than that, i'd really like to have dinner now and go to bed. so any other issues left? no, I need to go too, lets close the meeting I'd rather a private beating than a public one :-) jdahlin: you catch me on irc or email if you have further questions...? Snorfle_: ok, will raise gtk-devel as an issue then if its important ;) mmm beatings see you next week, bye Meeting ended September 27, 17:30 EDT