summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--extensions/UIConfig_spropctrlr.mk2
-rw-r--r--extensions/source/propctrlr/formlinkdialog.cxx84
-rw-r--r--extensions/source/propctrlr/formlinkdialog.hrc38
-rw-r--r--extensions/source/propctrlr/formlinkdialog.hxx12
-rw-r--r--extensions/source/propctrlr/formlinkdialog.src135
-rw-r--r--extensions/source/propctrlr/formresid.hrc3
-rw-r--r--extensions/uiconfig/spropctrlr/ui/fieldlinkrow.ui50
-rw-r--r--extensions/uiconfig/spropctrlr/ui/formlinksdialog.ui168
8 files changed, 284 insertions, 208 deletions
diff --git a/extensions/UIConfig_spropctrlr.mk b/extensions/UIConfig_spropctrlr.mk
index 87b917368d32..9793906fec4f 100644
--- a/extensions/UIConfig_spropctrlr.mk
+++ b/extensions/UIConfig_spropctrlr.mk
@@ -12,6 +12,8 @@ $(eval $(call gb_UIConfig_UIConfig,modules/spropctrlr))
$(eval $(call gb_UIConfig_add_uifiles,modules/spropctrlr,\
extensions/uiconfig/spropctrlr/ui/controlfontdialog \
extensions/uiconfig/spropctrlr/ui/datatypedialog \
+ extensions/uiconfig/spropctrlr/ui/fieldlinkrow \
+ extensions/uiconfig/spropctrlr/ui/formlinksdialog \
extensions/uiconfig/spropctrlr/ui/labelselectiondialog \
extensions/uiconfig/spropctrlr/ui/taborder \
))
diff --git a/extensions/source/propctrlr/formlinkdialog.cxx b/extensions/source/propctrlr/formlinkdialog.cxx
index c586db6ef891..76d9ad5fd7a0 100644
--- a/extensions/source/propctrlr/formlinkdialog.cxx
+++ b/extensions/source/propctrlr/formlinkdialog.cxx
@@ -19,7 +19,6 @@
#include "formlinkdialog.hxx"
-#include "formlinkdialog.hrc"
#include "modulepcr.hxx"
#include "formresid.hrc"
@@ -27,6 +26,8 @@
#include <vcl/combobox.hxx>
#include <vcl/msgbox.hxx>
#include <vcl/waitobj.hxx>
+#include <vcl/tabpage.hxx>
+#include <vcl/layout.hxx>
#include <svtools/localresaccess.hxx>
#include <connectivity/dbtools.hxx>
#include <connectivity/dbexception.hxx>
@@ -60,17 +61,16 @@ namespace pcr
//= FieldLinkRow
- class FieldLinkRow : public Window
+ class FieldLinkRow : public TabPage
{
private:
- ComboBox m_aDetailColumn;
- FixedText m_aEqualSign;
- ComboBox m_aMasterColumn;
+ ComboBox* m_pDetailColumn;
+ ComboBox* m_pMasterColumn;
Link m_aLinkChangeHandler;
public:
- FieldLinkRow( Window* _pParent, const ResId& _rId );
+ FieldLinkRow( Window* _pParent );
inline void SetLinkChangeHandler( const Link& _rHdl ) { m_aLinkChangeHandler = _rHdl; }
@@ -92,25 +92,23 @@ namespace pcr
};
- FieldLinkRow::FieldLinkRow( Window* _pParent, const ResId& _rId )
- :Window( _pParent, _rId )
- ,m_aDetailColumn( this, ResId( 1, *_rId.GetResMgr() ) )
- ,m_aEqualSign ( this, ResId( 1, *_rId.GetResMgr() ) )
- ,m_aMasterColumn( this, ResId( 2, *_rId.GetResMgr() ) )
+ FieldLinkRow::FieldLinkRow( Window* _pParent )
+ :TabPage( _pParent, "FieldLinkRow", "modules/spropctrlr/ui/fieldlinkrow.ui" )
{
- FreeResource();
+ get(m_pDetailColumn, "detailCombobox");
+ get(m_pMasterColumn, "masterCombobox");
- m_aDetailColumn.SetDropDownLineCount( 10 );
- m_aMasterColumn.SetDropDownLineCount( 10 );
+ m_pDetailColumn->SetDropDownLineCount( 10 );
+ m_pMasterColumn->SetDropDownLineCount( 10 );
- m_aDetailColumn.SetModifyHdl( LINK( this, FieldLinkRow, OnFieldNameChanged ) );
- m_aMasterColumn.SetModifyHdl( LINK( this, FieldLinkRow, OnFieldNameChanged ) );
+ m_pDetailColumn->SetModifyHdl( LINK( this, FieldLinkRow, OnFieldNameChanged ) );
+ m_pMasterColumn->SetModifyHdl( LINK( this, FieldLinkRow, OnFieldNameChanged ) );
}
void FieldLinkRow::fillList( LinkParticipant _eWhich, const Sequence< OUString >& _rFieldNames )
{
- ComboBox* pBox = ( _eWhich == eDetailField ) ? &m_aDetailColumn : &m_aMasterColumn;
+ ComboBox* pBox = ( _eWhich == eDetailField ) ? m_pDetailColumn : m_pMasterColumn;
const OUString* pFieldName = _rFieldNames.getConstArray();
const OUString* pFieldNameEnd = pFieldName + _rFieldNames.getLength();
@@ -121,7 +119,7 @@ namespace pcr
bool FieldLinkRow::GetFieldName( LinkParticipant _eWhich, OUString& /* [out] */ _rName ) const
{
- const ComboBox* pBox = ( _eWhich == eDetailField ) ? &m_aDetailColumn : &m_aMasterColumn;
+ const ComboBox* pBox = ( _eWhich == eDetailField ) ? m_pDetailColumn : m_pMasterColumn;
_rName = pBox->GetText();
return !_rName.isEmpty();
}
@@ -129,7 +127,7 @@ namespace pcr
void FieldLinkRow::SetFieldName( LinkParticipant _eWhich, const OUString& _rName )
{
- ComboBox* pBox = ( _eWhich == eDetailField ) ? &m_aDetailColumn : &m_aMasterColumn;
+ ComboBox* pBox = ( _eWhich == eDetailField ) ? m_pDetailColumn : m_pMasterColumn;
pBox->SetText( _rName );
}
@@ -142,6 +140,11 @@ namespace pcr
return 0L;
}
+ extern "C" SAL_DLLPUBLIC_EXPORT Window* SAL_CALL makeFieldLinkRow(Window *pParent, VclBuilder::stringmap &)
+ {
+ return new FieldLinkRow(pParent);
+ }
+
//= FormLinkDialog
@@ -151,29 +154,32 @@ namespace pcr
const OUString& _sExplanation,
const OUString& _sDetailLabel,
const OUString& _sMasterLabel)
- :ModalDialog( _pParent, PcrRes( RID_DLG_FORMLINKS ) )
- ,m_aExplanation( this, PcrRes( FT_EXPLANATION ) )
- ,m_aDetailLabel( this, PcrRes( FT_DETAIL_LABEL ) )
- ,m_aMasterLabel( this, PcrRes( FT_MASTER_LABEL ) )
- ,m_aRow1 ( new FieldLinkRow( this, PcrRes( 1 ) ) )
- ,m_aRow2 ( new FieldLinkRow( this, PcrRes( 2 ) ) )
- ,m_aRow3 ( new FieldLinkRow( this, PcrRes( 3 ) ) )
- ,m_aRow4 ( new FieldLinkRow( this, PcrRes( 4 ) ) )
- ,m_aOK ( this, PcrRes( PB_OK ) )
- ,m_aCancel ( this, PcrRes( PB_CANCEL ) )
- ,m_aHelp ( this, PcrRes( PB_HELP ) )
- ,m_aSuggest ( this, PcrRes( PB_SUGGEST ) )
- ,m_xContext ( _rxContext )
+ :ModalDialog( _pParent, "FormLinks", "modules/spropctrlr/ui/formlinksdialog.ui" )
+ ,m_aRow1 ( new FieldLinkRow( get<VclVBox>("box") ) )
+ ,m_aRow2 ( new FieldLinkRow( get<VclVBox>("box") ) )
+ ,m_aRow3 ( new FieldLinkRow( get<VclVBox>("box") ) )
+ ,m_aRow4 ( new FieldLinkRow( get<VclVBox>("box") ) )
+ ,m_xContext ( _rxContext )
,m_xDetailForm( _rxDetailForm )
,m_xMasterForm( _rxMasterForm )
,m_sDetailLabel(_sDetailLabel)
,m_sMasterLabel(_sMasterLabel)
{
- FreeResource();
+ get(m_pExplanation, "explanationLabel");
+ get(m_pDetailLabel, "detailLabel");
+ get(m_pMasterLabel, "masterLabel");
+ get(m_pOK, "ok");
+ get(m_pSuggest, "suggestButton");
+ m_aRow1->Show();
+ m_aRow2->Show();
+ m_aRow3->Show();
+ m_aRow4->Show();
+ set_width_request(600);
+
if ( !_sExplanation.isEmpty() )
- m_aExplanation.SetText(_sExplanation);
+ m_pExplanation->SetText(_sExplanation);
- m_aSuggest.SetClickHdl ( LINK( this, FormLinkDialog, OnSuggest ) );
+ m_pSuggest->SetClickHdl ( LINK( this, FormLinkDialog, OnSuggest ) );
m_aRow1->SetLinkChangeHandler( LINK( this, FormLinkDialog, OnFieldChanged ) );
m_aRow2->SetLinkChangeHandler( LINK( this, FormLinkDialog, OnFieldChanged ) );
m_aRow3->SetLinkChangeHandler( LINK( this, FormLinkDialog, OnFieldChanged ) );
@@ -275,7 +281,7 @@ namespace pcr
}
sDetailType = m_sDetailLabel;
}
- m_aDetailLabel.SetText( sDetailType );
+ m_pDetailLabel->SetText( sDetailType );
// label for the master form
OUString sMasterType = getFormDataSourceType( m_xMasterForm );
@@ -288,7 +294,7 @@ namespace pcr
}
sMasterType = m_sMasterLabel;
}
- m_aMasterLabel.SetText( sMasterType );
+ m_pMasterLabel->SetText( sMasterType );
}
@@ -355,7 +361,7 @@ namespace pcr
bEnable = false;
}
- m_aOK.Enable( bEnable );
+ m_pOK->Enable( bEnable );
}
@@ -624,7 +630,7 @@ namespace pcr
bEnable = ( m_aRelationMasterColumns.getLength() <= 4 );
}
- m_aSuggest.Enable( bEnable );
+ m_pSuggest->Enable( bEnable );
}
catch( const Exception& )
{
diff --git a/extensions/source/propctrlr/formlinkdialog.hrc b/extensions/source/propctrlr/formlinkdialog.hrc
deleted file mode 100644
index 9ac42bb1e7a2..000000000000
--- a/extensions/source/propctrlr/formlinkdialog.hrc
+++ /dev/null
@@ -1,38 +0,0 @@
-/* -*- 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 .
- */
-
-#ifndef EXTENSIONS_SOURCE_PROPCTRLR_FORMLINKDIALOG_HRC
-#define EXTENSIONS_SOURCE_PROPCTRLR_FORMLINKDIALOG_HRC
-
-#define FT_EXPLANATION 1
-#define FT_DETAIL_LABEL 2
-#define FT_MASTER_LABEL 3
-
-#define PB_OK 1
-#define PB_CANCEL 2
-#define PB_HELP 3
-#define PB_SUGGEST 4
-
-#define STR_DETAIL_FORM 1
-#define STR_MASTER_FORM 2
-#define STR_ERROR_RETRIEVING_COLUMNS 3
-
-#endif // EXTENSIONS_SOURCE_PROPCTRLR_FORMLINKDIALOG_HRC
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/extensions/source/propctrlr/formlinkdialog.hxx b/extensions/source/propctrlr/formlinkdialog.hxx
index 5b05249bca34..db85f6f0da81 100644
--- a/extensions/source/propctrlr/formlinkdialog.hxx
+++ b/extensions/source/propctrlr/formlinkdialog.hxx
@@ -44,19 +44,17 @@ namespace pcr
class FormLinkDialog : public ModalDialog
{
private:
- FixedText m_aExplanation;
- FixedText m_aDetailLabel;
- FixedText m_aMasterLabel;
+ FixedText* m_pExplanation;
+ FixedText* m_pDetailLabel;
+ FixedText* m_pMasterLabel;
SAL_WNODEPRECATED_DECLARATIONS_PUSH
::std::auto_ptr< FieldLinkRow > m_aRow1;
::std::auto_ptr< FieldLinkRow > m_aRow2;
::std::auto_ptr< FieldLinkRow > m_aRow3;
::std::auto_ptr< FieldLinkRow > m_aRow4;
SAL_WNODEPRECATED_DECLARATIONS_POP
- OKButton m_aOK;
- CancelButton m_aCancel;
- HelpButton m_aHelp;
- PushButton m_aSuggest;
+ OKButton* m_pOK;
+ PushButton* m_pSuggest;
::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext >
m_xContext;
diff --git a/extensions/source/propctrlr/formlinkdialog.src b/extensions/source/propctrlr/formlinkdialog.src
index d20dd78c2923..4584a8272703 100644
--- a/extensions/source/propctrlr/formlinkdialog.src
+++ b/extensions/source/propctrlr/formlinkdialog.src
@@ -19,134 +19,21 @@
#include "formresid.hrc"
#include "propctrlr.hrc"
-#include "formlinkdialog.hrc"
-ModalDialog RID_DLG_FORMLINKS
+String STR_DETAIL_FORM
{
- HelpID = "extensions:ModalDialog:RID_DLG_FORMLINKS";
- OutputSize = TRUE ;
- Moveable = TRUE ;
- Closeable = TRUE ;
- SVLook = TRUE ;
- Size = MAP_APPFONT ( 252, 110 ) ;
-
- Text [ en-US ] = "Link fields";
-
- FixedText FT_EXPLANATION
- {
- Pos = MAP_APPFONT( 6, 6 );
- Size = MAP_APPFONT( 187, 24 );
-
- WordBreak = TRUE;
-
- Text [ en-US ] = "Sub forms can be used to display detailed data about the current record of the master form. To do this, you can specify which columns in the sub form match which columns in the master form.";
- };
-
- FixedText FT_DETAIL_LABEL
- {
- Pos = MAP_APPFONT( 6, 36 );
- Size = MAP_APPFONT( 85, 8 );
- };
-
- FixedText FT_MASTER_LABEL
- {
- Pos = MAP_APPFONT( 102, 36 );
- Size = MAP_APPFONT( 85, 8 );
- };
-
-#define ROW( n ) \
- Window n \
- { \
- Pos = MAP_APPFONT( 6, 47 + 15 * ( n - 1 ) ); \
- Size = MAP_APPFONT( 181, 13 ); \
- \
- Hide = FALSE; \
- DialogControl = TRUE; \
- \
- ComboBox 1 \
- { \
- Pos = MAP_APPFONT( 0, 0 ); \
- Size = MAP_APPFONT( 85, 12 ); \
- \
- DropDown = TRUE; \
- TabStop = TRUE; \
- \
- HelpId = HID_FIELDLINK_DETAIL_COLUMN; \
- UniqueId = UID_FIELDLINK_DETAIL#n; \
- }; \
- FixedText 1 \
- { \
- Pos = MAP_APPFONT( 85, 0 ); \
- Size = MAP_APPFONT( 10, 12 ); \
- Center = TRUE; \
- }; \
- ComboBox 2 \
- { \
- Pos = MAP_APPFONT( 95, 0 ); \
- Size = MAP_APPFONT( 85, 12 ); \
- \
- DropDown = TRUE; \
- TabStop = TRUE; \
- \
- HelpId = HID_FIELDLINK_MASTER_COLUMN; \
- UniqueId = UID_FIELDLINK_MASTER#n; \
- }; \
- }
-
- ROW( 1 );
- ROW( 2 );
- ROW( 3 );
- ROW( 4 );
-
- OKButton PB_OK
- {
- Pos = MAP_APPFONT( 199, 6 );
- Size = MAP_APPFONT( 50, 14 );
- TabStop = TRUE;
- DefButton = TRUE;
- };
-
- CancelButton PB_CANCEL
- {
- Pos = MAP_APPFONT( 199, 23 );
- Size = MAP_APPFONT( 50, 14 );
- TabStop = TRUE;
- };
-
- HelpButton PB_HELP
- {
- Pos = MAP_APPFONT( 199, 43 );
- Size = MAP_APPFONT( 50, 14 );
- TabStop = TRUE;
- };
-
- PushButton PB_SUGGEST
- {
- HelpID = "extensions:PushButton:RID_DLG_FORMLINKS:PB_SUGGEST";
- Pos = MAP_APPFONT( 199, 90 );
- Size = MAP_APPFONT( 50, 14 );
- TabStop = TRUE;
- Hide = FALSE;
- Disable = TRUE;
-
- Text [ en-US ] = "Suggest";
- };
-
- String STR_DETAIL_FORM
- {
- Text [ en-US ] = "Sub Form";
- };
+ Text [ en-US ] = "Sub Form";
+};
- String STR_MASTER_FORM
- {
- Text [ en-US ] = "Master Form";
- };
+String STR_MASTER_FORM
+{
+ Text [ en-US ] = "Master Form";
+};
- String STR_ERROR_RETRIEVING_COLUMNS
- {
- Text [ en-US ] = "The columns of '#' could not be retrieved.";
- Text [ x-comment ] ="# will be replace with a name.";
- };
+String STR_ERROR_RETRIEVING_COLUMNS
+{
+ Text [ en-US ] = "The columns of '#' could not be retrieved.";
+ Text [ x-comment ] ="# will be replace with a name.";
};
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/extensions/source/propctrlr/formresid.hrc b/extensions/source/propctrlr/formresid.hrc
index d24385d5bfd1..c9447f899442 100644
--- a/extensions/source/propctrlr/formresid.hrc
+++ b/extensions/source/propctrlr/formresid.hrc
@@ -266,6 +266,9 @@
#define RID_STR_SCROLL_HEIGHT ( RID_FORMBROWSER_START + 257 )
#define RID_STR_SCROLL_TOP ( RID_FORMBROWSER_START + 258 )
#define RID_STR_SCROLL_LEFT ( RID_FORMBROWSER_START + 259 )
+#define STR_DETAIL_FORM ( RID_FORMBROWSER_START + 260 )
+#define STR_MASTER_FORM ( RID_FORMBROWSER_START + 261 )
+#define STR_ERROR_RETRIEVING_COLUMNS ( RID_FORMBROWSER_START + 262 )
// - message strings
diff --git a/extensions/uiconfig/spropctrlr/ui/fieldlinkrow.ui b/extensions/uiconfig/spropctrlr/ui/fieldlinkrow.ui
new file mode 100644
index 000000000000..3164832345a4
--- /dev/null
+++ b/extensions/uiconfig/spropctrlr/ui/fieldlinkrow.ui
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+ <!-- interface-requires gtk+ 3.0 -->
+ <object class="GtkBox" id="FieldLinkRow">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="hexpand">True</property>
+ <property name="spacing">6</property>
+ <child>
+ <object class="GtkComboBoxText" id="detailCombobox">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="hexpand">True</property>
+ <property name="has_entry">True</property>
+ <property name="entry_text_column">0</property>
+ <property name="id_column">1</property>
+ <child internal-child="entry">
+ <object class="GtkEntry" id="comboboxtext-entry1">
+ <property name="can_focus">False</property>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkComboBoxText" id="masterCombobox">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="hexpand">True</property>
+ <property name="has_entry">True</property>
+ <property name="entry_text_column">0</property>
+ <property name="id_column">1</property>
+ <child internal-child="entry">
+ <object class="GtkEntry" id="comboboxtext-entry2">
+ <property name="can_focus">False</property>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+</interface>
diff --git a/extensions/uiconfig/spropctrlr/ui/formlinksdialog.ui b/extensions/uiconfig/spropctrlr/ui/formlinksdialog.ui
new file mode 100644
index 000000000000..9c598a3aef7f
--- /dev/null
+++ b/extensions/uiconfig/spropctrlr/ui/formlinksdialog.ui
@@ -0,0 +1,168 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+ <!-- interface-requires gtk+ 3.0 -->
+ <object class="GtkDialog" id="FormLinks">
+ <property name="can_focus">False</property>
+ <property name="hexpand">True</property>
+ <property name="vexpand">True</property>
+ <property name="border_width">6</property>
+ <property name="title" translatable="yes">Link fields</property>
+ <property name="type_hint">dialog</property>
+ <child internal-child="vbox">
+ <object class="GtkBox" id="dialog-vbox1">
+ <property name="can_focus">False</property>
+ <property name="hexpand">True</property>
+ <property name="vexpand">True</property>
+ <property name="spacing">12</property>
+ <child internal-child="action_area">
+ <object class="GtkButtonBox" id="dialog-action_area1">
+ <property name="can_focus">False</property>
+ <property name="orientation">vertical</property>
+ <property name="layout_style">start</property>
+ <child>
+ <object class="GtkButton" id="ok">
+ <property name="label">gtk-ok</property>
+ <property name="use_action_appearance">False</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="can_default">True</property>
+ <property name="has_default">True</property>
+ <property name="receives_default">True</property>
+ <property name="use_stock">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton" id="cancel">
+ <property name="label">gtk-cancel</property>
+ <property name="use_action_appearance">False</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ <property name="use_stock">True</property>
+ <property name="yalign">0.49000000953674316</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton" id="help">
+ <property name="label">gtk-help</property>
+ <property name="use_action_appearance">False</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ <property name="use_stock">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton" id="suggestButton">
+ <property name="label" translatable="yes">Suggest</property>
+ <property name="use_action_appearance">False</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">3</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="pack_type">end</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkBox" id="box">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="hexpand">True</property>
+ <property name="vexpand">True</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">6</property>
+ <child>
+ <object class="GtkLabel" id="explanationLabel">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">Sub forms can be used to display detailed data about the current record of the master form. To do this, you can specify which columns in the sub form match which columns in the master form.</property>
+ <property name="wrap">True</property>
+ <property name="max_width_chars">60</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkBox" id="box2">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="hexpand">True</property>
+ <property name="homogeneous">True</property>
+ <child>
+ <object class="GtkLabel" id="detailLabel">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">label</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="masterLabel">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">label</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ <action-widgets>
+ <action-widget response="0">ok</action-widget>
+ <action-widget response="0">cancel</action-widget>
+ <action-widget response="0">help</action-widget>
+ <action-widget response="0">suggestButton</action-widget>
+ </action-widgets>
+ </object>
+</interface>