×
Namespaces

Variants
Actions
Revision as of 14:09, 15 August 2013 by hamishwillee (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Criando Grids

From Nokia Developer Wiki
Jump to: navigation, search
Article Metadata

Artigo
Criado por cabezonxdg em Cabezonxdg
Última alteração feita por hamishwillee em 15 Aug 2013

Grid é um tipo específico de controle que pode representar elementos gráficos e/ou texto como se fosse uma Listbox bi-dimensional (lembra uma matriz).

Grids são instâncias da classe CAknGrid (akngrid.h), são divididos em quatro tipos:

Tipo Flags a serem usadas no resource
Selection EAknListBoxSelectionGrid
Markable EAknListBoxMarkableGrid
MultiSelection EAknListBoxMultiSelectionGrid
MenuSelection EAknListBoxMenuGrid

Um grid é representado por linhas, colunas e células. A disposição desses elementos pode ser definido tanto em um arquivo de recursos (resource file) como diretamente na criação da classe.

Itens de um grid são conhecidos por células, eles podem ser representados por multi-bitmaps e/ou strings. Todas as células possuem uma mesma definição e essa é feita pela chamada a classe AknListBoxLayouts::SetupFormGfxCell para imagens e AknListBoxLayouts::SetupFormTextCell para texto.

Criação do Grid através de Resource

Um Grid pode ser definido através de um GRID Resource e construido usando CAknGrid::ConstructFromResource() ou criado diretamente através da função CAknGrid::ConstructL();

Váriaveis do GRID resource:

flags = Tipo do grid. EAknListBoxSelectionGrid, EAknListBoxMarkableGrid ou EAknListBoxMenuGrid
style = resource GRID_STYLE.
array_id = array contendo os itens do grid.

A definição de seu layout pode ser feita utilizando um resource GRID_STYLE ou pela função CAknGrid::SetLayout().

Variáveis do GRID_STYLE:

layoutflags = determina a forma na qual seu grid será orientado, assim novos itens serão adicionados baseados nessa orientação. Horizontal, Vertical, Esquerda p/ direita, Cima p/ baixo etc.

primaryscroll = determina como o grid irá agir ao chegar no final de uma de uma linha ou coluna baseado em sua orientação primária (horizontal ou vertical). Ele poderá parar ao encontrar o fim da linha, voltar a primeira célula da linha ou pular para a próxima linha.

secondaryscroll = determina como o grid irá agir ao chegar no final de uma coluna ou de uma linha baseado em sua orientação secundária (caso o grid tenha orientação vertical, seu secondary scroll será para ações horizontais e vice-versa). Ele poderá parar ao encontrar o fim da linha, voltar a primeira célula da linha ou pular para a próxima linha. (Veja a tabela abaixo)

itemsinprimaryorient = determina a quantidade de itens baseado na orientação primária.

itemsinsecondaryorient = determina a quantidade de itens baseado na orientação secundária.

width = largura de cada célula do grid.
height = altura de cada célula do grid.
gapwidth = espaçamento em pixels entre as células (referente a largura)
gapheight = espaçamento em pixels entre as células (referente a altura)

As células do grid podem conter imagens e/ou textos. Você precisa primeiro definir os itens no array que foi passado ao GRID resource, no formato #define GRID_ITENS_NUM "n\TEXTO", onde NUM é o número do elemento e n determina qual imagem será utilizada. Para carregar imagens é preciso criar um array de ícones, passar os ponteiros das imagens para esse array e então definir que o grid irá utilizar essas imagens através da função CFormattedCellListBoxData::SetIconArray().

Funções úteis:

CAknGrid::CurrentDataIndex() - Acessa a célula atual. CAknGrid::GridModel()->NumberOfData() - Retorna a quantidade de células do grid.

Exemplo

Grids - Exemplo

This page was last modified on 15 August 2013, at 14:09.
62 page views in the last 30 days.

Was this page helpful?

Your feedback about this content is important. Let us know what you think.

 

Thank you!

We appreciate your feedback.

×