⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 atr_main.cpp

📁 windRiver提供的的Zinc5.3完整源码,文档非常齐全
💻 CPP
📖 第 1 页 / 共 3 页
字号:
	attr->SetButtonType(ZAF_FLAT_BUTTON);
	attr->SetHzJustify(ZAF_HZ_LEFT);
	attr->SetSendMessageWhenSelected(true);
	attr->SetValue(TST_SET_FONT_SMALL);
	fontCombo->Add(attr);
	attr = new ZafButton(0, 0, 15, 1, new ZafStringData("Dialog"));
	attr->SetButtonType(ZAF_FLAT_BUTTON);
	attr->SetHzJustify(ZAF_HZ_LEFT);
	attr->SetSendMessageWhenSelected(true);
	attr->SetValue(TST_SET_FONT_DIALOG);
	fontCombo->Add(attr);
	attr = new ZafButton(0, 0, 15, 1, new ZafStringData("System"));
	attr->SetButtonType(ZAF_FLAT_BUTTON);
	attr->SetHzJustify(ZAF_HZ_LEFT);
	attr->SetSendMessageWhenSelected(true);
	attr->SetValue(TST_SET_FONT_SYSTEM);
	fontCombo->Add(attr);
	attr = new ZafButton(0, 0, 15, 1, new ZafStringData("Application"));
	attr->SetButtonType(ZAF_FLAT_BUTTON);
	attr->SetHzJustify(ZAF_HZ_LEFT);
	attr->SetSendMessageWhenSelected(true);
	attr->SetValue(TST_SET_FONT_APPLICATION);
	fontCombo->Add(attr);
	attr = new ZafButton(0, 0, 15, 1, new ZafStringData("Fixed"));
	attr->SetButtonType(ZAF_FLAT_BUTTON);
	attr->SetHzJustify(ZAF_HZ_LEFT);
	attr->SetSendMessageWhenSelected(true);
	attr->SetValue(TST_SET_FONT_FIXED);
	fontCombo->Add(attr);

	Add(fontCombo);

	// Create store button.
	ZafButton *store = new ZafButton(1, 10, 10, 1, new ZafStringData("Store *"));
	store->SetAutoSize(false);
	store->SetSendMessageWhenSelected(true);
	store->SetValue(TST_STORE);
	Add(store);

	// Create event log button.
	ZafButton *eventLog = new ZafButton(12, 10, 10, 1, new ZafStringData("Event Log"));
	eventLog->SetStringID(ZAF_ITEXT("EVENT_LOG"));
	eventLog->SetAutoSize(false);
	eventLog->SetSendMessageWhenSelected(true);
	eventLog->SetValue(TST_SHOW_EVENT_LOG);
	Add(eventLog);

	// Create duplicate button.
	ZafButton *duplicate = new ZafButton(23, 10, 11, 1, new ZafStringData("Duplicate *"));
	duplicate->SetAutoSize(false);
	duplicate->SetSendMessageWhenSelected(true);
	duplicate->SetValue(TST_DUPLICATE);
	Add(duplicate);

	// Create redraw button.
	ZafButton *redraw = new ZafButton(35, 10, 11, 1, new ZafStringData("Redraw **"));
	redraw->SetAutoSize(false);
	redraw->SetSendMessageWhenSelected(true);
	redraw->SetValue(TST_REDRAW);
	Add(redraw);

	// Create addSubtract button.
	ZafButton *addSubtract = new ZafButton(50, 10, 11, 1, new ZafStringData("Subtract"));
	addSubtract->SetStringID(ZAF_ITEXT("ADD_SUBTRACT"));
	addSubtract->SetAutoSize(false);
	addSubtract->SetSendMessageWhenSelected(true);
	addSubtract->SetValue(TST_SUBTRACT_TESTOBJECT);
	Add(addSubtract);

	Add(new ZafPrompt(60, 0, 25, new ZafStringData("Object")));
}

GenericTestWin::GenericTestWin(const ZafIChar *name, ZafObjectPersistence &persist) :
	ZafWindow(name, persist),
	attrList(0), testObject(0), testObjectParent(0), testObjectSibling(0)
{
	// Initialize pointers to important objects.
	attrList = DynamicPtrCast(GetObject(ZAF_ITEXT("ATTR_LIST")), ZafVtList);
	testObject = GetObject(ZAF_ITEXT("TEST_OBJECT"));

	// Persisted windows don't have a derived test object, so don't track events.
	ZafWindowObject *eventLog = GetObject(ZAF_ITEXT("EVENT_LOG"));
	eventLog->SetDisabled(true);
}

