示例#1
0
int listSetExt(
	GOC_HANDLER uchwyt, const char **pTable, unsigned int size)
{
	GOC_StList *lista = (GOC_StList*)uchwyt;
	
	goc_listClear(uchwyt);
	/* Jesli nie ma zadnej kolumny, to zbuduj */
	if ( lista->nKolumna == 0 )
		goc_listAddColumn(uchwyt, goc_elementGetWidth(uchwyt));
	lista->pKolumna[0]->pText = (char **)pTable;
	lista->pKolumna[0]->nText = size;
	lista->flag |= GOC_LISTFLAG_EXTERNAL;
	return GOC_ERR_OK;
}
示例#2
0
int main()
{
	GOC_MSG wiesc;
	GOC_HANDLER lista;
	GOC_HANDLER lista2;
	lista = goc_elementCreate(GOC_ELEMENT_SELLIST, 1, 1, 20, 10,
			GOC_EFLAGA_PAINTED | GOC_EFLAGA_ENABLE,
			GOC_WHITE, GOC_HANDLER_SYSTEM );
	listaBuduj(lista);
	goc_sellistSelect(lista, 1);
	goc_sellistSelect(lista, 4);
	goc_sellistSelect(lista, 5);
	lista2 = goc_elementCreate(GOC_ELEMENT_SELLIST, 21, 1, 20, 10,
			GOC_EFLAGA_PAINTED | GOC_EFLAGA_ENABLE,
			GOC_WHITE, GOC_HANDLER_SYSTEM );
	goc_listAddColumn(lista2, 10);
	goc_listAddColumn(lista2, 10);
	listaBudujKolumna(lista2);
	goc_sellistSelect(lista2, 1);
	goc_sellistSelect(lista2, 4);
	goc_sellistSelect(lista2, 5);
	while (goc_systemCheckMsg( &wiesc ));
	return 0;
}
示例#3
0
/*
 * Odmowa wykonania polecenia, jezeli ustawione dane sa zewnetrzne.
 */
static int listAddRow(GOC_HANDLER u, GOC_LISTROW *wiersz)
{
	GOC_StList* lista = (GOC_StList*)u;
	GOC_COLUMN *k = NULL;
	int i;
	
	if ( lista->flag & GOC_LISTFLAG_EXTERNAL )
		return GOC_ERR_REFUSE;
	// jesli nie ma to stworz nowa kolumne
	if ( lista->nKolumna == 0 )
		goc_listAddColumn(u, goc_elementGetWidth(u));
	// ustal pozcje na podstawie sortowania lub jako ostatni element
	if ( wiersz->nRow == -1 )
	{
		if ( lista->flag & GOC_LISTFLAG_SORT )
		{
			k = lista->pKolumna[0];
			for (i=0; i<k->nText; i++)
			{
				if ( strcmp(wiersz->pText[0], k->pText[i])<0 )
					break;
			}
			wiersz->nRow = i;
		}
		else
		{
			wiersz->nRow = lista->pKolumna[0]->nText;
		}
	}
	// czy nie wykracza ponad dodanie
	if ( wiersz->nRow > lista->pKolumna[0]->nText )
		return GOC_ERR_REFUSE;
	// dodawanie danych wiersza do kolumn
	for ( i=0; i<lista->nKolumna; i++ )
	{
		k = lista->pKolumna[i];
		k->pText = goc_tableInsert(k->pText, &(k->nText), sizeof(char*),
				wiersz->nRow);

		if ( i < wiersz->nText )
		{
			k->pText[wiersz->nRow] = goc_stringCopy(NULL,
				wiersz->pText[i]);
		}
		else
		{
			k->pText[wiersz->nRow] = NULL;
		}
	}
	return GOC_ERR_OK;

//	return goc_listAddColumnText(u, tekst, 0);
/*	GOC_StList* lista = (GOC_StList*)u;
	char *pBuf = NULL;
	GOC_COLUMN *kolumna = NULL;
	if ( lista->flag & GOC_LISTFLAG_EXTERNAL )
		return GOC_ERR_REFUSE;
	if ( lista->nKolumna == 0 )
		goc_listAddColumn(u, lista->width);
	kolumna = lista->pKolumna[0];
	pBuf = goc_stringCopy(pBuf, tekst);
	kolumna->pText = goc_tableAdd( kolumna->pText, &(kolumna->nText),
		sizeof(char*) );
	kolumna->pText[kolumna->nText-1] = pBuf;
//	goc_systemSendMsg(u, GOC_MSG_PAINT, 0, 0);
	return GOC_ERR_OK;*/
}