diff options
Diffstat (limited to 'dbaccess/source/ui/app/AppTitleWindow.cxx')
-rw-r--r-- | dbaccess/source/ui/app/AppTitleWindow.cxx | 161 |
1 files changed, 22 insertions, 139 deletions
diff --git a/dbaccess/source/ui/app/AppTitleWindow.cxx b/dbaccess/source/ui/app/AppTitleWindow.cxx index d6d121ba4909..d5e604394b2f 100644 --- a/dbaccess/source/ui/app/AppTitleWindow.cxx +++ b/dbaccess/source/ui/app/AppTitleWindow.cxx @@ -17,166 +17,49 @@ * the License at http://www.apache.org/licenses/LICENSE-2.0 . */ -#include "AppTitleWindow.hxx" #include <core_resource.hxx> #include <vcl/svapp.hxx> -#include <vcl/settings.hxx> -#include <vcl/event.hxx> +#include "AppTitleWindow.hxx" namespace dbaui { - -OTitleWindow::OTitleWindow(vcl::Window* _pParent, const char* pTitleId, WinBits _nBits, bool _bShift) -: Window(_pParent,_nBits | WB_DIALOGCONTROL) -, m_aSpace1(VclPtr<FixedText>::Create(this)) -, m_aSpace2(VclPtr<FixedText>::Create(this)) -, m_aTitle(VclPtr<FixedText>::Create(this)) -, m_pChild(nullptr) -, m_bShift(_bShift) +OTitleWindow::OTitleWindow(weld::Container* pParent, TranslateId pTitleId) + : m_xBuilder(Application::CreateBuilder(pParent, "dbaccess/ui/titlewindow.ui")) + , m_xContainer(m_xBuilder->weld_container("TitleWindow")) + , m_xTitleFrame(m_xBuilder->weld_container("titleparent")) + , m_xTitle(m_xBuilder->weld_label("title")) + , m_xChildContainer(m_xBuilder->weld_container("box")) { setTitle(pTitleId); - SetBorderStyle(WindowBorderStyle::MONO); - ImplInitSettings(); - - const StyleSettings& rStyle = Application::GetSettings().GetStyleSettings(); - vcl::Window* pWindows[] = { m_aSpace1.get(), m_aSpace2.get(), m_aTitle.get() }; - for (vcl::Window* pWindow : pWindows) - { - vcl::Font aFont = pWindow->GetControlFont(); - aFont.SetWeight(WEIGHT_BOLD); - pWindow->SetControlFont(aFont); - pWindow->SetControlForeground(rStyle.GetLightColor()); - pWindow->SetControlBackground(rStyle.GetShadowColor()); - pWindow->Show(); - } -} - -OTitleWindow::~OTitleWindow() -{ - disposeOnce(); -} -void OTitleWindow::dispose() -{ - if ( m_pChild ) - { - m_pChild->Hide(); - } - m_pChild.disposeAndClear(); - m_aSpace1.disposeAndClear(); - m_aSpace2.disposeAndClear(); - m_aTitle.disposeAndClear(); - vcl::Window::dispose(); -} - -void OTitleWindow::setChildWindow(vcl::Window* _pChild) -{ - m_pChild = _pChild; + m_xContainer->set_stack_background(); + m_xTitleFrame->set_title_background(); + m_xTitle->set_label_type(weld::LabelType::Title); } -#define SPACE_BORDER 1 -void OTitleWindow::Resize() -{ - // parent window dimension - Size aOutputSize( GetOutputSize() ); - long nOutputWidth = aOutputSize.Width(); - long nOutputHeight = aOutputSize.Height(); - - Size aTextSize = LogicToPixel(Size(6, 3), MapMode(MapUnit::MapAppFont)); - sal_Int32 nXOffset = aTextSize.Width(); - sal_Int32 nYOffset = aTextSize.Height(); - sal_Int32 nHeight = GetTextHeight() + 2*nYOffset; +OTitleWindow::~OTitleWindow() {} - m_aSpace1->SetPosSizePixel( Point(SPACE_BORDER, SPACE_BORDER ), - Size(nXOffset , nHeight - SPACE_BORDER) ); - m_aSpace2->SetPosSizePixel( Point(nXOffset + SPACE_BORDER, SPACE_BORDER ), - Size(nOutputWidth - nXOffset - 2*SPACE_BORDER, nYOffset) ); - m_aTitle->SetPosSizePixel( Point(nXOffset + SPACE_BORDER, nYOffset + SPACE_BORDER), - Size(nOutputWidth - nXOffset - 2*SPACE_BORDER, nHeight - nYOffset - SPACE_BORDER) ); - if ( m_pChild ) - { - m_pChild->SetPosSizePixel( Point(m_bShift ? (nXOffset+SPACE_BORDER) : sal_Int32(SPACE_BORDER), nHeight + nXOffset + SPACE_BORDER), - Size(nOutputWidth - ( m_bShift ? (2*nXOffset - 2*SPACE_BORDER) : sal_Int32(SPACE_BORDER) ), nOutputHeight - nHeight - 2*nXOffset - 2*SPACE_BORDER) ); - } -} +weld::Container* OTitleWindow::getChildContainer() { return m_xChildContainer.get(); } -void OTitleWindow::setTitle(const char* pTitleId) +void OTitleWindow::setChildWindow(const std::shared_ptr<OChildWindow>& rChild) { - if (pTitleId) - { - m_aTitle->SetText(DBA_RES(pTitleId)); - } + m_xChild = rChild; } -void OTitleWindow::GetFocus() +void OTitleWindow::setTitle(TranslateId pTitleId) { - Window::GetFocus(); - if ( m_pChild ) - m_pChild->GrabFocus(); + if (!pTitleId) + return; + m_xTitle->set_label(DBA_RES(pTitleId)); } -long OTitleWindow::GetWidthPixel() const +void OTitleWindow::GrabFocus() { - Size aTextSize = LogicToPixel(Size(12, 0), MapMode(MapUnit::MapAppFont)); - sal_Int32 nWidth = GetTextWidth(m_aTitle->GetText()) + 2*aTextSize.Width(); - - return nWidth; + if (m_xChild) + m_xChild->GrabFocus(); } -void OTitleWindow::DataChanged( const DataChangedEvent& rDCEvt ) -{ - Window::DataChanged( rDCEvt ); - - if ( (rDCEvt.GetType() == DataChangedEventType::FONTS) || - (rDCEvt.GetType() == DataChangedEventType::DISPLAY) || - (rDCEvt.GetType() == DataChangedEventType::FONTSUBSTITUTION) || - ((rDCEvt.GetType() == DataChangedEventType::SETTINGS) && - (rDCEvt.GetFlags() & AllSettingsFlags::STYLE)) ) - { - ImplInitSettings(); - Invalidate(); - } -} - -void OTitleWindow::ImplInitSettings() -{ - // FIXME RenderContext - AllSettings aAllSettings = GetSettings(); - StyleSettings aStyle = aAllSettings.GetStyleSettings(); - aStyle.SetMonoColor(aStyle.GetActiveBorderColor());//GetMenuBorderColor()); - aAllSettings.SetStyleSettings(aStyle); - SetSettings(aAllSettings); - - const StyleSettings& rStyleSettings = GetSettings().GetStyleSettings(); - vcl::Font aFont = rStyleSettings.GetFieldFont(); - aFont.SetColor( rStyleSettings.GetWindowTextColor() ); - SetPointFont(*this, aFont); - - SetTextColor( rStyleSettings.GetFieldTextColor() ); - SetTextFillColor(); - - SetBackground( rStyleSettings.GetFieldColor() ); -} - -void OTitleWindow::ApplySettings(vcl::RenderContext& rRenderContext) -{ - // FIXME RenderContext - AllSettings aAllSettings = rRenderContext.GetSettings(); - StyleSettings aStyle = aAllSettings.GetStyleSettings(); - aStyle.SetMonoColor(aStyle.GetActiveBorderColor());//GetMenuBorderColor()); - aAllSettings.SetStyleSettings(aStyle); - rRenderContext.SetSettings(aAllSettings); - - const StyleSettings& rStyleSettings = rRenderContext.GetSettings().GetStyleSettings(); - vcl::Font aFont = rStyleSettings.GetFieldFont(); - aFont.SetColor(rStyleSettings.GetWindowTextColor()); - SetPointFont(*this, aFont); - - rRenderContext.SetTextColor(rStyleSettings.GetFieldTextColor()); - rRenderContext.SetTextFillColor(); - - rRenderContext.SetBackground(rStyleSettings.GetFieldColor()); -} +bool OTitleWindow::HasChildPathFocus() const { return m_xChild && m_xChild->HasChildPathFocus(); } } // namespace dbaui /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |