<?xml version="1.0" encoding="utf-8"?>
<!-- generator="FeedCreator 1.7.2-ppt DokuWiki" -->
<?xml-stylesheet href="http://composer.telemidia.puc-rio.br/lib/exe/css.php?s=feed" type="text/css"?>
<rdf:RDF
    xmlns="http://purl.org/rss/1.0/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
    xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel rdf:about="http://composer.telemidia.puc-rio.br/feed.php">
        <title> pt-br:doc:tutorial</title>
        <description></description>
        <link>http://composer.telemidia.puc-rio.br/</link>
        <image rdf:resource="http://composer.telemidia.puc-rio.br/lib/tpl/bootstrap3/images/favicon.ico" />
       <dc:date>2026-04-18T17:20:13-03:00</dc:date>
        <items>
            <rdf:Seq>
                <rdf:li rdf:resource="http://composer.telemidia.puc-rio.br/doku.php/pt-br/doc/tutorial/getting_started_guide"/>
                <rdf:li rdf:resource="http://composer.telemidia.puc-rio.br/doku.php/pt-br/doc/tutorial/how_to_build_ncl_composer_from_source_code"/>
                <rdf:li rdf:resource="http://composer.telemidia.puc-rio.br/doku.php/pt-br/doc/tutorial/how_to_build_ncl_composer_from_source_code_0.2.x"/>
                <rdf:li rdf:resource="http://composer.telemidia.puc-rio.br/doku.php/pt-br/doc/tutorial/how_to_configure_run"/>
                <rdf:li rdf:resource="http://composer.telemidia.puc-rio.br/doku.php/pt-br/doc/tutorial/how_to_create_a_plugin_to_ncl_composer"/>
                <rdf:li rdf:resource="http://composer.telemidia.puc-rio.br/doku.php/pt-br/doc/tutorial/index"/>
            </rdf:Seq>
        </items>
    </channel>
    <image rdf:about="http://composer.telemidia.puc-rio.br/lib/tpl/bootstrap3/images/favicon.ico">
        <title></title>
        <link>http://composer.telemidia.puc-rio.br/</link>
        <url>http://composer.telemidia.puc-rio.br/lib/tpl/bootstrap3/images/favicon.ico</url>
    </image>
    <item rdf:about="http://composer.telemidia.puc-rio.br/doku.php/pt-br/doc/tutorial/getting_started_guide">
        <dc:format>text/html</dc:format>
        <dc:date>2017-02-03T16:31:18-03:00</dc:date>
        <title>Iniciando no NCL Composer</title>
        <link>http://composer.telemidia.puc-rio.br/doku.php/pt-br/doc/tutorial/getting_started_guide</link>
        <description>&lt;div class=&quot;notewarning&quot;&gt;Esta página ainda está em desenvolvimento!
&lt;/div&gt;
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;iniciando_no_ncl_composer&quot;&gt;Iniciando no NCL Composer&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Este documento apresenta uma introdução rápida que permitirá o desenvolvimento de aplicações interativas para TV digital usando o &lt;abbr title=&quot;Nested Context Language&quot;&gt;NCL&lt;/abbr&gt; Composer.
&lt;/p&gt;

&lt;p&gt;
Aqui, nós assumimos que você já está com o &lt;abbr title=&quot;Nested Context Language&quot;&gt;NCL&lt;/abbr&gt; Composer instalado e funcionando em seu computador. Se você ainda não o instalou, vá para a página de &lt;a href=&quot;http://composer.telemidia.puc-rio.br/doku.php/pt-br/download&quot; class=&quot;wikilink1&quot; title=&quot;pt-br:download&quot;&gt;download&lt;/a&gt;, baixe a última versão do &lt;abbr title=&quot;Nested Context Language&quot;&gt;NCL&lt;/abbr&gt; Composer e instale-a.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT1 SECTION &quot;Iniciando no NCL Composer&quot; [68-489] --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;primeiros_passos&quot;&gt;Primeiros passos&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT2 SECTION &quot;Primeiros passos&quot; [490-518] --&gt;
&lt;h3 class=&quot;sectionedit3&quot; id=&quot;criando_um_novo_projeto&quot;&gt;1. Criando um novo projeto&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Quando você abre o &lt;abbr title=&quot;Nested Context Language&quot;&gt;NCL&lt;/abbr&gt; Composer, a tela da imagem abaixo aparece para você. Para criar seu próprio projeto, clique no botão &lt;em&gt;Novo projeto&lt;/em&gt; ou vá para &lt;em&gt;Arquivo→Novo projeto&lt;/em&gt;.
&lt;/p&gt;

&lt;p&gt;
A fazer: captura de tela.
&lt;/p&gt;

&lt;p&gt;
A fazer: O quê? Onde? Como? Quando?
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT3 SECTION &quot;1. Criando um novo projeto&quot; [519-805] --&gt;
&lt;h3 class=&quot;sectionedit4&quot; id=&quot;o_que_adicionando_objetos_de_midia&quot;&gt;2. O quê? Adicionando objetos de mídia&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Depois de criar um novo projeto você será apresentado a várias visões do &lt;abbr title=&quot;Nested Context Language&quot;&gt;NCL&lt;/abbr&gt; Composer. Cada visão permite que você foque em uma tarefa específica enquanto cria a sua aplicação.
&lt;/p&gt;

&lt;p&gt;
Por exemplo, vamos iniciar adicionando objetos de mídia. Para isso, vá para a &lt;em&gt;Visão Estrutural&lt;/em&gt; e clique com o botão direito na área de canvas e então clique em &lt;em&gt;Inserir→Mídia&lt;/em&gt;. Você pode também arrastar seus arquivos de mídia, diretamente do seu sistema de arquivos, e soltá-los no canvas da &lt;em&gt;Visão Estrutural&lt;/em&gt;.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT4 SECTION &quot;2. O quê? Adicionando objetos de mídia&quot; [806-1377] --&gt;
&lt;h3 class=&quot;sectionedit5&quot; id=&quot;onde_criando_regioes&quot;&gt;3. Onde? Criando regiões&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Em breve.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT5 SECTION &quot;3. Onde? Criando regiões&quot; [1378-1424] --&gt;
&lt;h3 class=&quot;sectionedit6&quot; id=&quot;como_trabalhando_com_propriedades_ou_descritores&quot;&gt;4. Como? Trabalhando com propriedades ou descritores&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Em breve.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT6 SECTION &quot;4. Como? Trabalhando com propriedades ou descritores&quot; [1425-1498] --&gt;
&lt;h3 class=&quot;sectionedit7&quot; id=&quot;quando_elos&quot;&gt;5. Quando? Elos&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Em breve.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT7 SECTION &quot;5. Quando? Elos&quot; [1499-] --&gt;
&lt;!-- cachefile /var/www/composer.telemidia.puc-rio.br/public_html/data/cache/e/eb113a60ff72fa22b0945b11b4d63a7b.xhtml used --&gt;
</description>
    </item>
    <item rdf:about="http://composer.telemidia.puc-rio.br/doku.php/pt-br/doc/tutorial/how_to_build_ncl_composer_from_source_code">
        <dc:format>text/html</dc:format>
        <dc:date>2017-02-03T16:31:18-03:00</dc:date>
        <title>Como compilar o NCL Composer a partir do código-fonte (&lt; 0.1.x )</title>
        <link>http://composer.telemidia.puc-rio.br/doku.php/pt-br/doc/tutorial/how_to_build_ncl_composer_from_source_code</link>
        <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;como_compilar_o_ncl_composer_a_partir_do_codigo-fonte_01x&quot;&gt;Como compilar o NCL Composer a partir do código-fonte (&amp;lt; 0.1.x )&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;
