Novo exemplo de como usar abas, mas desta vez com botão fechar na orelha da aba:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 |
//abas , chamado de notebooks em gtk, e suas pages //by Adalberto inclua'igbr' janela = ig.janela 'Exemplo de Abas em ig'; ig.conecte( janela , ig [ 'destruido' ] , 'ig.fimjanela ( )' ); //nunca se esqueça desse comando ig.janela_def_tamanho_padrao ( janela , 400 , 200 ); //definindo um tamanho padrao para a janela ig.janela_def_posicao( janela , ig.jan_pos_mouse ); //coordenada da janela no monitor //não confunda com a função ig.janela_def_posicao //criando as abas: abas = ig.abas ( ); //definindo a posicao das abas (orelhas) /** os seguintes argumentos são aceitos: ig.pos_superior ; ig.pos_inferior ; ig.pos_esquerda ; ig.pos_direita . // ** ig.abas_def_aba_posicao ( abas , ig.pos_superior ); //colocando as abas na janela ig.ad ( janela , abas ); caixav = ig.caixavertical(falso , 0 ); //caixa vertical para o corpo da aba caixah = ig.caixahorizontal(falso , 0 ); //caixa horiz. para a orelha da aba; rot = ig.rotulo('Minha Primeira Aba'); ig.caixa_ad( caixah , rot , verdadeiro , verdadeiro, 0 ); bt = ig.botao'X'; ig.ad( caixah , bt ); funcao fecheaba (ab ) id_pag = ig.abas_obt_pagina_atual(ab) ig.abas_pagina_remova( abas , id_pag ); fim ig.conecte( bt , ig.clique , 'fecheaba(abas)' ); ig.componente_mostre_todos(caixah); //necessário mostrar a caixa para ser visível na orelha ig.abas_anexe ( abas , caixav , caixah ); //anexando abas caixav2 = ig.caixavertical(falso , 0 ); caixah = ig.caixahorizontal(falso , 0 ); //caixa horiz. para a orelha da aba; rot = ig.rotulo('Minha Segunda Aba'); ig.caixa_ad( caixah , rot , verdadeiro , verdadeiro, 0 ); bt = ig.botao'X'; ig.ad( caixah , bt ); ig.conecte( bt , ig.clique , 'fecheaba (abas)' ); ig.componente_mostre_todos(caixah); //necessário mostrar a caixa para ser visível na orelha ig.abas_anexe ( abas , caixav2 , caixah ); botao = ig.botao'ok' ; ig.componente_def_dica_markup ( botao , '<b>this button</b><i> shows one msg</i>'); ig.conecte ( botao , ig [ 'clique' ] , 'ig.msg(janela , "titulo" , "Esta é uma mensagem" )' ); txt = ig.texto_area ( ); ig.componente_def_dica_texto ( txt , 'Ola, esta é uma área de texto, digite algo nela'); buff = ig.texto_area_obt_buffer ( txt ); conteudo_texto = 'Ola texto area aqui' ig.texto_buffer_def_texto ( buff , conteudo_texto , #conteudo_texto ); ig.texto_area_def_texto( txt , 'Ola todo mundo'); ig.caixa_ad ( caixav , botao , falso , falso , 2 ); //colocando o botao na caixa vertical //os parâmetros da função acima já foi explicado anteriormente ig.caixa_ad ( caixav , txt , verdadeiro , verdadeiro , 2 ) ; //colocamos verdadeiro pois queremos que a area de texto ocupe o restante da caixa bt_oculte_aba = ig.botao( 'esconder abas'); ig.componente_def_dica_texto ( bt_oculte_aba , 'este botao oculta ou mostra as abas' ); ig.ad ( caixav2 , bt_oculte_aba ) ; //colocando o botao na caixa 2 que está na segunda pagina das abas funcao mostre_abas ( botao , abas ) local txt_bt = ig.botao_obt_rotulo( botao ); se txt_bt == 'esconder abas' entao txt_bt = 'mostrar abas' senao txt_bt = 'esconder abas' fim ig.botao_def_rotulo( botao , txt_bt ); aval =falso; bval = falso; se ig.abas_obt_aba_visivel ( abas ) == falso entao aval = verdadeiro fim se ig.abas_obt_borda_visivel ( abas ) == falso entao bval = verdadeiro; fim ig.abas_def_aba_visivel ( abas , aval ); ig.abas_def_borda_visivel ( abas , bval ); fim //fim funcao ig.conecte( bt_oculte_aba , ig ['clique'] , 'mostre_abas ( %s , abas ) ' ); //conectando a funcao ao botao // o %s é o proprio botao conectado sendo passado como argumento. ig.componente_mostre_todos( janela ); ig.fimprograma(); |
veja outras funções úteis para manipular as abas
entenda notebook como a caixa onde são anexada as abas,
em portugues traduzi como abas, mas ficou estranho dizer colocar uma aba dentro da aba;
entao chamaremos notebooks de abas e as abas (tabs) de páginas. ok
ig.abas_pagina_anterior( notebook ); //abre a aba anterior a atual
ig.abas_pagina_posterior( notebook ); abre a aba posterior a atual
ig.abas_pagina_remova ( notebook, page). // onde page é o número correspondente a pagina , e inicia por 1 até a última aba criada
ig.abas_obt_pagina_atual ( notebook ) //retorna o número da aba atual (aberta), útil para usar com a função acima
ig.abas_obt_borda_visivel( notebook ) // retorna verdadeiro ou falso se a borda estiver visivel ou não
ig.abas_def_borda_visivel ( notebook, [verdadeiro/falso] ); //define a borda com vísivel ou não
ig.abas_obt_aba_visivel ( notebook) //retorna verdadeiro ou falso se as abas estiverem visíveis ou não
ig.abas_def_aba_visivel (notebook , [verdadeiro/falso] ) // define as abas como visíveis ou não
ig.abas_def_pagina ( notebook, page) //define a página padrão que aparecerá, onde page é um número, 1 para a primeira aba anexada em diante…
ig.abas_pagina_anexe_antes ( notebook , caixa , rotulo ); //insere uma aba na posicao anterior as abas criada antes
ig.abas_insira_pagina (notebook, caixa , label , index_pos ); //insere uma aba na posicao indicada em index_pos, um número
ig.abas_anexe ( notebook , caixa , rotulo l) // adiciona abas na sequência de criação
ig.abas_def_aba_posicao (notebook, [ig.pos_superior/ ig.pos_esquerda/ ig.pos_diretira/ig.pos_inferior] )
//a função acima define em que posicao aparecera as orelhas (abas), use um dos argumentos entre colchetes
ig.abas_obt_aba_posicao (notebook) ; //obtem a posicao atual das orelhas (abas)
ig.abas () ; //cria a aba para receber as paginas