Quick Sign In:  

Forum: Greek Forum

Topic: ΔΗΜΙΟΥΡΓΙΑ SKIN - Page: 8

This part of topic is old and might contain outdated or incorrect information

Sadim, αυτό που παρατήρησες ήταν τελικά! Σε ευχαριστώ πολύ... Απλά, θα πρέπει να το παιδέψω λίγο, γιατί τα γραφικά δεν εμφανίζονται ορθά. Μία διευκρίνιση, επί την ευκαιρία: Η τιμή nb τί ακριβώς ορίζει?
 

Posted Fri 08 Mar 19 @ 6:45 pm
Για τα custom visuals ορίζει πόσα γραφικά (καρέ) σχεδιάζεις μέχρι η τιμή να γίνει 100%
Έτσι αν έχεις π.χ. ένα vu-meter με 10 leds και το ορίσεις σαν custom visual τότε λογικά το nb πρέπει να είναι 11 καθώς χρειάζεσαι 11 καρέ για να δείξεις το vu-meter (1 με όλα τα leds σβηστά, + 1 με ένα led αναμμένο, +1 με 2 leds ανμμένα .κ.ο.κ. =11)
 

Posted Sat 09 Mar 19 @ 9:48 am
djsadimPRO InfinityMember since 2006
και το κάθε καρέ το βαζεις δίπλα δίπλα με το προηγούμενο!!!
 

Posted Sat 09 Mar 19 @ 6:55 pm
Και αν δεν χωράνε όλα τα καρέ σε μία "γραμμή" τότε χρησιμοποιείς και το nbx="5" όπου ορίζεις πόσα καρέ έχει κάθε γραμμή (και το πρόγραμμα συνεχίζει να διαβάζει από κάτω)
 

Posted Sun 10 Mar 19 @ 3:17 pm
Έκανα κάποιους πειραματισμούς, αλλά δεν έλαβα το αποτέλεσμα που ήθελα. Οπότε και θα ξαναδώ το θέμα εν καιρώ.

Μία "βοήθεια" στο κάτωθι θέμα...

Έχω το ακόλουθο (ημιτελές) element:

<define class="txt_Status">
<size width="80" height="20"/>
<text font="Segoe UI" size="20" align="center" scroll="no" color="`play ? color 'green' : pause ? blink ? color 'green' : color 'darkgreen' : cue ? color 'orange' : color '#808080'`" action="play ? get_text 'Play' : pause ? get_text 'Pause' : cue ? get_text 'Cue' : stop ? get_text 'Stop' : loop_out ? get_text 'Loop' : nothing"/>
<tooltip>Audio Status</tooltip>
</define>

- Όταν επιλεχθεί το Play, εμφανίζεται το text "Play", όλα καλώς.
- Όταν επιλεχθεί το Pause, αναβοσβήνει το text "Pause", όλα καλώς.
- Όταν επιλεχθεί το Cue, αναβοσβήνει το text "Pause", ενώ θα ήθελα να εμφανίζεται το text "Cue" και (εάν είναι εφικτό) ο αριθμός του επιλεγμένου Cue (π.χ. "Cue 2").
- Όταν επιλεχθεί το Stop, δεν εμφανίζεται text, ενώ θα ήθελα να εμφανίζεται το text "Stop".
- Όταν επιλεχθεί το Auto Loop ή το Loop In ή το Loop Out, θα ήθελα να εμφανίζονται τα αντίστοιχα texts.

Ευχαριστώ προκαταβολικά...
 

Posted Tue 12 Mar 19 @ 7:50 am
Εδώ εισέρχεσαι στα περίεργα και στον μαγικό κόσμο της VDJScript.

Να εξηγήσω κάτι:
Τα queries που εκτελούνται στο VirtualDJ είναι διαδοχικά και η εντολή που τα περιέχει σταματάει να εκτελείται αφού λάβει την πρώτη θετική απάντηση.

Και εξηγώ πιο αναλυτικά:

