GDM-2.20.1与GDM-2.27.1登录主题切换怎么实现的?

通过观察GDM-2.20.1的代码我们可以发现,登录主题主要是通过GDM-2.20.1.src/gui/greeter/greeter.c类来实现。

简单来说其中的调用流程就是:main()->get_theme_file().

通过来获得对应主题的.desktop和.xml文件,以此来实现登录主题的加载。

这样,用户除了可以直接使用gdmsetup中系统提供的主题,还可以通过修改GdmGreeterTheme.desktop对应xxtheme.xml和图片文件等发方法来实现自己定制主题。

有趣的是,GDM-2.20之后到GDM-2.27之间这段版本里,并不提供主题的手动定制。主要是因为其代码被完全重写了,代码都包含#include <glib.h>,使之完全基于glib库。

遗憾的是GDM-2.27也不提供这个功能,在dm-2.27.4/gui/simple-greeter/greeter-main.c代码中可以看到:

greeter-main.c

main()

->调用

gdm-greeter-session.c

gdm_greeter_session_start()

->调用

toggle_login_window() // 窗口调用触发器

  session->priv->login_window = gdm_greeter_login_window_new (is_local);
->调用

gdm-greeter-login-window.c

#define GLADE_XML_FILE       "gdm-greeter-login-window.glade" // 定义主题布局

gdm_greeter_login_window_class_init()

-> 调用

gdm_greeter_login_window_constructor()

-> 调用

load_theme (GdmGreeterLoginWindow *login_window) //  加载主题元素

以上代码可以看出GDM-2.27主题加载方式是读.glade文件。手动主题只能改这个文件来实现。

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值