Page 1 sur 1

Problème avec Point() sur Linux Mint

Publié : dim. 16/avr./2017 13:15
par GallyHC
Bonjour,

Quand j'essais de lire la couleur d'un point avec la commande "Point()", il me dit que "Point() est en dehors de la zone de dessin." meme avec un fenêtre de "200,200" et une lecture du point à "100,100".

Exemple du problème (fonctionne sous Windows) :

Code : Tout sélectionner

 If OpenWindow(0, 0, 0, 200, 200, "Point", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
    If StartDrawing(WindowOutput(0))
      Debug Point(100, 100)
      StopDrawing() 
    EndIf
    
    Repeat
      Event = WaitWindowEvent()
    Until Event = #PB_Event_CloseWindow
  EndIf
Merci d'avance de votre aide (forcement ce qui on un Linux ^^). Petite précision je suis avec PB v5.60 sur le linux).

Cordialement,
GallyHC

Re: Problème avec Point() sur Linux Mint

Publié : dim. 16/avr./2017 15:58
par zaphod_b
Je confirme sur GALLIUM OS (ubuntu avec XFCE qui fonctionne sur chromebook) et pb 5.60 x64.

Par contre l'exemple de l'aide sur la fonction POINT fonctionne.

Re: Problème avec Point() sur Linux Mint

Publié : dim. 16/avr./2017 18:25
par GallyHC
Bonjour,

Merci "zaphod_b", pour la confirmation de ce problème. En espérant avoir une réponse sur la correction de cela.

Cordialement,
GallyHC

Re: Problème avec Point() sur Linux Mint

Publié : mar. 16/mai/2017 15:23
par Ulix
salut GallyHC,


Je confirme aussi (ou encore, apparemment le problème existe encore) !
(pour rappel je suis sous Linux 16.04.2 LTS (Xenial Xerus) 64-bit et environnement MATE 1.12.1)

Voir mon post : http://www.purebasic.fr/french/viewtopi ... nt#p185986

Je pense que tu essaye de récupéré une couleur (de fond ou autre, pour là réutilisé) pour donné
une certaine harmonie a la fenêtre (surtout si des skins ou des thèmes propre a l'utilisateur sont utilisé!
C'était mon but (en août 2016)

Je n'est pas trouvé de solution satisfaisante ! :twisted:
Regarde mon post, ça de donnera peut-être des idées ! :lol:

A+
Ulix

Re: Problème avec Point() sur Linux Mint

Publié : mar. 16/mai/2017 15:43
par GallyHC
Bonjour,

Ulix> Merci pour le retours. Visiblement ce problème ne date pas d'hier ^^. J'espère que cela sera pris en compte au bout d'un moment (comme les Gifs lolll).

Pour moi ça aurait servis a faire une capture de l'écran (mais c le même style d'idée).

Cordialement,
GallyHC

Re: Problème avec Point() sur Linux Mint

Publié : mar. 24/avr./2018 20:27
par GallyHC
Bonjour,

Je déterre un vieux poste, car j'ai trouvais depuis quelque temps une solution pour avoir la couleur de "background" des fenêtres (couleur de base) des OS (Windows, linux et MacOS) qui fonctionne :

Code : Tout sélectionner

    Procedure _WINDOW_BACKGROUND(hwnd.i = 0)
      ;
      ; http://www.purebasic.fr/english/viewtopic.php?p=472982#p472982
      ;
      CompilerSelect #PB_Compiler_OS
        CompilerCase #PB_OS_Windows
          ;
          Protected color = GetSysColor_(#COLOR_WINDOW)
          If color = $FFFFFF Or color = 0
            color = GetSysColor_(#COLOR_BTNFACE)
          EndIf
          ProcedureReturn color
          ;
        CompilerCase #PB_OS_Linux
          ;
          Protected *style.GtkStyle, *color.GdkColor
          *style = gtk_widget_get_style_(hwnd)
          *color = *style\bg[0]
          ProcedureReturn RGB(*color\red >> 8, *color\green >> 8, *color\blue >> 8)
          ;
        CompilerCase #PB_OS_MacOS
          ;
          Protected.i color, Rect.NSRect, Image
          Protected.i NSColor = CocoaMessage(#Null, #Null, "NSColor windowBackgroundColor")
          If NSColor
            Rect\size\width = 1
            Rect\size\height = 1
            Image = CreateImage(#PB_Any, 1, 1)
            StartDrawing(ImageOutput(Image))
            CocoaMessage(#Null, NSColor, "drawSwatchInRect:@", @Rect)
            color = Point(0, 0)
            StopDrawing()
            FreeImage(Image)
            ProcedureReturn color
          Else
            ProcedureReturn -1
          EndIf
          ;
      CompilerEndSelect
    EndProcedure
Cordialement,
GallyHC