Στο VirtualDJ τα decks έχουν 2 status μόνο. Playing & Paused (2 state deck status) Δεν υπάρχει τρίτο state (3 state deck status) όταν το deck είναι σταματημένο σε cue. Το αν ένα deck είναι σε cue ή όχι είναι διαφορετικό status. Με λίγα λόγια αν βάλεις σε ένα led / custom button κτλ σκέτη το query "cue" θα δεις οτι ανάβει όταν η θέση αναπαραγωγής είναι ακριβώς στο σημείο cue ανεξάρτητα από το αν το deck παίζει, είναι paused, κάνει scratch κτλ.
Έτσι όταν ρωτάς play ? this : pause ? that : query ? ... το 3ο query στη σειρά δεν εκτελείται ποτέ. Κι αυτό γιατί είτε το play ? είτε το pause ? θα επιστρέψουν true και θα σταματήσει η εκτέλεση των περαιτέρω ερωτημάτων.

Αν μέχρι εδώ κατάλαβες τι εννοώ τότε θα πρέπει να κατάλαβες και την μερική λύση του προβλήματος σου:
Αλλάζεις την σειρά των ερωτημάτων!
play ? this : cue ? that : pause ? something else
Σε αυτή την περίπτωση το ερώτημα θα δουλέψει όπως περιμένεις. Κι αυτό γιατί όταν το deck ΔΕΝ είναι σε κατάσταση play εξετάζει πρώτα αν είναι σε μνήμη cue και μετά αν είναι paused (Θα μπορούσες και να μην ρωτήσεις καν το pause ? και να γράψεις play ? this : cue ? that : something else)

Τώρα συνεχίζουμε:
ΔΕΝ υπάρχει όπως προφανώς κατάλαβες κατάσταση "stop"
To stop είναι μια εντολή που κάνει συγκεκριμένα πράγματα, αλλά δεν υπάρχει σαν state/status. Ναι η εντολή stop αν την χρησιμοποιήσεις σε led ανάβει το led όταν το deck είναι "σταματημένο", αλλά στην ουσία "εσωτερικά" η εντολή ανάβει το led όταν το deck "δεν είναι play"

Επίσης:
ΔΕΝ υπάρχει διαχωρισμός μεταξύ autoloop (όταν δηλαδή ορίζεις μια loop με την εντολή "loop") και manual loop (όταν χρησιμοποιείς τα loop in / loop out για να ορίσεις loop)
Η loop ανεξάρτητα από τον τρόπο που δημιουργήθηκε είναι ΜΙΑ και σε κάθε περίπτωση έχει σημεία loop_in και loop_out.
Το μοναδικό "αξιόλογο" και "αξιόπιστο" query για μία loop είναι το "loop ?" που σου δείχνει πότε μια loop είναι ενεργή

Προσπαθώντας πλέον να συνδυάσεις τα play ? cue ? loop ? pause ? πρέπει να καταλήξεις σε μία σειρά που να δείχνει ακριβώς τι θέλεις όποτε το θέλεις.
Θα σου δώσω κάποια παραδείγματα για να καταλάβεις:

Εντολή 1:
play ? loop ? get_text 'Loop ' & get_loop_size : get_text 'Play' : cue ? get_text 'Cue ' & get_cue : get_text 'Pause'

Εντολή 2:
loop ? get_text 'Loop ' & get_loop_size : play ? get_text 'Play' : cue ? get_text 'Cue ' & get_cue : get_text 'Pause'

Και οι δύο εντολές είναι σωστές και στο 99% των περιπτώσεων θα δείχνουν το ίδιο πράγμα. Αλλά έχουν μία βασική διαφορά!
Την προτεραιότητα στην απεικόνιση!
Με την πρώτη εντολή αν το deck είναι σταματημένο σε ένα cue με μία loop ενεργοποιημένη, το κείμενο θα γράφει "Cue 2"
Με την δεύτερη εντολή αν το deck είναι σταματημένο σε ένα cue με μία loop ενεργοποιημένη, το κείμενο θα γράφει "Loop 4"

Το γιατί θα συμβαίνει αυτό νομίζω οτι πλέον μπορείς να το καταλάβεις! Η εντολή σταματάει να εκτελείται μετά το πρώτο true. Οπότε είναι θέμα προτεραιότητας!

