Page 1 sur 1

Menus invisibles sous Ubuntu.

Publié : sam. 11/janv./2014 20:06
par bloiiing
Bonjour,

J'ai créé un petit bout de code qui ne sert à rien, si ce n'est de tester la compatibilité entre les différentes plateformes à ma disposition. A savoir Linux et windows. C'est juste une fenêtre avec un menu, un éditeur et un bouton. Ça ne fait rien de plus que d'afficher un message requester quand je clique sur un menu et un autre quand je clique sur le bouton. Je ne pense pas que ce soit utile de poster ici le code en question, mais je peux le faire si quelqu'un me le demande...

Sous windows 7 et 8 ça marche bien. Par contre sous linux, je n'arrive pas à avoir le menu et je ne sais pas pourquoi. Quelqu'un à-t-il déjà eu ce problème? Je précise que je n'ai aucune erreur de compilation, et que j'ai créé cette mini interface graphique avec le form designer intégré à PB 5.21 dans le but de me familiariser avec son fonctionnement. Je pense avoir compris. C'est pas trop compliqué, c'est même simple par rapport à d'autres langages, et c'est très efficace. J'ai juste ce problème de menu qui n'est pas visible sous linux...

Merci d'avance.

Re: Menus invisibles sous Ubuntu.

Publié : sam. 11/janv./2014 22:28
par falsam
Et ou trouve t'on ce bout de code ? :mrgreen:

Re: Menus invisibles sous Ubuntu.

Publié : dim. 12/janv./2014 18:42
par bloiiing
Voilà le code en 3 fichiers:

Code : Tout sélectionner

;Main.pb
XIncludeFile "Formulaire.pbf" ; Inclusion de la première fenêtre
XIncludeFile "Procedures.pb"

OpenWindow_0() ; Création de la première fenêtre. Ce nom de procédure est toujours 'Open' suivi du nom de la fenêtre

; La boucle principale, comme d'habitude, le seul changement est l'appel de la procédure 
; événementielle automtiquement générée pour chaque fenêtre.
Repeat
   Event = WaitWindowEvent()
   Select EventWindow()
      Case Window_0
         Window_0_Events(Event) ; Le nom de la procédure est toujours le nom de la fenêtre suivi de '_Events'      
   EndSelect
   
Until Event = #PB_Event_CloseWindow ; Ferme toutes les fenêtres en quittant l'une d'elle
puis:

Code : Tout sélectionner

;Formulaire.pbf
; This code is automatically generated by the FormDesigner.
; Manual modification is possible to adjust existing commands, but anything else will be dropped when the code is compiled.
; Event procedures needs to be put in another source file.
;

Global Window_0

Global Editor_0, Button_0

Enumeration FormMenu
  #MenuItem_2
  #MenuItem_4
  #MenuItem_5
  #MenuItem_8
  #MenuItem_11
  #MenuItem_7
  #MenuItem_9
  #MenuItem_10
EndEnumeration

Declare fileopen(Event)
Declare filechooser(EventType)

Procedure OpenWindow_0(x = 0, y = 0, width = 600, height = 400)
  Window_0 = OpenWindow(#PB_Any, x, y, width, height, "essai", #PB_Window_SystemMenu | #PB_Window_BorderLess | #PB_Window_ScreenCentered)
  CreateMenu(0, WindowID(Window_0))
  MenuTitle("File")
  MenuItem(#MenuItem_2, "Open")
  OpenSubMenu("New")
  MenuItem(#MenuItem_4, "Project")
  MenuItem(#MenuItem_5, "Text file")
  CloseSubMenu()
  MenuItem(#MenuItem_8, "Save")
  MenuItem(#MenuItem_11, "Save as")
  MenuTitle("Edit")
  MenuItem(#MenuItem_7, "Cut")
  MenuItem(#MenuItem_9, "Copy")
  MenuItem(#MenuItem_10, "Paste")
  Editor_0 = EditorGadget(#PB_Any, 10, 10, 580, 310)
  Button_0 = ButtonGadget(#PB_Any, 10, 328, 100, 40, "Open", #PB_Button_Default)
EndProcedure

Procedure Window_0_Events(event)
  Select event
    Case #PB_Event_CloseWindow
      ProcedureReturn #False

    Case #PB_Event_Menu
      Select EventMenu()
        Case #MenuItem_2
          fileopen(EventMenu())
        Case #MenuItem_4
        Case #MenuItem_5
        Case #MenuItem_8
        Case #MenuItem_11
        Case #MenuItem_7
        Case #MenuItem_9
        Case #MenuItem_10
      EndSelect

    Case #PB_Event_Gadget
      Select EventGadget()
        Case Button_0
          filechooser(EventType())          
      EndSelect
  EndSelect
  ProcedureReturn #True
EndProcedure

et enfin:

Code : Tout sélectionner

;Procedures.pb
Procedure filechooser(EventType)
   ;Debug "Evénement Bouton OK"
   MessageRequester("OK", "Button OK", #PB_MessageRequester_Ok);, 0)
EndProcedure

Procedure fileopen(EventType)
   ;Debug "Evénement Bouton OK"
   MessageRequester("Open", "File Open", #PB_MessageRequester_Ok);, 0)
EndProcedure
Je ne pense pas que ça serve à grand-chose mais voilà!

C'était juste pour savoir si quelqu'un avait eu le même problème que moi... C'est sous Ubuntu que je n'arrive pas à avoir le menu. Peut-être que c'est un problème de configuration de ma version de linux?

Merci d'avance.

Re: Menus invisibles sous Ubuntu.

Publié : ven. 09/mai/2014 2:46
par Shade
salut dis moi sur ton ubuntu tes en quel version ?
j'ai eu le même souci est le menu se trouvé en haut de l’écran est non en haut de la fenêtre du programme comme quand tu dev la fenêtre sur purebasic