summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--basctl/source/basicide/baside2.cxx4
-rw-r--r--basctl/source/basicide/baside3.cxx41
-rw-r--r--basctl/source/basicide/basides1.cxx17
-rw-r--r--basctl/source/basicide/iderdll.cxx2
-rw-r--r--basctl/source/basicide/layout.hxx1
-rw-r--r--basctl/source/dlged/dlged.cxx20
-rw-r--r--basctl/source/dlged/propbrw.cxx47
-rw-r--r--basctl/source/inc/baside3.hxx11
-rw-r--r--basctl/source/inc/dlged.hxx7
-rw-r--r--basctl/source/inc/propbrw.hxx30
10 files changed, 71 insertions, 109 deletions
diff --git a/basctl/source/basicide/baside2.cxx b/basctl/source/basicide/baside2.cxx
index d0726d474341..49a88f7b3334 100644
--- a/basctl/source/basicide/baside2.cxx
+++ b/basctl/source/basicide/baside2.cxx
@@ -1533,6 +1533,10 @@ void ModulWindowLayout::GetState (SfxItemSet &rSet, unsigned nWhich)
{
switch (nWhich)
{
+ case SID_SHOW_PROPERTYBROWSER:
+ rSet.Put(SfxVisibilityItem(nWhich, false));
+ break;
+
case SID_BASICIDE_CHOOSEMACRO:
rSet.Put(SfxVisibilityItem(nWhich, true));
break;
diff --git a/basctl/source/basicide/baside3.cxx b/basctl/source/basicide/baside3.cxx
index 6bfe6e4acc19..3f879673a5da 100644
--- a/basctl/source/basicide/baside3.cxx
+++ b/basctl/source/basicide/baside3.cxx
@@ -86,7 +86,7 @@ DialogWindow::DialogWindow (
{
InitSettings( true, true, true );
- pEditor = new DlgEditor( rDocument.isDocument() ? rDocument.getDocument() : Reference< frame::XModel >() );
+ pEditor = new DlgEditor(rDocument.isDocument() ? rDocument.getDocument() : Reference<frame::XModel>(), rLayout.aPropertyBrowser);
pEditor->SetWindow( this );
pEditor->SetDialog( xDialogModel );
@@ -683,20 +683,12 @@ bool DialogWindow::RenameDialog( const ::rtl::OUString& rNewName )
void DialogWindow::DisableBrowser()
{
- Shell* pShell = GetShell();
- SfxViewFrame* pViewFrame = pShell ? pShell->GetViewFrame() : 0;
- SfxChildWindow* pChildWin = pViewFrame ? pViewFrame->GetChildWindow(SID_SHOW_PROPERTYBROWSER) : 0;
- if( pChildWin )
- ((PropBrw*)(pChildWin->GetWindow()))->Update( NULL );
+ rLayout.aPropertyBrowser.Update(0);
}
void DialogWindow::UpdateBrowser()
{
- Shell* pShell = GetShell();
- SfxViewFrame* pViewFrame = pShell ? pShell->GetViewFrame() : 0;
- SfxChildWindow* pChildWin = pViewFrame ? pViewFrame->GetChildWindow(SID_SHOW_PROPERTYBROWSER) : 0;
- if( pChildWin )
- ((PropBrw*)(pChildWin->GetWindow()))->Update( pShell );
+ rLayout.aPropertyBrowser.Update(GetShell());
}
static ::rtl::OUString aResourceResolverPropName( RTL_CONSTASCII_USTRINGPARAM( "ResourceResolver" ));
@@ -1440,7 +1432,8 @@ ItemType DialogWindow::GetType () const
DialogWindowLayout::DialogWindowLayout (Window* pParent, ObjectCatalog& rObjectCatalog_) :
Layout(pParent),
pChild(0),
- rObjectCatalog(rObjectCatalog_)
+ rObjectCatalog(rObjectCatalog_),
+ aPropertyBrowser(*this)
{ }
void DialogWindowLayout::Activating (BaseWindow& rChild)
@@ -1450,6 +1443,7 @@ void DialogWindowLayout::Activating (BaseWindow& rChild)
rObjectCatalog.SetLayoutWindow(this);
rObjectCatalog.UpdateEntries();
rObjectCatalog.Show();
+ aPropertyBrowser.Show();
Layout::Activating(rChild);
}
@@ -1457,13 +1451,33 @@ void DialogWindowLayout::Deactivating ()
{
Layout::Deactivating();
rObjectCatalog.Hide();
+ aPropertyBrowser.Hide();
pChild = 0;
}
+void DialogWindowLayout::ExecuteGlobal (SfxRequest& rReq)
+{
+ switch (rReq.GetSlot())
+ {
+ case SID_SHOW_PROPERTYBROWSER:
+ // toggling property browser
+ aPropertyBrowser.Show(!aPropertyBrowser.IsVisible());
+ ArrangeWindows();
+ // refresh the button state
+ if (SfxBindings* pBindings = GetBindingsPtr())
+ pBindings->Invalidate(SID_SHOW_PROPERTYBROWSER);
+ break;
+ }
+}
+
void DialogWindowLayout::GetState (SfxItemSet& rSet, unsigned nWhich)
{
switch (nWhich)
{
+ case SID_SHOW_PROPERTYBROWSER:
+ rSet.Put(SfxBoolItem(nWhich, aPropertyBrowser.IsVisible()));
+ break;
+
case SID_BASICIDE_CHOOSEMACRO:
rSet.Put(SfxVisibilityItem(nWhich, false));
break;
@@ -1472,7 +1486,8 @@ void DialogWindowLayout::GetState (SfxItemSet& rSet, unsigned nWhich)
void DialogWindowLayout::OnFirstSize (int const nWidth, int const nHeight)
{
- AddToLeft(&rObjectCatalog, Size(nWidth * 0.2, nHeight));
+ AddToLeft(&rObjectCatalog, Size(nWidth * 0.25, nHeight * 0.35));
+ AddToLeft(&aPropertyBrowser, Size(nWidth * 0.25, nHeight * 0.65));
}
diff --git a/basctl/source/basicide/basides1.cxx b/basctl/source/basicide/basides1.cxx
index e36eaf3cbd64..7244f092098d 100644
--- a/basctl/source/basicide/basides1.cxx
+++ b/basctl/source/basicide/basides1.cxx
@@ -560,12 +560,6 @@ void Shell::ExecuteGlobal( SfxRequest& rReq )
pTabBar->MakeVisible( pTabBar->GetCurPageId() );
}
break;
- case SID_SHOW_PROPERTYBROWSER:
- {
- GetViewFrame()->ChildWindowExecute( rReq );
- rReq.Done();
- }
- break;
case SID_BASICIDE_SHOWWINDOW:
{
::std::auto_ptr< ScriptDocument > pDocument;
@@ -694,6 +688,8 @@ void Shell::ExecuteGlobal( SfxRequest& rReq )
break;
default:
+ if (pLayout)
+ pLayout->ExecuteGlobal(rReq);
if (pCurWin)
pCurWin->ExecuteGlobal(rReq);
break;
@@ -908,15 +904,6 @@ void Shell::GetState(SfxItemSet &rSet)
GetViewFrame()->GetSlotState( nWh, NULL, &rSet );
}
break;
- case SID_SHOW_PROPERTYBROWSER:
- {
- if ( GetViewFrame()->KnowsChildWindow( nWh ) )
- rSet.Put( SfxBoolItem( nWh, GetViewFrame()->HasChildWindow( nWh ) ) );
- else
- rSet.DisableItem( nWh );
- }
- break;
-
case SID_BASICIDE_CURRENT_LANG:
{
if( (pCurWin && pCurWin->IsReadOnly()) || GetCurLibName().isEmpty() )
diff --git a/basctl/source/basicide/iderdll.cxx b/basctl/source/basicide/iderdll.cxx
index 75b5c31f347c..1923141bd92c 100644
--- a/basctl/source/basicide/iderdll.cxx
+++ b/basctl/source/basicide/iderdll.cxx
@@ -142,8 +142,6 @@ Dll::Dll () :
DocShell::RegisterInterface( pMod );
Shell::RegisterFactory( SVX_INTERFACE_BASIDE_VIEWSH );
Shell::RegisterInterface( pMod );
-
- PropBrwMgr::RegisterChildWindow();
}
ExtraData* Dll::GetExtraData ()
diff --git a/basctl/source/basicide/layout.hxx b/basctl/source/basicide/layout.hxx
index 6adaeebde151..9f56321aad09 100644
--- a/basctl/source/basicide/layout.hxx
+++ b/basctl/source/basicide/layout.hxx
@@ -49,6 +49,7 @@ public:
virtual void Activating (BaseWindow&);
virtual void Deactivating ();
+ virtual void ExecuteGlobal (SfxRequest&) { }
virtual void GetState (SfxItemSet&, unsigned nWhich) = 0;
virtual void UpdateDebug (bool bBasicStopped ) = 0;
diff --git a/basctl/source/dlged/dlged.cxx b/basctl/source/dlged/dlged.cxx
index 857ac1df8230..67e6d6569023 100644
--- a/basctl/source/dlged/dlged.cxx
+++ b/basctl/source/dlged/dlged.cxx
@@ -174,7 +174,10 @@ bool DlgEditor::RemarkDialog()
}
-DlgEditor::DlgEditor( const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XModel >& xModel )
+DlgEditor::DlgEditor (
+ com::sun::star::uno::Reference<com::sun::star::frame::XModel> const& xModel,
+ PropBrw& rPropertyBrowser_
+)
:pHScroll(NULL)
,pVScroll(NULL)
,pDlgEdModel(NULL)
@@ -187,6 +190,7 @@ DlgEditor::DlgEditor( const ::com::sun::star::uno::Reference< ::com::sun::star::
,pObjFac(NULL)
,pWindow(NULL)
,pFunc(NULL)
+ ,rPropertyBrowser(rPropertyBrowser_)
,eMode( DlgEditor::SELECT )
,eActObj( OBJ_DLG_PUSHBUTTON )
,bFirstDraw(false)
@@ -608,14 +612,7 @@ IMPL_LINK_NOARG(DlgEditor, PaintTimeout)
IMPL_LINK_NOARG(DlgEditor, MarkTimeout)
{
- Shell* pShell = GetShell();
- SfxViewFrame* pViewFrame = pShell ? pShell->GetViewFrame() : NULL;
- SfxChildWindow* pChildWin = pViewFrame ? pViewFrame->GetChildWindow( SID_SHOW_PROPERTYBROWSER ) : NULL;
- if ( !pChildWin )
- return 0L;
-
- ((PropBrw*)(pChildWin->GetWindow()))->Update(pShell);
-
+ rPropertyBrowser.Update(GetShell());
return 1;
}
@@ -1128,10 +1125,7 @@ bool DlgEditor::IsPasteAllowed()
void DlgEditor::ShowProperties()
{
- Shell* pShell = GetShell();
- SfxViewFrame* pViewFrame = pShell ? pShell->GetViewFrame() : NULL;
- if ( pViewFrame && !pViewFrame->HasChildWindow( SID_SHOW_PROPERTYBROWSER ) )
- pViewFrame->ToggleChildWindow( SID_SHOW_PROPERTYBROWSER );
+ rPropertyBrowser.Show(!rPropertyBrowser.IsVisible());
}
diff --git a/basctl/source/dlged/propbrw.cxx b/basctl/source/dlged/propbrw.cxx
index 40695f3a09ba..c3bd5d2783f0 100644
--- a/basctl/source/dlged/propbrw.cxx
+++ b/basctl/source/dlged/propbrw.cxx
@@ -18,10 +18,10 @@
*/
+#include "propbrw.hxx"
#include "basidesh.hxx"
#include "dlgedobj.hxx"
#include "iderid.hxx"
-#include "propbrw.hxx"
#include "dlgresid.hrc"
#include <svx/svxids.hrc>
@@ -48,28 +48,6 @@ using namespace ::com::sun::star::beans;
using namespace ::com::sun::star::container;
using namespace ::comphelper;
-SFX_IMPL_FLOATINGWINDOW(PropBrwMgr, SID_SHOW_PROPERTYBROWSER)
-
-PropBrwMgr::PropBrwMgr( Window* _pParent, sal_uInt16 nId,
- SfxBindings *pBindings, SfxChildWinInfo* pInfo)
- :SfxChildWindow( _pParent, nId )
-{
- // set current selection
- SfxViewShell* pShell = SfxViewShell::Current();
- pWindow = new PropBrw(
- ::comphelper::getProcessServiceFactory(),
- pBindings,
- this,
- _pParent,
- pShell ? pShell->GetCurrentDocument() : Reference< XModel >()
- );
-
- eChildAlignment = SFX_ALIGN_NOALIGNMENT;
- ((SfxDockingWindow*)pWindow)->Initialize( pInfo );
-
- ((PropBrw*)pWindow)->Update( pShell );
-}
-
void PropBrw::Update( const SfxViewShell* pShell )
{
@@ -101,13 +79,12 @@ const long WIN_BORDER = 2;
DBG_NAME(PropBrw)
-PropBrw::PropBrw( const Reference< XMultiServiceFactory >& _xORB, SfxBindings* _pBindings, PropBrwMgr* _pMgr, Window* _pParent,
- const Reference< XModel >& _rxContextDocument )
- :SfxDockingWindow( _pBindings, _pMgr, _pParent, WinBits( WB_DOCKABLE | WB_STDMODELESS | WB_SIZEABLE | WB_3DLOOK | WB_ROLLABLE ) )
- ,m_bInitialStateChange(true)
- ,m_xORB(_xORB)
- ,m_xContextDocument( _rxContextDocument )
- ,pView( NULL )
+PropBrw::PropBrw (Layout& rLayout):
+ DockingWindow(&rLayout),
+ m_bInitialStateChange(true),
+ m_xORB(comphelper::getProcessServiceFactory()),
+ m_xContextDocument(SfxViewShell::Current() ? SfxViewShell::Current()->GetCurrentDocument() : Reference<XModel>()),
+ pView(0)
{
DBG_CTOR(PropBrw,NULL);
@@ -260,7 +237,7 @@ sal_Bool PropBrw::Close()
if( IsRollUp() )
RollDown();
- return SfxDockingWindow::Close();
+ return DockingWindow::Close();
}
@@ -450,15 +427,9 @@ void PropBrw::implSetNewObject( const Reference< XPropertySet >& _rxObject )
}
-void PropBrw::FillInfo( SfxChildWinInfo& rInfo ) const
-{
- rInfo.bVisible = false;
-}
-
-
void PropBrw::Resize()
{
- SfxDockingWindow::Resize();
+ DockingWindow::Resize();
// adjust size
Size aSize_ = GetOutputSizePixel();
diff --git a/basctl/source/inc/baside3.hxx b/basctl/source/inc/baside3.hxx
index feb679dbcdb7..6f4d86e61335 100644
--- a/basctl/source/inc/baside3.hxx
+++ b/basctl/source/inc/baside3.hxx
@@ -21,7 +21,9 @@
#define BASCTL_BASIDE3_HXX
#include "../basicide/layout.hxx"
-#include <bastypes.hxx>
+#include "bastypes.hxx"
+#include "propbrw.hxx"
+
#include <svl/undo.hxx>
#include <vcl/dialog.hxx>
#include <vcl/button.hxx>
@@ -126,6 +128,7 @@ public:
// Layout:
virtual void Activating (BaseWindow&);
virtual void Deactivating ();
+ virtual void ExecuteGlobal (SfxRequest&);
virtual void GetState (SfxItemSet&, unsigned nWhich);
virtual void UpdateDebug (bool){};
protected:
@@ -137,7 +140,11 @@ private:
DialogWindow* pChild;
// dockable windows
ObjectCatalog& rObjectCatalog;
- // TODO property browser
+ // property browser
+ PropBrw aPropertyBrowser;
+
+private:
+ friend class DialogWindow;
};
diff --git a/basctl/source/inc/dlged.hxx b/basctl/source/inc/dlged.hxx
index a8e8fc3d7065..9f52cd4fd087 100644
--- a/basctl/source/inc/dlged.hxx
+++ b/basctl/source/inc/dlged.hxx
@@ -40,6 +40,8 @@ class Window;
namespace basctl
{
+class PropBrw;
+
#define DLGED_PAGE_WIDTH_MIN 1280
#define DLGED_PAGE_HEIGHT_MIN 1024
@@ -102,7 +104,7 @@ private:
void Print( Printer* pPrinter, const ::rtl::OUString& rTitle );
-protected:
+private:
ScrollBar* pHScroll;
ScrollBar* pVScroll;
DlgEdModel* pDlgEdModel;
@@ -117,6 +119,7 @@ protected:
DlgEdFactory* pObjFac;
Window* pWindow;
DlgEdFunc* pFunc;
+ PropBrw& rPropertyBrowser;
Mode eMode;
sal_uInt16 eActObj;
bool bFirstDraw;
@@ -133,7 +136,7 @@ protected:
DlgEditor(); // not implemented
public:
- DlgEditor( const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XModel >& xModel );
+ DlgEditor (com::sun::star::uno::Reference<com::sun::star::frame::XModel> const& xModel, PropBrw&);
~DlgEditor();
void SetWindow( Window* pWindow );
diff --git a/basctl/source/inc/propbrw.hxx b/basctl/source/inc/propbrw.hxx
index ccf2a9ad4768..a3bbad99b862 100644
--- a/basctl/source/inc/propbrw.hxx
+++ b/basctl/source/inc/propbrw.hxx
@@ -22,33 +22,21 @@
#include <com/sun/star/beans/XPropertySet.hpp>
#include <comphelper/stl_types.hxx>
-#include <sfx2/basedlgs.hxx>
-#include <sfx2/dockwin.hxx>
#include <svl/lstner.hxx>
+#include <svl/brdcst.hxx>
#include <svx/svdmark.hxx>
+#include "bastypes.hxx"
class SfxBindings;
class SdrView;
+class SfxViewShell;
namespace basctl
{
-//============================================================================
-// PropBrwMgr
-//============================================================================
+class Layout;
-class PropBrwMgr : public SfxChildWindow
-{
-public:
- PropBrwMgr(Window *pParent, sal_uInt16 nId, SfxBindings *pBindings, SfxChildWinInfo *pInfo);
- SFX_DECL_CHILDWINDOW(PropBrwMgr);
-};
-
-//============================================================================
-// PropBrw
-//============================================================================
-
-class PropBrw : public SfxDockingWindow , public SfxListener, public SfxBroadcaster
+class PropBrw : public DockingWindow, public SfxListener, public SfxBroadcaster
{
private:
bool m_bInitialStateChange;
@@ -67,7 +55,6 @@ private:
protected:
SdrView* pView;
virtual void Resize();
- virtual void FillInfo( SfxChildWinInfo& rInfo ) const;
virtual sal_Bool Close();
DECLARE_STL_VECTOR(::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface>, InterfaceArray);
@@ -84,12 +71,7 @@ protected:
const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& _rxObject);
public:
- PropBrw( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& _xORB,
- SfxBindings *pBindings,
- PropBrwMgr* pMgr,
- Window* pParent,
- const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XModel >& _rxContextDocument
- );
+ explicit PropBrw (Layout&);
virtual ~PropBrw();
using Window::Update;
// note: changing the Context document to an instance other than the one given in the ctor is not supported