*Antes de executar este exemplo, baixe Prisma ou atualização do dia 07/09/2015 ou superior*
Escala é um componente em que um pequeno botão pode ser deslizado na posição vertical ou na horizontal. No estilo de aumentar volume do som no Windows, veja:
Ao ser deslizada, a escala retorna um valor que pode ser usado para os mais variados fins, abaixo um código fonte exemplificando o uso de duas escalas, uma controla a outra e imprime o valor na janela:
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 |
//escala. //CALL BACKS funcao escalah_cb(compo , dado) //controla a escala vertical local valor = ig.escala_obt_valor(compo); ig.escala_def_valor( dado , valor ); fim funcao escalav_cb(compo , dado ) //imprima o valor na janela local valor = ig.escala_obt_valor(compo); ig.rotulo_def_texto(dado , valor); ig.janela_def_titulo(jan , 'valor - ' .. valor ); fim inclua'igbr' jan = ig.janela("Teste" , 300 , 250 ); //cria uma janela cor_branco = ig.cor_analise(ig.branco); //cria uma cor //abaixo, modifica a cor de fundo da janela ig.componente_modifique_corfundo( jan , ig.estado_normal , cor_branco ); ig.janela_def_posicao(jan,ig.janela_pos_mouse); //acima, define a posição da janela na mesma posicao do mouse ig.janela_destrua(jan); //faz o programa fechar corretamente painel = ig.fixo(); //cria uma caixa fixa ig.ad(jan , painel); //adiciona a caixa na janela //criando uma escala horizontal com valores limites escalah = ig.escalah_com_limite(1 , 100 , 1 ); ig.componente_def_tamanho( escalah , 200 , 50 ); ig.fixo_ad(painel, escalah , 10 , 10 ); //cria uma escala vertical escalav = ig.escalav_com_limite( 1,100,0.1); ig.componente_def_tamanho( escalav , 50 , 200 ); ig.escala_def_valor(escalav , 50.1 ); //define um valor ig.fixo_ad( painel , escalav , 230 , 40 ); //criando o texto na janela: rotulo = ig.rotulo( ig.escala_obt_valor(escalav) ); ig.componente_modifique_fonte( rotulo , 'Times New Roman' , ig.negrito , ig.italico , 80 ); cor_azul = ig.cor_analise( ig.azul ); ig.componente_modifique_corletra( rotulo , ig.estado_normal , cor_azul); ig.fixo_ad( painel , rotulo , 10 , 100 ); //conectando as funções aos eventos das escalas (evento ig.valor_mudado ) ig.conecte_funcao( escalah , ig.valor_mudado , escalah_cb , escalav ); ig.conecte_funcao( escalav , ig.valor_mudado , escalav_cb , rotulo ); ig.componente_mostre_todos(jan);//mostra os componentes ig.fimprograma(); //acima, inicia o laço de eventos do gtk, este comando sempre deve estar em último lugar |
1 2 3 4 5 6 7 8 9 |
função que cria escala com delimitadores: vertical = ig.escalav_com_limites( numero_inicial , numero_final , incremento ); horizontal = ig.escalah_com_limites( numero_inicial , numero_final , incremento ); Define o valor: ig.escala_def_valor( escala , 100 ); Obtém o valor: valor = ig.escala_obt_valor( escala ); |
Espero que este exemplo seja útil a alguém, qualquer dúvida, poste nos comentários ou no fórum. Até logo.