Ejemplo n.º 1
0
void TrayNotifyDlg::InsertItem(HTREEITEM hparent, HTREEITEM after, const NotifyIconDlgInfo& entry,
								HDC hdc, HICON hicon, NOTIFYICONMODE mode)
{
	int idx = _info.size() + 1;
	_info[idx] = entry;

	String mode_str = string_from_mode(mode);

	switch(mode) {
	  case NIM_SHOW:	mode_str = ResString(IDS_NOTIFY_SHOW);		break;
	  case NIM_HIDE:	mode_str = ResString(IDS_NOTIFY_HIDE);		break;
	  case NIM_AUTO:	mode_str = ResString(IDS_NOTIFY_AUTOHIDE);
	}

	FmtString txt(TEXT("%s  -  %s  [%s]"), entry._tipText.c_str(), entry._windowTitle.c_str(), mode_str.c_str());

	TV_INSERTSTRUCT tvi;

	tvi.hParent = hparent;
	tvi.hInsertAfter = after;

	TV_ITEM& tv = tvi.item;
	tv.mask = TVIF_TEXT|TVIF_IMAGE|TVIF_SELECTEDIMAGE|TVIF_PARAM;

	tv.lParam = (LPARAM)idx;
	tv.pszText = txt.str();
	tv.iSelectedImage = tv.iImage = ImageList_AddAlphaIcon(_himl, hicon, GetStockBrush(WHITE_BRUSH), hdc);
	(void)TreeView_InsertItem(_tree_ctrl, &tvi);
}
Ejemplo n.º 2
0
// --------------------------------------------------------------------------------------------
// Reaktion auf Click eines Buttons
void COptionsDlg::ButtonClick (ControlEvt e)
{
	switch ((uint) e.GetControlID())
	{
		case IDC_FEATFROMORIGIN:
			m_Descript.SetText (ResString (ResID (IDS_KOMM22, pRF), 250).Addr());
			break;

		case IDC_ORIGINDEL:
			m_CBoxMark.SetChecked (false);
			m_CBoxShowOrig.SetChecked (false);
			m_Descript.SetText (ResString (ResID (IDS_KOMM23, pRF), 250).Addr());
			break;

		case IDC_ORIGINMARK:
			m_CBoxDelete.SetChecked (false);
			m_Descript.SetText (ResString (ResID (IDS_KOMM24, pRF), 250).Addr());
			break;

		case IDC_SHOWNEW:
			m_Descript.SetText (ResString (ResID (IDS_KOMM25, pRF), 250).Addr());
			break;

		case IDC_SHOWORIG:
			m_CBoxDelete.SetChecked (false);
			m_Descript.SetText (ResString (ResID (IDS_KOMM26, pRF), 250).Addr());
			break;
	}
	
	AdjustSheetWizardBttns (this, m_dwFlags);

	// die nachfolgende  Zeile ist erforderlich, weil nicht immer OnKillActive() kommt
	PrepareResult();

} // ButtonClick
Ejemplo n.º 3
0
// --------------------------------------------------------------------------------------------
// aktuellen Flächeninhalt in Statuszeile anzeigen
bool CNewArea::AktuelleWerteAnzeigen (Point Pt)
{
    if (! m_wObj.IsValid() ||	// der 1. Punkt der zu editierenden Fläche ist noch nicht gesetzt bzw.
    	m_bIsland)				// Beginn einer neuen Insel wurde soeben angezeigt:
    	return false;	// deshalb keinen aktuellen Flächeninhalt anzeigen

    m_dAktDreieck = DreieckInhalt (Pt, m_FirstPkt, m_LastPkt, m_pCT);

string sOutBuff = "";	// Ausgabepuffer
double dZwFlInh;		// aktueller Zwischenstand des Flächeninhalts

    if (1 == m_iKCnt)		// Neueditierung der Außenkontur
    	dZwFlInh = fabs(m_dAktGesFlaeche + m_dAktDreieck);
    else					// Neueditierung einer Innenkontur
    {
    	sOutBuff += ResString (ResID (IDS_AKTINSEL, pRF), 40);
    	FlInhaltNormieren (fabs(m_dAktInsel + m_dAktDreieck), sOutBuff);
    	sOutBuff += ";  ";
    	dZwFlInh = m_dAktGesFlaeche - fabs(m_dAktInsel + m_dAktDreieck);
    }

    sOutBuff += ResString (ResID (IDS_GESAMTINHALT, pRF), 40);

    FlInhaltNormieren (dZwFlInh, sOutBuff);

    if (m_dAktDreieck != 0. || dZwFlInh != 0.)
    	DEX_SetMessageStringNoKickIdle (sOutBuff.c_str());

    return true;

} // AktuelleWerteAnzeigen
Ejemplo n.º 4
0
// --------------------------------------------------------------------------------------------
// Text in der Statuszeile entsprechend der CursorForm modifizieren
void CGeoEditExtension::StatuszeileModifizieren (CursForm CF)
{
ResString rsText (ResID (IDS_CURVERTEXMOVE, pRF), 100);		// case CURSFORM_STERN

	switch (CF)
	{
		case CURSFORM_CROSS:
			rsText = ResString (ResID (IDS_CUREDIT, pRF), 100);
			break;

		case CURSFORM_TRENNER:
			rsText = ResString (ResID (IDS_CURVERTEXADD, pRF), 100);
			break;

		case CURSFORM_KREUZ:
			rsText = ResString (ResID (IDS_CURVERTEXDEL, pRF), 100);
			break;

		case CURSFORM_INOBJEKT:
			rsText = ResString (ResID (IDS_CUROBJECTMOVE, pRF), 100);
			break;

		case CURSFORM_FANGEN:
			rsText = ResString (ResID (IDS_INMARKER, pRF), 100);
			break;
	}

	DEX_SetMessageStringNoKickIdle (rsText.Addr());

} // StatuszeileModifizieren
Ejemplo n.º 5
0
void JEApp::ReadyToRun()
{
	// instantiate UI here
	
	// preload ICON resources used by UI
	AppResources()->PreloadResourceType('ICON');
	
	// Window for Source1
	source1Win = new VideoWindow(BRect(10.0,75.0, 179.0,204.0), ResString(STRING_SOURCE1), true);
	
	// Window for Source2
	source2Win = new VideoWindow(BRect(10.0,280.0, 179.0,409.0), ResString(STRING_SOURCE2), true);
	
	// Window for default Output
	defaultOut = new VideoWindow(BRect(510.0,75.0, 839.0,324.0), ResString(STRING_DEFAULT_OUTPUT), false);
	
	// Window for Plugins
	piWindow = new PluginListWindow(BRect(510.0,375.0, 689.0,554.0), ResString(STRING_PLUGINS));
	
	// Main Window
	mainWin = new MainWindow(BRect(200.0,75.0, 499.0,474.0), "Jeepers Elvis!");
	
	// you need to tell the graphics pipeline about the default output
	PostMessage(JE_SET_DEFAULT_OUTPUT);
	// and the sources about their outputs
	PostMessage(JE_SET_SOURCE_OUTPUTS);
}
Ejemplo n.º 6
0
void JEApp::AboutRequested()
{
	BAlert *alert;
	BString gutsText("Jeepers Elvis! v0.2\n");
	gutsText += B_UTF8_COPYRIGHT;
	gutsText += " John Wiggins : 2000-2002\n\n- ";
	gutsText += RandomQuote();
	
	alert = new BAlert("about", gutsText.String(),
			ResString(STRING_EMAIL), ResString(STRING_OK));
	alert->Go(new BInvoker(new BMessage(JE_SEND_EMAIL), this));
}
Ejemplo n.º 7
0
// --------------------------------------------------------------------------------------------
// ComboBox füllen
void CTopoRelRefDlg :: FillComboBox (void)
{
ResourceFile RF (g_pDLLName);

ResString resNewItem (ResID(IDS_ATLEAST, &RF), 20);

	m_RefTypeList.AddString (resNewItem, 0);
	resNewItem = ResString (ResID(IDS_ATMOST, &RF), 20);
	m_RefTypeList.AddString (resNewItem, 1);
	resNewItem = ResString (ResID(IDS_EXACTLY, &RF), 204);
	m_RefTypeList.AddString (resNewItem, 2);
}
Ejemplo n.º 8
0
String string_from_mode(NOTIFYICONMODE mode)
{
	switch(mode) {
	  case NIM_SHOW:
		return ResString(IDS_NOTIFY_SHOW);

	  case NIM_HIDE:
		return ResString(IDS_NOTIFY_HIDE);

	  default:	//case NIM_AUTO
		return ResString(IDS_NOTIFY_AUTOHIDE);
	}
}
Ejemplo n.º 9
0
///////////////////////////////////////////////////////////////////////////////////////////////
// EventHandler 
// Call-Back-Funktion für die Initialisierung der Controls
void COptionsDlg::WindowInit (Event)
{
    // explizite Initialisierung der Controls
	m_CBoxFeature.FInit();
	m_CBoxDelete.FInit();
	m_CBoxMark.FInit();
	m_CBoxShowNew.FInit();
	m_CBoxShowOrig.FInit();
	m_Descript.FInit();

	m_OR.bFeat ? m_CBoxFeature.SetChecked (true) : m_CBoxFeature.SetChecked (false);
	m_OR.bDelete ? m_CBoxDelete.SetChecked (true) : m_CBoxDelete.SetChecked (false);
	m_OR.bMark ? m_CBoxMark.SetChecked (true) : m_CBoxMark.SetChecked (false);

	if (m_OR.bDelete) _ASSERTE (m_OR.bMark == false);
	if (m_OR.bMark) _ASSERTE (m_OR.bDelete == false);

	m_OR.bShowNew ? m_CBoxShowNew.SetChecked (true) : m_CBoxShowNew.SetChecked (false);
	m_OR.bShowOrig ? m_CBoxShowOrig.SetChecked (true) : m_CBoxShowOrig.SetChecked (false);

	m_Descript.SetText (ResString (ResID (IDS_KOMM21, pRF), 250).Addr());

	AdjustSheetWizardBttns (this, m_dwFlags);

} // WindowInit
Ejemplo n.º 10
0
bool CMainWindow::RegisterAndCreateWindow()
{
	WNDCLASSEX wcx;

	// Fill in the window class structure with default parameters
	wcx.cbSize = sizeof(WNDCLASSEX);
	wcx.style = CS_HREDRAW | CS_VREDRAW;
	wcx.lpfnWndProc = CWindow::stWinMsgHandler;
	wcx.cbClsExtra = 0;
	wcx.cbWndExtra = 0;
	wcx.hInstance = hResource;
	wcx.hCursor = NULL;
	wcx.lpszClassName = ResString(hResource, IDS_APP_TITLE);
	wcx.hIcon = LoadIcon(hResource, MAKEINTRESOURCE(IDI_TORTOISEUDIFF));
	wcx.hbrBackground = (HBRUSH)(COLOR_3DFACE+1);
	wcx.lpszMenuName = MAKEINTRESOURCE(IDC_TORTOISEUDIFF);
	wcx.hIconSm = LoadIcon(wcx.hInstance, MAKEINTRESOURCE(IDI_TORTOISEUDIFF));
	if (RegisterWindow(&wcx))
	{
		if (Create(WS_CAPTION | WS_MAXIMIZEBOX | WS_MINIMIZEBOX | WS_SIZEBOX | WS_SYSMENU | WS_CLIPCHILDREN, NULL))
		{
			m_FindBar.SetParent(*this);
			m_FindBar.Create(hResource, IDD_FINDBAR, *this);
			UpdateWindow(*this);
			return true;
		}
	}
	return false;
}
Ejemplo n.º 11
0
// --------------------------------------------------------------------------------------------
// wird gerufen, wenn diese Page aktiviert werden soll (i. a. dann, wenn in der vorangehenden
// Page der Button "Weiter" bzw. in der nachfolgenden Page der Button "Zurück" gedrückt wurde)
BOOL COptionsDlg::OnSetActive (NotifyEvt e)
{
	m_Descript.SetText (ResString (ResID (IDS_KOMM21, pRF), 250).Addr());
	AdjustSheetWizardBttns (this, m_dwFlags);

	return FALSE;		// bei Gültigkeit "FALSE" sonst "TRUE" (???)
}
Ejemplo n.º 12
0
// durch den optionalen Parameter PSH_NOAPPLYNOW wird der ApplyButton ganz einfach übergangen
CDesignDlg::CDesignDlg (Point FixPt)
		  : CEditObjectSheet (ResString(ResID(IDS_DESIGNCAP,pRF),70), g_pTE->MVWind(),
							  PSH_NOAPPLYNOW),
		    m_OK (this, IDOK)/*,
			m_Cancel (this, IDCANCEL)*/
{
	m_FixPt = FixPt;
}
Ejemplo n.º 13
0
///////////////////////////////////////////////////////////////////////////////////////////////
// EventHandler 
// Call-Back-Funktion für die Initialisierung der Controls
void CTopoRelRefDlg::WindowInit (Event)
{
ResourceFile RF (g_pDLLName);

    // explizite Initialisierung der Controls
    m_RBttnAllRefs.FInit();
	m_RBttnSomeRefs.FInit();
	m_RefTypeList.FInit();
	m_SpinCount.FInit();
	m_Descript.FInit();

	// Controls setzen
	FillComboBox();

	switch (m_iReferenceType)
	{
		case All:
			m_RBttnAllRefs.SetState (true);
			m_SpinCount.Disable();
			m_Descript.SetText (ResString (ResID (IDS_COMMALL, &RF), 250).Addr());
			break;

		case Least:
			m_RBttnSomeRefs.SetState (true);
			m_SpinCount.Enable();
			m_Descript.SetText (ResString (ResID (IDS_COMMLEAST, &RF), 250).Addr());
			break;

		case Most:
			m_RBttnSomeRefs.SetState (true);
			m_SpinCount.Enable();
			m_Descript.SetText (ResString (ResID (IDS_COMMMOST, &RF), 250).Addr());
			break;

		case Exact:
			m_RBttnSomeRefs.SetState (true);
			m_SpinCount.Enable();
			m_Descript.SetText (ResString (ResID (IDS_COMMEXACT, &RF), 250).Addr());
	}

	m_RefTypeList.ChangeCurrentIndex (m_iRefListIndex);
	m_RefTypeList.SetFocus();
	m_SpinCount.SetValue(m_lLimitCnt);

} // WindowInit
Ejemplo n.º 14
0
HyperlinkCtrl::HyperlinkCtrl(HWND hwnd, COLORREF colorLink, COLORREF colorVisited)
 :	super(hwnd),
	_cmd(ResString(GetDlgCtrlID(hwnd))),
	_textColor(colorLink),
	_colorVisited(colorVisited),
	_hfont(0),
	_crsr_link(0)
{
	init();
}
Ejemplo n.º 15
0
HyperlinkCtrl::HyperlinkCtrl(HWND owner, int id, COLORREF colorLink, COLORREF colorVisited)
 :	super(GetDlgItem(owner, id)),
	_cmd(ResString(id)),
	_textColor(colorLink),
	_colorVisited(colorVisited),
	_hfont(0),
	_crsr_link(0)
{
	init();
}
Ejemplo n.º 16
0
bool CIdentsDBExtension::ExportDataSourceAsXml (LPUNKNOWN pIUnk, HPROJECT hPr, LPCSTR pFName, ULONG &rulCnt) 
{
	if (pIUnk) LPPROGRESSINDICATOR(pIUnk) -> ChangeText (PIFLAG_FILENAME, pFName);

// Datei bilden, wenn diese noch nicht existiert
int fh = _lcreat (pFName, 0);

	if (fh < 0) return false;

bool fRet = false;

	{
	// hier geht's los
	CXMLDocument Doc (fh);		// <?xml ...?>

	char cbBuffer[80];			// TRiAS Version, aktuelle Zeit 
	os_time_and_date now;
	string resVersion (g_cbTRiAS);
	ResString resTempl (IDS_SIGNONVERSION_MODAL, _MAX_PATH);
	
		resVersion += ": ";
		resVersion += resTempl;
	
		ATLTRY(now = os_time_and_date::now());
		strcpy (cbBuffer, resVersion.c_str());
		strcat (cbBuffer, now.to_string(" %e. %B %Y, %T").c_str());
	
		CXMLComment (fh, cbBuffer);
		CXMLComment (fh, ResString (IDS_COPYRIGHT, 100));	// allgemeines Copyright

	// DTD einfügen
		CXMLRawData (fh, s_cbDTD);

	// die eigentlichen Infos ausgeben
	CXMLAttribute Attr ("Version", "1.0");
	CXMLNode MainNode (fh, g_cbTRiASMetadata, Attr);

	ENUMLONGKEY ELK;
	EXPORTDATA ED;

		ED.fh = fh;
		ED.pIUnk = pIUnk;
		ED.ulCnt = rulCnt;

		ELK.eKey = 'i';
		ELK.eFcn = (ENUMLONGKEYPROC)ExportIdentEntryAsXml;
		ELK.ePtr = &ED;
		fRet = DEX_EnumPBDDataEx (hPr, ELK);
		rulCnt = ED.ulCnt;
	}

// Datei wieder schließen
	_lclose (fh);		// Datei schließen
	return fRet;
}
Ejemplo n.º 17
0
CEditCoordDlg::CEditCoordDlg (int iCloseCnt, KoOrd* plCloseX, KoOrd* plCloseY, KoOrd x,
    						  KoOrd y)
    		 : CPropertyPage (ResID(IDD_COORDMODIFY, pRF),
    						  ResString (ResID(IDS_EDITCOORDCAP, pRF), 32)),
    		   m_X (this, IDE_XKOORD),
    		   m_Y (this, IDE_YKOORD),
			   m_DeleteButton (this, IDB_DELETE),
			   m_DeleteText (this, IDT_DELETE)
{
    StandardWerte (iCloseCnt, plCloseX, plCloseY, x, y);
}
Ejemplo n.º 18
0
// --------------------------------------------------------------------------------------------
// Editierfeld erhält den Focus
void CTopoRelRefDlg :: EditFocusChg (EditFocusChgEvt e)
{
	if (!e.gotFocus())
		return;		// Focus wurde entfernt

	if (IDC_LIMITCOUNT == (uint) e.GetControlID())
	{
	ResourceFile RF (g_pDLLName);

		m_Descript.SetText (ResString (ResID (IDS_COMMLIMITCOUNT, &RF), 250).Addr());
	}
} // EditFocusChg
Ejemplo n.º 19
0
    ExplorerAboutDlg(HWND hwnd)
     :    super(hwnd)
    {
        SetWindowIcon(hwnd, IDI_REACTOS);

        new FlatButton(hwnd, IDOK);

        _hfont = CreateFont(20, 0, 0, 0, FW_BOLD, TRUE, 0, 0, 0, 0, 0, 0, 0, TEXT("Sans Serif"));
        new ColorStatic(hwnd, IDC_ROS_EXPLORER, RGB(32,32,128), 0, _hfont);

        new HyperlinkCtrl(hwnd, IDC_WWW);

        FmtString ver_txt(ResString(IDS_EXPLORER_VERSION_STR), (LPCTSTR)ResString(IDS_VERSION_STR));
        SetWindowText(GetDlgItem(hwnd, IDC_VERSION_TXT), ver_txt);

        HWND hwnd_winver = GetDlgItem(hwnd, IDC_WIN_VERSION);
        SetWindowText(hwnd_winver, get_windows_version_str());
        SetWindowFont(hwnd_winver, GetStockFont(DEFAULT_GUI_FONT), FALSE);

        CenterWindow(hwnd);
    }
Ejemplo n.º 20
0
// --------------------------------------------------------------------------------------------
// Reaktion bei Click auf einen Button
void CTopoRelRefDlg::ButtonClick (ControlEvt e)
{
ResourceFile RF (g_pDLLName);

	switch ((uint) e.GetControlID())
	{
		case IDR_ALLREFOBJECTS:
			// nachfolgende if-Anweisung ist erforderlich, weil irgendwoher ein unerklärlicher
			// ButtoClick auf den m_RBttnAllRefs-Button kommt (#WM030131)
			if (m_RBttnAllRefs.GetState())
			{
				m_SpinCount.Disable();
				m_Descript.SetText (ResString (ResID (IDS_COMMALL, &RF), 250).Addr());
			}
			break;

		case IDR_SOMEREFOBJECTS:
			m_SpinCount.Enable();
			m_RefTypeList.SetFocus();
			m_Descript.SetText (ResString (ResID (IDS_COMMSOME, &RF), 250).Addr());
	}
} // ButtonClick
Ejemplo n.º 21
0
// --------------------------------------------------------------------------------------------
// Reaktion bei Click in die ComboBox
void CTopoRelRefDlg :: ListBoxSel (ControlEvt)
{
	m_RBttnAllRefs.SetState (false);
	m_RBttnSomeRefs.SetState (true);
	m_SpinCount.Enable();

ResourceFile RF (g_pDLLName);

	switch (m_RefTypeList.GetCurrentIndex())
	{
		case 0:
			m_Descript.SetText (ResString (ResID (IDS_COMMLEAST, &RF), 250).Addr());
			break;

		case 1:
			m_Descript.SetText (ResString (ResID (IDS_COMMMOST, &RF), 250).Addr());
			break;

		case 2:
			m_Descript.SetText (ResString (ResID (IDS_COMMEXACT, &RF), 250).Addr());
	}
}
Ejemplo n.º 22
0
HRESULT DesktopShellView::DoDesktopContextMenu(int x, int y)
{
	IContextMenu* pcm;

	HRESULT hr = DesktopFolder()->GetUIObjectOf(_hwnd, 0, NULL, IID_IContextMenu, NULL, (LPVOID*)&pcm);

	if (SUCCEEDED(hr)) {
		pcm = _cm_ifs.query_interfaces(pcm);

		HMENU hmenu = CreatePopupMenu();

		if (hmenu) {
			hr = pcm->QueryContextMenu(hmenu, 0, FCIDM_SHVIEWFIRST, FCIDM_SHVIEWLAST-1, CMF_NORMAL|CMF_EXPLORE);

			if (SUCCEEDED(hr)) {
				AppendMenu(hmenu, MF_SEPARATOR, 0, NULL);
				AppendMenu(hmenu, 0, FCIDM_SHVIEWLAST-1, ResString(IDS_ABOUT_EXPLORER));

				UINT idCmd = TrackPopupMenu(hmenu, TPM_LEFTALIGN|TPM_RETURNCMD|TPM_RIGHTBUTTON, x, y, 0, _hwnd, NULL);

				_cm_ifs.reset();

				if (idCmd == FCIDM_SHVIEWLAST-1) {
					explorer_about(_hwnd);
				} else if (idCmd) {
				  CMINVOKECOMMANDINFO cmi;

				  cmi.cbSize = sizeof(CMINVOKECOMMANDINFO);
				  cmi.fMask = 0;
				  cmi.hwnd = _hwnd;
				  cmi.lpVerb = (LPCSTR)(INT_PTR)(idCmd - FCIDM_SHVIEWFIRST);
				  cmi.lpParameters = NULL;
				  cmi.lpDirectory = NULL;
				  cmi.nShow = SW_SHOWNORMAL;
				  cmi.dwHotKey = 0;
				  cmi.hIcon = 0;

				  hr = pcm->InvokeCommand(&cmi);
				}
			} else
				_cm_ifs.reset();
			DestroyMenu(hmenu);
		}

		pcm->Release();
	}

	return hr;
}
Ejemplo n.º 23
0
LRESULT CMainWindow::DoCommand(int id, LPARAM lParam)
{
    switch (id)
    {
    case ID_FILE_OPEN:
        {
            if (OpenDialog())
            {
                picWindow1.SetPic(leftpicpath, L"", true);
                picWindow2.SetPic(rightpicpath, L"", false);
                if (bOverlap)
                {
                    picWindow1.SetSecondPic(picWindow2.GetPic(), rightpictitle, rightpicpath);
                }
                else
                {
                    picWindow1.SetSecondPic();
                }
                RECT rect;
                GetClientRect(*this, &rect);
                PositionChildren(&rect);
                picWindow1.FitImageInWindow();
                picWindow2.FitImageInWindow();
            }
        }
        break;
    case ID_VIEW_IMAGEINFO:
        {
            bShowInfo = !bShowInfo;
            HMENU hMenu = GetMenu(*this);
            UINT uCheck = MF_BYCOMMAND;
            uCheck |= bShowInfo ? MF_CHECKED : MF_UNCHECKED;
            CheckMenuItem(hMenu, ID_VIEW_IMAGEINFO, uCheck);

            picWindow1.ShowInfo(bShowInfo);
            picWindow2.ShowInfo(bShowInfo);
            picWindow3.ShowInfo(bShowInfo);

            // change the state of the toolbar button
            TBBUTTONINFO tbi;
            tbi.cbSize = sizeof(TBBUTTONINFO);
            tbi.dwMask = TBIF_STATE;
            tbi.fsState = bShowInfo ? TBSTATE_CHECKED | TBSTATE_ENABLED : TBSTATE_ENABLED;
            SendMessage(hwndTB, TB_SETBUTTONINFO, ID_VIEW_IMAGEINFO, (LPARAM)&tbi);
        }
        break;
    case ID_VIEW_OVERLAPIMAGES:
        {
            bOverlap = !bOverlap;
            HMENU hMenu = GetMenu(*this);
            UINT uCheck = MF_BYCOMMAND;
            uCheck |= bOverlap ? MF_CHECKED : MF_UNCHECKED;
            CheckMenuItem(hMenu, ID_VIEW_OVERLAPIMAGES, uCheck);
            uCheck |= ((m_BlendType == CPicWindow::BLEND_ALPHA) && bOverlap) ? MF_CHECKED : MF_UNCHECKED;
            CheckMenuItem(hMenu, ID_VIEW_BLENDALPHA, uCheck);
            UINT uEnabled = MF_BYCOMMAND;
            uEnabled |= bOverlap ? MF_ENABLED : MF_DISABLED | MF_GRAYED;
            EnableMenuItem(hMenu, ID_VIEW_BLENDALPHA, uEnabled);

            // change the state of the toolbar button
            TBBUTTONINFO tbi;
            tbi.cbSize = sizeof(TBBUTTONINFO);
            tbi.dwMask = TBIF_STATE;
            tbi.fsState = bOverlap ? TBSTATE_CHECKED | TBSTATE_ENABLED : TBSTATE_ENABLED;
            SendMessage(hwndTB, TB_SETBUTTONINFO, ID_VIEW_OVERLAPIMAGES, (LPARAM)&tbi);

            tbi.fsState = ((m_BlendType == CPicWindow::BLEND_ALPHA) && bOverlap) ? TBSTATE_CHECKED : 0;
            if (bOverlap)
                tbi.fsState |= TBSTATE_ENABLED;
            else
                tbi.fsState = 0;
            SendMessage(hwndTB, TB_SETBUTTONINFO, ID_VIEW_BLENDALPHA, (LPARAM)&tbi);

            if (bOverlap)
                tbi.fsState = 0;
            else
                tbi.fsState = bVertical ? TBSTATE_ENABLED | TBSTATE_CHECKED : TBSTATE_ENABLED;
            SendMessage(hwndTB, TB_SETBUTTONINFO, ID_VIEW_ARRANGEVERTICAL, (LPARAM)&tbi);

            if (bOverlap)
            {
                bLinkedPositions = true;
                picWindow1.LinkPositions(bLinkedPositions);
                picWindow2.LinkPositions(bLinkedPositions);
                tbi.fsState = TBSTATE_CHECKED;
            }
            else
                tbi.fsState = bLinkedPositions ? TBSTATE_ENABLED | TBSTATE_CHECKED : TBSTATE_ENABLED;
            SendMessage(hwndTB, TB_SETBUTTONINFO, ID_VIEW_LINKIMAGESTOGETHER, (LPARAM)&tbi);

            ShowWindow(picWindow2, bOverlap ? SW_HIDE : SW_SHOW);

            if (bOverlap)
            {
                picWindow1.StopTimer();
                picWindow2.StopTimer();
                picWindow1.SetSecondPic(picWindow2.GetPic(), rightpictitle, rightpicpath,
                    picWindow2.GetHPos(), picWindow2.GetVPos());
                picWindow1.SetBlendAlpha(m_BlendType, 0.5f);
            }
            else
            {
                picWindow1.SetSecondPic();
            }
            picWindow1.SetOverlapMode(bOverlap);
            picWindow2.SetOverlapMode(bOverlap);


            RECT rect;
            GetClientRect(*this, &rect);
            PositionChildren(&rect);

            return 0;
        }
        break;
    case ID_VIEW_BLENDALPHA:
        {
            if (m_BlendType == CPicWindow::BLEND_ALPHA)
                m_BlendType = CPicWindow::BLEND_XOR;
            else
                m_BlendType = CPicWindow::BLEND_ALPHA;

            HMENU hMenu = GetMenu(*this);
            UINT uCheck = MF_BYCOMMAND;
            uCheck |= ((m_BlendType == CPicWindow::BLEND_ALPHA) && bOverlap) ? MF_CHECKED : MF_UNCHECKED;
            CheckMenuItem(hMenu, ID_VIEW_BLENDALPHA, uCheck);
            UINT uEnabled = MF_BYCOMMAND;
            uEnabled |= bOverlap ? MF_ENABLED : MF_DISABLED | MF_GRAYED;
            EnableMenuItem(hMenu, ID_VIEW_BLENDALPHA, uEnabled);

            // change the state of the toolbar button
            TBBUTTONINFO tbi;
            tbi.cbSize = sizeof(TBBUTTONINFO);
            tbi.dwMask = TBIF_STATE;
            tbi.fsState = ((m_BlendType == CPicWindow::BLEND_ALPHA) && bOverlap) ? TBSTATE_CHECKED | TBSTATE_ENABLED : TBSTATE_ENABLED;
            SendMessage(hwndTB, TB_SETBUTTONINFO, ID_VIEW_BLENDALPHA, (LPARAM)&tbi);
            picWindow1.SetBlendAlpha(m_BlendType, picWindow1.GetBlendAlpha());
            PositionChildren();
        }
        break;
    case ID_VIEW_TRANSPARENTCOLOR:
        {
            static COLORREF customColors[16] = {0};
            CHOOSECOLOR ccDlg = { 0 };
            ccDlg.lStructSize = sizeof(ccDlg);
            ccDlg.hwndOwner = m_hwnd;
            ccDlg.rgbResult = transparentColor;
            ccDlg.lpCustColors = customColors;
            ccDlg.Flags = CC_RGBINIT | CC_FULLOPEN;
            if(ChooseColor(&ccDlg))
            {
                transparentColor = ccDlg.rgbResult;
                picWindow1.SetTransparentColor(transparentColor);
                picWindow2.SetTransparentColor(transparentColor);
                picWindow3.SetTransparentColor(transparentColor);
                // The color picker takes the focus and we don't get it back.
                ::SetFocus(picWindow1);
            }
        }
        break;
    case ID_VIEW_FITIMAGEWIDTHS:
        {
            bFitWidths = !bFitWidths;
            picWindow1.FitWidths(bFitWidths);
            picWindow2.FitWidths(bFitWidths);
            picWindow3.FitWidths(bFitWidths);

            HMENU hMenu = GetMenu(*this);
            UINT uCheck = MF_BYCOMMAND;
            uCheck |= bFitWidths ? MF_CHECKED : MF_UNCHECKED;
            CheckMenuItem(hMenu, ID_VIEW_FITIMAGEWIDTHS, uCheck);

            // change the state of the toolbar button
            TBBUTTONINFO tbi;
            tbi.cbSize = sizeof(TBBUTTONINFO);
            tbi.dwMask = TBIF_STATE;
            tbi.fsState = bFitWidths ? TBSTATE_CHECKED | TBSTATE_ENABLED : TBSTATE_ENABLED;
            SendMessage(hwndTB, TB_SETBUTTONINFO, ID_VIEW_FITIMAGEWIDTHS, (LPARAM)&tbi);
        }
        break;
    case ID_VIEW_FITIMAGEHEIGHTS:
        {
            bFitHeights = !bFitHeights;
            picWindow1.FitHeights(bFitHeights);
            picWindow2.FitHeights(bFitHeights);
            picWindow3.FitHeights(bFitHeights);

            HMENU hMenu = GetMenu(*this);
            UINT uCheck = MF_BYCOMMAND;
            uCheck |= bFitHeights ? MF_CHECKED : MF_UNCHECKED;
            CheckMenuItem(hMenu, ID_VIEW_FITIMAGEHEIGHTS, uCheck);

            // change the state of the toolbar button
            TBBUTTONINFO tbi;
            tbi.cbSize = sizeof(TBBUTTONINFO);
            tbi.dwMask = TBIF_STATE;
            tbi.fsState = bFitHeights ? TBSTATE_CHECKED | TBSTATE_ENABLED : TBSTATE_ENABLED;
            SendMessage(hwndTB, TB_SETBUTTONINFO, ID_VIEW_FITIMAGEHEIGHTS, (LPARAM)&tbi);
        }
        break;
    case ID_VIEW_LINKIMAGESTOGETHER:
        {
            bLinkedPositions = !bLinkedPositions;
            picWindow1.LinkPositions(bLinkedPositions);
            picWindow2.LinkPositions(bLinkedPositions);
            picWindow3.LinkPositions(bLinkedPositions);

            HMENU hMenu = GetMenu(*this);
            UINT uCheck = MF_BYCOMMAND;
            uCheck |= bLinkedPositions ? MF_CHECKED : MF_UNCHECKED;
            CheckMenuItem(hMenu, ID_VIEW_LINKIMAGESTOGETHER, uCheck);

            // change the state of the toolbar button
            TBBUTTONINFO tbi;
            tbi.cbSize = sizeof(TBBUTTONINFO);
            tbi.dwMask = TBIF_STATE;
            tbi.fsState = bLinkedPositions ? TBSTATE_CHECKED | TBSTATE_ENABLED : TBSTATE_ENABLED;
            SendMessage(hwndTB, TB_SETBUTTONINFO, ID_VIEW_LINKIMAGESTOGETHER, (LPARAM)&tbi);
        }
        break;
    case ID_VIEW_ALPHA0:
        picWindow1.SetBlendAlpha(m_BlendType, 0.0f);
        break;
    case ID_VIEW_ALPHA255:
        picWindow1.SetBlendAlpha(m_BlendType, 1.0f);
        break;
    case ID_VIEW_ALPHA127:
        picWindow1.SetBlendAlpha(m_BlendType, 0.5f);
        break;
    case ID_VIEW_ALPHATOGGLE:
        picWindow1.ToggleAlpha();
        break;
    case ID_VIEW_FITIMAGESINWINDOW:
        {
            picWindow1.FitImageInWindow();
            picWindow2.FitImageInWindow();
            picWindow3.FitImageInWindow();
        }
        break;
    case ID_VIEW_ORININALSIZE:
        {
            picWindow1.SetZoom(100, false);
            picWindow2.SetZoom(100, false);
            picWindow3.SetZoom(100, false);
            picWindow1.CenterImage();
            picWindow2.CenterImage();
            picWindow3.CenterImage();
        }
        break;
    case ID_VIEW_ZOOMIN:
        {
            picWindow1.Zoom(true, false);
            if ((!(bFitWidths || bFitHeights))&&(!bOverlap))
            {
                picWindow2.Zoom(true, false);
                picWindow3.Zoom(true, false);
            }
        }
        break;
    case ID_VIEW_ZOOMOUT:
        {
            picWindow1.Zoom(false, false);
            if ((!(bFitWidths || bFitHeights))&&(!bOverlap))
            {
                picWindow2.Zoom(false, false);
                picWindow3.Zoom(false, false);
            }
        }
        break;
    case ID_VIEW_ARRANGEVERTICAL:
        {
            bVertical = !bVertical;
            RECT rect;
            GetClientRect(*this, &rect);
            if (bVertical)
            {
                RECT tbRect;
                GetWindowRect(hwndTB, &tbRect);
                LONG tbHeight = tbRect.bottom-tbRect.top-1;
                if (selectionPaths.size() != 3)
                {
                    nSplitterPos = (rect.bottom-rect.top)/2+tbHeight;
                    nSplitterPos2 = 0;
                }
                else
                {
                    nSplitterPos = (rect.bottom-rect.top)/3+tbHeight;
                    nSplitterPos2 = (rect.bottom-rect.top)*2/3+tbHeight;
                }
            }
            else
            {
                if (selectionPaths.size() != 3)
                {
                    nSplitterPos = (rect.right-rect.left)/2;
                    nSplitterPos2 = 0;
                }
                else
                {
                    nSplitterPos = (rect.right-rect.left)/3;
                    nSplitterPos2 = (rect.right-rect.left)*2/3;
                }
            }
            HMENU hMenu = GetMenu(*this);
            UINT uCheck = MF_BYCOMMAND;
            uCheck |= bVertical ? MF_CHECKED : MF_UNCHECKED;
            CheckMenuItem(hMenu, ID_VIEW_ARRANGEVERTICAL, uCheck);
            // change the state of the toolbar button
            TBBUTTONINFO tbi;
            tbi.cbSize = sizeof(TBBUTTONINFO);
            tbi.dwMask = TBIF_STATE;
            tbi.fsState = bVertical ? TBSTATE_CHECKED | TBSTATE_ENABLED : TBSTATE_ENABLED;
            SendMessage(hwndTB, TB_SETBUTTONINFO, ID_VIEW_ARRANGEVERTICAL, (LPARAM)&tbi);

            PositionChildren(&rect);
        }
        break;
    case ID_ABOUT:
        {
            CAboutDlg dlg(*this);
            dlg.DoModal(hInst, IDD_ABOUT, *this);
        }
        break;
    case SELECTBUTTON_ID:
        {
            HWND hSource = (HWND)lParam;
            FileType resolveWith;
            if (picWindow1 == hSource)
                resolveWith = FileTypeMine;
            else if (picWindow2 == hSource)
                resolveWith = FileTypeBase;
            else if (picWindow3 == hSource)
                resolveWith = FileTypeTheirs;
            else
                break;

            if (selectionResult.empty())
            {
                PostQuitMessage(resolveWith);
                break;
            }

            CopyFile(selectionPaths[resolveWith].c_str(), selectionResult.c_str(), FALSE);

            CAutoBuf projectRoot;
            if (git_repository_discover(projectRoot, CUnicodeUtils::GetUTF8(selectionResult.c_str()), FALSE, nullptr) < 0 && strstr(projectRoot->ptr, "/.git/"))
            {
                PostQuitMessage(resolveWith);
                break;
            }

            CAutoRepository repository(projectRoot->ptr);
            if (!repository)
            {
                PostQuitMessage(resolveWith);
                break;
            }

            CStringA subpath = CUnicodeUtils::GetUTF8(selectionResult.c_str()).Mid((int)strlen(git_repository_workdir(repository)));

            CAutoIndex index;
            if (git_repository_index(index.GetPointer(), repository) || (git_index_get_bypath(index, subpath, 1) == nullptr && git_index_get_bypath(index, subpath, 2) == nullptr))
            {
                PostQuitMessage(resolveWith);
                break;
            }

            CString sTemp;
            sTemp.Format(ResString(hResource, IDS_MARKASRESOLVED), (LPCTSTR)CPathUtils::GetFileNameFromPath(selectionResult.c_str()));
            if (MessageBox(m_hwnd, sTemp, L"TortoiseGitMerge", MB_YESNO | MB_ICONQUESTION) != IDYES)
                break;

            CString cmd;
            cmd.Format(L"\"%sTortoiseGitProc.exe\" /command:resolve /path:\"%s\" /closeonend:1 /noquestion /skipcheck /silent", (LPCTSTR)CPathUtils::GetAppDirectory(), selectionResult.c_str());
            if (resolveMsgWnd)
                cmd.AppendFormat(L" /resolvemsghwnd:%I64d /resolvemsgwparam:%I64d /resolvemsglparam:%I64d", (__int64)resolveMsgWnd, (__int64)resolveMsgWParam, (__int64)resolveMsgLParam);

            STARTUPINFO startup = { 0 };
            PROCESS_INFORMATION process = { 0 };
            startup.cb = sizeof(startup);

            if (!CreateProcess(nullptr, cmd.GetBuffer(), nullptr, nullptr, FALSE, CREATE_UNICODE_ENVIRONMENT, nullptr, nullptr, &startup, &process))
            {
                cmd.ReleaseBuffer();
                PostQuitMessage(resolveWith);
                break;
            }
            cmd.ReleaseBuffer();

            AllowSetForegroundWindow(process.dwProcessId);

            CloseHandle(process.hThread);
            CloseHandle(process.hProcess);

            PostQuitMessage(resolveWith);
        }
        break;
    case IDM_EXIT:
        ::PostQuitMessage(0);
        return 0;
        break;
    default:
        break;
    };
    return 1;
}
Ejemplo n.º 24
0
CIntOverflow::CIntOverflow (const char *_S)
	: CIntException (NULL != _S ? _S : ResString(IDS_INTOVERFLOW))
{
}
Ejemplo n.º 25
0
CPrivInstruction::CPrivInstruction (const char *_S)
	: CWin32Exception (NULL != _S ? _S : ResString(IDS_PRIVINSTRUCTION))
{
}
Ejemplo n.º 26
0
CNoncontinueableException::CNoncontinueableException (const char *_S)
	: CWin32Exception (NULL != _S ? _S : ResString(IDS_NONCONTINUEABLE))
{
}
Ejemplo n.º 27
0
void QuickLaunchBar::AddShortcuts()
{
	CONTEXT("QuickLaunchBar::AddShortcuts()");

	WaitCursor wait;

	try {
		TCHAR path[MAX_PATH];

		SpecialFolderFSPath app_data(CSIDL_APPDATA, _hwnd);	///@todo perhaps also look into CSIDL_COMMON_APPDATA ?

		_stprintf(path, TEXT("%s\\")QUICKLAUNCH_FOLDER, (LPCTSTR)app_data);

		RecursiveCreateDirectory(path);
		_dir = new ShellDirectory(GetDesktopFolder(), path, _hwnd);

		_dir->smart_scan(SORT_NAME);

		 // immediatelly extract the shortcut icons
		for(Entry*entry=_dir->_down; entry; entry=entry->_next)
			entry->_icon_id = entry->safe_extract_icon(ICF_NORMAL);
	} catch(COMException&) {
		return;
	}


	ShellFolder desktop_folder;
	WindowCanvas canvas(_hwnd);

	COLORREF bk_color = GetSysColor(COLOR_BTNFACE);
	HBRUSH bk_brush = GetSysColorBrush(COLOR_BTNFACE);

	AddButton(ID_MINIMIZE_ALL, g_Globals._icon_cache.get_icon(ICID_MINIMIZE).create_bitmap(bk_color, bk_brush, canvas), ResString(IDS_MINIMIZE_ALL), NULL);
	AddButton(ID_EXPLORE, g_Globals._icon_cache.get_icon(ICID_EXPLORER).create_bitmap(bk_color, bk_brush, canvas), ResString(IDS_TITLE), NULL);

	TBBUTTON sep = {0, -1, TBSTATE_ENABLED, BTNS_SEP, {0, 0}, 0, 0};
	SendMessage(_hwnd, TB_INSERTBUTTON, INT_MAX, (LPARAM)&sep);

	int cur_desktop = g_Globals._desktops._current_desktop;
	ResString desktop_fmt(IDS_DESKTOP_NUM);

	HDC hdc = CreateCompatibleDC(canvas);
	DWORD size = SendMessage(_hwnd, TB_GETBUTTONSIZE, 0, 0);
	int cx = LOWORD(size);
	int cy = HIWORD(size);
	RECT rect = {0, 0, cx, cy};
	RECT textRect = {0, 0, cx-7, cy-7};

	for(int i=0; i<DESKTOP_COUNT; ++i) {
		HBITMAP hbmp = CreateCompatibleBitmap(canvas, cx, cy);
		HBITMAP hbmp_old = SelectBitmap(hdc, hbmp);

		FontSelection font(hdc, GetStockFont(ANSI_VAR_FONT));
		FmtString num_txt(TEXT("%d"), i+1);
		TextColor color(hdc, RGB(64,64,64));
		BkMode mode(hdc, TRANSPARENT);
		FillRect(hdc, &rect, GetSysColorBrush(COLOR_BTNFACE));
		DrawText(hdc, num_txt, num_txt.length(), &textRect, DT_CENTER|DT_VCENTER|DT_SINGLELINE);

		SelectBitmap(hdc, hbmp_old);

		AddButton(ID_SWITCH_DESKTOP_1+i, hbmp, FmtString(desktop_fmt, i+1), NULL, cur_desktop==i?TBSTATE_ENABLED|TBSTATE_PRESSED:TBSTATE_ENABLED);
	}
	DeleteDC(hdc);

	for(Entry*entry=_dir->_down; entry; entry=entry->_next) {
		 // hide files like "desktop.ini"
		if (entry->_data.dwFileAttributes & FILE_ATTRIBUTE_HIDDEN)
			continue;

		 // hide subfolders
		if (!(entry->_data.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)) {
			HBITMAP hbmp = g_Globals._icon_cache.get_icon(entry->_icon_id).create_bitmap(bk_color, bk_brush, canvas);

			AddButton(_next_id++, hbmp, entry->_display_name, entry);	//entry->_etype==ET_SHELL? desktop_folder.get_name(static_cast<ShellEntry*>(entry)->_pidl): entry->_display_name);
		}
	}

	_btn_dist = LOWORD(SendMessage(_hwnd, TB_GETBUTTONSIZE, 0, 0));
	_size = _entries.size() * _btn_dist;

	SendMessage(GetParent(_hwnd), PM_RESIZE_CHILDREN, 0, 0);
}
Ejemplo n.º 28
0
CWin32UserException::CWin32UserException (UINT uiCode, const char *_S)
	: m_uiCode(uiCode), 
	  CWin32Exception (NULL != _S ? _S : ResString(IDS_USERDEFINED))
{
}
Ejemplo n.º 29
0
// Header ---------------------------------------------------------------------
// Ausgabe des Skalierungs-Vektors und des Offsets
Bool Header :: OutScaleAndOffset (void) {

//  nur Ausgabe, wenn noch keine Enträge vorh.
	ResString HVar (ResID (IDS_KOEFF11), 20);

#if _MSC_VER >= 1100
	HPROJECT hPr = DEX_GetDataSourceHandle();
	HeaderEntryX HD (HVar,hPr);
#else
	HeaderEntryX HD (HVar);
#endif

	if (HD.Status () != HE_INVALID)			// Header in Datenquelle vorhanden
		return True;

	if ((XMax == XMin) || (YMax == YMin)) 
	{
		// DEX_Error (RC_HeaderOutScale, EC_NOSCALE);
		yyerror (IDS_BILDM_ERR);
		return False;
	}
	else 
	{

	// Erst einmal bei einstelligem Runden belassen ! Später Koord.Systeme unterscheiden
		XMin = Check (XMin, FALSE);		// Koordinaten runden
		YMin = Check (YMin, FALSE);
		XMax = Check (XMax, TRUE);
		YMax = Check (YMax, TRUE);

		//double Scale = fabs (MaxKoord / (XMax - XMin));
		//double ScaleY = fabs (MaxKoord / (YMax - YMin));
		//double dMaxKoord = max (abs (XMax), abs (YMax));

	//	double Scale = fabs (MaxKoord / (XMax - XMin));
	//	double ScaleY = fabs (MaxKoord / (YMax - YMin));
	//	Scale = min (Scale, ScaleY);
	//	Scale = 1 / Scale;  		// inverse Matrix !

// KK991006
		double dMaxKoord = (double) MAXKOORD;

		//double Scale = fabs (dMaxKoord / (XMax - XMin));
		//double ScaleY = fabs (dMaxKoord / (YMax - YMin));
		
		//Scale = min (Scale, ScaleY);
		double Scale = max ( XMax,YMax);

		double dMulti = 1.0;
		double dScale = Scale;
		while ( dMaxKoord >= dScale ) {
			dMulti = dMulti*CheckKonst;
			dScale = Scale * dMulti;
		}

		Scale = dMulti / CheckKonst;
		
		Scale = 1 / Scale;  		// inverse Matrix !

		
	//  Skalierung ausgeben
		char Buffer [50] = "";

	// Header Datenquelle füllen
#if _MSC_VER >= 1100
		HeaderEntryX HD11 (HVar,hPr);                      	// Koeff11
#else
		HeaderEntryX HD11 (HVar);                      	// Koeff11
#endif

		HD11.SetEntryText (DtoA (Scale, Buffer, HeaderDoubleFormat));
		if (HD11.WriteBack () != EC_OKAY)
			return False;

		HVar = ResString (ResID (IDS_KOEFF12), 20);     // Koeff12

#if _MSC_VER >= 1100
		HeaderEntryX HD12 (HVar,hPr);
#else
		HeaderEntryX HD12 (HVar);                      	// Koeff12
#endif

		HD12.SetEntryText ("0.0");
		if (HD12.WriteBack () != EC_OKAY)
			return False;

		HVar = ResString (ResID (IDS_KOEFF21), 20);     // Koeff21

#if _MSC_VER >= 1100
		HeaderEntryX HD21 (HVar,hPr);
#else
		HeaderEntryX HD21 (HVar);
#endif

		HD21.SetEntryText ("0.0");
		if (HD21.WriteBack () != EC_OKAY)
			return False;

		HVar = ResString (ResID (IDS_KOEFF22), 20);     // Koeff22

#if _MSC_VER >= 1100
		HeaderEntryX HD22 (HVar,hPr);
#else
		HeaderEntryX HD22 (HVar);
#endif

		HD22.SetEntryText (Buffer);
		if (HD22.WriteBack () != EC_OKAY)
			return False;

	//  Offset ausgeben
		HVar = ResString (ResID (IDS_OFFSETX), 20);     // XMin

#if _MSC_VER >= 1100
		HeaderEntryX OX (HVar,hPr);
#else
		HeaderEntryX OX (HVar);
#endif

		OX.SetEntryText (DtoA (XMin, Buffer, HeaderDoubleFormat));
		if (OX.WriteBack () != EC_OKAY)
			return False;

		HVar = ResString (ResID (IDS_OFFSETY), 20);   	// YMin

#if _MSC_VER >= 1100
		HeaderEntryX OY (HVar,hPr);
#else
		HeaderEntryX OY (HVar);
#endif

		OY.SetEntryText (DtoA (YMin, Buffer, HeaderDoubleFormat));
		if (OY.WriteBack () != EC_OKAY)
			return False;

//		Änderung im Projekt nachziehen !
		short iFlag = true;

#if _MSC_VER >= 1100

		HVar = ResString (ResID (IDS_KOEFF11), 20);
		HeaderEntryX HD (HVar);


		if (HD.Status () == HE_INVALID) {		// Projektheader nicht vorhanden

			HeaderEntryX HD11 (HVar);                      	// Koeff11

			HD11.SetEntryText (DtoA (Scale, Buffer, HeaderDoubleFormat));
			if (HD11.WriteBack () != EC_OKAY)
				iFlag = false;

			HVar = ResString (ResID (IDS_KOEFF12), 20);     // Koeff12

			HeaderEntryX HD12 (HVar);                      	// Koeff12

			HD12.SetEntryText ("0.0");
			if (HD12.WriteBack () != EC_OKAY)
				iFlag = false;

			HVar = ResString (ResID (IDS_KOEFF21), 20);     // Koeff21

			HeaderEntryX HD21 (HVar);


			HD21.SetEntryText ("0.0");
			if (HD21.WriteBack () != EC_OKAY)
				iFlag = false;

			HVar = ResString (ResID (IDS_KOEFF22), 20);     // Koeff22

			HeaderEntryX HD22 (HVar);


			HD22.SetEntryText (Buffer);
			if (HD22.WriteBack () != EC_OKAY)
				iFlag = false;

	//  Offset ausgeben
			HVar = ResString (ResID (IDS_OFFSETX), 20);     // XMin

			HeaderEntryX OX (HVar);


			OX.SetEntryText (DtoA (XMin, Buffer, HeaderDoubleFormat));
			if (OX.WriteBack () != EC_OKAY)
				iFlag = false;

			HVar = ResString (ResID (IDS_OFFSETY), 20);   	// YMin

			HeaderEntryX OY (HVar);


			OY.SetEntryText (DtoA (YMin, Buffer, HeaderDoubleFormat));
			if (OY.WriteBack () != EC_OKAY)
				iFlag = false;
			
		}
#endif


	//  hier noch TRIAS benachrichtigen, daß Scaling sich geändert hat
		DEXN_ReReadHeader ();
		DEXN_ReScale();
		return iFlag;
	}
}
Ejemplo n.º 30
0
int APIENTRY _tWinMain(HINSTANCE hInstance,
                       HINSTANCE hPrevInstance,
                       LPTSTR    lpCmdLine,
                       int       nCmdShow)
{
    UNREFERENCED_PARAMETER(hPrevInstance);
    UNREFERENCED_PARAMETER(lpCmdLine);
    UNREFERENCED_PARAMETER(nCmdShow);

    SetDllDirectory(L"");
    ::OleInitialize(NULL);

    // we need some of the common controls
    INITCOMMONCONTROLSEX icex;
    icex.dwSize = sizeof(INITCOMMONCONTROLSEX);
    icex.dwICC = ICC_LINK_CLASS|ICC_LISTVIEW_CLASSES|ICC_PAGESCROLLER_CLASS
        |ICC_PROGRESS_CLASS|ICC_STANDARD_CLASSES|ICC_TAB_CLASSES|ICC_TREEVIEW_CLASSES
        |ICC_UPDOWN_CLASS|ICC_USEREX_CLASSES|ICC_WIN95_CLASSES;
    InitCommonControlsEx(&icex);

    apr_initialize();
    setlocale(LC_ALL, "");
    // to avoid that SASL will look for and load its plugin dlls all around the
    // system, we set the path here.
    // Note that SASL doesn't have to be initialized yet for this to work
    sasl_set_path(SASL_PATH_TYPE_PLUGIN, (LPSTR)(LPCSTR)CUnicodeUtils::StdGetUTF8(CAppUtils::GetAppDirectory()).c_str());

    // first create a hidden window which serves as our main window for receiving
    // the window messages, starts the monitoring thread and handles the icon
    // in the tray area.

    MSG msg;
    msg.wParam = FALSE;
    HACCEL hAccelTable;

    hInst = hInstance;

    INITCOMMONCONTROLSEX used = {
        sizeof(INITCOMMONCONTROLSEX),
        ICC_BAR_CLASSES
    };
    InitCommonControlsEx(&used);

    Snarl::SnarlInterface snarlIface;
    CCmdLineParser parser(lpCmdLine);
    if (parser.HasKey(_T("patchfile")))
    {
        hAccelTable = LoadAccelerators(hInst, MAKEINTRESOURCE(IDC_CMVIEWER));
        // in this case, we start another part of our application, not
        // the monitoring part.
        CDiffViewer viewer(hInst);
        if (parser.HasVal(_T("title")))
            viewer.SetTitle(parser.GetVal(_T("title")));
        if (viewer.RegisterAndCreateWindow())
        {
            if (viewer.LoadFile(parser.GetVal(_T("patchfile"))))
            {
                ::ShowWindow(viewer.GetHWNDEdit(), SW_SHOW);
                ::SetFocus(viewer.GetHWNDEdit());

                // Main message loop:
                while (GetMessage(&msg, NULL, 0, 0))
                {
                    if (!TranslateAccelerator(viewer, hAccelTable, &msg))
                    {
                        TranslateMessage(&msg);
                        DispatchMessage(&msg);
                    }
                }
            }
        }
    }
    else
    {
        //only one instance of this application part allowed
        g_mutex = ::CreateMutex(NULL, FALSE, APPNAME_MUTEX);

        if (g_mutex != NULL)
        {
            if ((::GetLastError()==ERROR_ALREADY_EXISTS)&&(!parser.HasKey(_T("task"))))
            {
                //an instance of this app is already running
                HWND hWnd = FindWindow(ResString(hInst, IDS_APP_TITLE), NULL);      //try finding the running instance of this app
                if (hWnd)
                {
                    UINT COMMITMONITOR_SHOWDLGMSG = RegisterWindowMessage(_T("CommitMonitor_ShowDlgMsg"));
                    PostMessage(hWnd, COMMITMONITOR_SHOWDLGMSG ,0 ,0);              //open the window of the already running app
                    SetForegroundWindow(hWnd);                                      //set the window to front
                }
                apr_terminate();
                return FALSE;
            }
        }

        CHiddenWindow hiddenWindow(hInst);

        hAccelTable = LoadAccelerators(hInst, MAKEINTRESOURCE(IDC_COMMITMONITOR));

        if (hiddenWindow.RegisterAndCreateWindow())
        {
            if ((snarlIface.GetVersionEx() != Snarl::M_FAILED)&&(Snarl::SnarlInterface::GetSnarlWindow() != NULL))
            {
                std::wstring imgPath = CAppUtils::GetAppDataDir()+L"\\CM.png";
                if (CAppUtils::ExtractBinResource(_T("PNG"), IDB_COMMITMONITOR, imgPath))
                {
                    // register with Snarl
                    snarlIface.RegisterApp(_T("CommitMonitor"), imgPath.c_str(), imgPath.c_str(), hiddenWindow);
                    snarlIface.RegisterAlert(_T("CommitMonitor"), ALERTTYPE_NEWPROJECTS);
                    snarlIface.RegisterAlert(_T("CommitMonitor"), ALERTTYPE_NEWCOMMITS);
                    snarlIface.RegisterAlert(_T("CommitMonitor"), ALERTTYPE_FAILEDCONNECT);
                }
            }

            if (parser.HasKey(_T("task")))
            {
                hiddenWindow.SetTask(true);
            }
            else if (!parser.HasKey(_T("hidden")))
            {
                hiddenWindow.ShowDialog();
            }
            // Main message loop:
            while (GetMessage(&msg, NULL, 0, 0))
            {
                if (!TranslateAccelerator(hiddenWindow, hAccelTable, &msg))
                {
                    TranslateMessage(&msg);
                    DispatchMessage(&msg);
                }
            }
        }
        if (!hiddenWindow.StopThread(2000))
        {
            hiddenWindow.RemoveTrayIcon();
            TerminateProcess(GetCurrentProcess(), 0);
        }
    }

    ::OleUninitialize();
    sasl_done();
    apr_terminate();

    if ((snarlIface.GetVersionEx() != Snarl::M_FAILED)&&(Snarl::SnarlInterface::GetSnarlWindow() != NULL))
    {
        // unregister with Snarl
        snarlIface.UnregisterApp();
    }

    return (int) msg.wParam;
}