//----------------------------------------------------------------------------------------------------
CMouseEventResult UIViewCreatorDataSource::dbOnMouseDown (const CPoint& where, const CButtonState& buttons, int32_t row, int32_t column, CDataBrowser* browser)
{
	mouseDownRow = row;
	if (buttons.isLeftButton ())
	{
		if (!buttons.isDoubleClick ())
			return kMouseEventHandled;
		addViewToCurrentEditView ();
	}
	else if (buttons.isRightButton ())
	{
		const std::string& viewName = getStringList ()->at (static_cast<uint32_t> (mouseDownRow));
		std::string menuEntryName = "Add a new '" + viewName + "'";
		COptionMenu menu;
		menu.setStyle (kPopupStyle);
		menu.addEntry (menuEntryName.c_str ());
		CPoint menuLocation (where);
		browser->localToFrame (menuLocation);
		if (menu.popup (browser->getFrame (), menuLocation))
		{
			if (menu.getEntry (menu.getLastResult ()))
				addViewToCurrentEditView ();
		}
	}
	mouseDownRow = -1;
	return kMouseDownEventHandledButDontNeedMovedOrUpEvents;
}
示例#2
0
//----------------------------------------------------------------------------------------------------
CMouseEventResult UITagsDataSource::dbOnMouseDown (const CPoint& where, const CButtonState& buttons, int32_t row, int32_t column, CDataBrowser* browser)
{
	if (buttons.isLeftButton () && buttons.isDoubleClick ())
	{
		UTF8StringPtr value = column == 0 ? names.at (row).c_str () : tags.at (row).c_str ();
		browser->beginTextEdit (CDataBrowser::Cell (row, column), value);
	}
	return kMouseDownEventHandledButDontNeedMovedOrUpEvents;
}
示例#3
0
#include "../unittests.h"
#include "../../../lib/cbuttonstate.h"

namespace VSTGUI {

TESTCASE(CButtonStateTests,

	TEST(test,
		CButtonState s;
		EXPECT(s.getButtonState () == 0);
		EXPECT(s.getModifierState () == 0);
		s = kLButton;
		EXPECT(s.isLeftButton () == true);
		s |= kShift;
		EXPECT(s.isLeftButton () == true);
		EXPECT(s.getModifierState () == kShift);
		s = kRButton;
		EXPECT(s.isRightButton () == true);
		s |= kDoubleClick;
		EXPECT(s.isDoubleClick () == true);
		EXPECT(s & CButtonState (kDoubleClick));
		CButtonState s2 (s);
		EXPECT(s == s2);
		s2 = ~s;
		EXPECT(s != s2);
	);
);

} // VSTGUI