GenericTestWin::GenericTestWin(GenericTestWin &copy): ZafWindow(copy),
	attrList(0), testObject(0), testObjectParent(0), testObjectSibling(0)
{
	// Initialize pointers to important objects.
	attrList = DynamicPtrCast(GetObject(ZAF_ITEXT("ATTR_LIST")), ZafVtList);
	testObject = GetObject(ZAF_ITEXT("TEST_OBJECT"));

	// Copied windows don't have a derived test object, so don't track events.
	ZafWindowObject *eventLog = GetObject(ZAF_ITEXT("EVENT_LOG"));
	eventLog->SetDisabled(true);
}

GenericTestWin::~GenericTestWin(void)
{
	// Delete testObject if it is not attached to the window.
/* START BLOCK COMMENT
**		if (!testObject->screenID)
**			delete testObject;
END BLOCK COMMENT */
}

ZafEventType GenericTestWin::Draw(const ZafEventStruct &event, ZafEventType ccode)
{
	ZafWindow::Draw(event, ccode);

	// Compute the actual draw region.
	ZafRegionStruct drawRegion = BeginDraw();

	ZafPaletteStruct lightShadow = LogicalPalette(ZAF_PM_LIGHT_SHADOW, 0);
	ZafPaletteStruct darkShadow = LogicalPalette(ZAF_PM_DARK_SHADOW, 0);
	ZafPaletteStruct whiteShadow = lightShadow;

	// Copy the background colors to the foreground since display->Line() uses 
	// the foreground color.  The "shadow" palettes have different colors in 
	// the foreground and background entries so they can generate two shades
	// of shadow.
	whiteShadow.colorForeground = whiteShadow.colorBackground;

	// Draw a divider line between the settings and the test object(s).
	ZafWindowObject *object = GetObject(ZAF_ITEXT("BACK_COLOR_COMBO"));
	int column = drawRegion.left + object->zafRegion.right + 2 * display->cellWidth;
	int top = drawRegion.top;
	int bottom = drawRegion.bottom;

	display->SetPalette(darkShadow);
	display->Line(column, top, column, bottom);
	display->SetPalette(whiteShadow);
	display->Line(column + 1, top, column + 1, bottom);

	EndDraw();

	return (ccode);
}

