From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with archive (Exim 4.43) id 1Mtfau-0004pl-F4 for mharc-grub-devel@gnu.org; Fri, 02 Oct 2009 06:42:36 -0400 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1Mtfas-0004p2-MO for grub-devel@gnu.org; Fri, 02 Oct 2009 06:42:34 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1Mtfar-0004oE-Gx for grub-devel@gnu.org; Fri, 02 Oct 2009 06:42:33 -0400 Received: from [199.232.76.173] (port=49037 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Mtfar-0004o2-4c for grub-devel@gnu.org; Fri, 02 Oct 2009 06:42:33 -0400 Received: from fg-out-1718.google.com ([72.14.220.156]:60828) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1Mtfaq-000636-E8 for grub-devel@gnu.org; Fri, 02 Oct 2009 06:42:32 -0400 Received: by fg-out-1718.google.com with SMTP id 22so358491fge.12 for ; Fri, 02 Oct 2009 03:42:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:sender:received:in-reply-to :references:date:x-google-sender-auth:message-id:subject:from:to :content-type:content-transfer-encoding; bh=Pi8r/r3N758/ZduDqabgI8WFRZbcwfB2uI9A66taYXY=; b=X1WyBHfOOKms2JeHut7QgmHfzB99HnMxbjG6OJaPGNY7MDgJ18GYkYMElaEpuPOwQ9 /AkudYGwKZcshH7/0kack/CJGLSTQbXNOWTtIy4xVWER6zszTCdqcHLyEaw6m1QY5Si9 WLiyLIOZ9TlL1WQNVRLXtPUEDCEFrjvuyiJ/0= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:content-type :content-transfer-encoding; b=Pknw/V7w6oigHJ2us+DawC0u4t0cM2NW/hFw2ENXop1PH3r7hTH9Rewi0ZFjG2JU/s kBsKPqVX40XhaNc950O7kjLOApyE4Pd+GpdnZTgRfkMgLctIjL/O5946CCoEbTu7cFeC 5CELLqXCeJJNr5JTRgIjbkHq2fopIU9KbtF+0= MIME-Version: 1.0 Sender: hramrach@gmail.com Received: by 10.86.217.8 with SMTP id p8mr2140934fgg.73.1254480150263; Fri, 02 Oct 2009 03:42:30 -0700 (PDT) In-Reply-To: References: Date: Fri, 2 Oct 2009 12:42:30 +0200 X-Google-Sender-Auth: e2eb99cd989fee52 Message-ID: From: Michal Suchanek To: The development of GRUB 2 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by monty-python.gnu.org: GNU/Linux 2.6 (newer, 2) Subject: Re: [GITGRUB] New menu interface (implementation) X-BeenThere: grub-devel@gnu.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: The development of GRUB 2 List-Id: The development of GRUB 2 List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Oct 2009 10:42:35 -0000 2009/10/1 Bean : > On Thu, Oct 1, 2009 at 10:53 PM, Michal Suchanek wr= ote: >> 2009/10/1 Bean : >>> On Thu, Oct 1, 2009 at 8:44 PM, Michal Suchanek w= rote: >>>> 2009/10/1 Bean : >>>>> On Thu, Oct 1, 2009 at 4:41 PM, Michal Suchanek = wrote: >>>>>> Cannot this be inferred automatically? >>>>>> >>>>>> That is any panel that contains command items is a window. >>>>> >>>>> Hi, >>>>> >>>>> Sometimes panel can be used to ground some widgets together, for >>>>> example, a dialog may look like this: >>>>> >>>>> panel >>>>> { >>>>> =C3=A1direction =3D vertical >>>>> =C3=A1input =3D 1 >>>>> >>>>> =C3=A1panel >>>>> =C3=A1{ >>>>> =C3=A1 =C3=A1direction =3D horizontal >>>>> =C3=A1 =C3=A1text { text=3D"username"} >>>>> =C3=A1 =C3=A1edit {} >>>>> =C3=A1} >>>>> >>>>> =C3=A1panel >>>>> =C3=A1{ >>>>> =C3=A1 =C3=A1direction =3D horizontal >>>>> =C3=A1 =C3=A1text { text=3D"password"} >>>>> =C3=A1 =C3=A1edit {} >>>>> =C3=A1} >>>>> } >>>>> >>>>> In this case, the outer panel should be a single window, and the edit= s >>>>> are items. The inner panel is only used for layout, we don't want the= m >>>>> to receive input focus. >>>> >>>> Since the panel only contains one active item ( the edit ) this should >>>> still work. >>>> >>>> I recall writing about this here already. >>> >>> Hi, >>> >>> It'd be ok if we only have one level input items, but I plans to add >>> two two level interaction, first is window, second is item, TAB switch >>> different window, while UP/DOWN switch different items. In this setup, >>> we need to mark the panel that acted as window. >>> >> >> Yes, there's no problem inferring the interaction from the widget tree. >> >> Widgets that don't do anything don't get focus, they are ignored for >> purpose of determining focus. >> >> An active item like edit or panel with command is an atomic widget for >> focus. A panel that contains exactly one atomic widget is also atomic. >> >> A panel that contains multiple atomic items (or alternatively in which >> atomic item is focused) acts on directional keys by switching focus to >> next item - this seems what window =3D 1 does. >> >> A panel that contains multiple panels that can focus but are not >> atomic handles (Shift +)TAB by switching to the (previous) next >> contained panel. In case the focused panel is its (first) last >> focusable item it passes the key to the upper panel. >> >> As an extension the panel direction can be taken into account, and >> panels can be seen as atomic in both directions (atomic) atomic in >> vertical direction (horizontal panel containing atomic widgets), ... >> >> This can work completely automagically without user setup and thus can >> eliminate errors in the setup. >> >> It perhaps might be useful to override the default in some cases but >> this should work for any menu I would want to put together. > > Hi, > > The window =3D 1 is used to group some input items together, for example: > > screen { > =C2=A0panel { =C2=A0 # A > =C2=A0 =C2=A0window =3D 1 > =C2=A0 =C2=A0panel { } =C2=A0#A1 > =C2=A0 =C2=A0panel { } =C2=A0#A2 > =C2=A0} > > =C2=A0panel { # B > =C2=A0 =C2=A0window =3D 1 > =C2=A0 =C2=A0panel { } #B1 > =C2=A0 =C2=A0panel { } #B2 > =C2=A0} > } > > This define two menus, each with two items. Each menu remember its > current selection, for example, if panel A select a language, panel B > select theme, both can have current selection at the same time. You Yes, they should both remember their position. I still don't see any reason why the window =3D 1 property could not be set automatically. > can walk from A to B as they represent two different things. That's useful, and in case the number of panels is reasonably small so that you can put them together into a simple layout you could use the up/down keys to select the item in the panel and left/right to select the "window" panel. Thanks Michal