Partymodus Abfragen

  • Moin, bin neu hier.

    Ich habe meine Skin jetzt weitestgehend auf meine Wünsche angepasst.

    Aber eine Sache bekomme ich nicht hin.

    Hab über folgendenen Code einen Button für den Partymodus eingefügt.
    Das klappt soweit auch super, nur ich hätte jetzt gerne eine Rückmeldung darüber ob der Modus grade aktiv ist.

    Stell mir das ganze so vor das icon_partymode aktiv ist wenn der Partymode ausgeschaltet ist und wenn er aktiv ist icon_partymode durch icon_partymode_active ersetzt wird.

    Glaube ist keine große Sache nur finde nichts dazu und ich steh aufm Schlauch :whistling: .


    Hier noch der Code:

    Code
    <include name="MediaSubMenu">		<control type="button" id="19">			<description>Filter button needed for panel below to work</description>			<visible>false</visible>		</control>		<control type="panel" id="9002">			<visible>!Window.IsActive(PlayerControls)</visible>			<include>Window_OpenClose_Animation_Slide_Up</include>			<include>SubMenuCommonLayout</include>			<content>				<item>					<label>31202</label>					 <onclick>PlayerControl(Partymode(music))</onclick>					<icon>icon_partymode.png</icon>				</item>			</content>		</control>	</include>


    Vielen Dank für eure Hilfe.

    Edit: Toll der hat meinen Code durcheinander geschmissen, wie bekomme ich den leserlich eingefügt?

  • Wie immer kurz nach dem posten hab ich eine Lösung gefunden :cursing: .

    Aber ich glaube das ist nicht die eleganteste:

    Code
    <item>					<label>31202</label>					 <onclick>PlayerControl(Partymode(music))</onclick>					<icon>icon_partymode.png</icon>					<visible>!MusicPartyMode.Enabled</visible>					<icon>icon_partymode_active.png</icon>				</item>				<item>					<label>312088</label>					 <onclick>PlayerControl(Partymode(music))</onclick>										<visible>MusicPartyMode.Enabled</visible>					<icon>icon_partymode_active.png</icon>				</item>


    Gibt es eine bessere oder sinnigere Lösung.

  • Hey,

    Gibt es eine bessere oder sinnigere Lösung.

    Solang es funktioniert ist doch egal :).

    Code einfügen klappt bei mir eigentlich Problemlos. Wenn ich es richtig sehe hast aber im ersten zweimal <icon> verwendet. Da aber immer das erste in der Reihenfolge verwendet wird wenn man zweimal etwas im Code hat geht es trotzdem ;).

    Eleganter ist immer relativ. Das wird dann teilweise auch nicht unbedingt einfacher weil es damit auch verschachtelt wird.
    Kannst natürlich mit Variablen arbeiten. Aber wenn es nur einmal Verwendet wird hast eigentlich keine Ersparnis des Codes, er wirkt zwar aufgeräumter aber verschachtelt sich eben.

    Bist dir sicher das das Funktioniert oder ist das eine Kombination mit dem ersten Post (hast nur ein Item drin)??


    Zum Beispiel so (ungetestet):


    Dann braucht eben nur ein Item. Kenn jetzt den Code nicht aber so kannst natürlich leichter einen Button daraus machen statt einer Liste.
    Das kann bei Grouplisten durchaus von Vorteil sein. Verwirrt aber teilweise weil man Querlesen muss mit der Variablen Datei...

    Aber generell bei zwei Stadien eines Buttons empfielt sich sofern du keine Liste mit Item1, item2, usw. brauchst eher ein Togglebutton mit zwei Grafiken in einem wenn man nur eine Onclick Action hat.

    http://wiki.xbmc.org/?title=XBMC_Sk…_button_control

    Grüße

  • Ja es funktioniert, hab meine beiden Codes kombiniert, das steht ja noch mehr drin.

    Hier unten rechts zusehen:

    Abgeschaltet:


    Eingeschaltet:


    Das mit den Variablen wird für mich noch unübersichtlicher ;) .


    Das mit den ToogleButtons hatte ich vorher probiert, hab es aber irgendwie nicht zum laufen bekommen.


    Ich glaub ich lass es wirklich so. Kommentar dazu und gut. Hab ja noch mehr Baustellen :D .
    Vielen Dank für deine Mühen.

  • Alles Klar, mache ich auch immer so:).
    Warum auch solange es geht... Und klar Variablen und dergleichen machen es immer nicht Übersichtlicher.
    Und oft ist es so das man die Zeit die durch das einmalige Ändern gespart wird eigtlich beim Nachvollziehen oft verloren geht.

    Die Gefahr ist aber ein Caotischer Aufbau der ein Ändern fast nicht möglich macht wie bei mir:).

    Aber zumindest bei deinem Beispiel wenn man es sowieso nur einmal braucht.
    Wenn jetzt was in jeder Liste und Überall hättest könnte man es sich Überlegen.

    Grüße

  • M1ghtyWolf:

    hier mal eine elegante Lösung. Wobei ich nicht weiß wie du die anderen Buttons eingebunden hast. Müsste aber auch in einem Container funktionieren (Panel, List etc.)

    zur Erklärung:
    Seit Gotham (XBMC 13) kann man direkt in ein Tag ein colordiffuse einbauen. In meinem Beispiel hast du ein weißes Icon, welches dann die Farbe wechselt, je nachdem ob der Partymodus an oder aus ist und ob die es fokusiert hast oder nicht.

    Code
    <usealttexture>MusicPartyMode.Enabled</usealttexture>


    definiert in diesem Fall welche Texturen verwendet werden sollen.
    bg

    p.s.: die Farbe ist in einer xml definiert. du kannst aber auch direkt den Farbcode statt des Namens eingeben

  • Also mein Code sieht komplett so aus und ist in der include.xml

    Code
    <include name="MediaSubMenu">		<control type="panel" id="9002">			<visible>!Window.IsActive(PlayerControls)</visible>			<include>Window_OpenClose_Animation_Slide_Up</include>			<include>SubMenuCommonLayout</include>			<content>				<item>					<label>587</label>					<onclick>SendClick(8)</onclick>					<icon>icon_search.png</icon>				</item>				<item>					<label>31202</label>					 <onclick>PlayerControl(Partymode(music))</onclick>					<icon>icon_partymode.png</icon>					<visible>!MusicPartyMode.Enabled</visible>				</item>				<item>					<label>312088</label>					 <onclick>PlayerControl(Partymode(music))</onclick>										<visible>MusicPartyMode.Enabled</visible>					<icon>icon_partymode_active.png</icon>				</item>				<item>					<label>31200</label>					<onclick>ParentDir</onclick>					<icon>icon_back_w.png</icon>				</item>				<item>					<label>1036</label>					<onclick>ActivateWindow(Favourites)</onclick>					<icon>icon_favourites_w.png</icon>				</item>			</content>		</control>	</include>


    blauesgruen

    Dein Code wäre ein eigenes include oder?
    Du gibst ja die Position ein, die wird bei mir aber schon durch Zeile 5 festgelegt

    Code
    <include>SubMenuCommonLayout</include>


    Oder sehe ich das grade falsch?
    Dann müsste ich deinen Code in den include SubMenüCommonLayout schreiben?
    Da ist aber schon festgelegt das bei Mauskontakt die Farbe angezeigt wird, sprich da hab ich schon den Focus Befehl:


    Hier nochmal SubMenuCommonLayout:

    Code
    <include name="SubMenuCommonLayout">		<include>Window_OpenClose_Animation_Slide_Up</include>        <animation effect="slide" start="0,0" end="-20,0" time="0" condition="StringCompare(Container(9002).NumItems,5)">conditional</animation>		<animation effect="slide" start="0,0" end="112,0" time="0" condition="StringCompare(Container(9002).NumItems,4)">conditional</animation>		<animation effect="slide" start="0,0" end="224,0" time="0" condition="StringCompare(Container(9002).NumItems,3)">conditional</animation>		<animation effect="slide" start="0,0" end="365,0" time="0" condition="StringCompare(Container(9002).NumItems,2)">conditional</animation>		<animation effect="slide" start="0,0" end="500,0" time="0" condition="StringCompare(Container(9002).NumItems,1)">conditional</animation>		<posx>620r</posx>		<posy>120r</posy>		<width>1280</width>		<height>120</height>		<onleft>9002</onleft>		<onright>9002</onright>		<onup>9001</onup>		<ondown>20</ondown>		<pagecontrol>-</pagecontrol>		<scrolltime>300</scrolltime>		<orientation>Horizontal</orientation>		<itemlayout height="130" width="130">			<control type="image">				<posx>0</posx>				<posy>0</posy>				<width>110</width>				<height>110</height>				<!--CommonBottom-->				<texture border="5">floor_button_t.png</texture>			</control>			<control type="image">				<posx>0</posx>				<posy>0</posy>				<width>110</width>				<height>110</height>				<!--<bordertexture border="5">floor_buttonfo.png</bordertexture>-->				<bordersize>12</bordersize>				<texture>$INFO[ListItem.Icon]</texture>			</control>		</itemlayout>		<focusedlayout height="130" width="130">			<control type="image">				<posx>0</posx>				<posy>0</posy>				<width>110</width>				<height>110</height>				<texture border="5">floor_buttonfo.png</texture>			</control>			<control type="image">				<posx>0</posx>				<posy>0</posy>				<width>110</width>				<height>110</height>				<!--<bordertexture border="5">IconBack-focus.png</bordertexture>-->				<bordersize>12</bordersize>				<texture>$INFO[ListItem.Icon]</texture>			</control>		</focusedlayout>	</include>


    Echt super eure Hilfe, solangsam versteh ich ein wenig von dem was ich mache :thumbup: .
    Bis jetzt hab ich nach dem Trial & Error Prinzip gearbeitet, sprich auskommentieren schauen was passiert ^^ .


    Edit: Wie bekomme ich den Code Zeilenmäßig eingefügt? Es klappt einfach nicht haut alles in die 1. Zeile ;(

  • ich hab den code mal kopiert damit man einen überblick hat.
    auf die schnelle sehe ich, dass es mit nem togglebutton so dann wohl doch nicht gehen wird.
    ich guck nachher noch mal rein.
    bg

  • Ich nutze Notepad++.

    Markieren die zu kopierende Stelle und dann Strg+C und klick im Forum den BB-Code Code einfügen-Button und zwischen die Tags Strg+V.

    Browser ist Chrome, aber dürfte ja eigentlich keinen Unterschied machen.

    Edit: In anderen Foren gehts ?( .

  • Achso... dann vielleicht doch Chrome ?

    Ich denke du kannst den Code fast so lassen.
    So würde ich ihn dann machen:

    du hattest noch ein paar Codefehler drin und geändert hab ich das 2. partymodus item. es hat kein icon tag mehr, sondern nun ein thumb. so kann man im focuslayout- und itemlayout mit den farben spielen.
    bg

    edit: die black-back.png musst du wieder auf deine grafik ändern.

  • Funktioniert soweit, nur das mit dem einblenden also die Animationen passen nicht ganz.
    Und bei deinem Code wird der Button angeklickt somit aktiviert, bleibt dann aber rot (wie Mauskontakt) und erst wenn die Seite erneut aufgerufen wird grün.

    Aber was ich ganz cool finde ist:

    Code
    <control type="image">	<posx>0</posx>
    			<posy>0</posy>
    			<width>110</width>
    			<height>110</height>
    			<colordiffuse>red</colordiffuse>
    			<texture>$INFO[ListItem.Icon]</texture>   </control>


    Das bewirkt das das innere Symbol auf Mauskontakt reagiert.

    Ich hatte ja :

    Code
    <control type="image">				<posx>0</posx>				<posy>0</posy>				<width>110</width>				<height>110</height>				<texture border="5">floor_button_t.png</texture>			</control>

    Sprich das Hintergrundbild wurde bei Focus geändert.
    Und was auch cool ist

    Code
    <control type="image">			<posx>0</posx>			<posy>0</posy>			<width>110</width>			<height>110</height>			<colordiffuse>red</colordiffuse>			<texture border="5">floor_button_t.png</texture>		</control>


    Wenn ich dann das gleiche Bild verwende wie bei itemlayout. Dann wird das Hintergrundbild rot eingefärbt.


    Jetzt weiß ich gar nicht, was ich für meinen Style verwenden soll, weil sieht alle gut aus :thumbup: .


    Ist es egal ob ich einem Item Thumb oder Icon zuweise? Das hab ich noch nicht ganz verstanden, wann ich welches nehme.
    Und was besagt der label tag? Wo kommen die zahlen her?


    Eure Hilfe ist echt super, endlich versteh ich langsam was ich da tue und getan hab :D .


    Mysteriös liegt anscheinend an Notepad++, deinen Code hat er Zeilenweise kopiert ?( .

  • Zitat

    Funktioniert soweit, nur das mit dem einblenden also die Animationen passen nicht ganz.
    Und bei deinem Code wird der Button angeklickt somit aktiviert, bleibt dann aber rot (wie Mauskontakt) und erst wenn die Seite erneut aufgerufen wird grün.


    Versteht ich nicht ganz .... achso doch, dann müsste da noch ein control.hasfocus untergebracht werden.
    soll ich dir das mal basteln?


    Richtig, weil es im focused Bereich verändert wurde. Deshalb gibt es die beiden Bereiche itemlayout und focuslayout.

    Zitat

    Ist es egal ob ich einem Item Thumb oder Icon zuweise? Das hab ich noch nicht ganz verstanden, wann ich welches nehme.


    fast, wenn du beides festlegst nimmt er bevorzugt das icon.
    Du definierst in den items was mit $INFO[ListeItem.xx] dargestellt werden soll. Bezieht sich dann aber nur auf diesen Container.

    Zitat

    Und was besagt der label tag? Wo kommen die zahlen her?


    Du kannst dir auch das im item definierte label anzeigen lassen. $INFO[ListItem.Label]
    Die Nummer kommt aus einer strings.po im language Ordner des Programms. Hinter der Nummer verbirgt sich dann der Text in entsprechender Sprache.

    Zitat

    Mysteriös liegt anscheinend an Notepad++, deinen Code hat er Zeilenweise kopiert


    Keine Ahnung, man muss/kann die Programmiersprache die man bearbeitet in notepad einstellen, soweit ich mich erinnere.
    bg

  • Versteht ich nicht ganz .... achso doch, dann müsste da noch ein control.hasfocus untergebracht werden.
    soll ich dir das mal basteln?


    Danke, aber brauchst du nicht, es läuft ja nun soweit :thumbup: .

    Danke nochmal für die Erklärung :thumbup: .


    Edit: Das Problem mit Code einfügen wird anscheinend von Chrome verursacht mit dem IE klappt es.

    Mfg Jann

    Mein Dateien zum Download:
    GoogleDrive

    Nicht über den grausamen Code wundern :D .

    Einmal editiert, zuletzt von M1ghtyWolf (9. Juli 2014 um 22:17)

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!