12 #include <string_view>
21 #include <rtl/bootstrap.hxx>
22 #include <osl/file.hxx>
23 #include <config_folders.h>
24 #include <com/sun/star/frame/XFrame.hpp>
25 #include <com/sun/star/ui/ContextChangeEventMultiplexer.hpp>
30 OUString sShareLayer(
"${$BRAND_BASE_DIR/" LIBO_ETC_FOLDER
"/" SAL_CONFIGFILE(
31 "bootstrap")
":UserInstallation}/user/config/soffice.cfg/");
32 rtl::Bootstrap::expandMacros(sShareLayer);
36 static bool doesFileExist(std::u16string_view sUIDir, std::u16string_view sUIFile)
38 OUString sUri = OUString::Concat(sUIDir) + sUIFile;
40 return( file.open(0) == osl::FileBase::E_None );
55 virtual void SAL_CALL
disposing(const ::css::lang::EventObject&)
override;
59 const css::uno::Reference<css::frame::XFrame>& rFrame,
63 , m_pViewShell(nullptr)
65 , m_sUIXMLDescription(rUIXMLDescription)
72 if ( doesCustomizedUIExist )
76 && (rUIXMLDescription ==
"modules/swriter/ui/notebookbar.ui"
77 || rUIXMLDescription ==
"modules/scalc/ui/notebookbar.ui"
78 || rUIXMLDescription ==
"modules/simpress/ui/notebookbar.ui");
89 new VclBuilder(
this, sUIDir, rUIXMLDescription, rID, rFrame,
true, &aNotebookBarAddonsItem));
98 OUString
aName =
"ContextContainer";
100 aName += OUString::number(i);
103 if (pContextContainer)
107 while( pContextContainer !=
nullptr );
153 return Window::PreNotify( rNEvt );
166 bool bCanHandleSmallerWidth =
false;
167 bool bCanHandleSmallerHeight =
false;
172 if (bIsLayoutEnabled && pChild->GetType() == WindowType::SCROLLWINDOW)
174 WinBits nStyle = pChild->GetStyle();
176 bCanHandleSmallerWidth =
true;
178 bCanHandleSmallerHeight =
true;
182 if (!bCanHandleSmallerWidth)
183 nWidth = std::max(nWidth, aSize.
Width());
184 if (!bCanHandleSmallerHeight)
185 nHeight = std::max(nHeight, aSize.
Height());
242 auto xMultiplexer(css::ui::ContextChangeEventMultiplexer::get(
253 auto xMultiplexer(css::ui::ContextChangeEventMultiplexer::get(
317 ::Color aTextColor = aStyleSet.GetFieldTextColor();
318 aStyleSet.SetDialogTextColor( aTextColor );
319 aStyleSet.SetButtonTextColor( aTextColor );
320 aStyleSet.SetRadioCheckTextColor( aTextColor );
321 aStyleSet.SetGroupTextColor( aTextColor );
322 aStyleSet.SetLabelTextColor( aTextColor );
323 aStyleSet.SetWindowTextColor( aTextColor );
324 aStyleSet.SetTabTextColor(aTextColor);
325 aStyleSet.SetToolTextColor(aTextColor);
336 ::Color aTextColor = aStyleSet.GetPersonaMenuBarTextColor().value_or(
COL_BLACK );
337 aStyleSet.SetDialogTextColor( aTextColor );
338 aStyleSet.SetButtonTextColor( aTextColor );
339 aStyleSet.SetRadioCheckTextColor( aTextColor );
340 aStyleSet.SetGroupTextColor( aTextColor );
341 aStyleSet.SetLabelTextColor( aTextColor );
342 aStyleSet.SetWindowTextColor( aTextColor );
343 aStyleSet.SetTabTextColor(aTextColor);
344 aStyleSet.SetToolTextColor(aTextColor);
VclPtr< NotebookBar > mpParent
static void setLayoutAllocation(vcl::Window &rWindow, const Point &rPos, const Size &rSize)
const Color & GetDialogColor() const
virtual void dispose() override
This is intended to be used to clear any locally held references to other Window-subclass objects...
void setWidth(tools::Long nWidth)
AllSettings PersonaSettings
void SetStyleSettings(const StyleSettings &rSet)
std::vector< NotebookbarContextControl * > m_pContextContainers
virtual Size GetOptimalSize() const override
static Context GetContextEnum(const OUString &rsContextName)
static Size getLayoutRequisition(const vcl::Window &rWindow)
const StyleSettings & GetStyleSettings() const
static OUString getCustomizedUIRootDir()
BitmapEx const & GetPersonaHeader() const
VclPtr< vcl::Window > m_xVclContentArea
virtual void StateChanged(StateChangedType nStateChange) override
virtual Size GetSizePixel() const
virtual void SetSizePixel(const Size &rNewSize)
WinBits const WB_AUTOVSCROLL
virtual void SetSettings(const AllSettings &rSettings) override
void UpdateDefaultSettings()
VclPtr< SystemWindow > m_pSystemWindow
Reference< XController > xController
Creates a hierarchy of vcl::Windows (widgets) from a .ui file for dialogs, sidebar, etc.
const BorderLinePrimitive2D *pCandidateB assert(pCandidateA)
virtual bool PreNotify(NotifyEvent &rNEvt) override
void SetSystemWindow(SystemWindow *pSystemWindow)
OString OUStringToOString(std::u16string_view str, ConnectionSettings const *settings)
std::set< css::uno::Reference< css::frame::XController > > m_alisteningControllers
NotebookBarContextChangeEventListener(NotebookBar *p)
virtual void setPosSizePixel(tools::Long nX, tools::Long nY, tools::Long nWidth, tools::Long nHeight, PosSizeFlags nFlags=PosSizeFlags::All) override
css::uno::Reference< css::ui::XContextChangeEventListener > m_pEventListener
static OUString GetUIRootDir()
WinBits const WB_DIALOGCONTROL
#define SAL_CONFIGFILE(name)
void DataChanged(const DataChangedEvent &rDCEvt) override
virtual bool PreNotify(NotifyEvent &rNEvt) override
virtual void Resize() override
void SetStyle(WallpaperStyle eStyle)
virtual void Invalidate(InvalidateFlags nFlags=InvalidateFlags::NONE)
static bool doesFileExist(std::u16string_view sUIDir, std::u16string_view sUIFile)
void ControlListenerForCurrentController(bool bListen)
void StateChanged(const StateChangedType nStateChange) override
tools::Long Width() const
std::unique_ptr< VclBuilder > m_pUIBuilder
bool isLayoutEnabled(const vcl::Window *pWindow)
MouseNotifyEvent GetType() const
virtual void dispose() override
This is intended to be used to clear any locally held references to other Window-subclass objects...
const AllSettings & GetSettings() const
NotebookBar(Window *pParent, const OString &rID, const OUString &rUIXMLDescription, const css::uno::Reference< css::frame::XFrame > &rFrame, const NotebookBarAddonsItem &aNotebookBarAddonsItem)
AllSettings DefaultSettings
void SetDisposeCallback(const Link< const SfxViewShell *, void > rDisposeCallback, const SfxViewShell *pViewShell)
void SetStyle(WinBits nStyle)
vcl::Window * GetWindow(GetWindowType nType) const
virtual void setPosSizePixel(tools::Long nX, tools::Long nY, tools::Long nWidth, tools::Long nHeight, PosSizeFlags nFlags=PosSizeFlags::All)
virtual Size GetOptimalSize() const override
SAL_DLLPRIVATE bool ImplIsInTaskPaneList(vcl::Window *pWin)
Link< const SfxViewShell *, void > m_rDisposeLink
virtual void Resize() override
void UpdatePersonaSettings()
css::uno::Reference< css::frame::XFrame > mxFrame
virtual ~NotebookBar() override
static VclPtr< reference_type > Create(Arg &&...arg)
A construction helper for VclPtr.
tools::Long Height() const
Reference< XComponentContext > getProcessComponentContext()
const ::std::vector< Color > ImpSvNumberformatScan::StandardColor COL_BLACK
virtual void SAL_CALL notifyContextChangeEvent(const css::ui::ContextChangeEventObject &rEvent) override
void RemoveWindow(vcl::Window *pWindow)
WinBits const WB_AUTOHSCROLL
const SfxViewShell * m_pViewShell
virtual void SAL_CALL disposing(const ::css::lang::EventObject &) override
void AddWindow(vcl::Window *pWindow)
TaskPaneList * GetTaskPaneList()
virtual void SetContext(vcl::EnumContext::Context eContext)=0
void StopListeningAllControllers()
This implements Widget Layout-based notebook-like menu bar.
split from the main class since it needs different ref-counting mana
virtual void DataChanged(const DataChangedEvent &rDCEvt)
void Show(bool bVisible=true, ShowFlags nFlags=ShowFlags::NONE)