summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--basctl/sdi/baside.sdi119
-rw-r--r--basctl/source/basicide/baside3.cxx364
-rw-r--r--basctl/source/basicide/basides1.cxx25
-rw-r--r--basctl/source/basicide/basidesh.cxx46
-rw-r--r--basctl/source/basicide/idetemp.hxx57
-rw-r--r--basctl/source/inc/baside3.hxx1
-rw-r--r--basctl/source/inc/basidesh.hxx2
-rw-r--r--include/editeng/svxenum.hxx10
-rw-r--r--sc/sdi/drawsh.sdi11
-rw-r--r--sc/source/ui/app/typemap.cxx1
-rw-r--r--sc/source/ui/drawfunc/drawsh5.cxx7
-rw-r--r--sd/sdi/_drvwsh.sdi5
-rw-r--r--svx/sdi/fmslots.sdi10
-rw-r--r--svx/sdi/svx.sdi18
-rw-r--r--svx/sdi/svxitems.sdi42
-rw-r--r--svx/source/form/fmshell.cxx6
-rw-r--r--sw/sdi/drwbassh.sdi37
-rw-r--r--sw/sdi/wdrwbase.sdi37
-rw-r--r--sw/source/uibase/shells/drwbassh.cxx16
-rw-r--r--sw/source/uibase/shells/slotadd.cxx1
-rw-r--r--sw/source/uibase/uiview/view2.cxx9
-rw-r--r--sw/source/uibase/uiview/viewstat.cxx21
22 files changed, 419 insertions, 426 deletions
diff --git a/basctl/sdi/baside.sdi b/basctl/sdi/baside.sdi
index e61f737e0e14..f4993919e5ae 100644
--- a/basctl/sdi/baside.sdi
+++ b/basctl/sdi/baside.sdi
@@ -409,6 +409,125 @@ shell basctl_Shell
SID_CHOOSE_CONTROLS
[
+ StateMethod = GetState;
+ ]
+ SID_INSERT_PUSHBUTTON
+ [
+ ExecMethod = ExecuteDialog;
+ StateMethod = GetState;
+ ]
+ SID_INSERT_CHECKBOX
+ [
+ ExecMethod = ExecuteDialog;
+ StateMethod = GetState;
+ ]
+ SID_INSERT_RADIOBUTTON
+ [
+ ExecMethod = ExecuteDialog;
+ StateMethod = GetState;
+ ]
+ SID_INSERT_SPINBUTTON
+ [
+ ExecMethod = ExecuteDialog;
+ StateMethod = GetState;
+ ]
+ SID_INSERT_FIXEDTEXT
+ [
+ ExecMethod = ExecuteDialog;
+ StateMethod = GetState;
+ ]
+ SID_INSERT_GROUPBOX
+ [
+ ExecMethod = ExecuteDialog;
+ StateMethod = GetState;
+ ]
+ SID_INSERT_LISTBOX
+ [
+ ExecMethod = ExecuteDialog;
+ StateMethod = GetState;
+ ]
+ SID_INSERT_COMBOBOX
+ [
+ ExecMethod = ExecuteDialog;
+ StateMethod = GetState;
+ ]
+ SID_INSERT_EDIT
+ [
+ ExecMethod = ExecuteDialog;
+ StateMethod = GetState;
+ ]
+ SID_INSERT_HSCROLLBAR
+ [
+ ExecMethod = ExecuteDialog;
+ StateMethod = GetState;
+ ]
+ SID_INSERT_VSCROLLBAR
+ [
+ ExecMethod = ExecuteDialog;
+ StateMethod = GetState;
+ ]
+ SID_INSERT_SELECT
+ [
+ ExecMethod = ExecuteDialog;
+ StateMethod = GetState;
+ ]
+ SID_INSERT_IMAGECONTROL
+ [
+ ExecMethod = ExecuteDialog;
+ StateMethod = GetState;
+ ]
+ SID_INSERT_PROGRESSBAR
+ [
+ ExecMethod = ExecuteDialog;
+ StateMethod = GetState;
+ ]
+ SID_INSERT_HFIXEDLINE
+ [
+ ExecMethod = ExecuteDialog;
+ StateMethod = GetState;
+ ]
+ SID_INSERT_VFIXEDLINE
+ [
+ ExecMethod = ExecuteDialog;
+ StateMethod = GetState;
+ ]
+ SID_INSERT_DATEFIELD
+ [
+ ExecMethod = ExecuteDialog;
+ StateMethod = GetState;
+ ]
+ SID_INSERT_TIMEFIELD
+ [
+ ExecMethod = ExecuteDialog;
+ StateMethod = GetState;
+ ]
+ SID_INSERT_NUMERICFIELD
+ [
+ ExecMethod = ExecuteDialog;
+ StateMethod = GetState;
+ ]
+ SID_INSERT_CURRENCYFIELD
+ [
+ ExecMethod = ExecuteDialog;
+ StateMethod = GetState;
+ ]
+ SID_INSERT_FORMATTEDFIELD
+ [
+ ExecMethod = ExecuteDialog;
+ StateMethod = GetState;
+ ]
+ SID_INSERT_PATTERNFIELD
+ [
+ ExecMethod = ExecuteDialog;
+ StateMethod = GetState;
+ ]
+ SID_INSERT_FILECONTROL
+ [
+ ExecMethod = ExecuteDialog;
+ StateMethod = GetState;
+ ]
+ SID_INSERT_TREECONTROL
+ [
ExecMethod = ExecuteDialog;
StateMethod = GetState;
]
diff --git a/basctl/source/basicide/baside3.cxx b/basctl/source/basicide/baside3.cxx
index 821c34176072..ffccb5e2f1cb 100644
--- a/basctl/source/basicide/baside3.cxx
+++ b/basctl/source/basicide/baside3.cxx
@@ -29,7 +29,6 @@
#include "dlgedmod.hxx"
#include "dlgedview.hxx"
#include "iderdll.hxx"
-#include "idetemp.hxx"
#include "localizationmgr.hxx"
#include "managelang.hxx"
@@ -79,6 +78,7 @@ DialogWindow::DialogWindow(DialogWindowLayout* pParent, ScriptDocument const& rD
? rDocument.getDocument()
: Reference<frame::XModel>(), xDialogModel))
,m_pUndoMgr(new SfxUndoManager)
+ ,m_nControlSlotId(SID_INSERT_SELECT)
{
InitSettings();
@@ -137,9 +137,9 @@ void DialogWindow::MouseButtonUp( const MouseEvent& rMEvt )
m_pEditor->MouseButtonUp( rMEvt );
if( (m_pEditor->GetMode() == DlgEditor::INSERT) && !m_pEditor->IsCreateOK() )
{
+ m_nControlSlotId = SID_INSERT_SELECT;
m_pEditor->SetMode( DlgEditor::SELECT );
- if (SfxBindings* pBindings = GetBindingsPtr())
- pBindings->Invalidate( SID_CHOOSE_CONTROLS );
+ Shell::InvalidateControlSlots();
}
if (SfxBindings* pBindings = GetBindingsPtr())
{
@@ -304,50 +304,7 @@ void DialogWindow::GetState( SfxItemSet& rSet )
case SID_CHOOSE_CONTROLS:
{
if ( IsReadOnly() )
- {
rSet.DisableItem( nWh );
- }
- else
- {
- SfxAllEnumItem aItem( SID_CHOOSE_CONTROLS );
- if ( GetEditor().GetMode() == DlgEditor::SELECT )
- aItem.SetValue( SVX_SNAP_SELECT );
- else
- {
- sal_uInt16 nObj;
- switch( m_pEditor->GetInsertObj() )
- {
- case OBJ_DLG_PUSHBUTTON: nObj = SVX_SNAP_PUSHBUTTON; break;
- case OBJ_DLG_RADIOBUTTON: nObj = SVX_SNAP_RADIOBUTTON; break;
- case OBJ_DLG_CHECKBOX: nObj = SVX_SNAP_CHECKBOX; break;
- case OBJ_DLG_LISTBOX: nObj = SVX_SNAP_LISTBOX; break;
- case OBJ_DLG_COMBOBOX: nObj = SVX_SNAP_COMBOBOX; break;
- case OBJ_DLG_GROUPBOX: nObj = SVX_SNAP_GROUPBOX; break;
- case OBJ_DLG_EDIT: nObj = SVX_SNAP_EDIT; break;
- case OBJ_DLG_FIXEDTEXT: nObj = SVX_SNAP_FIXEDTEXT; break;
- case OBJ_DLG_IMAGECONTROL: nObj = SVX_SNAP_IMAGECONTROL; break;
- case OBJ_DLG_PROGRESSBAR: nObj = SVX_SNAP_PROGRESSBAR; break;
- case OBJ_DLG_HSCROLLBAR: nObj = SVX_SNAP_HSCROLLBAR; break;
- case OBJ_DLG_VSCROLLBAR: nObj = SVX_SNAP_VSCROLLBAR; break;
- case OBJ_DLG_HFIXEDLINE: nObj = SVX_SNAP_HFIXEDLINE; break;
- case OBJ_DLG_VFIXEDLINE: nObj = SVX_SNAP_VFIXEDLINE; break;
- case OBJ_DLG_DATEFIELD: nObj = SVX_SNAP_DATEFIELD; break;
- case OBJ_DLG_TIMEFIELD: nObj = SVX_SNAP_TIMEFIELD; break;
- case OBJ_DLG_NUMERICFIELD: nObj = SVX_SNAP_NUMERICFIELD; break;
- case OBJ_DLG_CURRENCYFIELD: nObj = SVX_SNAP_CURRENCYFIELD; break;
- case OBJ_DLG_FORMATTEDFIELD: nObj = SVX_SNAP_FORMATTEDFIELD; break;
- case OBJ_DLG_PATTERNFIELD: nObj = SVX_SNAP_PATTERNFIELD; break;
- case OBJ_DLG_FILECONTROL: nObj = SVX_SNAP_FILECONTROL; break;
- case OBJ_DLG_SPINBUTTON: nObj = SVX_SNAP_SPINBUTTON; break;
- case OBJ_DLG_TREECONTROL: nObj = SVX_SNAP_TREECONTROL; break;
- default: nObj = 0;
- }
- SAL_INFO_IF( !nObj, "basctl.basicide", "SID_CHOOSE_CONTROLS: unknown" );
- aItem.SetValue( nObj );
- }
-
- rSet.Put( aItem );
- }
}
break;
@@ -372,6 +329,40 @@ void DialogWindow::GetState( SfxItemSet& rSet )
{
if ( !bIsCalc || IsReadOnly() )
rSet.DisableItem( nWh );
+ else
+ rSet.Put( SfxBoolItem( nWh, m_nControlSlotId == nWh ) );
+ }
+ break;
+
+ case SID_INSERT_SELECT:
+ case SID_INSERT_PUSHBUTTON:
+ case SID_INSERT_RADIOBUTTON:
+ case SID_INSERT_CHECKBOX:
+ case SID_INSERT_LISTBOX:
+ case SID_INSERT_COMBOBOX:
+ case SID_INSERT_GROUPBOX:
+ case SID_INSERT_EDIT:
+ case SID_INSERT_FIXEDTEXT:
+ case SID_INSERT_IMAGECONTROL:
+ case SID_INSERT_PROGRESSBAR:
+ case SID_INSERT_HSCROLLBAR:
+ case SID_INSERT_VSCROLLBAR:
+ case SID_INSERT_HFIXEDLINE:
+ case SID_INSERT_VFIXEDLINE:
+ case SID_INSERT_DATEFIELD:
+ case SID_INSERT_TIMEFIELD:
+ case SID_INSERT_NUMERICFIELD:
+ case SID_INSERT_CURRENCYFIELD:
+ case SID_INSERT_FORMATTEDFIELD:
+ case SID_INSERT_PATTERNFIELD:
+ case SID_INSERT_FILECONTROL:
+ case SID_INSERT_SPINBUTTON:
+ case SID_INSERT_TREECONTROL:
+ {
+ if ( IsReadOnly() )
+ rSet.DisableItem( nWh );
+ else
+ rSet.Put( SfxBoolItem( nWh, m_nControlSlotId == nWh ) );
}
break;
case SID_SHOWLINES:
@@ -394,7 +385,10 @@ void DialogWindow::GetState( SfxItemSet& rSet )
void DialogWindow::ExecuteCommand( SfxRequest& rReq )
{
- switch ( rReq.GetSlot() )
+ const sal_uInt16 nSlotId(rReq.GetSlot());
+ sal_uInt16 nInsertObj(0);
+
+ switch ( nSlotId )
{
case SID_CUT:
if ( !IsReadOnly() )
@@ -423,198 +417,102 @@ void DialogWindow::ExecuteCommand( SfxRequest& rReq )
pBindings->Invalidate( SID_DOC_MODIFIED );
}
break;
+
case SID_INSERT_FORM_RADIO:
- GetEditor().SetMode( DlgEditor::INSERT );
- GetEditor().SetInsertObj( OBJ_DLG_FORMRADIO );
+ nInsertObj = OBJ_DLG_FORMRADIO;
break;
case SID_INSERT_FORM_CHECK:
- GetEditor().SetMode( DlgEditor::INSERT );
- GetEditor().SetInsertObj( OBJ_DLG_FORMCHECK );
+ nInsertObj = OBJ_DLG_FORMCHECK;
break;
case SID_INSERT_FORM_LIST:
- GetEditor().SetMode( DlgEditor::INSERT );
- GetEditor().SetInsertObj( OBJ_DLG_FORMLIST );
+ nInsertObj = OBJ_DLG_FORMLIST;
break;
case SID_INSERT_FORM_COMBO:
- GetEditor().SetMode( DlgEditor::INSERT );
- GetEditor().SetInsertObj( OBJ_DLG_FORMCOMBO );
+ nInsertObj = OBJ_DLG_FORMCOMBO;
break;
case SID_INSERT_FORM_SPIN:
- GetEditor().SetMode( DlgEditor::INSERT );
- GetEditor().SetInsertObj( OBJ_DLG_FORMSPIN );
+ nInsertObj = OBJ_DLG_FORMSPIN;
break;
case SID_INSERT_FORM_VSCROLL:
- GetEditor().SetMode( DlgEditor::INSERT );
- GetEditor().SetInsertObj( OBJ_DLG_FORMVSCROLL );
+ nInsertObj = OBJ_DLG_FORMVSCROLL;
break;
case SID_INSERT_FORM_HSCROLL:
- GetEditor().SetMode( DlgEditor::INSERT );
- GetEditor().SetInsertObj( OBJ_DLG_FORMHSCROLL );
+ nInsertObj = OBJ_DLG_FORMHSCROLL;
+ break;
+ case SID_INSERT_PUSHBUTTON:
+ nInsertObj = OBJ_DLG_PUSHBUTTON;
+ break;
+ case SID_INSERT_RADIOBUTTON:
+ nInsertObj = OBJ_DLG_RADIOBUTTON;
+ break;
+ case SID_INSERT_CHECKBOX:
+ nInsertObj = OBJ_DLG_CHECKBOX;
+ break;
+ case SID_INSERT_LISTBOX:
+ nInsertObj = OBJ_DLG_LISTBOX;
+ break;
+ case SID_INSERT_COMBOBOX:
+ nInsertObj = OBJ_DLG_COMBOBOX;
+ break;
+ case SID_INSERT_GROUPBOX:
+ nInsertObj = OBJ_DLG_GROUPBOX;
+ break;
+ case SID_INSERT_EDIT:
+ nInsertObj = OBJ_DLG_EDIT;
+ break;
+ case SID_INSERT_FIXEDTEXT:
+ nInsertObj = OBJ_DLG_FIXEDTEXT;
+ break;
+ case SID_INSERT_IMAGECONTROL:
+ nInsertObj = OBJ_DLG_IMAGECONTROL;
+ break;
+ case SID_INSERT_PROGRESSBAR:
+ nInsertObj = OBJ_DLG_PROGRESSBAR;
+ break;
+ case SID_INSERT_HSCROLLBAR:
+ nInsertObj = OBJ_DLG_HSCROLLBAR;
+ break;
+ case SID_INSERT_VSCROLLBAR:
+ nInsertObj = OBJ_DLG_VSCROLLBAR;
+ break;
+ case SID_INSERT_HFIXEDLINE:
+ nInsertObj = OBJ_DLG_HFIXEDLINE;
+ break;
+ case SID_INSERT_VFIXEDLINE:
+ nInsertObj = OBJ_DLG_VFIXEDLINE;
+ break;
+ case SID_INSERT_DATEFIELD:
+ nInsertObj = OBJ_DLG_DATEFIELD;
+ break;
+ case SID_INSERT_TIMEFIELD:
+ nInsertObj = OBJ_DLG_TIMEFIELD;
+ break;
+ case SID_INSERT_NUMERICFIELD:
+ nInsertObj = OBJ_DLG_NUMERICFIELD;
+ break;
+ case SID_INSERT_CURRENCYFIELD:
+ nInsertObj = OBJ_DLG_CURRENCYFIELD;
+ break;
+ case SID_INSERT_FORMATTEDFIELD:
+ nInsertObj = OBJ_DLG_FORMATTEDFIELD;
+ break;
+ case SID_INSERT_PATTERNFIELD:
+ nInsertObj = OBJ_DLG_PATTERNFIELD;
+ break;
+ case SID_INSERT_FILECONTROL:
+ nInsertObj = OBJ_DLG_FILECONTROL;
+ break;
+ case SID_INSERT_SPINBUTTON:
+ nInsertObj = OBJ_DLG_SPINBUTTON;
+ break;
+ case SID_INSERT_TREECONTROL:
+ nInsertObj = OBJ_DLG_TREECONTROL;
+ break;
+ case SID_INSERT_SELECT:
+ m_nControlSlotId = nSlotId;
+ GetEditor().SetMode( DlgEditor::SELECT );
+ Shell::InvalidateControlSlots();
break;
- case SID_CHOOSE_CONTROLS:
- {
- const SfxItemSet* pArgs = rReq.GetArgs();
- assert(pArgs && "Nix Args");
-
- const SfxAllEnumItem& rItem = static_cast<const SfxAllEnumItem&>(pArgs->Get( SID_CHOOSE_CONTROLS ));
- switch( rItem.GetValue() )
- {
- case SVX_SNAP_PUSHBUTTON:
- {
- GetEditor().SetMode( DlgEditor::INSERT );
- GetEditor().SetInsertObj( OBJ_DLG_PUSHBUTTON );
- }
- break;
- case SVX_SNAP_RADIOBUTTON:
- {
- GetEditor().SetMode( DlgEditor::INSERT );
- GetEditor().SetInsertObj( OBJ_DLG_RADIOBUTTON );
- }
- break;
- case SVX_SNAP_CHECKBOX:
- {
- GetEditor().SetMode( DlgEditor::INSERT );
- GetEditor().SetInsertObj( OBJ_DLG_CHECKBOX);
- }
- break;
- case SVX_SNAP_LISTBOX:
- {
- GetEditor().SetMode( DlgEditor::INSERT );
- GetEditor().SetInsertObj( OBJ_DLG_LISTBOX );
- }
- break;
- case SVX_SNAP_COMBOBOX:
- {
- GetEditor().SetMode( DlgEditor::INSERT );
- GetEditor().SetInsertObj( OBJ_DLG_COMBOBOX );
- }
- break;
- case SVX_SNAP_GROUPBOX:
- {
- GetEditor().SetMode( DlgEditor::INSERT );
- GetEditor().SetInsertObj( OBJ_DLG_GROUPBOX );
- }
- break;
- case SVX_SNAP_EDIT:
- {
- GetEditor().SetMode( DlgEditor::INSERT );
- GetEditor().SetInsertObj( OBJ_DLG_EDIT );
- }
- break;
- case SVX_SNAP_FIXEDTEXT:
- {
- GetEditor().SetMode( DlgEditor::INSERT );
- GetEditor().SetInsertObj( OBJ_DLG_FIXEDTEXT );
- }
- break;
- case SVX_SNAP_IMAGECONTROL:
- {
- GetEditor().SetMode( DlgEditor::INSERT );
- GetEditor().SetInsertObj( OBJ_DLG_IMAGECONTROL );
- }
- break;
- case SVX_SNAP_PROGRESSBAR:
- {
- GetEditor().SetMode( DlgEditor::INSERT );
- GetEditor().SetInsertObj( OBJ_DLG_PROGRESSBAR );
- }
- break;
- case SVX_SNAP_HSCROLLBAR:
- {
- GetEditor().SetMode( DlgEditor::INSERT );
- GetEditor().SetInsertObj( OBJ_DLG_HSCROLLBAR );
- }
- break;
- case SVX_SNAP_VSCROLLBAR:
- {
- GetEditor().SetMode( DlgEditor::INSERT );
- GetEditor().SetInsertObj( OBJ_DLG_VSCROLLBAR );
- }
- break;
- case SVX_SNAP_HFIXEDLINE:
- {
- GetEditor().SetMode( DlgEditor::INSERT );
- GetEditor().SetInsertObj( OBJ_DLG_HFIXEDLINE );
- }
- break;
- case SVX_SNAP_VFIXEDLINE:
- {
- GetEditor().SetMode( DlgEditor::INSERT );
- GetEditor().SetInsertObj( OBJ_DLG_VFIXEDLINE );
- }
- break;
- case SVX_SNAP_DATEFIELD:
- {
- GetEditor().SetMode( DlgEditor::INSERT );
- GetEditor().SetInsertObj( OBJ_DLG_DATEFIELD );
- }
- break;
- case SVX_SNAP_TIMEFIELD:
- {
- GetEditor().SetMode( DlgEditor::INSERT );
- GetEditor().SetInsertObj( OBJ_DLG_TIMEFIELD );
- }
- break;
- case SVX_SNAP_NUMERICFIELD:
- {
- GetEditor().SetMode( DlgEditor::INSERT );
- GetEditor().SetInsertObj( OBJ_DLG_NUMERICFIELD );
- }
- break;
- case SVX_SNAP_CURRENCYFIELD:
- {
- GetEditor().SetMode( DlgEditor::INSERT );
- GetEditor().SetInsertObj( OBJ_DLG_CURRENCYFIELD );
- }
- break;
- case SVX_SNAP_FORMATTEDFIELD:
- {
- GetEditor().SetMode( DlgEditor::INSERT );
- GetEditor().SetInsertObj( OBJ_DLG_FORMATTEDFIELD );
- }
- break;
- case SVX_SNAP_PATTERNFIELD:
- {
- GetEditor().SetMode( DlgEditor::INSERT );
- GetEditor().SetInsertObj( OBJ_DLG_PATTERNFIELD );
- }
- break;
- case SVX_SNAP_FILECONTROL:
- {
- GetEditor().SetMode( DlgEditor::INSERT );
- GetEditor().SetInsertObj( OBJ_DLG_FILECONTROL );
- }
- break;
- case SVX_SNAP_SPINBUTTON:
- {
- GetEditor().SetMode( DlgEditor::INSERT );
- GetEditor().SetInsertObj( OBJ_DLG_SPINBUTTON );
- }
- break;
- case SVX_SNAP_TREECONTROL:
- {
- GetEditor().SetMode( DlgEditor::INSERT );
- GetEditor().SetInsertObj( OBJ_DLG_TREECONTROL );
- }
- break;
-
- case SVX_SNAP_SELECT:
- {
- GetEditor().SetMode( DlgEditor::SELECT );
- }
- break;
- }
-
- if ( rReq.GetModifier() & KEY_MOD1 )
- {
- if ( GetEditor().GetMode() == DlgEditor::INSERT )
- GetEditor().CreateDefaultObject();
- }
-
- if (SfxBindings* pBindings = GetBindingsPtr())
- pBindings->Invalidate( SID_DOC_MODIFIED );
- }
- break;
case SID_DIALOG_TESTMODE:
{
@@ -646,6 +544,22 @@ void DialogWindow::ExecuteCommand( SfxRequest& rReq )
break;
}
+ if ( nInsertObj )
+ {
+ m_nControlSlotId = nSlotId;
+ GetEditor().SetMode( DlgEditor::INSERT );
+ GetEditor().SetInsertObj( nInsertObj );
+
+ if ( rReq.GetModifier() & KEY_MOD1 )
+ {
+ GetEditor().CreateDefaultObject();
+ if (SfxBindings* pBindings = GetBindingsPtr())
+ pBindings->Invalidate( SID_DOC_MODIFIED );
+ }
+
+ Shell::InvalidateControlSlots();
+ }
+
rReq.Done();
}
diff --git a/basctl/source/basicide/basides1.cxx b/basctl/source/basicide/basides1.cxx
index 3202ce4dfe87..00962308c1d6 100644
--- a/basctl/source/basicide/basides1.cxx
+++ b/basctl/source/basicide/basides1.cxx
@@ -806,6 +806,30 @@ void Shell::GetState(SfxItemSet &rSet)
break;
case SID_CHOOSE_CONTROLS:
case SID_DIALOG_TESTMODE:
+ case SID_INSERT_SELECT:
+ case SID_INSERT_PUSHBUTTON:
+ case SID_INSERT_RADIOBUTTON:
+ case SID_INSERT_CHECKBOX:
+ case SID_INSERT_LISTBOX:
+ case SID_INSERT_COMBOBOX:
+ case SID_INSERT_GROUPBOX:
+ case SID_INSERT_EDIT:
+ case SID_INSERT_FIXEDTEXT:
+ case SID_INSERT_IMAGECONTROL:
+ case SID_INSERT_PROGRESSBAR:
+ case SID_INSERT_HSCROLLBAR:
+ case SID_INSERT_VSCROLLBAR:
+ case SID_INSERT_HFIXEDLINE:
+ case SID_INSERT_VFIXEDLINE:
+ case SID_INSERT_DATEFIELD:
+ case SID_INSERT_TIMEFIELD:
+ case SID_INSERT_NUMERICFIELD:
+ case SID_INSERT_CURRENCYFIELD:
+ case SID_INSERT_FORMATTEDFIELD:
+ case SID_INSERT_PATTERNFIELD:
+ case SID_INSERT_FILECONTROL:
+ case SID_INSERT_SPINBUTTON:
+ case SID_INSERT_TREECONTROL:
case SID_INSERT_FORM_RADIO:
case SID_INSERT_FORM_CHECK:
case SID_INSERT_FORM_LIST:
@@ -1064,6 +1088,7 @@ void Shell::SetCurWindow( BaseWindow* pNewWin, bool bUpdateTabBar, bool bRemembe
aObjectCatalog->SetCurrentEntry(pCurWin);
SetUndoManager( pCurWin ? pCurWin->GetUndoManager() : nullptr );
InvalidateBasicIDESlots();
+ InvalidateControlSlots();
EnableScrollbars(pCurWin != nullptr);
if ( m_pCurLocalizationMgr )
diff --git a/basctl/source/basicide/basidesh.cxx b/basctl/source/basicide/basidesh.cxx
index bea3e699a8d8..3ec5b45b374b 100644
--- a/basctl/source/basicide/basidesh.cxx
+++ b/basctl/source/basicide/basidesh.cxx
@@ -46,7 +46,6 @@
#define basctl_Shell
#define SFX_TYPEMAP
-#include <idetemp.hxx>
#include <basslots.hxx>
#ifdef DISABLE_DYNLOADING
@@ -840,7 +839,7 @@ void Shell::InvalidateBasicIDESlots()
pBindings->Invalidate( SID_BASICIDE_MANAGEBRKPNTS );
pBindings->Invalidate( SID_BASICIDE_ADDWATCH );
pBindings->Invalidate( SID_BASICIDE_REMOVEWATCH );
- pBindings->Invalidate( SID_CHOOSE_CONTROLS );
+
pBindings->Invalidate( SID_PRINTDOC );
pBindings->Invalidate( SID_PRINTDOCDIRECT );
pBindings->Invalidate( SID_SETUPPRINTER );
@@ -855,6 +854,49 @@ void Shell::InvalidateBasicIDESlots()
}
}
+void Shell::InvalidateControlSlots()
+{
+ if (GetShell())
+ {
+ if (SfxBindings* pBindings = GetBindingsPtr())
+ {
+ pBindings->Invalidate( SID_INSERT_FORM_RADIO );
+ pBindings->Invalidate( SID_INSERT_FORM_CHECK );
+ pBindings->Invalidate( SID_INSERT_FORM_LIST );
+ pBindings->Invalidate( SID_INSERT_FORM_COMBO );
+ pBindings->Invalidate( SID_INSERT_FORM_VSCROLL );
+ pBindings->Invalidate( SID_INSERT_FORM_HSCROLL );
+ pBindings->Invalidate( SID_INSERT_FORM_SPIN );
+
+ pBindings->Invalidate( SID_INSERT_SELECT );
+ pBindings->Invalidate( SID_INSERT_PUSHBUTTON );
+ pBindings->Invalidate( SID_INSERT_RADIOBUTTON );
+ pBindings->Invalidate( SID_INSERT_CHECKBOX );
+ pBindings->Invalidate( SID_INSERT_LISTBOX );
+ pBindings->Invalidate( SID_INSERT_COMBOBOX );
+ pBindings->Invalidate( SID_INSERT_GROUPBOX );
+ pBindings->Invalidate( SID_INSERT_EDIT );
+ pBindings->Invalidate( SID_INSERT_FIXEDTEXT );
+ pBindings->Invalidate( SID_INSERT_IMAGECONTROL );
+ pBindings->Invalidate( SID_INSERT_PROGRESSBAR );
+ pBindings->Invalidate( SID_INSERT_HSCROLLBAR );
+ pBindings->Invalidate( SID_INSERT_VSCROLLBAR );
+ pBindings->Invalidate( SID_INSERT_HFIXEDLINE );
+ pBindings->Invalidate( SID_INSERT_VFIXEDLINE );
+ pBindings->Invalidate( SID_INSERT_DATEFIELD );
+ pBindings->Invalidate( SID_INSERT_TIMEFIELD );
+ pBindings->Invalidate( SID_INSERT_NUMERICFIELD );
+ pBindings->Invalidate( SID_INSERT_CURRENCYFIELD );
+ pBindings->Invalidate( SID_INSERT_FORMATTEDFIELD );
+ pBindings->Invalidate( SID_INSERT_PATTERNFIELD );
+ pBindings->Invalidate( SID_INSERT_FILECONTROL );
+ pBindings->Invalidate( SID_INSERT_SPINBUTTON );
+ pBindings->Invalidate( SID_INSERT_TREECONTROL );
+ pBindings->Invalidate( SID_CHOOSE_CONTROLS );
+ }
+ }
+}
+
void Shell::EnableScrollbars( bool bEnable )
{
aHScrollBar->Enable(bEnable);
diff --git a/basctl/source/basicide/idetemp.hxx b/basctl/source/basicide/idetemp.hxx
deleted file mode 100644
index 178c1e505fa0..000000000000
--- a/basctl/source/basicide/idetemp.hxx
+++ /dev/null
@@ -1,57 +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 INCLUDED_BASCTL_SOURCE_BASICIDE_IDETEMP_HXX
-#define INCLUDED_BASCTL_SOURCE_BASICIDE_IDETEMP_HXX
-
-
-enum SvxChooseControlEnum
-{
- SVX_SNAP_PUSHBUTTON,
- SVX_SNAP_CHECKBOX,
- SVX_SNAP_RADIOBUTTON,
- SVX_SNAP_SPINBUTTON,
- SVX_SNAP_FIXEDTEXT,
- SVX_SNAP_GROUPBOX,
- SVX_SNAP_LISTBOX,
- SVX_SNAP_COMBOBOX,
- SVX_SNAP_EDIT,
- SVX_SNAP_HSCROLLBAR,
- SVX_SNAP_VSCROLLBAR,
- SVX_SNAP_PREVIEW,
- SVX_SNAP_SELECT,
- SVX_SNAP_URLBUTTON,
- SVX_SNAP_IMAGECONTROL,
- SVX_SNAP_PROGRESSBAR,
- SVX_SNAP_HFIXEDLINE,
- SVX_SNAP_VFIXEDLINE,
- SVX_SNAP_DATEFIELD,
- SVX_SNAP_TIMEFIELD,
- SVX_SNAP_NUMERICFIELD,
- SVX_SNAP_CURRENCYFIELD,
- SVX_SNAP_FORMATTEDFIELD,
- SVX_SNAP_PATTERNFIELD,
- SVX_SNAP_FILECONTROL,
- SVX_SNAP_TREECONTROL,
-};
-
-#define SvxChooseControlItem SfxAllEnumItem
-
-#endif // INCLUDED_BASCTL_SOURCE_BASICIDE_IDETEMP_HXX
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/basctl/source/inc/baside3.hxx b/basctl/source/inc/baside3.hxx
index 35c4161c5a89..c6510010b555 100644
--- a/basctl/source/inc/baside3.hxx
+++ b/basctl/source/inc/baside3.hxx
@@ -60,6 +60,7 @@ private:
std::unique_ptr<DlgEditor> m_pEditor;
std::unique_ptr<SfxUndoManager> m_pUndoMgr; // never nullptr
OUString m_sCurPath;
+ sal_uInt16 m_nControlSlotId;
protected:
virtual void Paint(vcl::RenderContext& rRenderContext, const Rectangle& rRect) override;
diff --git a/basctl/source/inc/basidesh.hxx b/basctl/source/inc/basidesh.hxx
index ceb52885ad54..63117788f8e0 100644
--- a/basctl/source/inc/basidesh.hxx
+++ b/basctl/source/inc/basidesh.hxx
@@ -195,6 +195,8 @@ public:
const ScriptDocument& rSourceDoc, const OUString& rSourceLibName, const ScriptDocument& rDestDoc,
const OUString& rDestLibName, const OUString& rDlgName );
+ static void InvalidateControlSlots();
+
virtual css::uno::Reference< css::frame::XModel >
GetCurrentDocument() const override;
diff --git a/include/editeng/svxenum.hxx b/include/editeng/svxenum.hxx
index 5cf21d807a02..626383329990 100644
--- a/include/editeng/svxenum.hxx
+++ b/include/editeng/svxenum.hxx
@@ -129,16 +129,6 @@ enum SvxCellOrientation
SVX_ORIENTATION_STACKED
};
-enum SvxDrawAlignEnum
-{
- SVX_OBJECT_ALIGN_LEFT,
- SVX_OBJECT_ALIGN_CENTER,
- SVX_OBJECT_ALIGN_RIGHT,
- SVX_OBJECT_ALIGN_UP,
- SVX_OBJECT_ALIGN_MIDDLE,
- SVX_OBJECT_ALIGN_DOWN
-};
-
enum class SvxSpellArea
{
Body = 0,
diff --git a/sc/sdi/drawsh.sdi b/sc/sdi/drawsh.sdi
index 91af5543da25..3282485b1b3d 100644
--- a/sc/sdi/drawsh.sdi
+++ b/sc/sdi/drawsh.sdi
@@ -116,16 +116,7 @@ interface TableDraw
SID_ATTR_TRANSFORM_AUTOHEIGHT [ StateMethod = GetDrawAttrStateForIFBX; Export = FALSE; ]
// ---- Ausrichtungs - Funktionen:
- //! PseudoSlots gibt Aerger mit Referenz-Dialogen ???
- SID_OBJECT_ALIGN
- [
- PseudoSlots = FALSE ;
- Export = FALSE ;
- ExecMethod = ExecDrawFunc ;
- StateMethod = GetDrawFuncState ;
- GroupId = GID_FORMAT ;
- ToolBoxConfig ;
- ]
+ SID_OBJECT_ALIGN [ StateMethod = GetDrawFuncState; Export = FALSE; ]
SID_OBJECT_ALIGN_LEFT [ ExecMethod = ExecDrawFunc; StateMethod = GetDrawFuncState; Export = FALSE; ]
SID_OBJECT_ALIGN_CENTER [ ExecMethod = ExecDrawFunc; StateMethod = GetDrawFuncState; Export = FALSE; ]
SID_OBJECT_ALIGN_RIGHT [ ExecMethod = ExecDrawFunc; StateMethod = GetDrawFuncState; Export = FALSE; ]
diff --git a/sc/source/ui/app/typemap.cxx b/sc/source/ui/app/typemap.cxx
index 18660b9c87f2..684f4cc622b0 100644
--- a/sc/source/ui/app/typemap.cxx
+++ b/sc/source/ui/app/typemap.cxx
@@ -100,7 +100,6 @@
#include <svx/sdprcitm.hxx>
#include <svx/sdmetitm.hxx>
-#define SvxDrawAlignItem SfxAllEnumItem
#define avmedia_MediaItem ::avmedia::MediaItem
#ifdef DISABLE_DYNLOADING
diff --git a/sc/source/ui/drawfunc/drawsh5.cxx b/sc/source/ui/drawfunc/drawsh5.cxx
index 062a58a075ec..f862452dcb0a 100644
--- a/sc/source/ui/drawfunc/drawsh5.cxx
+++ b/sc/source/ui/drawfunc/drawsh5.cxx
@@ -241,15 +241,8 @@ void ScDrawShell::ExecDrawFunc( SfxRequest& rReq )
SfxBindings& rBindings = pViewData->GetBindings();
ScTabView* pTabView = pViewData->GetView();
ScDrawView* pView = pTabView->GetScDrawView();
- const SfxItemSet *pArgs = rReq.GetArgs();
sal_uInt16 nSlotId = rReq.GetSlot();
- //!!!
- // wer weiss, wie lange das funktioniert? (->vom Abreisscontrol funktioniert es)
-
- if (nSlotId == SID_OBJECT_ALIGN && pArgs)
- nSlotId = SID_OBJECT_ALIGN + static_cast<const SfxEnumItemInterface&>(pArgs->Get(SID_OBJECT_ALIGN)).GetEnumValue() + 1;
-
switch (nSlotId)
{
case SID_OBJECT_HEAVEN:
diff --git a/sd/sdi/_drvwsh.sdi b/sd/sdi/_drvwsh.sdi
index a0e19e827029..b5f40fff9084 100644
--- a/sd/sdi/_drvwsh.sdi
+++ b/sd/sdi/_drvwsh.sdi
@@ -1238,14 +1238,11 @@ interface DrawView
StateMethod = GetMenuState ;
]
- SfxVoidItem ObjectAlign SID_OBJECT_ALIGN // ole : no, status : ?
+ SID_OBJECT_ALIGN // ole : no, status : ?
[
StateMethod = GetMenuState ;
GroupId = GID_DOCUMENT ;
Export ;
- PseudoSlots = FALSE ;
- ToolBoxConfig ;
- MenuConfig = TRUE;
]
SID_ZOOM_TOOLBOX // ole : no, status : ?
diff --git a/svx/sdi/fmslots.sdi b/svx/sdi/fmslots.sdi
index beb700e54b4a..8eda2c5d981d 100644
--- a/svx/sdi/fmslots.sdi
+++ b/svx/sdi/fmslots.sdi
@@ -19,10 +19,7 @@
interface Form
{
SID_FM_CONFIG // ole : no, status : ?
- [
- ExecMethod = Execute ;
- StateMethod = GetState ;
- ]
+ []
SID_FM_PUSHBUTTON
[
ExecMethod = Execute ;
@@ -627,10 +624,7 @@ shell FmFormShell
import Form;
SID_FM_CONFIG // ole : no, status : ?
- [
- ExecMethod = Execute ;
- StateMethod = GetState ;
- ]
+ []
SID_FM_MORE_CONTROLS
[
ExecMethod = Execute ;
diff --git a/svx/sdi/svx.sdi b/svx/sdi/svx.sdi
index 33daa10e87d8..bc6d05596acd 100644
--- a/svx/sdi/svx.sdi
+++ b/svx/sdi/svx.sdi
@@ -1376,7 +1376,7 @@ SfxBoolItem CheckBox SID_FM_CHECKBOX
]
-SvxChooseControlItem ChooseControls SID_CHOOSE_CONTROLS
+SfxVoidItem ChooseControls SID_CHOOSE_CONTROLS
[
AutoUpdate = TRUE,
@@ -1392,8 +1392,6 @@ SvxChooseControlItem ChooseControls SID_CHOOSE_CONTROLS
MenuConfig = FALSE,
ToolBoxConfig = TRUE,
GroupId = GID_CONTROLS;
- PseudoSlots = TRUE;
- PseudoPrefix = SID_INSERT;
]
@@ -1679,7 +1677,7 @@ SfxBoolItem Combobox SID_INSERT_COMBOBOX
]
-SfxUInt16Item Config SID_FM_CONFIG
+SfxVoidItem Config SID_FM_CONFIG
[
AutoUpdate = TRUE,
@@ -1695,8 +1693,6 @@ SfxUInt16Item Config SID_FM_CONFIG
MenuConfig = FALSE,
ToolBoxConfig = TRUE,
GroupId = GID_CONTROLS;
- PseudoSlots = TRUE;
- PseudoPrefix = SID_INSERT;
]
@@ -1716,8 +1712,6 @@ SfxBoolItem MoreControls SID_FM_MORE_CONTROLS
MenuConfig = FALSE,
ToolBoxConfig = TRUE,
GroupId = GID_CONTROLS;
- PseudoSlots = TRUE;
- PseudoPrefix = SID_INSERT;
]
@@ -1737,8 +1731,6 @@ SfxBoolItem FormDesignTools SID_FM_FORM_DESIGN_TOOLS
MenuConfig = FALSE,
ToolBoxConfig = TRUE,
GroupId = GID_CONTROLS;
- PseudoSlots = TRUE;
- PseudoPrefix = SID_INSERT;
]
@@ -5799,7 +5791,7 @@ SfxBoolItem InsertNumericField SID_INSERT_NUMERICFIELD
]
-SvxDrawAlignItem ObjectAlign SID_OBJECT_ALIGN
+SfxVoidItem ObjectAlign SID_OBJECT_ALIGN
[
AutoUpdate = FALSE,
@@ -5815,8 +5807,6 @@ SvxDrawAlignItem ObjectAlign SID_OBJECT_ALIGN
MenuConfig = FALSE,
ToolBoxConfig = TRUE,
GroupId = GID_FORMAT;
- PseudoSlots = TRUE;
- PseudoPrefix = SID_OBJECT_ALIGN;
]
@@ -10838,8 +10828,6 @@ SfxBoolItem ColorSettings SID_COLOR_SETTINGS
MenuConfig = FALSE,
ToolBoxConfig = TRUE,
GroupId = GID_MODIFY;
- PseudoSlots = TRUE;
- PseudoPrefix = SID_INSERT;
]
diff --git a/svx/sdi/svxitems.sdi b/svx/sdi/svxitems.sdi
index 5a047e703b84..3d264f483dc2 100644
--- a/svx/sdi/svxitems.sdi
+++ b/svx/sdi/svxitems.sdi
@@ -42,47 +42,6 @@ enum SvxCellOrientationEnum
SVX_ORIENTATION_STACKED
};
-enum SvxChooseControlEnum
-{
- SVX_SNAP_PUSHBUTTON,
- SVX_SNAP_CHECKBOX,
- SVX_SNAP_RADIOBUTTON,
- SVX_SNAP_SPINBUTTON,
- SVX_SNAP_FIXEDTEXT,
- SVX_SNAP_GROUPBOX,
- SVX_SNAP_LISTBOX,
- SVX_SNAP_COMBOBOX,
- SVX_SNAP_EDIT,
- SVX_SNAP_HSCROLLBAR,
- SVX_SNAP_VSCROLLBAR,
- SVX_SNAP_PREVIEW,
- SVX_SNAP_SELECT,
- SVX_SNAP_URLBUTTON,
- SVX_SNAP_IMAGECONTROL,
- SVX_SNAP_PROGRESSBAR,
- SVX_SNAP_HFIXEDLINE,
- SVX_SNAP_VFIXEDLINE,
- SVX_SNAP_DATEFIELD,
- SVX_SNAP_TIMEFIELD,
- SVX_SNAP_NUMERICFIELD,
- SVX_SNAP_CURRENCYFIELD,
- SVX_SNAP_FORMATTEDFIELD,
- SVX_SNAP_PATTERNFIELD,
- SVX_SNAP_FILECONTROL,
- SVX_SNAP_TREECONTROL
-};
-item SvxChooseControlEnum SvxChooseControlItem;
-
-enum SvxDrawAlignEnum
-{
- SVX_OBJECT_ALIGN_LEFT,
- SVX_OBJECT_ALIGN_CENTER,
- SVX_OBJECT_ALIGN_RIGHT,
- SVX_OBJECT_ALIGN_UP,
- SVX_OBJECT_ALIGN_MIDDLE,
- SVX_OBJECT_ALIGN_DOWN
-};
-
enum SvxAdjust
{
SVX_ADJUST_LEFT,
@@ -228,7 +187,6 @@ item FontItalic SvxPostureItem; // enum
item BOOL SvxPrintItem;
item UINT16 SvxPropSizeItem; // derived from UInt16Item
item BOOL SvxShadowedItem;
-item SvxDrawAlignEnum SvxDrawAlignItem;
item BYTE SvxWidowsItem;
item BOOL SvxWordLineModeItem;
item SvxCellHorJustifyEnum SvxHorJustifyItem;
diff --git a/svx/source/form/fmshell.cxx b/svx/source/form/fmshell.cxx
index 6f75d247510b..31306a94dd73 100644
--- a/svx/source/form/fmshell.cxx
+++ b/svx/source/form/fmshell.cxx
@@ -377,7 +377,6 @@ void FmFormShell::Execute(SfxRequest &rReq)
case SID_FM_SCROLLBAR:
case SID_FM_SPINBUTTON:
m_nLastSlot = nSlot;
- GetViewShell()->GetViewFrame()->GetBindings().Invalidate( SID_FM_CONFIG );
break;
}
@@ -584,7 +583,6 @@ void FmFormShell::Execute(SfxRequest &rReq)
break;
case SID_FM_LEAVE_CREATE:
m_nLastSlot = 0;
- GetViewShell()->GetViewFrame()->GetBindings().Invalidate( SID_FM_CONFIG );
rReq.Done();
break;
case SID_FM_SHOW_PROPERTY_BROWSER:
@@ -659,7 +657,6 @@ void FmFormShell::Execute(SfxRequest &rReq)
rReq.Done();
m_nLastSlot = SID_FM_DESIGN_MODE;
- GetViewShell()->GetViewFrame()->GetBindings().Invalidate( SID_FM_CONFIG );
}
break;
@@ -988,9 +985,6 @@ void FmFormShell::GetState(SfxItemSet &rSet)
if (!m_pFormView || !m_bDesignMode || !GetImpl()->getCurrentForm().is() )
rSet.DisableItem( nWhich );
break;
- case SID_FM_CONFIG:
- rSet.Put(SfxUInt16Item(nWhich, m_nLastSlot));
- break;
case SID_FM_DESIGN_MODE:
if (!m_pFormView || GetImpl()->IsReadonlyDoc() )
rSet.DisableItem( nWhich );
diff --git a/sw/sdi/drwbassh.sdi b/sw/sdi/drwbassh.sdi
index 4dd539504f8c..3653e0408856 100644
--- a/sw/sdi/drwbassh.sdi
+++ b/sw/sdi/drwbassh.sdi
@@ -28,9 +28,44 @@ shell SwDrawBaseShell: SwBaseShell
SID_OBJECT_ALIGN
[
- ExecMethod = Execute ;
StateMethod = GetState ;
DisableFlags="SfxDisableFlags::SwOnProtectedCursor";
]
+ SID_OBJECT_ALIGN_LEFT
+ [
+ ExecMethod = Execute;
+ StateMethod = GetState;
+ DisableFlags="SfxDisableFlags::SwOnProtectedCursor";
+ ]
+ SID_OBJECT_ALIGN_CENTER
+ [
+ ExecMethod = Execute;
+ StateMethod = GetState;
+ DisableFlags="SfxDisableFlags::SwOnProtectedCursor";
+ ]
+ SID_OBJECT_ALIGN_RIGHT
+ [
+ ExecMethod = Execute;
+ StateMethod = GetState;
+ DisableFlags="SfxDisableFlags::SwOnProtectedCursor";
+ ]
+ SID_OBJECT_ALIGN_UP
+ [
+ ExecMethod = Execute;
+ StateMethod = GetState;
+ DisableFlags="SfxDisableFlags::SwOnProtectedCursor";
+ ]
+ SID_OBJECT_ALIGN_MIDDLE
+ [
+ ExecMethod = Execute;
+ StateMethod = GetState;
+ DisableFlags="SfxDisableFlags::SwOnProtectedCursor";
+ ]
+ SID_OBJECT_ALIGN_DOWN
+ [
+ ExecMethod = Execute;
+ StateMethod = GetState;
+ DisableFlags="SfxDisableFlags::SwOnProtectedCursor";
+ ]
}
diff --git a/sw/sdi/wdrwbase.sdi b/sw/sdi/wdrwbase.sdi
index 60bb334ce5f8..afa74203db79 100644
--- a/sw/sdi/wdrwbase.sdi
+++ b/sw/sdi/wdrwbase.sdi
@@ -28,9 +28,44 @@ shell SwWebDrawBaseShell: SwBaseShell
SID_OBJECT_ALIGN
[
- ExecMethod = Execute ;
StateMethod = GetState ;
DisableFlags="SfxDisableFlags::SwOnProtectedCursor";
]
+ SID_OBJECT_ALIGN_LEFT
+ [
+ ExecMethod = Execute;
+ StateMethod = GetState;
+ DisableFlags="SfxDisableFlags::SwOnProtectedCursor";
+ ]
+ SID_OBJECT_ALIGN_CENTER
+ [
+ ExecMethod = Execute;
+ StateMethod = GetState;
+ DisableFlags="SfxDisableFlags::SwOnProtectedCursor";
+ ]
+ SID_OBJECT_ALIGN_RIGHT
+ [
+ ExecMethod = Execute;
+ StateMethod = GetState;
+ DisableFlags="SfxDisableFlags::SwOnProtectedCursor";
+ ]
+ SID_OBJECT_ALIGN_UP
+ [
+ ExecMethod = Execute;
+ StateMethod = GetState;
+ DisableFlags="SfxDisableFlags::SwOnProtectedCursor";
+ ]
+ SID_OBJECT_ALIGN_MIDDLE
+ [
+ ExecMethod = Execute;
+ StateMethod = GetState;
+ DisableFlags="SfxDisableFlags::SwOnProtectedCursor";
+ ]
+ SID_OBJECT_ALIGN_DOWN
+ [
+ ExecMethod = Execute;
+ StateMethod = GetState;
+ DisableFlags="SfxDisableFlags::SwOnProtectedCursor";
+ ]
}
diff --git a/sw/source/uibase/shells/drwbassh.cxx b/sw/source/uibase/shells/drwbassh.cxx
index fa8f4c5383c3..361d69bf81fa 100644
--- a/sw/source/uibase/shells/drwbassh.cxx
+++ b/sw/source/uibase/shells/drwbassh.cxx
@@ -107,14 +107,6 @@ void SwDrawBaseShell::Execute(SfxRequest &rReq)
if(pArgs)
pArgs->GetItemState(nSlotId, false, &pItem);
- //Special case align by menu
- if(pItem && nSlotId == SID_OBJECT_ALIGN)
- {
- OSL_ENSURE(dynamic_cast<const SfxEnumItemInterface*>( pItem),"SfxEnumItem expected" );
- nSlotId = nSlotId + static_cast<const SfxEnumItemInterface*>(pItem)->GetEnumValue();
- nSlotId++;
- }
-
bool bAlignPossible = pSh->IsAlignPossible();
bool bTopParam = true, bBottomParam = true;
@@ -671,17 +663,15 @@ void SwDrawBaseShell::GetState(SfxItemSet& rSet)
rSet.DisableItem( nWhich );
else
{
- SfxAllEnumItem aEnumItem(nWhich, USHRT_MAX);
const SdrMarkList& rMarkList = pSdrView->GetMarkedObjectList();
//if only one object is selected it can only be vertically
// aligned because it is character bound
if( rMarkList.GetMarkCount() == 1 )
{
- aEnumItem.DisableValue(SID_OBJECT_ALIGN_LEFT);
- aEnumItem.DisableValue(SID_OBJECT_ALIGN_CENTER);
- aEnumItem.DisableValue(SID_OBJECT_ALIGN_RIGHT);
+ rSet.DisableItem(SID_OBJECT_ALIGN_LEFT);
+ rSet.DisableItem(SID_OBJECT_ALIGN_CENTER);
+ rSet.DisableItem(SID_OBJECT_ALIGN_RIGHT);
}
- rSet.Put(aEnumItem);
}
break;
diff --git a/sw/source/uibase/shells/slotadd.cxx b/sw/source/uibase/shells/slotadd.cxx
index c0658a329e51..4ea84aa6969e 100644
--- a/sw/source/uibase/shells/slotadd.cxx
+++ b/sw/source/uibase/shells/slotadd.cxx
@@ -122,7 +122,6 @@
#include <svx/drawitem.hxx>
#include <avmedia/mediaitem.hxx>
-#define SvxDrawAlignItem SfxAllEnumItem
#define avmedia_MediaItem ::avmedia::MediaItem
#include <svx/xflftrit.hxx>
diff --git a/sw/source/uibase/uiview/view2.cxx b/sw/source/uibase/uiview/view2.cxx
index 558350d63e10..1e885c75eb74 100644
--- a/sw/source/uibase/uiview/view2.cxx
+++ b/sw/source/uibase/uiview/view2.cxx
@@ -1230,15 +1230,8 @@ void SwView::Execute(SfxRequest &rReq)
case SID_ALIGN_ANY_BOTTOM : nAlias = SID_OBJECT_ALIGN_DOWN ; break;
}
}
- //special handling for the draw shell
- if(nAlias && (m_nSelectionType & (nsSelectionType::SEL_DRW)))
- {
- SfxAllEnumItem aEnumItem(SID_OBJECT_ALIGN, nAlias - SID_OBJECT_ALIGN_LEFT);
- GetViewFrame()->GetDispatcher()->ExecuteList(SID_OBJECT_ALIGN,
- SfxCallMode::ASYNCHRON, { &aEnumItem });
- }
- else if(nAlias)
//these slots are either re-mapped to text or object alignment
+ if (nAlias)
GetViewFrame()->GetDispatcher()->Execute(
nAlias, SfxCallMode::ASYNCHRON);
}
diff --git a/sw/source/uibase/uiview/viewstat.cxx b/sw/source/uibase/uiview/viewstat.cxx
index 519e6c396e76..70468382d387 100644
--- a/sw/source/uibase/uiview/viewstat.cxx
+++ b/sw/source/uibase/uiview/viewstat.cxx
@@ -428,7 +428,6 @@ void SwView::GetState(SfxItemSet &rSet)
if( !m_pShell )
SelectShell();
sal_uInt16 nAlias = 0;
- bool bDraw = false;
if( m_nSelectionType & (nsSelectionType::SEL_DRW_TXT|nsSelectionType::SEL_TXT) )
{
switch( nWhich )
@@ -442,17 +441,6 @@ void SwView::GetState(SfxItemSet &rSet)
case SID_ALIGN_ANY_BOTTOM : nAlias = SID_TABLE_VERT_BOTTOM; break;
}
}
- else if(m_nSelectionType & (nsSelectionType::SEL_DRW))
- {
- //the draw shell cannot provide a status per item - only one for SID_OBJECT_ALIGN
- if(nWhich != SID_ALIGN_ANY_JUSTIFIED)
- {
- const SfxPoolItem* pItem = nullptr;
- GetViewFrame()->GetDispatcher()->QueryState( SID_OBJECT_ALIGN, pItem );
- if(pItem)
- bDraw = true;
- }
- }
else
{
switch( nWhich )
@@ -471,10 +459,13 @@ void SwView::GetState(SfxItemSet &rSet)
GetViewFrame()->GetDispatcher()->QueryState( nAlias, pState );
if(pState)
{
- std::unique_ptr<SfxPoolItem> pNewItem(pState->CloneSetWhich(nWhich));
- rSet.Put(*pNewItem);
+ if (!(m_nSelectionType & nsSelectionType::SEL_DRW))
+ {
+ std::unique_ptr<SfxPoolItem> pNewItem(pState->CloneSetWhich(nWhich));
+ rSet.Put(*pNewItem);
+ }
}
- else if(!bDraw)
+ else
rSet.DisableItem(nWhich);
}
break;