Как показать окно максимально быстрым способом? - PullRequest
6 голосов
/ 02 мая 2011

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

Поскольку я нахожусь во встроенной системе, и анимация «минимизации» не отображается, я закрыл окно, а не закрыл его, но оно все равно не отображается так быстро, как я хотел.

Есть ли способ, чтобы окно загружалось в буфер, чтобы оно появлялось быстрее? Или как я могу отобразить это окно самым быстрым способом?

- обновление

Кстати, в окнах нет ничего тяжелого. Одним из них является всплывающее окно с меткой «Загрузка», и мне все еще требуется много времени (около секунды), чтобы отобразиться:

<?xml version="1.0" encoding="UTF-8"?>

<!-- Style -->
<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>

<window id="loadingWindow" hidechrome="true"
    xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">

    <vbox pack="center" align="center">
        <label id="textLabel">Loading...</label>
    </vbox>

</window>

Я открываю это с помощью:

openDialog("chrome://myapp/content/loading.xul", 'Loading', 'chrome, popup, centerscreen');

Ответы [ 3 ]

3 голосов
/ 03 мая 2011

вы можете сделать нативный код?
createHiddenWindow ()

в качестве альтернативы, вы можете играть с , создавая маленькое прозрачное окно со скрытым хромом

Это не завершено, но для начала:

<?xml version="1.0"?>
<!--<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>-->
<window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" width="1px" height="1px" hidechrome="true" style="max-width:1px; max-height:1px; opacity:0">

<description>blar</description>

</window>
1 голос
/ 03 мая 2011

Разве вы не можете просто поменять все элементы из главного окна и заменить их теми элементами окна, которые вы хотите показать?или, возможно, еще лучше, сделать что-то подобное с колода ?

0 голосов
/ 12 мая 2011

Я не уверен, что это то, что вы хотите, но можно временно скрыть окно, чтобы при желании вы могли просто показать его снова. См. nsMsgComposeService :: ShowCachedComposeWindow для общей идеи.

...