Subject: GTK-izing work?

From: Jason L Tibbitts III <[email-masked]>
Date: 12 May 1999 18:52:50 -0500

After the current traffic on the gnome-list about the "need" for a
Gtk-based window manager, I took a peek at FvwmGtk but I admit I'm not sure
I understand what it's supposed to do.

It would seem that the nicest thing would be for one config line to turn on
"Gtk-izing" and from then on Gtk variants of various things are used.  But
from the manpage it seems that you need to change every line that defines a
menu or a piece of a form, which seems suboptimal.

How much Gtk-izing is warranted?  Menus, forms, window list, sure.
Pager?  Just use Gnome's.  FvwmButtons?  Just use the panel.  Window
decorations?  I'm not sure a general-purpose widget set is useful for that
anyway.

What about Qt-izing?  (OK, it's rhetorical, but I think the point is
valid.)

 - J<
--
Visit the official FVWM web page at <URL:http://www.fvwm.org/>.
To unsubscribe from the list, send "unsubscribe fvwm-workers" in the
body of a message to [email-masked].
To report problems, send mail to [email-masked]

---

From: Matthias Clasen <[email-masked]>
Date: Thu, 13 May 1999 20:50:50 +0200

> menu or a piece of a form, which seems suboptimal.

I originally intended to do it as you suggest, but that is somewhat
incompatible with fvwms syntax for module configuration. Maybe one could
write a module to parse the whole rc file and look for menu definitions,
but you would also have to find a way to stop fvwm from interpreting them...

I decided that it would be simpler to use the standard module configuration
syntax. 

This has the drawback that switching between builtin and gtk menus is
not as simple as one might want. I could note that I posed the question
about turning the builtin menus into a module sometime back in january.
That would bring the builtin and gtk menu systems on an equal footing
and might lead to syntax unification. On the other hand, it might be
simpler to extend existing wm configuration tools like redhat's wmconfig
to spew out one more syntax.

> Pager?  Just use Gnome's.  FvwmButtons?  Just use the panel.  Window

I have to disagree here. Just stay with FvwmPager. The Gnome pager has
very poor functionality in comparison. If you configure the FvwmPager
to omit desk titles, it fits nicely in the panel when swallowed.

> decorations?  I'm not sure a general-purpose widget set is useful for that

I have my doubts too, but it might help for things like highlighting 
the part of the frame under the pointer. By the way, haven't there been
plans to experiment with drawing decorations from modules? Has anybody
started playing with that idea ?

> What about Qt-izing?  (OK, it's rhetorical, but I think the point is

I won't do it because I don't know Qt and don't like C++ too much,
but if someone else wants to try this, it might be worth to try and
keep the syntax compatible with FvwmGtk. Then it would at least be
possible to switch between Gtk and Qt menus with a one line change.

Matthias 

-- 
Matthias Clasen, 
Tel. 0761/203-5606
Email: [email-masked]
Mathematisches Institut, Albert-Ludwigs-Universitaet Freiburg
--
Visit the official FVWM web page at <URL:http://www.fvwm.org/>.
To unsubscribe from the list, send "unsubscribe fvwm-workers" in the
body of a message to [email-masked].
To report problems, send mail to [email-masked]

---

From: Matthias Clasen <[email-masked]>
Date: Fri, 14 May 1999 01:04:01 +0200

> > menu or a piece of a form, which seems suboptimal.
[...]

> to spew out one more syntax.

Well, you currently can't switch an old fvwm menu setup to Gtk with
a one-line change, but at least you can prepare new setups which allow
this and don't need wmconfig, m4 is enough. Here is a simple example:

dnl change the following line to define(`GTK') to get gtk menus
undefine(`GTK')

ifdef(`GTK',`
define(`MENU',`*FvwmGtkMenu $1')
define(`TITLE',`*FvwmGtkTitle $1 $2')
define(`DESTROY',`*FvwmGtkDestroy $1')
define(`ITEM',`*FvwmGtkItem $1 $2 $3')
define(`SUBMENU',`*FvwmGtkSubmenu $1 $2 $3')
define(`SEPARATOR',`*FvwmGtkSeparator')
define(`POPUP',`SendToModule FvwmGtk $1 $2')
define(`TEAROFF',`*FvwmGtkTearoff')
define(`GTKONLY',`$1')
',`
define(`MENU',`AddToMenu $1')
define(`TITLE',`+ ifelse($2,`',,`%$2%')$1 Title')
define(`DESTROY',`DestroyMenu $1')
define(`ITEM',`+ ifelse($3,`',,`%$3%')$1 $2')
define(`SUBMENU',`+ ifelse($3,`',,`%$3%')$1 Popup $2')
define(`SEPARATOR',`+ Nop')
define(`POPUP',`Popup $1')
define(`TEAROFF',`')
define(`GTKONLY',`')
')

dnl restart FvwmGtk if we're doing GTK stuff
GTKONLY(`DestroyModuleConfig *FvwmGtk*')
GTKONLY(`KillModule FvwmGtk')
GTKONLY(`Module FvwmGtk')
GTKONLY(`*FvwmGtkRCFile /usr/share/themes/marble3D/gtk/gtkrc') 

dnl define menus
MENU(Window-Ops)
ITEM("&Move","Move")
ITEM("&Resize","Resize")
ITEM("R&aise","Raise")
ITEM("&Lower","Lower")
SEPARATOR
SUBMENU("Ma&ximize","Maximize-Ops","mini-maximize.xpm")
ITEM("&Iconify","Iconify")
ITEM("&Shade","WindowShade")
ITEM("S&tick","Stick")
SEPARATOR
ITEM("&Up Layer","Layer 1")
ITEM("D&own Layer","Layer -1")
SEPARATOR
ITEM("&Destroy","Destroy")
ITEM("&Close","Close")
ITEM("&Kill","Kill")
SEPARATOR
ITEM("Reca&pture","RecaptureWindow")

MENU(Maximize-Ops)
ITEM("&Tall","Maximize on 0 100")
ITEM("&Wide","Maximize on 100 0")
ITEM("&Full","Maximize on 100 100")
ITEM("&Available","Maximize on grow grow")
ITEM("&Reset","Maximize off")

dnl bind the menus
Mouse 2 T N POPUP(Window-Ops,2)