/************************************************************** * * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. * *************************************************************/ // MARKER(update_precomp.py): autogen include statement, do not remove #include "precompiled_sd.hxx" #include "TextLogger.hxx" #include "EditWindow.hxx" #include #include namespace sd { namespace notes { TextLogger* TextLogger::spInstance = NULL; TextLogger& TextLogger::Instance (void) { if (spInstance == NULL) { ::vos::OGuard aGuard (::Application::GetSolarMutex()); if (spInstance == NULL) spInstance = new TextLogger (); } return *spInstance; } TextLogger::TextLogger (void) : mpEditWindow (NULL) { } void TextLogger::AppendText (const char* sText) { OSL_TRACE (sText); if (mpEditWindow != NULL) mpEditWindow->InsertText (UniString::CreateFromAscii(sText)); } void TextLogger::AppendText (const String& sText) { ByteString s(sText, RTL_TEXTENCODING_ISO_8859_1); OSL_TRACE (s.GetBuffer()); if (mpEditWindow != NULL) mpEditWindow->InsertText (sText); } void TextLogger::AppendNumber (long int nValue) { AppendText (String::CreateFromInt32(nValue)); } void TextLogger::ConnectToEditWindow (EditWindow* pEditWindow) { if (mpEditWindow != pEditWindow) { if (pEditWindow != NULL) pEditWindow->AddEventListener( LINK(this, TextLogger, WindowEventHandler)); else mpEditWindow->RemoveEventListener( LINK(this, TextLogger, WindowEventHandler)); mpEditWindow = pEditWindow; } } IMPL_LINK(TextLogger, WindowEventHandler, VclWindowEvent*, pEvent) { if (pEvent != NULL) { DBG_ASSERT(static_cast(pEvent)->GetWindow() == mpEditWindow, "TextLogger: received event from unknown window"); switch (pEvent->GetId()) { case VCLEVENT_WINDOW_CLOSE: case VCLEVENT_OBJECT_DYING: mpEditWindow = NULL; break; } } return sal_True; } } } // end of namespace ::sd::notes