Example #1
0
int goc_listSetCursor(GOC_HANDLER uchwyt, int pos)
{
	GOC_StList *lista = (GOC_StList*)uchwyt;
	int cnt = goc_listGetRowsAmmount( uchwyt );
	GOC_POSITION height = goc_elementGetHeight(uchwyt);
	if ( lista->nKolumna == 0 )
		return GOC_ERR_REFUSE;
	// jezeli pozycja sie nie zmienila nic nie rob
	if ( lista->kursor == pos )
		return GOC_ERR_OK;
	if ( pos < 0 )
	{
		lista->kursor = -1;
		goc_systemSendMsg(uchwyt, GOC_MSG_LISTCHANGE, NULL, lista->kursor);
	}
	else if ( pos < cnt )
	{
		lista->kursor = pos;
		goc_systemSendMsg(uchwyt, GOC_MSG_LISTCHANGE,
			lista->pKolumna[0]->pText[lista->kursor],
			lista->kursor);
	}
	else
		return GOC_ERR_REFUSE;
	lista->start = listCountStart(lista->kursor, height, cnt);
	return GOC_ERR_OK;
}
Example #2
0
static int listCursorPrev(GOC_HANDLER uchwyt)
{
	GOC_StList *lista = (GOC_StList*)uchwyt;
	if ( lista->kursor > 0 )
	{
		lista->kursor--;
		goc_systemSendMsg(uchwyt, GOC_MSG_LISTCHANGE,
			lista->pKolumna[0]->pText[lista->kursor],
			lista->kursor);
		if ( lista->start > lista->kursor )
		{
			// przemaluj calosc, nastapilo przewiniecie strony
			int n = goc_listGetRowsAmmount(uchwyt);
			GOC_POSITION height = goc_elementGetHeight(uchwyt);
			lista->start = listCountStart(lista->kursor, height, n);
			goc_systemSendMsg(uchwyt, GOC_MSG_PAINT, 0, 0);
		}
		if ( lista->flag & GOC_EFLAGA_SHOWN )
		{
			// przemaluj tylko linie nastepna i tam gdzie poszedl kursor
			listRedrawLine(uchwyt, lista->kursor);
			listRedrawLine(uchwyt, lista->kursor+1);
			goc_gotoxy(
				goc_elementGetScreenX(uchwyt)+1,
				goc_elementGetScreenY(uchwyt)+(lista->kursor-lista->start) + 1);
			fflush(stdout);
		}
	}
	return GOC_ERR_OK;
}
Example #3
0
static int listHotKeyPgDown(
	GOC_HANDLER uchwyt, GOC_MSG wiesc, void* pBuf, unsigned int nBuf)
{
	GOC_StList *lista = (GOC_StList*)uchwyt;
	int n = goc_listGetRowsAmmount(uchwyt);
	int retCode = GOC_ERR_OK;
	GOC_POSITION heightOffset;
	// brak wpisów
	if ( n <= 0 )
		return retCode;
	// kursor jest ju¿ na koñcu
	if ( lista->kursor == n-1 )
		return retCode;
	// kursor jeszcze nie ustawiony
	if ( lista->kursor < 0 )
		lista->kursor = 0;
	// wykonaj przesuniecie wszystkiego o lista->height-2
	heightOffset = goc_elementGetHeight(uchwyt)-2;
	lista->start += heightOffset;
	lista->kursor += heightOffset;
	// wykonaj wyrównanie
	if ( lista->start + heightOffset >= n )
		lista->start = n - heightOffset;
	if ( lista->kursor >= n )
		lista->kursor = n-1;
	// zgloszenie zmiany
	goc_systemSendMsg(uchwyt, GOC_MSG_LISTCHANGE,
		lista->pKolumna[0]->pText[lista->kursor],
		lista->kursor);
	// wy¶wietlenie
	if ( lista->flag & GOC_EFLAGA_SHOWN )
		goc_systemSendMsg(uchwyt, GOC_MSG_PAINT, 0, 0);
	return retCode;
}
Example #4
0
void printMixer()
{
	int param;
	param = AUMIX_CURRNAME;
	doAction(ACTION_AUMIX, &param);
	goc_labelSetText(nMixer, (char*)param, GOC_FALSE);
	param = AUMIX_CURRDEV;
	doAction(ACTION_AUMIX, &param);
	param &= 0x7F;
	goc_precentSetPosition(pMixer, param);
	goc_systemSendMsg(nMixer, GOC_MSG_PAINT, 0, 0);
	goc_systemSendMsg(pMixer, GOC_MSG_PAINT, 0, 0);
	fflush(stdout);
}
Example #5
0
static int barFreeFocus(GOC_HANDLER uchwyt)
{
	GOC_StBar *pasek = (GOC_StBar*)uchwyt;
	pasek->color = pasek->kolorNieaktywny;
	goc_systemSendMsg(uchwyt, GOC_MSG_PAINT, 0, 0);
	return GOC_ERR_OK;
}
Example #6
0
int goc_labelSetFlag(GOC_HANDLER u, unsigned short line, GOC_FLAGS flag)
{
	GOC_StLabel *napis = (GOC_StLabel*)u;
	flag &= (GOC_FLAGS)COC_EFLAGA_G_JUSTIFY;
	if ( line == (unsigned short)~0 )
		/* wykonaj ustawienie dla wszystkich elementów */
	{
		int i;
		GOC_FLAGS *f = &(napis->flag);
		unsigned int n = napis->nText;
		*f &= (GOC_FLAGS)~COC_EFLAGA_G_JUSTIFY;
		*f |= flag;
		for ( i=0; i<n; i++ )
		{
			napis->tekst[i].flag &= (GOC_FLAGS)~COC_EFLAGA_G_JUSTIFY;
			napis->tekst[i].flag |= flag;
		}
	}
	else
		/* wykonaj ustawienie dla wybranego elementu */
	{
		if ( line >= napis->nText )
			return GOC_ERR_END;
		napis->tekst[line].flag &= (GOC_FLAGS)~COC_EFLAGA_G_JUSTIFY;
		napis->tekst[line].flag |= flag;
	}
	if ( napis->flag & GOC_EFLAGA_SHOWN )
		goc_systemSendMsg(u, GOC_MSG_PAINT, 0, 0);
	return GOC_ERR_OK;
}
Example #7
0
static int hotKeyShowList(
	GOC_HANDLER uchwyt, GOC_MSG wiesc, void *pBuf, unsigned int nBuf)
{
	GOC_FLAGS f = goc_elementGetFlag(lLista);
	if ( f & GOC_EFLAGA_PAINTED )
	{
		goc_listClear(lLista);
		goc_elementIsFlag(lLista, GOC_EFLAGA_PAINTED | GOC_EFLAGA_ENABLE);
		//goc_elementSetFlag(lLista, f);
		goc_systemRepaintUnder(lLista);
		fflush(stdout);
	}
	else
	{
		int size = 0;
		const char **ptr;
		doAction(ACTION_PLAYLIST_GETSIZE, &size);
		doAction(ACTION_PLAYLIST_GETTABLE, &ptr);
		goc_listSetExtTable(lLista, ptr, size);
		doAction(ACTION_PLAYLIST_GETACTUAL, &size);
		goc_sellistSelect(lLista, size);
		goc_listSetCursor(lLista, size);
		goc_elementOrFlag(lLista, GOC_EFLAGA_PAINTED | GOC_EFLAGA_ENABLE);
		goc_systemFocusOn(lLista);
	}
	goc_systemSendMsg(lLista, GOC_MSG_PAINT, 0, 0);
}
Example #8
0
static int nasluch(GOC_HANDLER uchwyt, GOC_MSG wiesc, void *pBuf, unsigned int nBuf)
{
	if ( uchwyt == GOC_HANDLER_SYSTEM )
	{
		if ( wiesc == GOC_MSG_CHAR )
		{
			if ( nBuf == 27 )
				return GOC_ERR_OK;
		}
	}
	else if ( uchwyt == lLista )
	{
		if ( wiesc == GOC_MSG_CHAR )
		{
			if ( nBuf == 0x0D )
			{
				char *selFile = goc_listGetUnderCursor( lLista );
				if ( selFile )
					doAction(ACTION_PLAY, selFile);
				return GOC_ERR_OK;
			}
			else if ( nBuf == 0x116 )
			{
				int pos = goc_listGetCursor(lLista);
				if ( pos > 0 )
				{
					int size = 0;
					const char **ptr;
					doAction(ACTION_PLAYLIST_REMOVEFILE, &pos);
					doAction(ACTION_PLAYLIST_GETSIZE, &size);
					doAction(ACTION_PLAYLIST_GETTABLE, &ptr);
					goc_listSetExtTable(lLista, ptr, size);
					doAction(ACTION_PLAYLIST_GETACTUAL, &size);
					goc_sellistSelect(lLista, size);
					goc_listSetCursor(lLista, pos);
//		goc_elementOrFlag(lLista, GOC_EFLAGA_PAINTED | GOC_EFLAGA_ENABLE);
//		goc_systemFocusOn(lLista);
					goc_systemSendMsg(lLista, GOC_MSG_PAINT, 0, 0);
				}
				return GOC_ERR_OK;
			}
		}
		else if ( wiesc == GOC_MSG_LISTCHANGE )
		{
			// TODO: Opis zaznaczonej pozycji
			return GOC_ERR_OK;
		}
	}
/*	else if ( uchwyt == pLista )
	{
		// selekcjonuj tylko katalogi do dodawania
		if ( wiesc == GOC_MSG_FILELISTADDFILE )
		{
			if ( nBuf != GOC_FILELISTFLAG_FOLDER )
				return GOC_ERR_REFUSE;
		}
	}*/
	return goc_systemDefaultAction(uchwyt, wiesc, pBuf, nBuf);
}
Example #9
0
int goc_barAddText(GOC_HANDLER uchwyt, const char *tekst)
{
	GOC_StBar* pasek = (GOC_StBar*)uchwyt;
	pasek->tekst = goc_tableAdd(pasek->tekst, &(pasek->nText), sizeof(char*));
	pasek->tekst[pasek->nText-1] = strdup(tekst);
	goc_systemSendMsg(uchwyt, GOC_MSG_PAINT, 0, 0);
	return GOC_ERR_OK;
}
Example #10
0
// -- do ustalenia, co bedzie decydowalo co zrobic po zakonczeniu piosenki
// -- czy grac dalej, czy przerwac
int controlStart()
{
	GOC_MSG wiesc;
	doAction(ACTION_START, NULL);
	goc_systemSendMsg(GOC_HANDLER_SYSTEM, GOC_MSG_PAINT, 0, 0);
	while ((goc_systemCheckMsg( &wiesc )));
	return 0;
}
Example #11
0
// TODO: Przemieszczenie punktu startowego przy ilosci pól wykraczaj±cych
// poza dostêpny obszar
static int barHotKeyNext(GOC_HANDLER uchwyt, GOC_MSG wiesc, void* pBuf, unsigned int nBuf)
{
	GOC_StBar *pasek = (GOC_StBar*)uchwyt;
	if ( pasek->kursor < (int)(pasek->nText-1) )
		pasek->kursor++;
	goc_systemSendMsg(uchwyt, GOC_MSG_PAINT, 0, 0);
	return GOC_ERR_OK;
}
Example #12
0
// TODO: Przemieszczenie punktu startowego przy ilosci pól wykraczaj±cych
// poza dostêpny obszar
static int barHotKeyPrev(GOC_HANDLER uchwyt, GOC_MSG wiesc, void* pBuf, unsigned int nBuf)
{
	GOC_StBar *pasek = (GOC_StBar*)uchwyt;
	if ( pasek->kursor > 0 )
		(pasek->kursor)--;
	goc_systemSendMsg(uchwyt, GOC_MSG_PAINT, 0, 0);
	return GOC_ERR_OK;
}
Example #13
0
static int nasluch(GOC_HANDLER uchwyt, GOC_MSG wiesc, void *pBuf, unsigned int nBuf)
{
	if ( wiesc == GOC_MSG_TIMERTICK )
	{
		goc_systemSendMsg(uchwyt, GOC_MSG_PAINT, 0, 0);
		return GOC_ERR_OK;
	}
	return goc_systemDefaultAction(uchwyt, wiesc, pBuf, nBuf);
}
Example #14
0
static int listFocusFree(GOC_HANDLER uchwyt)
{
	GOC_StList *lista = (GOC_StList*)uchwyt;
	lista->kolorRamka = lista->kolorRamkaNieaktywny;
	lista->color = lista->kolorPoleNieaktywny;
	if ( lista->flag & GOC_EFLAGA_SHOWN )
		goc_systemSendMsg(uchwyt, GOC_MSG_PAINT, 0, 0);
	return GOC_ERR_OK;
}
Example #15
0
static int barFocus(GOC_HANDLER uchwyt)
{
	GOC_StBar *pasek = (GOC_StBar*)uchwyt;
	if ( !(pasek->flag & GOC_EFLAGA_PAINTED) )
		return GOC_ERR_REFUSE;
	if ( !(pasek->flag & GOC_EFLAGA_ENABLE) )
		return GOC_ERR_REFUSE;
	pasek->color = pasek->kolorAktywny;
	goc_systemSendMsg(uchwyt, GOC_MSG_PAINT, 0, 0);
	return GOC_ERR_OK;
}
Example #16
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;
}
Example #17
0
int goc_listListener(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_StList* lista = (GOC_StList*)malloc(sizeof(GOC_StList));
		memcpy(lista, elem, sizeof(GOC_StElement));
		*retuchwyt = (GOC_HANDLER)lista;
		goc_systemSendMsg(*retuchwyt, GOC_MSG_INIT, lista, 0);
		return GOC_ERR_OK;
	}
	else if ( wiesc == GOC_MSG_INIT )
	{
		return listInit((GOC_HANDLER)pBuf);
	}
	else if ( wiesc == GOC_MSG_PAINT )
	{
		return goc_listPaint(uchwyt);
	}
	else if ( wiesc == GOC_MSG_FOCUS )
	{
		return listFocus(uchwyt);
	}
	else if ( wiesc == GOC_MSG_FOCUSFREE )
	{
		return listFocusFree(uchwyt);
	}
	else if ( wiesc == GOC_MSG_DESTROY )
	{
		return goc_listDestroy(uchwyt);
	}
	else if ( wiesc == GOC_MSG_LISTSETCOLOR )
	{
		*((GOC_COLOR *)pBuf) = listSetColor( uchwyt, nBuf );
	}
	else if ( wiesc == GOC_MSG_LISTADDTEXT )
	{
		return listAddText(uchwyt, pBuf);
	}
	else if ( wiesc == GOC_MSG_LISTADDROW )
	{
		return listAddRow(uchwyt, pBuf);
	}
	else if ( wiesc == GOC_MSG_LISTCLEAR )
	{
		return listClear(uchwyt);
	}
	else if ( wiesc == GOC_MSG_LISTSETEXTERNAL )
	{
		return listSetExt(uchwyt, pBuf, nBuf);
	}
	return GOC_ERR_UNKNOWNMSG;
}
Example #18
0
static int listHotKeyEnd(GOC_HANDLER uchwyt, GOC_MSG wiesc, void* pBuf, unsigned int nBuf)
{
	GOC_StList *lista = (GOC_StList*)uchwyt;
	int retCode = GOC_ERR_OK;
	retCode = goc_listSetCursor(uchwyt, goc_listGetRowsAmmount( uchwyt )-1);
	if ( retCode != GOC_ERR_OK )
		return retCode;
	if ( lista->flag & GOC_EFLAGA_SHOWN )
		goc_systemSendMsg(uchwyt, GOC_MSG_PAINT, 0, 0);
	return GOC_ERR_OK;
}
Example #19
0
int controlEvent(unsigned int event)
{
	if ( event == EVENT_CHANGE_SONG ) 
	{
		char buf[256];
		int param;
		param = INFO_FILE;
		doAction(ACTION_INFO, &param);
		sprintf(buf, "Plik: %s", (char *)param); free((char*)param);
		goc_labelSetText(nPlik, buf, 0);
		goc_systemSendMsg(nPlik, GOC_MSG_PAINT, 0, 0);

		param = INFO_TITLE;
		doAction(ACTION_INFO, &param);
		sprintf(buf, "Title: %s", (char *)param); free((char*)param);
		goc_labelSetText(nTitle, buf, 0);
		goc_systemSendMsg(nTitle, GOC_MSG_PAINT, 0, 0);

		param = INFO_ARTIST;
		doAction(ACTION_INFO, &param);
		sprintf(buf, "Artist: %s", (char *)param); free((char*)param);
		goc_labelSetText(nArtist, buf, 0);
		goc_systemSendMsg(nArtist, GOC_MSG_PAINT, 0, 0);
		
		param = INFO_ALBUM;
		doAction(ACTION_INFO, &param);
		sprintf(buf, "Album: %s", (char *)param); free((char*)param);
		goc_labelSetText(nAlbum, buf, 0);
		goc_systemSendMsg(nAlbum, GOC_MSG_PAINT, 0, 0);
		
		param = INFO_YEAR;
		doAction(ACTION_INFO, &param);
		sprintf(buf, "Year: %s", (char *)param); free((char*)param);
		goc_labelSetText(nYear, buf, 0);
		goc_systemSendMsg(nYear, GOC_MSG_PAINT, 0, 0);
		
		param = INFO_COMMENT;
		doAction(ACTION_INFO, &param);
		sprintf(buf, "Comment: %s", (char *)param); free((char*)param);
		goc_labelSetText(nComment, buf, 0);
		goc_systemSendMsg(nComment, GOC_MSG_PAINT, 0, 0);
		if ( goc_elementGetFlag(lLista) & GOC_EFLAGA_PAINTED )
		{
			int pos = 0;
			pos = goc_sellistGetSelectPos(lLista, 0);
			goc_sellistUnselect(lLista, pos);
			pos = 0;
			doAction(ACTION_PLAYLIST_GETACTUAL, &pos);
			goc_sellistSelect(lLista, pos);
			goc_systemSendMsg(lLista, GOC_MSG_PAINT, 0, 0);
		}
	}
	return 0;
}
Example #20
0
int goc_labelAddLine(GOC_HANDLER u, const char *Tekst)
{
	GOC_StLabel *napis = (GOC_StLabel*)u;
	if ( !Tekst )
		return GOC_ERR_OK; // ??
	napis->tekst = goc_tableAdd(napis->tekst, &napis->nText, sizeof(GOC_StColorLine));
	napis->tekst[napis->nText-1].line = goc_stringCopy(NULL, Tekst);
	napis->tekst[napis->nText-1].color = napis->color;
	napis->tekst[napis->nText-1].flag = napis->flag;
	if ( napis->flag & GOC_EFLAGA_SHOWN )
		goc_systemSendMsg(u, GOC_MSG_PAINT, 0, 0);
	return GOC_ERR_OK;
}
Example #21
0
static int listAddText(GOC_HANDLER u, const char *buf)
{
	GOC_LISTROW wiersz;
	int retCode;
	memset( &wiersz, 0, sizeof(GOC_LISTROW) );
	wiersz.nRow = -1;
	wiersz.pText = goc_tableAdd(wiersz.pText, &wiersz.nText,
		sizeof(char *));
	wiersz.pText[wiersz.nText-1] = buf;
	retCode = goc_systemSendMsg(u, GOC_MSG_LISTADDROW, &wiersz, 0);
	wiersz.pText = goc_tableClear(wiersz.pText, &wiersz.nText);
	return retCode;
}
Example #22
0
static int listFocus(GOC_HANDLER uchwyt)
{
	GOC_StList *lista = (GOC_StList*)uchwyt;
	if ( !(lista->flag & GOC_EFLAGA_PAINTED) )
		return GOC_ERR_REFUSE;
	if ( !(lista->flag & GOC_EFLAGA_ENABLE) )
		return GOC_ERR_REFUSE;
	lista->kolorRamka = lista->kolorRamkaAktywny;
	lista->color = lista->kolorPoleAktywny;
	if ( lista->flag & GOC_EFLAGA_SHOWN )
		goc_systemSendMsg(uchwyt, GOC_MSG_PAINT, 0, 0);
	return GOC_ERR_OK;
}
Example #23
0
static void bacteryGeneration(GOC_HANDLER mapa, int numStartPoints, int nBiomes)
{
    int i;
    // wygenerowanie punktów startowych biomów
    context.configuration.maxz = nBiomes-1;
    pBiomeSet = randomStartPoints(&nBiomeSet, numStartPoints);
    for ( i=0; i<nBiomeSet; i++ )
    {
        goc_maparawSetPoint(mapa,
                            pBiomeSet[i]->x, pBiomeSet[i]->y, ++(pBiomeSet[i]->v));
    }
    goc_systemSendMsg(mapa, GOC_MSG_PAINT, 0, 0);
}
Example #24
0
static int hotkeyModeView(
    GOC_HANDLER u, GOC_MSG m, void* pBuf, unsigned int nBuf)
{
    if ( modeView == MODE_VIEW_CHARS )
    {
        setUpNumericModeView(context.maska);
    }
    else if ( modeView == MODE_VIEW_NUMBERS )
    {
        setUpCharModeView(context.maska);
    }
    goc_systemSendMsg(context.mapa, GOC_MSG_PAINT, 0, 0);
    return GOC_ERR_OK;
}
Example #25
0
// Dodanie nowego wierszu i ustawienie tekstu dla podanej kolumny
int goc_listAddColumnText(GOC_HANDLER u, const char *tekst, int kolumna)
{
	GOC_LISTROW wiersz;
	int ret;
	
	memset( &wiersz, 0, sizeof(GOC_LISTROW));
	wiersz.pText = goc_tableResize( wiersz.pText, &(wiersz.nText),
		sizeof(char*), kolumna+1);
	wiersz.pText[kolumna] = tekst;
	wiersz.nRow = -1;
	ret = goc_systemSendMsg(u, GOC_MSG_LISTADDROW, &wiersz, 0);
	wiersz.pText = goc_tableClear( wiersz.pText, &(wiersz.nText) );
	return ret;
	/*
	GOC_StList* lista = (GOC_StList*)u;
	char *pBuf = NULL;
	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, lista->width);
	if ( kolumna >= lista->nKolumna )
		return GOC_ERR_REFUSE;
	// zrob kopie dodawanego tekstu
	pBuf = goc_stringCopy(pBuf, tekst);
	// dodaj do wszystkich kolumn wiersz, ustawiajac ten do ktorego
	// ma zostac wpisany tekst
	for ( i=0; i<lista->nKolumna; i++ )
	{
		k = lista->pKolumna[i];
		k->pText = goc_tableAdd(k->pText, &(k->nText),sizeof(char*));
		if ( i != kolumna )
			k->pText[k->nText-1] = NULL;
		else
			k->pText[k->nText-1] = pBuf;
	}
	return GOC_ERR_OK;
	*/
}
Example #26
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;
}
Example #27
0
static int hotKeySelectFolder(
	GOC_HANDLER uchwyt, GOC_MSG wiesc, void *pBuf, unsigned int nBuf)
{
	char *element = goc_stringCopy(NULL, goc_filelistGetFolder(uchwyt));
	element = goc_stringAdd(element, "/");
	element = goc_stringAdd(element, goc_listGetUnderCursor(uchwyt));
	if ( goc_isFileExists( element ) )
	{
		if ( goc_isFolder( element ) )
		{
			listAddFolder( element );
		}
		else
		{ // a wiec to plik
			checkAddFile( element );
		}
		char *tmp = goc_stringAdd(goc_stringCopy(NULL, "Dodano: "), element);
		goc_labelSetText(nStatus, tmp, 0);
		tmp = goc_stringFree(tmp);
		goc_systemSendMsg(nStatus, GOC_MSG_PAINT, 0, 0);
	}
}
Example #28
0
int goc_labelSetColor(GOC_HANDLER u, unsigned short line, GOC_COLOR color)
{
	GOC_StLabel *napis = (GOC_StLabel*)u;
	if ( line == (unsigned short)~0 )
	{
		/* wykonaj ustawienie dla wszystkich elementów */
		int i;
		unsigned int n = napis->nText;
		for ( i=0; i<n; i++ )
			napis->tekst[i].color = color;
	}
	else
	{
		/* wykonaj ustawienie dla wybranego elementu */
		if ( line >= napis->nText )
			return GOC_ERR_END;
		napis->tekst[line].color = color;
	}
	// TODO: Paint only changed line
	if ( napis->flag & GOC_EFLAGA_SHOWN )
		goc_systemSendMsg(u, GOC_MSG_PAINT, 0, 0);
	return GOC_ERR_OK;
}
Example #29
0
// bez konrtoli - odrysuj wskazana linie (pozycja na liscie)
static void listRedrawLine(GOC_HANDLER u, int pos)
{
	GOC_StList *lista = (GOC_StList*)u;
	GOC_StElement e;
	GOC_COLUMN *k;
	GOC_FUN_LABELDRAWER *drawer;
	int j; // licznik kolumn

	drawer = goc_elementGetLabelDrawer(u);
	memcpy(&e, lista, sizeof(GOC_StElement));
	goc_systemSendMsg(u, GOC_MSG_LISTSETCOLOR, &(e.color), pos);
	e.y += pos - lista->start + 1;
	(e.x)++;
	for ( j = 0; j < lista->nKolumna; j++ )
	{
		k = lista->pKolumna[j];
		e.width = k->position;
		if ( pos<k->nText )
			drawer(&e, k->pText[pos]);
		else
			drawer(&e, "");
		e.x += k->position;
	}
}
Example #30
0
static int hotkeyNextTurnDrops(
	GOC_HANDLER u, GOC_StMessage* msg)
{
	// TODO: Setting max and min landmass for forest/hills/land seperate
	GOC_BINFO("Turn: %3d", nBiomeTurn);
	if ( nBiomeTurn <= 0 )
	{
		// fill up with sea
		generateFillUp(6);
	}
	else if ( nBiomeTurn <= biome.lands )
	{
		int *allowed = malloc(sizeof(int)*1);
		allowed[0] = 6;
		generateLandMass(1, allowed, 1);
		free(allowed);
	}
	else if ( nBiomeTurn <= biome.lands + biome.trees )
	{
		int *allowed = malloc(sizeof(int)*1);
		allowed[0] = 1;
		generateLandMass(2, allowed, 1);
		free(allowed);
	}
	else if ( nBiomeTurn <= biome.lands + biome.trees + biome.hills )
	{
		int *allowed = malloc(sizeof(int)*1);
		allowed[0] = 1;
		generateLandMass(4, allowed, 1);
		free(allowed);
	}
	else if ( nBiomeTurn <= biome.lands + biome.trees + biome.hills + biome.desert )
	{
		int *allowed = malloc(sizeof(int)*1);
		allowed[0] = 1;
		generateLandMass(5, allowed, 1);
		free(allowed);
	}
	else if ( nBiomeTurn <= biome.lands + biome.trees + biome.hills + biome.desert + biome.swamp)
	{
		int *allowed = malloc(sizeof(int)*1);
		allowed[0] = 1;
		generateLandMass(7, allowed, 1);
		free(allowed);
	}
	else
	{
		GOC_INFO("This is the end");
		// I think it's the end
		return GOC_ERR_OK;
	}
	nBiomeTurn++;
	GOC_MSG_PAINT( msgPaint );
	goc_systemSendMsg(context->mapa, msgPaint);
	goc_gotoxy(0, 0);
	goc_textallcolor(GOC_WHITE);
	printf("%03d", nBiomeTurn);
	goc_gotoxy(0, 0);
	fflush(stdout);
	return GOC_ERR_OK;
}