10 #ifndef INCLUDED_VCL_BUILDER_HXX
11 #define INCLUDED_VCL_BUILDER_HXX
25 #include <string_view>
28 # //some problem with MacOSX and a check define
69 typedef std::map<OString, std::pair<OString, OString>>
accelmap;
75 const OString& sID = OString(),
76 const css::uno::Reference<css::frame::XFrame>& rFrame
77 = css::uno::Reference<css::frame::XFrame>(),
82 void disposeBuilder();
84 template <
typename T> T*
get(
VclPtr<T>& ret,
const OString& sID);
87 template <
typename T = vcl::Window> T*
get(
const OString& sID);
92 PopupMenu* get_menu(std::string_view sID);
101 void setDeferredProperties();
110 static void preload();
133 : m_bVerticalOrient(bVerticalOrient)
147 , m_aPackingData(bVertical)
211 , m_nActiveId(nActiveId)
218 typedef std::vector<OUString>
row;
222 const ListStore* get_model_by_name(
const OString& sID)
const;
223 void mungeModel(
ListBox &rTarget,
const ListStore &rStore, sal_uInt16 nActiveId);
224 void mungeModel(
ComboBox &rTarget,
const ListStore &rStore, sal_uInt16 nActiveId);
228 const TextBuffer* get_buffer_by_name(
const OString& sID)
const;
230 static void mungeTextBuffer(
VclMultiLineEdit &rTarget,
const TextBuffer &rTextBuffer);
233 const Adjustment* get_adjustment_by_name(
const OString& sID)
const;
235 static void mungeAdjustment(
NumericFormatter &rTarget,
const Adjustment &rAdjustment);
236 static void mungeAdjustment(
FormattedField &rTarget,
const Adjustment &rAdjustment);
237 static void mungeAdjustment(
ScrollBar &rTarget,
const Adjustment &rAdjustment);
238 static void mungeAdjustment(
Slider &rTarget,
const Adjustment &rAdjustment);
311 void delete_by_name(
const OString& sID);
317 : m_pBuilder(pBuilder) {}
330 const OString &rClass,
const OString &rID,
331 stringmap &rProps, stringmap &rPangoAttributes,
332 stringmap &rAtkProps);
335 const OString &rClass,
const OString &rID,
338 void connectNumericFormatterAdjustment(
const OString &
id,
const OUString &rAdjustment);
339 void connectFormattedFormatterAdjustment(
const OString &
id,
const OUString &rAdjustment);
341 void extractGroup(
const OString &
id, stringmap &rVec);
342 void extractModel(
const OString &
id, stringmap &rVec);
343 void extractBuffer(
const OString &
id, stringmap &rVec);
344 static bool extractAdjustmentToMap(
const OString &
id, stringmap &rVec, std::vector<WidgetAdjustmentMap>& rAdjustmentMap);
345 void extractButtonImage(
const OString &
id, stringmap &rMap,
bool bRadio);
346 void extractStock(
const OString &
id, stringmap &rMap);
347 void extractMnemonicWidget(
const OString &
id, stringmap &rMap);
354 static std::vector<vcl::EnumContext::Context> handleStyle(
xmlreader::XmlReader &reader,
int &nPriority);
363 void insertMenuObject(
366 const OString &rClass,
369 stringmap &rAtkProps,
375 void handleListStore(
xmlreader::XmlReader &reader,
const OString &rID, std::string_view rClass);
385 static void applyAtkProperties(
vcl::Window *pWindow,
const stringmap& rProperties);
390 void set_window_packing_position(
const vcl::Window *pWindow, sal_Int32 nPosition);
395 void set_response(std::string_view sID,
short nResponse);
397 OString get_by_window(
const vcl::Window *pWindow)
const;
424 template <
typename T>
428 SAL_WARN_IF(!w,
"vcl.layout",
"widget \"" << sID <<
"\" not found in .ui");
430 "vcl.layout",
".ui widget \"" << sID <<
"\" needs to correspond to vcl type " <<
typeid(T).
name());
432 assert(dynamic_cast<T*>(w));
433 ret =
static_cast<T*
>(w);
438 template <
typename T>
443 "vcl.layout",
".ui widget \"" << sID <<
"\" needs to correspond to vcl type " <<
typeid(T).
name());
444 assert(!w || dynamic_cast<T*>(w));
445 return static_cast<T*
>(w);
469 void disposeBuilder();
471 template <
typename T> T*
get(
VclPtr<T>& ret,
const OString& sID)
473 return m_pUIBuilder->get<T>(ret, sID);
475 template <
typename T = vcl::Window> T*
get(
const OString & sID)
477 return m_pUIBuilder->get<T>(sID);
483 m_pUIBuilder->setDeferredProperties();
489 friend class ::SalInstanceBuilder;
490 friend class ::ScreenshotTest;
496 bool toBool(std::u16string_view rValue);
std::vector< WidgetAdjustmentMap > m_aSliderAdjustmentMaps
std::vector< ButtonImageWidgetMap > m_aButtonImageWidgetMaps
void setDeferredProperties()
A widget used to choose from a list of items and which has no entry.
std::vector< VclPtr< VclExpander > > m_aExpanderWidgets
std::vector< WidgetAdjustmentMap > m_aNumericFormatterAdjustmentMaps
std::map< OString, TextBuffer > m_aTextBuffers
std::vector< OUString > row
std::vector< OString > m_aWidgets
std::map< OString, std::pair< OString, OString > > accelmap
UStringPair ButtonMenuMap
std::vector< WidgetAdjustmentMap > m_aFormattedFormatterAdjustmentMaps
UStringPair WidgetAdjustmentMap
stringmap m_aDeferredProperties
std::vector< row > m_aEntries
void set_properties(vcl::Window *pWindow, const VclBuilder::stringmap &rProps)
const OString & getUIFile() const
return UI-File name (without '.ui')
std::vector< TextBufferMap > m_aTextBufferMaps
UStringPair MnemonicWidgetMap
Creates a hierarchy of vcl::Windows (widgets) from a .ui file for dialogs, sidebar, etc.
const BorderLinePrimitive2D *pCandidateB assert(pCandidateA)
std::vector< RadioButtonGroupMap > m_aGroupMaps
void reorderWithinParent(vcl::Window &rWindow, sal_uInt16 nNewPosition)
ResHookProc m_pStringReplace
std::vector< MnemonicWidgetMap > m_aMnemonicWidgetMaps
T * get(VclPtr< T > &ret, const OString &sID)
bool m_bToplevelHasDeferredInit
StringPair RadioButtonGroupMap
bool m_bToplevelParentFound
bool toBool(std::u16string_view rValue)
OUString extractCustomProperty(VclBuilder::stringmap &rMap)
std::map< OString, stockinfo > StockMap
ComboBoxModelMap(const OString &rId, const OUString &rValue, sal_Int32 nActiveId)
std::map< VclPtr< vcl::Window >, VclPtr< vcl::Window > > m_aRedundantParentWidgets
sortIntoBestTabTraversalOrder(VclBuilder *pBuilder)
bool m_bToplevelHasDeferredProperties
std::map< OString, ListStore > m_aModels
std::map< OString, OUString > stringmap
std::unique_ptr< VclBuilder > m_pUIBuilder
VclPtr< vcl::Window > m_pParent
UStringPair(const OString &rId, const OUString &rValue)
std::vector< ComboBoxModelMap > m_aModelMaps
PackingData(bool bVerticalOrient=false)
UStringPair TextBufferMap
std::map< OString, Adjustment > m_aAdjustments
OUString convertMnemonicMarkup(const OUString &rIn)
std::vector< ButtonMenuMap > m_aButtonMenuMaps
std::unique_ptr< ParserState > m_pParserState
std::vector< std::unique_ptr< OUString > > m_aUserData
std::vector< WinAndId > m_aChildren
std::map< VclPtr< vcl::Window >, stringmap > m_aAtkInfo
#define SAL_WARN_IF(condition, area, stream)
VclPtr< vcl::Window > m_pWindow
sal_uInt16 m_nLastMenuItemId
css::uno::Reference< css::frame::XFrame > m_xFrame
XFrame to be able to extract labels and other properties of the UNO commands (like of ...
std::vector< VclPtr< MessageDialog > > m_aMessageDialogs
sal_uInt16 m_nLastToolbarId
vcl::Window * get_by_name(std::string_view sID)
std::unique_ptr< NotebookBarAddonsItem > m_pNotebookBarAddonsItem
std::vector< MenuAndId > m_aMenus
bool extractDropdown(VclBuilder::stringmap &rMap)
sal_Int16 getRoleFromName(const OString &roleName)
A widget used to choose from a list of items and which has an entry.
WinAndId(const OString &rId, vcl::Window *pWindow, bool bVertical)
StringPair(const OString &rId, const OString &rValue)
reference_type * get() const
Get the body.
PackingData m_aPackingData
void ensureDefaultWidthChars(VclBuilder::stringmap &rMap)
std::vector< SizeGroup > m_aSizeGroups
ComboBoxTextItem(const OUString &rItem, const OString &rId)
OUString(* ResHookProc)(const OUString &rStr)
std::vector< WidgetAdjustmentMap > m_aScrollAdjustmentMaps