{"id":438,"date":"2015-01-07T19:05:00","date_gmt":"2015-01-07T19:05:00","guid":{"rendered":"http:\/\/linguagemprisma.net\/?p=438"},"modified":"2015-01-07T19:05:00","modified_gmt":"2015-01-07T19:05:00","slug":"barra-de-ferramentas-em-ig-tool-bar","status":"publish","type":"post","link":"https:\/\/linguagemprisma.br4.biz\/blog\/igprisma\/barra-de-ferramentas-em-ig-tool-bar\/","title":{"rendered":"Barra de Ferramentas em IG (tool bar )"},"content":{"rendered":"<p><a href=\"http:\/\/linguagemprisma.net\/wp-content\/uploads\/2015\/01\/barra_ferramentas.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-440\" src=\"http:\/\/linguagemprisma.net\/wp-content\/uploads\/2015\/01\/barra_ferramentas.png\" alt=\"barra_ferramentas\" width=\"262\" height=\"235\" \/><\/a><\/p>\n<p>Se n\u00e3o funcionar o exemplo tente baixar a vers\u00e3o mais atual na p\u00e1gina de downloads.<\/p>\n<p>segue o c\u00f3digo:<\/p>\n<pre class=\"height-set:true lang:prisma decode:true\">\/\/exemplo de barra de ferramentas:\n\ninclua 'igbr' ; \/\/primeiro coisa \u00e9 incluir as fun\u00e7\u00f5es gr\u00e1ficas\n\n\njanela = ig.janela (  ); \/\/criando a janela principal\nig.conecte( janela , ig.destruido , 'ig.fimjanela( )' );\n\nig.janela_def_tamanho_padrao ( janela , 250 , 200 ); \/\/definindo tamanho padr\u00e3o para a janela\n\nig.janela_def_titulo ( janela , \"Barra de Ferramentas\"); \/\/definindo o titulo da janela\nig.janela_def_posicao ( janela , ig.jan_pos_centro ); \/\/colocando a janela no centro da tela\n\ncaixav = ig.caixavertical ( falso , 0 ); \/\/criando uma caixa vertical\n\nig.ad ( janela , caixav ); \/\/colocando a caixa na janela, lembre-se que fazemos isso porque\n\/\/ a janela \u00e9 um componente caixa que aceita apenas um componente, logo colocamos\n\/\/nela justamente um componente que aceita outros componentes, este \u00e9 o conceito de\n\/\/containers: componentes que podem conter outros componentes inclusive outros containers.\n\nbarra_f  = ig.barraferramenta ( ); \/\/criando a barra de ferramentas\n\n\/\/definindo o estilo\nig.barraferramenta_def_estilo (  barra_f , ig.bf_icones ); \/\/este \u00e9 o \u00fanico estilo por enquanto mas deve ser usado para aparecer os icones\n\nig.caixa_def_borda_largura ( barra_f , 2 ); \/\/definimos 2 pixels como borda da caixa,\n\/\/o mesmo comando serve para janela, visto que tamb\u00e9m \u00e9 uma caixa.\n\nnovo = ig.ferramenta_botao_estoque ( ig.estoque'new' ); \/\/cria um botao de barra de ferramenta \n                                                        \/\/a partir do estoque\nig.barraferramenta_ad ( barra_f , novo , -1); \/\/adiciona o novo botao na barra de ferramenta, o -1 significa que \u00e9 na pr\u00f3xima sequ\u00eancia.\n\nabrir = ig.ferramenta_botao_estoque ( ig.estoque'open'); \/\/criando o bot\u00e3o abrir\nig.barraferramenta_ad ( barra_f , abrir , -1 ); \/\/adicionando o botao na barra\n\nsalvar = ig.ferramenta_botao_estoque ( ig.estoque'save'); \/\/criando o botao salvar\nig.barraferramenta_ad ( barra_f , salvar , -1 ); \/\/adicionando o botao na barra\n\n\nsep = ig.separador_ferramenta_item(); \/\/criando um separador de item de barra de ferramentas\nig.barraferramenta_ad ( barra_f , sep , -1 ); \/\/ adicionando o botao na barra\n\nsair = ig.ferramenta_botao_estoque ( ig.estoque'quit' ); \/\/criando o botao sair\nig.componente_def_dica_texto ( sair , \"Fechar o programa\"); \/\/definindo o texto dica \n                             \/\/que aparece quando o mouse est\u00e1 em cima do componente\nig.barraferramenta_ad ( barra_f , sair , -1 ); \/\/adicionando o botao na barra\n\ncortar = ig.ferramenta_botao_estoque ( ig.estoque'cut' ); \/\/criando o botao cortar\n\nig.barraferramenta_ad ( barra_f , cortar , -1 ); \/\/adicionando-o na barra\n\ncolar = ig.ferramenta_botao_estoque ( ig.estoque'paste' ); \/\/criando o botao colar\nig.barraferramenta_ad ( barra_f , colar , -1 ); \/\/adicionando o botao na barra\n\n\nig.caixa_ad ( caixav , barra_f , falso , falso , 5 ); \/\/por fim adicionando a barra na caixa vertical\n\nfuncao mostre_msg( titulo , texto ) \/\/funcao call back que ser\u00e1 conectada no clique dos botoes\nig.msg( janela , titulo , texto ); \/\/ exibindo uma mensagem\nfim \/\/fim funcao\n\n\/\/o evento a ser conectado \u00e9 o clique, pois s\u00e3o bot\u00f5es em barra de ferramentas\nig.conecte ( novo , ig.clique , [[ mostre_msg ( 'novo' , 'nao implementado ainda' ) ]] );\n\nig.conecte ( sair , ig.clique , [[ ig.fimjanela( ) ]] );\n\nig.conecte ( abrir , ig.clique , [[ mostre_msg ( 'abrir' , 'nao implementado ainda' ) ]] );\n\nig.conecte ( salvar , ig.clique , [[ mostre_msg ( 'salvar' , 'nao implementado ainda' ) ]] );\n\nig.conecte ( cortar , ig.clique , [[ mostre_msg ( 'cortar' , 'nao implementado ainda' ) ]] );\n\nig.conecte ( colar , ig.clique , [[ mostre_msg ( 'colar' , 'nao implementado ainda' ) ]] );\n\n\nig.componente_mostre_todos ( janela ); \/\/mostrando a janela e todos os componentes\n\nig.fimprograma( ); \/\/inicia o loop de eventos\n\n<\/pre>\n<p>&nbsp;<\/p>\n<p>Primeiro n\u00f3s criamos uma barra de ferramentas:<\/p>\n<pre class=\"height-set:true lang:prisma decode:true\">barra_f  = ig.barraferramenta ( );<\/pre>\n<p>Depois definimos o estilo como icone:<\/p>\n<p>o primeiro par\u00e2metro \u00e9 a barra, o segundo \u00e9 o estilo &#8220;<strong>ig.bf_icones<\/strong>&#8221;<\/p>\n<pre class=\"height-set:true lang:prisma decode:true\">ig.barraferramenta_def_estilo (  barra_f , ig.bf_icones );<\/pre>\n<p>Temos outra novidade aqui, definir a largura da borda de containers (caixas) e a barra de ferramentas \u00e9 um tipo especial de caixa:<\/p>\n<p>primeiro par\u00e2metro \u00e9 a caixa, o segundo \u00e9 um n\u00famero, a largura em pixels<\/p>\n<pre class=\"height-set:true lang:prisma decode:true\">ig.caixa_def_borda_largura ( barra_f , 2 );<\/pre>\n<p>Ap\u00f3s criar e configurar a barra de ferramentas, falta apenas criar e colocar os bot\u00f5es nela, usando o seguinte comando:<\/p>\n<p>o par\u00e2metro \u00e9 o retorno da fun\u00e7\u00e3o ig.estoque( );\u00a0 com uma string chave de imagem; <a title=\"imagens-estoque\" href=\"http:\/\/linguagemprisma.net\/estoque-de-imagens\/\" target=\"_blank\">veja a lista de imagens dispon\u00edveis aqui.<\/a><\/p>\n<p>Apenas experimente trocar &#8216;new&#8217; por outras op\u00e7\u00f5es da p\u00e1gina de imagens e veja o resultado:<\/p>\n<pre class=\"height-set:true lang:prisma decode:true\">novo = ig.ferramenta_botao_estoque ( ig.estoque'new' );<\/pre>\n<p>Adicionando o bot\u00e3o na barra, \u00e9 simples:<\/p>\n<p>primeiro par\u00e2metro \u00e9 a barra, segundo o bot\u00e3o e terceiro a posi\u00e7\u00e3o, no caso -1 \u00e9 o padr\u00e3o de posi\u00e7\u00e3o seguinte.<\/p>\n<pre class=\"height-set:true lang:prisma decode:true\">ig.barraferramenta_ad ( barra_f , novo , -1);<\/pre>\n<p>Dica: experimente trocar o -1 por outro valor, por exemplo 2 ou 3;<\/p>\n<p>&nbsp;<\/p>\n<p>Um separador as vezes \u00e9 \u00fatil para deixar o visual mais organizado, veja como cri\u00e1-lo:<\/p>\n<pre class=\"height-set:true lang:prisma decode:true\">sep = ig.separador_ferramenta_item();<\/pre>\n<p>para adicion\u00e1-lo siga o mesmo comando de adicionar os bot\u00f5es.<\/p>\n<p>&nbsp;<\/p>\n<p>Para conectar use o evento (signal) ig.clique pois s\u00e3o bot\u00f5es que respondem ao clique:<\/p>\n<p>primeiro par\u00e2metro = botao , segundo = evento (clique) ; terceiro \u00e9 a string contendo a fun\u00e7\u00e3o a ser chamada com seus par\u00e2metros<\/p>\n<pre class=\"height-set:true lang:prisma decode:true\">ig.conecte ( novo , ig.clique , [[ mostre_msg ( 'novo' , 'nao implementado ainda' ) ]] );\n<\/pre>\n<p>Lembre-se que os duplos colchetes representam strings multilinha.<\/p>\n<p>&nbsp;<\/p>\n<p>\u00c9 isso a\u00ed, espero ter ajudado, se ficar d\u00favidas poste sua pergunta no <a title=\"Forum Prisma\" href=\"http:\/\/linguagemprisma.net\/prisma_forum\/\" target=\"_blank\">f\u00f3rum<\/a>, at\u00e9 mais.<\/p>\n<p>Att. Adalberto<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Se n\u00e3o funcionar o exemplo tente baixar a vers\u00e3o mais atual na p\u00e1gina de downloads. segue o c\u00f3digo: \/\/exemplo de barra de ferramentas: inclua &#8216;igbr&#8217; ; \/\/primeiro coisa \u00e9 incluir as fun\u00e7\u00f5es gr\u00e1ficas janela = ig.janela ( ); \/\/criando a janela principal ig.conecte( janela , ig.destruido , &#8216;ig.fimjanela( )&#8217; ); ig.janela_def_tamanho_padrao ( janela , 250&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3,5],"tags":[],"class_list":["post-438","post","type-post","status-publish","format-standard","hentry","category-igprisma","category-interface_grafica"],"_links":{"self":[{"href":"https:\/\/linguagemprisma.br4.biz\/blog\/wp-json\/wp\/v2\/posts\/438","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/linguagemprisma.br4.biz\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/linguagemprisma.br4.biz\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/linguagemprisma.br4.biz\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/linguagemprisma.br4.biz\/blog\/wp-json\/wp\/v2\/comments?post=438"}],"version-history":[{"count":0,"href":"https:\/\/linguagemprisma.br4.biz\/blog\/wp-json\/wp\/v2\/posts\/438\/revisions"}],"wp:attachment":[{"href":"https:\/\/linguagemprisma.br4.biz\/blog\/wp-json\/wp\/v2\/media?parent=438"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/linguagemprisma.br4.biz\/blog\/wp-json\/wp\/v2\/categories?post=438"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/linguagemprisma.br4.biz\/blog\/wp-json\/wp\/v2\/tags?post=438"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}