在moblin上创建一个NBTK的小例子:Hello Moblin

75 篇文章 8 订阅
58 篇文章 3 订阅

  moblin是基于clutter的UI,而提供的NBTK将协助建议buttons,tooltips,scrollbars等UI,并支持CSS的堆叠风格表格。在非moblin的linux操作系统上安装nbtk有些麻烦,我们需要对configure作一些修订,例如clutter如果不是使用rpm的方式安装,而是采用source编译,在确保已经安装的前提下,我们在NBTK REQUIREMENT将所需的CLUTTER的rpm软件包给注释掉,同样我们处理css(可以在repo.moblin.org中下载)。如果有moblin的操作系统就非常方便,只要yum就OK。

  我想了解一些NBTK所能提供的功能,看看是否对clutter开发有帮助。今天更新了netbook的版本之2.1 final,比原来的版本有很多改进,至少叫做能用了,改善了原来在UI/UX上很多不方便,例如firefox中的copy功能欠缺,不能对字体/图片的缩放等等,感觉上好了很多。在moblin社区上有个Hello Moblin的例子,援用之,上面使用了辅助工具,还要安装这,安装那,比较麻烦(其实是自己懒)。下面是我的处理过程。

一、在用户目录下创建例子目录hello-1.0.0,在里面有下面的文件

文件1 :配置文件configure,设置为可执行模式,如下:

[wei@wei-desktop hello-1.0.0]$ cat configure
echo "Hello, This is configure file."

文件2 :源代码文件hello.c,如下:

#include <nbtk/nbtk.h>

int main (int argc , char * argv[])
{
    ClutterActor * stage;
    NbtkWidget * button;

    clutter_init(&argc, & argv);
    stage = clutter_stage_get_default();
    button = nbtk_button_new_with_label("Hello Moblin!");
    clutter_container_add_actor(CLUTTER_CONTAINER(stage),CLUTTER_ACTOR(button));
    clutter_actor_show(stage);

    clutter_main();
    return 0;
}

文件3 :desktop文件,desktop文件的说明可参考:http://www.ibm.com/developerworks/cn/linux/l-cn-dtef/

[Desktop Entry]
Version=1.0.0
Encoding=UTF-8
Name=NBTK Hello Testing
Name[zh_CN]=NBTK的测试小程序
Comment=NBTK Hello little program for testing
Comment[zh_CN]=NBTK的测试小程序Hello world!
Exec=hello
Icon=/usr/local/share/icon/hello.png
Terminal=false
Type=Application
StartupNotify=true
Categories=Applications;Office;

文件4 :图标文件hello.png

文件5 :Makefile文件,可参考kernel编译和RPM打包 ,如下

CC = gcc
CFLAGS += -Wall -g `pkg-config clutter-1.0 nbtk-1.2 --cflags`
INCLUDE =
LIBS += -Wall -g `pkg-config clutter-1.0 nbtk-1.2 --libs`

OBJECTS = hello.o
TARGET = hello
DESTDIR =

all: $(TARGET)

hello.o:
    $(CC) $(CFLAGS) -c hello.c

$(TARGET):$(OBJECTS)
    $(CC) $(LIBS) -o hello $(OBJECTS)

install:
    cp $(TARGET) $(DESTDIR)/usr/local/bin/$(TARGET)
    cp $(TARGET).desktop $(DESTDIR)/usr/local/share/applications/$(TARGET).desktop
    cp $(TARGET).png $(DESTDIR)/usr/local/share/icon/$(TARGET).png   

rm: clean

clean:
    rm -f *.o
    rm $(TARGET) $(DESTDIR)/usr/local/bin/$(TARGET)
    rm $(DESTDIR)/usr/local/share/applications/$(TARGET).desktop
    rm $(DESTDIR)/usr/local/share/icon/$(TARGET).png

二、封装为RPM包

  将hello-1.0.0文件夹压缩打包为hello-1.0.0.tar.gz并放置于~/rpmbuild/SOURCES中,我们在~/rpmbuild/SPECS中创建文件hello.spec,可参考kernel编译和RPM打包http://hlee.javaeye.com/blog/343499 如下:

Name: hello       
Version: 1.0.0   
Release:    1
Summary: NBTK hello testing   

Group: Development/Tools
License: GPL
#URL:       
Source0: hello-1.0.0.tar.gz
   
BuildRoot:    %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)
BuildRequires: clutter-devel >= 1.0 nbtk-devel >= 1.1.13
Requires: clutter >= 1.0 nbtk >= 1.1.13

%description
The NBTK hello little program is used to test how to build an application in moblin, just for study.

%prep
%setup -q

%build
%configure
#make %{?_smp_mflags}
make

%install
rm -rf $RPM_BUILD_ROOT
install -d $RPM_BUILD_ROOT/usr/local/bin
install -d $RPM_BUILD_ROOT/usr/local/share/applications
install -d $RPM_BUILD_ROOT/usr/local/share/icon
make install DESTDIR=$RPM_BUILD_ROOT

%clean
rm -rf $RPM_BUILD_ROOT

%files
%defattr(-,root,root,-)
/usr/local/bin/hello
/usr/local/share/applications/hello.desktop
/usr/local/share/icon/hello.png
#%doc

%changelog

  之后运行rpmbuild -ba hello.spec ,如果命令无效,安装rpmbuild,yum install rpm-build。

三、安装hello

  在~/rpmbuild/RPMS/i386中找到两个rmp包,分别是:hello-1.0.0-1.i386.rpm和hello-debuginfo-1.0.0-1.i386.rpm,我们安装hello rpm,sudo rpm -ivh hello-1.0.0-1.i386.rpm ,之后我们在moblin的应用程序中看到相关图标,我们可以按下图钉,在首页myzone那里出现快捷键。

 

 

 

相关链接:
我的Clutter相关博客
我的moblin相关文章

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值