WM managed MDI (was Re: Three different tab implementations)
cullmann at babylon2k.de
Mon Feb 3 19:15:24 GMT 2003
-----BEGIN PGP SIGNED MESSAGE-----
> KEdit is an SDI application. In which way does kate offer (MDI/SDI related)
> functionality that is not part of KEdit?
> The anser to that question might bring insight to the additions that are
> needed to do WM-based MDI and/or the feasability of such approach.
My favourite thing is the spliting of view in one window, you get two views
near each other of equal width without having to mess around with window
movements and resizing.
Other nice thing is that you can use the fileselector in kate (the
kdiroperator in the sidebar) to browse your files and kate will only open a
file one time and if you again hit the same one (after you have opened some
over) let it come up as active view again. Cylcling through all documents,
the document list and more minor things like that are nice, too (but most of
this little things can be emulated by the WM, too, if it is knowing about
which windows belong to kate and which of them are documents to take in
But beside that, the biggest advantage of MDI over SDI is: speed
Kate supports plugins (which may dock widgets into its mainwindow, as allready
some do and which use xmlgui for the gui merging), has some additional
thingies like fileselector or (if ready for 3.2) some kind of project tree
(or better: collection of files which can be saved/loaded from a savefile).
All that is nice, but if you would have to open one mainwindow for each file
(like it would be in SDI), kate would be slow as a dog (same could be said
for quanta and kdevelop I guess, as they have at least as much stuff like
that as kate, no, they even have much more ;)
In short: If there would be a way to have a lib (if it uses the WM or not) to
1) tabbing of views
2) docking of views like seen in kate or konqueror sidebar (k, allready
possible via kdockwidget, but the undocked state should be reworked)
3) enable a kind of splitting the view (which would resize the current view
window and place a equal sized one to the right/left/top/bottom of it)
4) enable "toplevel mode" as called in kdevelop (which means one window for
the menu/toolbar/statusbar and one window per view or toolwidget)
I think most apps which uses atm their own mdi code could use this lib.
Perhaps I missed some stuff, never said that I am the mdi expert ;) Falk
should know more, as he designed the qextmdi lib, which is IMHO a nice
example for how to handle the stuff libwise (k, don't use WM and maybe not
completly bug free, but playing with the different MDI modes in kdevelop at
least gives you a expression of what is doable & wanted, only splitter mode
is not in qextmdi, or ?).
Only one important note: for some apps it is not possible to rely on kwm as WM
I guess, therefor the libs really needs to work even if the WM doesn's
support the whole tabbing/splitting/... stuff. That could be quiet tricky I
guess, but kdevelop or quanta would need that, as they are very heavily used
outside kde environment.
KDE Developer, kde.org Co-Maintainer
http://www.babylon2k.de, cullmann at kde.org
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.1 (GNU/Linux)
-----END PGP SIGNATURE-----
More information about the kde-core-devel