Exemple #1
0
void NMenuCtrl::OnLButtonDown(NPoint _point)
{
	//TRACE("OnLButtonDown\n");
	//SetFocus();

	if (m_dwItemHighLightedIdx!=-1)
	{
		NMEItemDesc* pitem = &m_carrayItems[m_dwItemHighLightedIdx];

		//Toggle CheckBox
		if (pitem->dwStyle&ME_ITEMSTYLE_CHECKBOX)
			pitem->bChecked=!pitem->bChecked;

		//Notify selected item ID
		if (pitem->ppopUpMenu==null)
		{
			m_dwReturnCmdID = pitem->dwID;
			ShowMenu(false, m_pcurParentMenu);
			OnItemClick(this);
			//Send To Parent Menu too
			if (m_pcurParentMenu)	m_pcurParentMenu->OnItemClick(this);
		}
	}

}
void CSelectOnlineUserWnd::Notify(TNotifyUI& msg)
{
	if (_tcsicmp(msg.sType, DUI_MSGTYPE_WINDOWINIT) == 0)
	{
		OnPrepare(msg);
	}

	if (msg.sType == DUI_MSGTYPE_CLICK)
	{
		if (msg.pSender->GetName() == L"closeBtn_chat" || msg.pSender->GetName() == L"cancelChatInsideBtn")
		{
			PostQuitMessage(0);
		}
		else if (msg.pSender->GetName() == L"conformChatInsideBtn")
		{
			Close();
		}
	}
	if (msg.sType == DUI_MSGTYPE_ITEMSELECT)
	{

	
	
	}
	if (msg.sType == DUI_MSGTYPE_ITEMCLICK)
	{
		OnItemClick(msg);
	}
}
Exemple #3
0
LRESULT CDUITreeViewImpl::ProcessEvent(const DUIEvent& info, BOOL& bHandled)
{
	LRESULT lRet(S_OK);
	switch(info.dwEventType)
	{
	case DUI_EVENT_ELE_ITEM_CLICK:
		OnItemClick(info);
		bHandled = TRUE;
		break;
	case DUI_EVENT_ELE_ITEM_DBCLICK:
		//OnItemDBClick(info);
		bHandled = TRUE;
		break;
		
	case DUI_EVENT_ELE_ITEM_MOUSEENTER:
	case DUI_EVENT_ELE_ITEM_MOUSELEAVE:
		//OnItemHover(info);
		bHandled = TRUE;
		break;
		
	case DUI_EVENT_KEYDOWN:
		//OnKeyDown(info);
		bHandled = TRUE;
		break;
		
	default:
		break;
	}
	
	if(bHandled) return lRet;
	
	return theBase::ProcessEvent(info, bHandled);
}
void CXTPTabManager::SetFocusedItem(CXTPTabManagerItem* pItem)
{
	if (!OnBeforeItemClick(pItem))
		return;

	if (pItem)
	{
		OnItemClick(pItem);
	}
}
void ItemBrowserWidget::ItemClick(Widget* _widget)
{
    int y = _widget->GetPosition().y / item_size_.y;
    int x = _widget->GetPosition().x / item_size_.x;
    int page_index = x + grid_size_.x * y;
    if(y == grid_size_.y - 1 && allow_scroll_)
        page_index--;

    int item_index = page_ * (grid_size_.x * grid_size_.y - 2) + page_index;

    OnItemClick(this, items_[item_index]);
    if(_widget != last_clicked_)
    {
        last_clicked_ = _widget;
        OnItemSelectedChanged(this, items_[item_index]);
    }
}
Exemple #6
0
void CRichEditWnd::Notify(TNotifyUI &msg)
{
	if (msg.sType.Compare(_T("timer")) != 0 && msg.pSender)
		VSOutput::Write(CDuiString::FormatString(_T("name:%s,type:%s\r\n"), msg.pSender->GetName().GetData(), msg.sType.GetData()));
	if (msg.sType == _T("windowinit"))
	{
		OnInitWindow(msg);
	}
	else if (msg.sType == _T("click"))
	{
		OnClick(msg);
	}
	else if (msg.sType == _T("itemclick"))
	{
		OnItemClick(msg);
	}
	else if (msg.sType == _T("itemactivate"))
	{
		OnItemActive(msg);
	}
}
BOOL CTSKTabManager::PerformClick(HWND hWnd, CPoint pt, BOOL bNoItemClick)
{
	//CXTPTabManagerNavigateButton* pNavigateButton = HitTestNavigateButton(pt, FALSE);
	//if (pNavigateButton)
	//{
	//	pNavigateButton->PerformClick(hWnd, pt);
	//	return TRUE;
	//}

	if (bNoItemClick)
		return FALSE;

	CTSKTabManagerItem* pItem = HitTest(pt);

	if (pItem)
	{
		if (!OnBeforeItemClick(pItem))
			return FALSE;

		//if (IsAllowReorder())
		//{
		//	ReOrder(hWnd, pt, pItem);
		//}
		//else if (GetPaintManager()->m_bSelectOnButtonDown)
		{
			OnItemClick(pItem);
		}
		//else
		//{
		//	TrackClick(hWnd, pt, pItem);
		//}
		return TRUE;
	}

	return FALSE;
}
void CMainWindow::Notify( TNotifyUI &msg )
{
	DUI__Trace(msg.sType);
	if (msg.sType==_T("windowinit"))
	{
		OnInitWindow(msg);
	}
	else if (msg.sType==_T("click"))
	{
		OnClick(msg);
	}
	else if (msg.sType==_T("selectchanged"))
	{
		OnSelectChanged(msg);
	}
	else if (msg.sType==_T("itemactivate"))
	{
		OnItemActive(msg);
	}
	else if (msg.sType==_T("itemclick"))
	{
		OnItemClick(msg);
	}
	else if (msg.sType==_T("menu"))
	{
		OnMenu(msg);
	}
	else if (msg.sType==_T("killfocus"))
	{
		OnKillFocus(msg);
	}
	else if (msg.sType==_T("return"))
	{
		OnReturn(msg);
	}
}
void CXTPTabManager::ReOrder(HWND hWnd, CPoint pt, CXTPTabManagerItem* pItem)
{
	CXTPTabManagerItem* pSelected = m_pSelected;
	m_pSelected = pItem;

	if (GetPaintManager()->m_bHotTracking)
		m_pHighlighted = pItem;

	Reposition();

	CArray<CRect, CRect&> arrRects;

	for (int j = 0; j < GetItemCount(); j++)
	{
		CRect rc = GetItem(j)->GetRect();
		arrRects.Add(rc);
	}

	int nIndex = pItem->GetIndex();

	::SetCapture(hWnd);

	while (::GetCapture() == hWnd)
	{
		MSG msg;
		VERIFY(::GetMessage(&msg, NULL, 0, 0));

		if (::GetCapture() != hWnd)
		{
			DispatchMessage (&msg);
			break;
		}
		switch (msg.message)
		{
			case WM_MOUSEMOVE:
				{
					pt = CPoint((short signed)LOWORD(msg.lParam), (short signed)HIWORD(msg.lParam));

					for (int i = 0; i < arrRects.GetSize(); i++)
					{
						if (i != pItem->GetIndex() && arrRects[i].PtInRect(pt))
						{

							while (i != pItem->GetIndex())
							{
								int j = i < pItem->GetIndex() ? pItem->GetIndex() - 1 : pItem->GetIndex() + 1;

								CXTPTabManagerItem* p1 = pItem;
								CXTPTabManagerItem* p2 = m_arrItems[pItem->GetIndex()] = m_arrItems[j];
								m_arrItems[j] = p1;

								OnItemsChanged();

								OnSwitchItem(p1, p2);
							}
							break;
						}
					}
				}

				break;

			case WM_KEYDOWN:
				if (msg.wParam != VK_ESCAPE)
					break;
			case WM_CANCELMODE:
			case WM_LBUTTONUP:
			case WM_RBUTTONDOWN:
				goto ExitLoop;

			default:
				DispatchMessage (&msg);
				break;
		}
	}

ExitLoop:
	ReleaseCapture();
	PerformMouseMove(hWnd, pt);

	m_pSelected = pSelected;
	OnItemClick(pItem);

	if (nIndex != pItem->GetIndex())
	{
		OnItemOrderChanged(pItem, nIndex, pItem->GetIndex());
	}
}
void CXTPTabManager::TrackClick(HWND hWnd, CPoint pt, CXTPTabManagerItem* pItem)
{
	if (GetPaintManager()->m_bHotTracking)
		m_pHighlighted = pItem;

	m_pPressed = pItem;
	BOOL bHighlighted = TRUE;

	Reposition();
	BOOL bAccept = FALSE;

	::SetCapture(hWnd);

	while (::GetCapture() == hWnd)
	{
		MSG msg;
		VERIFY(::GetMessage(&msg, NULL, 0, 0));

		if (::GetCapture() != hWnd)
		{
			DispatchMessage (&msg);
			break;
		}
		switch (msg.message)
		{
			case WM_MOUSEMOVE:
				{
					pt = CPoint((short signed)LOWORD(msg.lParam), (short signed)HIWORD(msg.lParam));

					bHighlighted = pItem->GetRect().PtInRect(pt);

					if (GetPaintManager()->m_bHotTracking)
					{
						CXTPTabManagerItem* pHighlighted = bHighlighted ? pItem : NULL;
						if (pHighlighted != m_pHighlighted)
						{
							m_pHighlighted = pHighlighted;
							RedrawControl(pItem->GetRect(), TRUE);
						}
					}

				}

				break;

			case WM_KEYDOWN:
				if (msg.wParam != VK_ESCAPE)
					break;
			case WM_CANCELMODE:
			case WM_RBUTTONDOWN:
				goto ExitLoop;

			case WM_LBUTTONUP:
				bAccept = TRUE;
				goto ExitLoop;

			default:
				DispatchMessage (&msg);
				break;
		}
	}

ExitLoop:
	ReleaseCapture();

	m_pPressed = FALSE;

	PerformMouseMove(hWnd, pt);

	RedrawControl(NULL, FALSE);

	if (bAccept && bHighlighted)
	{
		OnItemClick(pItem);
	}
}
Exemple #11
0
void __stdcall CEXMLDocumentStyleSheetsView::OnEndLabelEdit(long item, BSTR text)
{
	DWORD itemdata;
	m_treeCtl->GetItemInfo(item, &itemdata, NULL, NULL);
	if (itemdata)
	{
		CComQIPtr<ILCSSStyleRule> styleRule = (IUnknown*)itemdata;
		if (styleRule)
		{
			styleRule->put_selectorText(text);
		}
	}
	else
	{
		if (text && wcslen(text) > 0)
		{
			DWORD parentitem;
			m_treeCtl->GetParentItem(item, &parentitem);
			if (parentitem)
			{
				DWORD parentitemdata;
				m_treeCtl->GetItemInfo(parentitem, &parentitemdata, NULL, NULL);

				CComQIPtr<ILCSSStyleSheet> styleSheet = (IUnknown*)parentitemdata;
				if (styleSheet)
				{
					CComPtr<ILCSSRuleList> cssRules;
					styleSheet->get_cssRules(&cssRules);

					long length;
					cssRules->get_length(&length);

					_bstr_t rule = text + _bstr_t(L" {}");

					long index;
					styleSheet->insertRule(rule, length, &index);

					CComPtr<ILCSSRule> cssrule;
					cssRules->item(index, &cssrule);

				// Select the newly inserted rule in the treeview
				// insertRule() will rebuild the parent list, so we need to do this
					{
						DWORD item;
						m_treeCtl->GetFirstChildItem(parentitem, &item);
						while (item)
						{
							DWORD itemdata;
							m_treeCtl->GetItemInfo(item, &itemdata, NULL, NULL);

							CComQIPtr<ILCSSRule> cssrule2 = (IUnknown*)itemdata;
							if (cssrule2 == cssrule)
							{
								m_treeCtl->SetSelectedItem(item);
								OnItemClick(item);	// hm.. maybe this should be called by the above
								break;
							}

							m_treeCtl->GetNextSiblingItem(item, &item);
						}
					}
				}
			}
		}
		else
		{
			m_treeCtl->DeleteItem(item);
		}
	}
}