Сетка XUL с элементом, охватывающим несколько столбцов - PullRequest
0 голосов
/ 05 ноября 2010

Как мне сделать такой макет в XUL?

--------------------------------------------
elem11 | elem12 | elem13                   |
--------------------------------------------
elem21 | elem22 | elem23 | elem24 | elem25 |
--------------------------------------------

<grid> не позволяет одному элементу занимать несколько столбцов, если я что-то упустил.

РЕДАКТИРОВАТЬ: XUL

<groupbox flex="1">
    <caption label="&options.general.keyBindings;" />
    <vbox flex="1">
        <hbox flex="1" align="center">
            <checkbox id="nextpleaseAllowNumberShortcuts" oncommand="nextplease.enableDisableNumberShortcutModifierMenu();"/>
            <menulist id="nextpleaseNumberShortcutModifier" prefstring="nextplease.numbermodifier" style="margin-right: 0">
                <menupopup onpopuphiding="nextplease.keyBindingsChanged = true;"/>
            </menulist>
            <label id="nextpleaseAllowNumberShortcuts1"/>
        </hbox>
        <separator class="thin"/>
        <grid>
            <columns>
                <column/>
                <column/>
                <column/>
                <column/>
                <column/>
                <column/>
            </columns>

            <rows>
                <row align="center">
                    <label value="&options.general.nextKey;" />
                    <menulist id="nextpleaseNextModifier" prefstring="nextplease.modifier">
                        <menupopup onpopuphiding="nextplease.onModifierMenuChange('nextkey', 'nextkeymenu', 'nextpleaseModifier');"/>
                    </menulist>
                    <label value="&options.general.enterKey;" />
                    <textbox id="nextkey" type="text" size="1" maxlength="1"
                        onchange="return nextplease.onKeyChange('nextkey', 'nextkeymenu', 'nextpleaseModifier');" />
                    <label value="&options.general.or;" />
                    <menulist id="nextkeymenu">
                        <menupopup onpopuphiding="return nextplease.onKeyMenuChange('nextkey', 'nextkeymenu', 'nextpleaseModifier');"/>
                    </menulist>
                </row>
                <row align="center">
                    <label value="&options.general.prevKey;" />
                    <menulist id="nextpleasePrevModifier" prefstring="nextplease.modifier">
                        <menupopup onpopuphiding="nextplease.onModifierMenuChange('prevkey', 'prevkeymenu', 'nextpleasePrevModifier');"/>
                    </menulist>
                    <label value="&options.general.enterKey;" />
                    <textbox id="prevkey" type="text" size="1" maxlength="1"
                        onchange="return nextplease.onKeyChange('prevkey', 'prevkeymenu', 'nextpleasePrevModifier');" />
                    <label value="&options.general.or;" />
                    <menulist id="prevkeymenu">
                        <menupopup onpopuphiding="return nextplease.onKeyMenuChange('prevkey', 'prevkeymenu', 'nextpleasePrevModifier');"/>
                    </menulist>
                </row>
                <row align="center">
                    <label value="&options.general.firstKey;" />
                    <menulist id="nextpleaseFirstModifier" prefstring="nextplease.modifier">
                        <menupopup onpopuphiding="nextplease.onModifierMenuChange('firstkey', 'firstkeymenu', 'nextpleaseFirstModifier');"/>
                    </menulist>
                    <label value="&options.general.enterKey;" />
                    <textbox id="firstkey" type="text" size="1" maxlength="1"
                        onchange="return nextplease.onKeyChange('firstkey', 'firstkeymenu', 'nextpleaseFirstModifier');" />
                    <label value="&options.general.or;" />
                    <menulist id="firstkeymenu">
                        <menupopup onpopuphiding="return nextplease.onKeyMenuChange('firstkey', 'firstkeymenu', 'nextpleaseFirstModifier');"/>
                    </menulist>
                </row>
                <row align="center">
                    <label value="&options.general.lastKey;" />
                    <menulist id="nextpleaseLastModifier" prefstring="nextplease.modifier">
                        <menupopup onpopuphiding="nextplease.onModifierMenuChange('lastkey', 'lastkeymenu', 'nextpleaseLastModifier');"/>
                    </menulist>
                    <label value="&options.general.enterKey;" />
                    <textbox id="lastkey" type="text" size="1" maxlength="1"
                        onchange="return nextplease.onKeyChange('lastkey', 'lastkeymenu', 'nextpleaseLastModifier');" />
                    <label value="&options.general.or;" />
                    <menulist id="lastkeymenu">
                        <menupopup onpopuphiding="return nextplease.onKeyMenuChange('lastkey', 'lastkeymenu', 'nextpleaseLastModifier');"/>
                    </menulist>
                </row>
            </rows>
        </grid>
    </vbox>
</groupbox>

Я хотел превратить <hbox> с nextpleaseAllowNumberShortcuts в ряд сетки под ним. Флажок с меткой будет в первом столбце, меню - во втором (остальные строки имеют такое же меню), а метка охватывает остальные столбцы.

1 Ответ

2 голосов
/ 05 ноября 2010

Вы должны подделать это, сделав сетку из трех столбцов и поместив hbox в третий столбец, второй ряд.Вы правы, что не можете охватить несколько столбцов.

...