Code: Select all
;Windows Bug ?
;Under Windows, it no longer works with font sizes: (1 2 4 5 6 7 11 12 13 18 .....)
;For whatever reason ?
;Font-URL: https://www.fontyukle.net/en/DFPOP1-W12.ttf
;It could be tested on Mac.
;(Please adjust)
;(I do not have a Mac)
Global Test_FontSize.i = 18
OpenWindow(0,200,200,400,140,"test",#PB_Window_SystemMenu)
;StringGadget(1,10,10,380,50,"")
EditorGadget(1,10,10,380,50)
SetGadgetText(1,"This is underlined")
;StringGadget(2,10,70,380,50,"")
EditorGadget(2,10,70,380,50)
CompilerIf #PB_Compiler_OS = #PB_OS_Linux
SetGadgetText(2,"And that is also underlined (under Linux)")
CompilerElseIf #PB_Compiler_OS = #PB_OS_Windows
If FindString("1 2 4 5 6 7", Str(Test_FontSize)) Or Test_FontSize = 11 Or Test_FontSize = 12 Or Test_FontSize = 13 Or Test_FontSize = 18 ;......
SetGadgetText(2,"But this isn't. Why?")
Else
SetGadgetText(2,"And that is also underlined (under Windows)")
EndIf
CompilerEndIf
SetGadgetFont(1,LoadFont(1,"DFPOP1-W12",17,#PB_Font_Underline))
SetGadgetFont(2,LoadFont(2,"DFPOP1-W12",Test_FontSize,#PB_Font_Underline))
CompilerIf #PB_Compiler_OS = #PB_OS_Linux
CompilerIf Subsystem("qt")
QtScript(~"gadget(1).styleSheet = \"text-decoration: underline\" ")
QtScript(~"gadget(2).styleSheet = \"text-decoration: underline\" ")
CompilerElse
Enumeration
#PANGO_UNDERLINE_NONE
#PANGO_UNDERLINE_SINGLE
#PANGO_UNDERLINE_DOUBLE
#PANGO_UNDERLINE_LOW
#PANGO_UNDERLINE_ERROR
EndEnumeration
ImportC ""
gtk_entry_set_attributes(*entry, *attrList)
pango_attr_underline_new(underline.l)
pango_attr_list_insert(*attrList, *attr.PangoAttribute)
pango_attr_list_new()
EndImport
If PeekS(gtk_widget_get_name_(GadgetID(1)), -1, #PB_UTF8) = "GtkEntry"
;StringGadget 1
*attrList = pango_attr_list_new()
*underline.PangoAttribute = pango_attr_underline_new(#PANGO_UNDERLINE_SINGLE)
pango_attr_list_insert(*attrList, *underline)
gtk_entry_set_attributes(GadgetID(1), *attrList)
EndIf
If PeekS(gtk_widget_get_name_(GadgetID(2)), -1, #PB_UTF8) = "GtkEntry"
;StringGadget 2
*attrList = pango_attr_list_new()
*underline.PangoAttribute = pango_attr_underline_new(#PANGO_UNDERLINE_SINGLE)
pango_attr_list_insert(*attrList, *underline)
gtk_entry_set_attributes(GadgetID(2), *attrList)
EndIf
If PeekS(gtk_widget_get_name_(GadgetID(1)), -1, #PB_UTF8) = "GtkTextView" Or PeekS(gtk_widget_get_name_(GadgetID(2)), -1, #PB_UTF8) = "GtkTextView"
Define.GtkWidget *gTextView1, *gTextView2
Define.GtkTextBuffer *gBuffer1, *gBuffer2
Define.GtkTextIter s_iter, e_iter
*gTextView1 = GadgetID(1) : *gTextView2 = GadgetID(2)
*gBuffer1 = gtk_text_view_get_buffer_(*gTextView1) : *gBuffer2 = gtk_text_view_get_buffer_(*gTextView2)
gtk_text_buffer_create_tag_(*gBuffer1, "underline", "underline", #PANGO_UNDERLINE_SINGLE)
gtk_text_buffer_create_tag_(*gBuffer2, "underline", "underline", #PANGO_UNDERLINE_SINGLE)
gtk_text_buffer_get_bounds_(*gBuffer1, @s_iter, @e_iter)
gtk_text_buffer_apply_tag_by_name_(*gBuffer1, "underline", @s_iter, @e_iter)
gtk_text_buffer_get_bounds_(*gBuffer2, @s_iter, @e_iter)
gtk_text_buffer_apply_tag_by_name_(*gBuffer2, "underline", @s_iter, @e_iter)
EndIf
CompilerEndIf
CompilerEndIf
Repeat : Until WaitWindowEvent()=#PB_Event_CloseWindow