On Wednesday 13 December 2006 13:45, Marco Gerards wrote: > I am not offensive at all, why would I be? I am merely saying that > your reply is on a part of the email that I do not consider relevant, > while the relevant part is ignored, at least in your reply. I just > hope you will react on the other part as well, when you have the time.
Then please just say that. I am quite nervous at the word "ignore". ;) > Well, what I proposed is using hooks so you can program the behavior > instead of describing it in some kind of syntax. A scripting language > is always more expressive than syntax (like arguments as Hollis > proposed, or your style sheet). > > But I do think your style sheet proposal is useful, for example for > defining the visual layout of the menu. Perhaps it can also be used > someway to communicate with the scripts behind the hooks. But I do > not think it is useful to describe behavior in the style sheet because > this is what scripts are for. Can you describe some examples besides "beep"? I find it difficult to recognize what you mean by "behavior". I continue by guessing. First, it is better to define my own definition of "behavior". This is complicated, because it is possible to say that everything is "behavior" in a sense. For example, when you push a down key, the selected entry goes down. This is a behavior. When the selection changes, a previous entry stops showing a highlight color (behavior), and a current entry starts showing a highlight color (behavior). The ultimate way is to implement all the "behaviors" with the scripting engine. But I feel that this is overkill, and I guess you agree with this. I guese we do not want to do everything in scripting. For me, things classified into "behaviors" are what the boot loader executes for entries in order to transfer control to an operating system at a point. In this definition, highlighting entries is not a behavior, because it has nothing with booting or executing something. Beeping is not a behavior, either, because beeping itself does not perform anything to boot. Actually, beeping when an entry is chosen is quite analogous to highlighting. This was my point in the previous message. I like to call this "appearance" rather than "behavior". When the user tries to express a certain "appearance", her ability is limited to within functionality exported from GRUB. This is not different from hooks, because GRUB must export, for example, commands to allow her to express it. Now let's see how HTML works. When you want to make a change dynamically with corresponding to a click, you write a script expression with, for example, onSelect. Then, the expression changes a style sheet or an attribute to a tag or a class or something, if you want to change the appearance. We have at least two choices in GRUB. One way is to mimic HTML+CSS+JavaScript. In this case, we provide a hook which is executed by a user action, and we write some script to control the style sheet. This should work definitely. But I have another way, that is, specifying what happens only in the style sheet, like a:hover in HTML. Personally, I prefer the latter to the former. The latter is simple. All the user should take care of is the style sheet. The user does not have to wander around. Then, why does HTML offer this chimera technique? The reason is partially historical. Originally HTML was extremely static, and they added more and more features later, so it gets to the current situation. But another reason is that scripting can do more than changing appearance. For example, loading new data from a server, and insert new rows into a table. This kind of "behavior" is very hard to express with a style sheet. Thus it makes sense to use scripting for this purpose. So the question is how much we want to make GRUB dynamic. If you just want to execute arbitrary commands when executing an entry, you can write commands in the entry itself. No problem. But, for example, if you want to insert new menu entries when only selecting an entry (selecting means just moving a cursor on an entry here), you cannot do this only with a style sheet. I myself don't need this amount of dynamism for my own use. I prefer that the content of a menu is static. But others might think of different characteristics for something that I cannot imagine at the moment. So, what is your idea about this, Marco? Okuji _______________________________________________ Grub-devel mailing list Grub-devel@gnu.org http://lists.gnu.org/mailman/listinfo/grub-devel