split out custom properties info page and convert to .ui
The CustomPropertiesWindow could be converted to something that inherits from
one of the new containers and remove a load of that custom positioning code but
for now just minimally retro-fit the existing manual position setting code of
the custom scrolling widget.
Change-Id: I6c85286f3652a11bf8c8d827c4986b5b9d745523
diff --git a/sfx2/inc/sfx2/dinfdlg.hxx b/sfx2/inc/sfx2/dinfdlg.hxx
index 3bd64da..94f196a 100644
--- a/sfx2/inc/sfx2/dinfdlg.hxx
+++ b/sfx2/inc/sfx2/dinfdlg.hxx
@@ -23,18 +23,23 @@
#include "sfx2/dllapi.h"
#include <com/sun/star/util/DateTime.hpp>
#include <vcl/edit.hxx>
#include <vcl/field.hxx>
#include <svtools/stdctrl.hxx>
#include <com/sun/star/util/Duration.hpp>
#include <svl/stritem.hxx>
#include <svl/zforlist.hxx>
#include <svtools/headbar.hxx>
#include <svtools/stdctrl.hxx>
#include <svtools/svmedit.hxx>
#include <unotools/syslocale.hxx>
#include <vcl/edit.hxx>
#include <vcl/field.hxx>
#include <vcl/layout.hxx>
#include <vcl/lstbox.hxx>
#include <vcl/scrbar.hxx>
#include <svtools/headbar.hxx>
#include <unotools/syslocale.hxx>
#include <svl/zforlist.hxx>
#include <com/sun/star/util/Duration.hpp>
#include "tabdlg.hxx"
namespace com { namespace sun { namespace star {
@@ -478,7 +483,10 @@ private:
void ValidateLine( CustomPropertyLine* pLine, bool bIsFromTypeBox );
public:
CustomPropertiesWindow( Window* pParent, const ResId& rResId );
CustomPropertiesWindow(Window* pParent,
const OUString &rHeaderAccName,
const OUString &rHeaderAccType,
const OUString &rHeaderAccValue);
~CustomPropertiesWindow();
void InitControls( HeaderBar* pHeaderBar, const ScrollBar* pScrollBar );
@@ -492,16 +500,20 @@ public:
::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >
GetCustomProperties() const;
void SetRemovedHdl( const Link& rLink ) { m_aRemovedHdl = rLink; }
void InitRemoveButton(const ScrollBar &rScrollBar);
void updateLineWidth();
};
// class CustomPropertiesControl -----------------------------------------
class CustomPropertiesControl : public Control
class CustomPropertiesControl : public VclVBox
{
private:
HeaderBar m_aHeaderBar;
CustomPropertiesWindow m_aPropertiesWin;
ScrollBar m_aVertScroll;
HeaderBar* m_pHeaderBar;
VclHBox* m_pBody;
CustomPropertiesWindow* m_pPropertiesWin;
ScrollBar* m_pVertScroll;
sal_Int32 m_nThumbPos;
@@ -509,16 +521,18 @@ private:
DECL_LINK( RemovedHdl, void* );
public:
CustomPropertiesControl( Window* pParent, const ResId& rResId );
CustomPropertiesControl(Window* pParent);
~CustomPropertiesControl();
void AddLine( const ::rtl::OUString& sName, com::sun::star::uno::Any& rAny, bool bInteractive );
inline bool AreAllLinesValid() const { return m_aPropertiesWin.AreAllLinesValid(); }
inline void ClearAllLines() { m_aPropertiesWin.ClearAllLines(); }
inline bool AreAllLinesValid() const { return m_pPropertiesWin->AreAllLinesValid(); }
inline void ClearAllLines() { m_pPropertiesWin->ClearAllLines(); }
inline ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >
GetCustomProperties() const
{ return m_aPropertiesWin.GetCustomProperties(); }
{ return m_pPropertiesWin->GetCustomProperties(); }
void Init(VclBuilderContainer& rParent);
virtual void setAllocation(const Size &rAllocation);
};
// class SfxCustomPropertiesPage -----------------------------------------
diff --git a/sfx2/inc/sfx2/sfx.hrc b/sfx2/inc/sfx2/sfx.hrc
index cd1ecdc..cb31562 100644
--- a/sfx2/inc/sfx2/sfx.hrc
+++ b/sfx2/inc/sfx2/sfx.hrc
@@ -132,7 +132,6 @@
#define TP_DOCINFODESC (RID_SFX_START+3)
#define TP_DOCINFODOC (RID_SFX_START+4)
#define TP_DOCINFOUSER (RID_SFX_START+5)
#define TP_DOCINFORELOAD (RID_SFX_START+13)
#define TP_CUSTOMPROPERTIES (RID_SFX_START+14)
#define TP_DOCINFOSECURITY (RID_SFX_START+215)
diff --git a/sfx2/source/dialog/dinfdlg.cxx b/sfx2/source/dialog/dinfdlg.cxx
index d835281..6de396d 100644
--- a/sfx2/source/dialog/dinfdlg.cxx
+++ b/sfx2/source/dialog/dinfdlg.cxx
@@ -1698,10 +1698,11 @@ void CustomPropertyLine::SetRemoved()
m_aRemoveButton.Hide();
}
// class CustomPropertiesWindow ------------------------------------------
CustomPropertiesWindow::CustomPropertiesWindow( Window* pParent, const ResId& rResId ) :
Window( pParent, rResId ),
CustomPropertiesWindow::CustomPropertiesWindow(Window* pParent,
const OUString &rHeaderAccName,
const OUString &rHeaderAccType,
const OUString &rHeaderAccValue) :
Window(pParent),
m_aNameBox ( this, SfxResId( SFX_CB_PROPERTY_NAME ) ),
m_aTypeBox ( this, SfxResId( SFX_LB_PROPERTY_TYPE ) ),
m_aValueEdit ( this, SfxResId( SFX_ED_PROPERTY_VALUE ) ),
@@ -1721,10 +1722,9 @@ CustomPropertiesWindow::CustomPropertiesWindow( Window* pParent, const ResId& rR
m_aBoxLoseFocusTimer.SetTimeout( 300 );
m_aBoxLoseFocusTimer.SetTimeoutHdl( LINK( this, CustomPropertiesWindow, BoxTimeoutHdl ) );
ResMgr* pResMgr = rResId.GetResMgr();
m_aNameBox.SetAccessibleName( ResId( STR_HEADER_NAME, *pResMgr ).toString() );
m_aTypeBox.SetAccessibleName( ResId( STR_HEADER_TYPE, *pResMgr ).toString() );
m_aValueEdit.SetAccessibleName( ResId( STR_HEADER_VALUE, *pResMgr ).toString() );
m_aNameBox.SetAccessibleName(rHeaderAccName);
m_aTypeBox.SetAccessibleName(rHeaderAccType);
m_aValueEdit.SetAccessibleName(rHeaderAccValue);
}
CustomPropertiesWindow::~CustomPropertiesWindow()
@@ -1911,7 +1911,7 @@ void CustomPropertiesWindow::InitControls( HeaderBar* pHeaderBar, const ScrollBa
Rectangle aRect = pHeaderBar->GetItemRect( pHeaderBar->GetItemId( nPos++ ) );
Size aSize = (*pCurrent)->GetSizePixel();
Point aPos = (*pCurrent)->GetPosPixel();
long nWidth = aRect.getWidth() - nOffset;
long nWidth = aRect.GetWidth() - nOffset;
if ( *pCurrent == &m_aRemoveButton )
nWidth -= pScrollBar->GetSizePixel().Width();
aSize.Width() = nWidth;
@@ -1960,6 +1960,39 @@ sal_uInt16 CustomPropertiesWindow::GetVisibleLineCount() const
return nCount;
}
void CustomPropertiesWindow::updateLineWidth()
{
Window* pWindows[] = { &m_aNameBox, &m_aTypeBox, &m_aValueEdit,
&m_aDateField, &m_aTimeField,
&m_aDurationField, &m_aEditButton,
&m_aYesNoButton, &m_aRemoveButton, NULL };
for (std::vector< CustomPropertyLine* >::iterator aI =
m_aCustomPropertiesLines.begin(), aEnd = m_aCustomPropertiesLines.end();
aI != aEnd; ++aI)
{
CustomPropertyLine* pNewLine = *aI;
Window* pNewWindows[] =
{ &pNewLine->m_aNameBox, &pNewLine->m_aTypeBox, &pNewLine->m_aValueEdit,
&pNewLine->m_aDateField, &pNewLine->m_aTimeField,
&pNewLine->m_aDurationField, &pNewLine->m_aEditButton,
&pNewLine->m_aYesNoButton, &pNewLine->m_aRemoveButton, NULL };
Window** pCurrent = pWindows;
Window** pNewCurrent = pNewWindows;
while ( *pCurrent )
{
Size aSize = (*pCurrent)->GetSizePixel();
Point aPos = (*pCurrent)->GetPosPixel();
aPos.Y() = (*pNewCurrent)->GetPosPixel().Y();
(*pNewCurrent)->SetPosSizePixel( aPos, aSize );
pCurrent++;
pNewCurrent++;
}
}
}
void CustomPropertiesWindow::AddLine( const ::rtl::OUString& sName, Any& rAny )
{
CustomPropertyLine* pNewLine = new CustomPropertyLine( this );
@@ -2186,81 +2219,112 @@ Sequence< beans::PropertyValue > CustomPropertiesWindow::GetCustomProperties() c
return aPropertiesSeq;
}
// class CustomPropertiesControl -----------------------------------------
CustomPropertiesControl::CustomPropertiesControl( Window* pParent, const ResId& rResId ) :
Control( pParent, rResId ),
m_aHeaderBar ( this, WB_BUTTONSTYLE | WB_BOTTOMBORDER ),
m_aPropertiesWin( this, ResId( WIN_PROPERTIES, *rResId.GetResMgr() ) ),
m_aVertScroll ( this, ResId( SB_VERTICAL, *rResId.GetResMgr() ) ),
m_nThumbPos ( 0 )
CustomPropertiesControl::CustomPropertiesControl(Window* pParent)
: VclVBox(pParent)
, m_nThumbPos(0)
{
m_aPropertiesWin.SetBackground( Wallpaper( GetSettings().GetStyleSettings().GetFieldColor() ) );
m_aVertScroll.EnableDrag();
m_aVertScroll.Show();
long nWidth = GetOutputSizePixel().Width();
m_aHeaderBar.SetPosSizePixel( Point(), Size( nWidth, m_aVertScroll.GetPosPixel().Y() ) );
}
void CustomPropertiesControl::Init(VclBuilderContainer& rBuilder)
{
m_pHeaderBar = new HeaderBar(this, WB_BUTTONSTYLE | WB_BOTTOMBORDER);
m_pBody = new VclHBox(this);
OUString sName = rBuilder.get<FixedText>("name")->GetText();
OUString sType = rBuilder.get<FixedText>("type")->GetText();
OUString sValue = rBuilder.get<FixedText>("value")->GetText();
m_pPropertiesWin = new CustomPropertiesWindow(m_pBody, sName, sType, sValue);
m_pVertScroll = new ScrollBar(m_pBody, WB_VERT);
set_hexpand(true);
set_vexpand(true);
set_expand(true);
set_fill(true);
m_pBody->set_hexpand(true);
m_pBody->set_vexpand(true);
m_pBody->set_expand(true);
m_pBody->set_fill(true);
m_pBody->Show();
m_pPropertiesWin->set_hexpand(true);
m_pPropertiesWin->set_vexpand(true);
m_pPropertiesWin->set_expand(true);
m_pPropertiesWin->set_fill(true);
m_pPropertiesWin->Show();
m_pPropertiesWin->SetBackground( Wallpaper( GetSettings().GetStyleSettings().GetFieldColor() ) );
m_pVertScroll->EnableDrag();
m_pVertScroll->Show();
m_pHeaderBar->set_height_request(16);
const HeaderBarItemBits nHeadBits = HIB_VCENTER | HIB_FIXED | HIB_FIXEDPOS | HIB_LEFT;
nWidth = nWidth / 4;
ResMgr* pResMgr = rResId.GetResMgr();
m_aHeaderBar.InsertItem( HI_NAME, ResId( STR_HEADER_NAME, *pResMgr ).toString(), nWidth, nHeadBits );
m_aHeaderBar.InsertItem( HI_TYPE, ResId( STR_HEADER_TYPE, *pResMgr ).toString(), nWidth, nHeadBits );
m_aHeaderBar.InsertItem( HI_VALUE, ResId( STR_HEADER_VALUE, *pResMgr ).toString(), nWidth, nHeadBits );
m_aHeaderBar.InsertItem( HI_ACTION, ResId( STR_HEADER_ACTION, *pResMgr ).toString(), nWidth, nHeadBits );
m_aHeaderBar.Show();
FreeResource();
m_pHeaderBar->InsertItem( HI_NAME, sName, 0, nHeadBits );
m_pHeaderBar->InsertItem( HI_TYPE, sType, 0, nHeadBits );
m_pHeaderBar->InsertItem( HI_VALUE, sValue, 0, nHeadBits );
m_pHeaderBar->InsertItem( HI_ACTION, OUString(), 0, nHeadBits );
m_pHeaderBar->Show();
m_aPropertiesWin.InitControls( &m_aHeaderBar, &m_aVertScroll );
m_aPropertiesWin.SetRemovedHdl( LINK( this, CustomPropertiesControl, RemovedHdl ) );
m_pPropertiesWin->SetRemovedHdl( LINK( this, CustomPropertiesControl, RemovedHdl ) );
m_aVertScroll.SetRangeMin( 0 );
sal_Int32 nScrollOffset = m_aPropertiesWin.GetLineHeight();
sal_Int32 nVisibleEntries = m_aPropertiesWin.GetSizePixel().Height() / nScrollOffset;
m_aVertScroll.SetRangeMax( nVisibleEntries );
m_aVertScroll.SetPageSize( nVisibleEntries - 1 );
m_aVertScroll.SetVisibleSize( nVisibleEntries );
m_pVertScroll->SetRangeMin( 0 );
m_pVertScroll->SetRangeMax( 0 );
m_pVertScroll->SetVisibleSize( 0xFFFF );
Link aScrollLink = LINK( this, CustomPropertiesControl, ScrollHdl );
m_aVertScroll.SetScrollHdl( aScrollLink );
m_pVertScroll->SetScrollHdl( aScrollLink );
}
void CustomPropertiesControl::setAllocation(const Size &rAllocation)
{
VclVBox::setAllocation(rAllocation);
m_pPropertiesWin->InitControls( m_pHeaderBar, m_pVertScroll );
sal_Int32 nScrollOffset = m_pPropertiesWin->GetLineHeight();
sal_Int32 nVisibleEntries = m_pPropertiesWin->GetSizePixel().Height() / nScrollOffset;
m_pVertScroll->SetPageSize( nVisibleEntries - 1 );
m_pVertScroll->SetVisibleSize( nVisibleEntries );
m_pPropertiesWin->updateLineWidth();
}
extern "C" SAL_DLLPUBLIC_EXPORT Window* SAL_CALL makeCustomPropertiesControl(Window *pParent,
VclBuilder::stringmap &)
{
return new CustomPropertiesControl(pParent, SfxResId(SFX_CTRL_CUSTOM_PROPERTIES));
return new CustomPropertiesControl(pParent);
}
CustomPropertiesControl::~CustomPropertiesControl()
{
delete m_pVertScroll;
delete m_pPropertiesWin;
delete m_pBody;
delete m_pHeaderBar;
}
IMPL_LINK( CustomPropertiesControl, ScrollHdl, ScrollBar*, pScrollBar )
{
sal_Int32 nOffset = m_aPropertiesWin.GetLineHeight();
sal_Int32 nOffset = m_pPropertiesWin->GetLineHeight();
nOffset *= ( m_nThumbPos - pScrollBar->GetThumbPos() );
m_nThumbPos = pScrollBar->GetThumbPos();
m_aPropertiesWin.DoScroll( nOffset );
m_pPropertiesWin->DoScroll( nOffset );
return 0;
}
IMPL_LINK_NOARG(CustomPropertiesControl, RemovedHdl)
{
m_aVertScroll.SetRangeMax( m_aPropertiesWin.GetVisibleLineCount() + 1 );
if ( m_aPropertiesWin.GetOutputSizePixel().Height() < m_aPropertiesWin.GetVisibleLineCount() * m_aPropertiesWin.GetLineHeight() )
m_aVertScroll.DoScrollAction ( SCROLL_LINEUP );
m_pVertScroll->SetRangeMax( m_pPropertiesWin->GetVisibleLineCount() + 1 );
if ( m_pPropertiesWin->GetOutputSizePixel().Height() < m_pPropertiesWin->GetVisibleLineCount() * m_pPropertiesWin->GetLineHeight() )
m_pVertScroll->DoScrollAction ( SCROLL_LINEUP );
return 0;
}
void CustomPropertiesControl::AddLine( const ::rtl::OUString& sName, Any& rAny, bool bInteractive )
{
m_aPropertiesWin.AddLine( sName, rAny );
m_aVertScroll.SetRangeMax( m_aPropertiesWin.GetVisibleLineCount() + 1 );
if ( bInteractive && m_aPropertiesWin.GetOutputSizePixel().Height() < m_aPropertiesWin.GetVisibleLineCount() * m_aPropertiesWin.GetLineHeight() )
m_aVertScroll.DoScroll( m_aPropertiesWin.GetVisibleLineCount() + 1 );
m_pPropertiesWin->AddLine( sName, rAny );
m_pVertScroll->SetRangeMax( m_pPropertiesWin->GetVisibleLineCount() + 1 );
if ( bInteractive && m_pPropertiesWin->GetOutputSizePixel().Height() < m_pPropertiesWin->GetVisibleLineCount() * m_pPropertiesWin->GetLineHeight() )
m_pVertScroll->DoScroll( m_pPropertiesWin->GetVisibleLineCount() + 1 );
}
// class SfxCustomPropertiesPage -----------------------------------------
@@ -2268,6 +2332,7 @@ SfxCustomPropertiesPage::SfxCustomPropertiesPage( Window* pParent, const SfxItem
: SfxTabPage(pParent, "CustomInfoPage", "sfx/ui/custominfopage.ui", rItemSet)
{
get(m_pPropertiesCtrl, "properties");
m_pPropertiesCtrl->Init(*this);
get<PushButton>("add")->SetClickHdl(LINK(this, SfxCustomPropertiesPage, AddHdl));
}
diff --git a/sfx2/source/dialog/dinfdlg.hrc b/sfx2/source/dialog/dinfdlg.hrc
index 2df47b8..eea59c7 100644
--- a/sfx2/source/dialog/dinfdlg.hrc
+++ b/sfx2/source/dialog/dinfdlg.hrc
@@ -32,30 +32,9 @@
// defines ---------------------------------------------------------------
#define FT_INFO1 15
#define ED_INFO1 16
#define FT_INFO2 17
#define ED_INFO2 18
#define FT_INFO3 19
#define ED_INFO3 20
#define FT_INFO4 21
#define ED_INFO4 22
#define BTN_EDITLABEL 34
#define WIN_PROPERTIES 90
#define SB_VERTICAL 91
#define FT_PROPERTIES 92
#define BTN_ADD 94
#define RB_PROPERTY_YES 100
#define RB_PROPERTY_NO 101
#define STR_HEADER_NAME 90
#define STR_HEADER_TYPE 91
#define STR_HEADER_VALUE 92
#define STR_HEADER_ACTION 93
#define EDIT_FILE_NAME 94
#define PB_OK 100
#define PB_CANCEL 101
#define PB_HELP 102
diff --git a/sfx2/source/dialog/dinfdlg.src b/sfx2/source/dialog/dinfdlg.src
index 007a6d22..a90e271 100644
--- a/sfx2/source/dialog/dinfdlg.src
+++ b/sfx2/source/dialog/dinfdlg.src
@@ -29,139 +29,6 @@ String STR_SFX_NEWOFFICEDOC
Text [ en-US ] = "%PRODUCTNAME document" ;
};
// TP_DOCINFOUSER --------------------------------------------------------
TabPage TP_DOCINFOUSER
{
HelpId = HID_DOCINFOUSER ;
Hide = TRUE ;
Size = MAP_APPFONT ( TP_WIDTH , TP_HEIGHT ) ;
FixedText FT_INFO1
{
Pos = MAP_APPFONT ( 6 , 6 ) ;
Size = MAP_APPFONT ( 248 , RSC_CD_FIXEDTEXT_HEIGHT ) ;
Left = TRUE ;
};
Edit ED_INFO1
{
HelpID = "sfx2:Edit:TP_DOCINFOUSER:ED_INFO1";
Border = TRUE ;
Pos = MAP_APPFONT ( 6 , 17 ) ;
Size = MAP_APPFONT ( 248 , RSC_CD_TEXTBOX_HEIGHT ) ;
Left = TRUE ;
};
FixedText FT_INFO2
{
Pos = MAP_APPFONT ( 6 , 32 ) ;
Size = MAP_APPFONT ( 248 , RSC_CD_FIXEDTEXT_HEIGHT ) ;
Left = TRUE ;
};
Edit ED_INFO2
{
HelpID = "sfx2:Edit:TP_DOCINFOUSER:ED_INFO2";
Border = TRUE ;
Pos = MAP_APPFONT ( 6 , 43 ) ;
Size = MAP_APPFONT ( 248 , RSC_CD_TEXTBOX_HEIGHT ) ;
Left = TRUE ;
};
FixedText FT_INFO3
{
Pos = MAP_APPFONT ( 6 , 58 ) ;
Size = MAP_APPFONT ( 248 , RSC_CD_FIXEDTEXT_HEIGHT ) ;
Left = TRUE ;
};
Edit ED_INFO3
{
HelpID = "sfx2:Edit:TP_DOCINFOUSER:ED_INFO3";
Border = TRUE ;
Pos = MAP_APPFONT ( 6 , 69 ) ;
Size = MAP_APPFONT ( 248 , RSC_CD_TEXTBOX_HEIGHT ) ;
Left = TRUE ;
};
FixedText FT_INFO4
{
Pos = MAP_APPFONT ( 6 , 84 ) ;
Size = MAP_APPFONT ( 248 , RSC_CD_FIXEDTEXT_HEIGHT ) ;
Left = TRUE ;
};
Edit ED_INFO4
{
HelpID = "sfx2:Edit:TP_DOCINFOUSER:ED_INFO4";
Border = TRUE ;
Pos = MAP_APPFONT ( 6 , 95 ) ;
Size = MAP_APPFONT ( 248 , RSC_CD_TEXTBOX_HEIGHT ) ;
Left = TRUE ;
};
PushButton BTN_EDITLABEL
{
HelpID = "sfx2:PushButton:TP_DOCINFOUSER:BTN_EDITLABEL";
Pos = MAP_APPFONT ( 194 , 165 ) ;
Size = MAP_APPFONT ( 60 , RSC_CD_PUSHBUTTON_HEIGHT ) ;
Text [ en-US ] = "~Info fields..." ;
};
};
Control SFX_CTRL_CUSTOM_PROPERTIES
{
HelpId = HID_CTRL_CUSTOMPROPERTIES;
Pos = MAP_APPFONT ( 6 , 18 ) ;
Size = MAP_APPFONT ( 248 , 141 ) ;
Border = TRUE;
DialogControl = TRUE;
Window WIN_PROPERTIES
{
OutputSize = TRUE ;
Pos = MAP_APPFONT ( 0 , 10 ) ;
Size = MAP_APPFONT ( 240 , 134 ) ;
DialogControl = TRUE;
};
ScrollBar SB_VERTICAL
{
Pos = MAP_APPFONT ( 238 , 10 ) ;
Size = MAP_APPFONT ( 8 , 129 ) ;
VScroll = TRUE;
};
String STR_HEADER_NAME
{
Text [ en-US ] = "Name" ;
};
String STR_HEADER_TYPE
{
Text [ en-US ] = "Type" ;
};
String STR_HEADER_VALUE
{
Text [ en-US ] = "Value" ;
};
String STR_HEADER_ACTION
{
Text [ en-US ] = "" ;
};
};
// TP_CUSTOMPROPERTIES ---------------------------------------------------
TabPage TP_CUSTOMPROPERTIES
{
HelpId = HID_TP_CUSTOMPROPERTIES ;
Hide = TRUE ;
Size = MAP_APPFONT ( TP_WIDTH , TP_HEIGHT ) ;
FixedText FT_PROPERTIES
{
Pos = MAP_APPFONT ( 6 , 7 ) ;
Size = MAP_APPFONT ( 248 , RSC_CD_FIXEDTEXT_HEIGHT ) ;
Left = TRUE ;
Text [ en-US ] = "~Properties" ;
};
PushButton BTN_ADD
{
HelpID = "sfx2:PushButton:TP_CUSTOMPROPERTIES:BTN_ADD";
Pos = MAP_APPFONT( 204 , 165 );
Size = MAP_APPFONT( RSC_CD_PUSHBUTTON_WIDTH, RSC_CD_PUSHBUTTON_HEIGHT );
Text [ en-US ] = "~Add";
};
};
ComboBox SFX_CB_PROPERTY_NAME
{
Pos = MAP_APPFONT ( 0 , 2 ) ;
@@ -317,6 +184,7 @@ TabDialog SID_DOCINFO
OutputSize = TRUE ;
SVLook = TRUE ;
Moveable = TRUE ;
Sizeable = TRUE ;
Text [ en-US ] = "Properties of " ;
TabControl 1
{
diff --git a/sfx2/source/inc/helpid.hrc b/sfx2/source/inc/helpid.hrc
index e1dc196..88583c9 100644
--- a/sfx2/source/inc/helpid.hrc
+++ b/sfx2/source/inc/helpid.hrc
@@ -26,7 +26,6 @@
#define HID_PRINTMONITOR "SFX2_HID_PRINTMONITOR"
#define HID_MANAGE_STYLES "SFX2_HID_MANAGE_STYLES"
#define HID_CONFIG_EVENT "SFX2_HID_CONFIG_EVENT"
#define HID_DOCINFOUSER "SFX2_HID_DOCINFOUSER"
#define HID_BROWSERCONTROL "SFX2_HID_BROWSERCONTROL"
#define HID_PRINT_OPTIONS "SFX2_HID_PRINT_OPTIONS"
#define HID_PREVIEW_FRAME "SFX2_HID_PREVIEW_FRAME"
@@ -135,8 +134,6 @@
#define HID_WARNING_ALIENFORMAT "SFX2_HID_WARNING_ALIENFORMAT"
#define HID_HELP_ONSTARTUP_BOX "SFX2_HID_HELP_ONSTARTUP_BOX"
#define HID_DLG_CHECKFORONLINEUPDATE "SFX2_HID_DLG_CHECKFORONLINEUPDATE"
#define HID_TP_CUSTOMPROPERTIES "SFX2_HID_TP_CUSTOMPROPERTIES"
#define HID_CTRL_CUSTOMPROPERTIES "SFX2_HID_CTRL_CUSTOMPROPERTIES"
#define HID_CTRL_CUSTOMPROPS_YES_NO "SFX2_HID_CTRL_CUSTOMPROPS_YES_NO"
#define HID_DLG_CUSTOMPROPS_DURATION "SFX2_HID_DLG_CUSTOMPROPS_DURATION"
diff --git a/sfx2/source/inc/sfxlocal.hrc b/sfx2/source/inc/sfxlocal.hrc
index 134f9bb..2a3cbcb 100644
--- a/sfx2/source/inc/sfxlocal.hrc
+++ b/sfx2/source/inc/sfxlocal.hrc
@@ -48,7 +48,6 @@
#define SFX_FLD_TIME (RID_SFX_SFXLOCAL_START + 11)
#define SFX_FLD_DURATION (RID_SFX_SFXLOCAL_START + 12)
#define SFX_ST_DURATION_FORMAT (RID_SFX_SFXLOCAL_START + 13)
#define SFX_CTRL_CUSTOM_PROPERTIES (RID_SFX_SFXLOCAL_START + 14)
// Images ----------------------------------------------------------------
diff --git a/sfx2/uiconfig/ui/custominfopage.ui b/sfx2/uiconfig/ui/custominfopage.ui
index fe4f207..0cc0612 100644
--- a/sfx2/uiconfig/ui/custominfopage.ui
+++ b/sfx2/uiconfig/ui/custominfopage.ui
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<interface>
<!-- interface-requires gtk+ 3.0 -->
<object class="GtkGrid" id="grid12">
<object class="GtkGrid" id="CustomInfoPage">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="hexpand">True</property>
@@ -35,7 +35,7 @@
</object>
<packing>
<property name="left_attach">0</property>
<property name="top_attach">2</property>
<property name="top_attach">3</property>
<property name="width">1</property>
<property name="height">1</property>
</packing>
@@ -49,6 +49,57 @@
</object>
<packing>
<property name="left_attach">0</property>
<property name="top_attach">2</property>
<property name="width">1</property>
<property name="height">1</property>
</packing>
</child>
<child>
<object class="GtkBox" id="box1">
<property name="can_focus">False</property>
<property name="no_show_all">True</property>
<property name="hexpand">True</property>
<property name="spacing">12</property>
<property name="homogeneous">True</property>
<child>
<object class="GtkLabel" id="name">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">Name</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="type">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">Type</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="value">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">Value</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">2</property>
</packing>
</child>
</object>
<packing>
<property name="left_attach">0</property>
<property name="top_attach">1</property>
<property name="width">1</property>
<property name="height">1</property>