ZafEventType GenericTestWin::Event(const ZafEventStruct &event)
{
	ZafEventType ccode = event.type;

	// Update count for attribute item.
	if (ccode >= TST_TOGGLE_FIRST && ccode <= TST_TOGGLE_LAST)
	{
		for (int count = 0; AttributeTable[count].text; count++)
			if (AttributeTable[count].value == ccode)
			{
				AttributeTable[count].count++;
				ZafWindowObject *attr = attrList->GetObject((ZafNumberID)ccode);
				ZafIChar buf[64];
				sprintf(buf, ZAF_ITEXT("%s %d"), AttributeTable[count].text, AttributeTable[count].count);
				attr->SetText(buf);
				break;
			}
	}

	switch (ccode)
	{
	case S_INITIALIZE:
		ZafWindow::Event(event);
		testObjectParent = DynamicPtrCast(testObject->parent, ZafWindow);
		break;

	// TST_TOGGLE_*** sets testObject's attribute to the selected status of
	// the attribute check box.  It then updates the attribute check box
	// using the attribute accessor function to test if the attribute was
	// successfully set.
	case TST_TOGGLE_BORDERED:
		{
			ZafWindowObject *attr = attrList->GetObject((ZafNumberID)TST_TOGGLE_BORDERED);
			testObject->SetBordered(attr->Selected());
			attr->SetSelected(testObject->Bordered());
		}
		break;

	case TST_TOGGLE_VISIBLE:
		{
			ZafWindowObject *attr = attrList->GetObject((ZafNumberID)TST_TOGGLE_VISIBLE);
			testObject->SetVisible(attr->Selected());
			attr->SetSelected(testObject->Visible());
		}
		break;

	case TST_TOGGLE_ACCEPT_DROP:
		{
			ZafWindowObject *attr = attrList->GetObject((ZafNumberID)TST_TOGGLE_ACCEPT_DROP);
			testObject->SetAcceptDrop(attr->Selected());
			attr->SetSelected(testObject->AcceptDrop());
		}
		break;

	case TST_TOGGLE_AUTOMATIC_UPDATE:
		{
			ZafWindowObject *attr = attrList->GetObject((ZafNumberID)TST_TOGGLE_AUTOMATIC_UPDATE);
			testObject->SetAutomaticUpdate(attr->Selected());
			attr->SetSelected(testObject->AutomaticUpdate(false));
		}
		break;

	case TST_TOGGLE_CHANGED:
		{
			ZafWindowObject *attr = attrList->GetObject((ZafNumberID)TST_TOGGLE_CHANGED);
			testObject->SetChanged(attr->Selected());
			attr->SetSelected(testObject->Changed());
		}
		break;

	case TST_TOGGLE_COPY_DRAGGABLE:
		{
			ZafWindowObject *attr = attrList->GetObject((ZafNumberID)TST_TOGGLE_COPY_DRAGGABLE);
			testObject->SetCopyDraggable(attr->Selected());
			attr->SetSelected(testObject->CopyDraggable());
		}
		break;

	case TST_TOGGLE_LINK_DRAGGABLE:
		{
			ZafWindowObject *attr = attrList->GetObject((ZafNumberID)TST_TOGGLE_LINK_DRAGGABLE);
			testObject->SetLinkDraggable(attr->Selected());
			attr->SetSelected(testObject->LinkDraggable());
		}
		break;

	case TST_TOGGLE_MOVE_DRAGGABLE:
		{
			ZafWindowObject *attr = attrList->GetObject((ZafNumberID)TST_TOGGLE_MOVE_DRAGGABLE);
			testObject->SetMoveDraggable(attr->Selected());
			attr->SetSelected(testObject->MoveDraggable());
		}
		break;

	case TST_TOGGLE_FOCUS:
		{
			ZafWindowObject *attr = attrList->GetObject((ZafNumberID)TST_TOGGLE_FOCUS);
			testObject->SetFocus(attr->Selected());
			attr->SetSelected(testObject->Focus());
		}
		break;

	case TST_TOGGLE_NONCURRENT:
		{
			ZafWindowObject *attr = attrList->GetObject((ZafNumberID)TST_TOGGLE_NONCURRENT);
			testObject->SetNoncurrent(attr->Selected());
			attr->SetSelected(testObject->Noncurrent());
		}
		break;

	case TST_TOGGLE_DISABLED:
		{
			ZafWindowObject *attr = attrList->GetObject((ZafNumberID)TST_TOGGLE_DISABLED);
			testObject->SetDisabled(attr->Selected());
			attr->SetSelected(testObject->Disabled());
		}
		break;

	case TST_TOGGLE_OSDRAW:
		{
			ZafWindowObject *attr = attrList->GetObject((ZafNumberID)TST_TOGGLE_OSDRAW);
			testObject->SetOSDraw(attr->Selected());
			attr->SetSelected(testObject->OSDraw());
		}
		break;

	case TST_TOGGLE_PARENTDRAW_BORDER:
		{
			ZafWindowObject *attr = attrList->GetObject((ZafNumberID)TST_TOGGLE_PARENTDRAW_BORDER);
			testObject->SetParentDrawBorder(attr->Selected());
			attr->SetSelected(testObject->ParentDrawBorder());
		}
		break;

	case TST_TOGGLE_PARENTPALETTE:
		{
			ZafWindowObject *attr = attrList->GetObject((ZafNumberID)TST_TOGGLE_PARENTPALETTE);
			testObject->SetParentPalette(attr->Selected());
			attr->SetSelected(testObject->ParentPalette());
		}
		break;

	case TST_TOGGLE_PARENTDRAW_FOCUS:
		{
			ZafWindowObject *attr = attrList->GetObject((ZafNumberID)TST_TOGGLE_PARENTDRAW_FOCUS);
			testObject->SetParentDrawFocus(attr->Selected());
			attr->SetSelected(testObject->ParentDrawFocus());
		}
		break;

	case TST_TOGGLE_SELECTED:
		{
			ZafWindowObject *attr = attrList->GetObject((ZafNumberID)TST_TOGGLE_SELECTED);
			testObject->SetSelected(attr->Selected());
			attr->SetSelected(testObject->Selected());
		}
		break;

	case TST_TOGGLE_EDIT_MODE:
		{
			ZafWindowObject *attr = attrList->GetObject((ZafNumberID)TST_TOGGLE_EDIT_MODE);
			testObject->SetEditMode(attr->Selected());
			attr->SetSelected(testObject->EditMode());
		}
		break;

	case TST_SET_TOOL_TIP:
		{
			ZafComboBox *helpTipCombo = DynamicPtrCast(GetObject(ZAF_ITEXT("TOOL_TIP_COMBO")), ZafComboBox);
			ZafStringID stringID = helpTipCombo->Current()->StringID();
			if (!strcmp(stringID, ZAF_ITEXT("None")))
			{
				testObject->SetHelpObjectTip(ZAF_NULLP(ZafIChar));
				testObject->SetQuickTip(ZAF_NULLP(ZafIChar));
			}
			else if (!strcmp(stringID, ZAF_ITEXT("Single")))
			{
				ZafIChar *text = ZAF_ITEXT("Single line help object tip");
				testObject->SetHelpObjectTip(text);
				text = ZAF_ITEXT("Single line quick tip");
				testObject->SetQuickTip(text);
			}
			else
			{
				ZafIChar *text = ZAF_ITEXT("Multi-line help object text");
				testObject->SetHelpObjectTip(text);
				text = ZAF_ITEXT("Multi-line \nquick tip.");
				testObject->SetQuickTip(text);
			}

			const ZafIChar *quickTip = testObject->QuickTip();

			if (!quickTip)
				helpTipCombo->First()->SetSelected(true);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -