; Module/File: Editor_MinHeightPatch2_gtk3.pb ; Function: Allows lower min. height of EditorGadget, v2 - Linux gtk3 ; Author: Omi ; Date: Oct. 30, 2017 ; Version: 0.1 ; Target Compiler: PureBasic 5.22/5.31/5.4/5.5/5.6 ; Target OS: Linux: (X/K/L)ubuntu, Mint, 32/64, Ascii/Uni ;-------------------------------------------------------------- EnableExplicit ImportC "" gtk_css_provider_load_from_data(*css_provider, data_.p-utf8, length, *error.GError) gtk_css_provider_new() gtk_style_context_add_provider_for_screen(*screen.GdkScreen, *provider, priority) gtk_scrolled_window_set_min_content_height(*scrolled_window.GtkScrolledWindow, height) EndImport #GTK_STYLE_PROVIDER_PRIORITY_APPLICATION = 600 ; Object constants #Win_Main = 0 #Edt1 = 0 #Edt2 = 1 #ScrolledWindowChildMinHeight= 20 #ScrollBarSliderMinLength = 15 Global.i gEvent, gQuit Global.s S1= "This is a multiline text in the EditorGadget which demonstrates the minimal EditorGadget height on gtk3 on your current system." Global.s S2= "This is a multiline text in the EditorGadget which demonstrates under gtk3 how the minimal EditorGadget height can be patched - here to 40px." Procedure ScrollBar_SetSliderMinLength(MinLength.l) Protected *provider = gtk_css_provider_new() Protected *screen.GdkScreen= gdk_display_get_default_screen_(gdk_display_get_default_()) Protected.s Css Css= "GtkScrollbar {" + #LF$ + "-GtkScrollbar-min-slider-length: "+ Str(MinLength) +"px;" + #LF$ + "}" gtk_css_provider_load_from_data(*provider, Css, -1, 0) gtk_style_context_add_provider_for_screen(*screen, *provider, #GTK_STYLE_PROVIDER_PRIORITY_APPLICATION) g_object_unref_(*provider) EndProcedure Procedure ScrolledWindow_SetMinHeight(Gadget, Height) Protected *ScrolledWindow.GtkScrolledWindow= gtk_widget_get_parent_(GadgetID(Gadget)) gtk_scrolled_window_set_min_content_height(*ScrolledWindow, Height) EndProcedure If OpenWindow(#Win_Main, 0, 0, 600, 200, "Editor - reduce min height on gtk3", #PB_Window_SystemMenu | #PB_Window_ScreenCentered) ; ScrollBar_SetSliderMinLength(#ScrollBarSliderMinLength); activate for even lower heights EditorGadget (#Edt1, 5, 5, 290, 40, #PB_Editor_WordWrap) AddGadgetItem(#Edt1, -1, S1) EditorGadget (#Edt2, 305, 5, 290, 22, #PB_Editor_WordWrap) AddGadgetItem(#Edt2, -1, S2) ScrolledWindow_SetMinHeight(#Edt2, #ScrolledWindowChildMinHeight) Repeat gEvent= WaitWindowEvent() Select gEvent Case #PB_Event_CloseWindow gQuit= #True EndSelect Until gQuit EndIf ; IDE Options = PureBasic 5.46 LTS (Linux - x86) ; CursorPosition = 55 ; Folding = - ; EnableUnicode ; EnableXP