All of lore.kernel.org
 help / color / mirror / Atom feed
From: Michal Suchanek <hramrach@centrum.cz>
To: The development of GRUB 2 <grub-devel@gnu.org>
Subject: Re: [GITGRUB] New menu interface (implementation)
Date: Fri, 9 Oct 2009 19:27:51 +0200	[thread overview]
Message-ID: <a5d587fb0910091027k3744e2e7wd6944b9c10197614@mail.gmail.com> (raw)
In-Reply-To: <ca0f59980910090948y7a3a179cjfc165ec49d19b767@mail.gmail.com>

2009/10/9 Bean <bean123ch@gmail.com>:
> On Sat, Oct 10, 2009 at 12:29 AM, Michal Suchanek <hramrach@centrum.cz> wrote:
>> 2009/10/9 Bean <bean123ch@gmail.com>:
>>> On Fri, Oct 9, 2009 at 11:57 PM, Michal Suchanek <hramrach@centrum.cz> wrote:
>>>> I am suggesting an interface that allows style commands like
>>>>
>>>> style {
>>>>
>>>> (class==button).(text==OK) { <style> }
>>>>
>>>> (class==dialog).<nothing here>.(class=button) { <style> }
>>>>
>>>> (class==buttonbar) { direction = right_to_left }
>>>>
>>>> (class==button) {
>>>>  border_top = button_top
>>>>  border_left = button_left
>>>>  ...
>>>> }
>>>>
>>>> }
>>>>
>>>> for
>>>>
>>>> panel { class = dialog ; direction = top_to_bottom
>>>>  panel {
>>>>   scroll = auto
>>>>    text { Blah blah blah... }
>>>>  }
>>>>  panel { class = buttonbar ;
>>>>  panel { class = button ; img { check.png } ;text { OK } ; command =
>>>> <something> }
>>>>  panel { class = button ; img { cross.png } ;text { Cancel } ;
>>>> command = <something>}
>>>>  }
>>>> }
>>>>
>>>> The exact syntax and semantic of the selectors it to be defined.
>>>>
>>>> They may be imperative commands that are applied immediately to all
>>>> widgets currently in existence or they may be stored in a style
>>>> database that widgets consult each time they are drawn or some
>>>> combination of the above (for example the style commands affect a
>>>> style database in order of appearance but do not affect widgets
>>>> directly).
>>>>
>>>> I guess the styles that appear in the main config (grub.cfg or loaded
>>>> by loadcfg) should be added together so that scripts that generate
>>>> different parts of the file can add style bits for their widgets.
>>>>
>>>> loadstyle command should reset all widget style properties to default
>>>> (either widget default or the state after loading config) and then
>>>> interpret the content of the file as if it was enclosed in style {}.
>>>>
>>>> When loadstyle is repeated the widgets should be reset again so that
>>>> previous style cannot affect the newly loaded style.
>>>
>>> Hi,
>>>
>>> Perhaps it can be written like this:
>>>
>>> class {
>>
>> perhaps this should be
>>
>> style {
>>
>>>  button.text_OK { <style>}
>>
>> text_OK is quite ugly for a selector that specifies that the property
>> text should be equal OK.
>>
>> What if the text contains a space or underscore or the property
>> contains underscore?
>>
>>>  dialog.*button { <style> }
>>
>> perhaps this should be
>>
>> dialog.*.button
>>
>> meaning there is one element in between or
>>
>> dialog.**.button
>>
>> meaning there can be zero or more elements in between {which is sorely
>> missing from CSS}
>
> Hi,
>
> Do we need to distinguish the situation that exactly one element is in
> between ?
>
>>
>>>  buttonbar { direction = right_to_left }
>>>  button {  border_top = button_top  border_left = button_left }
>>> }
>>>
>>> panel { class = dialog ; direction = top_to_bottom
>>>  panel {
>>>   scroll = auto
>>>    text { Blah blah blah... }
>>>  }
>>>  panel { class = buttonbar ;
>>>  panel { class = button ; img { check.png } ;text { class=text_OK } ;
>>> command =<something> }
>>>  panel { class = button ; img { cross.png } ;text { class=text_Cancel
>>> } ; command = <something>}
>>>  }
>>>  }
>>>
>>
>> This resolves the syntax issue somewhat but there is still problem
>> with the order in which the rules are applied.
>
> We can first try parent*class format, from near to far, then class
> itself. If class is not set, use the widget name, for example, in the
> following config:
>
> panel
> {
>  class = aa
>  panel {
>  class = bb
>  panel {
>    text { class=cc id=text1 }
>  }
>  text { id=text2}
> }
>
> We scan the following section in order:
>
> text1:
> bb.cc
> bb.**.cc:
> aa.*.cc
> aa.**.cc
> cc

I would guess it should be

* /* everything */
text /* = **.text */
cc /* class specified */
aa.**.text
aa.**.cc
bb.**.text /* nearer start*/
bb.**.cc
aa.*.text /* less starry */
aa.*,cc
bb.text
bb.cc
aa.bb..text /* more elements specified in the path */
aa.bb.cc

meaning that a property can be set by any of the above but the later
styles (lower in the list) can override properties set earlier.

This is similar to what X props or CSS would do - the resulting
properties do not depend on the order of styling in text but on how
"specific" the selector is.

This requires a style store separate from the widgets but likely
results in somewhat tidier and better predicatble behaviour than
setting the properties directly on the widgets. The separate style
store also means that you can save the state before loading a style
and reset it later quite easily.

Overriding styles in this system is problematic, that's why the
properties should be reset when a different style is loaded.

The properties set directly on the widgets should be probably
consulted first, before the * style, and it should be possible to
restore them when the style is changed.

Thanks

Michal



  reply	other threads:[~2009-10-09 17:28 UTC|newest]

Thread overview: 175+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-09-16 20:55 [GITGRUB] New menu interface (implementation) Bean
2009-09-17 10:06 ` Bean
2009-09-19 14:38 ` Michal Suchanek
2009-09-19 20:48   ` Bean
2009-09-20  8:21     ` Michal Suchanek
2009-09-20  8:30     ` Michal Suchanek
2009-09-20 18:17       ` Bean
2009-09-21  9:16         ` Michal Suchanek
2009-09-21 14:56           ` Bean
2009-09-23 11:29             ` Michal Suchanek
2009-09-23 12:11               ` Bean
2009-09-23 17:10                 ` Bean
2009-09-23 19:26                   ` Bean
2009-09-24  7:20                     ` Michal Suchanek
2009-09-24  8:51                       ` Bean
2009-09-24  9:40                         ` Michal Suchanek
2009-09-24 10:31                           ` Bean
2009-09-24 22:00                             ` Michal Suchanek
2009-09-25  8:00                               ` Bean
2009-09-25  9:00                                 ` Michal Suchanek
2009-09-25  9:12                                   ` Bean
2009-09-25  9:46                                     ` Michal Suchanek
2009-09-25 10:02                                       ` Bean
2009-09-25 10:13                                         ` Michal Suchanek
2009-09-25 10:19                                           ` Bean
2009-09-25 10:37                                             ` Michal Suchanek
2009-09-25 15:45                                               ` Bean
2009-09-27 16:12                                                 ` Michal Suchanek
2009-09-27 18:33                                                   ` Bean
2009-09-27 20:46                                                     ` Michal Suchanek
2009-09-28  3:48                                                       ` Bean
2009-09-28  9:47                                                         ` Michal Suchanek
2009-09-28 10:48                                                           ` Bean
2009-09-28 11:44                                                             ` Michal Suchanek
2009-09-30 19:52                                                               ` Bean
2009-09-30 23:21                                                                 ` Michal Suchanek
2009-10-01  5:06                                                                   ` Bean
2009-10-01  8:41                                                                     ` Michal Suchanek
2009-10-01  9:17                                                                       ` Bean
2009-10-01 10:02                                                                         ` Bean
2009-10-01 12:19                                                                           ` Bean
2009-10-01 12:44                                                                         ` Michal Suchanek
2009-10-01 13:33                                                                           ` Bean
2009-10-01 14:53                                                                             ` Michal Suchanek
2009-10-01 16:22                                                                               ` Bean
2009-10-02  9:16                                                                                 ` Bean
2009-10-02 10:42                                                                                 ` Michal Suchanek
2009-10-03 15:25                                                                                   ` Bean
2009-10-03 22:34                                                                                     ` Michal Suchanek
2009-10-04  4:27                                                                                       ` Bean
2009-10-04 11:22                                                                                         ` Michal Suchanek
2009-10-04 13:54                                                                                           ` Bean
2009-10-04 16:06                                                                                             ` richardvoigt
2009-10-04 16:16                                                                                               ` Bean
2009-10-04 20:05                                                                                                 ` Bean
2009-10-04 20:16                                                                                                   ` Bean
2009-10-04 22:20                                                                                                     ` Michal Suchanek
2009-10-04 22:21                                                                                                       ` Michal Suchanek
2009-10-05  4:45                                                                                                       ` Bean
2009-10-05  9:07                                                                                                         ` Michal Suchanek
2009-10-05 10:35                                                                                                           ` Bean
2009-10-05 13:40                                                                                                             ` Michal Suchanek
2009-10-06  6:10                                                                                                               ` Bean
2009-10-06  6:25                                                                                                                 ` richardvoigt
2009-10-05 17:52                                                                                                             ` richardvoigt
2009-10-06  5:35                                                                                                               ` Bean
2009-10-05 12:24                                                                                                           ` Bean
2009-10-05 13:33                                                                                                             ` Michal Suchanek
2009-10-06  5:33                                                                                                               ` Bean
2009-10-06  9:50                                                                                                                 ` Michal Suchanek
2009-10-06 11:08                                                                                                                   ` Bean
2009-10-06 11:46                                                                                                                     ` Michal Suchanek
2009-10-06 13:14                                                                                                                       ` Bean
2009-10-06 15:18                                                                                                                         ` Michal Suchanek
2009-10-06 16:14                                                                                                                           ` Bean
2009-10-06 16:35                                                                                                                           ` Bean
2009-10-06 18:41                                                                                                                             ` Michal Suchanek
2009-10-06 22:16                                                                                                                             ` Michal Suchanek
2009-10-07  6:05                                                                                                                               ` Bean
2009-10-07  8:54                                                                                                                                 ` Michal Suchanek
2009-10-07 10:54                                                                                                                                   ` Bean
2009-10-07 10:57                                                                                                                                   ` Bean
2009-10-07 13:05                                                                                                                                     ` Michal Suchanek
2009-10-07 21:13                                                                                                                                       ` Michal Suchanek
2009-10-08  4:20                                                                                                                                         ` Bean
2009-10-08  5:21                                                                                                                                           ` Bean
2009-10-08 11:26                                                                                                                                             ` Michal Suchanek
2009-10-08 13:26                                                                                                                                               ` Bean
2009-10-08 21:34                                                                                                                                                 ` Michal Suchanek
2009-10-09  3:45                                                                                                                                                   ` Bean
2009-10-09 11:52                                                                                                                                                     ` Michal Suchanek
2009-10-09 12:48                                                                                                                                                       ` Bean
2009-10-09 14:20                                                                                                                                                         ` Michal Suchanek
2009-10-09 14:54                                                                                                                                                           ` Bean
2009-10-09 15:57                                                                                                                                                             ` Michal Suchanek
2009-10-09 16:17                                                                                                                                                               ` Bean
2009-10-09 16:29                                                                                                                                                                 ` Michal Suchanek
2009-10-09 16:48                                                                                                                                                                   ` Bean
2009-10-09 17:27                                                                                                                                                                     ` Michal Suchanek [this message]
2009-10-09 18:32                                                                                                                                                                       ` Bean
2009-10-09 20:41                                                                                                                                                                         ` Michal Suchanek
2009-10-10  3:43                                                                                                                                                                           ` Bean
2009-10-10 11:22                                                                                                                                                                             ` Michal Suchanek
2009-10-10 19:21                                                                                                                                                                               ` Bean
2009-10-10 22:54                                                                                                                                                                                 ` Michal Suchanek
2009-10-11  3:58                                                                                                                                                                                   ` Bean
2009-10-11 10:03                                                                                                                                                                                     ` Michal Suchanek
2009-10-16 20:47                                                                                                                                                                                       ` Bean
2009-10-17 20:01                                                                                                                                                                                         ` Bean
2009-10-18 17:01                                                                                                                                                                                           ` Bean
2009-10-20 14:52                                                                                                                                                                                             ` Bean
2009-10-20 19:31                                                                                                                                                                                               ` Michal Suchanek
2009-10-21  1:01                                                                                                                                                                                                 ` Peter Cros
2009-10-21  4:07                                                                                                                                                                                                 ` Bean
2009-10-21 20:55                                                                                                                                                                                                   ` Michal Suchanek
2009-10-22  3:47                                                                                                                                                                                                     ` Bean
2009-10-20 19:20                                                                                                                                                                                             ` Michal Suchanek
2009-10-21  3:45                                                                                                                                                                                               ` Bean
2009-10-21 20:47                                                                                                                                                                                                 ` Michal Suchanek
2009-10-22  4:34                                                                                                                                                                                                   ` Bean
2009-10-22  7:41                                                                                                                                                                                                     ` Michal Suchanek
2009-10-22  8:15                                                                                                                                                                                                       ` Bean
2009-10-23  5:59                                                                                                                                                                                                         ` Peter Cros
2009-10-23  7:31                                                                                                                                                                                                           ` Bean
2009-10-24  8:04                                                                                                                                                                                                             ` Peter Cros
2009-10-25 14:27                                                                                                                                                                                                               ` Peter Cros
2009-10-26 18:24                                                                                                                                                                                                                 ` Bean
2009-10-27 17:34                                                                                                                                                                                                                   ` Bean
2009-10-28 20:29                                                                                                                                                                                                                     ` Bean
2009-10-28 21:12                                                                                                                                                                                                                       ` Vladimir 'phcoder' Serbinenko
2009-10-29  3:24                                                                                                                                                                                                                         ` Bean
2009-10-29  9:10                                                                                                                                                                                                                           ` Vladimir 'phcoder' Serbinenko
2009-10-29  9:25                                                                                                                                                                                                                             ` Bean
2009-10-29  9:33                                                                                                                                                                                                                               ` Vladimir 'phcoder' Serbinenko
2009-10-29  9:52                                                                                                                                                                                                                                 ` Bean
2009-10-30 12:07                                                                                                                                                                                                                                   ` Bean
2009-11-01 17:16                                                                                                                                                                                                                                     ` Bean
2009-11-09 15:55                                                                                                                                                                                                                                       ` Bean
2009-11-09 16:16                                                                                                                                                                                                                                         ` mingw32 compile fixes (Re: [GITGRUB] New menu interface (implementation)) Robert Millan
2009-11-09 16:46                                                                                                                                                                                                                                           ` Bean
2009-11-09 20:03                                                                                                                                                                                                                                             ` Robert Millan
2009-11-10 13:51                                                                                                                                                                                                                                               ` Bean
2009-11-09 20:04                                                                                                                                                                                                                                             ` warn_unused_result attribute (Re: mingw32 compile fixes (Re: [GITGRUB] New menu interface (implementation))) Robert Millan
2009-11-09 20:10                                                                                                                                                                                                                                               ` Felix Zielcke
2009-11-09 21:07                                                                                                                                                                                                                                                 ` Robert Millan
2009-11-09 20:20                                                                                                                                                                                                                                               ` Colin Watson
2009-10-20 19:06                                                                                                                                                                                           ` [GITGRUB] New menu interface (implementation) Michal Suchanek
2009-10-21  3:21                                                                                                                                                                                             ` Bean
2009-10-09 16:56                                                                                                                                                               ` richardvoigt
2009-10-09 17:09                                                                                                                                                                 ` Michal Suchanek
2009-10-09 18:28                                                                                                                                                                   ` richardvoigt
2009-10-09 18:49                                                                                                                                                                     ` Bean
2009-10-09 20:22                                                                                                                                                                     ` Michal Suchanek
2009-10-09 15:58                                                                                                                                                             ` Bean
2009-10-08 11:18                                                                                                                                           ` Michal Suchanek
2009-10-08 13:07                                                                                                                                             ` Bean
2009-10-08 21:46                                                                                                                                               ` Michal Suchanek
2009-10-09  3:34                                                                                                                                                 ` Bean
2009-10-09 11:48                                                                                                                                                   ` Michal Suchanek
2009-10-09 12:34                                                                                                                                                     ` Bean
2009-10-06 22:59                                                                                                                             ` Michal Suchanek
2009-10-04 21:24                                                                                                 ` Michal Suchanek
2009-10-04 21:57                                                                                             ` Michal Suchanek
2009-10-05  5:01                                                                                               ` Bean
2009-10-05  9:12                                                                                                 ` Michal Suchanek
2009-10-04 12:03                                                                                         ` Peter Cros
2009-10-04 13:26                                                                                           ` Bean
2009-09-27 23:01                                                     ` Michal Suchanek
2009-09-28  2:59                                                       ` Bean
2009-09-28  9:32                                                         ` Michal Suchanek
2009-09-19 18:45 ` Michal Suchanek
2009-09-19 18:55   ` richardvoigt
2009-09-20  8:31     ` Michal Suchanek
2009-09-20 18:51       ` richardvoigt
2009-09-21  9:23         ` Michal Suchanek

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=a5d587fb0910091027k3744e2e7wd6944b9c10197614@mail.gmail.com \
    --to=hramrach@centrum.cz \
    --cc=grub-devel@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.