Menu Eintraege UK Info

PT-1
Moderator english
Beiträge: 2458
Registriert: Donnerstag 20. Dezember 2001, 00:00

Menu Eintraege UK Info

Beitrag von PT-1 »

Hi,

die Jungs in england spielen immer mehr mit den CVS Sourcen und haben z.B. Extra menu's eingebaut damit man andere Menuefunktionen abschalten kann.

Z.B. wer nie den Movieplayer benutzt kann diesen Menuepunkt einfach abschalten.

Um die Numerierung der Menu's dynamisch zu gestalten haben die Jungs mir das folgende auf english erklaert:
Dynamic Renumbering is simply an implementation of " i++ " in the coding at the top of the menu. Custom ordering is also easily achieved with a few lines of code.

An example of the i++ sequence is already written into the current cvs neutrino.cpp:

Code: Alles auswählen

int shortcut = 4;
	if (g_PluginList->hasPlugin(CPlugins::P_TYPE_SCRIPT))
		mainMenu.addItem(new CMenuForwarder(LOCALE_MAINMENU_SCRIPTS, true, NULL, new CPluginList(LOCALE_MAINMENU_SCRIPTS,CPlugins::P_TYPE_SCRIPT), "",
											CRCInput::convertDigitToKey(shortcut++)));
Simply add "int shortcut = 1" to the very top of the menu, before any entries. Then instead of using CRCInput:RC_1, just use shortcut++ as in the example above. This allows the items to be renumbered according to how many options are displayed.
PT-1
Moderator english
Beiträge: 2458
Registriert: Donnerstag 20. Dezember 2001, 00:00

Beitrag von PT-1 »

Dann werde ich mal meinen Monolog weiter fuehren :D

SOURCE = UK Boards

Code: Alles auswählen

mainMenu.addItem(new CMenuForwarder(LOCALE_MENUITEM_TITLE, true, NULL, this, "name for acustom action"));
and then search for

Code: Alles auswählen

else if(actionKey=="
above the first found else if statement type

Code: Alles auswählen

else if(actionKey=="name for acustom action"){
// input your code for the action here
}
add non localized forwarders to menus like this by utilizing CMenuForwarderNonLocalized and alike (theres one for choosing non localized options too (CMenuOptionStringChooser)

Code: Alles auswählen

const char* name_of_text = "text_to_show";
mainMenu.addItem(new CMenuForwarderNonLocalized(name_of_text, true, NULL, this, "name for custom action"));
The CMenuOptionChooser

declare this at the top of the neutrino.cpp

Code: Alles auswählen

int variable_name=0;
Then Just Before the following "void CNeutrinoApp::InitMainMenu(CMenuWidget &mainMenu," type in this

Code: Alles auswählen

#define MYMENU_OPTION_COUNT 2
const CMenuOptionChooser::keyval MYMENU_OPTIONS[MYMENU_OPTION_COUNT] = {
{ 0, LOCALE_OPTIONS_OFF },
{ 1, LOCALE_OPTIONS_ON }
};
Just before your menu use this

Code: Alles auswählen

if(my_condition){
variable_name= 1;
}
else {
variable_name= 0;
}

CMenuOptionChooser *mywidgetname_onoff_mode = ( new CMenuOptionChooser(LOCALE_MYOPTIONCHOOSERTEXT, &variable_name, MYMENU_OPTIONS, MYMENU_OPTION_COUNT, true));
myMenu->addItem(mywidgetname);

then add a CMenuforwarder with an action as you were told about doing earlier on in this thread and tell the action to do things based upon the value of the variable such as the example below

Code: Alles auswählen

else if(actionKey == "myAction"){
if(variable_name != 1){
// kill the file /tmp/mtd3.img
system("rm /tmp/mtd3.img")
}
else{
// create the file /tmp/mtd3.img
system("touch /tmp/mtd3.img")
}
}
ChakaZulu
Developer
Beiträge: 457
Registriert: Sonntag 23. März 2003, 00:39

Beitrag von ChakaZulu »

hi,

ich glaube es antwortet keiner, weil nicht ganz klar ist, warum Du das postest ;)

Übrigens finde ich die NonLocalized*-Geschichten nur für Tests und Prototypen nützlich, denn sonst hat man irgendwann einen Mischmasch aus deutsch/englisch usw in der GUI.
I18n hat ja auch einen Sinn ;)

ciao,

ChakaZulu
PT-1
Moderator english
Beiträge: 2458
Registriert: Donnerstag 20. Dezember 2001, 00:00

Beitrag von PT-1 »

Ich sammele eben einfach so herum was andere GPL Verletzer so programmieren ;-)
Barf
Developer
Beiträge: 1475
Registriert: Dienstag 4. Februar 2003, 22:02

Beitrag von Barf »

Ich will nicht arrogant wirken, aber die "snippets" halte ich nicht gerade für "awesome". Das einzige Inhalt ich extrahiere ist dass es u.U. sinnvoll wäre, movieplayer etc, nicht in Menus erscheinen zu lassen.

Die i++-Technik ist ein Standardtechnik, habe ich für > 15 Jahre gelernt (in Zusammenhang mit Xt-Programmierung). Nicht desto weniger könnte mann die Neutrino-sources damit etwas leserlicher machen.

