Gtk+;:如何绘制自定义窗口边框,如镀铬或蒸汽

Gtk+;:如何绘制自定义窗口边框,如镀铬或蒸汽,gtk,gtk3,cairo,Gtk,Gtk3,Cairo,我想知道是否有可能在Gtk中使用Cairo绘制(ie设计)窗框,这样Cairo API就可以用来装饰表面,比如添加渐变 我如何淡化GTK装饰,并用类似Cairo的东西重新设计它们?你必须写一篇文章。使用GTK和Cairo绘制窗口装饰的窗口管理器(现已过时)的一个示例是。通常Linux上的窗口装饰(边框、标题栏、关闭和最小化按钮等)由窗口管理器绘制,这有助于在不同窗口之间保持相似的外观和行为 然而,应用程序可能会向窗口管理器发出信号,表示它希望禁用窗口管理器提供的装饰,并绘制自己的装饰。在Gtk+

我想知道是否有可能在Gtk中使用Cairo绘制(ie设计)窗框,这样Cairo API就可以用来装饰表面,比如添加渐变


我如何淡化GTK装饰,并用类似Cairo的东西重新设计它们?

你必须写一篇文章。使用GTK和Cairo绘制窗口装饰的窗口管理器(现已过时)的一个示例是。

通常Linux上的窗口装饰(边框、标题栏、关闭和最小化按钮等)由窗口管理器绘制,这有助于在不同窗口之间保持相似的外观和行为


然而,应用程序可能会向窗口管理器发出信号,表示它希望禁用窗口管理器提供的装饰,并绘制自己的装饰。在Gtk+中,这可以通过调用
GtkWindow
,然后使用Cairo绘制自己的边界来实现。

那么,Steam和Chromium等公司如何在不完全编写全新DE的情况下实现这一点呢?WMs被Wayland compositors IIRC所取代……Mutter已经接近了,但我看不出mutter wondow-wise.Chromium和Steam中的设计在哪里:他们给窗口管理器一个提示,让其尽可能少地绘制装饰,并假定自己使用自己的图形例程来绘制,而不是使用现有的工具包。不过,这对每个应用程序都有效,这与按照您的要求制作GTK的自定义版本不同。感谢您编辑此问题,您要做的事情更加清晰!你不喜欢问问题。提出正确的问题是工作的一半。也就是说,编写一个库来完成那些应用程序所做的工作。。。正在重新编写一个像GTK这样的UI工具包,但做出了不同的假设。真棒,@el.pescado。谢谢