Bouton "Fichier" à la place de l'onglet "Général"

Salut 4ian,

Je pense qu’un bouton “Fichier”, à l’instar du bouton Office, pour accéder aux fonctions de l’onglet “Général”.
Parce que contrairement aux autres onglets, on peut être amené à enregistrer tout le temps. Cela éviterai de basculer entre les onglets pour enregistrer, ouvrir, créer un nouveau jeu.
Bon, après, je sais que wxRibbonBar ne fournit pas de bouton comme ça, mais on peut très bien imaginer un simple menu avec un beau wxBitmapButton placé sur le ruban. (on pourrait imaginé un bouton avec le logo Game Develop dessus)

J’ai fait quelques test (en utilisant mainCommandEditor dans un éditeur d’objet), voilà ce que ça pourrait donner :
[attachment=0]ButtonOnRibbon.png[/attachment]

wxButton *buttonTest = new wxButton(mainEditorCommand_.GetRibbon(), wxID_ANY, "TEST"); mainEditorCommand_.GetRibbon()->SetTabCtrlMargins(buttonTest->GetDefaultSize().GetWidth(), 0);

Après, il faudrait faire des tests sur Linux et tout, mais que penses-tu de l’idée de regrouper le ruban “Général” dans un bouton ?

:mrgreen: Excellent, ça a l’air de bien marcher en effet.

Oui, ça serait plus sympa et adapté au ruban. :slight_smile:

C’est une bonne solution à mon avis, car ce genre de bouton est justement fait pour accueillir les boutons généraux d’enregistrements. Mais comme wxRibbon ne proposait pas ce bouton, j’ai fait passer ceci dans le ruban Général.
D’ailleurs, je ne sais pas si tout l’onglet devrait être transféré, certains élements devrait peut être rester dans un onglet “Outils” à part.

Mais bref, je vais tester ça dès que possible. :slight_smile:

Petit problème, le bouton clignote quand on redimensionne la fenêtre, mais sinon, il s’affiche bien.

Tiens, voilà quelques idées de boutons :

[attachment=1]buttonGDWhite.png[/attachment]
[attachment=0]buttonGDhoverWhite.png[/attachment]

C’est un peu ce qui m’inquiète avec ce genre de “hack”, mais bon, ça devrai le faire.
Pour l’image du bouton, pour éviter une trop grande disparité avec les différents skins, je vais essayer de générer moi même ce bouton avec le “wxRibbonArtProvider” du ruban. Moyennant quelques acrobaties, ça devrait pouvoir le faire.

Après quelques contorsions, je suis arrivé à ça ( Le bouton est généré dynamiquement suivant le skin du ruban. Il est pour le moment toujours de couleur bleutée. ):
[attachment=0]Ribbon.png[/attachment]

Je pense proposer peut être un simple titre “Fichier” plutôt que le logo de GD pour ne pas perdre l’utilisateur.
J’ai pas remarqué de clignotement en tout cas ( mais j’utilise un wxStaticBitmap ).

EDIT : Il y avait un léger décalage d’un pixel sur l’image ci dessus.

Dans ce cas, pourquoi ne pas hériter une classe du wxRibbon pour ajouter dans PaintEvent le dessin du bouton et dans son ClickEvent le test permettant de voir si on a appuyé sur le bouton ?
Ce serait sûrement mieux organisé et ce serait plus un hack. :wink:

EDIT : Attention, dans ce cas, on ne pourra plus masquer les onglets des différentes pages (sinon, ça risque de faire moche).

Ca implique aussi dans ce cas là d’être plus dépendant de la manière dont est implementé le wxRibbon. La méthode actuelle semble bien fonctionner au final, je pense continuer sur ce principe.

Dans ce cas, je te recommanderais d’utiliser la version générique de ce contrôle car la version native est imprévisible.
Mais si ça fonctionne sous Linux aussi, pourquoi pas. Le tout étant de rester portable.

Il n’y a pas de version native ou générique du wxRibbon, c’est dans tous les cas une version générique, même sur Windows.

[…]