/* -*- 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 .
*/
SfxUndoManager& rUndoManager( getUndoManager() );
size_t nCount(( rUndoManager.*retrieveCount )( SfxUndoManager::TopLevel ));
Sequence<OUString> aSeq(nCount); auto aSeqRange = asNonConstRange(aSeq); for (size_t n = 0; n < nCount; ++n)
aSeqRange[n] = (rUndoManager.*retrieveComment)( n, SfxUndoManager::TopLevel );
aReturn.aValue <<= aSeq;
aReturn.bEnabled = true;
} break; case SID_OBJECT_RESIZING: case SID_OBJECT_SMALLESTWIDTH: case SID_OBJECT_SMALLESTHEIGHT: case SID_OBJECT_GREATESTWIDTH: case SID_OBJECT_GREATESTHEIGHT:
aReturn.bEnabled = isEditable() && getDesignView()->HasSelection(); if ( aReturn.bEnabled )
aReturn.bEnabled = m_nSelectionCount > 1; break;
case SID_DISTRIBUTE_HLEFT: case SID_DISTRIBUTE_HCENTER: case SID_DISTRIBUTE_HDISTANCE: case SID_DISTRIBUTE_HRIGHT: case SID_DISTRIBUTE_VTOP: case SID_DISTRIBUTE_VCENTER: case SID_DISTRIBUTE_VDISTANCE: case SID_DISTRIBUTE_VBOTTOM:
aReturn.bEnabled = isEditable() && getDesignView()->HasSelection(); if ( aReturn.bEnabled )
{
OSectionView* pSectionView = getCurrentSectionView();
aReturn.bEnabled = pSectionView && pSectionView->GetMarkedObjectList().GetMarkCount() > 2;
} break; case SID_ARRANGEMENU: case SID_FRAME_DOWN: case SID_FRAME_UP: case SID_FRAME_TO_TOP: case SID_FRAME_TO_BOTTOM: case SID_OBJECT_HEAVEN: case SID_OBJECT_HELL:
aReturn.bEnabled = isEditable() && getDesignView()->HasSelection(); if ( aReturn.bEnabled )
{
OSectionView* pSectionView = getCurrentSectionView();
aReturn.bEnabled = pSectionView && pSectionView->OnlyShapesMarked(); if ( aReturn.bEnabled )
{ if ( SID_OBJECT_HEAVEN == _nId )
aReturn.bEnabled = pSectionView->GetLayerIdOfMarkedObjects() != RPT_LAYER_FRONT; elseif ( SID_OBJECT_HELL == _nId )
aReturn.bEnabled = pSectionView->GetLayerIdOfMarkedObjects() != RPT_LAYER_BACK;
}
} break;
case SID_SECTION_SHRINK: case SID_SECTION_SHRINK_TOP: case SID_SECTION_SHRINK_BOTTOM:
{
sal_Int32 nCount = 0;
uno::Reference<report::XSection> xSection = getDesignView()->getCurrentSection(); if ( xSection.is() )
{
nCount = xSection->getCount();
}
aReturn.bEnabled = isEditable() && nCount > 0;
} break; case SID_OBJECT_ALIGN: case SID_OBJECT_ALIGN_LEFT: case SID_OBJECT_ALIGN_CENTER: case SID_OBJECT_ALIGN_RIGHT: case SID_OBJECT_ALIGN_UP: case SID_OBJECT_ALIGN_MIDDLE: case SID_OBJECT_ALIGN_DOWN: case SID_SECTION_ALIGN: case SID_SECTION_ALIGN_LEFT: case SID_SECTION_ALIGN_CENTER: case SID_SECTION_ALIGN_RIGHT: case SID_SECTION_ALIGN_UP: case SID_SECTION_ALIGN_MIDDLE: case SID_SECTION_ALIGN_DOWN:
aReturn.bEnabled = isEditable() && getDesignView()->HasSelection(); break; case SID_CUT:
aReturn.bEnabled = isEditable() && getDesignView()->HasSelection() && !getDesignView()->isHandleEvent(); break; case SID_COPY:
aReturn.bEnabled = getDesignView()->HasSelection() && !getDesignView()->isHandleEvent(); break; case SID_PASTE:
aReturn.bEnabled = isEditable() && !getDesignView()->isHandleEvent() && getDesignView()->IsPasteAllowed(); break; case SID_SELECTALL:
aReturn.bEnabled = !getDesignView()->isHandleEvent(); break; case SID_SELECTALL_IN_SECTION:
aReturn.bEnabled = !getDesignView()->isHandleEvent(); if ( aReturn.bEnabled )
aReturn.bEnabled = getCurrentSectionView() != nullptr; break; case SID_ESCAPE:
aReturn.bEnabled = getDesignView()->GetMode() == DlgEdMode::Insert; break; case SID_TERMINATE_INPLACEACTIVATION:
aReturn.bEnabled = true; break; case SID_SELECT_ALL_EDITS: case SID_SELECT_ALL_LABELS:
aReturn.bEnabled = true; break; case SID_RPT_NEW_FUNCTION:
aReturn.bEnabled = isEditable(); break; case SID_COLLAPSE_SECTION: case SID_EXPAND_SECTION: case SID_NEXT_MARK: case SID_PREV_MARK:
aReturn.bEnabled = isEditable() && !getDesignView()->isHandleEvent(); break; case SID_SELECT: case SID_SELECT_REPORT:
aReturn.bEnabled = true; break; case SID_EXECUTE_REPORT:
aReturn.bEnabled = isConnected() && m_xReportDefinition.is(); break; case SID_DELETE:
aReturn.bEnabled = isEditable() && getDesignView()->HasSelection() && !getDesignView()->isHandleEvent(); if ( aReturn.bEnabled )
{
OSectionWindow* pSectionWindow = getDesignView()->getMarkedSection(); if ( pSectionWindow )
aReturn.bEnabled = !pSectionWindow->getReportSection().isUiActive();
}
{
OUString sText = RptResId(RID_STR_DELETE);
aReturn.sTitle = sText;
} break; case SID_GRID_VISIBLE:
aReturn.bEnabled = isEditable();
aReturn.bChecked = m_bGridVisible; break; case SID_GRID_USE:
aReturn.bEnabled = isEditable();
aReturn.bChecked = m_bGridUse; break; case SID_HELPLINES_MOVE:
aReturn.bEnabled = isEditable();
aReturn.bChecked = m_bHelplinesMove; break; case SID_RULER:
aReturn.bEnabled = isEditable();
aReturn.bChecked = m_bShowRuler; break; case SID_OBJECT_SELECT:
aReturn.bEnabled = true;
aReturn.bChecked = getDesignView()->GetMode() == DlgEdMode::Select; break; case SID_INSERT_DIAGRAM:
aReturn.bEnabled = isEditable();
aReturn.bInvisible = !m_bChartEnabled;
aReturn.bChecked = getDesignView()->GetInsertObj() == SdrObjKind::OLE2; break; case SID_FM_FIXEDTEXT:
aReturn.bEnabled = isEditable();
aReturn.bChecked = getDesignView()->GetInsertObj() == SdrObjKind::ReportDesignFixedText; break; case SID_INSERT_HFIXEDLINE:
aReturn.bEnabled = isEditable();
aReturn.bChecked = getDesignView()->GetInsertObj() == SdrObjKind::ReportDesignHorizontalFixedLine; break; case SID_INSERT_VFIXEDLINE:
aReturn.bEnabled = isEditable();
aReturn.bChecked = getDesignView()->GetInsertObj() == SdrObjKind::ReportDesignVerticalFixedLine; break; case SID_FM_EDIT:
aReturn.bEnabled = isEditable();
aReturn.bChecked = getDesignView()->GetInsertObj() == SdrObjKind::ReportDesignFormattedField; break; case SID_FM_IMAGECONTROL:
aReturn.bEnabled = isEditable();
aReturn.bChecked = getDesignView()->GetInsertObj() == SdrObjKind::ReportDesignImageControl; break; case SID_DRAWTBX_CS_BASIC: case SID_DRAWTBX_CS_BASIC1: case SID_DRAWTBX_CS_BASIC2: case SID_DRAWTBX_CS_BASIC3: case SID_DRAWTBX_CS_BASIC4: case SID_DRAWTBX_CS_BASIC5: case SID_DRAWTBX_CS_BASIC6: case SID_DRAWTBX_CS_BASIC7: case SID_DRAWTBX_CS_BASIC8: case SID_DRAWTBX_CS_BASIC9: case SID_DRAWTBX_CS_BASIC10: case SID_DRAWTBX_CS_BASIC11: case SID_DRAWTBX_CS_BASIC12: case SID_DRAWTBX_CS_BASIC13: case SID_DRAWTBX_CS_BASIC14: case SID_DRAWTBX_CS_BASIC15: case SID_DRAWTBX_CS_BASIC16: case SID_DRAWTBX_CS_BASIC17: case SID_DRAWTBX_CS_BASIC18: case SID_DRAWTBX_CS_BASIC19: case SID_DRAWTBX_CS_BASIC20: case SID_DRAWTBX_CS_BASIC21: case SID_DRAWTBX_CS_BASIC22:
impl_fillCustomShapeState_nothrow("diamond",aReturn); break; case SID_DRAWTBX_CS_SYMBOL: case SID_DRAWTBX_CS_SYMBOL1: case SID_DRAWTBX_CS_SYMBOL2: case SID_DRAWTBX_CS_SYMBOL3: case SID_DRAWTBX_CS_SYMBOL4: case SID_DRAWTBX_CS_SYMBOL5: case SID_DRAWTBX_CS_SYMBOL6: case SID_DRAWTBX_CS_SYMBOL7: case SID_DRAWTBX_CS_SYMBOL8: case SID_DRAWTBX_CS_SYMBOL9: case SID_DRAWTBX_CS_SYMBOL10: case SID_DRAWTBX_CS_SYMBOL11: case SID_DRAWTBX_CS_SYMBOL12: case SID_DRAWTBX_CS_SYMBOL13: case SID_DRAWTBX_CS_SYMBOL14: case SID_DRAWTBX_CS_SYMBOL15: case SID_DRAWTBX_CS_SYMBOL16: case SID_DRAWTBX_CS_SYMBOL17: case SID_DRAWTBX_CS_SYMBOL18:
impl_fillCustomShapeState_nothrow("smiley",aReturn); break; case SID_DRAWTBX_CS_ARROW: case SID_DRAWTBX_CS_ARROW1: case SID_DRAWTBX_CS_ARROW2: case SID_DRAWTBX_CS_ARROW3: case SID_DRAWTBX_CS_ARROW4: case SID_DRAWTBX_CS_ARROW5: case SID_DRAWTBX_CS_ARROW6: case SID_DRAWTBX_CS_ARROW7: case SID_DRAWTBX_CS_ARROW8: case SID_DRAWTBX_CS_ARROW9: case SID_DRAWTBX_CS_ARROW10: case SID_DRAWTBX_CS_ARROW11: case SID_DRAWTBX_CS_ARROW12: case SID_DRAWTBX_CS_ARROW13: case SID_DRAWTBX_CS_ARROW14: case SID_DRAWTBX_CS_ARROW15: case SID_DRAWTBX_CS_ARROW16: case SID_DRAWTBX_CS_ARROW17: case SID_DRAWTBX_CS_ARROW18: case SID_DRAWTBX_CS_ARROW19: case SID_DRAWTBX_CS_ARROW20: case SID_DRAWTBX_CS_ARROW21: case SID_DRAWTBX_CS_ARROW22: case SID_DRAWTBX_CS_ARROW23: case SID_DRAWTBX_CS_ARROW24: case SID_DRAWTBX_CS_ARROW25: case SID_DRAWTBX_CS_ARROW26:
impl_fillCustomShapeState_nothrow("left-right-arrow",aReturn); break; case SID_DRAWTBX_CS_STAR: case SID_DRAWTBX_CS_STAR1: case SID_DRAWTBX_CS_STAR2: case SID_DRAWTBX_CS_STAR3: case SID_DRAWTBX_CS_STAR4: case SID_DRAWTBX_CS_STAR5: case SID_DRAWTBX_CS_STAR6: case SID_DRAWTBX_CS_STAR7: case SID_DRAWTBX_CS_STAR8: case SID_DRAWTBX_CS_STAR9: case SID_DRAWTBX_CS_STAR10: case SID_DRAWTBX_CS_STAR11: case SID_DRAWTBX_CS_STAR12:
impl_fillCustomShapeState_nothrow("star5",aReturn); break; case SID_DRAWTBX_CS_FLOWCHART: case SID_DRAWTBX_CS_FLOWCHART1: case SID_DRAWTBX_CS_FLOWCHART2: case SID_DRAWTBX_CS_FLOWCHART3: case SID_DRAWTBX_CS_FLOWCHART4: case SID_DRAWTBX_CS_FLOWCHART5: case SID_DRAWTBX_CS_FLOWCHART6: case SID_DRAWTBX_CS_FLOWCHART7: case SID_DRAWTBX_CS_FLOWCHART8: case SID_DRAWTBX_CS_FLOWCHART9: case SID_DRAWTBX_CS_FLOWCHART10: case SID_DRAWTBX_CS_FLOWCHART11: case SID_DRAWTBX_CS_FLOWCHART12: case SID_DRAWTBX_CS_FLOWCHART13: case SID_DRAWTBX_CS_FLOWCHART14: case SID_DRAWTBX_CS_FLOWCHART15: case SID_DRAWTBX_CS_FLOWCHART16: case SID_DRAWTBX_CS_FLOWCHART17: case SID_DRAWTBX_CS_FLOWCHART18: case SID_DRAWTBX_CS_FLOWCHART19: case SID_DRAWTBX_CS_FLOWCHART20: case SID_DRAWTBX_CS_FLOWCHART21: case SID_DRAWTBX_CS_FLOWCHART22: case SID_DRAWTBX_CS_FLOWCHART23: case SID_DRAWTBX_CS_FLOWCHART24: case SID_DRAWTBX_CS_FLOWCHART25: case SID_DRAWTBX_CS_FLOWCHART26: case SID_DRAWTBX_CS_FLOWCHART27: case SID_DRAWTBX_CS_FLOWCHART28:
impl_fillCustomShapeState_nothrow("flowchart-internal-storage",aReturn); break; case SID_DRAWTBX_CS_CALLOUT: case SID_DRAWTBX_CS_CALLOUT1: case SID_DRAWTBX_CS_CALLOUT2: case SID_DRAWTBX_CS_CALLOUT3: case SID_DRAWTBX_CS_CALLOUT4: case SID_DRAWTBX_CS_CALLOUT5: case SID_DRAWTBX_CS_CALLOUT6: case SID_DRAWTBX_CS_CALLOUT7:
impl_fillCustomShapeState_nothrow("round-rectangular-callout",aReturn); break; case SID_RPT_SHOWREPORTEXPLORER:
aReturn.bEnabled = m_xReportDefinition.is();
aReturn.bChecked = getDesignView() && getDesignView()->isReportExplorerVisible(); break; case SID_FM_ADD_FIELD:
aReturn.bEnabled = isConnected() && isEditable() && m_xReportDefinition.is()
&& !m_xReportDefinition->getCommand().isEmpty();
aReturn.bChecked = getDesignView() && getDesignView()->isAddFieldVisible(); break; case SID_SHOW_PROPERTYBROWSER:
aReturn.bEnabled = true;
aReturn.bChecked = m_bShowProperties; break; case SID_PROPERTYBROWSER_LAST_PAGE:
aReturn.bEnabled = true;
aReturn.aValue <<= m_sLastActivePage; break; case SID_SPLIT_POSITION:
aReturn.bEnabled = true;
aReturn.aValue <<= getSplitPos(); break; case SID_SAVEDOC: case SID_SAVEASDOC: case SID_SAVEACOPY:
aReturn.bEnabled = isConnected() && isEditable(); break; case SID_EDITDOC:
aReturn.bChecked = isEditable(); break; case SID_PAGEDIALOG:
aReturn.bEnabled = isEditable(); break; case SID_BACKGROUND_COLOR:
impl_fillState_nothrow(PROPERTY_CONTROLBACKGROUND,aReturn); break; case SID_ATTR_CHAR_COLOR_BACKGROUND:
aReturn.bEnabled = isEditable();
{
uno::Reference<report::XSection> xSection = getDesignView()->getCurrentSection(); if ( xSection.is() ) try
{
aReturn.aValue <<= xSection->getBackColor(); const uno::Reference< report::XReportControlModel> xControlModel(getDesignView()->getCurrentControlModel(),uno::UNO_QUERY);
aReturn.bEnabled = !xControlModel.is();
} catch(const beans::UnknownPropertyException&)
{
} else
aReturn.bEnabled = false;
} break; case SID_SORTINGANDGROUPING:
aReturn.bEnabled = true;
aReturn.bChecked = m_xGroupsFloater && m_xGroupsFloater->getDialog()->get_visible(); break; case SID_ATTR_CHAR_WEIGHT: case SID_ATTR_CHAR_POSTURE: case SID_ATTR_CHAR_UNDERLINE:
impl_fillState_nothrow(PROPERTY_FONTDESCRIPTOR,aReturn); if ( aReturn.bEnabled )
{
awt::FontDescriptor aFontDescriptor;
aReturn.aValue >>= aFontDescriptor;
aReturn.aValue.clear();
switch(_nId)
{ case SID_ATTR_CHAR_WEIGHT:
aReturn.bChecked = awt::FontWeight::BOLD == aFontDescriptor.Weight; break; case SID_ATTR_CHAR_POSTURE:
aReturn.bChecked = awt::FontSlant_ITALIC == aFontDescriptor.Slant; break; case SID_ATTR_CHAR_UNDERLINE:
aReturn.bChecked = awt::FontUnderline::SINGLE == aFontDescriptor.Underline; break; default:
;
}
} break; case SID_ATTR_CHAR_COLOR: case SID_ATTR_CHAR_COLOR2:
impl_fillState_nothrow(PROPERTY_CHARCOLOR,aReturn); break; case SID_ATTR_CHAR_FONT:
impl_fillState_nothrow(PROPERTY_FONTDESCRIPTOR,aReturn); break; case SID_ATTR_CHAR_FONTHEIGHT:
impl_fillState_nothrow(PROPERTY_CHARHEIGHT,aReturn); if ( aReturn.aValue.hasValue() )
{
frame::status::FontHeight aFontHeight;
aReturn.aValue >>= aFontHeight.Height;
aReturn.aValue <<= aFontHeight; // another type is needed here, so
} break; case SID_ATTR_PARA_ADJUST_LEFT: case SID_ATTR_PARA_ADJUST_CENTER: case SID_ATTR_PARA_ADJUST_RIGHT: case SID_ATTR_PARA_ADJUST_BLOCK:
impl_fillState_nothrow(PROPERTY_PARAADJUST,aReturn); if ( aReturn.bEnabled )
{
::sal_Int16 nParaAdjust = 0; if ( aReturn.aValue >>= nParaAdjust )
{ switch(static_cast<style::ParagraphAdjust>(nParaAdjust))
{ case style::ParagraphAdjust_LEFT:
aReturn.bChecked = _nId == SID_ATTR_PARA_ADJUST_LEFT; break; case style::ParagraphAdjust_RIGHT:
aReturn.bChecked = _nId == SID_ATTR_PARA_ADJUST_RIGHT; break; case style::ParagraphAdjust_BLOCK: case style::ParagraphAdjust_STRETCH:
aReturn.bChecked = _nId == SID_ATTR_PARA_ADJUST_BLOCK; break; case style::ParagraphAdjust_CENTER:
aReturn.bChecked = _nId == SID_ATTR_PARA_ADJUST_CENTER; break; default: break;
}
}
aReturn.aValue.clear();
} break;
bool bForceBroadcast = false; switch(_nId)
{ case SID_RPT_TEXTDOCUMENT: if ( m_xReportDefinition.is() )
m_xReportDefinition->setMimeType( MIMETYPE_OASIS_OPENDOCUMENT_TEXT_ASCII ); break; case SID_RPT_SPREADSHEET: if (m_xReportDefinition.is() )
m_xReportDefinition->setMimeType( MIMETYPE_OASIS_OPENDOCUMENT_SPREADSHEET_ASCII ); break; case SID_REPORTHEADER_WITHOUT_UNDO: case SID_REPORTFOOTER_WITHOUT_UNDO: case SID_REPORTHEADERFOOTER:
switchReportSection(_nId); break; case SID_PAGEHEADER_WITHOUT_UNDO: case SID_PAGEFOOTER_WITHOUT_UNDO: case SID_PAGEHEADERFOOTER:
switchPageSection(_nId); break; case SID_GROUP_APPEND: case SID_GROUP_REMOVE:
modifyGroup(_nId == SID_GROUP_APPEND,aArgs); break; case SID_GROUPHEADER_WITHOUT_UNDO: case SID_GROUPHEADER:
createGroupSection(SID_GROUPHEADER == _nId,true,aArgs); break; case SID_GROUPFOOTER_WITHOUT_UNDO: case SID_GROUPFOOTER:
createGroupSection(SID_GROUPFOOTER == _nId,false,aArgs); break; case SID_ADD_CONTROL_PAIR:
addPairControls(aArgs); break; case SID_REDO: case SID_UNDO:
{ const OXUndoEnvironment::OUndoMode aLock( m_aReportModel->GetUndoEnv() ); bool ( SfxUndoManager::*doXDo )() =
( _nId == SID_UNDO ) ? &SfxUndoManager::Undo : &SfxUndoManager::Redo;
SfxUndoManager& rUndoManager( getUndoManager() );
sal_Int16 nCount(1); if (aArgs.hasElements() && aArgs[0].Name != "KeyModifier")
aArgs[0].Value >>= nCount; while (nCount--)
(rUndoManager.*doXDo)();
InvalidateAll(); if (m_xGroupsFloater && m_xGroupsFloater->getDialog()->get_visible())
m_xGroupsFloater->UpdateData();
} break; case SID_CUT:
executeMethodWithUndo(RID_STR_UNDO_REMOVE_SELECTION,::std::mem_fn(&ODesignView::Cut)); break; case SID_COPY:
getDesignView()->Copy(); break; case SID_PASTE:
executeMethodWithUndo(RID_STR_UNDO_PASTE,::std::mem_fn(&ODesignView::Paste)); break;
case SID_FRAME_TO_TOP: case SID_FRAME_DOWN: case SID_FRAME_UP: case SID_FRAME_TO_BOTTOM: case SID_OBJECT_HEAVEN: case SID_OBJECT_HELL:
changeZOrder(_nId); break; case SID_DISTRIBUTE_HLEFT: case SID_DISTRIBUTE_HCENTER: case SID_DISTRIBUTE_HDISTANCE: case SID_DISTRIBUTE_HRIGHT: case SID_DISTRIBUTE_VTOP: case SID_DISTRIBUTE_VCENTER: case SID_DISTRIBUTE_VDISTANCE: case SID_DISTRIBUTE_VBOTTOM:
{
OSectionView* pSectionView = getCurrentSectionView(); if ( pSectionView )
pSectionView->DistributeMarkedObjects(_nId);
} break; case SID_OBJECT_SMALLESTWIDTH:
alignControlsWithUndo(RID_STR_UNDO_ALIGNMENT,ControlModification::WIDTH_SMALLEST); break; case SID_OBJECT_SMALLESTHEIGHT:
alignControlsWithUndo(RID_STR_UNDO_ALIGNMENT,ControlModification::HEIGHT_SMALLEST); break; case SID_OBJECT_GREATESTWIDTH:
alignControlsWithUndo(RID_STR_UNDO_ALIGNMENT,ControlModification::WIDTH_GREATEST); break; case SID_OBJECT_GREATESTHEIGHT:
alignControlsWithUndo(RID_STR_UNDO_ALIGNMENT,ControlModification::HEIGHT_GREATEST); break; case SID_SECTION_ALIGN_LEFT: case SID_OBJECT_ALIGN_LEFT:
alignControlsWithUndo(RID_STR_UNDO_ALIGNMENT,ControlModification::LEFT,SID_SECTION_ALIGN_LEFT == _nId); break; case SID_SECTION_ALIGN_CENTER: case SID_OBJECT_ALIGN_CENTER:
alignControlsWithUndo(RID_STR_UNDO_ALIGNMENT,ControlModification::CENTER_HORIZONTAL,SID_SECTION_ALIGN_CENTER == _nId); break; case SID_SECTION_ALIGN_RIGHT: case SID_OBJECT_ALIGN_RIGHT:
alignControlsWithUndo(RID_STR_UNDO_ALIGNMENT,ControlModification::RIGHT,SID_SECTION_ALIGN_RIGHT == _nId); break; case SID_SECTION_ALIGN_UP: case SID_OBJECT_ALIGN_UP:
alignControlsWithUndo(RID_STR_UNDO_ALIGNMENT,ControlModification::TOP,SID_SECTION_ALIGN_UP == _nId); break; case SID_SECTION_ALIGN_MIDDLE: case SID_OBJECT_ALIGN_MIDDLE:
alignControlsWithUndo(RID_STR_UNDO_ALIGNMENT,ControlModification::CENTER_VERTICAL,SID_SECTION_ALIGN_MIDDLE == _nId); break; case SID_SECTION_ALIGN_DOWN: case SID_OBJECT_ALIGN_DOWN:
alignControlsWithUndo(RID_STR_UNDO_ALIGNMENT,ControlModification::BOTTOM,SID_SECTION_ALIGN_DOWN == _nId); break;
case SID_SECTION_SHRINK_BOTTOM: case SID_SECTION_SHRINK_TOP: case SID_SECTION_SHRINK:
{
uno::Reference<report::XSection> xSection = getDesignView()->getCurrentSection();
shrinkSection(RID_STR_UNDO_SHRINK, xSection, _nId);
} break;
case SID_SELECTALL:
getDesignView()->SelectAll(SdrObjKind::NONE); break; case SID_SELECTALL_IN_SECTION:
{
OSectionView* pSectionView = getCurrentSectionView(); if ( pSectionView )
pSectionView->MarkAll();
} break; case SID_ESCAPE:
getDesignView()->SetMode(DlgEdMode::Select);
InvalidateFeature( SID_OBJECT_SELECT ); break; case SID_SELECT_ALL_EDITS:
getDesignView()->SelectAll(SdrObjKind::ReportDesignFormattedField); break; case SID_SELECT_ALL_LABELS:
getDesignView()->SelectAll(SdrObjKind::ReportDesignFixedText); break; case SID_TERMINATE_INPLACEACTIVATION:
{
OSectionWindow* pSection = getDesignView()->getMarkedSection(); if ( pSection )
pSection->getReportSection().deactivateOle();
} break; case SID_SELECT: if ( aArgs.getLength() == 1 )
select(aArgs[0].Value); break; case SID_SELECT_REPORT:
select(uno::Any(m_xReportDefinition)); break; case SID_EXECUTE_REPORT:
getView()->PostUserEvent(LINK(this, OReportController,OnExecuteReport)); break; case SID_RPT_NEW_FUNCTION:
createNewFunction(aArgs[0].Value); break; case SID_COLLAPSE_SECTION:
collapseSection(true); break; case SID_EXPAND_SECTION:
collapseSection(false); break; case SID_NEXT_MARK:
markSection(true); break; case SID_PREV_MARK:
markSection(false); break; case SID_DELETE: if ( aArgs.getLength() == 1 )
{
uno::Reference< report::XFunction> xFunction;
aArgs[0].Value >>= xFunction; if ( xFunction.is() )
{
uno::Reference< report::XFunctions> xFunctions(xFunction->getParent(),uno::UNO_QUERY_THROW);
sal_Int32 nIndex = getPositionInIndexAccess(xFunctions, xFunction); const OUString sUndoAction = RptResId(RID_STR_UNDO_REMOVE_FUNCTION);
UndoContext aUndoContext( getUndoManager(), sUndoAction );
xFunctions->removeByIndex(nIndex);
select(uno::Any(xFunctions->getParent()));
InvalidateFeature( SID_UNDO );
}
} else
executeMethodWithUndo(RID_STR_UNDO_REMOVE_SELECTION,::std::mem_fn(&ODesignView::Delete)); break; case SID_GRID_USE:
m_bGridUse = !m_bGridUse;
getDesignView()->setGridSnap(m_bGridUse); break; case SID_HELPLINES_MOVE:
m_bHelplinesMove = !m_bHelplinesMove;
getDesignView()->setDragStripes(m_bHelplinesMove); break; case SID_GRID_VISIBLE:
m_bGridVisible = !m_bGridVisible;
getDesignView()->toggleGrid(m_bGridVisible); break; case SID_RULER:
m_bShowRuler = !m_bShowRuler;
getDesignView()->showRuler(m_bShowRuler); break; case SID_OBJECT_SELECT:
getDesignView()->SetMode(DlgEdMode::Select);
InvalidateAll(); break; case SID_INSERT_DIAGRAM:
getDesignView()->SetMode( DlgEdMode::Insert );
getDesignView()->SetInsertObj( SdrObjKind::OLE2);
createDefaultControl(aArgs);
InvalidateAll(); break; case SID_FM_FIXEDTEXT:
getDesignView()->SetMode( DlgEdMode::Insert );
getDesignView()->SetInsertObj( SdrObjKind::ReportDesignFixedText );
createDefaultControl(aArgs);
InvalidateAll(); break; case SID_INSERT_HFIXEDLINE:
getDesignView()->SetMode( DlgEdMode::Insert );
getDesignView()->SetInsertObj( SdrObjKind::ReportDesignHorizontalFixedLine );
createDefaultControl(aArgs);
InvalidateAll(); break; case SID_INSERT_VFIXEDLINE:
getDesignView()->SetMode( DlgEdMode::Insert );
getDesignView()->SetInsertObj( SdrObjKind::ReportDesignVerticalFixedLine );
createDefaultControl(aArgs);
InvalidateAll(); break; case SID_FM_EDIT:
getDesignView()->SetMode( DlgEdMode::Insert );
getDesignView()->SetInsertObj( SdrObjKind::ReportDesignFormattedField );
createDefaultControl(aArgs);
InvalidateAll(); break; case SID_FM_IMAGECONTROL:
getDesignView()->SetMode( DlgEdMode::Insert );
getDesignView()->SetInsertObj( SdrObjKind::ReportDesignImageControl );
createDefaultControl(aArgs);
InvalidateAll(); break; case SID_DRAWTBX_CS_BASIC: case SID_DRAWTBX_CS_BASIC1: case SID_DRAWTBX_CS_BASIC2: case SID_DRAWTBX_CS_BASIC3: case SID_DRAWTBX_CS_BASIC4: case SID_DRAWTBX_CS_BASIC5: case SID_DRAWTBX_CS_BASIC6: case SID_DRAWTBX_CS_BASIC7: case SID_DRAWTBX_CS_BASIC8: case SID_DRAWTBX_CS_BASIC9: case SID_DRAWTBX_CS_BASIC10: case SID_DRAWTBX_CS_BASIC11: case SID_DRAWTBX_CS_BASIC12: case SID_DRAWTBX_CS_BASIC13: case SID_DRAWTBX_CS_BASIC14: case SID_DRAWTBX_CS_BASIC15: case SID_DRAWTBX_CS_BASIC16: case SID_DRAWTBX_CS_BASIC17: case SID_DRAWTBX_CS_BASIC18: case SID_DRAWTBX_CS_BASIC19: case SID_DRAWTBX_CS_BASIC20: case SID_DRAWTBX_CS_BASIC21: case SID_DRAWTBX_CS_BASIC22: case SID_DRAWTBX_CS_SYMBOL1: case SID_DRAWTBX_CS_SYMBOL2: case SID_DRAWTBX_CS_SYMBOL3: case SID_DRAWTBX_CS_SYMBOL4: case SID_DRAWTBX_CS_SYMBOL5: case SID_DRAWTBX_CS_SYMBOL6: case SID_DRAWTBX_CS_SYMBOL7: case SID_DRAWTBX_CS_SYMBOL8: case SID_DRAWTBX_CS_SYMBOL9: case SID_DRAWTBX_CS_SYMBOL10: case SID_DRAWTBX_CS_SYMBOL11: case SID_DRAWTBX_CS_SYMBOL12: case SID_DRAWTBX_CS_SYMBOL13: case SID_DRAWTBX_CS_SYMBOL14: case SID_DRAWTBX_CS_SYMBOL15: case SID_DRAWTBX_CS_SYMBOL16: case SID_DRAWTBX_CS_SYMBOL17: case SID_DRAWTBX_CS_SYMBOL18: case SID_DRAWTBX_CS_ARROW1: case SID_DRAWTBX_CS_ARROW2: case SID_DRAWTBX_CS_ARROW3: case SID_DRAWTBX_CS_ARROW4: case SID_DRAWTBX_CS_ARROW5: case SID_DRAWTBX_CS_ARROW6: case SID_DRAWTBX_CS_ARROW7: case SID_DRAWTBX_CS_ARROW8: case SID_DRAWTBX_CS_ARROW9: case SID_DRAWTBX_CS_ARROW10: case SID_DRAWTBX_CS_ARROW11: case SID_DRAWTBX_CS_ARROW12: case SID_DRAWTBX_CS_ARROW13: case SID_DRAWTBX_CS_ARROW14: case SID_DRAWTBX_CS_ARROW15: case SID_DRAWTBX_CS_ARROW16: case SID_DRAWTBX_CS_ARROW17: case SID_DRAWTBX_CS_ARROW18: case SID_DRAWTBX_CS_ARROW19: case SID_DRAWTBX_CS_ARROW20: case SID_DRAWTBX_CS_ARROW21: case SID_DRAWTBX_CS_ARROW22: case SID_DRAWTBX_CS_ARROW23: case SID_DRAWTBX_CS_ARROW24: case SID_DRAWTBX_CS_ARROW25: case SID_DRAWTBX_CS_ARROW26: case SID_DRAWTBX_CS_STAR1: case SID_DRAWTBX_CS_STAR2: case SID_DRAWTBX_CS_STAR3: case SID_DRAWTBX_CS_STAR4: case SID_DRAWTBX_CS_STAR5: case SID_DRAWTBX_CS_STAR6: case SID_DRAWTBX_CS_STAR7: case SID_DRAWTBX_CS_STAR8: case SID_DRAWTBX_CS_STAR9: case SID_DRAWTBX_CS_STAR10: case SID_DRAWTBX_CS_STAR11: case SID_DRAWTBX_CS_STAR12: case SID_DRAWTBX_CS_FLOWCHART1: case SID_DRAWTBX_CS_FLOWCHART2: case SID_DRAWTBX_CS_FLOWCHART3: case SID_DRAWTBX_CS_FLOWCHART4: case SID_DRAWTBX_CS_FLOWCHART5: case SID_DRAWTBX_CS_FLOWCHART6: case SID_DRAWTBX_CS_FLOWCHART7: case SID_DRAWTBX_CS_FLOWCHART8: case SID_DRAWTBX_CS_FLOWCHART9: case SID_DRAWTBX_CS_FLOWCHART10: case SID_DRAWTBX_CS_FLOWCHART11: case SID_DRAWTBX_CS_FLOWCHART12: case SID_DRAWTBX_CS_FLOWCHART13: case SID_DRAWTBX_CS_FLOWCHART14: case SID_DRAWTBX_CS_FLOWCHART15: case SID_DRAWTBX_CS_FLOWCHART16: case SID_DRAWTBX_CS_FLOWCHART17: case SID_DRAWTBX_CS_FLOWCHART18: case SID_DRAWTBX_CS_FLOWCHART19: case SID_DRAWTBX_CS_FLOWCHART20: case SID_DRAWTBX_CS_FLOWCHART21: case SID_DRAWTBX_CS_FLOWCHART22: case SID_DRAWTBX_CS_FLOWCHART23: case SID_DRAWTBX_CS_FLOWCHART24: case SID_DRAWTBX_CS_FLOWCHART25: case SID_DRAWTBX_CS_FLOWCHART26: case SID_DRAWTBX_CS_FLOWCHART27: case SID_DRAWTBX_CS_FLOWCHART28: case SID_DRAWTBX_CS_CALLOUT1: case SID_DRAWTBX_CS_CALLOUT2: case SID_DRAWTBX_CS_CALLOUT3: case SID_DRAWTBX_CS_CALLOUT4: case SID_DRAWTBX_CS_CALLOUT5: case SID_DRAWTBX_CS_CALLOUT6: case SID_DRAWTBX_CS_CALLOUT7: case SID_DRAWTBX_CS_SYMBOL: case SID_DRAWTBX_CS_ARROW: case SID_DRAWTBX_CS_FLOWCHART: case SID_DRAWTBX_CS_CALLOUT: case SID_DRAWTBX_CS_STAR:
getDesignView()->SetMode( DlgEdMode::Insert );
{
URL aUrl = getURLForId(_nId);
sal_Int32 nIndex = 1;
std::u16string_view sType = o3tl::getToken(aUrl.Complete, 0,'.',nIndex); if ( nIndex == -1 || sType.empty() )
{ switch(_nId)
{ case SID_DRAWTBX_CS_SYMBOL:
sType = u"smiley"; break; case SID_DRAWTBX_CS_ARROW:
sType = u"left-right-arrow"; break; case SID_DRAWTBX_CS_FLOWCHART:
sType = u"flowchart-internal-storage"; break; case SID_DRAWTBX_CS_CALLOUT:
sType = u"round-rectangular-callout"; break; case SID_DRAWTBX_CS_STAR:
sType = u"star5"; break; default:
sType = u"diamond";
}
} else
sType = o3tl::getToken(aUrl.Complete, 0,'.',nIndex);
getDesignView()->SetInsertObj( SdrObjKind::CustomShape, OUString(sType));
createDefaultControl(aArgs);
}
InvalidateAll(); break; case SID_RPT_SHOWREPORTEXPLORER: if ( isUiVisible() )
getDesignView()->toggleReportExplorer(); break; case SID_FM_ADD_FIELD: if ( isUiVisible() )
getDesignView()->toggleAddField(); break; case SID_SHOW_PROPERTYBROWSER: if ( m_bShowProperties )
m_sLastActivePage = getDesignView()->getCurrentPage(); else
getDesignView()->setCurrentPage(m_sLastActivePage);
if ( isUiVisible() )
{
m_bShowProperties = !m_bShowProperties; if ( aArgs.getLength() == 1 )
aArgs[0].Value >>= m_bShowProperties;
getDesignView()->togglePropertyBrowser(m_bShowProperties);
} break; case SID_PROPERTYBROWSER_LAST_PAGE: // nothing to do
m_sLastActivePage = getDesignView()->getCurrentPage(); break; case SID_SPLIT_POSITION:
getDesignView()->Resize(); break; case SID_PAGEDIALOG: case SID_ATTR_CHAR_COLOR_BACKGROUND:
{
uno::Reference<report::XSection> xSection; if (aArgs.getLength() == 1 )
aArgs[0].Value >>= xSection; elseif (_nId == SID_ATTR_CHAR_COLOR_BACKGROUND)
xSection.set(getDesignView()->getMarkedSection()->getReportSection().getSection());
openPageDialog(xSection);
bForceBroadcast = true;
} break; case SID_SORTINGANDGROUPING:
openSortingAndGroupingDialog(); break; case SID_BACKGROUND_COLOR:
{ const util::Color aColor( lcl_extractBackgroundColor( aArgs ) ); if ( !impl_setPropertyAtControls_throw(RID_STR_UNDO_CHANGEFONT,PROPERTY_CONTROLBACKGROUND,uno::Any(aColor),aArgs) )
{
uno::Reference< report::XSection > xSection = getDesignView()->getCurrentSection(); if ( xSection.is() )
{
xSection->setBackColor( aColor );
}
}
bForceBroadcast = true;
} break; case SID_ATTR_CHAR_WEIGHT: case SID_ATTR_CHAR_POSTURE: case SID_ATTR_CHAR_UNDERLINE:
{
uno::Reference< awt::XWindow> xWindow;
::std::vector< uno::Reference< uno::XInterface > > aControlsFormats;
lcl_getReportControlFormat( aArgs, getDesignView(), xWindow, aControlsFormats );
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.