summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cui/AllLangResTarget_cui.mk1
-rw-r--r--cui/UIConfig_cui.mk1
-rw-r--r--cui/source/inc/optasian.hxx34
-rw-r--r--cui/source/options/optasian.cxx137
-rw-r--r--cui/source/options/optasian.hrc42
-rw-r--r--cui/source/options/optasian.src141
-rw-r--r--cui/uiconfig/ui/optasianpage.ui381
7 files changed, 463 insertions, 274 deletions
diff --git a/cui/AllLangResTarget_cui.mk b/cui/AllLangResTarget_cui.mk
index e82b4e0e0f6c..119a1d62ab1b 100644
--- a/cui/AllLangResTarget_cui.mk
+++ b/cui/AllLangResTarget_cui.mk
@@ -50,7 +50,6 @@ $(eval $(call gb_SrsTarget_add_files,cui/res,\
cui/source/options/dbregister.src \
cui/source/options/doclinkdialog.src \
cui/source/options/internationaloptions.src \
- cui/source/options/optasian.src \
cui/source/options/optchart.src \
cui/source/options/optcolor.src \
cui/source/options/optdict.src \
diff --git a/cui/UIConfig_cui.mk b/cui/UIConfig_cui.mk
index 5d3538b867d6..98680862dfce 100644
--- a/cui/UIConfig_cui.mk
+++ b/cui/UIConfig_cui.mk
@@ -63,6 +63,7 @@ $(eval $(call gb_UIConfig_add_uifiles,cui,\
cui/uiconfig/ui/optaccessibilitypage \
cui/uiconfig/ui/optadvancedpage \
cui/uiconfig/ui/optappearancepage \
+ cui/uiconfig/ui/optasianpage \
cui/uiconfig/ui/optbasicidepage \
cui/uiconfig/ui/optbrowserpage \
cui/uiconfig/ui/optctlpage \
diff --git a/cui/source/inc/optasian.hxx b/cui/source/inc/optasian.hxx
index db7b2b00e83c..e68452a85459 100644
--- a/cui/source/inc/optasian.hxx
+++ b/cui/source/inc/optasian.hxx
@@ -29,26 +29,22 @@
struct SvxAsianLayoutPage_Impl;
class SvxAsianLayoutPage : public SfxTabPage
{
- FixedLine aKerningGB;
- RadioButton aCharKerningRB;
- RadioButton aCharPunctKerningRB;
+ RadioButton* m_pCharKerningRB;
+ RadioButton* m_pCharPunctKerningRB;
- FixedLine aCharDistGB;
- RadioButton aNoCompressionRB;
- RadioButton aPunctCompressionRB;
- RadioButton aPunctKanaCompressionRB;
+ RadioButton* m_pNoCompressionRB;
+ RadioButton* m_pPunctCompressionRB;
+ RadioButton* m_pPunctKanaCompressionRB;
- FixedLine aStartEndGB;
+ FixedText* m_pLanguageFT;
+ SvxLanguageBox* m_pLanguageLB;
+ CheckBox* m_pStandardCB;
- FixedText aLanguageFT;
- SvxLanguageBox aLanguageLB;
- CheckBox aStandardCB;
-
- FixedText aStartFT;
- Edit aStartED;
- FixedText aEndFT;
- Edit aEndED;
- FixedText aHintFT;
+ FixedText* m_pStartFT;
+ Edit* m_pStartED;
+ FixedText* m_pEndFT;
+ Edit* m_pEndED;
+ FixedText* m_pHintFT;
SvxAsianLayoutPage_Impl* pImpl;
@@ -62,8 +58,8 @@ public:
virtual ~SvxAsianLayoutPage();
static SfxTabPage* Create( Window* pParent, const SfxItemSet& rAttrSet );
- static sal_uInt16* GetRanges();
- virtual sal_Bool FillItemSet( SfxItemSet& rSet );
+ static sal_uInt16* GetRanges();
+ virtual sal_Bool FillItemSet( SfxItemSet& rSet );
virtual void Reset( const SfxItemSet& rSet );
};
diff --git a/cui/source/options/optasian.cxx b/cui/source/options/optasian.cxx
index a74b30a28bf0..2c86765bb31d 100644
--- a/cui/source/options/optasian.cxx
+++ b/cui/source/options/optasian.cxx
@@ -21,7 +21,6 @@
#include <optasian.hxx>
#include <editeng/langitem.hxx>
#include <editeng/unolingu.hxx>
-#include <optasian.hrc>
#include <dialmgr.hxx>
#include <cuires.hrc>
#include <i18nlangtag/mslangid.hxx>
@@ -64,7 +63,7 @@ typedef ::std::map< LanguageType, SvxForbiddenChars_Impl* > SvxForbiddenCharacte
struct SvxAsianLayoutPage_Impl
{
SvxAsianConfig aConfig;
- SvxAsianLayoutPage_Impl() {}
+ SvxAsianLayoutPage_Impl() {}
~SvxAsianLayoutPage_Impl();
@@ -123,34 +122,31 @@ void SvxAsianLayoutPage_Impl::addForbiddenCharacters(
static LanguageType eLastUsedLanguageTypeForForbiddenCharacters = USHRT_MAX;
SvxAsianLayoutPage::SvxAsianLayoutPage( Window* pParent, const SfxItemSet& rSet ) :
- SfxTabPage(pParent, CUI_RES( RID_SVXPAGE_ASIAN_LAYOUT ), rSet),
- aKerningGB( this, CUI_RES(GB_KERNING )),
- aCharKerningRB( this, CUI_RES(RB_CHAR_KERNING )),
- aCharPunctKerningRB( this, CUI_RES(RB_CHAR_PUNCT )),
- aCharDistGB( this, CUI_RES(GB_CHAR_DIST )),
- aNoCompressionRB( this, CUI_RES(RB_NO_COMP )),
- aPunctCompressionRB( this, CUI_RES(RB_PUNCT_COMP )),
- aPunctKanaCompressionRB(this, CUI_RES(RB_PUNCT_KANA_COMP )),
- aStartEndGB( this, CUI_RES(GB_START_END )),
- aLanguageFT( this, CUI_RES(FT_LANGUAGE )),
- aLanguageLB( this, CUI_RES(LB_LANGUAGE )),
- aStandardCB( this, CUI_RES(CB_STANDARD )),
- aStartFT( this, CUI_RES(FT_START )),
- aStartED( this, CUI_RES(ED_START )),
- aEndFT( this, CUI_RES(FT_END )),
- aEndED( this, CUI_RES(ED_END )),
- aHintFT( this, CUI_RES(FT_HINT )),
+ SfxTabPage(pParent, "OptAsianPage", "cui/ui/optasianpage.ui", rSet),
pImpl(new SvxAsianLayoutPage_Impl)
{
- FreeResource();
- LanguageHdl(&aLanguageLB);
- aLanguageLB.SetSelectHdl(LINK(this, SvxAsianLayoutPage, LanguageHdl));
- aStandardCB.SetClickHdl(LINK(this, SvxAsianLayoutPage, ChangeStandardHdl));
+ get(m_pCharKerningRB, "charkerning");
+ get(m_pCharPunctKerningRB, "charpunctkerning");
+ get(m_pNoCompressionRB, "nocompression");
+ get(m_pPunctCompressionRB, "punctcompression");
+ get(m_pPunctKanaCompressionRB, "punctkanacompression");
+ get(m_pLanguageFT, "languageft");
+ get(m_pLanguageLB, "language");
+ get(m_pStandardCB, "standard");
+ get(m_pStartFT, "startft");
+ get(m_pStartED, "start");
+ get(m_pEndFT, "endft");
+ get(m_pEndED, "end");
+ get(m_pHintFT, "hintft");
+
+ LanguageHdl(m_pLanguageLB);
+ m_pLanguageLB->SetSelectHdl(LINK(this, SvxAsianLayoutPage, LanguageHdl));
+ m_pStandardCB->SetClickHdl(LINK(this, SvxAsianLayoutPage, ChangeStandardHdl));
Link aLk(LINK(this, SvxAsianLayoutPage, ModifyHdl));
- aStartED.SetModifyHdl(aLk);
- aEndED.SetModifyHdl(aLk);
+ m_pStartED->SetModifyHdl(aLk);
+ m_pEndED->SetModifyHdl(aLk);
- aLanguageLB.SetLanguageList( LANG_LIST_FBD_CHARS, sal_False, sal_False );
+ m_pLanguageLB->SetLanguageList( LANG_LIST_FBD_CHARS, sal_False, sal_False );
}
SvxAsianLayoutPage::~SvxAsianLayoutPage()
@@ -165,24 +161,24 @@ SfxTabPage* SvxAsianLayoutPage::Create( Window* pParent, const SfxItemSet& rAttr
sal_Bool SvxAsianLayoutPage::FillItemSet( SfxItemSet& )
{
- if(aCharKerningRB.IsChecked() != aCharKerningRB.GetSavedValue())
+ if(m_pCharKerningRB->IsChecked() != m_pCharKerningRB->GetSavedValue())
{
- pImpl->aConfig.SetKerningWesternTextOnly(aCharKerningRB.IsChecked());
+ pImpl->aConfig.SetKerningWesternTextOnly(m_pCharKerningRB->IsChecked());
OUString sPunct(cIsKernAsianPunctuation);
if(pImpl->xPrSetInfo.is() && pImpl->xPrSetInfo->hasPropertyByName(sPunct))
{
Any aVal;
- sal_Bool bVal = !aCharKerningRB.IsChecked();
+ sal_Bool bVal = !m_pCharKerningRB->IsChecked();
aVal.setValue(&bVal, ::getBooleanCppuType());
pImpl->xPrSet->setPropertyValue(sPunct, aVal);
}
}
- if(aNoCompressionRB.IsChecked() != aNoCompressionRB.GetSavedValue() ||
- aPunctCompressionRB.IsChecked() != aPunctCompressionRB.GetSavedValue())
+ if(m_pNoCompressionRB->IsChecked() != m_pNoCompressionRB->GetSavedValue() ||
+ m_pPunctCompressionRB->IsChecked() != m_pPunctCompressionRB->GetSavedValue())
{
- sal_Int16 nSet = aNoCompressionRB.IsChecked() ? 0 :
- aPunctCompressionRB.IsChecked() ? 1 : 2;
+ sal_Int16 nSet = m_pNoCompressionRB->IsChecked() ? 0 :
+ m_pPunctCompressionRB->IsChecked() ? 1 : 2;
pImpl->aConfig.SetCharDistanceCompression(nSet);
OUString sCompress(cCharacterCompressionType);
if(pImpl->xPrSetInfo.is() && pImpl->xPrSetInfo->hasPropertyByName(sCompress))
@@ -213,7 +209,7 @@ sal_Bool SvxAsianLayoutPage::FillItemSet( SfxItemSet& )
OSL_FAIL("exception in XForbiddenCharacters");
}
}
- eLastUsedLanguageTypeForForbiddenCharacters = aLanguageLB.GetSelectLanguage();
+ eLastUsedLanguageTypeForForbiddenCharacters = m_pLanguageLB->GetSelectLanguage();
return sal_False;
}
@@ -258,32 +254,31 @@ void SvxAsianLayoutPage::Reset( const SfxItemSet& )
}
else
{
- aStartEndGB.Enable(sal_False);
- aLanguageFT.Enable(sal_False);
- aLanguageLB.Enable(sal_False);
- aStandardCB.Enable(sal_False);
- aStartFT.Enable(sal_False);
- aStartED.Enable(sal_False);
- aEndFT.Enable(sal_False);
- aEndED.Enable(sal_False);
- aHintFT.Enable(sal_False);
+ m_pLanguageFT->Enable(sal_False);
+ m_pLanguageLB->Enable(sal_False);
+ m_pStandardCB->Enable(sal_False);
+ m_pStartFT->Enable(sal_False);
+ m_pStartED->Enable(sal_False);
+ m_pEndFT->Enable(sal_False);
+ m_pEndED->Enable(sal_False);
+ m_pHintFT->Enable(sal_False);
}
if(bKernWesternText)
- aCharKerningRB.Check(sal_True);
+ m_pCharKerningRB->Check(sal_True);
else
- aCharPunctKerningRB.Check(sal_True);
+ m_pCharPunctKerningRB->Check(sal_True);
switch(nCompress)
{
- case 0 : aNoCompressionRB.Check(); break;
- case 1 : aPunctCompressionRB.Check(); break;
- default: aPunctKanaCompressionRB.Check();
+ case 0 : m_pNoCompressionRB->Check(); break;
+ case 1 : m_pPunctCompressionRB->Check(); break;
+ default: m_pPunctKanaCompressionRB->Check();
}
- aCharKerningRB.SaveValue();
- aNoCompressionRB.SaveValue();
- aPunctCompressionRB.SaveValue();
- aPunctKanaCompressionRB.SaveValue();
+ m_pCharKerningRB->SaveValue();
+ m_pNoCompressionRB->SaveValue();
+ m_pPunctCompressionRB->SaveValue();
+ m_pPunctKanaCompressionRB->SaveValue();
- aLanguageLB.SelectEntryPos(0);
+ m_pLanguageLB->SelectEntryPos(0);
//preselect the system language in the box - if available
if(USHRT_MAX == eLastUsedLanguageTypeForForbiddenCharacters)
{
@@ -294,14 +289,14 @@ void SvxAsianLayoutPage::Reset( const SfxItemSet& )
else if (MsLangId::isTraditionalChinese(eLastUsedLanguageTypeForForbiddenCharacters))
eLastUsedLanguageTypeForForbiddenCharacters = LANGUAGE_CHINESE_TRADITIONAL;
}
- aLanguageLB.SelectLanguage( eLastUsedLanguageTypeForForbiddenCharacters );
- LanguageHdl(&aLanguageLB);
+ m_pLanguageLB->SelectLanguage( eLastUsedLanguageTypeForForbiddenCharacters );
+ LanguageHdl(m_pLanguageLB);
}
IMPL_LINK_NOARG(SvxAsianLayoutPage, LanguageHdl)
{
//set current value
- LanguageType eSelectLanguage = aLanguageLB.GetSelectLanguage();
+ LanguageType eSelectLanguage = m_pLanguageLB->GetSelectLanguage();
LanguageTag aLanguageTag( eSelectLanguage);
Locale aLocale( aLanguageTag.getLocale());
@@ -352,13 +347,13 @@ IMPL_LINK_NOARG(SvxAsianLayoutPage, LanguageHdl)
sStart = aForbidden.beginLine;
sEnd = aForbidden.endLine;
}
- aStandardCB.Check(!bAvail);
- aStartED.Enable(bAvail);
- aEndED.Enable(bAvail);
- aStartFT.Enable(bAvail);
- aEndFT.Enable(bAvail);
- aStartED.SetText(sStart);
- aEndED.SetText(sEnd);
+ m_pStandardCB->Check(!bAvail);
+ m_pStartED->Enable(bAvail);
+ m_pEndED->Enable(bAvail);
+ m_pStartFT->Enable(bAvail);
+ m_pEndFT->Enable(bAvail);
+ m_pStartED->SetText(sStart);
+ m_pEndED->SetText(sEnd);
return 0;
}
@@ -366,21 +361,21 @@ IMPL_LINK_NOARG(SvxAsianLayoutPage, LanguageHdl)
IMPL_LINK(SvxAsianLayoutPage, ChangeStandardHdl, CheckBox*, pBox)
{
sal_Bool bCheck = pBox->IsChecked();
- aStartED.Enable(!bCheck);
- aEndED.Enable(!bCheck);
- aStartFT.Enable(!bCheck);
- aEndFT.Enable(!bCheck);
+ m_pStartED->Enable(!bCheck);
+ m_pEndED->Enable(!bCheck);
+ m_pStartFT->Enable(!bCheck);
+ m_pEndFT->Enable(!bCheck);
- ModifyHdl(&aStartED);
+ ModifyHdl(m_pStartED);
return 0;
}
IMPL_LINK(SvxAsianLayoutPage, ModifyHdl, Edit*, pEdit)
{
- LanguageType eSelectLanguage = aLanguageLB.GetSelectLanguage();
+ LanguageType eSelectLanguage = m_pLanguageLB->GetSelectLanguage();
Locale aLocale( LanguageTag::convertToLocale( eSelectLanguage ));
- OUString sStart = aStartED.GetText();
- OUString sEnd = aEndED.GetText();
+ OUString sStart = m_pStartED->GetText();
+ OUString sEnd = m_pEndED->GetText();
sal_Bool bEnable = pEdit->IsEnabled();
if(pImpl->xForbidden.is())
{
diff --git a/cui/source/options/optasian.hrc b/cui/source/options/optasian.hrc
deleted file mode 100644
index caf37224b34d..000000000000
--- a/cui/source/options/optasian.hrc
+++ /dev/null
@@ -1,42 +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 _SVX_OPTASIAN_HRC
-#define _SVX_OPTASIAN_HRC
-
-#define GB_KERNING 1
-#define RB_CHAR_KERNING 2
-#define RB_CHAR_PUNCT 3
-#define GB_CHAR_DIST 4
-#define RB_NO_COMP 5
-#define RB_PUNCT_COMP 6
-#define RB_PUNCT_KANA_COMP 7
-#define GB_START_END 8
-#define CB_STANDARD 9
-
-#define FT_LANGUAGE 11
-#define LB_LANGUAGE 12
-#define FT_START 13
-#define ED_START 14
-#define FT_END 15
-#define ED_END 16
-#define FT_HINT 17
-
-#endif
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/cui/source/options/optasian.src b/cui/source/options/optasian.src
deleted file mode 100644
index 054b2476a162..000000000000
--- a/cui/source/options/optasian.src
+++ /dev/null
@@ -1,141 +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 .
- */
-
-#include "optasian.hrc"
-#include <sfx2/sfx.hrc>
-#include "helpid.hrc"
-#include <cuires.hrc>
-
-TabPage RID_SVXPAGE_ASIAN_LAYOUT
-{
- HelpId = HID_OPTIONS_ASIAN_LAYOUT ;
- OutputSize = TRUE ;
- Size = MAP_APPFONT ( TP_WIDTH , TP_HEIGHT ) ;
- SVLook = TRUE ;
- Hide = TRUE ;
- FixedLine GB_KERNING
- {
- Pos = MAP_APPFONT ( 6, 3 ) ;
- Size = MAP_APPFONT ( 248 , 8 ) ;
- Text [ en-US ] = "Kerning";
- };
- RadioButton RB_CHAR_KERNING
- {
- HelpID = "cui:RadioButton:RID_SVXPAGE_ASIAN_LAYOUT:RB_CHAR_KERNING";
- Pos = MAP_APPFONT ( 12, 14 ) ;
- Size = MAP_APPFONT ( 200 , 10 ) ;
- Text [ en-US ] = "~Western characters only";
- };
- RadioButton RB_CHAR_PUNCT
- {
- HelpID = "cui:RadioButton:RID_SVXPAGE_ASIAN_LAYOUT:RB_CHAR_PUNCT";
- Pos = MAP_APPFONT ( 12, 27 ) ;
- Size = MAP_APPFONT ( 200 , 10 ) ;
- Text [ en-US ] = "Western ~text and Asian punctuation";
- };
- FixedLine GB_CHAR_DIST
- {
- Pos = MAP_APPFONT ( 6, 43 ) ;
- Size = MAP_APPFONT ( 248 , 8 ) ;
- Text [ en-US ] = "Character spacing";
- };
- RadioButton RB_NO_COMP
- {
- HelpID = "cui:RadioButton:RID_SVXPAGE_ASIAN_LAYOUT:RB_NO_COMP";
- Pos = MAP_APPFONT ( 12, 54 ) ;
- Size = MAP_APPFONT ( 200 , 10 ) ;
- Text [ en-US ] = "~No compression";
- };
- RadioButton RB_PUNCT_COMP
- {
- HelpID = "cui:RadioButton:RID_SVXPAGE_ASIAN_LAYOUT:RB_PUNCT_COMP";
- Pos = MAP_APPFONT ( 12, 67) ;
- Size = MAP_APPFONT ( 200 , 10 ) ;
- Text [ en-US ] = "~Compress punctuation only";
- };
- RadioButton RB_PUNCT_KANA_COMP
- {
- HelpID = "cui:RadioButton:RID_SVXPAGE_ASIAN_LAYOUT:RB_PUNCT_KANA_COMP";
- Pos = MAP_APPFONT ( 12, 80 ) ;
- Size = MAP_APPFONT ( 200 , 10 ) ;
- Text [ en-US ] = "Compress ~punctuation and Japanese Kana";
- };
- FixedLine GB_START_END
- {
- Pos = MAP_APPFONT ( 6, 96 ) ;
- Size = MAP_APPFONT ( 248 , 8 ) ;
- Text [ en-US ] = "First and last characters";
- };
- FixedText FT_LANGUAGE
- {
- Pos = MAP_APPFONT ( 12 , 109 ) ;
- Size = MAP_APPFONT ( 80 , 8 ) ;
- Text [ en-US ] = "~Language";
- };
- ListBox LB_LANGUAGE
- {
- HelpID = "cui:ListBox:RID_SVXPAGE_ASIAN_LAYOUT:LB_LANGUAGE";
- Pos = MAP_APPFONT ( 95 , 107 ) ;
- Size = MAP_APPFONT ( 80 , 48 ) ;
- Border = TRUE ;
- DropDown = TRUE ;
- };
- CheckBox CB_STANDARD
- {
- HelpID = "cui:CheckBox:RID_SVXPAGE_ASIAN_LAYOUT:CB_STANDARD";
- Pos = MAP_APPFONT ( 180, 109 ) ;
- Size = MAP_APPFONT ( 74 , 10 ) ;
- Text [ en-US ] = "~Default";
- };
- FixedText FT_START
- {
- Pos = MAP_APPFONT ( 12 , 125 ) ;
- Size = MAP_APPFONT ( 80 , 8 ) ;
- Text [ en-US ] = "Not at start of line:";
- };
- Edit ED_START
- {
- HelpID = "cui:Edit:RID_SVXPAGE_ASIAN_LAYOUT:ED_START";
- Pos = MAP_APPFONT ( 95 , 123 ) ;
- Size = MAP_APPFONT ( 159 , 12 ) ;
- Border = TRUE ;
- };
- FixedText FT_END
- {
- Pos = MAP_APPFONT ( 12 , 141 ) ;
- Size = MAP_APPFONT ( 80 , 8 ) ;
- Text [ en-US ] = "Not at end of line:";
- };
- Edit ED_END
- {
- HelpID = "cui:Edit:RID_SVXPAGE_ASIAN_LAYOUT:ED_END";
- Pos = MAP_APPFONT ( 95 , 139 ) ;
- Size = MAP_APPFONT ( 159 , 12 ) ;
- Border = TRUE ;
- };
- FixedText FT_HINT
- {
- Pos = MAP_APPFONT ( 12 , 155 ) ;
- Size = MAP_APPFONT ( 242 , 8 ) ;
- Text [ en-US ] = "Without user-defined line break symbols";
- };
- Text [ en-US ] = "Proxy";
-};
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/cui/uiconfig/ui/optasianpage.ui b/cui/uiconfig/ui/optasianpage.ui
new file mode 100644
index 000000000000..18989097d25c
--- /dev/null
+++ b/cui/uiconfig/ui/optasianpage.ui
@@ -0,0 +1,381 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+ <!-- interface-requires gtk+ 3.0 -->
+ <object class="GtkGrid" id="OptAsianPage">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="border_width">6</property>
+ <property name="row_spacing">12</property>
+ <child>
+ <object class="GtkFrame" id="frame1">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label_xalign">0</property>
+ <property name="shadow_type">none</property>
+ <child>
+ <object class="GtkAlignment" id="alignment1">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="left_padding">12</property>
+ <child>
+ <object class="GtkBox" id="box1">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="border_width">6</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">6</property>
+ <child>
+ <object class="GtkRadioButton" id="charkerning">
+ <property name="label" translatable="yes">_Western characters only</property>
+ <property name="use_action_appearance">False</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="use_action_appearance">False</property>
+ <property name="use_underline">True</property>
+ <property name="xalign">0</property>
+ <property name="active">True</property>
+ <property name="draw_indicator">True</property>
+ <property name="group">charpunctkerning</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="charpunctkerning">
+ <property name="label" translatable="yes">Western _text and Asian punctuation</property>
+ <property name="use_action_appearance">False</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="use_action_appearance">False</property>
+ <property name="use_underline">True</property>
+ <property name="xalign">0</property>
+ <property name="active">True</property>
+ <property name="draw_indicator">True</property>
+ <property name="group">charkerning</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child type="label">
+ <object class="GtkLabel" id="label1">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">Kerning</property>
+ <property name="use_markup">False</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="GtkFrame" id="frame2">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label_xalign">0</property>
+ <property name="shadow_type">none</property>
+ <child>
+ <object class="GtkAlignment" id="alignment2">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="left_padding">12</property>
+ <child>
+ <object class="GtkBox" id="box2">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="border_width">6</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">6</property>
+ <child>
+ <object class="GtkRadioButton" id="nocompression">
+ <property name="label" translatable="yes">_No compression</property>
+ <property name="use_action_appearance">False</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="use_action_appearance">False</property>
+ <property name="use_underline">True</property>
+ <property name="xalign">0</property>
+ <property name="active">True</property>
+ <property name="draw_indicator">True</property>
+ <property name="group">punctcompression</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="punctcompression">
+ <property name="label" translatable="yes">_Compress punctuation only</property>
+ <property name="use_action_appearance">False</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="use_action_appearance">False</property>
+ <property name="use_underline">True</property>
+ <property name="xalign">0</property>
+ <property name="active">True</property>
+ <property name="draw_indicator">True</property>
+ <property name="group">punctkanacompression</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkRadioButton" id="punctkanacompression">
+ <property name="label" translatable="yes">Compress punctuation and Japanese Kana</property>
+ <property name="use_action_appearance">False</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="use_action_appearance">False</property>
+ <property name="use_underline">True</property>
+ <property name="xalign">0</property>
+ <property name="active">True</property>
+ <property name="draw_indicator">True</property>
+ <property name="group">nocompression</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child type="label">
+ <object class="GtkLabel" id="label2">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">Character spacing</property>
+ <property name="use_markup">False</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>
+ <child>
+ <object class="GtkFrame" id="frame3">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="hexpand">True</property>
+ <property name="label_xalign">0</property>
+ <property name="shadow_type">none</property>
+ <child>
+ <object class="GtkAlignment" id="alignment3">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="hexpand">True</property>
+ <property name="border_width">6</property>
+ <property name="left_padding">12</property>
+ <child>
+ <object class="GtkBox" id="box3">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="hexpand">True</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">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="row_spacing">12</property>
+ <property name="column_spacing">12</property>
+ <child>
+ <object class="GtkBox" id="box4">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="hexpand">True</property>
+ <property name="spacing">12</property>
+ <property name="homogeneous">True</property>
+ <child>
+ <object class="svxcorelo-SvxLanguageBox" id="language">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="hexpand">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkCheckButton" id="standard">
+ <property name="label" translatable="yes">_Default</property>
+ <property name="use_action_appearance">False</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="use_action_appearance">False</property>
+ <property name="use_underline">True</property>
+ <property name="xalign">0</property>
+ <property name="draw_indicator">True</property>
+ </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>
+ <child>
+ <object class="GtkLabel" id="languageft">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">_Language</property>
+ <property name="use_underline">True</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="startft">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">Not _at start of line:</property>
+ <property name="use_underline">True</property>
+ </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="GtkLabel" id="endft">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">Not at _end of line:</property>
+ <property name="use_underline">True</property>
+ </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="GtkEntry" id="start">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="hexpand">True</property>
+ <property name="invisible_char">●</property>
+ </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="GtkEntry" id="end">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="hexpand">True</property>
+ <property name="invisible_char">●</property>
+ </object>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="top_attach">2</property>
+ <property name="width">1</property>
+ <property name="height">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="GtkLabel" id="hintft">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">Without user-defined line break symbols</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child type="label">
+ <object class="GtkLabel" id="label3">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">First and last characters</property>
+ <property name="use_markup">False</property>
+ <attributes>
+ <attribute name="weight" value="bold"/>
+ </attributes>
+ </object>
+ </child>
+ </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>
+ </object>
+</interface>