Referência

vssh.janela

Página gerada da tabela da ponte (api/abi.json) pelo canal de publicação do sistema. Uma mudança se faz na fonte, vssh-client/js/app/abi.js do vssh-sso.

A janela do app: controlada em runtime pelo app que a ocupa, e declarada no manifesto para quem a abre.

Verbos

abrir

vssh.janela.abrir(rota, titulo, largura, altura)

Outra janela deste app, e a rota decide o que vai dentro dela: sem rota, uma cópia da mesma página; com rota (?painel=notas), um painel ou um segundo documento. O backend continua sendo um só, e a janela nova leva o título e o ícone do app. O shell recusa uma rota que sai do app (um esquema, um caminho absoluto, um ..) e responde false.

Responde: uma promessa, com prazo de 5 s (ritmo rapido, a resposta não depende de uma pessoa). Num hiperlink: vale. No fio: type: "window", op: "open".

argumentotipoopcionalno fio
rotastringsimrota
titulostringsimtitle
larguranumbersimwidth
alturanumbersimheight

minimizar

vssh.janela.minimizar()

Recolhe a janela para a barra de tarefas. Uma janela já minimizada fica como está.

Não responde: um disparo, sem retorno. Num hiperlink: vale. No fio: type: "window", op: "minimize".

Sem argumentos.

maximizar

vssh.janela.maximizar()

Ocupa a área de trabalho inteira. Uma janela já maximizada fica como está.

Não responde: um disparo, sem retorno. Num hiperlink: vale. No fio: type: "window", op: "maximize".

Sem argumentos.

restaurar

vssh.janela.restaurar()

Devolve a janela ao tamanho normal: tira da barra de tarefas a que está minimizada, e desmaximiza a que está maximizada.

Não responde: um disparo, sem retorno. Num hiperlink: vale. No fio: type: "window", op: "restore".

Sem argumentos.

focar

vssh.janela.focar()

Traz a janela para a frente das outras e lhe dá o foco.

Não responde: um disparo, sem retorno. Num hiperlink: vale. No fio: type: "window", op: "focus".

Sem argumentos.

fechar

vssh.janela.fechar()

Fecha a janela pelo mesmo caminho do botão de fechar, sem passar por perguntarAoFechar. Quando ela é a última do app, o backend segue o que backend.aoFechar declara no manifesto.

Não responde: um disparo, sem retorno. Num hiperlink: vale. No fio: type: "window", op: "close".

Sem argumentos.

perguntarAoFechar

vssh.janela.perguntarAoFechar(ligado)

Com ligado, fechar a janela pelo botão, pelo menu ou pela barra de tarefas não fecha: o shell manda fechamentoPedido ao app, que pergunta o que precisar e chama fechar() quando for o caso. É para quem tem o que perder, como um documento que nunca foi salvo, e se desliga quando deixa de ter. Um app que não responde ao pedido não prende a janela: a pessoa que tenta fechar de novo, alguns segundos depois, recebe do shell a escolha de fechar mesmo assim.

Não responde: um disparo, sem retorno. Num hiperlink: vale. No fio: type: "window", op: "ask-before-close".

argumentotipoopcionalno fio
ligadobooleannãoon

arrastar

vssh.janela.arrastar(x, y, telaX, telaY)

Começa a arrastar a janela a partir de um ponto do documento do app, para quem declarou cabecalho: "app" e desenha a própria barra de título. x e y dizem onde no quadro do app a pessoa o agarrou (clientX, clientY); telaX e telaY fixam a referência de tela para o resto do gesto (screenX, screenY). O app captura o ponteiro e conta o gesto inteiro: este começo, cada ponto por arrastarPara, e o fim por terminarArraste. Uma janela maximizada ignora o pedido, como ignora o cabeçalho padrão.

Não responde: um disparo, sem retorno. Num hiperlink: vale. No fio: type: "window", op: "drag-start".

argumentotipoopcionalno fio
xnumbernãox
ynumbernãoy
telaXnumbernãotelaX
telaYnumbernãotelaY

arrastarPara

vssh.janela.arrastarPara(telaX, telaY)

Um ponto do arraste em curso, em coordenada de tela (screenX, screenY). A coordenada é de tela porque o quadro do app se move junto com a janela, e um ponto relativo a ele dependeria do que o gesto acabou de mudar. Sem arraste começado, o shell ignora.

Não responde: um disparo, sem retorno. Num hiperlink: vale. No fio: type: "window", op: "drag-move".

argumentotipoopcionalno fio
telaXnumbernãotelaX
telaYnumbernãotelaY

terminarArraste

vssh.janela.terminarArraste()

O fim do arraste, no pointerup ou pointercancel do app. Sem ele a janela continua seguindo o ponteiro depois que a pessoa solta o botão.

Não responde: um disparo, sem retorno. Num hiperlink: vale. No fio: type: "window", op: "drag-end".

Sem argumentos.

alternarMaximizado

vssh.janela.alternarMaximizado()

O duplo-clique da barra de título de quem tem cabecalho: "app": maximiza a janela normal e restaura a maximizada.

Não responde: um disparo, sem retorno. Num hiperlink: vale. No fio: type: "window", op: "toggle-maximize".

Sem argumentos.

vssh.janela.menuDoCabecalho(x, y)

O menu de contexto do cabeçalho (mover, maximizar, fechar, o log do backend), aberto no ponto x, y do quadro do app. O shell traduz o ponto para a tela dele.

Não responde: um disparo, sem retorno. Num hiperlink: vale. No fio: type: "window", op: "head-menu".

argumentotipoopcionalno fio
xnumbernãox
ynumbernãoy

abas

vssh.janela.abas(abas, abaAtiva)

A lista de abas de um app com richChrome, que o shell desenha na barra de título. O app a manda inteira a cada mudança; o shell responde aos cliques pelos eventos ativarAba, fecharAba e novaAba. Só texto atravessa: o shell monta cada aba com o title que recebeu. Uma aba com sessionName volta na sessão seguinte pelo evento restaurarAbas. Sem richChrome no manifesto, o shell ignora a lista.

Não responde: um disparo, sem retorno. Num hiperlink: vale. No fio: type: "tabs".

argumentotipoopcionalno fio
abas{ id: string, title?: string, sessionName?: string }[]nãotabs
abaAtivastring | nullsimactiveTabId

Eventos

restaurarAbas

vssh.janela.ao('restaurarAbas', cb)

As abas que a sessão anterior deixou salvas, mandadas uma vez, no load do iframe de um app com richChrome. Chega mesmo sem nada salvo (abas: null), para o app nunca decidir sozinho se cria uma aba inicial.

campotipoopcionalno fio
abas{ sessionName: string }[] | nullnãotabs
sessaoAtivastring | nullnãoactiveSessionName

Num hiperlink: chega. No fio: type: "restore-tabs".

ativarAba

vssh.janela.ao('ativarAba', cb)

A pessoa clicou numa aba da barra de título.

campotipoopcionalno fio
abaIdstringnãotabId

Num hiperlink: chega. No fio: type: "activate-tab".

fecharAba

vssh.janela.ao('fecharAba', cb)

A pessoa clicou no fechar de uma aba, ou em "Fechar aba" no menu do cabeçalho.

campotipoopcionalno fio
abaIdstringnãotabId

Num hiperlink: chega. No fio: type: "close-tab".

novaAba

vssh.janela.ao('novaAba', cb)

A pessoa clicou no + da barra de abas, ou em "Nova aba" no menu do cabeçalho.

O cb recebe um objeto vazio.

Num hiperlink: chega. No fio: type: "new-tab".

fechamentoPedido

vssh.janela.ao('fechamentoPedido', cb)

A pessoa pediu para fechar a janela de um app que ligou perguntarAoFechar. A janela continua aberta até o app chamar fechar().

O cb recebe um objeto vazio.

Num hiperlink: chega. No fio: type: "close-requested".