Σημείωση:
Θα μπορούσες αν ήθελες να έχεις σαν αποτέλεσμα 'Cue 2 - Loop 4'
Το πως θα στο αφήσω σαν άσκηση για να καταλάβεις καλύτερα την δόμηση των queries.
Να θυμάσαι μόνο ότι η εντολή σταματάει να εκτελείται μετά το πρώτο true.
 

Posted Tue 12 Mar 19 @ 8:38 am
PhantomDeejay wrote :
Εδώ εισέρχεσαι στα περίεργα και στον μαγικό κόσμο της VDJScript.
Χμ... Σπαζοκεφαλιά βλέπω, όχι μαγεία... :-)

PhantomDeejay wrote :
Τα queries που εκτελούνται στο VirtualDJ είναι διαδοχικά και η εντολή που τα περιέχει σταματάει να εκτελείται αφού λάβει την πρώτη θετική απάντηση. ... Στο VirtualDJ τα decks έχουν 2 status μόνο. Playing & Paused (2 state deck status) Δεν υπάρχει τρίτο state (3 state deck status) όταν το deck είναι σταματημένο σε cue.
Άρα, εφόσον αναφερόμαστε σε 2 status μόνο, η λογική λέει ότι ο κώδικας: play ? get_text 'Play' : pause ? get_text 'Pause' θα πρέπει να βρίσκεται στο τέλος. Επίσης, εφόσον σε ένα deck δεν είναι uploaded κάποιο κομμάτι, συμπληρώνουμε στο τέλος και : nothing, ώστε να μην εμφανίζεται το text Pause.

Εν συνεχεία, μεταξύ Play και Pause, "παρεμβάλλουμε" το Cue, αφού είναι ένα state πριν το Pause, και έτσι ο κώδικας διαμορφώνεται ως ακολούθως:
play ? get_text 'Play' : cue ? get_text 'Cue ' & get_cue : pause ? get_text 'Pause' : nothing"

PhantomDeejay wrote :
...ΔΕΝ υπάρχει όπως προφανώς κατάλαβες κατάσταση "stop". To stop είναι μια εντολή που κάνει συγκεκριμένα πράγματα, αλλά δεν υπάρχει σαν state/status. Ναι η εντολή stop αν την χρησιμοποιήσεις σε led ανάβει το led όταν το deck είναι "σταματημένο", αλλά στην ουσία "εσωτερικά" η εντολή ανάβει το led όταν το deck "δεν είναι play"
Κατανοητό, οπότε δεν ασχολούμαι καν με το θέμα αυτό...

PhantomDeejay wrote :
Επίσης: ΔΕΝ υπάρχει διαχωρισμός μεταξύ autoloop (όταν δηλαδή ορίζεις μια loop με την εντολή "loop") και manual loop (όταν χρησιμοποιείς τα loop in / loop out για να ορίσεις loop). Η loop ανεξάρτητα από τον τρόπο που δημιουργήθηκε είναι ΜΙΑ και σε κάθε περίπτωση έχει σημεία loop_in και loop_out. Το μοναδικό "αξιόλογο" και "αξιόπιστο" query για μία loop είναι το "loop ?" που σου δείχνει πότε μια loop είναι ενεργή.
Επίσης κατανοητό, οπότε και η εντολή διαμορφώνεται πλέον:
action="loop ? get_text 'Loop ' & get_loop_size : play ? get_text 'Play' : cue ? get_text 'Cue ' & get_cue : pause ? get_text 'Pause' : nothing"

PhantomDeejay wrote :
Θα μπορούσες αν ήθελες να έχεις σαν αποτέλεσμα 'Cue 2 - Loop 4'. Το πως θα στο αφήσω σαν άσκηση για να καταλάβεις καλύτερα την δόμηση των queries. Να θυμάσαι μόνο ότι η εντολή σταματάει να εκτελείται μετά το πρώτο true.
Θα πειραματιστώ...

Σε ευχαριστώ πολύ!
 

Posted Tue 12 Mar 19 @ 10:45 am
Μία μικρή παρατήρηση.

Χωρίς να είναι λάθος αυτό που κάνεις, το : pause ? that δεν το χρειάζεσαι. To pause είναι πάντα το αντίθετο του play, οπότε ισχύει πάντα το "αν όχι play, τότε pause"
Επίσης σωστότερο για να μην δείχνει τίποτα το deck θα ήταν να χρησιμοποιήσεις το query loaded ? στην αρχή
Οπότε:

loaded ? loop ? get_text 'Loop ' & get_loop_size : play ? get_text 'Play' : cue ? get_text 'Cue ' & get_cue : get_text 'Pause' : get_text ''

Σου αντικατέστησα το nothing με get_text '' για τα αυτόματα tooltips, και για να είναι πιο ευανάγνωστη η εντολή με "ανθρώπινη" λογική. Θα μπορούσε να είναι και get_text 'Empty' ή get_text 'Not Loaded' :P
 

Posted Tue 12 Mar 19 @ 11:22 am
Μερικά "θεματάκια" προς διευκρίνηση - επίλυση...

1. Key Difference

Δεν απεικονίζει το ορθό αποτέλεσμα, ούτε έτσι: action="get_loaded_song key difference", ούτε έτσι: action="key difference". Τί κάνω λάθος?

2. Bpm Difference
Το ίδιο και σε αυτή την περίπτωση...

3. Get Limiter
Ο κώδικας: get_limiter 'master', get_limiter 'sampler', get_limiter 'mic', "λειτουργεί" κανονικά. Πως θα πρέπει να συντάξω τον κώδικα, ώστε να λάβω το limiter επί του channel / deck?

4. Button & Menu
Έχω δημιουργήσει ένα label, το οποίο είναι ουσιαστικά button, ως ακολούθως:
<define class="lbl_Master" leftclick="cycle '@Master_Layout' 2">
<size width="100" height="16"/>
<down x="10" y="1730"/>
<text font="Calibri" size="18" align="center" scroll="no" color="#c0c0c0" format="MASTER"/>
<tooltip>LC: Change Master Layout</tooltip>
</define>


Ταυτόχρονα έχω δημιουργήσει ένα menu, όπου για την συγκεκριμένη περίπτωση έχω:
<submenu text="Master">
<item text="Layout A" action="set '@Master_Layout' 0" hascheck="true"/>
<item text="Layout B" action="set '@Master_Layout' 1" hascheck="true"/>
</submenu>


Το αποτέλεσμα είναι αυτό που ζητώ, δηλαδή η εναλλαγή του Layout πραγματοποιείται, είτε από το button, είτε από το menu. Το πρόβλημα είναι επί των decks...

Έχω δημιουργήσει ένα label, το οποίο είναι ουσιαστικά button, ως ακολούθως:
<define class="lbl_Decks" action="cycle '@Deck_Layout' 4" rightclick="action_deck 1 ? deck 3 leftdeck : action_deck 2 ? deck 4 rightdeck : action_deck 3 ? deck 1 leftdeck : action_deck 4 ? deck 2 rightdeck : nothing">
<size width="80" height="18"/>
<down x="10" y="1730"/>
<text font="Calibri" size="18" align="center" scroll="no" weight="bold" color="`param_equal 1 get_deck ? color 'blue' : param_equal 2 get_deck ? color 'red' : param_equal 3 get_deck ? color 'green' : param_equal 4 get_deck ? color 'yellow'`" action="param_equal 1 get_deck ? get_text 'DECK 1' : param_equal 2 get_deck ? get_text 'DECK 2' : param_equal 3 get_deck ? get_text 'DECK 3' : param_equal 4 get_deck ? get_text 'DECK 4'"/>
<tooltip>LC: Change Layout\nRC: Change Deck</tooltip>
</define>


Ταυτόχρονα έχω δημιουργήσει ένα menu, όπου για την συγκεκριμένη περίπτωση έχω:
<submenu text="Decks">
<item text="Layout A" action="set '$@Deck_Layout' 0" hascheck="true"/>
<item text="Layout B" action="set '$@Deck_Layout' 1" hascheck="true"/>
<item text="Layout C" action="set '$@Deck_Layout' 2" hascheck="true"/>
<item text="Layout D" action="set '$@Deck_Layout' 3" hascheck="true"/>
</submenu>


Σε αυτή την περίπτωση δεν επιτυγχάνεται η εναλλαγή των layouts. Τί κάνω λάθος?
 

Posted Mon 18 Mar 19 @ 6:14 pm
1. Αν δεν με απατά η μνήμη μου τα key_difference και bpm_difference έχουν νόημα μόνο για το κομμάτι που είναι επιλεγμένο στον browser. Για την διαφορά ενός deck από το master deck θα πρέπει να τα υπολογίσεις

2. Ναι λειτουργούν. Το πως θα τα συντάξεις εξαρτάται από το τι θες να πετύχεις. Γενικά οι εντολές αυτές επιστρέφουν αριθμό από το 0 (no limit) μέχρι το 1 (-οο db συμπίεση)

3. Το προφανές λάθος που βλέπω είναι οτι στο button έχεις τοπικές μεταβλητές, αλλά στο μενού καθολικές. Λογικά θα θες να αφαιρέσεις το $ από το όνομα της μεταβλητής στο menu
 

Posted Mon 18 Mar 19 @ 8:31 pm
PhantomDeejay wrote :
1. Αν δεν με απατά η μνήμη μου τα key_difference και bpm_difference έχουν νόημα μόνο για το κομμάτι που είναι επιλεγμένο στον browser. Για την διαφορά ενός deck από το master deck θα πρέπει να τα υπολογίσεις
Βασικά εμφανίζονται οι όποιες διαφορές, μεταξύ του loaded song και αυτών στο browser. Το θέμα είναι να εμφανίζεται η διαφορά μεταξύ των decks, οπότε για τον "υπολογισμό" να υποθέσω ότι υπονοείς κάποιο script, όπως param_cast?

PhantomDeejay wrote :
2. Ναι λειτουργούν. Το πως θα τα συντάξεις εξαρτάται από το τι θες να πετύχεις. Γενικά οι εντολές αυτές επιστρέφουν αριθμό από το 0 (no limit) μέχρι το 1 (-οο db συμπίεση)
Εάν υποθέσουμε ότι πρόκειται περί ενός led, πώς αυτό θα ενεργοποιείται όταν το channel clipάρει? Διευκρινίζω ότι αυτό μπορεί να επιτευχθεί, εάν π.χ. έχουμε αυξήσει το gain του channel...

PhantomDeejay wrote :
3. Το προφανές λάθος που βλέπω είναι οτι στο button έχεις τοπικές μεταβλητές, αλλά στο μενού καθολικές. Λογικά θα θες να αφαιρέσεις το $ από το όνομα της μεταβλητής στο menu
Κι όμως, δεν λειτουργεί ούτε έτσι. Πέραν αυτού, η επιδίωξή μου είναι από το "button" να αλλάζει μόνο το αντιστοιχιζόμενο deck, ενώ απ' το menu να αλλάζει το layout σε όλα τα decks. Ή μήπως αυτό δεν γίνεται?
 

Posted Mon 18 Mar 19 @ 9:06 pm
Μία "γεύση" από το preview, με το 1ο layout σχεδόν έτοιμο, όχι όμως και τον browser, τον οποίο δεν έχω διαμορφώσει ακόμα...



Που είναι ο PanosV να με "κράξει", γιατί είναι "φορτωμένο"? :P
 

Posted Mon 18 Mar 19 @ 9:42 pm
PANOSVPRO InfinityMember since 2007
Παρων!!!
πωωω ρε φιλε πολυ γραμματακι και πληροφορια...
τελειως διαφορετικο απο τα γουστα μου...
αυτο δε σημαινει παντως οτι δεν επικροτω την προσπαθεια και το πακετο που τρως με τον προγραμματισμο οπως βλεπω...
καλη συνεχεια και καλα κουραγια!!
 

Posted Mon 18 Mar 19 @ 10:24 pm
Σε ευχαριστώ πολύ, αν και οφείλω να ομολογήσω ότι παρά την όρεξή μου, χωρίς την βοήθεια του Phantom, θα ήμουν ακόμη στην αρχή...

Όσον αφορά στο skin, προσπάθησα και προσπαθώ να εφαρμόσω 2 αρχές:

