Пример #1
0
int goc_labelListener(GOC_HANDLER uchwyt, GOC_MSG wiesc, void* pBuf, unsigned int nBuf)
{
	if ( wiesc == GOC_MSG_CREATE )
	{
		GOC_StElement* elem = (GOC_StElement*)pBuf;
		GOC_HANDLER* retuchwyt = (GOC_HANDLER*)nBuf;
		GOC_StLabel* napis = (GOC_StLabel*)malloc(sizeof(GOC_StLabel));
		memcpy(napis, elem, sizeof(GOC_StElement));
		napis->tekst = NULL;
		napis->nText = 0;
		napis->start = 0;
		*retuchwyt = (GOC_HANDLER)napis;
		return GOC_ERR_OK;
	}
	else if ( wiesc == GOC_MSG_PAINT )
	{
		return labelPaint((GOC_StLabel*)uchwyt);
	}
	else if ( wiesc == GOC_MSG_DESTROY )
	{
		goc_labelRemLines(uchwyt);
		return goc_elementDestroy(uchwyt);
	}
	return GOC_ERR_UNKNOWNMSG;
}
Пример #2
0
int goc_labelSetText(GOC_HANDLER u, char *tekst, GOC_BOOL licz)
{
	GOC_StLabel *napis = (GOC_StLabel*)u;
	goc_labelRemLines(u);
	goc_labelAddLine(u, tekst);
	if ( licz == GOC_TRUE )
		goc_elementSetWidth(u, strlen(tekst));
	else if ( napis->flag & GOC_EFLAGA_SHOWN )
		goc_systemSendMsg(u, GOC_MSG_PAINT, 0, 0);
	return GOC_ERR_OK;
}
Пример #3
0
static int nasluchOk(
	GOC_HANDLER uchwyt, GOC_MSG wiesc, void *pBuf, unsigned int nBuf)
{
	if ( wiesc == GOC_MSG_ACTION )
	{
		goc_labelRemLines( napis );
		goc_labelAddLine( napis, "Formularz wype³niono" );
		goc_formHide( forma );
		return GOC_ERR_OK;
	}
	return goc_systemDefaultAction(uchwyt, wiesc, pBuf, nBuf);
}
Пример #4
0
// TODO: Dodanie odswiezenia listy, jesli jest widoczna po dodaniu pliku lub
// katalogu z zachowaniem pozycji kursora
static int hotKeyAddFolder(
	GOC_HANDLER uchwyt, GOC_MSG wiesc, void *pBuf, unsigned int nBuf)
{
	GOC_FLAGS f = goc_elementGetFlag(pLista);
	if ( f & GOC_EFLAGA_PAINTED )
	{
		goc_labelRemLines(nStatus);
		goc_elementIsFlag(pLista, GOC_EFLAGA_PAINTED | GOC_EFLAGA_ENABLE);
		goc_systemRepaintUnder(pLista);
		goc_systemRepaintUnder(nStatus);
		fflush(stdout);
	}
	else
	{
		goc_elementOrFlag(pLista, GOC_EFLAGA_PAINTED | GOC_EFLAGA_ENABLE);
		goc_systemFocusOn(pLista);
		goc_systemSendMsg(pLista, GOC_MSG_PAINT, 0, 0);
	}
	return GOC_ERR_OK;
}
Пример #5
0
static int mapaCommonListener(GOC_HANDLER uchwyt, GOC_StMessage *msg)
{
	if ( msg->id == GOC_MSG_CURSORCHANGE_ID )
	{
		GOC_StMsgMapPoint* msgp = (GOC_StMsgMapPoint*)msg;
		char buf[80];
		GOC_StValuePoint *v;
		int p;
		StAirport* airport = NULL;

		goc_labelRemLines(labelDesc);
		p = goc_maparawGetPoint(terrain, msgp->x, msgp->y);
		memset(buf, 0, 80);
		switch ( p )
		{
			case 0:
				sprintf(buf, "Terrain: forrest" );
				break;
			case 1:
				sprintf(buf, "Terrain: clear" );
				break;
			case 2:
				sprintf(buf, "Terrain: river" );
				break;
			case 3:
				sprintf(buf, "Terrain: mountains" );
				break;
			default:
				sprintf(buf, "Terrain: unknown" );
				break;
		}
		goc_labelAddLine(labelDesc, buf);
		v = goc_mapaposReadPoint(build, msgp->x, msgp->y);
		memset(buf, 0, 80);
		if ( v != NULL )
		{
			switch ( v-> value & 0x0F )
			{
				case 0x00:
					sprintf(buf, "");
					break;
				case 0x01:
					sprintf(buf, "Build: Supply");
					break;
				case 0x02:
					sprintf(buf, "Build: Factory");
					break;
				case 0x03:
					sprintf(buf, "Build: City");
					break;
				case 0x04:
					sprintf(buf, "Build: Airport");
					airport = (StAirport*)FROMGOC(v);
					break;
				case 0x05:
					sprintf(buf, "Build: Village");
					break;
				case 0x06:
					sprintf(buf, "Build: Fort");
					break;
				case 0x07:
					sprintf(buf, "Build: Capital");
					break;
				case 0x08:
				case 0x09:
					sprintf(buf, "Build: Bridge");
					break;
				default:
					sprintf(buf, "Build: unknown" );
					break;
			}
		}
		if ( strlen(buf) )
			goc_labelAddLine(labelDesc, buf);
		if ( airport )
		{
			int i;
			for (i=0; i<airport->nfly; i++)
			{
				sprintf(buf, "  %-20s [%1s:%1d]",
					airport->pfly[i]->pilotName,
					airport->pfly[i]->cname == cn_Fighter ? "F" : "B",
					airport->pfly[i]->pilotExp/10);
				goc_labelAddLine(labelDesc, buf);
			}

		}
		memset(buf, 0, 80);
		if ( v != NULL ) {
			switch ( v->value & 0xF0 )
			{
				case 0x00:
					break;
				case 0x10:
					sprintf(buf, "Front: green power" );
					break;
				case 0x20:
					sprintf(buf, "Front: red power" );
					break;
				case 0x30:
					sprintf(buf, "Front: none power" );
					break;
				default:
					sprintf(buf, "Front: unknown" );
					break;
			}
		}
		if ( strlen( buf ) )
			goc_labelAddLine(labelDesc, buf);
		goc_systemClearArea(labelDesc);
		GOC_MSG_PAINT( msgPaint );
		goc_systemSendMsg(labelDesc, msgPaint);
		return GOC_ERR_OK;
	}
	return goc_systemDefaultAction(uchwyt, msg);
}