LibreOffice Module vcl (master)  1
builder.hxx
Go to the documentation of this file.
1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 /*
3  * This file is part of the LibreOffice project.
4  *
5  * This Source Code Form is subject to the terms of the Mozilla Public
6  * License, v. 2.0. If a copy of the MPL was not distributed with this
7  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8  */
9 
10 #ifndef INCLUDED_VCL_BUILDER_HXX
11 #define INCLUDED_VCL_BUILDER_HXX
12 
13 #include <typeinfo>
14 #include <sal/log.hxx>
15 #include <unotools/resmgr.hxx>
16 #include <tools/fldunit.hxx>
17 #include <vcl/dllapi.h>
18 #include <vcl/window.hxx>
19 #include <vcl/vclptr.hxx>
20 #include <tools/wintypes.hxx>
21 #include <vcl/EnumContext.hxx>
22 
23 #include <memory>
24 #include <map>
25 #include <vector>
26 #ifdef check
27 # //some problem with MacOSX and a check define
28 # undef check
29 #endif
30 
31 class Button;
32 class ComboBox;
33 class FormattedField;
34 class ListBox;
35 class MessageDialog;
36 class NumericFormatter;
37 class PopupMenu;
38 class SalInstanceBuilder;
39 class ScreenshotTest;
40 class ScrollBar;
41 class SvTabListBox;
42 class Slider;
43 class DateField;
44 class TimeField;
45 class VclExpander;
46 class VclMultiLineEdit;
48 namespace xmlreader { class XmlReader; }
49 namespace com { namespace sun { namespace star { namespace frame { class XFrame; } } } }
50 
52 {
53  OUString m_sItem;
54  OString m_sId;
55  ComboBoxTextItem(const OUString& rItem, const OString& rId)
56  : m_sItem(rItem)
57  , m_sId(rId)
58  {
59  }
60 };
61 
63 {
64 public:
65  typedef std::map<OString, OUString> stringmap;
66  typedef std::map<OString, std::pair<OString, OString>> accelmap;
68  typedef void (*customMakeWidget)(VclPtr<vcl::Window> &rRet, const VclPtr<vcl::Window> &pParent, stringmap &rVec);
69 
70 public:
71  VclBuilder(vcl::Window* pParent, const OUString& sUIRootDir, const OUString& sUIFile,
72  const OString& sID = OString(),
73  const css::uno::Reference<css::frame::XFrame>& rFrame
74  = css::uno::Reference<css::frame::XFrame>(),
75  bool bLegacy = true,
76  const NotebookBarAddonsItem* pNotebookBarAddonsItem = nullptr);
77  ~VclBuilder();
79  void disposeBuilder();
80  //sID must exist and be of type T
81  template <typename T> T* get(VclPtr<T>& ret, const OString& sID);
82 
83  //sID may not exist, but must be of type T if it does
84  template <typename T /*= vcl::Window if we had c++11*/> T* get(const OString& sID);
85 
86  vcl::Window* get_widget_root();
87 
88  //sID may not exist
89  PopupMenu* get_menu(const OString& sID);
90 
91  //release ownership of pWindow, i.e. don't delete it
92  void drop_ownership(const vcl::Window *pWindow);
93 
94  //see m_aDeferredProperties, you need this for toplevel dialogs
95  //which build themselves from their ctor. The properties on
96  //the top level are stored in m_aDeferredProperties and need
97  //to be applied post ctor
98  void setDeferredProperties();
99 
101  const OString& getUIFile() const
102  {
103  return m_sHelpRoot;
104  }
105 
107  static void preload();
108 
109 private:
110  VclBuilder(const VclBuilder&) = delete;
111  VclBuilder& operator=(const VclBuilder&) = delete;
112 
113  // owner for ListBox/ComboBox UserData
114  std::vector<std::unique_ptr<OUString>> m_aUserData;
115 
116  //If the toplevel window has any properties which need to be set on it,
117  //but the toplevel is the owner of the builder, then its ctor
118  //has not been completed during the building, so properties for it
119  //are collected here and need to be set afterwards, e.g. during
120  //Show or Execute
122 
123  std::unique_ptr<NotebookBarAddonsItem> m_pNotebookBarAddonsItem;
124 
125  struct PackingData
126  {
128  sal_Int32 m_nPosition;
129  PackingData(bool bVerticalOrient = false)
130  : m_bVerticalOrient(bVerticalOrient)
131  , m_nPosition(-1)
132  {
133  }
134  };
135 
136  struct WinAndId
137  {
138  OString m_sID;
141  WinAndId(const OString &rId, vcl::Window *pWindow, bool bVertical)
142  : m_sID(rId)
143  , m_pWindow(pWindow)
144  , m_aPackingData(bVertical)
145  {
146  }
147  };
148  std::vector<WinAndId> m_aChildren;
149 
150  struct MenuAndId
151  {
152  OString const m_sID;
154  MenuAndId(const OString &rId, PopupMenu *pMenu);
155  ~MenuAndId();
156  };
157  std::vector<MenuAndId> m_aMenus;
158 
159  struct StringPair
160  {
161  OString const m_sID;
162  OString const m_sValue;
163  StringPair(const OString &rId, const OString &rValue)
164  : m_sID(rId)
165  , m_sValue(rValue)
166  {
167  }
168  };
169 
170  struct UStringPair
171  {
172  OString m_sID;
173  OUString m_sValue;
174  UStringPair(const OString &rId, const OUString &rValue)
175  : m_sID(rId)
176  , m_sValue(rValue)
177  {
178  }
179  };
180 
182 
184  {
185  OString const m_sID;
186  OUString const m_sValue;
187  bool const m_bRadio;
188  ButtonImageWidgetMap(const OString &rId, const OUString &rValue, bool bRadio)
189  : m_sID(rId)
190  , m_sValue(rValue)
191  , m_bRadio(bRadio)
192  {
193  }
194  };
195 
200 
202  {
203  OString const m_sID;
204  OUString const m_sValue;
205  sal_Int32 const m_nActiveId;
206  ComboBoxModelMap(const OString &rId, const OUString &rValue, sal_Int32 nActiveId)
207  : m_sID(rId)
208  , m_sValue(rValue)
209  , m_nActiveId(nActiveId)
210  {
211  }
212  };
213 
214  struct ListStore
215  {
216  typedef std::vector<OUString> row;
217  std::vector<row> m_aEntries;
218  };
219 
220  const ListStore* get_model_by_name(const OString& sID) const;
221  void mungeModel(ListBox &rTarget, const ListStore &rStore, sal_uInt16 nActiveId);
222  void mungeModel(ComboBox &rTarget, const ListStore &rStore, sal_uInt16 nActiveId);
223  void mungeModel(SvTabListBox &rTarget, const ListStore &rStore, sal_uInt16 nActiveId);
224 
225  typedef stringmap TextBuffer;
226  const TextBuffer* get_buffer_by_name(const OString& sID) const;
227 
228  static void mungeTextBuffer(VclMultiLineEdit &rTarget, const TextBuffer &rTextBuffer);
229 
230  typedef stringmap Adjustment;
231  const Adjustment* get_adjustment_by_name(const OString& sID) const;
232 
233  static void mungeAdjustment(NumericFormatter &rTarget, const Adjustment &rAdjustment);
234  static void mungeAdjustment(FormattedField &rTarget, const Adjustment &rAdjustment);
235  static void mungeAdjustment(DateField &rTarget, const Adjustment &rAdjustment);
236  static void mungeAdjustment(TimeField &rTarget, const Adjustment &rAdjustment);
237  static void mungeAdjustment(ScrollBar &rTarget, const Adjustment &rAdjustment);
238  static void mungeAdjustment(Slider &rTarget, const Adjustment &rAdjustment);
239 
240  struct stockinfo
241  {
242  OUString m_sStock;
243  int m_nSize;
244  stockinfo() : m_nSize(4) {}
245  };
246 
247  typedef std::map<OString, stockinfo> StockMap;
248 
249  struct SizeGroup
250  {
251  std::vector<OString> m_aWidgets;
252  stringmap m_aProperties;
254  };
255 
256  typedef std::map<VclPtr<vcl::Window>, stringmap> AtkMap;
257 
258  struct ParserState
259  {
260  std::locale m_aResLocale;
261 
262  std::vector<RadioButtonGroupMap> m_aGroupMaps;
263 
264  std::vector<ComboBoxModelMap> m_aModelMaps;
265  std::map<OString, ListStore> m_aModels;
266 
267  std::vector<TextBufferMap> m_aTextBufferMaps;
268  std::map<OString, TextBuffer> m_aTextBuffers;
269 
270  std::vector<WidgetAdjustmentMap> m_aNumericFormatterAdjustmentMaps;
271  std::vector<WidgetAdjustmentMap> m_aFormattedFormatterAdjustmentMaps;
272  std::vector<WidgetAdjustmentMap> m_aTimeFormatterAdjustmentMaps;
273  std::vector<WidgetAdjustmentMap> m_aDateFormatterAdjustmentMaps;
274  std::vector<WidgetAdjustmentMap> m_aScrollAdjustmentMaps;
275  std::vector<WidgetAdjustmentMap> m_aSliderAdjustmentMaps;
276 
277  std::map<OString, Adjustment> m_aAdjustments;
278 
279  std::vector<ButtonImageWidgetMap> m_aButtonImageWidgetMaps;
280  StockMap m_aStockMap;
281 
282  std::vector<ButtonMenuMap> m_aButtonMenuMaps;
283 
284  std::map<VclPtr<vcl::Window>, VclPtr<vcl::Window>> m_aRedundantParentWidgets;
285 
286  std::vector<SizeGroup> m_aSizeGroups;
287 
288  AtkMap m_aAtkInfo;
289 
290  std::vector<MnemonicWidgetMap> m_aMnemonicWidgetMaps;
291 
292  std::vector< VclPtr<VclExpander> > m_aExpanderWidgets;
293 
294  std::vector< VclPtr<MessageDialog> > m_aMessageDialogs;
295 
296  sal_uInt16 m_nLastToolbarId;
297 
298  sal_uInt16 m_nLastMenuItemId;
299 
300  ParserState();
301  };
302 
303  OString m_sID;
304  OString m_sHelpRoot;
310  bool const m_bLegacy;
311  std::unique_ptr<ParserState> m_pParserState;
312 
313  vcl::Window *get_by_name(const OString& sID);
314  void delete_by_name(const OString& sID);
315 
317  {
318  public:
320  : m_pBuilder(pBuilder) {}
321 
322  bool operator()(const vcl::Window *pA, const vcl::Window *pB) const;
323 
324  private:
326  };
327 
329  css::uno::Reference<css::frame::XFrame> m_xFrame;
330 
331  DECL_LINK(ResponseHdl, ::Button*, void);
332 private:
333  VclPtr<vcl::Window> insertObject(vcl::Window *pParent,
334  const OString &rClass, const OString &rID,
335  stringmap &rProps, stringmap &rPangoAttributes,
336  stringmap &rAtkProps);
337 
338  VclPtr<vcl::Window> makeObject(vcl::Window *pParent,
339  const OString &rClass, const OString &rID,
340  stringmap &rVec);
341 
342  void connectNumericFormatterAdjustment(const OString &id, const OUString &rAdjustment);
343  void connectFormattedFormatterAdjustment(const OString &id, const OUString &rAdjustment);
344  void connectTimeFormatterAdjustment(const OString &id, const OUString &rAdjustment);
345  void connectDateFormatterAdjustment(const OString &id, const OUString &rAdjustment);
346 
347  void extractGroup(const OString &id, stringmap &rVec);
348  void extractModel(const OString &id, stringmap &rVec);
349  void extractBuffer(const OString &id, stringmap &rVec);
350  static bool extractAdjustmentToMap(const OString &id, stringmap &rVec, std::vector<WidgetAdjustmentMap>& rAdjustmentMap);
351  void extractButtonImage(const OString &id, stringmap &rMap, bool bRadio);
352  void extractStock(const OString &id, stringmap &rMap);
353  void extractMnemonicWidget(const OString &id, stringmap &rMap);
354 
355  void handleChild(vcl::Window *pParent, xmlreader::XmlReader &reader);
356  VclPtr<vcl::Window> handleObject(vcl::Window *pParent, xmlreader::XmlReader &reader);
357  void handlePacking(vcl::Window *pCurrent, vcl::Window *pParent, xmlreader::XmlReader &reader);
358  static std::vector<vcl::EnumContext::Context> handleStyle(xmlreader::XmlReader &reader, int &nPriority);
359  static OString getStyleClass(xmlreader::XmlReader &reader);
360  void applyPackingProperty(vcl::Window *pCurrent, vcl::Window *pParent, xmlreader::XmlReader &reader);
361  void collectProperty(xmlreader::XmlReader &reader, stringmap &rVec) const;
362  static void collectPangoAttribute(xmlreader::XmlReader &reader, stringmap &rMap);
363  static void collectAtkRelationAttribute(xmlreader::XmlReader &reader, stringmap &rMap);
364  static void collectAtkRoleAttribute(xmlreader::XmlReader &reader, stringmap &rMap);
365  static void collectAccelerator(xmlreader::XmlReader &reader, accelmap &rMap);
366 
367  void insertMenuObject(
368  PopupMenu *pParent,
369  PopupMenu *pSubMenu,
370  const OString &rClass,
371  const OString &rID,
372  stringmap &rProps,
373  accelmap &rAccels);
374 
375  void handleMenuChild(PopupMenu *pParent, xmlreader::XmlReader &reader);
376  void handleMenuObject(PopupMenu *pParent, xmlreader::XmlReader &reader);
377 
378  void handleListStore(xmlreader::XmlReader &reader, const OString &rID, const OString &rClass);
379  void handleRow(xmlreader::XmlReader &reader, const OString &rID);
380  void handleTabChild(vcl::Window *pParent, xmlreader::XmlReader &reader);
381  void handleMenu(xmlreader::XmlReader &reader, const OString &rID);
382  std::vector<ComboBoxTextItem> handleItems(xmlreader::XmlReader &reader) const;
383 
384  void handleSizeGroup(xmlreader::XmlReader &reader);
385 
386  void handleAtkObject(xmlreader::XmlReader &reader, vcl::Window *pWindow);
387 
388  void handleActionWidget(xmlreader::XmlReader &reader);
389 
390  PackingData get_window_packing_data(const vcl::Window *pWindow) const;
391  void set_window_packing_position(const vcl::Window *pWindow, sal_Int32 nPosition);
392 
393  static vcl::Window* prepareWidgetOwnScrolling(vcl::Window *pParent, WinBits &rWinStyle);
394  void cleanupWidgetOwnScrolling(vcl::Window *pScrollParent, vcl::Window *pWindow, stringmap &rMap);
395 
396  void set_response(const OString& sID, short nResponse);
397 
398  OString get_by_window(const vcl::Window *pWindow) const;
399  void delete_by_window(vcl::Window *pWindow);
400 };
401 
402 namespace BuilderUtils
403 {
404  //apply the properties of rProps to pWindow
405  VCL_DLLPUBLIC void set_properties(vcl::Window *pWindow, const VclBuilder::stringmap &rProps);
406 
407  //Convert _ gtk markup to ~ vcl markup
408  VCL_DLLPUBLIC OUString convertMnemonicMarkup(const OUString &rIn);
409 
411  VCL_DLLPUBLIC FieldUnit detectUnit(OUString const&);
412 
414 
415  //add a default value of 25 width-chars to a map if width-chars not set
417 
418  //Helpers to retrofit all the existing code to the builder
419  VCL_DLLPUBLIC void reorderWithinParent(std::vector< vcl::Window*>& rChilds, bool bIsButtonBox);
420  VCL_DLLPUBLIC void reorderWithinParent(vcl::Window &rWindow, sal_uInt16 nNewPosition);
421 
422  //Convert an accessibility role name to accessibility role number
423  VCL_DLLPUBLIC sal_Int16 getRoleFromName(const OString& roleName);
424 }
425 
426 template <typename T>
427 inline T* VclBuilder::get(VclPtr<T>& ret, const OString& sID)
428 {
429  vcl::Window *w = get_by_name(sID);
430  SAL_WARN_IF(!w, "vcl.layout", "widget \"" << sID << "\" not found in .ui");
431  SAL_WARN_IF(!dynamic_cast<T*>(w),
432  "vcl.layout", ".ui widget \"" << sID << "\" needs to correspond to vcl type " << typeid(T).name());
433  assert(w);
434  assert(dynamic_cast<T*>(w));
435  ret = static_cast<T*>(w);
436  return ret.get();
437 }
438 
439 //sID may not exist, but must be of type T if it does
440 template <typename T /*= vcl::Window if we had c++11*/>
441 inline T* VclBuilder::get(const OString& sID)
442 {
443  vcl::Window *w = get_by_name(sID);
444  SAL_WARN_IF(w && !dynamic_cast<T*>(w),
445  "vcl.layout", ".ui widget \"" << sID << "\" needs to correspond to vcl type " << typeid(T).name());
446  assert(!w || dynamic_cast<T*>(w));
447  return static_cast<T*>(w);
448 }
449 
450 
451 //helper baseclass to ease retro fitting dialogs/tabpages that load a resource
452 //to load a .ui file instead
453 //
454 //vcl requires the Window Children of a Parent Window to be destroyed before
455 //the Parent Window. VclBuilderContainer owns the VclBuilder which owns the
456 //Children Window. So the VclBuilderContainer dtor must be called before
457 //the Parent Window dtor.
458 //
459 //i.e. class Dialog : public SystemWindow, public VclBuilderContainer
460 //not class Dialog : public VclBuilderContainer, public SystemWindow
461 //
462 //With the new 'dispose' framework, it is necessary to force the builder
463 //dispose before the Window dispose; so a Dialog::dispose() method would
464 //finish: disposeBuilder(); SystemWindow::dispose() to capture this ordering.
465 
467 {
468 public:
470  virtual ~VclBuilderContainer();
471  void disposeBuilder();
472 
473  static OUString getUIRootDir();
474  bool hasBuilder() const { return m_pUIBuilder != nullptr; }
475 
476  template <typename T> T* get(VclPtr<T>& ret, const OString& sID)
477  {
478  return m_pUIBuilder->get<T>(ret, sID);
479  }
480  template <typename T /*= vcl::Window if we had c++11*/> T* get(const OString & sID)
481  {
482  return m_pUIBuilder->get<T>(sID);
483  }
485  {
486  if (!m_pUIBuilder)
487  return;
488  m_pUIBuilder->setDeferredProperties();
489  }
490  OString getUIFile() const
491  {
492  if (m_pUIBuilder)
493  {
494  return m_pUIBuilder->getUIFile();
495  }
496 
497  return OString();
498  }
499 
500 protected:
501  std::unique_ptr<VclBuilder> m_pUIBuilder;
502 
503  friend class ::SalInstanceBuilder;
504  friend class ::ScreenshotTest;
505 };
506 
507 /*
508  * @return true if rValue is "True", "true", "1", etc.
509  */
510 bool VCL_DLLPUBLIC toBool(const OUString &rValue);
511 
512 #endif
513 
514 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
OString const m_sID
Definition: builder.hxx:152
FieldUnit detectUnit(OUString const &rString)
Definition: builder.cxx:2425
OString const m_sValue
Definition: builder.hxx:162
std::vector< WidgetAdjustmentMap > m_aSliderAdjustmentMaps
Definition: builder.hxx:275
std::vector< ButtonImageWidgetMap > m_aButtonImageWidgetMaps
Definition: builder.hxx:279
void setDeferredProperties()
Definition: builder.hxx:484
FieldUnit
bool hasBuilder() const
Definition: builder.hxx:474
stringmap m_aProperties
Definition: builder.hxx:252
A widget used to choose from a list of items and which has no entry.
Definition: lstbox.hxx:78
std::vector< VclPtr< VclExpander > > m_aExpanderWidgets
Definition: builder.hxx:292
std::vector< WidgetAdjustmentMap > m_aNumericFormatterAdjustmentMaps
Definition: builder.hxx:270
#define VCL_DLLPUBLIC
Definition: dllapi.h:29
stringmap Adjustment
Definition: builder.hxx:230
std::map< OString, TextBuffer > m_aTextBuffers
Definition: builder.hxx:268
std::vector< OUString > row
Definition: builder.hxx:216
std::vector< OString > m_aWidgets
Definition: builder.hxx:251
std::map< OString, std::pair< OString, OString > > accelmap
Definition: builder.hxx:66
UStringPair ButtonMenuMap
Definition: builder.hxx:198
std::vector< WidgetAdjustmentMap > m_aFormattedFormatterAdjustmentMaps
Definition: builder.hxx:271
UStringPair WidgetAdjustmentMap
Definition: builder.hxx:197
stringmap m_aDeferredProperties
Definition: builder.hxx:121
std::vector< row > m_aEntries
Definition: builder.hxx:217
OString m_sHelpRoot
Definition: builder.hxx:304
void set_properties(vcl::Window *pWindow, const VclBuilder::stringmap &rProps)
Definition: builder.cxx:2386
const OString & getUIFile() const
return UI-File name (without '.ui')
Definition: builder.hxx:101
sal_Int64 WinBits
std::vector< TextBufferMap > m_aTextBufferMaps
Definition: builder.hxx:267
UStringPair MnemonicWidgetMap
Definition: builder.hxx:199
std::vector< RadioButtonGroupMap > m_aGroupMaps
Definition: builder.hxx:262
void reorderWithinParent(vcl::Window &rWindow, sal_uInt16 nNewPosition)
Definition: builder.cxx:2451
std::vector< MnemonicWidgetMap > m_aMnemonicWidgetMaps
Definition: builder.hxx:290
T * get(VclPtr< T > &ret, const OString &sID)
Definition: builder.hxx:427
bool m_bToplevelHasDeferredInit
Definition: builder.hxx:307
StringPair RadioButtonGroupMap
Definition: builder.hxx:181
bool m_bToplevelParentFound
Definition: builder.hxx:309
OUString extractCustomProperty(VclBuilder::stringmap &rMap)
Definition: builder.cxx:2413
std::map< OString, stockinfo > StockMap
Definition: builder.hxx:247
ComboBoxModelMap(const OString &rId, const OUString &rValue, sal_Int32 nActiveId)
Definition: builder.hxx:206
OString const m_sID
Definition: builder.hxx:161
std::map< VclPtr< vcl::Window >, VclPtr< vcl::Window > > m_aRedundantParentWidgets
Definition: builder.hxx:284
sortIntoBestTabTraversalOrder(VclBuilder *pBuilder)
Definition: builder.hxx:319
OUString m_sItem
Definition: builder.hxx:53
bool m_bToplevelHasDeferredProperties
Definition: builder.hxx:308
bool const m_bLegacy
Definition: builder.hxx:310
std::vector< WidgetAdjustmentMap > m_aDateFormatterAdjustmentMaps
Definition: builder.hxx:273
std::map< OString, ListStore > m_aModels
Definition: builder.hxx:265
std::map< OString, OUString > stringmap
Definition: builder.hxx:65
sal_Int32 w
std::unique_ptr< VclBuilder > m_pUIBuilder
Definition: builder.hxx:501
VclPtr< vcl::Window > m_pParent
Definition: builder.hxx:306
UStringPair(const OString &rId, const OUString &rValue)
Definition: builder.hxx:174
stringmap TextBuffer
Definition: builder.hxx:225
ButtonImageWidgetMap(const OString &rId, const OUString &rValue, bool bRadio)
Definition: builder.hxx:188
std::vector< ComboBoxModelMap > m_aModelMaps
Definition: builder.hxx:264
PackingData(bool bVerticalOrient=false)
Definition: builder.hxx:129
UStringPair TextBufferMap
Definition: builder.hxx:196
std::map< OString, Adjustment > m_aAdjustments
Definition: builder.hxx:277
OUString convertMnemonicMarkup(const OUString &rIn)
Definition: builder.cxx:2396
std::vector< ButtonMenuMap > m_aButtonMenuMaps
Definition: builder.hxx:282
std::unique_ptr< ParserState > m_pParserState
Definition: builder.hxx:311
std::vector< std::unique_ptr< OUString > > m_aUserData
Definition: builder.hxx:114
std::vector< WinAndId > m_aChildren
Definition: builder.hxx:148
sal_Int32 const m_nActiveId
Definition: builder.hxx:205
bool VCL_DLLPUBLIC toBool(const OUString &rValue)
Definition: layout.cxx:1434
#define SAL_WARN_IF(condition, area, stream)
VclPtr< vcl::Window > m_pWindow
Definition: builder.hxx:139
sal_uInt16 m_nLastMenuItemId
Definition: builder.hxx:298
css::uno::Reference< css::frame::XFrame > m_xFrame
XFrame to be able to extract labels and other properties of the UNO commands (like of ...
Definition: builder.hxx:329
std::vector< VclPtr< MessageDialog > > m_aMessageDialogs
Definition: builder.hxx:294
sal_uInt16 m_nLastToolbarId
Definition: builder.hxx:296
vcl::Window * get_by_name(const OString &sID)
Definition: builder.cxx:4114
OString m_sID
Definition: builder.hxx:303
std::unique_ptr< NotebookBarAddonsItem > m_pNotebookBarAddonsItem
Definition: builder.hxx:123
std::vector< MenuAndId > m_aMenus
Definition: builder.hxx:157
const char * name
bool extractDropdown(VclBuilder::stringmap &rMap)
Definition: builder.cxx:2439
sal_Int16 getRoleFromName(const OString &roleName)
Definition: builder.cxx:2483
A widget used to choose from a list of items and which has an entry.
Definition: combobox.hxx:34
WinAndId(const OString &rId, vcl::Window *pWindow, bool bVertical)
Definition: builder.hxx:141
StringPair(const OString &rId, const OString &rValue)
Definition: builder.hxx:163
reference_type * get() const
Get the body.
Definition: vclptr.hxx:143
std::map< VclPtr< vcl::Window >, stringmap > AtkMap
Definition: builder.hxx:256
PackingData m_aPackingData
Definition: builder.hxx:140
std::vector< WidgetAdjustmentMap > m_aTimeFormatterAdjustmentMaps
Definition: builder.hxx:272
void ensureDefaultWidthChars(VclBuilder::stringmap &rMap)
Definition: builder.cxx:2431
VclPtr< PopupMenu > m_pMenu
Definition: builder.hxx:153
OString m_sId
Definition: builder.hxx:54
std::vector< SizeGroup > m_aSizeGroups
Definition: builder.hxx:286
ResHookProc const m_pStringReplace
Definition: builder.hxx:305
ComboBoxTextItem(const OUString &rItem, const OString &rId)
Definition: builder.hxx:55
OString getUIFile() const
Definition: builder.hxx:490
OUString(* ResHookProc)(const OUString &rStr)
std::locale m_aResLocale
Definition: builder.hxx:260
std::vector< WidgetAdjustmentMap > m_aScrollAdjustmentMaps
Definition: builder.hxx:274
typedef void(CALLTYPE *GetFuncDataPtr)(sal_uInt16 &nNo