
Hi all, after some correcting comments, I added a summary which I would like you to have a look at. It's in the same document at: http://www.cs.ukc.ac.uk/people/staff/as49/poll.pdf Thanks, Axel.

On Sun, 16 Feb 2003 15:13:53 +0000
Axel Simon
I added a summary which I would like you to have a look at
I have read the summary, and there is one point I do not completely undestand: the one named "look and feel". Did you mean that we cannot achieve native look and feel, and so we shall enable the user of the library to achieve native look and feel if he wants? I think that by well-defining the in-famous high-level interface, one could solve the problem, but it will come later. As a second point, we have to design the interface so that it's implementable for new backends that could come (but I cannot think of a way of NOT enabling this). V.

On Sun, Feb 16, 2003 at 04:37:15PM +0100, Nick Name wrote:
On Sun, 16 Feb 2003 15:13:53 +0000 Axel Simon
wrote: I added a summary which I would like you to have a look at
I have read the summary, and there is one point I do not completely undestand: the one named "look and feel". Did you mean that we cannot achieve native look and feel *on all platforms* , and so we shall enable the user of the library to achieve native look and feel if he wants?
Oh no, the point should be: If you use the Common API you will (automatically) get applications which have a native look-and-feel. I think I confused you when I wrote: "We cannot achieve native look-and-feel by using a single cross-platform API ..." I meant back-end instead of API and wxWindows in an example. Thanks for pointing this out.
I think that by well-defining the in-famous high-level interface, one could solve the problem, but it will come later. This should be in the Common GUI API.
As a second point, we have to design the interface so that it's implementable for new backends that could come (but I cannot think of a way of NOT enabling this). I think this is the argument by Peter Aachten ("Object I/O is portable by design") which is later opposed by Krasimir ("Haskell's Object I/O library is too Windows specific as it is"). I added this pointer.
I update the document. Thanks for the early comments, Axel.

On Sun, 16 Feb 2003 17:12:54 +0000
Axel Simon
Oh no, the point should be: If you use the Common API you will (automatically) get applications which have a native look-and-feel.
I think there is a more tecnical aspect to discuss and that perhaps could be added to the summary if people agree. Macos X has a notion of "application" and one of "document", and when one closes the last window of an application, the application is still running. On windows, OTOH, it's (at least it was) common pratice not to open a second instance of an application, but a new document instead, for every run of the program. On linux, there is the well known behaviour of creating a new unix process, and a new instance of the application, for every execution of the program. This behaviour is however abandoned by gnome, kde and mozilla I guess, so it could have been a mistake; this could be argumented by observing that emacs itself has a client-server option. Maybe having separate instances is just easier on unix (avoiding the plethora of servers that are started in kde and gnome, for example, which sometimes don't work and don't let you create new applications. Yes, with this consideration I am voting for separate processes). The real problem is that linux does not have (if it ever has only two looks) a native feel, so one should be chosen before we start working. To get back on what I was talking about, if we want the common API to achieve real look and feel, we ought to have an "application" abstraction, wich is different from the "window" one. So an application could behave really different in any OS. On OSX, the menus of the documents of the same application will have to be in a submenu of the main menu for the application, and items like "exit" wich are not in the file menu (at least, I think I have heard so :)) need to be part of the "application" abstraction, as do the common items wich are found in the "help" menu. Vincenzo -- First they ignore you, then they laugh at you, then they fight you, then you win. [Gandhi]

On Sun, Feb 16, 2003 at 06:41:55PM +0100, Nick Name wrote:
On Sun, 16 Feb 2003 17:12:54 +0000 Axel Simon
wrote: Oh no, the point should be: If you use the Common API you will (automatically) get applications which have a native look-and-feel.
I think there is a more tecnical aspect to discuss and that perhaps could be added to the summary if people agree. Yes, indeed. I am indeed lagging with my document since this technical discussion has already started. But before we define the details, we should probably define the core of the library (Yahu / Object I/O approaches) and then discuss:
Macos X has a notion of "application" and one of "document", and when one closes the last window of an application, the application is still running. On windows, OTOH, it's (at least it was) common pratice not to open a second instance of an application, but a new document instead, for every run of the program. On linux, there is the well known behaviour of creating a new unix process, and a new instance of the application, for every execution of the program. a) the SDI/MDI/NDI problem which Krasimir has raised on Jan 28
[..]
To get back on what I was talking about, if we want the common API to achieve real look and feel, we ought to have an "application" abstraction, wich is different from the "window" one. So an application could behave really different in any OS. On OSX, the menus of the documents of the same application will have to be in a submenu of the main menu for the application, and items like "exit" wich are not in the file menu (at least, I think I have heard so :)) need to be part of the "application" abstraction, as do the common items wich are found in the "help" menu. b) the application startup that enforces one menu bar and c) default menu entries (Exit on Windows, Quit on Mac - but the same thing in the Common GUI API)
I will try to keep up with the discussion! Axel.

On Sunday, 2003-02-16, 18:41, CET, Nick Name wrote:
[...]
The real problem is that linux does not have (if it ever has only two looks) a native feel, so one should be chosen before we start working.
I would prefer having the different desktop environments as look-and-feels under Linux as well as under other UNIX-like OSes. It would be ugly, for example, to force a KDE application onto a GNOME user.
[...]
Wolfgang

On Sunday, 2003-02-16, 16:13, CET, Axel Simon wrote:
Hi all,
after some correcting comments, I added a summary which I would like you to have a look at. It's in the same document at:
http://www.cs.ukc.ac.uk/people/staff/as49/poll.pdf
Thanks, Axel.
Hello again, some mails ago I already talked about the two interpretions of "level": (a) functional (high) vs. imperative (low) (b) high level GUI concepts (e.g., common dialogs) vs. low level GUI concepts (e.g., single widgets or even drawing primitives) Opinion 4c currently says that the common API shall be at a higher level than the (L) interface. A problem is that it is not clear to which meaning of "level" this refers. I definitely meant that the common API shall be high-level with respect to (b). Another point is that I didn't want to talk about differences between the "common API" and the (L) interface. In fact, I wanted to say that already the (L) interface should be high-level in the (b) meaning. Otherwise it would be hard or impossible to implement a native-look-and-feel (A) interface on top of it. If, for example, (L) didn't support file open dialogs directly, (A) would have to build them itself which would probably lead to dialogs which are different from the platform specific ones. So I would rephrase 4c as follows: to achieve native look-and-feel on each platform, the common API shall provide support for high-level GUI concepts like common dialogs or applications, not only for widget structures Furthermore, in section 2 (objectives) you talk about the platforms "the community is interested in". Does this mean that this covers all platforms someone from the community is interested in or that it covers only those platforms most people of the community are interested in. If the former is the case, I would like to see KDE added. I favor KDE for the following reason: For me, it is very important to have a consistent user interface and a good integration of the different applications. Under Windows and even more under Mac OS (X) this is standard but under UNIX systems it is not. To achieve this under, for example, Linux, you have to use a desktop environment, not just a common GUI toolkit. For me, the best choice here is KDE because: * it is free * it provides a lot of functionality (compared, for instance, with GNOME) * it provides strong integration (again, compared, for instance, with GNOME) Best wishes, Wolfgang

On Sun, Feb 16, 2003 at 06:37:10PM +0100, Wolfgang Jeltsch wrote:
Hello again,
some mails ago I already talked about the two interpretions of "level": (a) functional (high) vs. imperative (low) (b) high level GUI concepts (e.g., common dialogs) vs. low level GUI concepts (e.g., single widgets or even drawing primitives)
Opinion 4c currently says that the common API shall be at a higher level than the (L) interface. A problem is that it is not clear to which meaning of "level" this refers. I definitely meant that the common API shall be high-level with respect to (b). Another point is that I didn't want to talk about differences between the "common API" and the (L) interface. In fact, I wanted to say that already the (L) interface should be high-level in the (b) meaning. Otherwise it would be hard or impossible to implement a native-look-and-feel (A) interface on top of it. If, for example, (L) didn't support file open dialogs directly, (A) would have to build them itself which would probably lead to dialogs which are different from the platform specific ones.
So I would rephrase 4c as follows: to achieve native look-and-feel on each platform, the common API shall provide support for high-level GUI concepts like common dialogs or applications, not only for widget structures Ok, I added a comment to the footnote in the Abstraction Level paragraph. Since this is supposed to be only a summary of opinions, I put your
Furthermore, in section 2 (objectives) you talk about the platforms "the community is interested in". Does this mean that this covers all platforms someone from the community is interested in or that it covers only those platforms most people of the community are interested in. If the former is the case, I would like to see KDE added. But I thought Qt represents KDE in terms of the user interface?! Or is
Yes, I think the term level on the Haskell web-site refers to (a). To me it is not clear that we have to restrict ourselves in term of (b): Of course, we need to support the native Open File dialogs instead of building our own, but even elementary thing like drawing onto a canvas could be made common to all platforms since they all use an "redraw-this-part" event-driven scheme AFAIK. Perhaps I can add a list of topics we can potentially cover and then see if it is achievable. paragraph into the preliminary "Mission Statement" section. this relation like Gtk-GNOME where GNOME provides more advanced widgets? I'll change Gtk to Gtk(GNOME) and Qt to Qt (KDE) then. Thanks for the comments, document update, Axel.

On Sunday, 2003-02-16, 19:12, CET, Axel Simon wrote:
[...]
Furthermore, in section 2 (objectives) you talk about the platforms "the community is interested in". Does this mean that this covers all platforms someone from the community is interested in or that it covers only those platforms most people of the community are interested in. If the former is the case, I would like to see KDE added.
But I thought Qt represents KDE in terms of the user interface?! Or is this relation like Gtk-GNOME where GNOME provides more advanced widgets?
KDE extends Qt in many ways and the user interface of a KDE application will in most cases differ from the one of a pure Qt application. It's not only that you have some more advanced widgets in KDE. The KDE UI stuff uses a lot of certain KDE core functionality. For example, file open dialogs use the file type and URI scheme handling of KDE. I want to say something concerning the URI scheme handling. In file open dialogs I can specify arbitrary URIs, not only file paths. For example, if I choose "open file" in KWrite, I can specify a FTP URI pointing to a text file. The text file is fetched via FTP and every click on the "save" button puts the current text via FTP to the server, so that I can work with remote files exactly like with local files. I think this is really cool!! In my opinion, it is very desireable to have this functionality available via the common Haskell GUI API. The GUI API would have to provide an abstract interface to reading and writing data which in the case of KDE would not necessarily be reading from and writing to files. Wolfgang
participants (3)
-
Axel Simon
-
Nick Name
-
Wolfgang Jeltsch