Skip to main content


Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Eclipse Projects » Standard Widget Toolkit (SWT) » [ANN] Non-native InternalShell implementation for SWT
[ANN] Non-native InternalShell implementation for SWT [message #451930] Fri, 11 March 2005 11:46 Go to next message
Stefan Zeiger is currently offline Stefan ZeigerFriend
Messages: 102
Registered: July 2009
Senior Member
Hello,

I've been working on a non-native implementation of InternalShell and
DesktopForm classes for SWT (like Swing's JInternalFrame or MDI internal
windows) which emulates the Windows Classic look. Some window styles are
not yet supported and minimization is not yet implemented, but apart
from this everything should work.

You can download the current version from http://www.novocode.com/swt/

--
Stefan Zeiger - Developer of Novocode Application Framework
Build SWT-based MVC GUIs via XML: http://www.novocode.com/naf/
Re: [ANN] Non-native InternalShell implementation for SWT [message #451931 is a reply to message #451930] Fri, 11 March 2005 11:56 Go to previous messageGo to next message
Benjamin Pasero is currently offline Benjamin PaseroFriend
Messages: 337
Registered: July 2009
Senior Member
Stefan Zeiger wrote:

> Hello,

Hi Stefan,

>
> I've been working on a non-native implementation of InternalShell and
> DesktopForm classes for SWT (like Swing's JInternalFrame or MDI
> internal windows) which emulates the Windows Classic look. Some window
> styles are not yet supported and minimization is not yet implemented,
> but apart from this everything should work.
>
> You can download the current version from http://www.novocode.com/swt/

Very interesting. What are the advantages using iShell in comparision to
non-modal Shells that have the main-shell
as parent?

Regards,
Ben
Re: [ANN] Non-native InternalShell implementation for SWT [message #451936 is a reply to message #451931] Fri, 11 March 2005 14:50 Go to previous messageGo to next message
Stefan Zeiger is currently offline Stefan ZeigerFriend
Messages: 102
Registered: July 2009
Senior Member
Benjamin Pasero wrote:

> Very interesting. What are the advantages using iShell in comparision to
> non-modal Shells that have the main-shell
> as parent?

It depends on the kind of application you're building. InternalShells
are interesting for MDI applications. These should be using sparingly
and cautiously, IMHO. If you're not sure whether to use SDI (one
top-level window per document) or MDI (one top-level window for the
application with an internal window for each document), go for SDI.
There are other uses for internal windows as well, e.g. GUI builders.

The main differences between top-level windows (with a parent window)
and internal windows are:

- Top-level windows are managed by the window manager, so they show up
in the task bar on Windows (or similar tools in other windowing
systems), internal windows don't (so you need to provide your own way of
switching between windows; this is usually done with a "Window" menu in
MDI applications).

- Top-level windows can be moved around freely on the whole desktop,
internal windows are clipped to the bounds of their desktop form.

- With a non-native implementation like mine (which may be the only
option on some platforms), internal windows use a built-in look & feel
for the decorations (good for branding) while top-level windows are
decorated by the window manager (good if you want a native l&f).

Let's get back to the GUI builder example. Such a tool could use
top-level windows for its own dialogs and internal windows for the
(internal or top-level) windows that you design. That way the internal
windows could be resized and even maximized in their desktop form while
still keeping parts of the GUI builder (e.g. a menu bar and a palette)
visible.

For complex applications with many document and tool windows, there's
still another choice: Views (non-overlapping internal windows), as used
by Eclipse and provided for your own applications by the RCP. This is
often preferable to an MDI design. It can also be combined with
overlapping internal windows by having a desktop form with overlapping
or maximized document windows in the center of the application window
and non-overlapping tool views at the sides.

PS: Take a look at Photoshop to see an awkward MDI interface. IMHO this
application could benefit a lot from a mix of overlapping/maximized
document windows and sidebar tool views.

--
Stefan Zeiger - Developer of Novocode Application Framework
Build SWT-based MVC GUIs via XML: http://www.novocode.com/naf/
Re: [ANN] Non-native InternalShell implementation for SWT [message #451942 is a reply to message #451936] Fri, 11 March 2005 15:18 Go to previous messageGo to next message
Benjamin Pasero is currently offline Benjamin PaseroFriend
Messages: 337
Registered: July 2009
Senior Member
Stefan Zeiger wrote:

> Benjamin Pasero wrote:
>
>> Very interesting. What are the advantages using iShell in comparision to
>> non-modal Shells that have the main-shell
>> as parent?
>
>
> It depends on the kind of application you're building. InternalShells
> are interesting for MDI applications. These should be using sparingly
> and cautiously, IMHO. If you're not sure whether to use SDI (one
> top-level window per document) or MDI (one top-level window for the
> application with an internal window for each document), go for SDI.
> There are other uses for internal windows as well, e.g. GUI builders.
>
> The main differences between top-level windows (with a parent window)
> and internal windows are:
>
> - Top-level windows are managed by the window manager, so they show up
> in the task bar on Windows (or similar tools in other windowing
> systems), internal windows don't (so you need to provide your own way
> of switching between windows; this is usually done with a "Window"
> menu in MDI applications).