&lt;div class=&quot;noteclassic&quot;&gt;Para versões recentes (&amp;gt;= 0.2.x) vá para: &lt;a href=&quot;http://composer.telemidia.puc-rio.br/doku.php/pt-br/doc/tutorial/how_to_build_ncl_composer_from_source_code_0.2.x&quot; class=&quot;wikilink1&quot; title=&quot;pt-br:doc:tutorial:how_to_build_ncl_composer_from_source_code_0.2.x&quot;&gt; Como compilar o NCL Composer a partir do código-fonte (&amp;gt;= 0.2.x)&lt;/a&gt;.

&lt;/div&gt;
&lt;/div&gt;
&lt;!-- EDIT1 SECTION &quot;Como compilar o NCL Composer a partir do código-fonte (&lt; 0.1.x )&quot; [1-267] --&gt;
&lt;h3 class=&quot;sectionedit2&quot; id=&quot;requisitos&quot;&gt;Requisitos&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Git (&amp;gt;= 1.7.x) &lt;a href=&quot;http://git-scm.com/&quot; class=&quot;urlextern&quot; title=&quot;http://git-scm.com/&quot; rel=&quot;nofollow&quot;&gt;http://git-scm.com/&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Qt (&amp;gt;=4.7.x) &lt;a href=&quot;http://qt.nokia.com/downloads/&quot; class=&quot;urlextern&quot; title=&quot;http://qt.nokia.com/downloads/&quot; rel=&quot;nofollow&quot;&gt;http://qt.nokia.com/downloads/&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT2 SECTION &quot;Requisitos&quot; [268-377] --&gt;
&lt;h3 class=&quot;sectionedit3&quot; id=&quot;adquirindo_o_codigo-fonte&quot;&gt;Adquirindo o Código-fonte&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;/div&gt;

&lt;h5 id=&quot;sobre_o_git_retirado_do_sourceforgenet_com_traducao_livre&quot;&gt;Sobre o Git (retirado do sourceforge.net com tradução livre)&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Git é uma ferramenta de &lt;em&gt;Gestão de Código-fonte&lt;/em&gt; para desenvolvedores de software que suporta o desenvolvimento colaborativo dentro de uma equipe e o rastreamento de alterações do código-fonte ao longo do tempo.
&lt;/p&gt;

&lt;p&gt;
Git é usado por desenvolvedores e usuários avançados que precisam das mudanças mais recentes do software (antes do lançamento da versão ocorrer). Usuários de software geralmente não precisam utilizar o Git; tipicamente, eles irão fazer o download da versão oficial lançada pelo projeto.
&lt;/p&gt;

&lt;p&gt;
Desenvolvedores devem se familiarizar com Git lendo a &lt;a href=&quot;http://git-scm.com/documentation&quot; class=&quot;urlextern&quot; title=&quot;http://git-scm.com/documentation&quot; rel=&quot;nofollow&quot;&gt;Documentação do Git&lt;/a&gt;.
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;acesso_ao_repositorio_git_do_ncl_composer&quot;&gt;Acesso ao repositório Git do NCL Composer&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
A partir da linha de comando, você precisa somente executar os comandos abaixo para ter uma cópia do código-fonte do &lt;abbr title=&quot;Nested Context Language&quot;&gt;NCL&lt;/abbr&gt; Composer:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;$ git clone http://git.telemidia.puc-rio.br/composer-core.git
$ git clone http://git.telemidia.puc-rio.br/composer-gui.git
$ git clone http://git.telemidia.puc-rio.br/composer-plugins.git&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT3 SECTION &quot;Adquirindo o Código-fonte&quot; [378-1505] --&gt;
&lt;h3 class=&quot;sectionedit4&quot; id=&quot;compilando_o_codigo-fonte&quot;&gt;Compilando o Código-fonte&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Para compilar o código do &lt;abbr title=&quot;Nested Context Language&quot;&gt;NCL&lt;/abbr&gt; Composer basta, a partir da linha de comando, executar os comandos abaixo para cada diretório criado no passo anterior:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;$ qmake
$ make
$ make install&lt;/pre&gt;
&lt;div class=&quot;noteclassic&quot;&gt;Se você está compilando no Windows, você provavelmente precisará trocar &lt;em&gt;&amp;#039;make&amp;#039;&lt;/em&gt; por: 
&lt;pre class=&quot;code&quot;&gt;$ mingw32-make&lt;/pre&gt;

&lt;p&gt;
e &lt;em&gt;&amp;#039;make install&amp;#039;&lt;/em&gt; por:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;$ mingw32-make install&lt;/pre&gt;

&lt;/div&gt;&lt;div class=&quot;noteclassic&quot;&gt;Se você está compilando no Debian (ou Ubuntu), você provavelmente precisará trocar &lt;em&gt;&amp;#039;make install&amp;#039;&lt;/em&gt; por:
&lt;pre class=&quot;code&quot;&gt;$ sudo make install&lt;/pre&gt;

&lt;/div&gt;&lt;div class=&quot;noteclassic&quot;&gt;Se você está compilando no MAC, você provavelmente precisará trocar &lt;em&gt;&amp;#039;qmake&amp;#039;&lt;/em&gt; por: 
&lt;pre class=&quot;code&quot;&gt;$ qmake -spec macx-g++&lt;/pre&gt;

&lt;p&gt;
e &lt;em&gt;&amp;#039;make install&amp;#039;&lt;/em&gt; por:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;$ sudo make install&lt;/pre&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;!-- EDIT4 SECTION &quot;Compilando o Código-fonte&quot; [1506-2325] --&gt;
&lt;h3 class=&quot;sectionedit5&quot; id=&quot;compilando_com_caracteristica_de_execucao_remota&quot;&gt;Compilando com característica de &amp;quot;Execução Remota&amp;quot;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Por padrão, você não irá compilar o &lt;abbr title=&quot;Nested Context Language&quot;&gt;NCL&lt;/abbr&gt; Composer com suporte à “execução remota”. Isso é feito de forma a não incluir dependências para a &lt;a href=&quot;http://www.libssh2.org&quot; class=&quot;urlextern&quot; title=&quot;http://www.libssh2.org&quot; rel=&quot;nofollow&quot;&gt;libssh2&lt;/a&gt; dentro do código-fonte. Entretanto, se você quer usar esta característica, antes de compilar o subprojeto &lt;em&gt;composer-gui&lt;/em&gt;, você deve seguir os seguintes passos:
&lt;/p&gt;

&lt;p&gt;
1. Obtenha as bibliotecas relacionadas a LIBSSH2:
&lt;/p&gt;
&lt;div class=&quot;noteclassic&quot;&gt;No Ubuntu/Debian você pode instalar estas dependências com o seguinte comando:&lt;pre class=&quot;code&quot;&gt;$ sudo apt-get install libssh2-1-dev libgcrypt11-dev&lt;/pre&gt;

&lt;/div&gt;&lt;div class=&quot;noteclassic&quot;&gt;No Windows você pode fazer o download a partir de:
&lt;p&gt;
&lt;a href=&quot;http://composer.telemidia.puc-rio.br/downloads/deps/nclcomposer-gui-0.1.1-deps.zip&quot; class=&quot;urlextern&quot; title=&quot;http://composer.telemidia.puc-rio.br/downloads/deps/nclcomposer-gui-0.1.1-deps.zip&quot; rel=&quot;nofollow&quot;&gt;http://composer.telemidia.puc-rio.br/downloads/deps/nclcomposer-gui-0.1.1-deps.zip&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
e descomprimir os arquivos dentro do diretório &lt;em&gt;composer-gui&lt;/em&gt;. Você terá, então, algo com essa estrutura (observe a pasta para libssh): 
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;  + composer-core
      ...
  + composer-gui
    + data
    + deps
      + libssh2-1.3.0
    + images
    + include
    + translations
    ...
  + composer-plugins
      ...&lt;/pre&gt;

