<chapter id="dcop">
	<title
>Programar com o &kmplot;</title>
	
	<para
>Uma nova funcionalidade do &kde; 3.4 é você poder criar programas para o &kmplot; com o &DCOP;. Por exemplo, se quiser definir uma nova função <userinput
>f(x)=2sin x+3cos x</userinput
>, definir a espessura do traço como sendo igual a 20 e depois desenhá-la, poderá escrever numa consola:</para>
	<para
><command
>dcop kmplot-PID Parser addFunction "f(x)=2sin x+3cos x"</command
> Como resultado, o número do ID da função nova será devolvido, ou então -1 se a função não puder ser definida.</para>
	<para
><command
>
>dcop kmplot-PID Parser setFunctionFLineWidth 20 ID</command
> Este comando configura a espessura do traço da função com o ID indicado como sendo igual a 20.</para>
	<para
><command
>
>dcop kmplot-PID View drawPlot</command
> Este comando actualiza a janela, de modo a que função se torne visível.</para>
<para
>Segue-se uma lista com as funções disponíveis: <variablelist>
		<varlistentry>
			<term
>KmPlotShell fileOpen &amp;url </term>
			<listitem>
				<para
>Carrega o ficheiro <parameter
>url</parameter
>.</para>
			</listitem>
		</varlistentry>
		<varlistentry>
			<term
>MainDlg isModified </term>
			<listitem>
				<para
>Devolve 'true' se foram feitas alterações.</para>
			</listitem>
		</varlistentry>
		<varlistentry>
			<term
>MainDlg editColors </term>
			<listitem>
				<para
>Abre a janela de edição de cores.</para>
			</listitem>
		</varlistentry>
		<varlistentry>
			<term
>MainDlg editAxes </term>
			<listitem>
				<para
>Abre a janela de edição do sistema de coordenadas.</para>
			</listitem>
		</varlistentry>
		<varlistentry>
			<term
>MainDlg editScaling </term>
			<listitem>
				<para
>Abre a janela de edição da escala.</para>
			</listitem>
		</varlistentry>
		<varlistentry>
			<term
>MainDlg editFonts </term>
			<listitem>
				<para
>Abre a janela de edição de tipos de letra.</para>
			</listitem>
		</varlistentry>
		<varlistentry>
			<term
>MainDlg editConstants </term>
			<listitem>
				<para
>Abre a janela de edição de constantes.</para>
			</listitem>
		</varlistentry>
		<varlistentry>
			<term
>MainDlg newFunction </term>
			<listitem>
				<para
>Abre a janela para novos gráficos de funções.</para>
			</listitem>
		</varlistentry>
		<varlistentry>
			<term
>MainDlg newParametric </term>
			<listitem>
				<para
>Abre a janela para novos gráficos paramétricos.</para>
			</listitem>
		</varlistentry>
		<varlistentry>
			<term
>MainDlg newPolar </term>
			<listitem>
				<para
>Abre a janela para novos gráficos polares.</para>
			</listitem>
		</varlistentry>
		<varlistentry>
			<term
>MainDlg toggleShowSlider0 </term>
			<listitem>
				<para
>Mostra/esconde a janela da barra deslizante do parâmetro número 1.</para>
			</listitem>
		</varlistentry>
		<varlistentry>
			<term
>MainDlg toggleShowSlider1 </term>
			<listitem>
				<para
>Mostra/esconde a janela da barra deslizante do parâmetro número 2.</para>
			</listitem>
		</varlistentry>
		<varlistentry>
			<term
>MainDlg toggleShowSlider2 </term>
			<listitem>
				<para
>Mostra/esconde a janela da barra deslizante do parâmetro número 3.</para>
			</listitem>
		</varlistentry>
		<varlistentry>
		  <term
>MainDlg toggleShowSlider3 </term>
		  <listitem>
		    <para
>Mostra/esconde a janela da barra deslizante do parâmetro número 4.</para>
		  </listitem>
		</varlistentry>
		<varlistentry>
			<term
>MainDlg slotSave </term>
			<listitem>
				<para
>Grava as funções (abre a janela de gravação se for um ficheiro novo).</para>
			</listitem>
		</varlistentry>
		<varlistentry>
			<term
>MainDlg slotSaveas </term>
			<listitem>
				<para
>O mesmo que a opção <menuchoice
><guimenu
>Ficheiro</guimenu
><guimenuitem
>Gravar Como</guimenuitem
> </menuchoice
> do menu.</para>
			</listitem>
		</varlistentry>
		<varlistentry>
			<term
