awtk/docs/system_bar.md
2018-12-04 14:52:05 +08:00

2.9 KiB
Raw Blame History

system_bar 使用方法

system_bar是一个位于屏幕上方的窗口通常用来显示当前窗口的标题、时间、电池电量、网络信号和关闭当前窗口的按钮等。

system_bar是可选的可以启用也可以不启用。如果要启用system_bar可以按下列方法

一、创建system_bar窗口

system_bar和普通窗口类似你可以用代码创建也可以用XML UI描述文件创建比如下面是demoui中的system_bar的XML UI描述文件(system_bar.xml)

<system_bar h="30">
  <column x="0" y="0" w="-40" h="100%">
    <label style="title" x="10" y="m" w="55%" h="100%" name="title"/>
    <digit_clock style="time" x="r" y="m" w="40%" h="100%" format="h:m"/>
  </column>
  <button style="close" x="r:5" y="m" w="26" h="26" name="close" text="x"/>
</system_bar>

在system_bar窗口中有两个控件比较特殊(均为可选)

  • 1.名为title的label控件。它自动显示当前主窗口的标题或名称。

窗口的标题可以用窗口的text属性指定。

  • 2.名为close的button控件。点击它时它向当前主窗口放送EVT_REQUEST_CLOSE_WINDOW事件。

缺省情况下窗口收到EVT_REQUEST_CLOSE_WINDOW事件时窗口会被关闭。

如果窗口不想接受EVT_REQUEST_CLOSE_WINDOW事件可以设置窗口的closable属性为"no"此时close按钮自动禁用。如

<window closable="no" anim_hint="htranslate">

如果窗口希望收到EVT_REQUEST_CLOSE_WINDOW事件时由用户决定是否关闭当前。可以设置窗口的closable属性为"confirm"同时处理EVT_REQUEST_CLOSE_WINDOW事件根据当前的情况决定是否关闭窗口。

二、打开窗口

如果要启用system_bar窗口必须在打开应用程序的窗口之前打开system_bar窗口。

可以在资源加载窗口之后打开system_bar窗口但是资源加载窗口顶部区域需要留白。

window_open("system_bar");

三、style

system_bar的style和其它窗口一样可以在styles目录下放一个与窗口同名的style文件(system_bar.xml)。比如下面是demoui中的system_bar的style(system_bar.xml)

<system_bar>
  <style name="default">
    <normal bg_color="#404040"/>
  </style>
</system_bar>

<label>
  <style name="title" text_align_h="left">
    <normal text_color="white" />
  </style>
</label>

<digit_clock>
  <style name="time">
    <normal text_color="white" />
  </style>
</digit_clock>

<button>
  <style name="close" icon="earth">
    <normal     icon="close_n"/>
    <pressed    icon="close_p"/>
    <over       icon="close_n"/>
    <disable    icon="close_d"/>
  </style>
</button>

如果整个屏幕用一张大的背景图可以把背景图片设置到窗口管理器上这样就不需要为system_bar和应用窗口分别指定背景图片了。如

<window_manager>
  <style name="default">
    <normal bg_image="bg800x480"/>
  </style>
</window_manager>