Discuz! Board

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 2158|回复: 1

对nsITreeView.idl 接口文件修改的影响

[复制链接]

388

主题

602

帖子

2218

积分

金牌会员

Rank: 6Rank: 6

积分
2218
发表于 2015-8-5 09:53:12 | 显示全部楼层 |阅读模式
本帖最后由 hechengjin 于 2015-8-5 10:15 编辑
  1. 手动增加
  2. \nsITreeView.idl
  3. interface nsITreeView : nsISupports
  4. {
  5.   long getRowFlags(in long rowIndex);
  6. }
  7. 动态生成
  8. nsITreeView.h
  9.   /* long getRowFlags (in long rowIndex); /
  10.   NS_IMETHOD GetRowFlags(int32_t rowIndex, int32_t *_retval) = 0;
  11.   NS_IMETHOD GetRowFlags(int32_t rowIndex, int32_t *_retval); \
  12.   NS_IMETHOD GetRowFlags(int32_t rowIndex, int32_t *_retval) { return _to GetRowFlags(rowIndex, retval); } \
  13.   NS_IMETHOD GetRowFlags(int32_t rowIndex, int32_t *_retval) { return !to ? NS_ERRORNULLPOINTER : _to→GetRowFlags(rowIndex, _retval); } \
  14. / long getRowFlags (in long rowIndex); */
  15. NS_IMETHODIMP nsTreeView::GetRowFlags(int32_t rowIndex, int32_t *_retval)
  16. {
  17.     return NS_ERROR_NOT_IMPLEMENTED;
  18. }


  19. 根据上面动态生成的内容可以手动在下面相关文件中加入对应的函数实现,注意区分大小写
  20. nsMsgDBView.cpp
  21. NS_IMETHODIMP nsMsgDBView::GetRowFlags(int32_t rowIndex, int32_t *_retval)
  22. {
  23.   *_retval = 0;
  24.   return NS_OK;
  25. }

  26. E:\svn\mailtree\mozilla\layout\xul\base\src\tree\src\nsTreeContentView.cpp
  27. NS_IMETHODIMP nsTreeContentView::GetRowFlags(int32_t rowIndex, int32_t *_retval)
  28. {
  29.         *_retval = 0;
  30.         return NS_OK;
  31. }


  32. E:\svn\mailtree\mozilla\content\xul\templates\src\nsXULTreeBuilder.cpp
  33. NS_IMETHODIMP nsXULTreeBuilder::GetRowFlags(int32_t rowIndex, int32_t *_retval)
  34. {
  35.         *_retval = 0;
  36.         return NS_OK;
  37. }


  38. E:\svn\mailtree\mozilla\layout\inspector\src\inDOMView.cpp
  39. NS_IMETHODIMP inDOMView::GetRowFlags(int32_t rowIndex, int32_t *_retval)
  40. {
  41.         *_retval = 0;
  42.         return NS_OK;
  43. }
  44. E:\svn\mailtree\mozilla\security\manager\ssl\src\nsCertTree.cpp
  45. NS_IMETHODIMP nsCertTree::GetRowFlags(int32_t rowIndex, int32_t *_retval)
  46. {
  47.         *_retval = 0;
  48.         return NS_OK;
  49. }
  50. E:\svn\mailtree\mozilla\security\manager\pki\src\nsASN1Tree.cpp
  51. NS_IMETHODIMP nsNSSASN1Tree::GetRowFlags(int32_t rowIndex, int32_t *_retval)
  52. {
  53.         *_retval = 0;
  54.         return NS_OK;
  55. }
  56. E:\svn\mailtree\mailnews\addrbook\src\nsAbView.cpp
  57. NS_IMETHODIMP nsAbView::GetRowFlags(int32_t rowIndex, int32_t *_retval)
  58. {
  59.         *_retval = 0;
  60.         return NS_OK;
  61. }
  62. E:\svn\mailtree\mailnews\news\src\nsNntpIncomingServer.cpp
  63. nsNntpIncomingServer::GetLevel(int32_t index, int32_t *_retval)
  64. {
  65.     *_retval = 0;
  66.     return NS_OK;
  67. }
  68. E:\svn\mailtree\mozilla\toolkit\components\autocomplete\nsAutoCompleteController.cpp
  69. NS_IMETHODIMP nsAutoCompleteController::GetRowFlags(int32_t rowIndex, int32_t *_retval)
  70. {
  71.         *_retval = 0;
  72.         return NS_OK;
  73. }
复制代码
//下面这个看情况是否要加入
nsMsgGroupView.cpp
NS_IMETHODIMP nsMsgGroupView::GetRowFlags(int32_t rowIndex, int32_t *_retval)
{
        NS_ENSURE_ARG(aResult);
        if (!IsValidIndex(aIndex))
                return NS_MSG_INVALID_DBVIEW_INDEX;


*aResult = m_flags[aIndex];
        return NS_OK;
}
nsMsgGroupView.h
NS_IMETHOD GetRowFlags(int32_t rowIndex, int32_t *_retval);


回复

使用道具 举报

388

主题

602

帖子

2218

积分

金牌会员

Rank: 6Rank: 6

积分
2218
 楼主| 发表于 2015-8-5 18:59:43 | 显示全部楼层
还要在  folderPane.js
左侧树邮件夹中实现对应接口

  1. /**
  2. * This is our controller for the folder-tree. It includes our nsITreeView
  3. * implementation, as well as other control functions.
  4. */
  5. let gFolderTreeView = {
  6. ...
  7. // ****************** Start of nsITreeView implementation **************** //
  8. ...
  9. isShowMoreLeftOnServer: function ftv_isShowMoreLeftOnServer(aIndex) {
  10.     return false;
  11.   },
  12.   ifShowMoreLeftOnServerRow: function ftv_ifShowMoreLeftOnServerRow(aIndex) {
  13.     return false;
  14.   },

  15.   getMsgNumLeftOnServer: function ftv_getMsgNumLeftOnServer(aRow) {
  16.     return "";
  17.   },
复制代码
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|firemail ( 粤ICP备15085507号-1 )

GMT+8, 2024-3-29 01:09 , Processed in 0.060727 second(s), 19 queries .

Powered by Discuz! X3

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表