1. Δεν θα είναι το κλασσικό skin, όπου τουλάχιστον τις μισές πληροφορίες τις βλέπεις στον controller! Με άλλα λόγια, όπως έχει αναφέρει κατά καιρούς και ο Master (βλέπε Phantom), στο laptop οφείλεις να βλέπεις ότι δεν βλέπεις στον controller...

2. Όπως "προδίδει" και η (μάλλον) τελική ονομασία του (Transformer), θα έχει τελείως διαφορετικά layouts (ανά decks ή και συνολικά). Με άλλα λόγια, ο εκάστοτε χρήστης θα μπορεί να διαλέγει το layout που τον ικανοποιεί περισσότερο, είτε αυτό θα είναι μόνο text ή μόνο graphics ή και τα δύο. Άρα τα layouts δεν θα είναι απλή μετατόπιση των υπαρχόντων, υπό νέα διάταξη, αλλά τελείως διαφορετικά...

Αυτό βέβαια συνεπάγεται ακόμα πάρα πολύ δουλειά, αλλά προς το παρόν η όρεξη δεν έχει χαθεί. Και αυτό, διότι νομίζω ότι όταν πλέον αποκτήσω την ευχέρεια με τα scripts, τα πράγματα θα είναι πολύ πιο εύκολα...

Πέρα από αυτά, οι δικές σου προτάσεις (γενικά και ειδικά) ποιες είναι?
 

Posted Mon 18 Mar 19 @ 10:53 pm
1. Μεταξύ των decks ναι πρέπει να κάνεις μαθηματικά.
2. action="get_limiter & param_bigger 0 ? on : off"
3. Οι μεταβλητές @$Var, @Var, $Var και Var ΔΕΝ ΕΙΝΑΙ ίδιες. έχουν διαφορετικό όνομα (και σκοπό)
Επίσης μια τοπική μεταβλητή Var ή @Var δεν "ελέγχεται" αλλάζοντας τις καθολικές $Var ή @$Var
Γενικά μην σε μπερδεύουν τα σύμβολα. Δεν είναι "η ίδια μεταβλητή με άλλα σύμβολα / σκοπό". Είναι 4 διαφορετικές μεταβλητές.

Τώρα: Αν στα decks χρησιμοποιείς τοπικές μεταβλητές τότε στο menu για να πετύχεις αυτό που θέλεις θα πρέπει να αλλάξεις και τις 4 τοπικές μεταβλητές ταυτόχρονα.
Επομένως ή θα γράψεις
deck 1 set 'Decks_Layout' 0 & deck 2 set 'Decks_Layout' 0 & deck 3 set 'Decks_Layout' 0 & deck 4 set 'Decks_Layout' 0
ή την πιο κομψή
deck all set 'Decks_Layout' 0


 

Posted Tue 19 Mar 19 @ 8:25 am
Ωραίο φαίνεται.. Μ αρέσει η έλλειψη jogweel. Καλή συνέχεια!
 

Posted Wed 20 Mar 19 @ 11:09 am
PANOSVPRO InfinityMember since 2007
κοιτα...για να μη το προσωποποιησω τελειως θα σου πω οτι γενικα μ αρεσουν τα λιτα σκιν τυπου σερατο και με ελαχιστη πληροφορια πανω, αλλα κατα κυριο λογο με ουσιαστικη .. επισης γενικα παιζω με μικρα λαπτοπ (12,1 στο παρελθον και 13.3 τωρα) οποτε μιας και μεγαλωνουμε κιολας καταλαβαινεις οτι πρεπει να ναι ολα ευαναγνωστα... επισης γενικα δε θελω να κοιταω λαπτοπ οσο μπορω... (περα απ την επιλογη του τρακ κλπ).
τα παλια χρονια (επι εποχης ν6~ν7) ειχα αγγαρεψει το Μπαμπη και μου χε πειραξει/γδυσει ενα σκιν και μου το χε κανει καπως ετσι...

απ την αλλη τωρα που εχω αλλαξει αρκετα στυλ παιξιματος και ταυτοχρονα κανω και πολυ συχνα εγγραφη και broadcast και φυσικα εχουν αυξηθει οι αναγκες γενικοτερα (παιζω με hotcues κανω juggling κλπ) χρησιμοποιω το controller του dennyo το οποιο και αυτο πρεπει καποια στιγμη να βρω την ορεξη και να κατσω να το παραμετροποιησω και να αφαιρεσω πολυ πληροφορια...
οπως καταλαβες θελω το σκιν να χει platter αλλα και καθαρες και μεγαλες κυμματομορφες ωστε να βλεπω τα hotcues πανω του.. φυσικα πληροφοριες για τον χρονο το κλειδι και τα bpm ειναι στανταρ οπως επισης θελω και slider για το pitch...
δε ξερω βγαινει νοημα απ αυτα που λεω η μπα?
 

Posted Mon 25 Mar 19 @ 6:08 pm
Κατ' αρχήν σε ευχαριστώ για τις ιδέες... Γενικά δεν είμαι κατά του minimal. Και δεδομένου ότι το εν λόγω skin θα έχει διάφορα variations, ένα minimal είναι must...
 

Posted Mon 25 Mar 19 @ 9:01 pm
Δημιούργησα το κάτωθι panel, με σκοπό να προσθέσω δίπλα από το search bar κάποια buttons.

<panel name="Browser" x="5" y="500">
<browser class="Browser"><size width="1920-10" height="1080-500"/><pos x="+0" y="+0"/></browser>
<menu class="btn_Browser_Menu" x="+900" y="+10"/>
</panel>

Κατόπιν δημιούργησα ένα button menu:

<define class="btn_Browser_Menu">
<size width="30" height="20"/>
<up x="1710" y="1240"/>
<over x="1710" y="1265"/>
<selected x="1710" y="1265"/>
<tooltip>Browser Menu</tooltip>
<submenu text="Folders">
<item text="Add Filter Folder" action="add_filterfolder" hascheck="false"/>
<item text="Add Virtual Folder" action="add_virtualfolder" hascheck="false"/>
<item text="Add Favorite Folder" action="add_favoritefolder" hascheck="false"/>
</submenu>
<submenu text="List">
<item text="Export List" action="browser_export" hascheck="false"/>
</submenu>
</define>

Το 1o πρόβλημα είναι ότι ενώ το menu button εμφανίζεται κανονικά, δεν εκτελείται καμία εκ των εντολών που περιλαμβάνει! Τί έχω κάνει "λάθος"?

To 2o πρόβλημα είναι ότι το menu button δεν μετακινείται, όταν μετακινώ το διαχωριστικό μεταξύ Folfders και List. Πώς αντιμετωπίζεται αυτό?
 

Posted Tue 26 Mar 19 @ 6:51 am
Ξεκινάμε από το 2ο που είναι πιο εύκολο (να καταλάβεις)
Από τη στιγμή που ζωγραφίζεις ένα κουμπί/μενού σε σταθερές συντεταγμένες, πως περιμένεις το κουμπί να μετακινηθεί;

Και επιστρέφουμε στο πρώτο. Οι εντολές που έχεις βάλει στο μενού θα πρέπει να λειτουργούν, αλλά υπό προϋποθέσεις (διάβασε τι κάνει κάθε action και πότε το κάνει και θα καταλάβεις)

Γενικά, ή θα φτιάξεις έναν browser όπου θα παραμετροποιήσεις μόνο την εμφάνιση ( <browser /> element) ή θα πρέπει να σχεδιάσεις μόνος σου όλο τον browser από το μηδέν (custom browser) όπου θα πρέπει να χρησιμοποιήσεις splits για να διαχειριστείς τις περιοχές του browser και πάνω σ' αυτό να χτίσεις ότι λίστες / παράθυρα χρειάζεσαι.

Custom browser έχει φτιάξει μόνο ο Μπάμπης νομίζω, και αν θυμάμαι καλά δεν λειτουργεί 100% σωστά εξ αιτίας ενός bug. Το θέμα είναι οτι ο custom browser έχει πολύ δουλειά με "ελάχιστο" κέρδος (αν θες την προσωπική μου άποψη)
 

Posted Tue 26 Mar 19 @ 8:19 am
42%