@electricface
2016-07-19T17:27:04.000000Z
字数 1898
阅读 1867
工作
Dest: com.deepin.dde.daemon.Dock
ObjPath: /com/deepin/dde/daemon/Dock
com.deepin.dde.daemon.Dock
window 操作相关
dock app 相关,主要给 launcher 调用
驻留程序
RequestDock(String desktopFile, Int32 index) -> (Boolean)
如果 index 传入 -1,则表示新驻留的entry追加到末尾
取消驻留程序
RequestUndock(String desktopFile) -> (Boolean)
判断程序是否已经驻留
IsDocked(String desktopFile) ->(Boolean)
判断desktop是否已经在dock上出现了
IsOnDock(String desktopFile) -> (Boolean)
移动项目,拖动项目改变位置时调用
MoveEntry(Int32 index, Int32 newIndex)
设置前端窗口矩形
SetFrontendWindowRect(Int32 x, Int32 y,UInt32 width, UInt32 height) -> ()
项目的 objPath,不需要监视这个属性改变
Array of [objPath] Entries Read
驻留程序列表
Array of [String] DockedApps Read
显示模式
Int32 DisplayMode Read/Write
隐藏模式
Int32 HideMode Read/Write
位置
Int32 Postion Read/Write
图标尺寸
UInt32 IconSize Read/Write
隐藏状态,控制前端的显示隐藏
Int32 HideState Read
增加一个项目
EntryAdded(ObjPath entryObjPath, Int32 index)
减少一个项目
EntryRemoved(String entryId)
服务重启
ServiceRestarted()
为每一个entry创建一个 objPath
ObjPath: /com/deepin/dde/daemon/Dock/entries/e0Txxxxxxx
后面这个 e0Txxxxxxx 就是 entryId
com.deepin.dde.daemon.Dock.Entry
点击项目时调用它
Activate(UInt32 timestamp) -> ()
接受拖拽文件时调用它
HandleDragDrop(UInt32 timestamp, Array of [String] files) -> ()
右键菜单项目被点击时调用
HandleMenuItem(UInt32 timestamp, String menuItemId) -> ()
驻留,暂时无用
RequestDock() -> ()
取消驻留,将图标从dock上拖走时调用
RequestUndock() -> ()
Entry Id 保证不改变
String Id Read
是否为活跃状态,表示活跃窗口是否在这个entry中
Boolean IsActive Read
是否已经驻留
Boolean IsDocked Read
应用名
String Name Read
当前窗口
UInt32 CurrentWindow Read
图标
String Icon Read
菜单,JSON 编码
String Menu Read
窗口标题,键为windowId,值为窗口标题
Dict of {UInt32, String} WindowTitles Read
暂无
Fashion 0 时尚
Efficient 1 高效
Classic 2 经典,即将废弃
KeepShowing 0 一直显示
KeepHidden 1 一直隐藏
SmartHide 3 智能隐藏
Top 0 顶部
Right 1 右侧
Bottom 2 底部,默认值
Left 3 左侧
Unknown 未知状态 0,如果是这个值前端不要有动作
Show 显示 1
Hide 隐藏 2
后端:启动完成后,发送 ServiceRestarted 信号
前端:需要前端监听 ServiceRestarted 信号,如果收到,需要刷新下 Entries 属性,就能保证前后端功能正常。