Drag sur WebView
Bonjour à tous,
Suite à ce topic -> http://www.osx-dev.com/index.php?topic=3168.0
J'aimerai remplacer le comportement d'une WebView face à un Drag. Au lieu de déplacer un item (une image chargée dans la webview), je voudrai plutôt faire bouger sa fenêtre.
J'ai tenté le sous-classage de la WebView avec gestion du mouseDown/Dragged, mais rien..
Une idée?
Louka.
Suite à ce topic -> http://www.osx-dev.com/index.php?topic=3168.0
J'aimerai remplacer le comportement d'une WebView face à un Drag. Au lieu de déplacer un item (une image chargée dans la webview), je voudrai plutôt faire bouger sa fenêtre.
J'ai tenté le sous-classage de la WebView avec gestion du mouseDown/Dragged, mais rien..
Une idée?
Louka.
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Bon après faudra faire le tri au cas par cas entre un mouseDown et un mouseDrag pour "laisser passer" l'un mais intercepter l'autre...
Mais si j'ajoute une NSView ducoup l'utilisateur pourra plus cliquer sur les bouton "play/next/back" de la WebView et comme leur position est totalement différente selon les themes.
Par contre j'ai trouvé "WebUIDelegate" mais je vois pas trop ce que je pourrai utiliser... à part pour empêcher le drag des élément hors de la WebView.. mais ça ne résoud toujours pas le fait de pouvoir bouger la fenêtre
Il faut simplement que mon app récupère "setFrame:" afin de changer la position de la fenêtre..
Le hic c'est que certains themes n'intègre pas cette fonction, et pourtant on peut quand même bouger la fenêtre... donc c'est forcément possible.
A la base j'avais pensé que c'était juste des feuilles CSS HTML (mais quel rapport avec ton WebView et les boutons page précédente/suivante qui sont hors de la vue de rendu ?) mais tu parles de javascript dans le thème derrière ?
Et j'ai l'impression que tu mélanges un peu la partie CSS, la partie javascript... et la gestion des events en Cocoa par la WebView ?
Ceci dit, c'est certainement possible d'intercepter le drag par javascript aussi... mais ça veut dire qu'il te faudra rajouter du code javascript dans les pages que tu affiches dans ta WebView... or si ce n'est pas du contenu perso mais du contenu venant du net, c'est pas gagné...
Bref, pas bien clair tout ça :P
Or, j'ai aussi regardé d'autres themes et là il n'y a pas la moindre trace d'un code permettant de bouger la fenêtre. (Le JS était censé envoyer la nouvelle frame dans une new Array() ).
C'est pour ça qu'au final je pense qu'il est possible de bouger une WebView, en interceptant le moment où on appuie puis le moment où un drag est effectué. Pour l'instant j'ai trouvé juste la méthode permettant le drag, mais elle n'est pas continue, donc impossible de continuellement bouger ma fenêtre.
Cocoa... Certains Themes n'ont pas de code Javascript pour la gestion de la fenêtre, c'est à dire le script qui envoie setFrame: à mon object cocoa.. Ducoup j'imagine que le dév de Bowtie a géré par défaut le mouvement de la fenêtre depuis la webview en COCOA
La partie qui n'est pas du tout clair pour moi c'est celle-ci :
Faut-il interpréter cette phrase comme voulant dire "Cette méthode est appelée autant de fois que l'on désire "prendre" un élément de la webview" ou bien "Cette méthode peut-être appelée plusieurs fois tant que l'ont désire "prendre" un élément".
... La méthode n'est appelée qu'une fois lorqu'on effectue un drag sur un élément.. donc je suppose, malheureusement, que la première "phrase" est la bonne..
Tu m'excuseras d'avoir des doutes après l'histoire du "filename" qui retourne un chemin :P
cf : http://www.osx-dev.com/index.php?topic=3649.msg36856#msg36856