summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThorsten Behrens <tbehrens@novell.com>2010-09-17 10:11:29 +0200
committerJan Holesovsky <kendy@suse.cz>2010-09-17 10:14:35 +0200
commitaa9af08b389a106fcfb53842ac7669b208a27205 (patch)
tree2e4442f9247b6f3d8f43f9400a5f9ed77efc9d1f
parentb91ad8c6132e870ef6b7a88d024a4ff8e6a8cf29 (diff)
fit-list-to-size.diff: Shrink font automatically when text overflows.
i#94086 Scale-font-down if typing text in Impress and the text box becomes too small.
Notes
split repo tag: impress_OOO_BUILD_3_2_99_0_PRE
-rwxr-xr-xsd/inc/app.hrc7
-rwxr-xr-xsd/sdi/_drvwsh.sdi17
-rwxr-xr-xsd/sdi/sdraw.sdi27
-rwxr-xr-xsd/source/core/stlpool.cxx2
-rw-r--r--sd/source/ui/app/menuids_tmpl.src8
-rw-r--r--sd/source/ui/app/popup2_tmpl.src43
-rwxr-xr-xsd/source/ui/inc/res_bmp.hrc3
-rwxr-xr-xsd/source/ui/view/drviews2.cxx25
-rw-r--r--sd/source/ui/view/drviews4.cxx6
-rw-r--r--sd/source/ui/view/drviewsj.cxx19
10 files changed, 134 insertions, 23 deletions
diff --git a/sd/inc/app.hrc b/sd/inc/app.hrc
index 65aec562f084..3f64873255ef 100755
--- a/sd/inc/app.hrc
+++ b/sd/inc/app.hrc
@@ -456,11 +456,12 @@
#define SID_DISPLAY_MASTER_OBJECTS (SID_SD_START+437)
#define SID_INSERTPAGE_LAYOUT_MENU (SID_SD_START+438)
#define SID_TP_EDIT_MASTER (SID_SD_START+439)
+#define SID_OUTLINE_TEXT_AUTOFIT (SID_SD_START+440)
// Add companion for the SID_HIDE_SLIDE (that is defined in svx)
-#define SID_SHOW_SLIDE (SID_SD_START+440)
+#define SID_SHOW_SLIDE (SID_SD_START+441)
-#define SID_ADD_MOTION_PATH (SID_SD_START+441)
-#define SID_TABLE_TOOLBOX (SID_SD_START+442)
+#define SID_ADD_MOTION_PATH (SID_SD_START+442)
+#define SID_TABLE_TOOLBOX (SID_SD_START+443)
#endif
diff --git a/sd/sdi/_drvwsh.sdi b/sd/sdi/_drvwsh.sdi
index 6d0d3ef33ce9..bfb2570782b9 100755
--- a/sd/sdi/_drvwsh.sdi
+++ b/sd/sdi/_drvwsh.sdi
@@ -25,18 +25,6 @@
*
************************************************************************/
-enum SdrFitToSizeType
-{
- SDRTEXTFIT_NONE ,
- SDRTEXTFIT_PROPORTIONAL ,
- SDRTEXTFIT_ALLLINES ,
- SDRTEXTFIT_RESIZEATTR
-}
-item UINT32 SvxObjectItem ;
-item BOOL SdrShadowItem ;
-item SdrFitToSizeType SdrTextFitToSizeTypeItem ;
-
-
interface DrawView
{
SID_JUMPTOMARK // ole : no, status : ?
@@ -674,6 +662,11 @@ interface DrawView
ExecMethod = FuPermanent ;
StateMethod = GetMenuState ;
]
+ SID_OUTLINE_TEXT_AUTOFIT // ole : no, status : ?
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetMenuState ;
+ ]
SID_TEXT_FITTOSIZE_VERTICAL // ole : no, status : ?
[
ExecMethod = FuPermanent ;
diff --git a/sd/sdi/sdraw.sdi b/sd/sdi/sdraw.sdi
index 0e91fb2c9134..dab765600f18 100755
--- a/sd/sdi/sdraw.sdi
+++ b/sd/sdi/sdraw.sdi
@@ -6351,6 +6351,33 @@ SfxBoolItem TextFitToSizeTool SID_TEXT_FITTOSIZE
]
//--------------------------------------------------------------------------
+SfxBoolItem TextAutoFitToSize SID_OUTLINE_TEXT_AUTOFIT
+
+[
+ /* flags: */
+ AutoUpdate = TRUE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = FALSE,
+ Toggle = FALSE,
+ Container = FALSE,
+ RecordAbsolute = FALSE,
+ RecordPerSet;
+ Synchron;
+
+ Readonly = FALSE,
+
+ /* config: */
+ AccelConfig = TRUE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_FORMAT;
+]
+
+//--------------------------------------------------------------------------
TbxImageItem TextToolbox SID_DRAWTBX_TEXT
[
diff --git a/sd/source/core/stlpool.cxx b/sd/source/core/stlpool.cxx
index 138863cc313a..e89520d493f5 100755
--- a/sd/source/core/stlpool.cxx
+++ b/sd/source/core/stlpool.cxx
@@ -254,6 +254,8 @@ void SdStyleSheetPool::CreateLayoutStyleSheets(const String& rLayoutName, sal_Bo
rSet.Put( SvxColorItem( Color(COL_AUTO), EE_CHAR_COLOR) );
rSet.Put( XLineStyleItem(XLINE_NONE) );
rSet.Put( XFillStyleItem(XFILL_NONE) );
+ rSet.Put( SdrTextFitToSizeTypeItem(SDRTEXTFIT_AUTOFIT) );
+ rSet.Put( SdrTextAutoGrowHeightItem(FALSE) );
// #i16874# enable kerning by default but only for new documents
rSet.Put( SvxAutoKernItem( TRUE, EE_CHAR_PAIRKERNING ) );
diff --git a/sd/source/ui/app/menuids_tmpl.src b/sd/source/ui/app/menuids_tmpl.src
index e21caafaa739..4f05a49ad2b4 100644
--- a/sd/source/ui/app/menuids_tmpl.src
+++ b/sd/source/ui/app/menuids_tmpl.src
@@ -304,6 +304,14 @@
Text [ en-US ] = "~Text..." ; \
};
+#define MN_OUTLINE_TEXT_AUTOFIT \
+ MenuItem\
+ {\
+ Identifier = SID_OUTLINE_TEXT_AUTOFIT ; \
+ HelpID = SID_OUTLINE_TEXT_AUTOFIT ; \
+ Text [ en-US ] = "~Autofit Text" ; \
+ };
+
#define MN_CONNECTION \
MenuItem\
{\
diff --git a/sd/source/ui/app/popup2_tmpl.src b/sd/source/ui/app/popup2_tmpl.src
index 5ee8fb5e4d6a..46efadeb031d 100644
--- a/sd/source/ui/app/popup2_tmpl.src
+++ b/sd/source/ui/app/popup2_tmpl.src
@@ -79,6 +79,49 @@
};
//
+// OUTLINETEXTOBJ_POPUP
+//
+#if SD_POPUP == RID_DRAW_TEXTOBJ_POPUP
+ Menu RID_DRAW_OUTLINETEXTOBJ_POPUP
+#elif SD_POPUP == RID_GRAPHIC_TEXTOBJ_POPUP
+ Menu RID_GRAPHIC_OUTLINETEXTOBJ_POPUP
+#endif
+{
+ ItemList =
+ {
+ MN_SET_DEFAULT
+ SEPARATOR
+ MN_LINE
+ MN_AREA
+ MN_TEXTATTR
+ MN_OUTLINE_TEXT_AUTOFIT
+ MN_TRANSFORM
+ MN_FONTWORK
+ SEPARATOR
+ MN_CHAR_PARAGRAPH
+ SEPARATOR
+ MN_POSITION
+ MN_OBJECT_ALIGN
+ MN_DISTRIBUTE
+ MNSUB_CONVERT
+
+ //-#i68101#----------------------
+ SEPARATOR
+ MN_OBJECT_TITLE_DESCRIPTION
+ MN_NAME_GROUP
+ //-#i68101#----------------------
+
+#if SD_POPUP == RID_DRAW_TEXTOBJ_POPUP
+ SEPARATOR
+ MN_EFFECT
+ MN_ACTION
+#endif
+ SEPARATOR
+ MN_STYLEDT
+ };
+};
+
+//
// GEOMOBJ_POPUP
//
#if SD_POPUP == RID_DRAW_TEXTOBJ_POPUP
diff --git a/sd/source/ui/inc/res_bmp.hrc b/sd/source/ui/inc/res_bmp.hrc
index 1602dc698f3f..fb788cb83614 100755
--- a/sd/source/ui/inc/res_bmp.hrc
+++ b/sd/source/ui/inc/res_bmp.hrc
@@ -298,6 +298,9 @@
#define RID_DRAW_TABLEOBJ_INSIDE_POPUP RID_APP_START+94
+#define RID_DRAW_OUTLINETEXTOBJ_POPUP RID_APP_START+95
+#define RID_GRAPHIC_OUTLINETEXTOBJ_POPUP RID_APP_START+96
+
/*
* Pointer (Mauszeiger)
*/
diff --git a/sd/source/ui/view/drviews2.cxx b/sd/source/ui/view/drviews2.cxx
index 3102dc726a61..9be01df4fe7a 100755
--- a/sd/source/ui/view/drviews2.cxx
+++ b/sd/source/ui/view/drviews2.cxx
@@ -130,6 +130,31 @@ void DrawViewShell::FuTemporary(SfxRequest& rReq)
switch ( nSId )
{
+ case SID_OUTLINE_TEXT_AUTOFIT:
+ {
+ SfxUndoManager* pUndoManager = GetDocSh()->GetUndoManager();
+ SdrObject* pObj = NULL;
+ const SdrMarkList& rMarkList = mpDrawView->GetMarkedObjectList();
+ if( rMarkList.GetMarkCount() == 1 )
+ {
+ pUndoManager->EnterListAction( String(), String() );
+ mpDrawView->BegUndo();
+
+ pObj = rMarkList.GetMark(0)->GetMarkedSdrObj();
+ bool bSet = ((const SdrTextFitToSizeTypeItem*)pObj->GetMergedItemSet().GetItem(SDRATTR_TEXT_FITTOSIZE))->GetValue() != SDRTEXTFIT_NONE;
+
+ mpDrawView->AddUndo(GetDoc()->GetSdrUndoFactory().CreateUndoAttrObject(*pObj));
+
+ pObj->SetMergedItem(SdrTextFitToSizeTypeItem(bSet ? SDRTEXTFIT_NONE : SDRTEXTFIT_AUTOFIT));
+
+ mpDrawView->EndUndo();
+ pUndoManager->LeaveListAction();
+ }
+ Cancel();
+ rReq.Done();
+ }
+ break;
+
// Flaechen und Linien-Attribute:
// Sollten (wie StateMethode) eine eigene
// Execute-Methode besitzen
diff --git a/sd/source/ui/view/drviews4.cxx b/sd/source/ui/view/drviews4.cxx
index 88027d360806..cc4aa5131fdc 100644
--- a/sd/source/ui/view/drviews4.cxx
+++ b/sd/source/ui/view/drviews4.cxx
@@ -679,9 +679,13 @@ void DrawViewShell::Command(const CommandEvent& rCEvt, ::sd::Window* pWin)
{
switch ( nId )
{
+ case OBJ_OUTLINETEXT:
+ nSdResId = bGraphicShell ? RID_GRAPHIC_OUTLINETEXTOBJ_POPUP :
+ RID_DRAW_OUTLINETEXTOBJ_POPUP;
+ break;
+
case OBJ_CAPTION:
case OBJ_TITLETEXT:
- case OBJ_OUTLINETEXT:
case OBJ_TEXT:
nSdResId = bGraphicShell ? RID_GRAPHIC_TEXTOBJ_POPUP :
RID_DRAW_TEXTOBJ_POPUP;
diff --git a/sd/source/ui/view/drviewsj.cxx b/sd/source/ui/view/drviewsj.cxx
index ca69aeac0e59..382ac90b094b 100644
--- a/sd/source/ui/view/drviewsj.cxx
+++ b/sd/source/ui/view/drviewsj.cxx
@@ -208,9 +208,6 @@ void DrawViewShell::GetMenuStateSel( SfxItemSet &rSet )
rSet.DisableItem( SID_CHANGEPOLYGON );
}
- if(nInv == SdrInventor && (nId == OBJ_TITLETEXT || nId == OBJ_OUTLINETEXT))
- rSet.DisableItem( SID_TEXTATTR_DLG );
-
if(nInv == SdrInventor && nId == OBJ_TABLE )
{
rSet.DisableItem( SID_TEXTATTR_DLG );
@@ -303,6 +300,17 @@ void DrawViewShell::GetMenuStateSel( SfxItemSet &rSet )
else
rSet.DisableItem( SID_MODIFY_FIELD );
}
+ if( SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_OUTLINE_TEXT_AUTOFIT ) )
+ {
+ bool bSet = false;
+ const SdrMarkList& rMarkList = mpDrawView->GetMarkedObjectList();
+ if( rMarkList.GetMarkCount() == 1 )
+ {
+ SdrObject* pObj = rMarkList.GetMark(0)->GetMarkedSdrObj();
+ bSet = ((const SdrTextFitToSizeTypeItem*)pObj->GetMergedItemSet().GetItem(SDRATTR_TEXT_FITTOSIZE))->GetValue() != SDRTEXTFIT_NONE;
+ }
+ rSet.Put(SfxBoolItem(SID_OUTLINE_TEXT_AUTOFIT, bSet));
+ }
rSet.DisableItem( SID_GROUP );
rSet.DisableItem( SID_COMBINE );
@@ -352,7 +360,6 @@ void DrawViewShell::GetMenuStateSel( SfxItemSet &rSet )
BOOL bGraf = FALSE;
BOOL bDrawObj = FALSE;
BOOL b3dObj = FALSE;
- BOOL bTitOutText = FALSE;
bool bTable = false;
BOOL bMeasureObj = FALSE;
BOOL bEdgeObj = FALSE; // Connector
@@ -392,8 +399,6 @@ void DrawViewShell::GetMenuStateSel( SfxItemSet &rSet )
case OBJ_GRAF: bGraf = TRUE; break;
- case OBJ_TITLETEXT:
- case OBJ_OUTLINETEXT: bTitOutText = TRUE; break;
case OBJ_TABLE: bTable = true; break;
}
}
@@ -441,7 +446,7 @@ void DrawViewShell::GetMenuStateSel( SfxItemSet &rSet )
{
rSet.DisableItem( SID_UNGROUP );
}
- if( bTitOutText || bTable )
+ if( bTable )
rSet.DisableItem( SID_TEXTATTR_DLG );
if( !bMeasureObj )