&lt;/div&gt;&lt;div class=&quot;noteclassic&quot;&gt;No Mac &lt;abbr title=&quot;Operating System&quot;&gt;OS&lt;/abbr&gt; X você precisará primeiro instalar um software chamado &lt;strong&gt;port&lt;/strong&gt; (&lt;a href=&quot;http://www.macports.org/&quot; class=&quot;urlextern&quot; title=&quot;http://www.macports.org/&quot; rel=&quot;nofollow&quot;&gt;http://www.macports.org/&lt;/a&gt;), que é basicamente um pacote de gerenciamento de sistema que simplifica a instalação de softwares no Mac &lt;abbr title=&quot;Operating System&quot;&gt;OS&lt;/abbr&gt; X. Assim, você poderá instalar as dependências com o seguinte comando:
&lt;pre class=&quot;code&quot;&gt;$ sudo port install libssh2 libgcrypt&lt;/pre&gt;

&lt;/div&gt;
&lt;p&gt;
2. Descomente (remova o caracter #) as seguintes linhas dentro de &lt;em&gt;composer-gui/Composer.pro&lt;/em&gt;: 
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;#CONFIG += runssh_on&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT5 SECTION &quot;Compilando com característica de Execução Remota&quot; [2326-3910] --&gt;
&lt;h3 class=&quot;sectionedit6&quot; id=&quot;testando&quot;&gt;Testando&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Para testar o &lt;abbr title=&quot;Nested Context Language&quot;&gt;NCL&lt;/abbr&gt; Composer, você precisará executar o seguinte comando:
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Windows:&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class=&quot;code&quot;&gt;$ C:\composer.exe&lt;/pre&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Linux&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class=&quot;code&quot;&gt;$ /usr/local/bin/composer&lt;/pre&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; MAC &lt;abbr title=&quot;Operating System&quot;&gt;OS&lt;/abbr&gt; X&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class=&quot;code&quot;&gt;$ open /Applications/Composer.app&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT6 SECTION &quot;Testando&quot; [3911-4166] --&gt;
&lt;h3 class=&quot;sectionedit7&quot; id=&quot;problemas&quot;&gt;Problemas?&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Se você tem problemas com algum dos passos anteriores veja nossa seção de &lt;a href=&quot;http://composer.telemidia.puc-rio.br/doku.php/pt-br/doc/faq&quot; class=&quot;wikilink1&quot; title=&quot;pt-br:doc:faq&quot;&gt;Perguntas Frequentes&lt;/a&gt; e, se ainda assim você não tiver conseguido resolver seu problema, &lt;a href=&quot;http://composer.telemidia.puc-rio.br/doku.php/pt-br/contact&quot; class=&quot;wikilink1&quot; title=&quot;pt-br:contact&quot;&gt;contate-nos&lt;/a&gt;.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT7 SECTION &quot;Problemas?&quot; [4167-] --&gt;
&lt;!-- cachefile /var/www/composer.telemidia.puc-rio.br/public_html/data/cache/a/a648199d460c9d2f4072eef1c4051e42.xhtml used --&gt;
</description>
    </item>
    <item rdf:about="http://composer.telemidia.puc-rio.br/doku.php/pt-br/doc/tutorial/how_to_build_ncl_composer_from_source_code_0.2.x">
        <dc:format>text/html</dc:format>
        <dc:date>2017-02-03T16:31:18-03:00</dc:date>
        <title>Como compilar o NCL Composer a partir do código-fonte (&gt;= 0.2.x)</title>
        <link>http://composer.telemidia.puc-rio.br/doku.php/pt-br/doc/tutorial/how_to_build_ncl_composer_from_source_code_0.2.x</link>
        <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;como_compilar_o_ncl_composer_a_partir_do_codigo-fonte_02x&quot;&gt;Como compilar o NCL Composer a partir do código-fonte (&amp;gt;= 0.2.x)&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;
&lt;div class=&quot;noteclassic&quot;&gt;Para versões anteriores (&amp;lt; 0.1.x): &lt;a href=&quot;http://composer.telemidia.puc-rio.br/doku.php/pt-br/doc/tutorial/how_to_build_ncl_composer_from_source_code&quot; class=&quot;wikilink1&quot; title=&quot;pt-br:doc:tutorial:how_to_build_ncl_composer_from_source_code&quot;&gt; Como compilar o NCL Composer a partir do código-fonte (&amp;lt; 0.1.x)&lt;/a&gt;.

&lt;/div&gt;
&lt;/div&gt;
&lt;!-- EDIT1 SECTION &quot;Como compilar o NCL Composer a partir do código-fonte (&gt;= 0.2.x)&quot; [1-252] --&gt;
&lt;h3 class=&quot;sectionedit2&quot; id=&quot;requisitos&quot;&gt;Requisitos&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Git (&amp;gt;= 1.7.x) &lt;a href=&quot;http://git-scm.com/&quot; class=&quot;urlextern&quot; title=&quot;http://git-scm.com/&quot; rel=&quot;nofollow&quot;&gt;http://git-scm.com/&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Qt (&amp;gt;=4.7.x) &lt;a href=&quot;http://qt.nokia.com/downloads/&quot; class=&quot;urlextern&quot; title=&quot;http://qt.nokia.com/downloads/&quot; rel=&quot;nofollow&quot;&gt;http://qt.nokia.com/downloads/&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT2 SECTION &quot;Requisitos&quot; [253-361] --&gt;
&lt;h3 class=&quot;sectionedit3&quot; id=&quot;adquirindo_o_codigo-fonte&quot;&gt;Adquirindo o Código-fonte&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;/div&gt;

&lt;h5 id=&quot;sobre_o_git_retirado_do_sourceforgenet_com_traducao_livre&quot;&gt;Sobre o Git (retirado do sourceforge.net com tradução livre)&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Git é uma ferramenta de &lt;em&gt;Gestão de Código-fonte&lt;/em&gt; para desenvolvedores de software que suporta o desenvolvimento colaborativo dentro de uma equipe e o rastreamento de alterações do código-fonte ao longo do tempo.
&lt;/p&gt;

&lt;p&gt;
Git é usado por desenvolvedores e usuários avançados que precisam das mudanças mais recentes do software (antes do lançamento da versão ocorrer). Usuários de software geralmente não precisam utilizar o Git; tipicamente, eles irão fazer o download da versão oficial lançada pelo projeto.
&lt;/p&gt;

&lt;p&gt;
Desenvolvedores devem se familiarizar com Git lendo a &lt;a href=&quot;http://git-scm.com/documentation&quot; class=&quot;urlextern&quot; title=&quot;http://git-scm.com/documentation&quot; rel=&quot;nofollow&quot;&gt;Documentação do Git&lt;/a&gt;.
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;acesso_ao_repositorio_git_do_ncl_composer&quot;&gt;Acesso ao repositório Git do NCL Composer&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
A partir da linha de comando, você precisa somente executar o comando abaixo para ter uma cópia do código-fonte do &lt;abbr title=&quot;Nested Context Language&quot;&gt;NCL&lt;/abbr&gt; Composer:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;$ git clone http://git.telemidia.puc-rio.br/nclcomposer.git&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT3 SECTION &quot;Adquirindo o Código-fonte&quot; [362-1359] --&gt;
&lt;h3 class=&quot;sectionedit4&quot; id=&quot;compilando_o_codigo-fonte&quot;&gt;Compilando o Código-fonte&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Para compilar o código do &lt;abbr title=&quot;Nested Context Language&quot;&gt;NCL&lt;/abbr&gt; Composer basta, a partir da linha de comando, executar os comandos abaixo para cada diretório criado no passo anterior:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;$ qmake
$ make install&lt;/pre&gt;
&lt;div class=&quot;noteclassic&quot;&gt;Se você está compilando no Windows, você provavelmente precisará trocar &lt;em&gt;&amp;#039;make&amp;#039;&lt;/em&gt; por: 
&lt;pre class=&quot;code&quot;&gt;$ mingw32-make&lt;/pre&gt;

&lt;p&gt;
e &lt;em&gt;&amp;#039;make install&amp;#039;&lt;/em&gt; por:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;$ mingw32-make install&lt;/pre&gt;

&lt;/div&gt;&lt;div class=&quot;noteclassic&quot;&gt;Se você está compilando no Debian (ou Ubuntu), você provavelmente precisará trocar &lt;em&gt;&amp;#039;make install&amp;#039;&lt;/em&gt; por:
&lt;pre class=&quot;code&quot;&gt;$ sudo make install&lt;/pre&gt;

&lt;/div&gt;&lt;div class=&quot;noteclassic&quot;&gt;Se você está compilando no MAC, você provavelmente precisará trocar &lt;em&gt;&amp;#039;qmake&amp;#039;&lt;/em&gt; por: 
&lt;pre class=&quot;code&quot;&gt;$ qmake -spec macx-g++&lt;/pre&gt;

&lt;p&gt;
e &lt;em&gt;&amp;#039;make install&amp;#039;&lt;/em&gt; por:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;$ sudo make install&lt;/pre&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;!-- EDIT4 SECTION &quot;Compilando o Código-fonte&quot; [1360-2172] --&gt;
&lt;h3 class=&quot;sectionedit5&quot; id=&quot;compilando_com_caracteristica_de_execucao_remota&quot;&gt;Compilando com característica de &amp;quot;Execução Remota&amp;quot;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Por padrão, você não irá compilar o &lt;abbr title=&quot;Nested Context Language&quot;&gt;NCL&lt;/abbr&gt; Composer com suporte à “execução remota”. Isso é feito de forma a não incluir dependências para a &lt;a href=&quot;http://www.libssh2.org&quot; class=&quot;urlextern&quot; title=&quot;http://www.libssh2.org&quot; rel=&quot;nofollow&quot;&gt;libssh2&lt;/a&gt; dentro do código-fonte. Entretanto, se você quer usar esta característica, antes de compilar o subprojeto &lt;em&gt;composer-gui&lt;/em&gt;, você deve seguir os seguintes passos:
&lt;/p&gt;

&lt;p&gt;
1. Obtenha as bibliotecas relacionadas a LIBSSH2:
&lt;/p&gt;
&lt;div class=&quot;noteclassic&quot;&gt;No Ubuntu/Debian você pode instalar estas dependências com o seguinte comando:&lt;pre class=&quot;code&quot;&gt;$ sudo apt-get install libssh2-1-dev libgcrypt11-dev&lt;/pre&gt;

&lt;/div&gt;&lt;div class=&quot;noteclassic&quot;&gt;No Windows você pode fazer o download a partir de:
&lt;p&gt;
&lt;a href=&quot;http://composer.telemidia.puc-rio.br/downloads/deps/nclcomposer-gui-0.1.1-deps.zip&quot; class=&quot;urlextern&quot; title=&quot;http://composer.telemidia.puc-rio.br/downloads/deps/nclcomposer-gui-0.1.1-deps.zip&quot; rel=&quot;nofollow&quot;&gt;http://composer.telemidia.puc-rio.br/downloads/deps/nclcomposer-gui-0.1.1-deps.zip&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
e descomprimir os arquivos dentro do diretório &lt;em&gt;composer-gui&lt;/em&gt;. Você terá, então, algo com essa estrutura (observe a pasta para libssh): 
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;  + composer-core
      ...
  + composer-gui
    + data
    + deps
      + libssh2-1.3.0
    + images
    + include
    + translations
    ...
  + composer-plugins
      ...&lt;/pre&gt;

&lt;/div&gt;&lt;div class=&quot;noteclassic&quot;&gt;No Mac &lt;abbr title=&quot;Operating System&quot;&gt;OS&lt;/abbr&gt; X você precisará primeiro instalar um software chamado &lt;strong&gt;port&lt;/strong&gt; (&lt;a href=&quot;http://www.macports.org/&quot; class=&quot;urlextern&quot; title=&quot;http://www.macports.org/&quot; rel=&quot;nofollow&quot;&gt;http://www.macports.org/&lt;/a&gt;), que é basicamente um pacote de gerenciamento de sistema que simplifica a instalação de softwares no Mac &lt;abbr title=&quot;Operating System&quot;&gt;OS&lt;/abbr&gt; X. Assim, você poderá instalar as dependências com o seguinte comando:
&lt;pre class=&quot;code&quot;&gt;$ sudo port install libssh2 libgcrypt&lt;/pre&gt;

&lt;/div&gt;
&lt;p&gt;
2. Descomente (remova o caracter #) as seguintes linhas dentro de &lt;em&gt;composer-gui/Composer.pro&lt;/em&gt;: 
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;#CONFIG += runssh_on&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT5 SECTION &quot;Compilando com característica de Execução Remota&quot; [2173-3757] --&gt;
&lt;h3 class=&quot;sectionedit6&quot; id=&quot;testando&quot;&gt;Testando&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Para testar o &lt;abbr title=&quot;Nested Context Language&quot;&gt;NCL&lt;/abbr&gt; Composer, você precisará executar o seguinte comando:
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Windows:&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class=&quot;code&quot;&gt;$ C:\composer.exe&lt;/pre&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Linux&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class=&quot;code&quot;&gt;$ /usr/local/bin/composer&lt;/pre&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; MAC &lt;abbr title=&quot;Operating System&quot;&gt;OS&lt;/abbr&gt; X&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class=&quot;code&quot;&gt;$ open /Applications/Composer.app&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT6 SECTION &quot;Testando&quot; [3758-4013] --&gt;
&lt;h3 class=&quot;sectionedit7&quot; id=&quot;problemas&quot;&gt;Problemas?&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Se você tem problemas com algum dos passos anteriores veja nossa seção de &lt;a href=&quot;http://composer.telemidia.puc-rio.br/doku.php/pt-br/doc/faq&quot; class=&quot;wikilink1&quot; title=&quot;pt-br:doc:faq&quot;&gt;Perguntas Frequentes&lt;/a&gt; e, se ainda assim você não tiver conseguido resolver seu problema, &lt;a href=&quot;http://composer.telemidia.puc-rio.br/doku.php/pt-br/contact&quot; class=&quot;wikilink1&quot; title=&quot;pt-br:contact&quot;&gt;contate-nos&lt;/a&gt;.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT7 SECTION &quot;Problemas?&quot; [4014-] --&gt;
&lt;!-- cachefile /var/www/composer.telemidia.puc-rio.br/public_html/data/cache/d/d29b6c91435e171a72c7ce42f9fe4f4a.xhtml used --&gt;
</description>
    </item>
    <item rdf:about="http://composer.telemidia.puc-rio.br/doku.php/pt-br/doc/tutorial/how_to_configure_run">
        <dc:format>text/html</dc:format>
        <dc:date>2017-02-03T16:31:18-03:00</dc:date>
        <title>Como configurar o NCL Composer para executar sua aplicação</title>
        <link>http://composer.telemidia.puc-rio.br/doku.php/pt-br/doc/tutorial/how_to_configure_run</link>
        <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;como_configurar_o_ncl_composer_para_executar_sua_aplicacao&quot;&gt;Como configurar o NCL Composer para executar sua aplicação&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Existem duas formas principais de executar sua aplicação &lt;abbr title=&quot;Nested Context Language&quot;&gt;NCL&lt;/abbr&gt; a partir da interface do &lt;abbr title=&quot;Nested Context Language&quot;&gt;NCL&lt;/abbr&gt; Composer:
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; No executável do Ginga-&lt;abbr title=&quot;Nested Context Language&quot;&gt;NCL&lt;/abbr&gt; instalado localmente; ou&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; em uma máquina remota (e.g. &lt;a href=&quot;http://www.softwarepublico.gov.br&quot; class=&quot;urlextern&quot; title=&quot;http://www.softwarepublico.gov.br&quot; rel=&quot;nofollow&quot;&gt;Ginga Virtual Set-top Box&lt;/a&gt;);&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT1 SECTION &quot;Como configurar o NCL Composer para executar sua aplicação&quot; [1-334] --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;executando_no_ginga-ncl_localmente&quot;&gt;Executando no Ginga-NCL localmente&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Para configurar o &lt;abbr title=&quot;Nested Context Language&quot;&gt;NCL&lt;/abbr&gt; Composer para executar em uma instalação local do Ginga selecione o Menu: &lt;em&gt;Edit→Preferences→Run Configuration&lt;/em&gt;.
&lt;/p&gt;

&lt;p&gt;
A tela a seguir será apresentada:
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;http://composer.telemidia.puc-rio.br/lib/exe/detail.php/tutorial/running_ncl_app_local.png?id=pt-br%3Adoc%3Atutorial%3Ahow_to_configure_run&quot; class=&quot;media&quot; title=&quot;tutorial:running_ncl_app_local.png&quot;&gt;&lt;img src=&quot;http://composer.telemidia.puc-rio.br/lib/exe/fetch.php/tutorial/running_ncl_app_local.png?w=600&amp;amp;tok=abe6e1&quot; class=&quot;media&quot; alt=&quot;&quot; width=&quot;600&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
Nessa janela, marque a opção &lt;em&gt;Local: Ginga Player&lt;/em&gt; e na caixa de texto &lt;em&gt;Command&lt;/em&gt; coloque o caminho completo do executável Ginga-&lt;abbr title=&quot;Nested Context Language&quot;&gt;NCL&lt;/abbr&gt;.
&lt;/p&gt;

&lt;p&gt;
A caixa de texto &lt;em&gt;Arguments&lt;/em&gt; pode ser preenchida com os parâmetros que o executável do Ginga-&lt;abbr title=&quot;Nested Context Language&quot;&gt;NCL&lt;/abbr&gt; será chamado. Você deve colocar um parâmetro em cada uma das linhas.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT2 SECTION &quot;Executando no Ginga-NCL localmente&quot; [335-918] --&gt;
&lt;h2 class=&quot;sectionedit3&quot; id=&quot;executando_no_ginga_virtual_set-top_box&quot;&gt;Executando no Ginga Virtual Set-top Box&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Para executar no Ginga Virtual Set-top Box escolha a opção: &lt;em&gt;Remote: Ginga-&lt;abbr title=&quot;Nested Context Language&quot;&gt;NCL&lt;/abbr&gt; Virtual Set-top Box&lt;/em&gt;.
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;http://composer.telemidia.puc-rio.br/lib/exe/detail.php/tutorial/running_ncl_app_remote.png?id=pt-br%3Adoc%3Atutorial%3Ahow_to_configure_run&quot; class=&quot;media&quot; title=&quot;tutorial:running_ncl_app_remote.png&quot;&gt;&lt;img src=&quot;http://composer.telemidia.puc-rio.br/lib/exe/fetch.php/tutorial/running_ncl_app_remote.png?w=600&amp;amp;tok=163f1b&quot; class=&quot;media&quot; alt=&quot;&quot; width=&quot;600&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
Usualmente o único parâmetro a ser modificado é o endereço IP da máquina virtual contendo o Ginga-&lt;abbr title=&quot;Nested Context Language&quot;&gt;NCL&lt;/abbr&gt; Virtual Set-top Box. Sugerimos que você modifique os outros parâmetros apenas se souber exatamente o que está fazendo.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT3 SECTION &quot;Executando no Ginga Virtual Set-top Box&quot; [919-] --&gt;
&lt;!-- cachefile /var/www/composer.telemidia.puc-rio.br/public_html/data/cache/1/1639ae332543b0d3992460335b242a6d.xhtml used --&gt;
</description>
    </item>
    <item rdf:about="http://composer.telemidia.puc-rio.br/doku.php/pt-br/doc/tutorial/how_to_create_a_plugin_to_ncl_composer">
        <dc:format>text/html</dc:format>
        <dc:date>2017-02-03T16:31:18-03:00</dc:date>
        <title>How to: Create an NCL Composer Plugin</title>
        <link>http://composer.telemidia.puc-rio.br/doku.php/pt-br/doc/tutorial/how_to_create_a_plugin_to_ncl_composer</link>
        <description>
&lt;h2 class=&quot;sectionedit1&quot; id=&quot;how_tocreate_an_ncl_composer_plugin&quot;&gt;How to: Create an NCL Composer Plugin&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;div class=&quot;notewarning&quot;&gt;This page is a draft
&lt;/div&gt;&lt;div class=&quot;noteimportant&quot;&gt;This tutorial assumes you are familiar with C/C++ programming languages and have basic knowledge about Qt framework (mainly the &lt;a href=&quot;http://doc.qt.nokia.com/4.7/qmake-tutorial.html&quot; class=&quot;urlextern&quot; title=&quot;http://doc.qt.nokia.com/4.7/qmake-tutorial.html&quot; rel=&quot;nofollow&quot;&gt;qmake build system&lt;/a&gt; and &lt;a href=&quot;http://doc.qt.nokia.com/4.7/signalsandslots.html&quot; class=&quot;urlextern&quot; title=&quot;http://doc.qt.nokia.com/4.7/signalsandslots.html&quot; rel=&quot;nofollow&quot;&gt;signals &amp;amp; slots mechanism&lt;/a&gt;).

&lt;/div&gt;
&lt;/div&gt;
&lt;!-- EDIT1 SECTION &quot;How to: Create an NCL Composer Plugin&quot; [1-402] --&gt;
&lt;h3 class=&quot;sectionedit2&quot; id=&quot;what_is_a_plugin&quot;&gt;What is a Plugin?&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
A plugin is a piece of software distributed separated from other software (the main or host) aiming to extend its functionalities. In order to allow extensions and customizations &lt;em&gt;&lt;abbr title=&quot;Nested Context Language&quot;&gt;NCL&lt;/abbr&gt; Composer&lt;/em&gt; architecture is based on plugins.
&lt;/p&gt;

&lt;p&gt;
A common way to extend the &lt;abbr title=&quot;Nested Context Language&quot;&gt;NCL&lt;/abbr&gt; Composer functionalities is creating new Views to documents being developed. A View is a plugin that brings out a representation of this document (e.g. showing its entities in a tree, or showing how this document is represented in a timeline, etc.).
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT2 SECTION &quot;What is a Plugin?&quot; [403-943] --&gt;
&lt;h3 class=&quot;sectionedit3&quot; id=&quot;ncl_composer_plugins&quot;&gt;NCL Composer Plugins&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
An &lt;abbr title=&quot;Nested Context Language&quot;&gt;NCL&lt;/abbr&gt; Composer plugins is based on two main C++ interfaces that must to be implemented: &lt;em&gt;IPluginFactory&lt;/em&gt; and &lt;em&gt;IPlugin&lt;/em&gt;.
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;ipluginfactory&quot;&gt;IPluginFactory&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
The IPluginFactory is responsible to create new instances of IPlugin&amp;#039;s, and keep global informations about the plugin, like its vendor, version, etc. Every time a document is open, the &lt;abbr title=&quot;Nested Context Language&quot;&gt;NCL&lt;/abbr&gt; Composer will try to create a new instance of the plugin calling IPluginFactory&amp;#039;s method. But if your plugin is a singleton, you can always returns the same instance.
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;iplugin&quot;&gt;IPlugin&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
The IPlugin is the &lt;abbr title=&quot;Nested Context Language&quot;&gt;NCL&lt;/abbr&gt; Composer plugin itself. When a document is open by &lt;abbr title=&quot;Nested Context Language&quot;&gt;NCL&lt;/abbr&gt; Composer, a new instance of the plugin will be required by &lt;abbr title=&quot;Nested Context Language&quot;&gt;NCL&lt;/abbr&gt; Composer. The IPlugin is linked with the Document instance and will be called every time this document is changed. Likewise, the IPlugin is also able to require changes in the Document.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT3 SECTION &quot;NCL Composer Plugins&quot; [944-1820] --&gt;
&lt;h3 class=&quot;sectionedit4&quot; id=&quot;an_exampledebug_plugin&quot;&gt;An example: Debug Plugin&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
As a simple example, let&amp;#039;s create a Debug Plugin. This plugin will print all the messages that it receives from &lt;abbr title=&quot;Nested Context Language&quot;&gt;NCL&lt;/abbr&gt; Composer core.
&lt;/p&gt;

&lt;p&gt;
First of all, let&amp;#039;s create our DebugConsolePlugin.h:
&lt;/p&gt;
&lt;pre class=&quot;code cpp&quot;&gt;&lt;span class=&quot;co2&quot;&gt;#ifndef DEBUGCONSOLEPLUGIN_H&lt;/span&gt;
&lt;span class=&quot;co2&quot;&gt;#define DEBUGCONSOLEPLUGIN_H&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co2&quot;&gt;#include &amp;lt;QObject&amp;gt;&lt;/span&gt;
&lt;span class=&quot;co2&quot;&gt;#include &amp;lt;core/extensions/IPlugin.h&amp;gt;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw2&quot;&gt;using&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;namespace&lt;/span&gt; composer&lt;span class=&quot;sy4&quot;&gt;::&lt;/span&gt;&lt;span class=&quot;me2&quot;&gt;core&lt;/span&gt;&lt;span class=&quot;sy4&quot;&gt;::&lt;/span&gt;&lt;span class=&quot;me2&quot;&gt;extension&lt;/span&gt;&lt;span class=&quot;sy4&quot;&gt;::&lt;/span&gt;&lt;span class=&quot;me2&quot;&gt;plugin&lt;/span&gt;&lt;span class=&quot;sy4&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw2&quot;&gt;class&lt;/span&gt; DebugConsolePlugin &lt;span class=&quot;sy4&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;public&lt;/span&gt; IPlugin
&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        Q_OBJECT
    &lt;span class=&quot;kw2&quot;&gt;private&lt;/span&gt;&lt;span class=&quot;sy4&quot;&gt;:&lt;/span&gt;
        QWidget &lt;span class=&quot;sy2&quot;&gt;*&lt;/span&gt;window&lt;span class=&quot;sy4&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw2&quot;&gt;public&lt;/span&gt;&lt;span class=&quot;sy4&quot;&gt;:&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;explicit&lt;/span&gt; DebugConsolePlugin&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy4&quot;&gt;;&lt;/span&gt;
        ~DebugConsolePlugin&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy4&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
        QWidget&lt;span class=&quot;sy2&quot;&gt;*&lt;/span&gt; getWidget&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy4&quot;&gt;;&lt;/span&gt;
	&lt;span class=&quot;kw4&quot;&gt;bool&lt;/span&gt; init&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy4&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw2&quot;&gt;public&lt;/span&gt; slots&lt;span class=&quot;sy4&quot;&gt;:&lt;/span&gt;
        &lt;span class=&quot;kw4&quot;&gt;void&lt;/span&gt; onEntityAdded&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;QString ID, Entity &lt;span class=&quot;sy2&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy4&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;kw4&quot;&gt;void&lt;/span&gt; onEntityChanged&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;QString ID, Entity &lt;span class=&quot;sy2&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy4&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;kw4&quot;&gt;void&lt;/span&gt; onEntityRemoved&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;QString ID, QString entityID&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy4&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw4&quot;&gt;void&lt;/span&gt; errorMessage&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;QString error&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy4&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;sy4&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co2&quot;&gt;#endif // DEBUGCONSOLEPLUGIN_H&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;
And the DebugConsole.cpp:
&lt;/p&gt;
&lt;pre class=&quot;code cpp&quot;&gt;&lt;span class=&quot;co2&quot;&gt;#include &amp;quot;DebugConsolePlugin.h&amp;quot;&lt;/span&gt;
&amp;nbsp;
DebugConsolePlugin&lt;span class=&quot;sy4&quot;&gt;::&lt;/span&gt;&lt;span class=&quot;me2&quot;&gt;DebugConsolePlugin&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
  &lt;span class=&quot;co1&quot;&gt;// Do nothing&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
DebugConsolePlugin&lt;span class=&quot;sy4&quot;&gt;::&lt;/span&gt;~DebugConsolePlugin&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
  &lt;span class=&quot;co1&quot;&gt;// Do nothing&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw4&quot;&gt;void&lt;/span&gt; DebugConsolePlugin&lt;span class=&quot;sy4&quot;&gt;::&lt;/span&gt;&lt;span class=&quot;me2&quot;&gt;init&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
  &lt;span class=&quot;co1&quot;&gt;// Do nothing&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
QWidget&lt;span class=&quot;sy2&quot;&gt;*&lt;/span&gt; DebugConsolePlugin&lt;span class=&quot;sy4&quot;&gt;::&lt;/span&gt;&lt;span class=&quot;me2&quot;&gt;getWidget&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;NULL&lt;/span&gt;&lt;span class=&quot;sy4&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;coMULTI&quot;&gt;/*This tell to NCL Composer that our plugin doesn't have a GUI*/&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw4&quot;&gt;void&lt;/span&gt; DebugConsolePlugin&lt;span class=&quot;sy4&quot;&gt;::&lt;/span&gt;&lt;span class=&quot;me2&quot;&gt;onEntityAdded&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;QString ID, Entity &lt;span class=&quot;sy2&quot;&gt;*&lt;/span&gt;entity&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    QString line &lt;span class=&quot;sy1&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;PLUGIN (&amp;quot;&lt;/span&gt; &lt;span class=&quot;sy2&quot;&gt;+&lt;/span&gt; ID &lt;span class=&quot;sy2&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;) added the Entity (&amp;quot;&lt;/span&gt; &lt;span class=&quot;sy2&quot;&gt;+&lt;/span&gt;
                   entity&lt;span class=&quot;sy2&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;sy1&quot;&gt;&amp;gt;&lt;/span&gt;getType&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy2&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot; - &amp;quot;&lt;/span&gt; &lt;span class=&quot;sy2&quot;&gt;+&lt;/span&gt; entity&lt;span class=&quot;sy2&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;sy1&quot;&gt;&amp;gt;&lt;/span&gt;getUniqueId&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy2&quot;&gt;+&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;)&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy4&quot;&gt;;&lt;/span&gt;
    qDebug&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy1&quot;&gt;&amp;lt;&amp;lt;&lt;/span&gt; line&lt;span class=&quot;sy4&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw4&quot;&gt;void&lt;/span&gt; DebugConsolePlugin&lt;span class=&quot;sy4&quot;&gt;::&lt;/span&gt;&lt;span class=&quot;me2&quot;&gt;errorMessage&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;QString error&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    qDebug&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy1&quot;&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;ERROR:&amp;quot;&lt;/span&gt; &lt;span class=&quot;sy1&quot;&gt;&amp;lt;&amp;lt;&lt;/span&gt; error&lt;span class=&quot;sy4&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw4&quot;&gt;void&lt;/span&gt; DebugConsolePlugin&lt;span class=&quot;sy4&quot;&gt;::&lt;/span&gt;&lt;span class=&quot;me2&quot;&gt;onEntityChanged&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;QString ID, Entity &lt;span class=&quot;sy2&quot;&gt;*&lt;/span&gt; entity&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    QString line &lt;span class=&quot;sy1&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;PLUGIN (&amp;quot;&lt;/span&gt; &lt;span class=&quot;sy2&quot;&gt;+&lt;/span&gt; ID &lt;span class=&quot;sy2&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;) changed the Entity (&amp;quot;&lt;/span&gt; &lt;span class=&quot;sy2&quot;&gt;+&lt;/span&gt;
                    entity&lt;span class=&quot;sy2&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;sy1&quot;&gt;&amp;gt;&lt;/span&gt;getType&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy2&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot; - &amp;quot;&lt;/span&gt; &lt;span class=&quot;sy2&quot;&gt;+&lt;/span&gt; entity&lt;span class=&quot;sy2&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;sy1&quot;&gt;&amp;gt;&lt;/span&gt;getUniqueId&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy2&quot;&gt;+&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;)&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy4&quot;&gt;;&lt;/span&gt;
    qDebug&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy1&quot;&gt;&amp;lt;&amp;lt;&lt;/span&gt; line&lt;span class=&quot;sy4&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw4&quot;&gt;void&lt;/span&gt; DebugConsolePlugin&lt;span class=&quot;sy4&quot;&gt;::&lt;/span&gt;&lt;span class=&quot;me2&quot;&gt;onEntityRemoved&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;QString ID, QString entityID&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    QString line &lt;span class=&quot;sy1&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;PLUGIN (&amp;quot;&lt;/span&gt; &lt;span class=&quot;sy2&quot;&gt;+&lt;/span&gt; ID &lt;span class=&quot;sy2&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;) removed Entity (&amp;quot;&lt;/span&gt; &lt;span class=&quot;sy2&quot;&gt;+&lt;/span&gt;
                   entityID &lt;span class=&quot;sy2&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;)&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy4&quot;&gt;;&lt;/span&gt;
    qDebug&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy1&quot;&gt;&amp;lt;&amp;lt;&lt;/span&gt; line&lt;span class=&quot;sy4&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;
In order to &lt;abbr title=&quot;Nested Context Language&quot;&gt;NCL&lt;/abbr&gt; Composer know how to create new instances of our DebugPlugin, we have to provide a Factory class:
&lt;/p&gt;
&lt;pre class=&quot;code cpp&quot;&gt;&lt;span class=&quot;co2&quot;&gt;#ifndef DEBUGCONSOLE_H&lt;/span&gt;
&lt;span class=&quot;co2&quot;&gt;#define DEBUGCONSOLE_H&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co2&quot;&gt;#include &amp;quot;DebugConsole_global.h&amp;quot;&lt;/span&gt;
&lt;span class=&quot;co2&quot;&gt;#include &amp;quot;DebugConsolePlugin.h&amp;quot;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co2&quot;&gt;#include &amp;lt;core/extensions/IPluginFactory.h&amp;gt;&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;using&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;namespace&lt;/span&gt; composer&lt;span class=&quot;sy4&quot;&gt;::&lt;/span&gt;&lt;span class=&quot;me2&quot;&gt;extension&lt;/span&gt;&lt;span class=&quot;sy4&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw2&quot;&gt;class&lt;/span&gt; DebugConsoleFactory &lt;span class=&quot;sy4&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;public&lt;/span&gt; QObject,
                            &lt;span class=&quot;kw2&quot;&gt;public&lt;/span&gt; IPluginFactory
&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    Q_OBJECT
    Q_INTERFACES&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;IPluginFactory&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw2&quot;&gt;public&lt;/span&gt;&lt;span class=&quot;sy4&quot;&gt;:&lt;/span&gt;
         DebugConsoleFactory&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy4&quot;&gt;;&lt;/span&gt;
         ~DebugConsoleFactory&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy4&quot;&gt;;&lt;/span&gt;
         IPlugin&lt;span class=&quot;sy2&quot;&gt;*&lt;/span&gt; createPluginInstance&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy4&quot;&gt;;&lt;/span&gt;
         &lt;span class=&quot;kw4&quot;&gt;void&lt;/span&gt; releasePluginInstance&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;IPlugin &lt;span class=&quot;sy2&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy4&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
         &lt;span class=&quot;coMULTI&quot;&gt;/* Global information about DebugPlugin. */&lt;/span&gt;
         QString id&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;const&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;br.puc-rio.telemidia.DebugPlugin&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy4&quot;&gt;;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;sy4&quot;&gt;;&lt;/span&gt;
         QString name&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;const&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Debug Plugin&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy4&quot;&gt;;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;sy4&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
         QString version&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;0.1&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy4&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
         QString compatVersion&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;0.1&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy4&quot;&gt;;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
         QString vendor&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Telemidia Lab&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy4&quot;&gt;;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
         QString copyright&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Telemidia/PUC-Rio&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy4&quot;&gt;;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
         QString description&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Debug Console View prints all the messages send by NCL Composer to plugins.&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy4&quot;&gt;;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
         QString url&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;http://composer.telemidia.puc-rio.br/debug&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy4&quot;&gt;;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
         QString category&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Debug&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy4&quot;&gt;;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;sy4&quot;&gt;;&lt;/span&gt;&lt;/pre&gt;
&lt;pre class=&quot;code cpp&quot;&gt;&lt;span class=&quot;co2&quot;&gt;#include &amp;quot;DebugConsoleFactory.h&amp;quot;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw2&quot;&gt;namespace&lt;/span&gt; composer &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw2&quot;&gt;namespace&lt;/span&gt; plugin &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;namespace&lt;/span&gt; debug &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
&amp;nbsp;
DebugConsoleFactory&lt;span class=&quot;sy4&quot;&gt;::&lt;/span&gt;&lt;span class=&quot;me2&quot;&gt;DebugConsoleFactory&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
  &lt;span class=&quot;co1&quot;&gt;//Do nothing&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
DebugConsoleFactory&lt;span class=&quot;sy4&quot;&gt;::&lt;/span&gt;~DebugConsoleFactory&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
  &lt;span class=&quot;co1&quot;&gt;//Do nothing&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
IPlugin&lt;span class=&quot;sy2&quot;&gt;*&lt;/span&gt; DebugConsoleFactory&lt;span class=&quot;sy4&quot;&gt;::&lt;/span&gt;&lt;span class=&quot;me2&quot;&gt;createPluginInstance&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;new&lt;/span&gt; DebugConsolePlugin&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy4&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw4&quot;&gt;void&lt;/span&gt; DebugConsoleFactory&lt;span class=&quot;sy4&quot;&gt;::&lt;/span&gt;&lt;span class=&quot;me2&quot;&gt;releasePluginInstance&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;IPlugin &lt;span class=&quot;sy2&quot;&gt;*&lt;/span&gt;plugin&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    DebugConsolePlugin &lt;span class=&quot;sy2&quot;&gt;*&lt;/span&gt;debug &lt;span class=&quot;sy1&quot;&gt;=&lt;/span&gt; qobject_cast&lt;span class=&quot;sy1&quot;&gt;&amp;lt;&lt;/span&gt;DebugConsolePlugin&lt;span class=&quot;sy2&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;sy1&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;plugin&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy4&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;debug&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        &lt;span class=&quot;kw3&quot;&gt;delete&lt;/span&gt; debug&lt;span class=&quot;sy4&quot;&gt;;&lt;/span&gt;
        debug &lt;span class=&quot;sy1&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;NULL&lt;/span&gt;&lt;span class=&quot;sy4&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;// This is very important, and will allow to Qt framework recognize your&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;// plugin&lt;/span&gt;
Q_EXPORT_PLUGIN2&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;DebugConsole,DebugConsoleFactory&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;co1&quot;&gt;//end namespace&lt;/span&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT4 SECTION &quot;An example: Debug Plugin&quot; [1821-] --&gt;
&lt;!-- cachefile /var/www/composer.telemidia.puc-rio.br/public_html/data/cache/8/81df8e8f104b4a5b22ddbfa5a0e0b040.xhtml used --&gt;
</description>
    </item>
    <item rdf:about="http://composer.telemidia.puc-rio.br/doku.php/pt-br/doc/tutorial/index">
        <dc:format>text/html</dc:format>
        <dc:date>2017-02-03T16:31:18-03:00</dc:date>
        <title>NCL Composer Tutorials</title>
        <link>http://composer.telemidia.puc-rio.br/doku.php/pt-br/doc/tutorial/index</link>
        <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;ncl_composer_tutorials&quot;&gt;NCL Composer Tutorials&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;
&lt;div class=&quot;noteclassic&quot;&gt;Esta página tem o objetivo de reunir posts e tutoriais relacionados ao &lt;abbr title=&quot;Nested Context Language&quot;&gt;NCL&lt;/abbr&gt; Composer. Se você encontrar qualquer problema, tiver alguma sugestão, ou quiser incluir um tutorial criado por você, por favor &lt;a href=&quot;http://composer.telemidia.puc-rio.br/doku.php/pt-br/contact&quot; class=&quot;wikilink1&quot; title=&quot;pt-br:contact&quot;&gt;contate-nos&lt;/a&gt;.
&lt;/div&gt;
&lt;/div&gt;
&lt;!-- EDIT1 SECTION &quot;NCL Composer Tutorials&quot; [1-297] --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;para_usuarios&quot;&gt;Para Usuários&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ol&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://composer.telemidia.puc-rio.br/doku.php/pt-br/dev/contributing&quot; class=&quot;wikilink1&quot; title=&quot;pt-br:dev:contributing&quot;&gt;Como contribuir com o NCL Composer?&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://composer.telemidia.puc-rio.br/doku.php/pt-br/news/ncl_composer_0.1.1_intro_video&quot; class=&quot;wikilink1&quot; title=&quot;pt-br:news:ncl_composer_0.1.1_intro_video&quot;&gt;Um vídeo introdutório sobre como desenvolver uma aplicação com o NCL Composer&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://composer.telemidia.puc-rio.br/doku.php/pt-br/doc/tutorial/how_to_configure_run&quot; class=&quot;wikilink1&quot; title=&quot;pt-br:doc:tutorial:how_to_configure_run&quot;&gt;Como configurar o NCL Composer para executar sua aplicação&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;/div&gt;
&lt;!-- EDIT2 SECTION &quot;Para Usuários&quot; [298-619] --&gt;
&lt;h2 class=&quot;sectionedit3&quot; id=&quot;for_desenvolvedores&quot;&gt;For Desenvolvedores&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ol&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://composer.telemidia.puc-rio.br/doku.php/pt-br/dev/contributing&quot; class=&quot;wikilink1&quot; title=&quot;pt-br:dev:contributing&quot;&gt;Como contribuir com o NCL Composer?&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://composer.telemidia.puc-rio.br/doku.php/pt-br/doc/tutorial/ncl_composer_architecture&quot; class=&quot;wikilink2&quot; title=&quot;pt-br:doc:tutorial:ncl_composer_architecture&quot; rel=&quot;nofollow&quot;&gt;NCL Composer Architecture&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://composer.telemidia.puc-rio.br/doku.php/pt-br/doc/tutorial/how_to_build_ncl_composer_from_source_code&quot; class=&quot;wikilink1&quot; title=&quot;pt-br:doc:tutorial:how_to_build_ncl_composer_from_source_code&quot;&gt;How to build NCL Composer from source code&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://composer.telemidia.puc-rio.br/doku.php/pt-br/doc/tutorial/how_to_create_a_plugin_to_ncl_composer&quot; class=&quot;wikilink1&quot; title=&quot;pt-br:doc:tutorial:how_to_create_a_plugin_to_ncl_composer&quot;&gt;Como criar um plug-in para o NCL Composer?&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://composer.telemidia.puc-rio.br/doku.php/pt-br/dev/submitting_patches&quot; class=&quot;wikilink1&quot; title=&quot;pt-br:dev:submitting_patches&quot;&gt;Como submeter um patch para o NCL Composer?&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://composer.telemidia.puc-rio.br/doku.php/tutorial/how_to_translate_an_ncl_composer_plugin&quot; class=&quot;wikilink2&quot; title=&quot;tutorial:how_to_translate_an_ncl_composer_plugin&quot; rel=&quot;nofollow&quot;&gt;Como traduzir um plug-in do NCL Composer?&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://composer.telemidia.puc-rio.br/doku.php/pt-br/doc/tutorial/como_estender_o_ncl_composer_por_meio_de_linguages_de_script_javascript_python_lua_etc&quot; class=&quot;wikilink2&quot; title=&quot;pt-br:doc:tutorial:como_estender_o_ncl_composer_por_meio_de_linguages_de_script_javascript_python_lua_etc&quot; rel=&quot;nofollow&quot;&gt;Como estender o NCL Composer por meio de linguages de script (Javascript, Python, Lua, etc)&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://composer.telemidia.puc-rio.br/doku.php/pt-br/doc/tutorial/como_criar_uma_nova_gui&quot; class=&quot;wikilink2&quot; title=&quot;pt-br:doc:tutorial:como_criar_uma_nova_gui&quot; rel=&quot;nofollow&quot;&gt;Como criar uma nova GUI&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;/div&gt;
&lt;!-- EDIT3 SECTION &quot;For Desenvolvedores&quot; [620-] --&gt;
&lt;!-- cachefile /var/www/composer.telemidia.puc-rio.br/public_html/data/cache/8/8eb17e7a6e237f8429f3140bae2d1246.xhtml used --&gt;
</description>
    </item>
</rdf:RDF>
