Files
odfstudio/vcl/inc/NotebookbarPopup.hxx
Mike Kaganski 374dd9fbd6 Unify on VclPtr::reset
We used to have two duplicating sets: smart pointer-like VclPtr::reset,
and Reference-style VclPtr::set / VclPtr::clear. There is no need in
this duplication. Further, in ScopedVclPtr, reset is hidden / removed
to avoid skipping disposeAndClear; but the twin functions are kept
accessible, possibly as an overlook.

This change drops Reference-style VclPtr::set / VclPtr::clear, and
unifies on VclPtr::reset, which looks more consistent with the class
nature (it is closer to shared_ptr, than to uno::Reference). Doing
that uncovered one place, where a ScopedVclPtr was used incorrectly:
clear() was used for NotebookbarPopup::m_pParent in NotebookbarPopup
dtor. I assume then, that the correct class needed here is VclPtr.

Change-Id: I0746075c58d793fabdce1bc357afea8ee455cd8a
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/185553
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
Tested-by: Jenkins
2025-05-25 11:23:18 +02:00

55 lines
1.6 KiB
C++

/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/*
* This file is part of the LibreOffice project.
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* This file incorporates work covered by the following license notice:
*
* 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 .
*/
#pragma once
#include <vcl/layout.hxx>
#include <vcl/toolkit/floatwin.hxx>
/*
* Popup - shows hidden content, controls are moved to this popup
* and after close moved to the original parent
*/
class NotebookbarPopup final : public FloatingWindow
{
private:
VclPtr<VclHBox> m_pBox;
VclPtr<VclHBox> m_pParent;
public:
explicit NotebookbarPopup(const VclPtr<VclHBox>& pParent);
virtual ~NotebookbarPopup() override;
VclHBox* getBox();
virtual void PopupModeEnd() override;
void hideSeparators(bool bHide);
void dispose() override;
void ApplyBackground(vcl::Window* pWindow);
void RemoveBackground(vcl::Window* pWindow);
};
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */