menue.cpp/h erweiterungsvorschläge

Das Original Benutzerinterface Neutrino-SD incl. zapit, sectionsd, yWeb etc...
wahnfried
Interessierter
Interessierter
Beiträge: 83
Registriert: Mittwoch 29. Mai 2002, 17:50

menue.cpp/h erweiterungsvorschläge

Beitrag von wahnfried »

ich muß neutrino immer "oma" kompatibel machen. die ist total überfordert,
wenn die mal die falsche taste drückt. deshalb schränke ich das neutrino
menü bei bedarf ein bzw. erstelle es on the fly neu, wenn ich kanalsuche
oder ähnliches durchführe. hier mal der code. vielleicht kann der ja eingecheckt werden.

CMenuWidget

addItem ist geändert. einfügen eines menu items an einer bestimmten position
removeItem ist neu. löschen einers menu item objekts
removeIndex ist neu. löschen eins menu item objets an einer bestimmten position

menue.h

Code: Alles auswählen

		virtual void addItem(CMenuItem* menuItem, const bool defaultselected=false, int position=-1);
		virtual void removeItem(CMenuItem* menuItem);
		virtual void removeIndex(int position);

menue.cpp

Code: Alles auswählen

void CMenuWidget::addItem(CMenuItem* menuItem, const bool defaultselected, int position)
{
	if (position < 0) {
		if (defaultselected)
			selected = items.size();
		items.push_back(menuItem);
	}
	else {
		int targetpos = -1;
		std::vector<CMenuItem*>::iterator e;
		if (defaultselected)
			if (position < (int)items.size())
				selected = position;
			else
				selected = items.size();
		for ( e = items.begin(); e!= items.end(); ++e ) {
			targetpos++;
			if(targetpos == position) {
				items.insert(e, menuItem);
				break;
			}
		}
	}
}

void CMenuWidget::removeItem(CMenuItem* menuItem)
{
	int		targetpos = -1;
	std::vector<CMenuItem*>::iterator e;
	for ( e = items.begin(); e!= items.end(); ++e ) {
		targetpos++;
		if(items[targetpos] == menuItem) {
			items.erase(e);
			break;
		}
	}
}	

void CMenuWidget::removeIndex(int position)
{
	int		targetpos = -1;
	std::vector<CMenuItem*>::iterator e;
	for ( e = items.begin(); e!= items.end(); ++e ) {
		targetpos++;
		if(targetpos == position) {
			items.erase(e);
			break;
		}
	}
}	
[/b]
rasc
Senior Member
Beiträge: 5071
Registriert: Dienstag 18. September 2001, 00:00

Beitrag von rasc »

aeh... ja...

... aber was soll das bringen?
Will deine Oma programmieren? Oder welchen Sinn sollen die Methoden haben?
wahnfried
Interessierter
Interessierter
Beiträge: 83
Registriert: Mittwoch 29. Mai 2002, 17:50

Beitrag von wahnfried »

oma drückt machmal die falsche taste und findert dann die "home" taste
nicht. programmieren will oma nicht, und ich will verhindern das sie es
tut. sie hat es schon in den movieplayer und zur kanalsuche geschafft.
und sie ruft erst an, wenn alles zu spät ist. und ich sitze spät im auto.
und viel später noch mal.

ich habe also das menü gekürzt auf
TV-Modus
Radio-Modus
Spiele
Ausschalten
Linie
CProtektor

CProtector->PinIsValid->RedrawFullMenu->OnHideFullMenu-RemoveNonOmaItems
na? verstanden?