Plusieur niveaux d'onglet

Vous avez une idée pour améliorer ou modifier PureBasic ? N'hésitez pas à la proposer.
dayvid
Messages : 1242
Inscription : mer. 11/nov./2009 18:17
Localisation : Poitiers (Vienne)

Plusieur niveaux d'onglet

Message par dayvid »

Salut j'ai eu une idée dernièrement

Sa ne vous est jamais arriver d'ouvrir un tas de fichier avec pure basic
par exemple un programme avec beaucoup d'include

Je me suis dit que se serais très pratique d'avoir plusieurs niveaux
d'onglet d'affichage de fichier si vous me suivez

car toujours cliquer sur les flèche pour aller a un fichier et revenir au premier etc.
c'est très Chian :(

Suis-je asse clair ? :)
La vie, C'est comme, Une boitte, De startis, On en voie, De toutes, Les couleurs !

Mon forum http://purebasic.forumphp3.com/index.php
stombretrooper
Messages : 117
Inscription : dim. 21/déc./2008 18:39

Re: Plusieur niveaux d'onglet

Message par stombretrooper »

Je vois l'idée est c'est loin d'être une mauvaise idée, en gros tu voudrais que dans un onglet on puisse ouvrir d'autre onglet comme sa en 2 clics on pourrait accéder à tout les fichiers sur lequels on travaille (un clic sur l'onglet parent/un clic sur l'onglet du fichier qui nous intéresse).
http://www.purebasicstreet.com/ - Site dédié à purebasic.
Avatar de l’utilisateur
venom
Messages : 3128
Inscription : jeu. 29/juil./2004 16:33
Localisation : Klyntar
Contact :

Re: Plusieur niveaux d'onglet

Message par venom »

un peut comme ça :

Code : Tout sélectionner

  If OpenWindow(0, 0, 0, 322, 220, "PanelGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered) 
    PanelGadget     (0, 8, 8, 306, 203)
      AddGadgetItem (0, -1, "projet 1")
        PanelGadget (1, 5, 5, 290, 166)
          AddGadgetItem(1, -1, "Sous-onglet 1")
          AddGadgetItem(1, -1, "Sous-onglet 2")
          AddGadgetItem(1, -1, "Sous-onglet 3")
        CloseGadgetList()
       AddGadgetItem (0, -1,"projet 2")
       PanelGadget (2, 5, 5, 290, 166)
        AddGadgetItem(2, -1, "Sous-onglet 1")
          AddGadgetItem(2, -1, "Sous-onglet 2")
          AddGadgetItem(2, -1, "Sous-onglet 3")
    CloseGadgetList()
    Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
  EndIf





@++
Windows 10 x64, PureBasic 5.73 x86 & x64
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Re: Plusieur niveaux d'onglet

Message par Chris »

Je ne suis pas sur qu'il parle de sous-onglets contenus dans des onglets parents, et encore moins de la façon de les programmer.
Sa ne vous est jamais arriver d'ouvrir un tas de fichier avec pure basic
par exemple un programme avec beaucoup d'include
A mon avis, il parle d'ouvrir plusieurs fichiers dans l'éditeur, et que quand la longueur des onglets dépasse la longueur de la page, ça mette les onglets suivants sur une deuxième ligne plutôt que d'afficher une flèche qui les fait défiler horizontalement.
Avatar de l’utilisateur
venom
Messages : 3128
Inscription : jeu. 29/juil./2004 16:33
Localisation : Klyntar
Contact :

Re: Plusieur niveaux d'onglet

Message par venom »

oui j'avais compris comme toi Chris, :wink:

j'ai simplement montrée l'exemple de PB qui se rapproche le plus :)







@++
Windows 10 x64, PureBasic 5.73 x86 & x64
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
Guimauve
Messages : 1015
Inscription : mer. 11/févr./2004 0:32
Localisation : Québec, Canada

Re: Plusieur niveaux d'onglet

Message par Guimauve »

Bonjour à tous,

Je pense que Dayvid veut dire c'est un effet sur un PanelGadget qui peut être obtenu avec une procédure du genre :

Code : Tout sélectionner

Procedure SetPanelGadgetToMultiRows(GadgetID)
  
  OldStyle = GetWindowLongPtr_(GadgetID(GadgetID), #GWL_STYLE)
  NewStyle = OldStyle | #TCS_MULTILINE | #TCS_RIGHTJUSTIFY
  SetWindowLongPtr_(GadgetID(GadgetID), #GWL_STYLE, NewStyle)
  SetGadgetState(GadgetID, 0)
  
EndProcedure 
Je n'ai plus Windows depuis plus d'un an maintenant et je ne peux pas fournir de code de démonstration. Le code en question ne fonctionne que sous Windows.

Mais selon l'avis des grands programmeurs d'interface graphique, l'affichage des onglets d'un PanelGadget sur plusieurs lignes est une très mauvaise pratique. Tellement, qu'un programmeur qui fait ça mériterait d'être lapidé sur la place publique pour une telle aberration. Selon moi c'est discutable...

Pour ce qui est de l'IDE il m'arrive tout le temps d'avoir plusieurs fichiers d'ouvert en même temps et lorsque les flèches de défilement apparaissent alors je ferme un des fichiers ouvert pour ne pas à me prendre la tête.

A+
Guimauve
Avatar de l’utilisateur
venom
Messages : 3128
Inscription : jeu. 29/juil./2004 16:33
Localisation : Klyntar
Contact :

Re: Plusieur niveaux d'onglet

Message par venom »

8) sympa cette procédure Guimauve,

je met ça de coté au cas ou :wink:






@++
Windows 10 x64, PureBasic 5.73 x86 & x64
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
dayvid
Messages : 1242
Inscription : mer. 11/nov./2009 18:17
Localisation : Poitiers (Vienne)

Re: Plusieur niveaux d'onglet

Message par dayvid »

Salut !

Oui voilà c'est exactement ceci que je voudrais proposer :)
ce serais vraiment très utile

plusieurs sous ongle enfin comme as dit Chris quoi
enfin autant de sous ongle et re-sous onglet etc. qu'il faut pour tous les fichier :)
La vie, C'est comme, Une boitte, De startis, On en voie, De toutes, Les couleurs !

Mon forum http://purebasic.forumphp3.com/index.php
dayvid
Messages : 1242
Inscription : mer. 11/nov./2009 18:17
Localisation : Poitiers (Vienne)

Re: Plusieur niveaux d'onglet

Message par dayvid »

Hé Guimauve, super ton code :D
bin voilà je ne sais pas la différence mais c'est sa quoi :D
La vie, C'est comme, Une boitte, De startis, On en voie, De toutes, Les couleurs !

Mon forum http://purebasic.forumphp3.com/index.php
Avatar de l’utilisateur
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Re: Plusieur niveaux d'onglet

Message par Kwai chang caine »

dayvid a écrit :Hé Guimauve, super ton code :D
bin voilà je ne sais pas la différence mais c'est sa quoi :D
C'est pas pour l'IDE de PB, mais on peut deja le faire pour nos onglets à nous :wink:
Merci GUIMAUVE 8)

Code : Tout sélectionner

