Пример #1
0
void CTextPropertyToolBar::PropertyChanged(TextProperty &property)
{
	switch (property.GetPropertyType())
	{
	case PropertyEnum_TextBold:
		m_bBold = property.GetValue<bool>();
		break;

	case PropertyEnum_TextItalic:
		m_bItalic = property.GetValue<bool>();
		break;

	case propertyEnum_TextHighlight:
		m_bHighlight = property.GetValue<bool>();
		break;

	case PropertyEnum_TextUnderline:
		m_bUnderline = property.GetValue<bool>();
		break;

	case PropertyEnum_TextStrikeout:
		m_bStrike = property.GetValue<bool>();
		break;
		/*
	case PropertyEnum_TextSubscript:
		property.GetValue(bValue);
		m_subBtn.SetCheck(bValue ? BST_CHECKED : BST_UNCHECKED);
		break;

	case PropertyEnum_TextSuperscript:
		property.GetValue(bValue);
		m_supBtn.SetCheck(bValue ? BST_CHECKED : BST_UNCHECKED);
		break;*/

	case PropertyEnum_FontName:
	{
		CString name = property.GetValue<CString>();
		((CMFCToolBarComboBoxButton*)this->GetButton(GetButtonIndex(ID_FONTCOMBO_TEXT)))->SelectItem(name);
		break;
	}

	case PropertyEnum_FontSize:
	{
		CString size;
		size.Format(L"%d", property.GetValue<int>());
		((CMFCToolBarComboBoxButton*)this->GetButton(GetButtonIndex(ID_SIZECOMBO_TEXT)))->SelectItem(size);
		break;
	}

	default:
		break;
	}

	this->Invalidate();
}
Пример #2
0
VOID CSendPage:: OnButtonSend(DWORD dwButtonId)
{
	DWORD dwIndex;
	Tstring tstrTemp, tstrHexStr;

	dwIndex = GetButtonIndex(dwButtonId);
	tstrTemp = GetText(GetDlgItem(SendPage.m_hWnd, SendPage.m_CtrlTable[dwIndex].dwEditBoxId));

	if ( tstrTemp != _T("") )
	{
		tstrHexStr = PreProcessPackeTstring(tstrTemp);

		if (tstrHexStr != _T(""))
		{

			LPBYTE lpHexBuf = new BYTE[tstrHexStr.length()];
			DWORD dwLen = Utility::StringLib::Tstring2Hex(tstrHexStr.c_str(), lpHexBuf);

			SetText(GetDlgItem(SendPage.m_hWnd,SendPage.m_CtrlTable[dwIndex].dwEditBoxId), tstrTemp);


			CGPacket* pPacket = (CGPacket*)GetWindowLongPtr(GetDlgItem(SendPage.m_hWnd,SendPage.m_CtrlTable[dwIndex].dwEditBoxId), GWL_USERDATA);

			CGPacket* pNewPacket = new CGPacket(lpHexBuf, dwLen, pPacket->GetPacketProperty());
			if (pNewPacket)
			{
				PluginWrap.SendData( *pNewPacket);
				delete pNewPacket;
			}
			delete[]lpHexBuf;
		}
	}
}
Пример #3
0
/**
 * add runtime toolbar.
 *
 * @param           [in] pToolbarData: pointer to toolbar data
 *                       create pToolbarData with new before calling this function.
 *                       it will be stored and deleted within this class so don't
 *                       call delete yourself.
 * @return          successful?
*/
BOOL CCoolMenuManager::AddRuntimeToolbar(CToolbarData* pToolbarData)
{
    CString strBitmapFile;

    ASSERT(pToolbarData);

	int iNextImage = m_ilButtons.GetImageCount();
    int iNumButtons = pToolbarData->m_ItemIdArray.GetSize();
    int iNumButtonFiles = pToolbarData->m_astrBitmapFileName.GetSize();

    ASSERT(iNumButtons == iNumButtonFiles);

    UINT nID;
    for(int iButton=0; iButton < iNumButtons; ++iButton)
    {
        HBITMAP hbmpButton;
        CBitmap bmButton;

        strBitmapFile = pToolbarData->m_astrBitmapFileName[iButton];
        if(strBitmapFile.IsEmpty())
        {
            continue;
        }
        hbmpButton = (HBITMAP)::LoadImage(0, strBitmapFile, IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE);
        if(hbmpButton)
        {
            bmButton.Attach(hbmpButton);
        	m_ilButtons.Add(&bmButton, pToolbarData->m_bgColor);

		    nID = pToolbarData->m_ItemIdArray[iButton];
		    if (nID > 0)
            {
			    if (GetButtonIndex(nID) >= 0) 
                {
				    TRACE(_T("*** Duplicate button ID %d ignored\n"), nID);
			    }
                else
                {
				    m_mapIDtoImage.SetAt(nID, (void*)iNextImage++);
                }
            }
		}
        else
        {
            TRACE("AddRuntimeToolbar(): bitmap %s could not be loaded\n", strBitmapFile);
        }
	}
	m_arToolbarID.Add(pToolbarData->m_uiID);  // remember toolbar ID for Refresh
    
    // store toolbar data
    m_tToolbarDataList.AddTail(pToolbarData);

	return TRUE; // success!
}
Пример #4
0
/**
 * load toolbar from structure.
 *
 * @param           [in] nIDToolbar: identification number of toolbar (needed for refresh)
 * @param           [in] ptbd: toolbar data
 * @param           [in] hbmpToolbar: handle to loaded bitmap
 * @return          
 * @exception       -
 * @see             
*/
BOOL CCoolMenuManager::LoadToolbarFromStruct(UINT nIDToolbar, TOOLBARDATA* ptbd, HBITMAP hbmToolbar)
{
	CBitmap bmToolbar;
	bmToolbar.Attach(hbmToolbar); // destructor will detach & destroy

	CSize sz(ptbd->wWidth, ptbd->wHeight);
	if (m_szBitmap.cx==0) 
    {
		// First toolbar: initialized bitmap/button sizes and create image list.
		m_szBitmap = sz;
		m_szButton = sz + CSize(CXBUTTONMARGIN<<1, CYBUTTONMARGIN<<1);
		VERIFY(m_ilButtons.Create(sz.cx, sz.cy, ILC_MASK, 0, 10));

	}
    else if (m_szBitmap != sz) 
    {
		// button sizes different -- oops
		TRACE(_T("*** Toolbar %d button size differs!\n"), nIDToolbar);
		return FALSE;
	}

	// I have a good toolbar: now add bitmap to the image list, and each
	// command ID to m_mapIDtoImage array. Note that LoadSysColorBitmap will
	// change gray -> COLOR_3DFACE, so use that for image list background.
	//
	int iNextImage = m_ilButtons.GetImageCount();
	m_ilButtons.Add(&bmToolbar, GetSysColor(COLOR_3DFACE));
	for (int i = 0; i < ptbd->wItemCount; i++)
    {
		UINT nID = ptbd->items[i];
		if (nID > 0)
        {
			if (GetButtonIndex(nID) >= 0) 
            {
				TRACE(_T("*** Duplicate button ID %d ignored\n"), nID);
			}
            else
            {
				m_mapIDtoImage.SetAt(nID, (void*)iNextImage++);
            }
		}
	}
	m_arToolbarID.Add(nIDToolbar);  // remember toolbar ID for Refresh
	return TRUE; // success!
}
Пример #5
0
void CTextPropertyToolBar::OnFontNameChanged()
{
	CMFCToolBarComboBoxButton *pButton = (CMFCToolBarComboBoxButton*)this->GetButton(GetButtonIndex(ID_FONTCOMBO_TEXT));
	CString name = pButton->GetItem(pButton->GetCurSel());
	m_pObserver->PropertyChanged(TextPropertyBuilder::CreateTextProperty(PropertyEnum_FontName, name));
}
Пример #6
0
void CTextPropertyToolBar::OnFontSizeChanged()
{
	CMFCToolBarComboBoxButton *pButton = (CMFCToolBarComboBoxButton*)this->GetButton(GetButtonIndex(ID_SIZECOMBO_TEXT));
	CString size = pButton->GetItem(pButton->GetCurSel());
	m_pObserver->PropertyChanged(TextPropertyBuilder::CreateTextProperty<int>(PropertyEnum_FontSize, std::stoi(size.GetBuffer())));
}
Пример #7
0
//////////////////
// Load one toolbar. Assumes bg color is gray.
// 
//  * add toolbar bitmap to image list
//	 * add each button ID to button map
//
BOOL CCoolMenuManager::LoadToolbar(UINT nIDToolbar)
{
	// load bitmap
	HBITMAP hbmToolbar = PLLoadSysColorBitmap(nIDToolbar);
	if (!hbmToolbar) {
		TRACE(_T("*** Can't load bitmap for toolbar %d!\n"), nIDToolbar);
		return FALSE;
	}
	CBitmap bmToolbar;
	bmToolbar.Attach(hbmToolbar); // destructor will detach & destroy

	// load toolbar
	LPTSTR lpResName = MAKEINTRESOURCE(nIDToolbar);
	HINSTANCE hInst;
	HRSRC hRsrc;
	TOOLBARDATA* ptbd;
	if ((hInst= AfxFindResourceHandle(lpResName, RT_TOOLBAR)) == NULL ||
		 (hRsrc= FindResource(hInst, lpResName, RT_TOOLBAR))   == NULL ||
		 (ptbd = (TOOLBARDATA*)LoadResource(hInst, hRsrc))     == NULL) {

		TRACE(_T("*** Can't load toolbar %d!\n"), nIDToolbar);
		return FALSE;
	}
	ASSERT(ptbd->wVersion==1);
		
	// OK, I have the bitmap and toolbar. 

	CSize sz(ptbd->wWidth, ptbd->wHeight);
	if (m_szBitmap.cx==0) {
		// First toolbar: initialized bitmap/button sizes and create image list.
		m_szBitmap = sz;
		m_szButton = sz + CSize(CXBUTTONMARGIN<<1, CYBUTTONMARGIN<<1);
		VERIFY(m_ilButtons.Create(sz.cx, sz.cy, ILC_MASK, 0, 10));

	} else if (m_szBitmap != sz) {
		// button sizes different -- oops
		TRACE(_T("*** Toolbar %d button size differs!\n"), nIDToolbar);
		return FALSE;
	}

	// I have a good toolbar: now add bitmap to the image list, and each
	// command ID to m_mapIDtoImage array. Note that LoadSysColorBitmap will
	// change gray -> COLOR_3DFACE, so use that for image list background.
	//
	int iNextImage = m_ilButtons.GetImageCount();
	m_ilButtons.Add(&bmToolbar, GetSysColor(COLOR_3DFACE));
	for (int i = 0; i < ptbd->wItemCount; i++) {
		UINT nID = ptbd->items[i];
		if (nID > 0) {
			if (GetButtonIndex(nID) >= 0) {
				TRACE(_T("*** Duplicate button ID %d ignored\n"), nID);
			} else {
				m_mapIDtoImage.SetAt(nID, (void*)iNextImage);
				TRACE(_T("CCoolMenuManager::LoadToolbar(). Added Menu Id %d, Button Number %d\n"), nID, iNextImage-1);
			}
			// AB. 13-08-98. Since we've already added the entire toolbar to the imagelist
			// we need to increment nNextImage even if we didn't add this button to
			// m_mapIDtoImage.
			iNextImage++;
		}
	}
	m_arToolbarID.Add(nIDToolbar);  // remember toolbar ID for Refresh
	bmToolbar.Detach();
	return TRUE; // success!
}