第一个Limo程序:主题选择器----themeselector.ipk

来源:互联网 发布:林姗姗sunny淘宝店 编辑:程序博客网 时间:2024/05/20 01:09

 

其实主题选择器是第三个完成的程序,只不过前两个不怎么成功,所以直接忽略

 

这个主题选择器算是比较成功了,连老外都在用http://www.freelimo.tk/viewtopic.php?f=2&t=54(哈,自卖自夸了)

 

毕竟手机离不开主题嘛

 

不吹了,这里就借这个程序简单讲一下limo gtk的实现及主题切换的原理

 

其实在前面那个范例中就可以看出来了,首先要初始化一个mianwindow,再加入一个form:


 

 

然后给这个form添加一个自定义的widget:

 

这个view是通过get_icon_view()初始化:

可以看出这个view其实是一个包好一个icon_list的滚动窗口scrolled_window

 

icon_list是一个gtk_icon_view,而模型modelstore,通过create_store()初始化,并通过fill_store (store)添加数据:

 

其中staticgint sort_func (GtkTreeModel *model,GtkTreeIter  *a,GtkTreeIter *b,gpointer user_data)指定了list排列的方式

 

通过以上语句,就在这个form里面添加了一个带滚动条、以图标显示、按首字母排列的文件列表

 

接下来再回头看看get_icon_view()中的一句

g_signal_connect(icon_list, "clicked",G_CALLBACK (item_activated), store);

这里给icon_list注册了一个clicked事件,回调函数是item_activated,既指定了点击文件图标时候要进行的动作:

 

看到这里各位童鞋知道改变主题的秘密了吧,就是封装了一个mount命令,哈哈

 

主题文件选好了,怎么提交变更,说白了就是怎么运行这个mount命令呢?

先别急,在form里面添加几个button先:

 

返回按钮:进入了错误的目录怎么返回上一层呢,来看这个button的回调iconview_softkey_cb_back

 

选中按钮,来看这个button的回调iconview_softkey_cb_back,以及回调之后的弹出提示框:

为了在程序中使用命令行调用系统命令,还要#include<stdlib.h>

 

最后就是退出按钮的回调kill_app

 

 

好了,主题选择器完成了,赶快编译试试吧。:)

 

第一次写这种文章,写的不好,感觉有点罗嗦却好像又没说清楚,哈哈!