Kaydet (Commit) 4b21195e authored tarafından Olivier Hallot's avatar Olivier Hallot Kaydeden (comit) Caolán McNamara

Widget for asian typography

Change-Id: I70535593c3e06caca48ae8bc8b9476ae09210df8
üst d242d9e1
......@@ -10,6 +10,7 @@
$(eval $(call gb_UI_UI,cui))
$(eval $(call gb_UI_add_uifiles,cui,\
cui/uiconfig/ui/asiantypography \
cui/uiconfig/ui/backgroundpage \
cui/uiconfig/ui/borderpage \
cui/uiconfig/ui/charnamepage \
......
......@@ -278,17 +278,15 @@ private:
//--------------------------------------------------------------------------
class SvxAsianTabPage : public SfxTabPage
{
FixedLine aOptionsFL;
TriStateBox aForbiddenRulesCB;
TriStateBox aHangingPunctCB;
TriStateBox aScriptSpaceCB;
CheckBox* m_pForbiddenRulesCB;
CheckBox* m_pHangingPunctCB;
CheckBox* m_pScriptSpaceCB;
SvxAsianTabPage( Window* pParent, const SfxItemSet& rSet );
#ifdef _SVX_PARAGRPH_CXX
DECL_LINK( ClickHdl_Impl, TriStateBox* );
DECL_LINK( ClickHdl_Impl, CheckBox* );
#endif
public:
~SvxAsianTabPage();
......
......@@ -2221,19 +2221,17 @@ void SvxExtParagraphTabPage::PageCreated(SfxAllItemSet aSet)
}
SvxAsianTabPage::SvxAsianTabPage( Window* pParent, const SfxItemSet& rSet ) :
SfxTabPage(pParent, CUI_RES( RID_SVXPAGE_PARA_ASIAN ), rSet),
aOptionsFL( this, CUI_RES(FL_AS_OPTIONS )),
aForbiddenRulesCB( this, CUI_RES(CB_AS_FORBIDDEN )),
aHangingPunctCB( this, CUI_RES(CB_AS_HANG_PUNC )),
aScriptSpaceCB( this, CUI_RES(CB_AS_SCRIPT_SPACE ))//,
SfxTabPage(pParent, "AsianTypography","cui/ui/asiantypography.ui", rSet)
{
FreeResource();
get(m_pForbiddenRulesCB,"checkForbidList");
get(m_pHangingPunctCB,"checkHangPunct");
get(m_pScriptSpaceCB,"checkApplySpacing");
Link aLink = LINK( this, SvxAsianTabPage, ClickHdl_Impl );
aHangingPunctCB.SetClickHdl( aLink );
aScriptSpaceCB.SetClickHdl( aLink );
aForbiddenRulesCB.SetClickHdl( aLink );
m_pHangingPunctCB->SetClickHdl( aLink );
m_pScriptSpaceCB->SetClickHdl( aLink );
m_pForbiddenRulesCB->SetClickHdl( aLink );
}
......@@ -2255,34 +2253,34 @@ sal_uInt16* SvxAsianTabPage::GetRanges()
};
return pRanges;
}
//FIXME: This crash in Calc, but works in Writer/Draw/Impress
sal_Bool SvxAsianTabPage::FillItemSet( SfxItemSet& rSet )
{
sal_Bool bRet = sal_False;
SfxItemPool* pPool = rSet.GetPool();
if(aScriptSpaceCB.IsChecked() != aScriptSpaceCB.GetSavedValue())
if(m_pScriptSpaceCB->IsChecked() != m_pScriptSpaceCB->GetSavedValue())
{
SfxBoolItem* pNewItem = (SfxBoolItem*)rSet.Get(
pPool->GetWhich(SID_ATTR_PARA_SCRIPTSPACE)).Clone();
pNewItem->SetValue(aScriptSpaceCB.IsChecked());
pNewItem->SetValue(m_pScriptSpaceCB->IsChecked());
rSet.Put(*pNewItem);
delete pNewItem;
bRet = sal_True;
}
if(aHangingPunctCB.IsChecked() != aHangingPunctCB.GetSavedValue())
if(m_pHangingPunctCB->IsChecked() != m_pHangingPunctCB->GetSavedValue())
{
SfxBoolItem* pNewItem = (SfxBoolItem*)rSet.Get(
pPool->GetWhich(SID_ATTR_PARA_HANGPUNCTUATION)).Clone();
pNewItem->SetValue(aHangingPunctCB.IsChecked());
pNewItem->SetValue(m_pHangingPunctCB->IsChecked());
rSet.Put(*pNewItem);
delete pNewItem;
bRet = sal_True;
}
if(aForbiddenRulesCB.IsChecked() != aForbiddenRulesCB.GetSavedValue())
if(m_pForbiddenRulesCB->IsChecked() != m_pForbiddenRulesCB->GetSavedValue())
{
SfxBoolItem* pNewItem = (SfxBoolItem*)rSet.Get(
pPool->GetWhich(SID_ATTR_PARA_FORBIDDEN_RULES)).Clone();
pNewItem->SetValue(aForbiddenRulesCB.IsChecked());
pNewItem->SetValue(m_pForbiddenRulesCB->IsChecked());
rSet.Put(*pNewItem);
delete pNewItem;
bRet = sal_True;
......@@ -2290,7 +2288,7 @@ sal_Bool SvxAsianTabPage::FillItemSet( SfxItemSet& rSet )
return bRet;
}
static void lcl_SetBox(const SfxItemSet& rSet, sal_uInt16 nSlotId, TriStateBox& rBox)
static void lcl_SetBox(const SfxItemSet& rSet, sal_uInt16 nSlotId, CheckBox& rBox)
{
sal_uInt16 _nWhich = rSet.GetPool()->GetWhich(nSlotId);
SfxItemState eState = rSet.GetItemState(_nWhich, sal_True);
......@@ -2309,14 +2307,14 @@ static void lcl_SetBox(const SfxItemSet& rSet, sal_uInt16 nSlotId, TriStateBox&
void SvxAsianTabPage::Reset( const SfxItemSet& rSet )
{
lcl_SetBox(rSet, SID_ATTR_PARA_FORBIDDEN_RULES, aForbiddenRulesCB );
lcl_SetBox(rSet, SID_ATTR_PARA_HANGPUNCTUATION, aHangingPunctCB );
lcl_SetBox(rSet, SID_ATTR_PARA_FORBIDDEN_RULES, *m_pForbiddenRulesCB );
lcl_SetBox(rSet, SID_ATTR_PARA_HANGPUNCTUATION, *m_pHangingPunctCB );
//character distance not yet available
lcl_SetBox(rSet, SID_ATTR_PARA_SCRIPTSPACE, aScriptSpaceCB );
lcl_SetBox(rSet, SID_ATTR_PARA_SCRIPTSPACE, *m_pScriptSpaceCB );
}
IMPL_LINK( SvxAsianTabPage, ClickHdl_Impl, TriStateBox*, pBox )
IMPL_LINK( SvxAsianTabPage, ClickHdl_Impl, CheckBox*, pBox )
{
pBox->EnableTriState( sal_False );
return 0;
......
......@@ -100,14 +100,6 @@
#define LB_TEXTDIRECTION 92
//asian typography
#define FL_AS_OPTIONS 1
#define CB_AS_HANG_PUNC 2
#define CB_AS_FORBIDDEN 4
#define CB_AS_SCRIPT_SPACE 7
#define STR_EXAMPLE 5010
#define STR_PAGE_STYLE 5011
#endif
......
......@@ -692,43 +692,6 @@ TabPage RID_SVXPAGE_EXT_PARAGRAPH
Left = TRUE ;
};
};
// Asian typography
TabPage RID_SVXPAGE_PARA_ASIAN
{
HelpId = HID_SVXPAGE_PARA_ASIAN ;
Hide = TRUE ;
Text [ en-US ] = "Asian Typography";
Size = MAP_APPFONT ( TP_WIDTH , TP_HEIGHT ) ;
FixedLine FL_AS_OPTIONS
{
Pos = MAP_APPFONT ( 6 , 3 ) ;
Size = MAP_APPFONT ( 248 , 8 ) ;
Text [ en-US ] = "Line change";
};
TriStateBox CB_AS_FORBIDDEN
{
HelpID = "cui:TriStateBox:RID_SVXPAGE_PARA_ASIAN:CB_AS_FORBIDDEN";
Pos = MAP_APPFONT ( 12 , 14 ) ;
Size = MAP_APPFONT ( 242 , 10 ) ;
Text [ en-US ] = "Apply list of forbidden characters to the beginning and end of lines";
};
TriStateBox CB_AS_HANG_PUNC
{
HelpID = "cui:TriStateBox:RID_SVXPAGE_PARA_ASIAN:CB_AS_HANG_PUNC";
Pos = MAP_APPFONT ( 12 , 28 ) ;
Size = MAP_APPFONT ( 242 , 10 ) ;
Text [ en-US ] = "Allow hanging punctuation";
};
TriStateBox CB_AS_SCRIPT_SPACE
{
HelpID = "cui:TriStateBox:RID_SVXPAGE_PARA_ASIAN:CB_AS_SCRIPT_SPACE";
Pos = MAP_APPFONT ( 12 , 42 ) ;
Size = MAP_APPFONT ( 242 , 10 ) ;
Text [ en-US ] = "Apply spacing between Asian, Latin and Complex text";
};
};
String STR_EXAMPLE
{
Text [ en-US ] = "Example" ;
......
<?xml version="1.0" encoding="UTF-8"?>
<interface>
<!-- interface-requires gtk+ 3.0 -->
<object class="GtkFrame" id="AsianTypography">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="border_width">6</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="orientation">vertical</property>
<child>
<object class="GtkCheckButton" id="checkForbidList">
<property name="label" translatable="yes">Apply list of forbidden characters to the beginning and end of lines</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">False</property>
<property name="xalign">0</property>
<property name="inconsistent">True</property>
<property name="draw_indicator">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="checkHangPunct">
<property name="label" translatable="yes">Allow hanging punctuation</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">False</property>
<property name="xalign">0</property>
<property name="inconsistent">True</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>
<child>
<object class="GtkCheckButton" id="checkApplySpacing">
<property name="label" translatable="yes">Apply spacing between Asian, Latin and Complex text</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">False</property>
<property name="xalign">0</property>
<property name="inconsistent">True</property>
<property name="draw_indicator">True</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="labelLineChange">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">Line change</property>
<attributes>
<attribute name="weight" value="bold"/>
</attributes>
</object>
</child>
</object>
</interface>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment