diff options
author | Thorsten Behrens <tbehrens@novell.com> | 2010-09-17 10:11:29 +0200 |
---|---|---|
committer | Jan Holesovsky <kendy@suse.cz> | 2010-09-17 10:14:35 +0200 |
commit | aa9af08b389a106fcfb53842ac7669b208a27205 (patch) | |
tree | 2e4442f9247b6f3d8f43f9400a5f9ed77efc9d1f /sd | |
parent | b91ad8c6132e870ef6b7a88d024a4ff8e6a8cf29 (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
Notes:
split repo tag: impress_OOO_BUILD_3_2_99_0_PRE
Diffstat (limited to 'sd')
-rwxr-xr-x | sd/inc/app.hrc | 7 | ||||
-rwxr-xr-x | sd/sdi/_drvwsh.sdi | 17 | ||||
-rwxr-xr-x | sd/sdi/sdraw.sdi | 27 | ||||
-rwxr-xr-x | sd/source/core/stlpool.cxx | 2 | ||||
-rw-r--r-- | sd/source/ui/app/menuids_tmpl.src | 8 | ||||
-rw-r--r-- | sd/source/ui/app/popup2_tmpl.src | 43 | ||||
-rwxr-xr-x | sd/source/ui/inc/res_bmp.hrc | 3 | ||||
-rwxr-xr-x | sd/source/ui/view/drviews2.cxx | 25 | ||||
-rw-r--r-- | sd/source/ui/view/drviews4.cxx | 6 | ||||
-rw-r--r-- | sd/source/ui/view/drviewsj.cxx | 19 |
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 ) |