summaryrefslogtreecommitdiff
path: root/vcl/source/app/salvtables.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'vcl/source/app/salvtables.cxx')
-rw-r--r--vcl/source/app/salvtables.cxx109
1 files changed, 102 insertions, 7 deletions
diff --git a/vcl/source/app/salvtables.cxx b/vcl/source/app/salvtables.cxx
index e84c989841fa..c55b15367fde 100644
--- a/vcl/source/app/salvtables.cxx
+++ b/vcl/source/app/salvtables.cxx
@@ -235,6 +235,8 @@ SalMenuItem::~SalMenuItem()
class SalInstanceBuilder;
+namespace {
+
class SalInstanceWidget : public virtual weld::Widget
{
protected:
@@ -735,6 +737,8 @@ public:
}
};
+}
+
void SalInstanceWidget::HandleEventListener(VclWindowEvent& rEvent)
{
if (rEvent.GetId() == VclEventId::WindowGetFocus)
@@ -856,6 +860,8 @@ namespace
}
}
+namespace {
+
class SalInstanceMenu : public weld::Menu
{
private:
@@ -927,12 +933,16 @@ public:
}
};
+}
+
IMPL_LINK_NOARG(SalInstanceMenu, SelectMenuHdl, ::Menu*, bool)
{
signal_activate(m_xMenu->GetCurItemIdent());
return true;
}
+namespace {
+
class SalInstanceToolbar : public SalInstanceWidget, public virtual weld::Toolbar
{
private:
@@ -1062,6 +1072,8 @@ public:
}
};
+}
+
IMPL_LINK_NOARG(SalInstanceToolbar, ClickHdl, ToolBox*, void)
{
sal_uInt16 nItemId = m_xToolBox->GetCurItemId();
@@ -1074,6 +1086,8 @@ IMPL_LINK_NOARG(SalInstanceToolbar, DropdownClick, ToolBox*, void)
set_item_active(m_xToolBox->GetItemCommand(nItemId).toUtf8(), true);
}
+namespace {
+
class SalInstanceSizeGroup : public weld::SizeGroup
{
private:
@@ -1156,6 +1170,8 @@ public:
}
};
+}
+
std::unique_ptr<weld::Container> SalInstanceWidget::weld_parent() const
{
vcl::Window* pParent = m_xWidget->GetParent();
@@ -1164,6 +1180,8 @@ std::unique_ptr<weld::Container> SalInstanceWidget::weld_parent() const
return std::make_unique<SalInstanceContainer>(pParent, m_pBuilder, false);
}
+namespace {
+
class SalInstanceBox : public SalInstanceContainer, public virtual weld::Box
{
public:
@@ -1179,8 +1197,6 @@ public:
}
};
-namespace
-{
void CollectChildren(const vcl::Window& rCurrent, const basegfx::B2IPoint& rTopLeft, weld::ScreenShotCollection& rControlDataCollection)
{
if (rCurrent.IsVisible())
@@ -1205,7 +1221,6 @@ namespace
}
}
}
-}
class SalInstanceWindow : public SalInstanceContainer, public virtual weld::Window
{
@@ -1395,6 +1410,8 @@ public:
}
};
+}
+
IMPL_LINK_NOARG(SalInstanceWindow, HelpHdl, vcl::Window&, bool)
{
help();
@@ -1424,7 +1441,6 @@ namespace
}
}
}
-}
class SalInstanceDialog : public SalInstanceWindow, public virtual weld::Dialog
{
@@ -1616,6 +1632,8 @@ public:
};
+}
+
IMPL_LINK(SalInstanceDialog, PopupScreenShotMenuHdl, const CommandEvent&, rCEvt, bool)
{
if (CommandEventId::ContextMenu == rCEvt.GetCommand())
@@ -1657,6 +1675,8 @@ IMPL_LINK(SalInstanceDialog, PopupScreenShotMenuHdl, const CommandEvent&, rCEvt,
return false;
}
+namespace {
+
class SalInstanceMessageDialog : public SalInstanceDialog, public virtual weld::MessageDialog
{
private:
@@ -1929,6 +1949,8 @@ public:
}
};
+}
+
IMPL_LINK_NOARG(SalInstanceAssistant, OnRoadmapItemSelected, LinkParamNone*, void)
{
if (notify_events_disabled())
@@ -1961,6 +1983,8 @@ IMPL_LINK_NOARG(SalInstanceAssistant, UpdateRoadmap_Hdl, Timer*, void)
enable_notify_events();
}
+namespace {
+
class SalInstanceFrame : public SalInstanceContainer, public virtual weld::Frame
{
private:
@@ -2201,6 +2225,8 @@ public:
}
};
+}
+
IMPL_LINK(SalInstanceScrolledWindow, VscrollHdl, ScrollBar*, pScrollBar, void)
{
signal_vadjustment_changed();
@@ -2215,6 +2241,8 @@ IMPL_LINK_NOARG(SalInstanceScrolledWindow, HscrollHdl, ScrollBar*, void)
m_aOrigHScrollHdl.Call(&m_xScrolledWindow->getHorzScrollBar());
}
+namespace {
+
class SalInstanceNotebook : public SalInstanceContainer, public virtual weld::Notebook
{
private:
@@ -2330,6 +2358,8 @@ public:
}
};
+}
+
IMPL_LINK_NOARG(SalInstanceNotebook, DeactivatePageHdl, TabControl*, bool)
{
return !m_aLeavePageHdl.IsSet() || m_aLeavePageHdl.Call(get_current_page_ident());
@@ -2340,6 +2370,8 @@ IMPL_LINK_NOARG(SalInstanceNotebook, ActivatePageHdl, TabControl*, void)
m_aEnterPageHdl.Call(get_current_page_ident());
}
+namespace {
+
class SalInstanceVerticalNotebook : public SalInstanceContainer, public virtual weld::Notebook
{
private:
@@ -2436,6 +2468,8 @@ public:
}
};
+}
+
IMPL_LINK_NOARG(SalInstanceVerticalNotebook, DeactivatePageHdl, VerticalTabControl*, bool)
{
return !m_aLeavePageHdl.IsSet() || m_aLeavePageHdl.Call(get_current_page_ident());
@@ -2446,6 +2480,8 @@ IMPL_LINK_NOARG(SalInstanceVerticalNotebook, ActivatePageHdl, VerticalTabControl
m_aEnterPageHdl.Call(get_current_page_ident());
}
+namespace {
+
class SalInstanceButton : public SalInstanceContainer, public virtual weld::Button
{
private:
@@ -2508,6 +2544,8 @@ public:
}
};
+}
+
IMPL_LINK(SalInstanceButton, ClickHdl, ::Button*, pButton, void)
{
//if there's no handler set, disengage our intercept and
@@ -2547,6 +2585,8 @@ weld::Button* SalInstanceAssistant::weld_widget_for_response(int nResponse)
return nullptr;
}
+namespace {
+
class SalInstanceMenuButton : public SalInstanceButton, public virtual weld::MenuButton
{
private:
@@ -2676,6 +2716,8 @@ public:
}
};
+}
+
IMPL_LINK_NOARG(SalInstanceMenuButton, MenuSelectHdl, ::MenuButton*, void)
{
signal_selected(m_xMenuButton->GetCurItemIdent());
@@ -2688,6 +2730,8 @@ IMPL_LINK_NOARG(SalInstanceMenuButton, ActivateHdl, ::MenuButton*, void)
signal_toggled();
}
+namespace {
+
class SalInstanceLinkButton : public SalInstanceContainer, public virtual weld::LinkButton
{
private:
@@ -2730,6 +2774,8 @@ public:
}
};
+}
+
IMPL_LINK(SalInstanceLinkButton, ClickHdl, FixedHyperlink&, rButton, void)
{
bool bConsumed = signal_activate_link();
@@ -2737,6 +2783,8 @@ IMPL_LINK(SalInstanceLinkButton, ClickHdl, FixedHyperlink&, rButton, void)
m_aOrigClickHdl.Call(rButton);
}
+namespace {
+
class SalInstanceRadioButton : public SalInstanceButton, public virtual weld::RadioButton
{
private:
@@ -2800,6 +2848,8 @@ public:
}
};
+}
+
IMPL_LINK_NOARG(SalInstanceRadioButton, ToggleHdl, ::RadioButton&, void)
{
if (notify_events_disabled())
@@ -2807,6 +2857,8 @@ IMPL_LINK_NOARG(SalInstanceRadioButton, ToggleHdl, ::RadioButton&, void)
signal_toggled();
}
+namespace {
+
class SalInstanceToggleButton : public SalInstanceButton, public virtual weld::ToggleButton
{
private:
@@ -2859,6 +2911,8 @@ public:
}
};
+}
+
IMPL_LINK(SalInstanceToggleButton, ToggleListener, VclWindowEvent&, rEvent, void)
{
if (notify_events_disabled())
@@ -2867,6 +2921,8 @@ IMPL_LINK(SalInstanceToggleButton, ToggleListener, VclWindowEvent&, rEvent, void
signal_toggled();
}
+namespace {
+
class SalInstanceCheckButton : public SalInstanceButton, public virtual weld::CheckButton
{
private:
@@ -2913,6 +2969,8 @@ public:
}
};
+}
+
IMPL_LINK_NOARG(SalInstanceCheckButton, ToggleHdl, CheckBox&, void)
{
if (notify_events_disabled())
@@ -2921,6 +2979,8 @@ IMPL_LINK_NOARG(SalInstanceCheckButton, ToggleHdl, CheckBox&, void)
signal_toggled();
}
+namespace {
+
class SalInstanceScale : public SalInstanceWidget, public virtual weld::Scale
{
private:
@@ -2957,11 +3017,15 @@ public:
}
};
+}
+
IMPL_LINK_NOARG(SalInstanceScale, SlideHdl, Slider*, void)
{
signal_value_changed();
}
+namespace {
+
class SalInstanceSpinner : public SalInstanceWidget, public virtual weld::Spinner
{
private:
@@ -3075,6 +3139,8 @@ public:
}
};
+}
+
IMPL_LINK_NOARG(SalInstanceCalendar, SelectHdl, ::Calendar*, void)
{
if (notify_events_disabled())
@@ -3113,7 +3179,6 @@ namespace
return sText;
}
};
-}
class SalInstanceEntry : public SalInstanceWidget, public virtual weld::Entry
{
@@ -3282,6 +3347,8 @@ public:
}
};
+}
+
IMPL_LINK_NOARG(SalInstanceEntry, ChangeHdl, Edit&, void)
{
signal_changed();
@@ -3300,6 +3367,8 @@ IMPL_LINK_NOARG(SalInstanceEntry, ActivateHdl, Edit&, bool)
return m_aActivateHdl.Call(*this);
}
+namespace {
+
struct SalInstanceTreeIter : public weld::TreeIter
{
SalInstanceTreeIter(const SalInstanceTreeIter* pOrig)
@@ -3317,8 +3386,6 @@ struct SalInstanceTreeIter : public weld::TreeIter
SvTreeListEntry* iter;
};
-namespace
-{
TriState get_toggle(SvTreeListEntry* pEntry, int col)
{
++col; //skip dummy/expander column
@@ -4939,6 +5006,8 @@ IMPL_LINK_NOARG(SalInstanceIconView, DoubleClickHdl, SvTreeListBox*, bool)
return !signal_item_activated();
}
+namespace {
+
class SalInstanceSpinButton : public SalInstanceEntry, public virtual weld::SpinButton
{
private:
@@ -5046,6 +5115,8 @@ public:
}
};
+}
+
IMPL_LINK_NOARG(SalInstanceSpinButton, ActivateHdl, Edit&, bool)
{
// tdf#122348 return pressed to end dialog
@@ -5077,6 +5148,8 @@ IMPL_LINK(SalInstanceSpinButton, InputHdl, sal_Int64*, pResult, TriState)
return eRet;
}
+namespace {
+
class SalInstanceFormattedSpinButton : public SalInstanceEntry, public virtual weld::FormattedSpinButton
{
private:
@@ -5181,6 +5254,8 @@ public:
}
};
+}
+
std::unique_ptr<weld::Label> SalInstanceFrame::weld_label_widget() const
{
FixedText* pLabel = dynamic_cast<FixedText*>(m_xFrame->get_label_widget());
@@ -5189,6 +5264,8 @@ std::unique_ptr<weld::Label> SalInstanceFrame::weld_label_widget() const
return std::make_unique<SalInstanceLabel>(pLabel, m_pBuilder, false);
}
+namespace {
+
class SalInstanceTextView : public SalInstanceContainer, public virtual weld::TextView
{
private:
@@ -5312,6 +5389,8 @@ public:
}
};
+}
+
IMPL_LINK(SalInstanceTextView, VscrollHdl, ScrollBar*, pScrollBar, void)
{
signal_vadjustment_changed();
@@ -5331,6 +5410,8 @@ IMPL_LINK(SalInstanceTextView, CursorListener, VclWindowEvent&, rEvent, void)
signal_cursor_position();
}
+namespace {
+
class SalInstanceExpander : public SalInstanceContainer, public virtual weld::Expander
{
private:
@@ -5362,11 +5443,15 @@ public:
}
};
+}
+
IMPL_LINK_NOARG(SalInstanceExpander, ExpandedHdl, VclExpander&, void)
{
signal_expanded();
}
+namespace {
+
class SalInstanceDrawingArea : public SalInstanceWidget, public virtual weld::DrawingArea
{
private:
@@ -5522,6 +5607,8 @@ public:
}
};
+}
+
IMPL_LINK(SalInstanceDrawingArea, PaintHdl, target_and_area, aPayload, void)
{
m_aDrawHdl.Call(aPayload);
@@ -5575,6 +5662,8 @@ IMPL_LINK(SalInstanceDrawingArea, QueryTooltipHdl, tools::Rectangle&, rHelpArea,
return m_aQueryTooltipHdl.Call(rHelpArea);
}
+namespace {
+
//ComboBox and ListBox have similar apis, ComboBoxes in LibreOffice have an edit box and ListBoxes
//don't. This distinction isn't there in Gtk. Use a template to sort this problem out.
template <class vcl_type>
@@ -5831,11 +5920,15 @@ public:
}
};
+}
+
IMPL_LINK_NOARG(SalInstanceComboBoxWithoutEdit, SelectHdl, ListBox&, void)
{
return signal_changed();
}
+namespace {
+
class SalInstanceComboBoxWithEdit : public SalInstanceComboBox<ComboBox>
{
private:
@@ -5941,6 +6034,8 @@ public:
}
};
+}
+
IMPL_LINK_NOARG(SalInstanceComboBoxWithEdit, ChangeHdl, Edit&, void)
{
signal_changed();