Stringgadget #PB_Text_Right anwenden
Verfasst: 30.01.2017 18:01
Kann ich in einem Stringgadget den Text rechtsbündig anzeigen lassen wie bei einem Textgadget? (#PB_Text_Right)
Das deutsche PureBasic-Forum
https://www.purebasic.fr/german/
Code: Alles auswählen
EnableExplicit
If OpenWindow(0, 0, 0, 500, 400, "Window", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
StringGadget(1, 10, 10, 480, 20, "Hallo stevie1401", #ES_RIGHT)
Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow
End
EndSelect
ForEver
EndIfCode: Alles auswählen
EnableExplicit
ImportC ""
gtk_entry_set_alignment(*entry.GtkEntry, xalign.f)
EndImport
If OpenWindow(0, 0, 0, 500, 400, "Window", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
StringGadget(1, 10, 10, 480, 20, "Hallo stevie1401")
gtk_entry_set_alignment(GadgetID(1), 1.0)
Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow
End
EndSelect
ForEver
EndIf Code: Alles auswählen
#NSRightTextAlignment = 1
CompilerIf #PB_Compiler_OS = #PB_OS_Linux
ImportC ""
gtk_entry_set_alignment(*entry.GtkEntry, xalign.f)
EndImport
CompilerEndIf
Procedure RStringGadget(Gadget, x, y, Width, Height, Content$, Flags = 0)
Protected ID = #False
CompilerSelect #PB_Compiler_OS
CompilerCase #PB_OS_Windows
ID = StringGadget(Gadget, x, y, Width, Height, Content$, Flags|#ES_RIGHT)
CompilerCase #PB_OS_Linux
ID = StringGadget(Gadget, x, y, Width, Height, Content$, Flags)
If Gadget = #PB_Any : Gadget = ID : EndIf
gtk_entry_set_alignment(GadgetID(Gadget), 1.0)
CompilerCase #PB_OS_MacOS
ID = StringGadget(Gadget, x, y, Width, Height, Content$, Flags)
If Gadget = #PB_Any : Gadget = ID : EndIf
CocoaMessage(0,GadgetID(Gadget),"setAlignment:", #NSRightTextAlignment)
CompilerEndSelect
ProcedureReturn ID
EndProcedureIst ein alter Hut... Das hatte ich als Multiplattform-Lösung schon 2013 gezeigt...Bisonte hat geschrieben:Und nu nochmal für alle
Gerade unter Linux Mint (18.1) x64, läuft einwandfrei mit GTK2 oder GTK3. Auch alle anderen Distris scheinen zu funzen, fehler liegt also bei Dir!stevie1401 hat geschrieben:Unter Linux (Ubuntu (Mint)) bekomme ich allerdings eine Fehlermeldung und es funktoniert nicht: [09:26:29] [WARNING] Gtk (CRITICAL): gtk_entry_set_alignment: assertion 'GTK_IS_ENTRY (entry)' failed
HeyShardik hat geschrieben:Wer Multiplattform API-Lösungen sucht, sollte immer zuerst einmal hier schauen.
