blob: cdcbe70ead1a35e810f8a3a7d2110687e82ce4de [file] [log] [blame]
/**************************************************************
*
* 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
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*
*************************************************************/
#ifndef _MACROASS_HXX
#define _MACROASS_HXX
#include "sal/config.h"
#include <sfx2/basedlgs.hxx>
#include <sfx2/tabdlg.hxx>
#include <svl/macitem.hxx>
#include <vcl/lstbox.hxx>
#include <com/sun/star/frame/XFrame.hpp>
class _SfxMacroTabPage;
class SvStringsDtor;
class SvTabListBox;
class Edit;
class String;
class SfxConfigGroupListBox_Impl;
class SfxConfigFunctionListBox_Impl;
class _HeaderTabListBox;
class _SfxMacroTabPage_Impl;
class _SfxMacroTabPage : public SfxTabPage
{
SvxMacroTableDtor aTbl;
DECL_DLLPRIVATE_STATIC_LINK( _SfxMacroTabPage, SelectEvent_Impl, SvTabListBox * );
DECL_DLLPRIVATE_STATIC_LINK( _SfxMacroTabPage, SelectGroup_Impl, ListBox * );
DECL_DLLPRIVATE_STATIC_LINK( _SfxMacroTabPage, SelectMacro_Impl, ListBox * );
DECL_DLLPRIVATE_STATIC_LINK( _SfxMacroTabPage, DoubleClickHdl_Impl, Control* );
DECL_DLLPRIVATE_STATIC_LINK( _SfxMacroTabPage, AssignDeleteHdl_Impl, PushButton * );
DECL_DLLPRIVATE_STATIC_LINK( _SfxMacroTabPage, TimeOut_Impl, Timer* );
protected:
_SfxMacroTabPage_Impl* mpImpl;
_SfxMacroTabPage( Window* pParent, const ResId& rId, const SfxItemSet& rItemSet );
void InitAndSetHandler();
void FillEvents();
void FillMacroList();
void EnableButtons();
public:
virtual ~_SfxMacroTabPage();
void AddEvent( const String & rEventName, sal_uInt16 nEventId );
const SvxMacroTableDtor& GetMacroTbl() const;
void SetMacroTbl( const SvxMacroTableDtor& rTbl );
void ClearMacroTbl();
virtual void ScriptChanged();
virtual void PageCreated (SfxAllItemSet aSet);
// --------- Erben aus der Basis -------------
virtual sal_Bool FillItemSet( SfxItemSet& rSet );
virtual void Reset( const SfxItemSet& rSet );
sal_Bool IsReadOnly() const;
};
inline const SvxMacroTableDtor& _SfxMacroTabPage::GetMacroTbl() const
{
return aTbl;
}
inline void _SfxMacroTabPage::SetMacroTbl( const SvxMacroTableDtor& rTbl )
{
aTbl = rTbl;
}
inline void _SfxMacroTabPage::ClearMacroTbl()
{
aTbl.DelDtor();
}
class SfxMacroTabPage : public _SfxMacroTabPage
{
public:
SfxMacroTabPage(
Window* pParent,
const ResId& rId,
const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XFrame >& rxDocumentFrame,
const SfxItemSet& rSet
);
// --------- Erben aus der Basis -------------
static SfxTabPage* Create( Window* pParent, const SfxItemSet& rAttrSet );
};
class SfxMacroAssignDlg : public SfxSingleTabDialog
{
public:
SfxMacroAssignDlg(
Window* pParent,
const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XFrame >& rxDocumentFrame,
const SfxItemSet& rSet );
virtual ~SfxMacroAssignDlg();
};
#endif