Code: Select all
CompilerIf #PB_Compiler_OS = #PB_OS_Linux
ImportC ""
gtk_entry_set_placeholder_text(*entry, text.p-utf8)
gtk_entry_get_placeholder_text(*entry)
EndImport
CompilerEndIf
Procedure SetGadgetPlaceholder(Gadget.i, Text.s)
CompilerIf #PB_Compiler_OS = #PB_OS_Windows
SendMessage_(GadgetID(Gadget), #EM_SETCUEBANNER, #True, Text)
CompilerElseIf #PB_Compiler_OS = #PB_OS_Linux
gtk_entry_set_placeholder_text(GadgetID(Gadget), Text)
CompilerElseIf #PB_Compiler_OS = #PB_OS_MacOS
CocoaMessage(0, CocoaMessage(0, GadgetID(Gadget), "cell"), "setPlaceholderString:$", @Text)
CompilerEndIf
ProcedureReturn
EndProcedure
Procedure.s GetGadgetPlaceholder(Gadget.i)
Protected.s Text = Space(1024)
CompilerIf #PB_Compiler_OS = #PB_OS_Windows
SendMessage_(GadgetID(Gadget), #EM_GETCUEBANNER, @Text, StringByteLength(Text))
CompilerElseIf #PB_Compiler_OS = #PB_OS_Linux
Text = PeekS(gtk_entry_get_placeholder_text(GadgetID(Gadget)), -1, #PB_UTF8)
CompilerElseIf #PB_Compiler_OS = #PB_OS_MacOS
Text = PeekS(CocoaMessage(0, CocoaMessage(0, CocoaMessage(0, GadgetID(Gadget), "cell"), "placeholderString"), "UTF8String"), -1, #PB_UTF8)
CompilerEndIf
ProcedureReturn Text
EndProcedure
If OpenWindow(0, 0, 0, 220, 50, "Placeholder example...", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
StringGadget(1, 10, 10, 200, 20, "")
SetGadgetPlaceholder(1, "Your Placeholder")
Debug GetGadgetPlaceholder(1)
Repeat : Event = WaitWindowEvent(1) : Until Event = #PB_Event_CloseWindow
EndIf