Pergunta

Usando o Apple mac OS X Cacau quadro, como posso postar um folha (slide-para baixo de caixa de diálogo modal) na janela de outro processo?

Editar: Esclareceu um pouco:

Meu aplicativo é um Localizador de extensão para fazer controle de versão Subversion (http://scplugin.tigris.org/).Parte da minha aplicação é um plug-in (de um Menu Contextual do Item Finder);a maioria dos meus aplicação, no entanto, é um daemon separado proces.Por várias razões, nós escolhemos para colocar praticamente todo o código para o daemon;o plug-in só define o próprio menu, e Apple-Events para o Daemon.

Às vezes, o daemon necessidades para solicitar ao usuário para obter mais informações.Ele pode atirar de uma janela no ecrã para isso, mas isso é perturbador (posicionadas de forma aleatória), e parece-me que o fluxo de trabalho aqui é legitimamente modal, por exemplo, "selecione um arquivo, escolha 'cometer' a partir do menu, fornecer cometer comentários, fazer a operação."

Entre processos de cooperação (tais como a passagem de uma referência de algum tipo) é aceitável:ambos os processos são meus, mas eu quero evitar a ligação a folha do código de processo primário.

Foi útil?

Solução

Realmente, parece que você está tentando ter a sua inter-process communication acontecer no nível do modo de exibição, o que não é realmente como Cacau, de um modo geral.As coisas vão ser muito mais fácil se você separar o seu camadas um pouco mais que isso.

Por que você não quer colocar o código de folha em outro processo?É o código e o código é inerentemente específicos do processo.A coisa certa a se fazer aqui é, provavelmente, adicionar um pouco genérico modal-folha de apoio para o código do plugin, e um IPC de chamada que o seu servidor pode fazer para convocar esse código.Tentando navio visualizar objetos para o processo remoto vai ser um pesadelo se você pode fazê-lo funcionar em tudo.

Você está lutando contra os quadros com esta abordagem.

Outras dicas

Você não pode adicionar uma folha de uma janela, em outro processo, porque você tem, no máximo, mais restrito o acesso ao windows em outro processo.

Por favor, não faça isso.Tornar a interação nonmodal, se possível.Especialmente em algo como uma confirmação, o que é muito mais agradável de ser capaz de navegar ao redor de seus arquivos enquanto você está escrevendo comentários do commit.

O OS X não tem janela, mas eu não acho que eles podem (facilmente) abrangem aplicações.

Outra coisa a considerar é que no mac OS X, é possível ter várias janelas do Finder abra na mesma pasta (ao contrário do que OS 9).Mesmo se você fiz tem privilégios suficientes/APIs para adicionar uma folha de uma janela do Finder, não é como a modalidade da janela que iria impedir que o usuário seja capaz de continuar a trabalhar com os arquivos.

(Minha opinião pessoal como um longo tempo de usuário do Mac é que este tipo de interação que me levava de carro para a direita até a parede.)

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top