convert acceleration config page to .ui

Change-Id: I0868b635d3aca4d368f32a0035b3f57a0da35ac7
This commit is contained in:
Caolán McNamara
2014-03-06 17:23:19 +00:00
parent f4f2ba8dd1
commit af523f604d
10 changed files with 569 additions and 343 deletions

View File

@@ -13,6 +13,7 @@ $(eval $(call gb_UIConfig_add_uifiles,cui,\
cui/uiconfig/ui/aboutdialog \
cui/uiconfig/ui/aboutconfigdialog\
cui/uiconfig/ui/aboutconfigvaluedialog \
cui/uiconfig/ui/accelconfigpage \
cui/uiconfig/ui/agingdialog \
cui/uiconfig/ui/acorexceptpage \
cui/uiconfig/ui/acoroptionspage \

View File

@@ -656,6 +656,17 @@ void SfxAccCfgLBoxString_Impl::Paint(
}
extern "C" SAL_DLLPUBLIC_EXPORT Window* SAL_CALL makeSfxAccCfgTabListBox(Window *pParent, VclBuilder::stringmap &rMap)
{
WinBits nWinBits = WB_TABSTOP;
OString sBorder = VclBuilder::extractCustomProperty(rMap);
if (!sBorder.isEmpty())
nWinBits |= WB_BORDER;
return new SfxAccCfgTabListBox_Impl(pParent, nWinBits);
}
void SfxAccCfgTabListBox_Impl::InitEntry(SvTreeListEntry* pEntry,
const OUString& rText,
@@ -714,59 +725,66 @@ void SfxAccCfgTabListBox_Impl::KeyInput(const KeyEvent& aKey)
SfxAcceleratorConfigPage::SfxAcceleratorConfigPage( Window* pParent, const SfxItemSet& aSet )
: SfxTabPage (pParent, CUI_RES(RID_SVXPAGE_KEYBOARD), aSet)
, m_pMacroInfoItem ()
, m_pStringItem ()
, m_pFontItem ()
, m_pFileDlg (NULL)
, aEntriesBox (this , this, CUI_RES(BOX_ACC_ENTRIES ))
, aKeyboardGroup (this , CUI_RES(GRP_ACC_KEYBOARD ))
, aOfficeButton (this , CUI_RES(RB_OFFICE ))
, aModuleButton (this , CUI_RES(RB_MODULE ))
, aChangeButton (this , CUI_RES(BTN_ACC_CHANGE ))
, aRemoveButton (this , CUI_RES(BTN_ACC_REMOVE ))
, aGroupText (this , CUI_RES(TXT_ACC_GROUP ))
, pGroupLBox(new SfxConfigGroupListBox( this, CUI_RES(BOX_ACC_GROUP) ))
, aFunctionText (this , CUI_RES(TXT_ACC_FUNCTION ))
, pFunctionBox(new SfxConfigFunctionListBox( this, CUI_RES( BOX_ACC_FUNCTION )))
, aKeyText (this , CUI_RES(TXT_ACC_KEY ))
, aKeyBox (this , CUI_RES(BOX_ACC_KEY ))
, aFunctionsGroup (this , CUI_RES(GRP_ACC_FUNCTIONS ))
, aLoadButton (this , CUI_RES(BTN_LOAD ))
, aSaveButton (this , CUI_RES(BTN_SAVE ))
, aResetButton (this , CUI_RES(BTN_RESET ))
, aLoadAccelConfigStr ( CUI_RES( STR_LOADACCELCONFIG ) )
, aSaveAccelConfigStr ( CUI_RES( STR_SAVEACCELCONFIG ) )
, aFilterCfgStr ( CUI_RES( STR_FILTERNAME_CFG ) )
: SfxTabPage(pParent, "AccelConfigPage", "cui/ui/accelconfigpage.ui", aSet)
, m_pMacroInfoItem()
, m_pStringItem()
, m_pFontItem()
, m_pFileDlg(NULL)
, aLoadAccelConfigStr(CUI_RES(RID_SVXSTR_LOADACCELCONFIG))
, aSaveAccelConfigStr(CUI_RES(RID_SVXSTR_SAVEACCELCONFIG))
, aFilterCfgStr(CUI_RES(RID_SVXSTR_FILTERNAME_CFG))
, m_bStylesInfoInitialized(sal_False)
, m_xGlobal ()
, m_xModule ()
, m_xAct ()
, m_xGlobal()
, m_xModule()
, m_xAct()
{
FreeResource();
get(m_pOfficeButton, "office");
get(m_pModuleButton, "module");
get(m_pChangeButton, "change");
get(m_pRemoveButton, "delete");
get(m_pLoadButton, "load");
get(m_pSaveButton, "save");
get(m_pResetButton, "reset");
get(m_pEntriesBox, "shortcuts");
Size aSize(LogicToPixel(Size(174, 100), MAP_APPFONT));
m_pEntriesBox->set_width_request(aSize.Width());
m_pEntriesBox->set_height_request(aSize.Height());
m_pEntriesBox->SetAccelConfigPage(this);
get(m_pGroupLBox, "category");
aSize = LogicToPixel(Size(78 , 91), MAP_APPFONT);
m_pGroupLBox->set_width_request(aSize.Width());
m_pGroupLBox->set_height_request(aSize.Height());
get(m_pFunctionBox, "function");
aSize = LogicToPixel(Size(88, 91), MAP_APPFONT);
m_pFunctionBox->set_width_request(aSize.Width());
m_pFunctionBox->set_height_request(aSize.Height());
get(m_pKeyBox, "keys");
aSize = LogicToPixel(Size(80, 91), MAP_APPFONT);
m_pKeyBox->set_width_request(aSize.Width());
m_pKeyBox->set_height_request(aSize.Height());
aFilterAllStr = SfxResId( STR_SFX_FILTERNAME_ALL );
// install handler functions
aChangeButton.SetClickHdl( LINK( this, SfxAcceleratorConfigPage, ChangeHdl ));
aRemoveButton.SetClickHdl( LINK( this, SfxAcceleratorConfigPage, RemoveHdl ));
aEntriesBox.SetSelectHdl ( LINK( this, SfxAcceleratorConfigPage, SelectHdl ));
pGroupLBox->SetSelectHdl ( LINK( this, SfxAcceleratorConfigPage, SelectHdl ));
pFunctionBox->SetSelectHdl( LINK( this, SfxAcceleratorConfigPage, SelectHdl ));
aKeyBox.SetSelectHdl ( LINK( this, SfxAcceleratorConfigPage, SelectHdl ));
aLoadButton.SetClickHdl ( LINK( this, SfxAcceleratorConfigPage, Load ));
aSaveButton.SetClickHdl ( LINK( this, SfxAcceleratorConfigPage, Save ));
aResetButton.SetClickHdl ( LINK( this, SfxAcceleratorConfigPage, Default ));
aOfficeButton.SetClickHdl( LINK( this, SfxAcceleratorConfigPage, RadioHdl ));
aModuleButton.SetClickHdl( LINK( this, SfxAcceleratorConfigPage, RadioHdl ));
m_pChangeButton->SetClickHdl( LINK( this, SfxAcceleratorConfigPage, ChangeHdl ));
m_pRemoveButton->SetClickHdl( LINK( this, SfxAcceleratorConfigPage, RemoveHdl ));
m_pEntriesBox->SetSelectHdl ( LINK( this, SfxAcceleratorConfigPage, SelectHdl ));
m_pGroupLBox->SetSelectHdl ( LINK( this, SfxAcceleratorConfigPage, SelectHdl ));
m_pFunctionBox->SetSelectHdl( LINK( this, SfxAcceleratorConfigPage, SelectHdl ));
m_pKeyBox->SetSelectHdl ( LINK( this, SfxAcceleratorConfigPage, SelectHdl ));
m_pLoadButton->SetClickHdl ( LINK( this, SfxAcceleratorConfigPage, Load ));
m_pSaveButton->SetClickHdl ( LINK( this, SfxAcceleratorConfigPage, Save ));
m_pResetButton->SetClickHdl ( LINK( this, SfxAcceleratorConfigPage, Default ));
m_pOfficeButton->SetClickHdl( LINK( this, SfxAcceleratorConfigPage, RadioHdl ));
m_pModuleButton->SetClickHdl( LINK( this, SfxAcceleratorConfigPage, RadioHdl ));
// initialize Entriesbox
aEntriesBox.SetStyle(aEntriesBox.GetStyle()|WB_HSCROLL|WB_CLIPCHILDREN);
aEntriesBox.SetSelectionMode(SINGLE_SELECTION);
aEntriesBox.SetTabs(&AccCfgTabs[0], MAP_APPFONT);
aEntriesBox.Resize(); // OS: Hack for right selection
aEntriesBox.SetSpaceBetweenEntries(0);
aEntriesBox.SetDragDropMode(0);
m_pEntriesBox->SetStyle(m_pEntriesBox->GetStyle()|WB_HSCROLL|WB_CLIPCHILDREN);
m_pEntriesBox->SetSelectionMode(SINGLE_SELECTION);
m_pEntriesBox->SetTabs(&AccCfgTabs[0], MAP_APPFONT);
m_pEntriesBox->Resize(); // OS: Hack for right selection
m_pEntriesBox->SetSpaceBetweenEntries(0);
m_pEntriesBox->SetDragDropMode(0);
// detect max keyname width
long nMaxWidth = 0;
@@ -779,43 +797,41 @@ SfxAcceleratorConfigPage::SfxAcceleratorConfigPage( Window* pParent, const SfxIt
// recalc second tab
long nNewTab = PixelToLogic( Size( nMaxWidth, 0 ), MAP_APPFONT ).Width();
nNewTab = nNewTab + 5; // additional space
aEntriesBox.SetTab( 1, nNewTab );
m_pEntriesBox->SetTab( 1, nNewTab );
// initialize GroupBox
pGroupLBox->SetFunctionListBox(pFunctionBox);
m_pGroupLBox->SetFunctionListBox(m_pFunctionBox);
// initialize KeyBox
aKeyBox.SetStyle(aKeyBox.GetStyle()|WB_CLIPCHILDREN|WB_HSCROLL|WB_SORT);
m_pKeyBox->SetStyle(m_pKeyBox->GetStyle()|WB_CLIPCHILDREN|WB_HSCROLL|WB_SORT);
}
SfxAcceleratorConfigPage::~SfxAcceleratorConfigPage()
{
// free memory - remove all dynamic user data
SvTreeListEntry* pEntry = aEntriesBox.First();
SvTreeListEntry* pEntry = m_pEntriesBox->First();
while (pEntry)
{
TAccInfo* pUserData = (TAccInfo*)pEntry->GetUserData();
if (pUserData)
delete pUserData;
pEntry = aEntriesBox.Next(pEntry);
pEntry = m_pEntriesBox->Next(pEntry);
}
pEntry = aKeyBox.First();
pEntry = m_pKeyBox->First();
while (pEntry)
{
TAccInfo* pUserData = (TAccInfo*)pEntry->GetUserData();
if (pUserData)
delete pUserData;
pEntry = aKeyBox.Next(pEntry);
pEntry = m_pKeyBox->Next(pEntry);
}
aEntriesBox.Clear();
aKeyBox.Clear();
m_pEntriesBox->Clear();
m_pKeyBox->Clear();
delete m_pFileDlg;
delete pGroupLBox;
delete pFunctionBox;
}
@@ -896,8 +912,8 @@ void SfxAcceleratorConfigPage::Init(const css::uno::Reference< css::ui::XAcceler
xModel = xController->getModel();
m_aStylesInfo.setModel(xModel);
pFunctionBox->SetStylesInfo(&m_aStylesInfo);
pGroupLBox->SetStylesInfo(&m_aStylesInfo);
m_pFunctionBox->SetStylesInfo(&m_aStylesInfo);
m_pGroupLBox->SetStylesInfo(&m_aStylesInfo);
m_bStylesInfoInitialized = sal_True;
}
@@ -914,7 +930,7 @@ void SfxAcceleratorConfigPage::Init(const css::uno::Reference< css::ui::XAcceler
if (sKey.isEmpty())
continue;
TAccInfo* pEntry = new TAccInfo(i1, nListPos, aKey);
SvTreeListEntry* pLBEntry = aEntriesBox.InsertEntryToColumn(sKey, 0L, TREELIST_APPEND, 0xFFFF);
SvTreeListEntry* pLBEntry = m_pEntriesBox->InsertEntryToColumn(sKey, 0L, TREELIST_APPEND, 0xFFFF);
pLBEntry->SetUserData(pEntry);
}
@@ -922,7 +938,7 @@ void SfxAcceleratorConfigPage::Init(const css::uno::Reference< css::ui::XAcceler
css::uno::Sequence< css::awt::KeyEvent > lKeys = xAccMgr->getAllKeyEvents();
sal_Int32 c2 = lKeys.getLength();
sal_Int32 i2 = 0;
sal_uInt16 nCol = aEntriesBox.TabCount()-1;
sal_uInt16 nCol = m_pEntriesBox->TabCount()-1;
for (i2=0; i2<c2; ++i2)
{
@@ -935,14 +951,14 @@ void SfxAcceleratorConfigPage::Init(const css::uno::Reference< css::ui::XAcceler
if (nPos == TREELIST_ENTRY_NOTFOUND)
continue;
aEntriesBox.SetEntryText(sLabel, nPos, nCol);
m_pEntriesBox->SetEntryText(sLabel, nPos, nCol);
SvTreeListEntry* pLBEntry = aEntriesBox.GetEntry(0, nPos);
SvTreeListEntry* pLBEntry = m_pEntriesBox->GetEntry(0, nPos);
TAccInfo* pEntry = (TAccInfo*)pLBEntry->GetUserData();
pEntry->m_bIsConfigurable = sal_True;
pEntry->m_sCommand = sCommand;
CreateCustomItems(pLBEntry, aEntriesBox.GetEntryText(pLBEntry, 0), sLabel);
CreateCustomItems(pLBEntry, m_pEntriesBox->GetEntryText(pLBEntry, 0), sLabel);
}
// Map the VCL hardcoded key codes and mark them as not changeable
@@ -957,11 +973,11 @@ void SfxAcceleratorConfigPage::Init(const css::uno::Reference< css::ui::XAcceler
continue;
// Hardcoded function mapped so no ID possible and mark entry as not changeable
SvTreeListEntry* pLBEntry = aEntriesBox.GetEntry(0, nPos);
SvTreeListEntry* pLBEntry = m_pEntriesBox->GetEntry(0, nPos);
TAccInfo* pEntry = (TAccInfo*)pLBEntry->GetUserData();
pEntry->m_bIsConfigurable = sal_False;
CreateCustomItems(pLBEntry, aEntriesBox.GetEntryText(pLBEntry, 0), OUString());
CreateCustomItems(pLBEntry, m_pEntriesBox->GetEntryText(pLBEntry, 0), OUString());
}
}
@@ -974,7 +990,7 @@ void SfxAcceleratorConfigPage::Apply(const css::uno::Reference< css::ui::XAccele
// Go through the list from the bottom to the top ...
// because logical accelerator must be preferred instead of
// physical ones!
SvTreeListEntry* pEntry = aEntriesBox.First();
SvTreeListEntry* pEntry = m_pEntriesBox->First();
while (pEntry)
{
TAccInfo* pUserData = (TAccInfo*)pEntry->GetUserData();
@@ -999,14 +1015,14 @@ void SfxAcceleratorConfigPage::Apply(const css::uno::Reference< css::ui::XAccele
catch(const css::uno::Exception&)
{}
pEntry = aEntriesBox.Next(pEntry);
pEntry = m_pEntriesBox->Next(pEntry);
}
}
void SfxAcceleratorConfigPage::ResetConfig()
{
aEntriesBox.Clear();
m_pEntriesBox->Clear();
}
@@ -1031,12 +1047,12 @@ IMPL_LINK_NOARG(SfxAcceleratorConfigPage, Default)
if (xReset.is())
xReset->reset();
aEntriesBox.SetUpdateMode(sal_False);
m_pEntriesBox->SetUpdateMode(sal_False);
ResetConfig();
Init(m_xAct);
aEntriesBox.SetUpdateMode(sal_True);
aEntriesBox.Invalidate();
aEntriesBox.Select(aEntriesBox.GetEntry(0, 0));
m_pEntriesBox->SetUpdateMode(sal_True);
m_pEntriesBox->Invalidate();
m_pEntriesBox->Select(m_pEntriesBox->GetEntry(0, 0));
return 0;
}
@@ -1044,18 +1060,18 @@ IMPL_LINK_NOARG(SfxAcceleratorConfigPage, Default)
IMPL_LINK_NOARG(SfxAcceleratorConfigPage, ChangeHdl)
{
sal_uLong nPos = aEntriesBox.GetModel()->GetRelPos( aEntriesBox.FirstSelected() );
TAccInfo* pEntry = (TAccInfo*)aEntriesBox.GetEntry(0, nPos)->GetUserData();
OUString sNewCommand = pFunctionBox->GetCurCommand();
OUString sLabel = pFunctionBox->GetCurLabel();
sal_uLong nPos = m_pEntriesBox->GetModel()->GetRelPos( m_pEntriesBox->FirstSelected() );
TAccInfo* pEntry = (TAccInfo*)m_pEntriesBox->GetEntry(0, nPos)->GetUserData();
OUString sNewCommand = m_pFunctionBox->GetCurCommand();
OUString sLabel = m_pFunctionBox->GetCurLabel();
if (sLabel.isEmpty())
sLabel = GetLabel4Command(sNewCommand);
pEntry->m_sCommand = sNewCommand;
sal_uInt16 nCol = aEntriesBox.TabCount() - 1;
aEntriesBox.SetEntryText(sLabel, nPos, nCol);
sal_uInt16 nCol = m_pEntriesBox->TabCount() - 1;
m_pEntriesBox->SetEntryText(sLabel, nPos, nCol);
((Link &) pFunctionBox->GetSelectHdl()).Call( pFunctionBox );
((Link &) m_pFunctionBox->GetSelectHdl()).Call( m_pFunctionBox );
return 0;
}
@@ -1063,15 +1079,15 @@ IMPL_LINK_NOARG(SfxAcceleratorConfigPage, ChangeHdl)
IMPL_LINK_NOARG(SfxAcceleratorConfigPage, RemoveHdl)
{
// get selected entry
sal_uLong nPos = aEntriesBox.GetModel()->GetRelPos( aEntriesBox.FirstSelected() );
TAccInfo* pEntry = (TAccInfo*)aEntriesBox.GetEntry(0, nPos)->GetUserData();
sal_uLong nPos = m_pEntriesBox->GetModel()->GetRelPos( m_pEntriesBox->FirstSelected() );
TAccInfo* pEntry = (TAccInfo*)m_pEntriesBox->GetEntry(0, nPos)->GetUserData();
// remove function name from selected entry
sal_uInt16 nCol = aEntriesBox.TabCount() - 1;
aEntriesBox.SetEntryText( OUString(), nPos, nCol );
sal_uInt16 nCol = m_pEntriesBox->TabCount() - 1;
m_pEntriesBox->SetEntryText( OUString(), nPos, nCol );
pEntry->m_sCommand = OUString();
((Link &) pFunctionBox->GetSelectHdl()).Call( pFunctionBox );
((Link &) m_pFunctionBox->GetSelectHdl()).Call( m_pFunctionBox );
return 0;
}
@@ -1080,62 +1096,62 @@ IMPL_LINK( SfxAcceleratorConfigPage, SelectHdl, Control*, pListBox )
{
// disable help
Help::ShowBalloon( this, Point(), OUString() );
if ( pListBox == &aEntriesBox )
if (pListBox == m_pEntriesBox)
{
sal_uLong nPos = aEntriesBox.GetModel()->GetRelPos( aEntriesBox.FirstSelected() );
TAccInfo* pEntry = (TAccInfo*)aEntriesBox.GetEntry(0, nPos)->GetUserData();
OUString sPossibleNewCommand = pFunctionBox->GetCurCommand();
sal_uLong nPos = m_pEntriesBox->GetModel()->GetRelPos( m_pEntriesBox->FirstSelected() );
TAccInfo* pEntry = (TAccInfo*)m_pEntriesBox->GetEntry(0, nPos)->GetUserData();
OUString sPossibleNewCommand = m_pFunctionBox->GetCurCommand();
aRemoveButton.Enable( false );
aChangeButton.Enable( false );
m_pRemoveButton->Enable( false );
m_pChangeButton->Enable( false );
if (pEntry->m_bIsConfigurable)
{
if (pEntry->isConfigured())
aRemoveButton.Enable( true );
aChangeButton.Enable( pEntry->m_sCommand != sPossibleNewCommand );
m_pRemoveButton->Enable( true );
m_pChangeButton->Enable( pEntry->m_sCommand != sPossibleNewCommand );
}
}
else if ( pListBox == pGroupLBox )
else if ( pListBox == m_pGroupLBox )
{
pGroupLBox->GroupSelected();
if ( !pFunctionBox->FirstSelected() )
aChangeButton.Enable( false );
m_pGroupLBox->GroupSelected();
if ( !m_pFunctionBox->FirstSelected() )
m_pChangeButton->Enable( false );
}
else if ( pListBox == pFunctionBox )
else if ( pListBox == m_pFunctionBox )
{
aRemoveButton.Enable( false );
aChangeButton.Enable( false );
m_pRemoveButton->Enable( false );
m_pChangeButton->Enable( false );
// #i36994 First selected can return zero!
SvTreeListEntry* pLBEntry = aEntriesBox.FirstSelected();
SvTreeListEntry* pLBEntry = m_pEntriesBox->FirstSelected();
if ( pLBEntry != 0 )
{
sal_uLong nPos = aEntriesBox.GetModel()->GetRelPos( pLBEntry );
TAccInfo* pEntry = (TAccInfo*)aEntriesBox.GetEntry(0, nPos)->GetUserData();
OUString sPossibleNewCommand = pFunctionBox->GetCurCommand();
sal_uLong nPos = m_pEntriesBox->GetModel()->GetRelPos( pLBEntry );
TAccInfo* pEntry = (TAccInfo*)m_pEntriesBox->GetEntry(0, nPos)->GetUserData();
OUString sPossibleNewCommand = m_pFunctionBox->GetCurCommand();
if (pEntry->m_bIsConfigurable)
{
if (pEntry->isConfigured())
aRemoveButton.Enable( true );
aChangeButton.Enable( pEntry->m_sCommand != sPossibleNewCommand );
m_pRemoveButton->Enable( true );
m_pChangeButton->Enable( pEntry->m_sCommand != sPossibleNewCommand );
}
// update key box
aKeyBox.Clear();
SvTreeListEntry* pIt = aEntriesBox.First();
m_pKeyBox->Clear();
SvTreeListEntry* pIt = m_pEntriesBox->First();
while ( pIt )
{
TAccInfo* pUserData = (TAccInfo*)pIt->GetUserData();
if ( pUserData && pUserData->m_sCommand == sPossibleNewCommand )
{
TAccInfo* pU1 = new TAccInfo(-1, -1, pUserData->m_aKey);
SvTreeListEntry* pE1 = aKeyBox.InsertEntry( pUserData->m_aKey.GetName(), 0L, sal_True, TREELIST_APPEND );
SvTreeListEntry* pE1 = m_pKeyBox->InsertEntry( pUserData->m_aKey.GetName(), 0L, sal_True, TREELIST_APPEND );
pE1->SetUserData(pU1);
pE1->EnableChildrenOnDemand( false );
}
pIt = aEntriesBox.Next(pIt);
pIt = m_pEntriesBox->Next(pIt);
}
}
}
@@ -1147,17 +1163,17 @@ IMPL_LINK( SfxAcceleratorConfigPage, SelectHdl, Control*, pListBox )
sal_uLong nP2 = TREELIST_ENTRY_NOTFOUND;
SvTreeListEntry* pE3 = 0;
pE2 = aKeyBox.FirstSelected();
pE2 = m_pKeyBox->FirstSelected();
if (pE2)
pU2 = (TAccInfo*)pE2->GetUserData();
if (pU2)
nP2 = MapKeyCodeToPos(pU2->m_aKey);
if (nP2 != TREELIST_ENTRY_NOTFOUND)
pE3 = aEntriesBox.GetEntry( 0, nP2 );
pE3 = m_pEntriesBox->GetEntry( 0, nP2 );
if (pE3)
{
aEntriesBox.Select( pE3 );
aEntriesBox.MakeVisible( pE3 );
m_pEntriesBox->Select( pE3 );
m_pEntriesBox->MakeVisible( pE3 );
}
}
@@ -1169,32 +1185,32 @@ IMPL_LINK_NOARG(SfxAcceleratorConfigPage, RadioHdl)
{
css::uno::Reference< css::ui::XAcceleratorConfiguration > xOld = m_xAct;
if (aOfficeButton.IsChecked())
if (m_pOfficeButton->IsChecked())
m_xAct = m_xGlobal;
else if (aModuleButton.IsChecked())
else if (m_pModuleButton->IsChecked())
m_xAct = m_xModule;
// nothing changed? => do nothing!
if ( m_xAct.is() && ( xOld == m_xAct ) )
return 0;
aEntriesBox.SetUpdateMode( sal_False );
m_pEntriesBox->SetUpdateMode( sal_False );
ResetConfig();
Init(m_xAct);
aEntriesBox.SetUpdateMode( sal_True );
aEntriesBox.Invalidate();
m_pEntriesBox->SetUpdateMode( sal_True );
m_pEntriesBox->Invalidate();
pGroupLBox->Init(m_xContext, m_xFrame, m_sModuleLongName, true);
m_pGroupLBox->Init(m_xContext, m_xFrame, m_sModuleLongName, true);
// pb: #133213# do not select NULL entries
SvTreeListEntry* pEntry = aEntriesBox.GetEntry( 0, 0 );
SvTreeListEntry* pEntry = m_pEntriesBox->GetEntry( 0, 0 );
if ( pEntry )
aEntriesBox.Select( pEntry );
pEntry = pGroupLBox->GetEntry( 0, 0 );
m_pEntriesBox->Select( pEntry );
pEntry = m_pGroupLBox->GetEntry( 0, 0 );
if ( pEntry )
pGroupLBox->Select( pEntry );
m_pGroupLBox->Select( pEntry );
((Link &) pFunctionBox->GetSelectHdl()).Call( pFunctionBox );
((Link &) m_pFunctionBox->GetSelectHdl()).Call( m_pFunctionBox );
return 1L;
}
@@ -1250,12 +1266,12 @@ IMPL_LINK_NOARG(SfxAcceleratorConfigPage, LoadHdl)
// open the configuration and update our UI
css::uno::Reference< css::ui::XAcceleratorConfiguration > xTempAccMgr(xCfgMgr->getShortCutManager(), css::uno::UNO_QUERY_THROW);
aEntriesBox.SetUpdateMode(sal_False);
m_pEntriesBox->SetUpdateMode(sal_False);
ResetConfig();
Init(xTempAccMgr);
aEntriesBox.SetUpdateMode(sal_True);
aEntriesBox.Invalidate();
aEntriesBox.Select(aEntriesBox.GetEntry(0, 0));
m_pEntriesBox->SetUpdateMode(sal_True);
m_pEntriesBox->Invalidate();
m_pEntriesBox->Select(m_pEntriesBox->GetEntry(0, 0));
}
@@ -1429,16 +1445,16 @@ void SfxAcceleratorConfigPage::Reset( const SfxItemSet& rSet )
// change te description of the radio button, which switch to the module
// dependend accelerator configuration
OUString sButtonText = aModuleButton.GetText();
OUString sButtonText = m_pModuleButton->GetText();
sButtonText = sButtonText.replaceFirst("$(MODULE)", m_sModuleUIName);
aModuleButton.SetText(sButtonText);
m_pModuleButton->SetText(sButtonText);
if (m_xModule.is())
aModuleButton.Check();
m_pModuleButton->Check();
else
{
aModuleButton.Hide();
aOfficeButton.Check();
m_pModuleButton->Hide();
m_pOfficeButton->Check();
}
RadioHdl(0);
@@ -1447,7 +1463,7 @@ void SfxAcceleratorConfigPage::Reset( const SfxItemSet& rSet )
if( SFX_ITEM_SET == rSet.GetItemState( SID_MACROINFO, true, &pMacroItem ) )
{
m_pMacroInfoItem = PTR_CAST( SfxMacroInfoItem, pMacroItem );
pGroupLBox->SelectMacro( m_pMacroInfoItem );
m_pGroupLBox->SelectMacro( m_pMacroInfoItem );
}
else
{
@@ -1465,7 +1481,7 @@ void SfxAcceleratorConfigPage::Reset( const SfxItemSet& rSet )
sal_uLong SfxAcceleratorConfigPage::MapKeyCodeToPos(const KeyCode& aKey) const
{
sal_uInt16 nCode1 = aKey.GetCode()+aKey.GetModifier();
SvTreeListEntry* pEntry = aEntriesBox.First();
SvTreeListEntry* pEntry = m_pEntriesBox->First();
sal_uLong i = 0;
while (pEntry)
@@ -1477,7 +1493,7 @@ sal_uLong SfxAcceleratorConfigPage::MapKeyCodeToPos(const KeyCode& aKey) const
if (nCode1 == nCode2)
return i;
}
pEntry = aEntriesBox.Next(pEntry);
pEntry = m_pEntriesBox->Next(pEntry);
++i;
}

View File

@@ -34,8 +34,6 @@
#define BTN_SAVE 41
#define RB_OFFICE 44
#define RB_MODULE 45
#define STR_LOADACCELCONFIG 46
#define STR_SAVEACCELCONFIG 47
#define STR_GROUP_STYLES 58
#define STR_PDF_EXPORT_SEND 59

View File

@@ -21,182 +21,6 @@
#include "cuires.hrc"
#include "acccfg.hrc"
#define MASKCOLOR MaskColor = \
Color { Red = 0xFFFF ; Green = 0x0000 ; Blue = 0xFFFF ; };
#define PUSHBUTTON_TEXT_SAVE \
Text [ en-US ] = "~Save..." ; \
#define PUSHBUTTON_TEXT_RESET \
Text [ en-US ] = "R~eset" ; \
#define PUSHBUTTON_TEXT_LOAD \
Text [ en-US ] = "~Load..." ; \
#define PUSHBUTTON_TEXT_REMOVE \
Text [ en-US ] = "~Delete" ; \
#define PUSHBUTTON_TEXT_CHANGE \
Text [ en-US ] = "~Modify" ; \
#define PUSHBUTTON_TEXT_NEW \
Text [ en-US ] = "~New" ; \
#define FIXEDTEXT_TEXT_GROUP \
Text [ en-US ] = "~Category" ; \
#define FIXEDTEXT_TEXT_FUNCTION \
Text [ en-US ] = "Function" ; \
#define GROUPBOX_TEXT_FUNCTIONS \
Text [ en-US ] = "Functions" ; \
// TP_CONFIG_ACCEL -------------------------------------------------------
TabPage RID_SVXPAGE_KEYBOARD
{
HelpId = HID_CONFIG_ACCEL ;
Hide = TRUE ;
Size = MAP_APPFONT ( 273 , 258 ) ;
RadioButton RB_OFFICE
{
HelpID = "cui:RadioButton:RID_SVXPAGE_KEYBOARD:RB_OFFICE";
Pos = MAP_APPFONT ( 192 , 6 ) ;
Size = MAP_APPFONT ( 75 , 10 ) ;
Text = "%PRODUCTNAME" ;
};
RadioButton RB_MODULE
{
HelpID = "cui:RadioButton:RID_SVXPAGE_KEYBOARD:RB_MODULE";
Pos = MAP_APPFONT ( 192 , 19 ) ;
Size = MAP_APPFONT ( 75 , 10 ) ;
Text = "$(MODULE)" ;
};
PushButton BTN_ACC_CHANGE
{
HelpID = "cui:PushButton:RID_SVXPAGE_KEYBOARD:BTN_ACC_CHANGE";
Pos = MAP_APPFONT ( 192 , 35 ) ;
Size = MAP_APPFONT ( 75 , 14 ) ;
TabStop = TRUE ;
PUSHBUTTON_TEXT_CHANGE
};
PushButton BTN_ACC_REMOVE
{
HelpID = "cui:PushButton:RID_SVXPAGE_KEYBOARD:BTN_ACC_REMOVE";
Pos = MAP_APPFONT ( 192 , 52 ) ;
Size = MAP_APPFONT ( 75 , 14 ) ;
TabStop = TRUE ;
Group = TRUE ;
PUSHBUTTON_TEXT_REMOVE
};
FixedLine GRP_ACC_KEYBOARD
{
Pos = MAP_APPFONT ( 6 , 3 ) ;
Size = MAP_APPFONT ( 180 , 8 ) ;
Group = TRUE ;
Text [ en-US ] = "Shortcut keys";
};
Control BOX_ACC_ENTRIES
{
Border = TRUE ;
Pos = MAP_APPFONT ( 12 , 14 ) ;
Size = MAP_APPFONT ( 174 , 120 ) ;
TabStop = TRUE ;
Group = TRUE ;
HelpId = HID_ACCELCONFIG_LISTBOX ;
};
FixedLine GRP_ACC_FUNCTIONS
{
Pos = MAP_APPFONT ( 6 , 140 ) ;
Size = MAP_APPFONT ( 258 , 8 ) ;
Group = TRUE ;
GROUPBOX_TEXT_FUNCTIONS
};
FixedText TXT_ACC_GROUP
{
Pos = MAP_APPFONT ( 12 , 151 ) ;
Size = MAP_APPFONT ( 78 , 8 ) ;
Group = TRUE ;
Left = TRUE ;
FIXEDTEXT_TEXT_GROUP
};
Control BOX_ACC_GROUP
{
Border = TRUE ;
Pos = MAP_APPFONT ( 12 , 161 ) ;
Size = MAP_APPFONT ( 78 , 91 ) ;
TabStop = TRUE ;
HelpId = HID_CONFIGGROUP_ACC_LISTBOX ;
};
FixedText TXT_ACC_FUNCTION
{
Pos = MAP_APPFONT ( 93 , 151 ) ;
Size = MAP_APPFONT ( 88 , 8 ) ;
Left = TRUE ;
FIXEDTEXT_TEXT_FUNCTION
};
Control BOX_ACC_FUNCTION
{
Border = TRUE ;
Pos = MAP_APPFONT ( 93 , 161 ) ;
Size = MAP_APPFONT ( 88 , 91 ) ;
TabStop = TRUE ;
HelpId = HID_CONFIGFUNCTION_ACC_LISTBOX ;
};
FixedText TXT_ACC_KEY
{
Pos = MAP_APPFONT ( 184 , 151 ) ;
Size = MAP_APPFONT ( 80 , 8 ) ;
Text [ en-US ] = "~Keys" ;
Left = TRUE ;
};
Control BOX_ACC_KEY
{
Border = TRUE ;
Pos = MAP_APPFONT ( 184 , 161 ) ;
Size = MAP_APPFONT ( 80 , 91 ) ;
TabStop = TRUE ;
};
PushButton BTN_LOAD
{
HelpID = "cui:PushButton:RID_SVXPAGE_KEYBOARD:BTN_LOAD";
Pos = MAP_APPFONT ( 192 , 86 ) ;
Size = MAP_APPFONT ( 75 , 14 ) ;
TabStop = TRUE ;
Group = TRUE ;
PUSHBUTTON_TEXT_LOAD
};
PushButton BTN_SAVE
{
HelpID = "cui:PushButton:RID_SVXPAGE_KEYBOARD:BTN_SAVE";
Pos = MAP_APPFONT ( 192 , 103 ) ;
Size = MAP_APPFONT ( 75 , 14 ) ;
TabStop = TRUE ;
Group = TRUE ;
PUSHBUTTON_TEXT_SAVE
};
PushButton BTN_RESET
{
HelpID = "cui:PushButton:RID_SVXPAGE_KEYBOARD:BTN_RESET";
Pos = MAP_APPFONT ( 192 , 120 ) ;
Size = MAP_APPFONT ( 75 , 14 ) ;
TabStop = TRUE ;
Group = TRUE ;
PUSHBUTTON_TEXT_RESET
};
String STR_LOADACCELCONFIG
{
Text [ en-US ] = "Load Keyboard Configuration" ;
};
String STR_SAVEACCELCONFIG
{
Text [ en-US ] = "Save Keyboard Configuration" ;
};
String STR_FILTERNAME_CFG
{
Text [ en-US ] = "Configuration (*.cfg)" ;
};
};
Resource RID_SVXPAGE_CONFIGGROUPBOX
{
String STR_BASICMACROS

View File

@@ -92,4 +92,19 @@ Image RID_CUIIMG_DOC
MASKCOLOR
};
String RID_SVXSTR_LOADACCELCONFIG
{
Text [ en-US ] = "Load Keyboard Configuration" ;
};
String RID_SVXSTR_SAVEACCELCONFIG
{
Text [ en-US ] = "Save Keyboard Configuration" ;
};
String RID_SVXSTR_FILTERNAME_CFG
{
Text [ en-US ] = "Configuration (*.cfg)" ;
};
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */

View File

@@ -62,15 +62,18 @@ protected:
const Image&, SvLBoxButtonKind eButtonKind);
public:
SfxAccCfgTabListBox_Impl(
SfxAcceleratorConfigPage* pAccelConfigPage,
Window *pParent,
const ResId &rResId ) :
SvTabListBox( pParent, rResId ),
m_pAccelConfigPage( pAccelConfigPage )
{}
SfxAccCfgTabListBox_Impl(Window *pParent, WinBits nStyle)
: SvTabListBox(pParent, nStyle)
, m_pAccelConfigPage(NULL)
{
}
void ReplaceEntry( sal_uInt16 nPos, const OUString &rStr );
void SetAccelConfigPage(SfxAcceleratorConfigPage* pAccelConfigPage)
{
m_pAccelConfigPage = pAccelConfigPage;
}
void ReplaceEntry( sal_uInt16 nPos, const OUString &rStr );
};
// class SfxAcceleratorConfigPage ----------------------------------------
@@ -115,22 +118,17 @@ private:
const SfxStringItem* m_pFontItem;
sfx2::FileDialogHelper* m_pFileDlg;
SfxAccCfgTabListBox_Impl aEntriesBox;
FixedLine aKeyboardGroup;
RadioButton aOfficeButton;
RadioButton aModuleButton;
PushButton aChangeButton;
PushButton aRemoveButton;
FixedText aGroupText;
SfxConfigGroupListBox* pGroupLBox;
FixedText aFunctionText;
SfxConfigFunctionListBox* pFunctionBox;
FixedText aKeyText;
SvTreeListBox aKeyBox;
FixedLine aFunctionsGroup;
PushButton aLoadButton;
PushButton aSaveButton;
PushButton aResetButton;
SfxAccCfgTabListBox_Impl* m_pEntriesBox;
RadioButton* m_pOfficeButton;
RadioButton* m_pModuleButton;
PushButton* m_pChangeButton;
PushButton* m_pRemoveButton;
SfxConfigGroupListBox* m_pGroupLBox;
SfxConfigFunctionListBox* m_pFunctionBox;
SvTreeListBox* m_pKeyBox;
PushButton* m_pLoadButton;
PushButton* m_pSaveButton;
PushButton* m_pResetButton;
OUString aLoadAccelConfigStr;
OUString aSaveAccelConfigStr;
OUString aFilterAllStr;

View File

@@ -262,7 +262,6 @@
// customize
#define RID_SVXDLG_CUSTOMIZE (RID_SVX_START + 291)
#define RID_SVXPAGE_MENUS (RID_SVX_START + 292)
#define RID_SVXPAGE_KEYBOARD (RID_SVX_START + 293)
#define RID_SVXPAGE_TOOLBARS (RID_SVX_START + 294)
#define RID_SVXPAGE_EVENTS (RID_SVX_START + 295)
#define RID_SVXPAGE_CONFIGGROUPBOX (RID_SVX_START + 304)
@@ -444,6 +443,10 @@
#define RID_SVXSTR_INVALID_STATE_FOR_OK_BUTTON (RID_SVX_START + 1260)
#define RID_SVXSTR_INVALID_STATE_FOR_OK_BUTTON_V2 (RID_SVX_START + 1261)
#define RID_SVXSTR_LOADACCELCONFIG (RID_SVX_START + 1262)
#define RID_SVXSTR_SAVEACCELCONFIG (RID_SVX_START + 1263)
#define RID_SVXSTR_FILTERNAME_CFG (RID_SVX_START + 1264)
#endif
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */

View File

@@ -182,10 +182,6 @@
#define HID_SEARCH_BTN_CLOSE "CUI_HID_SEARCH_BTN_CLOSE"
#define HID_GALLERY_BROWSER "CUI_HID_GALLERY_BROWSER"
#define HID_GALLERY_APPLY "CUI_HID_GALLERY_APPLY"
#define HID_CONFIG_ACCEL "CUI_HID_CONFIG_ACCEL"
#define HID_ACCELCONFIG_LISTBOX "CUI_HID_ACCELCONFIG_LISTBOX"
#define HID_CONFIGGROUP_ACC_LISTBOX "CUI_HID_CONFIGGROUP_ACC_LISTBOX"
#define HID_CONFIGFUNCTION_ACC_LISTBOX "CUI_HID_CONFIGFUNCTION_ACC_LISTBOX"
#define HID_DIALOG_HANGULHANJA "CUI_HID_DIALOG_HANGULHANJA"
#define HID_HANGULHANJA_EDIT_DLG "CUI_HID_HANGULHANJA_EDIT_DLG"
#define HID_MULTIPATH "CUI_HID_MULTIPATH"

View File

@@ -0,0 +1,372 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.16.1 -->
<interface>
<requires lib="gtk+" version="3.10"/>
<!-- interface-requires LibreOffice 1.0 -->
<object class="GtkGrid" id="AccelConfigPage">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
<property name="border_width">6</property>
<property name="row_spacing">12</property>
<child>
<object class="GtkGrid" id="grid3">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
<property name="column_spacing">12</property>
<child>
<object class="GtkFrame" id="frame4">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
<property name="label_xalign">0</property>
<property name="shadow_type">none</property>
<child>
<object class="GtkAlignment" id="alignment4">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
<property name="top_padding">6</property>
<property name="left_padding">12</property>
<child>
<object class="cuilo-SfxAccCfgTabListBox" id="shortcuts:border">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
<child internal-child="selection">
<object class="GtkTreeSelection" id="AccCfgTabListBox-selection"/>
</child>
</object>
</child>
</object>
</child>
<child type="label">
<object class="GtkLabel" id="label21">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">Shortcut keys</property>
<attributes>
<attribute name="weight" value="bold"/>
</attributes>
</object>
</child>
</object>
<packing>
<property name="left_attach">0</property>
<property name="top_attach">0</property>
<property name="width">1</property>
<property name="height">1</property>
</packing>
</child>
<child>
<object class="GtkBox" id="box17">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="vexpand">True</property>
<property name="orientation">vertical</property>
<property name="spacing">6</property>
<child>
<object class="GtkBox" id="box18">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="orientation">vertical</property>
<property name="spacing">6</property>
<child>
<object class="GtkRadioButton" id="office">
<property name="label" translatable="yes">%PRODUCTNAME</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">False</property>
<property name="use_underline">True</property>
<property name="xalign">0</property>
<property name="draw_indicator">True</property>
<property name="group">module</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkRadioButton" id="module">
<property name="label" translatable="yes">$(MODULE)</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">False</property>
<property name="use_underline">True</property>
<property name="xalign">0</property>
<property name="draw_indicator">True</property>
<property name="group">office</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">0</property>
</packing>
</child>
<child>
<object class="GtkButtonBox" id="buttonbox1">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="vexpand">True</property>
<property name="orientation">vertical</property>
<property name="spacing">6</property>
<property name="layout_style">start</property>
<child>
<object class="GtkButton" id="change">
<property name="label" translatable="yes">_Modify</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="use_underline">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="delete">
<property name="label">gtk-delete</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">1</property>
</packing>
</child>
<child>
<object class="GtkButton" id="load">
<property name="label">_Load...</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="use_underline">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">2</property>
<property name="secondary">True</property>
</packing>
</child>
<child>
<object class="GtkButton" id="save">
<property name="label">_Save...</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="use_underline">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">3</property>
<property name="secondary">True</property>
</packing>
</child>
<child>
<object class="GtkButton" id="reset">
<property name="label">gtk-revert-to-saved</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="use_underline">True</property>
<property name="use_stock">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">4</property>
<property name="secondary">True</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="left_attach">1</property>
<property name="top_attach">0</property>
<property name="width">1</property>
<property name="height">1</property>
</packing>
</child>
</object>
<packing>
<property name="left_attach">0</property>
<property name="top_attach">0</property>
<property name="width">1</property>
<property name="height">1</property>
</packing>
</child>
<child>
<object class="GtkFrame" id="frame5">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
<property name="label_xalign">0</property>
<property name="shadow_type">none</property>
<child>
<object class="GtkAlignment" id="alignment5">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
<property name="top_padding">6</property>
<property name="left_padding">12</property>
<child>
<object class="GtkGrid" id="grid1">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
<property name="row_spacing">6</property>
<property name="column_spacing">12</property>
<child>
<object class="GtkLabel" id="label23">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="xalign">0</property>
<property name="label" translatable="yes">_Category</property>
<property name="use_underline">True</property>
<property name="mnemonic_widget">category:border</property>
</object>
<packing>
<property name="left_attach">0</property>
<property name="top_attach">0</property>
<property name="width">1</property>
<property name="height">1</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="label24">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="xalign">0</property>
<property name="label" translatable="yes">_Function</property>
<property name="use_underline">True</property>
<property name="mnemonic_widget">function:border</property>
</object>
<packing>
<property name="left_attach">1</property>
<property name="top_attach">0</property>
<property name="width">1</property>
<property name="height">1</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="label25">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="xalign">0</property>
<property name="label" translatable="yes">_Keys</property>
<property name="use_underline">True</property>
<property name="mnemonic_widget">keys:border</property>
</object>
<packing>
<property name="left_attach">2</property>
<property name="top_attach">0</property>
<property name="width">1</property>
<property name="height">1</property>
</packing>
</child>
<child>
<object class="cuilo-SfxConfigGroupListBox" id="category:border">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
<child internal-child="selection">
<object class="GtkTreeSelection" id="ConfigGroup ListBox-selection"/>
</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>
</packing>
</child>
<child>
<object class="cuilo-SfxConfigFunctionListBox" id="function:border">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
<child internal-child="selection">
<object class="GtkTreeSelection" id="ConfigGroupFunction ListBox-selection"/>
</child>
</object>
<packing>
<property name="left_attach">1</property>
<property name="top_attach">1</property>
<property name="width">1</property>
<property name="height">1</property>
</packing>
</child>
<child>
<object class="svtlo-SvTreeListBox" id="keys:border">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
<child internal-child="selection">
<object class="GtkTreeSelection" id="Tree List-selection"/>
</child>
</object>
<packing>
<property name="left_attach">2</property>
<property name="top_attach">1</property>
<property name="width">1</property>
<property name="height">1</property>
</packing>
</child>
</object>
</child>
</object>
</child>
<child type="label">
<object class="GtkLabel" id="label22">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">Functions</property>
<attributes>
<attribute name="weight" value="bold"/>
</attributes>
</object>
</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>
</packing>
</child>
</object>
</interface>

View File

@@ -344,6 +344,9 @@
<glade-widget-class title="ConfigGroup ListBox" name="cuilo-SfxConfigGroupListBox"
generic-name="ConfigGroup ListBox" parent="GtkTreeView"
icon-name="widget-gtk-treeview"/>
<glade-widget-class title="SfxAccCfgTabListBox" name="cuilo-SfxAccCfgTabListBox"
generic-name="AccCfgTabListBox" parent="GtkTreeView"
icon-name="widget-gtk-treeview"/>
<glade-widget-class title="ConfigGroupFunction ListBox" name="cuilo-SfxConfigFunctionListBox"
generic-name="ConfigGroupFunction ListBox" parent="GtkTreeView"
icon-name="widget-gtk-treeview"/>