Connexion
Vous n'avez pas encore de compte personnel ? Vous devriez en créer un. Une fois enregistré vous aurez certains avantages, comme pouvoir modifier l'aspect du site, ou poster des commentaires signés...
Support
Activité du Site

Pages vues depuis 06/01/2019 : 12 701 509

  • Nb. de membres 366
  • Nb. d'articles 2 837
  • Nb. de forums 24
  • Nb. de sujets 13
  • Nb. de critiques 0

Top 10  Statistiques

Index du forum »»  Développement »» Rétrécissement d'une interface MUI

Rétrécissement d'une interface MUI#2275

3Contributeur(s)
shainaOffseTTcheko
2 Modérateur(s)
PapiosaurBeWorld
shaina shainaicon_post
Bonjour,

Je souhaiterai avoir un coup de pouce concernant le rétrécissement / agrandissement d'une interface MUI
Je m'explique ...
Tout le monde ou du moins ceux qui programment sur MorphOS ont utilisé à un moment donné un peu ou beaucoup le logiciel FlowStudio ( trés bon programme pour moi ... )
Si vous avez fait attention, lorsque que vous rétrécissez la fenêtre principale vous ne pouvez la rétrécir jusqu'à un certain niveau sans réduire complètement la fenêtre et sans dénigrer l'interface générale ...

Je désires faire la même chose sur ma petite interface pour le rétrécissement ...
Quelqu'un pourrait il m'aiguiller sur la façon de procéder ? des exemples à m'indiquer ? des astuces avec le poids par exemple ? avec virtgroup ? ... etc ...

je m'arraches le peu de cheveux qu'il me reste avec ça
 This message was edited by : Papiosaur / 2022-06-17 10:34
OffseT OffseTicon_post
Je ne suis pas sûr d'avoir compris la question, mais ce que tu cherches est peut-être la méthode MUIM_AskMinMax de la classe Area que tu peux surcharger pour les objets dont tu veux contrôler les dimensions minimales et maximales.
Tcheko Tchekoicon_post
J'ai peur de ne pas bien saisir.

Pour l'histoire des poids, c'est pas bien compliqué, il suffit d'être méthodique et de distribuer l'espace à partir des groupes les plus proches de la racine (ie: WindowContents)

Exemple pour faire un colonage 20/80 dans une fenêtre

..
WindowContents,
HGroup,
/* colonne à gauche, 20% de l'espace disponible */
Child, HGroup, MUIA_Weight, 20,
Child, RectangleObject, End,
End,
/* colonne à droite, 80% de l'espace disponible */
Child, HGroup, MUIA_Weight, 80,
Child, RectangleObject, End,
End,
End,
...


Concernant le virtgroup, cet objet permet de faire une zone plus grande que l'espace disponible à l'écran. Cela ne t'aidera en rien ici. Peut être qu'une capture d'écran de ce que tu veux faire nous aiderai à comprendre ton besoin.
++
shaina shainaicon_post
Bonjour,
Je pensais pourtant avoir été clair dans mes explications ... mais ce n'est pas grave, je vais essayer d'être encore plus précis

L'histoire est simple ... j'ouvre une fenêtre d'une valeur de 400 pixels en longueur (MUIA_WINDOW_WIDTH) et de 500 pixels en hauteur (MUIA_WINDOW_HEIGHT) centrée à l'écran ...
Cette fenêtre est constituée de plusieurs éléments MUI ( Nlist, button, string, etc ... ) encapsulés dans des VGroup et HGroup ...
Lorsque la fenêtre s'ouvre et que je décides de rétrécir cette fenêtre en taille ,,, je peux la rétrécir jusqu'à obtenir une mini fenêtre de disons 40 en longueur et 40 en hauteur ...
Or, ce que je désires avoir c'est que si au départ j'ai une fenêtre de 400 x 500 je ne puisses pas rétrécir cette fenêtre à moins d'une certaine valeur en longueur et en hauteur disons 100x100 par exemple ...

Et je ne comprends pas comment faire ceci ...

Dans mon précédent message, je nommais FlowStudio comme exemple ... si on rétrécit sa fenêtre et cela à n'importe quel moment vous verrez que l'on peut pas rétrécir la fenêtre en dessous d'une certaine taille et c'est cela que j'aimerai avoir sur mon interface

PS : Merci pour vos réponses à tcheko et offset ...
 Message édité par : Papiosaur / 18-06-2022 10:05
Tcheko Tchekoicon_post
1. On ne donne pas une taille fixe à une fenêtre dans MUI.
Préférer indiquer un pourcentage de la surface de l'écran par exemple. La raison est assez simple, tout le monde n'utilise pas la même police/taille de caractère, tout le monde n'utilise pas forcément la même décoration MUI (marges, habillage etc...). Quand tu indiques une taille fixe, cela fonctionnera bien avec ta configuration MUI mais pourra lamentablement échouer sur une autre configuration.

2. Il n'y a aucun moyen de contrôler la taille mini d'une fenêtre.
Chaque objet MUI dispose de la méthode askMinMax qui retourne la taille mini/défaut/maxi de l'objet. MUI à partir de cette information essaye de faire au mieux pour positionner les objets entre eux. La taille mini d'une fenêtre est la somme des valeurs mini retournées par la méthode askMinMax des objets.

Cela dit en passant, c'est le comportement par défaut de MUI. Le seul défaut de son layouter, c'est qu'il est simple passe. C'est rapide mais tu ne peux pas de façon simple faire des objets homothétiques par exemple (qui conserve leur ratio hauteur/largeur)

Concernant ton soucis de réduction à une taille ridicule, si tu as mis un virtgroup à la racine, c'est probablement la cause de cet effet.
shaina shainaicon_post
1 ... la taille fixe c t pour l'exemple

2 ... ok pour le layout de MUI

3 ... existe t'il des exemples concrets pour des interfaces MUI complexes ?
Tcheko Tchekoicon_post
Qu'entends tu par complexe?

La programmation MUI démarre vraiment en complexité à partir du moment où tu réalises des sous classes de classe. Tu as accès au dispatcher des méthodes, tu peux surcharger les méthodes et altérer le comportement de n'importe quel objet. C'est aussi la seule façon légale d'utiliser la méthode MUIM_Draw et faire des rendus dans le rastport de la fenêtre MUI.

Et toute la puissance est dans les sous classes... :)

++


shaina shainaicon_post
bonjour,

justement pour en revenir à la complexité des interfaces MUI , j'avais fait une sous classe de la classe TheBar.mcp et je pensais n'avoir aucun souci à l'utiliser ... dès l'instant oû je l'ai incorporé dans mon interface je n'arrivais pas à obtenir le rendu nécessaire lors du rétrécissement de ma fenêtre ... l'interface devenait brouillon .. c t "merdique" ... d'oû mon appel au secours içi
Après avoir essayer beaucoup de choses j'ai décidé de me passer de ma sous classe et là comme par enchantement tout est rentré dans l'ordre ... j'obtenais ce que je voulais
J'ai comparé les 2 sources et tout est pareil ... les arguments sont utilisés de la même manière

résultat j'ai encore du boulot pour comprendre et ajuster tout ça ... mais je vais trouver ma solution à mes soucis
Tcheko Tchekoicon_post
Yop,

Ha. Alors, sous classer TheBar.mcp, ca risque d'être intéressant. Les classes en .mcp sont pour les préférences dans MUI et ne sont donc pas utilisables dans une application puisque spécifiquement conçues pour afficher un panneau de configuration depuis les préférences globales MUI.

A tout hasard, change le p en c...

++