Not sure how this is on other OS, but on Windows creating a Shell with a
Shell as parent does not show it in the
Task Bar or the Task Manager.

>
> - Top-level windows can be moved around freely on the whole desktop,
> internal windows are clipped to the bounds of their desktop form.

That's a good point.

>
> - With a non-native implementation like mine (which may be the only
> option on some platforms), internal windows use a built-in look & feel
> for the decorations (good for branding) while top-level windows are
> decorated by the window manager (good if you want a native l&f).

Another good point, though some might ask for a native look and feel
escpecially when the OS uses a Theme
that is very much different from the default one.

>
> Let's get back to the GUI builder example. Such a tool could use
> top-level windows for its own dialogs and internal windows for the
> (internal or top-level) windows that you design. That way the internal
> windows could be resized and even maximized in their desktop form
> while still keeping parts of the GUI builder (e.g. a menu bar and a
> palette) visible.
>
> For complex applications with many document and tool windows, there's
> still another choice: Views (non-overlapping internal windows), as
> used by Eclipse and provided for your own applications by the RCP.
> This is often preferable to an MDI design. It can also be combined
> with overlapping internal windows by having a desktop form with
> overlapping or maximized document windows in the center of the
> application window and non-overlapping tool views at the sides.
>
> PS: Take a look at Photoshop to see an awkward MDI interface. IMHO
> this application could benefit a lot from a mix of
> overlapping/maximized document windows and sidebar tool views.

Keep up the good work :)

Ben
Re: [ANN] Non-native InternalShell implementation for SWT [message #451982 is a reply to message #451942] Fri, 11 March 2005 19:49 Go to previous message
Stefan Zeiger is currently offline Stefan ZeigerFriend
Messages: 102
Registered: July 2009
Senior Member
Benjamin Pasero wrote:

> Not sure how this is on other OS, but on Windows creating a Shell with a
> Shell as parent does not show it in the
> Task Bar or the Task Manager.

Ah, sorry, you're right, of course. I'm not sure though how this works
with SWT on other platforms (especially with the myriards of X11 window
managers available).

But I forgot to mention another important difference:

- Only one top-level window can be active at a time. When you have
internal windows, one internal window is active _and_ the containing
top-level window is active. This allows you to tab from Controls in the
top-level window to Controls in the active internal window and vice
versa. You can also access the top-level window's menu accelerators
while working in an internal window.

--
Stefan Zeiger - Developer of Novocode Application Framework
Build SWT-based MVC GUIs via XML: http://www.novocode.com/naf/
Previous Topic:Icon & Text together on a button
Next Topic:filedialog extension filter
Goto Forum:
  


Current Time: Tue Sep 29 10:44:15 GMT 2020

Powered by FUDForum. Page generated in 0.03667 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software

Back to the top