duiLib : 修改DuiDesigner, 增强选择元素后的用户体验

最近,经常用DuiDesigner来画xml.

当xml元素较多, 在左边的控件视图超过一屏时,点击右边的文件视图时,经常不能确定该选中的元素在控件视图的位置.

眼睛都看花了,还是找不到该元素在控件视图的位置~

画xml时,通常都是按照设计图,将元素摆好。然后将对应元素或父节点改名, 这时,要确定改名的元素是否为要改的元素名称。


这时,必须要确定该元素在控件视图中的位置. 每当这时,都感到很蛋疼, 找不到控件视图中被选中的元素节点位置~.

e.g. xml控件元素和父节点元素叠在一起,必须在控件视图中选中后,确定是要改的元素节点才能改名.

e.g. 一个Label和一个Button同样大小,叠在一起.


今天正好想起这件事,跟进 DuiDesigner, 改了一个函数,搞定~

void CClassView::SelectUITreeItem(CControlUI* pControl)
{
    HTREEITEM hItemCur = NULL;
    HTREEITEM hItemPrev = NULL; ///< 上一个被选中的Item

    if(pControl==NULL)
    {
        return;
    }

    if (pControl->GetTag() > 0)
    {
        hItemPrev = m_wndClassView.GetSelectedItem();
        if (NULL != hItemPrev)
        {
            /// 清掉上一次选择的Item为不选择状态状态
            m_wndClassView.SetItemState(hItemPrev, 0, TVIS_BOLD | TVIS_SELECTED);
        }

        hItemCur = (HTREEITEM)(((ExtendedAttributes*)pControl->GetTag())->hItem);
        if (NULL != hItemCur)
        {
            /// 设置这次选中的Item为突出显示
            m_wndClassView.SelectItem(hItemCur);
            m_wndClassView.SetItemState(hItemCur,TVIS_BOLD | TVIS_SELECTED,TVIS_BOLD | TVIS_SELECTED);
        }
    }
}

效果 :

  每点击右边文件视图时,左边的控件视图,就突出显示元素的节点位置.

  当屏幕元素超过一屏时,左边的控件视图,直接滚动到目标元素(这是原始工程的效果),只是因为没有突出显示Item, 所以看不太出来.

  当xml文件较大(元素较多,包含关系比较复杂)时,这次修改的效果,就更明显。

效果图:


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值