Übrigens ist "Menue" inkorrekt in Deutsch sowohl als in Englisch. (Mann findet das "Wort" mehrmals in den Neutrinoquellen.)

Code: Alles auswählen

// kill the file /tmp/mtd3.img
system("rm /tmp/mtd3.img")
}
else{
// create the file /tmp/mtd3.img
system("touch /tmp/mtd3.img")
} 
Noch etwas über Unix Systemprogrammierung zu lernen (unlink und creat z.B.)
Übrigens finde ich die NonLocalized*-Geschichten nur für Tests und Prototypen nützlich, denn sonst hat man irgendwann einen Mischmasch aus deutsch/englisch usw in der GUI.
I18n hat ja auch einen Sinn
Keine DIREKTE Polemik, selbst finde ich aber localized code vergleichweis schwierig zu lesen; zu verstehen was der Author meint. In Tests und Prototypen sicherlich nützlich RAUSZULASSEN.
PT-1
Moderator english
Beiträge: 2458
Registriert: Donnerstag 20. Dezember 2001, 00:00

Beitrag von PT-1 »

Mir geht es ja nur darum das andere Leute Code basteln und in "ihren" Images einbauen und als das beste seit geschnittenem Brot darstellen.

Leider hat davon nicht jeder etwas und wenn sich im CVS wieder etwas aendert dann war es das wieder.

Beispiel die UK NetID Diff

Damit wuerde sich sicherlich auch etwas fuer das manuelle scannen im Deutschen Kabelnetz bauen lassen.

Mir fehlt leider das Verstaendnis und somit bleibt es dann eben nur bei der erhoehung meiner Postanzahl :D

Dank Barf habe ich ja jetzt schon die Infobar und ein +Zeit vorwaehrtsblaettern waere jetzt das Tuepfelchen auf dem I ....

PT-1
ChakaZulu
Developer
Beiträge: 457
Registriert: Sonntag 23. März 2003, 00:39

Beitrag von ChakaZulu »

Barf hat geschrieben:
Übrigens finde ich die NonLocalized*-Geschichten nur für Tests und Prototypen nützlich, denn sonst hat man irgendwann einen Mischmasch aus deutsch/englisch usw in der GUI.
I18n hat ja auch einen Sinn
Keine DIREKTE Polemik, selbst finde ich aber localized code vergleichweis schwierig zu lesen; zu verstehen was der Author meint. In Tests und Prototypen sicherlich nützlich RAUSZULASSEN.
nicht gleich schreien :)

Ich verstehe nicht so ganz, was Du damit sagen willst; dass ich hier polemisch bin? Natürlich will ich keine Prototypen mit I18n-Unterstützung bauen, Das bezog sich aber auf Tests in neutrino, so dass man nicht für jede Kleinigkeit die locals anfassen muss -> die NonLocalized-Versionen verwenden.

Vielen ist diese locale-Anpassung aber auch dann noch lästig, wenn z.B. ein Patch gemacht wird oder "schnell" ein Feature implementiert werden soll. Ich wollte daher darauf hinweisen, dass man trotzdem nicht auf die locales verzichten sollte.

ciao,

ChakaZulu
Barf
Developer
Beiträge: 1475
Registriert: Dienstag 4. Februar 2003, 22:02

Beitrag von Barf »

PT-1 hat geschrieben:Mir geht es ja nur darum das andere Leute Code basteln und in "ihren" Images einbauen
Nicht missverstehen: Ich halte deine "Was haltet ihr über diese Feature"-Postings für sinnvoll und intressant. Dass ich nicht viel von Leute die system("rm filename") schreiben halte, ist eine andere Sache. :wink: Aber auch ein blindes Huhn kann....
und als das beste seit geschnittenem Brot darstellen.
Die Redewendung kenne ich ganz gut vom Englischen ("best thing since sliced bread"), ist für mich neu auf Deutsch :wink: (Sorry, I had to release my mustard.)
ChakaZulu hat geschrieben:Ich verstehe nicht so ganz, was Du damit sagen willst; dass ich hier polemisch bin?
OK, ich habe mich sehr mehrdeutig ausgedrückt. "Keine DIREKTE Polemik" bedeutete einfach, dass der folgende Satz nicht als direkte Polemik verstanden sein sollte. Ich sehe keine eigentliche Meinungsunterschieden zwischen uns.
PT-1
Moderator english
Beiträge: 2458
Registriert: Donnerstag 20. Dezember 2001, 00:00

Beitrag von PT-1 »

Quote:
und als das beste seit geschnittenem Brot darstellen.

Die Redewendung kenne ich ganz gut vom Englischen ("best thing since sliced bread"), ist für mich neu auf Deutsch (Sorry, I had to release my mustard.)

@ Barf, da kommt die auch her ;-)

@ All,

ich werde also weiterhin das Zeug posten ;-)

Die Englaender haben z.B. auch das Service Menu per Pin schuetzbar gemacht usw. aber manche Sachen dann doch nicht in Ihre Images integriert damit die "Image Ali's" (verwandt zu den Karten Ali's) dann doch kein Geld abzocken koennen ;-)

See Ya

PT-1