Panel proposal (new)



hi,

Well, as we are talking about the panel, here is some ideas about its 
interface:

I feel that the panel misses some interface to allow the window manager and 
the file manager (more precisely, the part of the file manager which handles 
the icons on the desktop) to behave more cleanly when poping up new windows: 
no window should ever be poped up with its titlebar under the panel and no 
icon should appear under the panel. Also, the icons and the window manager 
should be told when the panel is moved so that they may update the windows 
location and the icon location. Here is an example:

I have netscape runnig on top of my 800x600 screen. I have a panel on the 
bottom. I move the panel on the top of the screen: the netscape window should 
get a little lower so that its titlebar is still visible and the desktop 
icons should also be lowered to reflect this change.

To achieve this, we could add the folowing to the panel interface:

module GNOME {
  interface Panel {
    typedef struct {
      long x1;
      long y1;
      long x2;
      long x2;
    } PanelLocation;

    readonly attribute PanelLocation the_location;
  };
};

This GNOME::Panel::_get_the_location function would allow programs to access 
the surface used by the panel and to take the relevant action as necessary. 
This would also make future support of a floating panel (not yet implemented 
but some pieces of the panel code tell me a contributor thought about it) 
much easier.
If we keep the Orientation hint, then, there is no need to keep the size hint 
which i don't like anyway: hardcoding the possible widths seems bad to me. I 
am probably wrong but...
The actual width would be calculated from the effective surface and the 
orientation hint.
This makes sense to me. I doubt no one ever thought to this so what is wrong ?

Last but not least, i had some small question about the panel use of the 
gtk_socket widget. 
1) Why using such a complex thing: a special widget, use of the construct ... 
Passing the gtkwidget from the applet to the panel would not work ?
2) Where could i find some sample -simple- code about the use of the 
gtksocket widget ?

Mathieu



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]