GetToolBarButtonState bei MacOSx verdreht ?

MAC OSX spezifisches Forum
Beiträge, die plattformübergreifend sind, gehören ins 'Allgemein'-Forum.
Simon74
Beiträge: 60
Registriert: 04.05.2014 10:05

GetToolBarButtonState bei MacOSx verdreht ?

Beitrag von Simon74 »

Hallo,

in meinem Sourcecode der unter Linux und Windows funktioniert, habe ich beim MAC in der Procedur ein Problem,
MAC liefert mir genau dem umgekehrten Wert bei "GetToolBarButtonState".

Code: Alles auswählen

Procedure ButtonState(ButtonID.i)
  If GetToolBarButtonState(0, ButtonID.i)
    SetToolBarButtonState(0, ButtonID.i, 1)
  Else
    SetToolBarButtonState(0, ButtonID.i, 0)    
  EndIf 
EndProcedure
Ist das normal ? :freak:
Benutzeravatar
Danilo
-= Anfänger =-
Beiträge: 2284
Registriert: 29.08.2004 03:07

Re: GetToolBarButtonState bei MacOSx verdreht ?

Beitrag von Danilo »

Funktioniert bei mir so wie in der Dokumentation beschrieben.

Code: Alles auswählen

Procedure ButtonState(ButtonID.i)
    If GetToolBarButtonState(0, ButtonID.i)
        SetToolBarButtonState(0, ButtonID.i, 0)
    Else
        SetToolBarButtonState(0, ButtonID.i, 1)    
    EndIf
    Debug GetToolBarButtonState(0,ButtonID)
EndProcedure

If OpenWindow(0, 100, 200, 195, 260, "ToolBar example", #PB_Window_SystemMenu | #PB_Window_SizeGadget)
    
    If CreateToolBar(0, WindowID(0))
        ToolBarImageButton(1, CreateImage(0,16,16), #PB_ToolBar_Toggle)
    EndIf
    
    Repeat
        Select WaitWindowEvent()
            Case #PB_Event_Menu        : If EventMenu() = 1 : ButtonState(1) : EndIf
            Case #PB_Event_CloseWindow : End
        EndSelect
    ForEver
EndIf
In der von Dir gezeigten Procedure waren aber die States 0 und 1 vertauscht.
cya,
...Danilo
"Ein Genie besteht zu 10% aus Inspiration und zu 90% aus Transpiration" - Max Planck
Simon74
Beiträge: 60
Registriert: 04.05.2014 10:05

Re: GetToolBarButtonState bei MacOSx verdreht ?

Beitrag von Simon74 »

Genau, und dieser von dir gepostete Code funktioniert so NUR auf dem MAC, unter Windows und Linux muss der State vertauscht werden ! Sollte das unter Bug geschrieben werden ?
Benutzeravatar
Danilo
-= Anfänger =-
Beiträge: 2284
Registriert: 29.08.2004 03:07

Re: GetToolBarButtonState bei MacOSx verdreht ?

Beitrag von Danilo »

Auf Mac OS X funktioniert der Code korrekt, dass heisst er wechselt den Status.
Auf Windows brauchst Du den Code nicht, da der Toggle-Button automatisch
den Status wechselt.

Dein Windows-Code sieht schon komischer aus, denn Du sagst:

Code: Alles auswählen

Wenn Status
    setze Status
Andernfalls
    Lösche Status
WennEnde
Es funktioniert auf jeden Fall auf Windows und Mac OS X unterschiedlich,
weil der Button auf Windows automatisch umschaltet, auf Mac OS X nicht.

EDIT:
Kleiner Workaround, dann ist es auf beiden OS gleich:

Code: Alles auswählen

Procedure ButtonState(ButtonID.i)
    CompilerIf #PB_Compiler_OS = #PB_OS_MacOS
        ; on Mac OS X we need to switch the state manually
        If GetToolBarButtonState(0, ButtonID.i)
            SetToolBarButtonState(0, ButtonID.i, 0)
        Else
            SetToolBarButtonState(0, ButtonID.i, 1)    
        EndIf
    CompilerEndIf
    Debug GetToolBarButtonState(0,ButtonID)
EndProcedure

If OpenWindow(0, 100, 200, 195, 260, "ToolBar example", #PB_Window_SystemMenu | #PB_Window_SizeGadget)
    
    If CreateToolBar(0, WindowID(0))
        ToolBarImageButton(1, CreateImage(0,16,16), #PB_ToolBar_Toggle)
    EndIf
    
    Repeat
        Select WaitWindowEvent()
            Case #PB_Event_Menu        : If EventMenu() = 1 : ButtonState(1) : EndIf
            Case #PB_Event_CloseWindow : End
        EndSelect
    ForEver
EndIf
Auf Mac OS X muss man den Status also selbst updaten. Auf Windows lässt man das einfach weg.
Könnte man ruhig mal als Bug melden.
cya,
...Danilo
"Ein Genie besteht zu 10% aus Inspiration und zu 90% aus Transpiration" - Max Planck
Simon74
Beiträge: 60
Registriert: 04.05.2014 10:05

Re: GetToolBarButtonState bei MacOSx verdreht ?

Beitrag von Simon74 »

Danilo hat geschrieben:Auf Mac OS X muss man den Status also selbst updaten. Auf Windows lässt man das einfach weg.
Könnte man ruhig mal als Bug melden.
Achso, erklärt einiges <)
Hm, selbes verhalten wäre schön.
Danke
Benutzeravatar
Danilo
-= Anfänger =-
Beiträge: 2284
Registriert: 29.08.2004 03:07

Re: GetToolBarButtonState bei MacOSx verdreht ?

Beitrag von Danilo »

Habe es mal gemeldet: ToolbarImageButton toggle state not updated automatically

EDIT: war schon gemeldet als 'Toolbar et toggle'
cya,
...Danilo
"Ein Genie besteht zu 10% aus Inspiration und zu 90% aus Transpiration" - Max Planck
Antworten