{"id":764,"date":"2015-05-01T00:44:57","date_gmt":"2015-05-01T00:44:57","guid":{"rendered":"http:\/\/linguagemprisma.net\/blog\/?p=764"},"modified":"2015-05-01T01:03:43","modified_gmt":"2015-05-01T01:03:43","slug":"abas-com-botao-fechar-aba","status":"publish","type":"post","link":"https:\/\/linguagemprisma.br4.biz\/blog\/igprisma\/abas-com-botao-fechar-aba\/","title":{"rendered":"Abas com bot\u00e3o &#8216;fechar aba&#8217;"},"content":{"rendered":"<p>Novo exemplo de como usar abas, mas desta vez com bot\u00e3o fechar na orelha da aba:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-767\" src=\"http:\/\/linguagemprisma.net\/blog\/wp-content\/uploads\/2015\/05\/abas_botao_fechar-300x172.png\" alt=\"abas_botao_fechar\" width=\"300\" height=\"172\" srcset=\"https:\/\/linguagemprisma.br4.biz\/blog\/wp-content\/uploads\/2015\/05\/abas_botao_fechar-300x172.png 300w, https:\/\/linguagemprisma.br4.biz\/blog\/wp-content\/uploads\/2015\/05\/abas_botao_fechar.png 403w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/p>\n<p>&nbsp;<\/p>\n<pre class=\"lang:prisma decode:true \">\/\/abas , chamado de notebooks em gtk, e suas pages\r\n\/\/by Adalberto\r\n\r\ninclua'igbr'\r\n\r\njanela = ig.janela 'Exemplo de Abas em ig';\r\nig.conecte( janela , ig [ 'destruido' ] , 'ig.fimjanela ( )' ); \/\/nunca se esque\u00e7a desse comando\r\nig.janela_def_tamanho_padrao ( janela , 400 , 200 ); \/\/definindo um tamanho padrao para a janela\r\nig.janela_def_posicao( janela ,  ig.jan_pos_mouse ); \/\/coordenada da janela no monitor\r\n\r\n\/\/n\u00e3o confunda com a fun\u00e7\u00e3o ig.janela_def_posicao \r\n\r\n\/\/criando as abas:\r\nabas = ig.abas ( );\r\n\/\/definindo a posicao das abas (orelhas) \r\n\/** \r\nos seguintes argumentos s\u00e3o aceitos:\r\n ig.pos_superior ;    ig.pos_inferior ;  ig.pos_esquerda ;  ig.pos_direita .\r\n  \/\/ **\r\n      \r\nig.abas_def_aba_posicao ( abas ,  ig.pos_superior );\r\n\r\n\/\/colocando as abas na janela\r\nig.ad ( janela , abas );\r\n\r\ncaixav = ig.caixavertical(falso , 0 ); \/\/caixa vertical para o corpo da aba\r\n\r\ncaixah = ig.caixahorizontal(falso , 0 ); \/\/caixa horiz. para a orelha da aba;\r\n\r\nrot = ig.rotulo('Minha Primeira Aba'); \r\nig.caixa_ad( caixah , rot , verdadeiro , verdadeiro, 0 );\r\nbt = ig.botao'X';\r\nig.ad( caixah , bt );\r\nfuncao fecheaba (ab )\r\n    id_pag = ig.abas_obt_pagina_atual(ab)\r\n    ig.abas_pagina_remova( abas , id_pag ); \r\n fim\r\nig.conecte( bt , ig.clique , 'fecheaba(abas)' );\r\n\r\nig.componente_mostre_todos(caixah); \/\/necess\u00e1rio mostrar a caixa para ser vis\u00edvel na orelha\r\n\r\nig.abas_anexe ( abas , caixav ,  caixah ); \/\/anexando abas \r\n\r\n\r\ncaixav2 = ig.caixavertical(falso , 0 );\r\n\r\n\r\ncaixah = ig.caixahorizontal(falso , 0 ); \/\/caixa horiz. para a orelha da aba;\r\n\r\nrot = ig.rotulo('Minha Segunda Aba'); \r\nig.caixa_ad( caixah , rot , verdadeiro , verdadeiro, 0 );\r\nbt = ig.botao'X';\r\nig.ad( caixah , bt );\r\n\r\nig.conecte( bt , ig.clique , 'fecheaba (abas)' );\r\n\r\nig.componente_mostre_todos(caixah); \/\/necess\u00e1rio mostrar a caixa para ser vis\u00edvel na orelha\r\n\r\n\r\nig.abas_anexe ( abas , caixav2 , caixah );\r\nbotao = ig.botao'ok' ;\r\nig.componente_def_dica_markup ( botao ,  '&lt;b&gt;this button&lt;\/b&gt;&lt;i&gt; shows one msg&lt;\/i&gt;');\r\nig.conecte ( botao , ig [ 'clique' ]  , 'ig.msg(janela , \"titulo\" , \"Esta \u00e9 uma mensagem\" )' );\r\n\r\ntxt = ig.texto_area ( );\r\nig.componente_def_dica_texto ( txt , 'Ola, esta \u00e9 uma \u00e1rea de texto, digite algo nela');\r\n\r\nbuff = ig.texto_area_obt_buffer ( txt );\r\n\r\nconteudo_texto = 'Ola texto area aqui'\r\nig.texto_buffer_def_texto ( buff , conteudo_texto , #conteudo_texto );\r\n\r\nig.texto_area_def_texto( txt , 'Ola todo mundo');\r\n\r\n\r\n\r\n\r\n\r\n\r\nig.caixa_ad ( caixav , botao , falso , falso , 2 ); \/\/colocando o botao na caixa vertical\r\n\r\n\/\/os par\u00e2metros da fun\u00e7\u00e3o acima j\u00e1 foi explicado anteriormente\r\n\r\nig.caixa_ad ( caixav , txt , verdadeiro , verdadeiro , 2 ) ; \/\/colocamos verdadeiro pois queremos que a area de texto ocupe o restante da caixa\r\n\r\nbt_oculte_aba = ig.botao( 'esconder abas');\r\nig.componente_def_dica_texto ( bt_oculte_aba , 'este botao oculta ou mostra as abas' );\r\n\r\nig.ad ( caixav2 , bt_oculte_aba ) ; \/\/colocando o botao na caixa 2 que est\u00e1 na segunda pagina das abas\r\n\r\n\r\nfuncao mostre_abas ( botao , abas )\r\n\r\nlocal txt_bt = ig.botao_obt_rotulo( botao );\r\nse txt_bt == 'esconder abas' entao\r\n    txt_bt  = 'mostrar abas'\r\n senao\r\n    txt_bt = 'esconder abas'\r\nfim\r\n  ig.botao_def_rotulo( botao , txt_bt );\r\n\r\n   aval =falso;\r\n   bval = falso;\r\n   se ig.abas_obt_aba_visivel ( abas ) == falso entao\r\n       aval = verdadeiro\r\n  fim\r\n\r\n   se ig.abas_obt_borda_visivel ( abas ) == falso entao\r\n     bval = verdadeiro;\r\n   fim\r\n\r\n  ig.abas_def_aba_visivel ( abas , aval );\r\n  ig.abas_def_borda_visivel ( abas , bval );\r\n\r\n fim \/\/fim funcao\r\n\r\n ig.conecte( bt_oculte_aba , ig ['clique'] , 'mostre_abas ( %s , abas ) ' ); \/\/conectando a funcao ao botao\r\n\r\n \/\/ o %s \u00e9 o proprio botao conectado sendo passado como argumento.\r\n \r\n\r\n ig.componente_mostre_todos( janela );\r\n\r\n ig.fimprograma();\r\n\r\n\r\n<\/pre>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>veja outras fun\u00e7\u00f5es \u00fateis para manipular as abas<\/p>\n<p>entenda notebook como a caixa onde s\u00e3o anexada as abas,<br \/>\nem portugues traduzi como abas, mas ficou estranho dizer colocar uma aba dentro da aba;<br \/>\nentao chamaremos notebooks de abas e as abas (tabs) de p\u00e1ginas. ok<\/p>\n<p>ig.abas_pagina_anterior( notebook ); \/\/abre a aba anterior a atual<br \/>\nig.abas_pagina_posterior( notebook ); abre a aba posterior a atual<\/p>\n<p>ig.abas_pagina_remova ( notebook, page). \/\/ onde page \u00e9 o n\u00famero correspondente a pagina , e inicia por 1 at\u00e9 a \u00faltima aba criada<\/p>\n<p>ig.abas_obt_pagina_atual ( notebook ) \/\/retorna o n\u00famero da aba atual (aberta), \u00fatil para usar com a fun\u00e7\u00e3o acima<br \/>\nig.abas_obt_borda_visivel( notebook ) \/\/ retorna verdadeiro ou falso se a borda estiver visivel ou n\u00e3o<br \/>\nig.abas_def_borda_visivel ( notebook, [verdadeiro\/falso] ); \/\/define a borda com v\u00edsivel ou n\u00e3o<\/p>\n<p>ig.abas_obt_aba_visivel ( notebook) \/\/retorna verdadeiro ou falso se as abas estiverem vis\u00edveis ou n\u00e3o<br \/>\nig.abas_def_aba_visivel (notebook , [verdadeiro\/falso] ) \/\/ define as abas como vis\u00edveis ou n\u00e3o<\/p>\n<p>ig.abas_def_pagina ( notebook, page) \/\/define a p\u00e1gina padr\u00e3o que aparecer\u00e1, onde page \u00e9 um n\u00famero, 1 para a primeira aba anexada em diante&#8230;<\/p>\n<p>ig.abas_pagina_anexe_antes ( notebook , caixa , rotulo ); \/\/insere uma aba na posicao anterior as abas criada antes<br \/>\nig.abas_insira_pagina (notebook, caixa , label , index_pos ); \/\/insere uma aba na posicao indicada em index_pos, um n\u00famero<br \/>\nig.abas_anexe ( notebook , caixa , rotulo l) \/\/ adiciona abas na sequ\u00eancia de cria\u00e7\u00e3o<\/p>\n<p>ig.abas_def_aba_posicao (notebook, [ig.pos_superior\/ ig.pos_esquerda\/ ig.pos_diretira\/ig.pos_inferior] )<br \/>\n\/\/a fun\u00e7\u00e3o acima define em que posicao aparecera as orelhas (abas), use um dos argumentos entre colchetes<\/p>\n<p>ig.abas_obt_aba_posicao (notebook) ; \/\/obtem a posicao atual das orelhas (abas)<\/p>\n<p>ig.abas () ; \/\/cria a aba para receber as paginas<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Novo exemplo de como usar abas, mas desta vez com bot\u00e3o fechar na orelha da aba: &nbsp; \/\/abas , chamado de notebooks em gtk, e suas pages \/\/by Adalberto inclua&#8217;igbr&#8217; janela = ig.janela &#8216;Exemplo de Abas em ig&#8217;; ig.conecte( janela , ig [ &#8216;destruido&#8217; ] , &#8216;ig.fimjanela ( )&#8217; ); \/\/nunca se esque\u00e7a desse comando&#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-764","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\/764","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=764"}],"version-history":[{"count":5,"href":"https:\/\/linguagemprisma.br4.biz\/blog\/wp-json\/wp\/v2\/posts\/764\/revisions"}],"predecessor-version":[{"id":766,"href":"https:\/\/linguagemprisma.br4.biz\/blog\/wp-json\/wp\/v2\/posts\/764\/revisions\/766"}],"wp:attachment":[{"href":"https:\/\/linguagemprisma.br4.biz\/blog\/wp-json\/wp\/v2\/media?parent=764"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/linguagemprisma.br4.biz\/blog\/wp-json\/wp\/v2\/categories?post=764"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/linguagemprisma.br4.biz\/blog\/wp-json\/wp\/v2\/tags?post=764"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}