//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();