>MainDlg slotEditPlots </term>
			<listitem>
				<para
>Abre a janela de edição de gráficos.</para>
			</listitem>
		</varlistentry>
		<varlistentry>
			<term
>MainDlg slotPrint </term>
			<listitem>
				<para
>Abre a janela de impressão.</para>
			</listitem>
		</varlistentry>
		<varlistentry>
			<term
>MainDlg slotExport </term>
			<listitem>
				<para
>Abre a janela de exportação.</para>
			</listitem>
		</varlistentry>
		<varlistentry>
			<term
>MainDlg slotSettings </term>
			<listitem>
				<para
>Abre a janela de configuração.</para>
			</listitem>
		</varlistentry>
		<varlistentry>
			<term
>MainDlg slotNames </term>
			<listitem>
				<para
>Mostra uma lista com as funções matemáticas predefinidas.</para>
			</listitem>
		</varlistentry>
		<varlistentry>
			<term
>MainDlg slotCoord1 </term>
			<listitem>
				<para
>Sistema de Coordenadas I.</para>
			</listitem>
		</varlistentry>
		<varlistentry>
			<term
>MainDlg slotCoord2 </term>
			<listitem>
				<para
>Sistema de Coordenadas II.</para>
			</listitem>
		</varlistentry>
		<varlistentry>
			<term
>MainDlg slotCoord3 </term>
			<listitem>
				<para
>Sistema de Coordenadas III.</para>
			</listitem>
		</varlistentry>
		<varlistentry>
			<term
>MainDlg getYValue </term>
			<listitem>
				<para
>O mesmo que escolher a opção <menuchoice
><guimenu
>Ferramentas</guimenu
><guimenuitem
>Obter o Valor de Y...</guimenuitem
> </menuchoice
> do menu.</para>
			</listitem>
		</varlistentry>
		<varlistentry>
			<term
>MainDlg findMinimumValue </term>
			<listitem>
				<para
>O mesmo que escolher a opção <menuchoice
><guimenu
>Ferramentas</guimenu
><guimenuitem
>Procurar o Valor Mínimo...</guimenuitem
> </menuchoice
> do menu.</para>
			</listitem>
		</varlistentry>
		<varlistentry>
			<term
>MainDlg findMaximumValue </term>
			<listitem>
				<para
>O mesmo que escolher a opção <menuchoice
><guimenu
>Ferramentas</guimenu
><guimenuitem
>Procurar o Valor Máximo...</guimenuitem
> </menuchoice
> do menu.</para>
			</listitem>
		</varlistentry>
		<varlistentry>
			<term
>MainDlg graphArea </term>
			<listitem>
				<para
>O mesmo que escolher a opção <menuchoice
><guimenu
>Ferramentas</guimenu
><guimenuitem
>Calcular o Integral</guimenuitem
> </menuchoice
> do menu.</para>
			</listitem>
		</varlistentry>
		<varlistentry>
			<term
>Parser addFunction texto </term>
			<listitem>
				<para
>Adiciona uma nova função com a expressão <parameter
>texto</parameter
>. Se a expressão não contiver nenhum nome de função, este será gerado automaticamente. É devolvido o número de ID da função nova ou então -1 se a função não pôde ser definida.</para>
			</listitem>
		</varlistentry>
		<varlistentry>
			<term
>Parser delfkt id </term>
			<listitem>
				<para
>Remove a função com o número de ID <parameter
>id</parameter
>. Se a função não puder ser removida, é devolvido 'false', caso contrário 'true'.</para>
			</listitem>
		</varlistentry>
		<varlistentry>
			<term
>Parser setFunctionExpression texto id </term>
			<listitem>
				<para
>Atribui a expressão da função <parameter
>texto</parameter
> à função cujo identificador é <parameter
>id</parameter
>. Devolve 'true' se for bem sucedido, caso contrário devolve 'false'.</para>
			</listitem>
		</varlistentry>
		<varlistentry>
			<term
>Parser countFunctions </term>
			<listitem>
				<para
>Devolve o número de funções (as funções paramétricas contam como duas).</para>
			</listitem>
		</varlistentry>
		<varlistentry>
		  <term
>Parser listFunctionNames </term>
		  <listitem>
		    <para
>Devolve uma lista com todas as funções.</para>
		  </listitem>
		</varlistentry>
		<varlistentry>
		  <term
>Parser fnameToId texto </term>
		  <listitem>
		    <para
>Devolve o número identificador da função <parameter
>texto</parameter
> ou -1 se o nome da função <parameter
>texto</parameter
> não foi encontrado.</para>
		  </listitem>
		</varlistentry>
		<varlistentry>
		  <term
>Parser id x </term>
		  <listitem>
		    <para
>Calcula o valor <parameter
>x</parameter
> da função com o ID <parameter
>id</parameter
> ou devolve 0.0 se o <parameter
>id</parameter
> não existe.</para>
		  </listitem>
		</varlistentry>
		<varlistentry>
		  <term
>Parser functionFVisible id </term>
		  <listitem>
		    <para
>Devolve 'true' se a função com o ID <parameter
>id</parameter
> for visível, caso contrário devolve 'false'.</para>
		  </listitem>
		</varlistentry>
		<varlistentry>
		  <term
>Parser functionF1Visible id </term>
		  <listitem>
		    <para
>Devolve 'true' se a primeira derivada da função com o ID <parameter
>id</parameter
> estiver visível, caso contrário 'false'.</para>
		  </listitem>
		</varlistentry>
		<varlistentry>
		  <term
>Parser functionF2Visible id </term>
		  <listitem>
		    <para
>Devolve 'true' se a segunda derivada da função com o ID <parameter
>id</parameter
> estiver visível, caso contrário 'false'.</para>
		  </listitem>
		</varlistentry>
		<varlistentry>
		  <term
>Parser functionIntVisible id </term>
		  <listitem>
		    <para
>Devolve 'true' se o integral da função com o ID <parameter
>id</parameter
> estiver visível, caso contrário 'false'.</para>
		  </listitem>
		</varlistentry>
		<varlistentry>
		  <term
>Parser setFunctionFVisible visivel id </term>
		  <listitem>
		    <para
>Mostra a função com o ID <parameter
>id</parameter
> se o <parameter
>visivel</parameter
> for igual a 'true'. Se este valor for 'false', a função ficará escondida. Será devolvido 'true' se a função existir, caso contrário 'false'</para>
		  </listitem>
		</varlistentry>
		<varlistentry>
		  <term
>Parser setFunctionF1Visible visivel id </term>
		  <listitem>
		    <para
>Mostra a primeira derivada da função com o ID <parameter
>id</parameter
> se o <parameter
>visivel</parameter
> for igual a 'true'. Se este valor for 'false', a função ficará escondida. Será devolvido 'true' se a função existir, caso contrário 'false'.</para>
		  </listitem>
		</varlistentry>
		<varlistentry>
		  <term
>Parser setFunctionF2Visible visivel id </term>
		  <listitem>
		    <para
>Mostra a segunda derivada da função com o ID <parameter
>id</parameter
> se o <parameter
>visivel</parameter
> for igual a 'true'. Se este valor for 'false', a função ficará escondida. Será devolvido 'true' se a função existir, caso contrário 'false'.</para>
		  </listitem>
		</varlistentry>
		<varlistentry>
		  <term
>Parser setFunctionIntVisible visivel id </term>
		  <listitem>
		    <para
>Mostra o integral da função com o ID <parameter
>id</parameter
> se o <parameter
>visivel</parameter
> for igual a 'true'. Se este valor for 'false', a função ficará escondida. Será devolvido 'true' se a função existir, caso contrário 'false'.</para>
		  </listitem>
		</varlistentry>
		<varlistentry>
		  <term
>Parser functionStr id </term>
		  <listitem>
		    <para
>Devolve a expressão da função com o ID <parameter
>id</parameter
>. Se a função não existir, é devolvida uma cadeia de caracteres vazia.</para>
		  </listitem>
		</varlistentry>
		<varlistentry>
		  <term
>Parser functionFColor id </term>
		  <listitem>
		    <para
>Devolve a cor da função com o ID <parameter
>id</parameter
>.</para>
		  </listitem>
		</varlistentry>
		<varlistentry>
		  <term
>Parser functionF1Color id </term>
		  <listitem>
		    <para
>Devolve a cor da primeira derivada da função com o ID <parameter
>id</parameter
>.</para>
		  </listitem>
		</varlistentry>
		<varlistentry>
		  <term
>Parser functionF2Color id </term>
		  <listitem>
		    <para
>Devolve a cor da segunda derivada da função com o ID <parameter
>id</parameter
>.</para>
		  </listitem>
		</varlistentry>
		<varlistentry>
		  <term
>Parser functionIntColor id </term>
		  <listitem>
		    <para
>Devolve a cor do integral da função com o ID <parameter
>id</parameter
>.</para>
		  </listitem>
		</varlistentry>
		<varlistentry>
		  <term
>Parser setFunctionFColor cor id </term>
		  <listitem>
		    <para
>Muda a cor da função com o ID <parameter
>id</parameter
> para <parameter
>cor</parameter
>. Será devolvido 'true' se a função existir, caso contrário será devolvido 'false'.</para>
		  </listitem>
		</varlistentry>
		<varlistentry>
		  <term
>Parser setFunctionF1Color cor id </term>
		  <listitem>
		    <para
>Muda a cor da primeira derivada da função com o ID <parameter
>id</parameter
> para <parameter
>cor</parameter
>. Será devolvido 'true' se a função existir, caso contrário será devolvido 'false'.</para>
		  </listitem>
		</varlistentry>
		<varlistentry>
		  <term
>Parser setFunctionF2Color cor id </term>
		  <listitem>
		    <para
>Muda a cor da segunda derivada da função com o ID <parameter
>id</parameter
> para <parameter
>cor</parameter
>. Será devolvido 'true' se a função existir, caso contrário será devolvido 'false'.</para>
		  </listitem>
		</varlistentry>
		<varlistentry>
		  <term
>Parser setFunctionIntColor cor id </term>
		  <listitem>
		    <para
>Muda a cor do integral da função com o ID <parameter
>id</parameter
> para <parameter
>cor</parameter
>. Será devolvido 'true' se a função existir, caso contrário será devolvido 'false'.</para>
		  </listitem>
		</varlistentry>
		<varlistentry>
		  <term
>Parser functionFLineWidth id </term>
		  <listitem>
		    <para
>Devolve a espessura do traço da função com o ID <parameter
>id</parameter
>. Se a função não existir, será devolvido 0.</para>
		  </listitem>
		</varlistentry>
		<varlistentry>
		  <term
>Parser functionF1LineWidth id </term>
		  <listitem>
		    <para
>Devolve a espessura do traço da primeira derivada da função com o ID <parameter
>id</parameter
>. Se a função não existir, será devolvido 0.</para>
		  </listitem>
		</varlistentry>
		<varlistentry>
		  <term
>Parser functionF2LineWidth id </term>
		  <listitem>
		    <para
>Devolve a espessura do traço da primeira derivada da função com o ID <parameter
>id</parameter
>. Se a função não existir, será devolvido 0.</para>
		  </listitem>
		</varlistentry>
		<varlistentry>
		  <term
>Parser functionIntLineWidth id </term>
		  <listitem>
		    <para
>Devolve a espessura do traço do integral da função com o ID <parameter
>id</parameter
>. Se a função não existir, será devolvido 0.</para>
		  </listitem>
		</varlistentry>
		<varlistentry>
		  <term
>Parser setFunctionFLineWidth espessuraTraco id </term>
		  <listitem>
		    <para
>Configura a espessura do traço da função com o ID <parameter
>id</parameter
> como sendo igual a <parameter
>espessuraTraco</parameter
>. Será devolvido 'true' se a função existir, caso contrário 'false'.</para>
		  </listitem>
		</varlistentry>
		<varlistentry>
		  <term
>Parser setFunctionF1LineWidth espessuraTraco id </term>
		  <listitem>
		    <para
>Configura a espessura do traço da primeira derivada da função com o ID <parameter
>id</parameter
> como sendo igual a <parameter
>espessuraTraco</parameter
>. Será devolvido 'true' se a função existir, caso contrário 'false'.</para>
		  </listitem>
		</varlistentry>
		<varlistentry>
		  <term
>Parser setFunctionF2LineWidth espessuraTraco id </term>
		  <listitem>
		    <para
>Configura a espessura do traço da segunda derivada da função com o ID <parameter
>id</parameter
> como sendo igual a <parameter
>espessuraTraco</parameter
>. Será devolvido 'true' se a função existir, caso contrário 'false'.</para>
		  </listitem>
		</varlistentry>
		<varlistentry>
		  <term
>Parser setFunctionIntLineWidth espessuraTraco id </term>
		  <listitem>
		    <para
>Configura a espessura do traço do integral da função com o ID <parameter
>id</parameter
> como sendo igual a <parameter
>espessuraTraco</parameter
>. Será devolvido 'true' se a função existir, caso contrário 'false'.</para>
		  </listitem>
		</varlistentry>
		<varlistentry>
		  <term
>Parser functionParameterList id </term>
		  <listitem>
		    <para
>Devolve uma lista com todos os valores de parâmetros da função com o ID <parameter
>id</parameter
>.</para>
		  </listitem>
		</varlistentry>
		<varlistentry>
		  <term
>Parser functionAddParameter novo_parametro id </term>
		  <listitem>
		    <para
>Adiciona o valor do parâmetro <parameter
>novo_parametro</parameter
> à função com o ID <parameter
>id</parameter
>. Será devolvido 'true' se a operação foi bem sucedida, caso contrário 'false'.</para>
		  </listitem>
		</varlistentry>
		<varlistentry>
		  <term
>Parser functionRemoveParameter remover_parametro id </term>
		  <listitem>
		    <para
>Remove o valor do parâmetro <parameter
>remover_parametro</parameter
> da função com o ID <parameter
>id</parameter
>. Será devolvido 'true' se a operação foi bem sucedida, caso contrário 'false'.</para>
		  </listitem>
		</varlistentry>
		<varlistentry>
		  <term
>Parser functionMinValue id </term>
		  <listitem>
		    <para
>Devolve o valor mínimo do intervalo do gráfico da função com o ID <parameter
>id</parameter
>. Se a função não existir ou se o valor mínimo não estiver definido, será devolvida uma cadeia de caracteres vazia.</para>
		  </listitem>
		</varlistentry>
		<varlistentry>
		  <term
>Parser functionMaxValue id </term>
		  <listitem>
		    <para
>Devolve o valor máximo do intervalo do gráfico da função com o ID <parameter
>id</parameter
>. Se a função não existir ou se o valor máximo não estiver definido, será devolvida uma cadeia de caracteres vazia.</para>
		  </listitem>
		</varlistentry>
		<varlistentry>
		  <term
>Parser setFunctionMinValue min id </term>
		  <listitem>
		    <para
>Configura o valor mínimo do intervalo do gráfico da função com o ID <parameter
>id</parameter
> como sendo igual a <parameter
>min</parameter
>. Será devolvido 'true' se a função existir e se a expressão for válida, caso contrário será devolvido 'false'.</para>
		  </listitem>
		</varlistentry>
		<varlistentry>
		  <term
>Parser setFunctionMaxValue max id </term>
		  <listitem>
		    <para
>Configura o valor máximo do intervalo do gráfico da função com o ID <parameter
>id</parameter
> como sendo igual a <parameter
>max</parameter
>. Será devolvido 'true' se a função existir e se a expressão for válida, caso contrário será devolvido 'false'.</para>
		  </listitem>
		</varlistentry>
		
		<varlistentry>
		  <term
>Parser functionStartXValue id </term>
		  <listitem>
		    <para
>Devolve o ponto em X inicial do integral da função com o ID <parameter
>id</parameter
>. Se a função não existir ou se a expressão do ponto X não estiver definida, será devolvida uma cadeia de caracteres vazia.</para>
		  </listitem>
		</varlistentry>
		<varlistentry>
		  <term
>Parser functionStartYValue id </term>
		  <listitem>
		    <para
>Devolve o ponto em Y inicial do integral da função com o ID <parameter
>id</parameter
>. Se a função não existir ou se a expressão do ponto Y não estiver definida, será devolvida uma cadeia de caracteres vazia.</para>
		  </listitem>
		</varlistentry>
		<varlistentry>
		  <term
>Parser setFunctionStartXValue min id </term>
		  <listitem>
		    <para
>Configura o ponto inicial em X do integral da função com o ID <parameter
>id</parameter
> como sendo igual a <parameter
>x</parameter
>. Será devolvido 'true' se a função existir e a expressão for válida, caso contrário será devolvido 'false'.</para>
		  </listitem>
		</varlistentry>
		<varlistentry>
		  <term
>Parser setFunctionStartYValue max id </term>
		  <listitem>
		    <para
>Configura o ponto inicial em Y do integral da função com o ID <parameter
>id</parameter
> como sendo igual a <parameter
>y</parameter
>. Será devolvido 'true' se a função existir e a expressão for válida, caso contrário será devolvido 'false'.</para>
		  </listitem>
		</varlistentry>
		<varlistentry>
			<term
>View stopDrawing </term>
			<listitem>
				<para
>Se o &kmplot; estiver a desenhar de momento a função, esse procedimento irá parar.</para>
			</listitem>
		</varlistentry>
		<varlistentry>
			<term
>View drawPlot </term>
			<listitem>
				<para
>Volta a desenhar todas as funções.</para>
			</listitem>
		</varlistentry>
	</variablelist>
</para>
</chapter>

<!--
    Local Variables:
    mode: sgml
    sgml-minimize-attributes:nil
    sgml-general-insert-case:lower
    sgml-indent-step:0
    sgml-indent-data:nil
    sgml-parent-document:("index.docbook" "BOOK" "CHAPTER")
    End:
    -->