[Win/Linux/Mac] WindowMouseButton() et plus ...

Partagez votre expérience de PureBasic avec les autres utilisateurs.
Avatar de l’utilisateur
Thyphoon
Messages : 2706
Inscription : mer. 25/août/2004 6:31
Localisation : Eragny
Contact :

[Win/Linux/Mac] WindowMouseButton() et plus ...

Message par Thyphoon »

J'ai hésité a poster ce massage dans chaque section du forum dédié a Window/Linux/Macos ...

Il y a des fonctions qui manque a PB au niveau des fenêtres
-WindowMouseButton() pour savoir si un bouton est pressé
-WindowMouseWheel() équivalent a MouseWheel() mais sans le examineMouse()
et pareille pour détecter lorsqu'une touche est pressée
-IsKeyPressed()

Le but n'est pas de détecter l'appui d'une touche, mais de savoir que celle si elle est appuyé ! Vous comprenez la nuance ?

Voici des codes, et je cherche a les compléter pour les rendre compatible avec Window/Linux/MacOs

Si vous avez une idée ....
Merci d'avance !

Code : Tout sélectionner

Procedure WindowMouseButton(Wnd, ButtonNr)
  ;From DarkDragon
  ;http://www.purebasic.fr/english/viewtopic.php?f=12&t=17998&hilit=WindowMouseButton
  CompilerSelect #PB_Compiler_OS
    
    ;Linux Version
    CompilerCase #PB_OS_Linux
      Protected gdkWnd.l, x.l, y.l, mask.l
      If Wnd
        *Window.GTKWindow = Wnd
        gdkWnd = *Window\bin\child\window
        gdk_window_get_pointer_(gdkWnd, @x, @y, @mask)
       
        Select ButtonNr
          Case 0
            If (mask & #GDK_BUTTON1_MASK)
              ProcedureReturn 1
            EndIf
          Case 1
            If (mask & #GDK_BUTTON3_MASK)
              ProcedureReturn 1
            EndIf
          Case 2
            If (mask & #GDK_BUTTON2_MASK)
              ProcedureReturn 1
            EndIf
        EndSelect
      EndIf

    ;Windows Version
    CompilerCase #PB_OS_Windows
      If Wnd And GetForegroundWindow_() = Wnd
        Select ButtonNr
          Case 0
            If GetAsyncKeyState_(#VK_LBUTTON) > 0
              ProcedureReturn 1
            EndIf
          Case 1
            If GetAsyncKeyState_(#VK_RBUTTON) > 0
              ProcedureReturn 1
            EndIf
          Case 2
            If GetAsyncKeyState_(#VK_MBUTTON) > 0
              ProcedureReturn 1
            EndIf
        EndSelect
      EndIf
  
    ;Macintosh Version
    CompilerCase #PB_OS_MacOS
  
  CompilerEndSelect
  ProcedureReturn 0
EndProcedure


Procedure IsAltPressed()
  ;From DoubleDutch
  ;http://www.purebasic.fr/english/viewtopic.php?f=12&t=17998&hilit=WindowMouseButton
  CompilerSelect #PB_Compiler_OS

    ;Windows Version
    CompilerCase #PB_OS_Windows
      ProcedureReturn GetAsyncKeyState_(#VK_MENU)&$8000

    ;Linux Version
    CompilerCase #PB_OS_Linux   

    ;Macintosh Version
    CompilerCase #PB_OS_MacOS 
  CompilerEndSelect
EndProcedure

Procedure IsShiftPressed()
  ;From DoubleDutch
  ;http://www.purebasic.fr/english/viewtopic.php?f=12&t=17998&hilit=WindowMouseButton
  CompilerSelect #PB_Compiler_OS

    ;Windows Version
    CompilerCase #PB_OS_Windows
      ProcedureReturn GetAsyncKeyState_(#VK_SHIFT)&$8000

    ;Linux Version
    CompilerCase #PB_OS_Linux   

    ;Macintosh Version
    CompilerCase #PB_OS_MacOS 
  CompilerEndSelect

   
EndProcedure

Procedure IsCtrlPressed()
  ;From DoubleDutch
  ;http://www.purebasic.fr/english/viewtopic.php?f=12&t=17998&hilit=WindowMouseButton
  CompilerSelect #PB_Compiler_OS

    ;Windows Version
    CompilerCase #PB_OS_Windows
      ProcedureReturn GetAsyncKeyState_(#VK_CONTROL)&$8000

    ;Linux Version
    CompilerCase #PB_OS_Linux   

    ;Macintosh Version
    CompilerCase #PB_OS_MacOS 
  CompilerEndSelect
   
EndProcedure
Avatar de l’utilisateur
GallyHC
Messages : 1708
Inscription : lun. 17/déc./2007 12:44

Re: [Win/Linux/Mac] WindowMouseButton() et plus ...

Message par GallyHC »

Bonjour,

Je recherche aussi a savoir le clic de la sourie sur MacOS, mais je n'avais pas eu de réponse alors pour le moment je recherche des informations a ce sujet.

J'espere que tu auras des reponses car cela me sera aussi utile.

Cordialement,
GallyHC
Configuration : Tower: Windows 10 (Processeur: i7 "x64") (Mémoire: 16Go) (GeForce GTX 760 - 2Go) - PureBasic 5.72 (x86 et x64)
Avatar de l’utilisateur
Thyphoon
Messages : 2706
Inscription : mer. 25/août/2004 6:31
Localisation : Eragny
Contact :

Re: [Win/Linux/Mac] WindowMouseButton() et plus ...

Message par Thyphoon »

j'espère que Fred intègrera ces fonctions un jour !!
tu as posé la question sur le forum anglais ?
Je vais peut être le faire !
mais je sais pas trop si je dois poster dans caque forum dédié ! ou si je poste qu'une fois dans un forum général
Répondre