[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-i18n
Subject: Re: draft+thoughts
From: Simon Hausmann <tronical () gmx ! net>
Date: 1999-02-25 18:32:46
[Download RAW message or body]
On Thu, 25 Feb 1999, David Faure wrote:
[...]
>> As I mentioned above: This way we'd loose our MainView as embeddable all-in-one
>> Konqueror part and replace it with an not-embeddable OpenParts MainWindow of
>> Konqueror (from the users point of view there's actually not difference, but
>> IMHO we still might want this all-in-one thing, right?)
>Yes, but then it's the GUI we want to embed, right ?
>How do we do it if it inherits from Kom::Base only (it's not a part, is it
>?)
I think we want to embedd the view. But this plain view, as is, wouldn't have
any GUI elements. Well, of course it _could_ have these by mapping the
eventCreate{Menu/Tool}Bar events, but we don't want that. Instead we create (or
use the mainview's one, depending on the way we use a view) a new GUI
implementation (most likely we use the Konqueror GUI, but theoretically it
would be possible for an app to provide it's own GUI for the Konqueror View) .
This GUI object first needs a part where it can "filter" out the two
eventCreate*Bar events (well, in fact it does not really filter them out via an
event filter but instead of the part itself, the GUI registers to the
*barmanagers of the mainwindow which actually send the eventCreate*Bar events).
And in addition a view has kind of GUI clients, the views. These views get
two events (see konqueror.idl) if they either get the focus as child part (of a
mainview) or if the GUI part gets the focus (then the eventCreate*Bar events
are sent to our GUI object ) . In the last case only the current active view of
course receives the two GUI/View related events to create their view specific
GUI elements.
>> >* views inside another MainWindow, inside another application.
>> No. (see above)
>I meant, for instance, a KPresenter View inside the MainWindow of kspread.
>(kspread being the 'application' as well).
Ah, oh, I'm sorry, it seems I misunderstood you. (and sorry if my statements
sounded angry or so, it was not my intention to offend you in any way. Please
forgive me :)
>But you're right, we need another 'layer' if we want to embed a whole
>konqueror GUI (= several views).
Yes, that's right.
I'll try to make a little drawing of how I think of these layers in regard to
the parts (this is only the mainwindow/parts hierarchy, not in view of the
Konqueror's GUI stuff) :
oooops, I spent about 15 minutes to draw this in kmail.... without success :(
But I attached it (after I did it with another editor) .
Comment to this drawing:
a) the konqueror view does not really have to be embedded at the level of the
mainwindow. In fact it doesn't matter _where_ it gets embedded, one will always
use an OPFrame to do this, so for example the konqueror main view might be
embedded in a part as well (this is the way KOffice does it, except
KoShell) .
b) The htmlview and the treeview are child parts of the konqueror main view
(this is important) . And as often explained: On activation of these parts
the part will get the focus and the parent (=in this case the mainview) will be
notified about this via an event. In our case this event will be filtered by
the Konqueror GUI implementation which tell the view(=part) to build it's
view specific GUI stuff.
This is my idea of the layers.
Or did I miss anything, David?
>Something else : you didn't make a common parent for IconView and TreeView
>(both relate to file management and have a lot in common)
Yes, that's a good idea.
What common stuff did you think of for example?
>Is it possible to have a common parent in C++ and not in the IDL interface
>?
Yes, that's no problem.
And in fact I did this for all views: All Konqueror Views (on c++ level)
inherit from a class called KonqBaseView (not visible as IDL interface)
which contains some common code.
(oooopps, I perhaps didn't tell you: I already started to work on the basic
skeleton code. If anyone has any objections against the current design
following David's proposal number one and my IDL draft please
>> SPEAK UP NOW << :)
Otherwise I will put the not-really-doing-anything-yet code in CVS ASAP so that
everybody can help creating the new konqueror.
Is this ok?
)
>If not, the IDL needs to be modified I think.
*agree*
I already did some other modifications, too.
Byebye,
Simon
--
Simon Hausmann - Tronical^Colorfast - <tronical@gmx.net> - IRCNet #colorfast
we have joy, we have fun, we have linux on our sun
["bad_drawing.txt" (text/english)]
the "hosting" mainwindow
/-------------------------------------------\
| |
| /----------\ /------------------------\ |
| | any part | | yap (yet another part) | |
| \----------/ \------------------------/ |
| |
| /---------------------------\ |
| | our konqueror mainview | |
| | | |
| | /----------\ /----------\ | |
| | | htmlview | | treeview | | |
| | \----------/ \----------/ | |
| | | |
| \---------------------------/ |
| |
\-------------------------------------------/
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic