Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 4 sur 4
  1. #1
    Membre habitué Avatar de kkt8
    Profil pro Christelle
    Inscrit en
    janvier 2005
    Messages
    350
    Détails du profil
    Informations personnelles :
    Nom : Christelle
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : janvier 2005
    Messages : 350
    Points : 128
    Points
    128

    Par défaut Espace entre les ToolItem dans une Toolbar

    Bonjour,

    Je crée une ToolBar qui contient une liste de x ToolItem représentés par des boutons dont l'image ressemble à une check box (image de 16 pixels par 16).
    Je voudrais élargir l'espace entre deux ToolItem pour qu'ils soient étalés dans toutes ma ToolBar qui est Fill Horizontal.

    Est-ce seulement possible ?
    J'ai lu que l'espace était calculé automatiquement par la classe FillLayout... et j'ai beau changé de layout .... ça marche pas !

    Merci
    Chris

  2. #2
    Modérateur
    Avatar de Gueritarish
    Homme Profil pro Marc
    Développeur Java
    Inscrit en
    mai 2007
    Messages
    1 800
    Détails du profil
    Informations personnelles :
    Nom : Homme Marc
    Âge : 30
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : mai 2007
    Messages : 1 800
    Points : 3 776
    Points
    3 776

    Par défaut

    Salut,

    Tu peux éventuellement les espacer en rajoutant des séparators (new ToolItem(bar, SWT.SEPARATOR);) en indiquant leur largeurs. Mais avec des layout, je ne pense pas que ça soit possible (il n'y a pas de méthodes setLayoutData() sur un ToolItem).

    Voilà, à+
    Gueritarish
    Pas de questions technique par MP, les forums sont là pour ça.

  3. #3
    Membre habitué Avatar de kkt8
    Profil pro Christelle
    Inscrit en
    janvier 2005
    Messages
    350
    Détails du profil
    Informations personnelles :
    Nom : Christelle
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : janvier 2005
    Messages : 350
    Points : 128
    Points
    128

    Par défaut

    Salut Gueritarish !

    j'y avais pensé, mais je veux pouvoir contrôler cet espace ... je suis en train de voir si je ferais pas mieux avec un tableViewer ...

    Je pense effectivement que c'est impossible !

    Je fermerais ce post dès que j'aurais fini l'exploration des possibilités mais je pense qu'il ne sera pas résolu

    Merci !

  4. #4
    Modérateur
    Avatar de Gueritarish
    Homme Profil pro Marc
    Développeur Java
    Inscrit en
    mai 2007
    Messages
    1 800
    Détails du profil
    Informations personnelles :
    Nom : Homme Marc
    Âge : 30
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : mai 2007
    Messages : 1 800
    Points : 3 776
    Points
    3 776

    Par défaut

    Dans quel sens tu veux le contrôler? Si c'est lui assigner une taille variable, c'est tout à fait faisable. Il te suffit de rajouter une listener et le tour est joué.
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    public static void main(final String[] args) {
      final Display display = new Display();
      final Shell shell = new Shell();
      shell.setLayout(new GridLayout());
      final Image image = new Image(display, 16, 16);
      final Color color = display.getSystemColor(SWT.COLOR_RED);
      final GC gc = new GC(image);
      gc.setBackground(color);
      gc.fillRectangle(image.getBounds());
      gc.dispose();
      final ToolBar bar = new ToolBar(shell, SWT.BORDER);
      bar.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
      ToolItem item;
      for (int i = 1; i < 10; i++) {
        if (i % 3 == 0) {
          item = new ToolItem(bar, SWT.SEPARATOR);
        } else {
          item = new ToolItem(bar, SWT.PUSH);
        }
        item.setText("Item " + i);
        item.setImage(image);
      }
      final Rectangle clientArea = shell.getClientArea();
      bar.setLocation(clientArea.x, clientArea.y);
      bar.pack();
      shell.addPaintListener(new PaintListener() {
     
        @Override
        public void paintControl(final PaintEvent e) {
          final int width = (int) ((float) e.width / (float) bar.getItemCount());
          for (final ToolItem item : bar.getItems()) {
            if ((item.getStyle() & SWT.SEPARATOR) == SWT.SEPARATOR) {
              item.setWidth(width);
            }
          }
        }
      });
      shell.open();
      shell.pack();
      while (!shell.isDisposed()) {
        if (!display.readAndDispatch())
          display.sleep();
      }
      display.dispose();
    }
    Voilà, à+
    Gueritarish
    Pas de questions technique par MP, les forums sont là pour ça.

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •