Détecter la présence du Dock à l'écran
ClicCool
Membre
Bonjour,
Y a-t-il un moyen de détecter si le Dock est actuellement à l'écran ou masqué et de quel côté ?
NSSreen offre la méthode visibleFrame sensée nous donner la frame utile de l'écran c'est à dire en excluant la barre de menu et le dock.
Mais il semble que, chez moi du moins, visibleFrame exclus systématiquement la zone potentiellement réservée au dock sur les 3 côtés.
Ce que je souhaiterais c'est plutôt de savoir où EST le dock et pas où il POURRAIT être si on change les réglages.
D'autant qu'on change pas la position du Dock toutes les 5 minutes alors s'il est à gauche je souhaites respecter son emplacement à gauche mais utiliser l'écran jusqu'au bord à droite.
J'ai loupé un truc ? ???
Faut-il que j'aille lire les prefs utilisateur du dock ?
Y a-t-il un moyen de détecter si le Dock est actuellement à l'écran ou masqué et de quel côté ?
NSSreen offre la méthode visibleFrame sensée nous donner la frame utile de l'écran c'est à dire en excluant la barre de menu et le dock.
Mais il semble que, chez moi du moins, visibleFrame exclus systématiquement la zone potentiellement réservée au dock sur les 3 côtés.
Ce que je souhaiterais c'est plutôt de savoir où EST le dock et pas où il POURRAIT être si on change les réglages.
D'autant qu'on change pas la position du Dock toutes les 5 minutes alors s'il est à gauche je souhaites respecter son emplacement à gauche mais utiliser l'écran jusqu'au bord à droite.
J'ai loupé un truc ? ???
Faut-il que j'aille lire les prefs utilisateur du dock ?
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Sinon pour ce qui est des changements de taille, de côté,... il y a une notification distribuée qui est envoyée (com.apple.dock.prefchanged, pas de userInfo).
C'est bien ce que je comptais faire en effet.
Génial, ça pourrait limitter les appels aux prefs du dock en effet et surtout voilà une occasion de me frotter un peu au distributed Notifications que d'autres applis que les miennes émettent
Merci Renaud
Oui en effet il n'y a pas de user-info
Mais on sait alors qu'il faut ré-interroger les prefs du dock pour mettre à jour notre affichage
Tout à fait, et c'est déjà pas mal.
ça a été bien rigolo ça d'aller lire les prefs du dock
Mais j'ai pas eu le temps d'instaurer une surveillance des notifications distribuées avant de me rendre compte de mon erreur initiale.
En fait j'ai été une brêle sur ce coup là !!!
visibleFrame renvoie bel et bien un frame adapté
C'est moi qui n'ai pas su interpréter ce visibleFrame ...
... en tirant partie non seulement de la taille mais aussi de l'origine
désolé :-\\ :)beta:
Oui ça peut être utile mais:
-1 je connais pas d'appli qui se donne cette peine
-2 mon appli repositionne sa fenêtre toutes les 5 secondes de toutes façons
Je garde l'idée pour un autre projet
- Tu prend la taille de l'écran
float h=NSHeight([[NSScreen mainScreen] frame]);
- Tu prend la taille visible de l'écran
float v=NSHeight([[NSScreen mainScreen] visibleFrame]);
- Tu soustrait à h la taille de la barre des menus. Disons 25 pixels. Et tu compare v et h:
h-=25.0;
if (h > v)
//le dock est là
else
//il est pas là
A essayer. Enfin, c'est juste pour donner l'idée, après faut adapter