Procedure SetPanelGadgetToMultiRows(GadgetID)
  
  OldStyle = GetWindowLongPtr_(GadgetID(GadgetID), #GWL_STYLE)
  NewStyle = OldStyle | #TCS_MULTILINE | #TCS_RIGHTJUSTIFY
  SetWindowLongPtr_(GadgetID(GadgetID), #GWL_STYLE, NewStyle)
  SetGadgetState(GadgetID, 0)
  
 EndProcedure 
 
 If OpenWindow(0, 0, 0, 322, 220, "PanelGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered) 
  PanelGadget     (0, 8, 8, 306, 203)
  ;SetPanelGadgetToMultiRows(0) ; Tu décommentes cette ligne pour avoir ce que tu veux
      AddGadgetItem (0, -1, "Onglet 1")
        PanelGadget (1, 5, 5, 290, 166)
          AddGadgetItem(1, -1, "Sous-onglet 1")
          AddGadgetItem(1, -1, "Sous-onglet 2")
          AddGadgetItem(1, -1, "Sous-onglet 3")
        CloseGadgetList()
      AddGadgetItem (0, -1,"Onglet 2")
        ButtonGadget(2, 10, 15, 80, 24,"Bouton 1")
        ButtonGadget(3, 95, 15, 80, 24,"Bouton 2")
        
        AddGadgetItem (0, -1,"Onglet 3")
        AddGadgetItem (0, -1,"Onglet 4") 
        AddGadgetItem (0, -1,"Onglet 5") 
        AddGadgetItem (0, -1,"Onglet 6") 
    CloseGadgetList()
    Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
  EndIf
ImageLe bonheur est une route...
Pas une destination

PureBasic Forum Officiel - Site PureBasic
Avatar de l’utilisateur
blendman
Messages : 2017
Inscription : sam. 19/févr./2011 12:46

Re: Plusieur niveaux d'onglet

Message par blendman »

salut, je confirme que l'idée de Chris (l'exemple) serait très appréciable :).

Il m'arrive souvent d'ouvert 2 ou 3 projets en mêmes (comprendre plusieurs fichiers liés) et ce serait vraiment bien de pouvoir les grouper :D.
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Re: Plusieur niveaux d'onglet

Message par Chris »

blendman a écrit :salut, je confirme que l'idée de Chris (l'exemple) serait très appréciable :).

Il m'arrive souvent d'ouvert 2 ou 3 projets en mêmes (comprendre plusieurs fichiers liés) et ce serait vraiment bien de pouvoir les grouper :D.
Je suis bien content que ça te plaise.
D'autant plus que je n'ai posté aucun exemple dans ce topic. :mrgreen:
Avatar de l’utilisateur
blendman
Messages : 2017
Inscription : sam. 19/févr./2011 12:46

Re: Plusieur niveaux d'onglet

Message par blendman »

Chris a écrit :Je suis bien content que ça te plaise.
D'autant plus que je n'ai posté aucun exemple dans ce topic. :mrgreen:
ah ben oui, oup's :)
C'est parce que tu m'as aidé sur les preference encryptées récemment, c'était l'exemple de venom qui serait intéressant d'avoir comme options dans l'IDE ;).
pat
Messages : 411
Inscription : mar. 24/nov./2009 15:13

Re: Plusieur niveaux d'onglet

Message par pat »

Bonjour à tous,

Pour répondre à Guimauve, que je remercie particulièrement pour son code très apprécié de tout le monde.
Son exemple de code est concis, clair et va à l'essentiel. Tout ce que j'apprécie particulièrement.
J'ai acheté, il y a quelques temps, un logiciel qui avait dans son contenu un panel à onglets multiples et donc je ne pense pas que cela soit quelque chose de répréhensible.
Les textes des titres des onglets sont obligatoirement centrés et donc :
NewStyle = OldStyle | #TCS_MULTILINE
suffit largement.

Pour ceux qui n'aiment pas la présentation en onglet, je propose quelques petits changements :
NewStyle = OldStyle | #TCS_MULTILINE | #TCS_BUTTONS | #TCS_HOTTRACK

Vous aurez à la place des onglets des "Radio-boutons" et le #TCS_HOTTRACK (pour ceux qui le souhaitent) pour que le texte du bouton soit en couleur quand on sélectionne le bouton.

Maintenant je n'ai pas trouvé comment mettre de la couleur dans le panel car rien ne semble fonctionner.
Peut-être dans la version 4.60 (je la téléchargerai quand on en sera effectivement à la version 4.60 et non aux versions intermédiaires).
Guimauve
Messages : 1015
Inscription : mer. 11/févr./2004 0:32
Localisation : Québec, Canada

Re: Plusieur niveaux d'onglet

Message par Guimauve »

Bonjour à tous,

Je ne suis plus sûr mais je pense que le code pour forcer le PanelGadget() à afficher les onglets sur deux lignes provient d'un code donné par "Le Soldat Inconnu" en 2003 ou en 2004 je ne sais plus trop en fait. Donc le mérite pour ce morceau de code ne me revient pas, désolé !

[EDIT]
Après une petite recherche, c'est ici : http://www.purebasic.fr/french/viewtopi ... t=58&p=182
J'avais simplement modifier le code pour qu'il soit limité à faire une seule chose.
[/EDIT]

A+
Guimauve
Répondre