summaryrefslogtreecommitdiff
path: root/dbaccess/source/ui/app/AppDetailView.hxx
diff options
context:
space:
mode:
Diffstat (limited to 'dbaccess/source/ui/app/AppDetailView.hxx')
-rw-r--r--dbaccess/source/ui/app/AppDetailView.hxx171
1 files changed, 60 insertions, 111 deletions
diff --git a/dbaccess/source/ui/app/AppDetailView.hxx b/dbaccess/source/ui/app/AppDetailView.hxx
index 38bc41ab1e46..9b0df37bcfdd 100644
--- a/dbaccess/source/ui/app/AppDetailView.hxx
+++ b/dbaccess/source/ui/app/AppDetailView.hxx
@@ -16,87 +16,37 @@
* 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_DBACCESS_SOURCE_UI_APP_APPDETAILVIEW_HXX
-#define INCLUDED_DBACCESS_SOURCE_UI_APP_APPDETAILVIEW_HXX
+#pragma once
#include <com/sun/star/container/XNameAccess.hpp>
#include <com/sun/star/sdbc/XConnection.hpp>
#include <com/sun/star/ucb/XContent.hpp>
#include <com/sun/star/sdb/application/NamedDatabaseObject.hpp>
-#include <vcl/split.hxx>
-#include <vcl/fixed.hxx>
#include <vcl/mnemonic.hxx>
#include <IClipBoardTest.hxx>
#include "AppTitleWindow.hxx"
#include <AppElementType.hxx>
-#include <vcl/treelistbox.hxx>
-#include <VertSplitView.hxx>
#include <vector>
-class SvTreeListEntry;
-
namespace dbaui
{
class OAppBorderWindow;
class OApplicationDetailView;
class OAppDetailPageHelper;
- class OTasksWindow;
-
- class OCreationList : public SvTreeListBox
- {
- OTasksWindow& m_rTaskWindow;
-
- // members related to drawing the currently hovered/selected entry
- SvTreeListEntry* m_pMouseDownEntry;
- SvTreeListEntry* m_pLastActiveEntry;
- Color m_aOriginalBackgroundColor;
- vcl::Font m_aOriginalFont;
-
- public:
- explicit OCreationList( OTasksWindow& _rParent );
- // Window overrides
- virtual void MouseMove( const MouseEvent& rMEvt ) override;
- virtual void MouseButtonDown( const MouseEvent& rMEvt ) override;
- virtual void MouseButtonUp( const MouseEvent& rMEvt ) override;
- virtual void KeyInput( const KeyEvent& rKEvt ) override;
- virtual void Paint(vcl::RenderContext& rRenderContext, const tools::Rectangle& rRect) override;
- virtual void StartDrag( sal_Int8 _nAction, const Point& _rPosPixel ) override;
- virtual void GetFocus() override;
- virtual void LoseFocus() override;
-
- void resetLastActive() { m_pLastActiveEntry = nullptr;}
-
- void updateHelpText();
-
- protected:
- virtual void PreparePaint(vcl::RenderContext& rRenderContext, SvTreeListEntry& rEntry) override;
- virtual tools::Rectangle GetFocusRect(const SvTreeListEntry* _pEntry, long _nLine) override;
- virtual void ModelHasCleared() override;
-
- // IMnemonicEntryList
- virtual void SelectSearchEntry( const void* _pEntry ) override;
- virtual void ExecuteSearchEntry( const void* _pEntry ) const override;
-
- private:
- void onSelected( SvTreeListEntry const * _pEntry ) const;
- /** sets a new current entry, and invalidates the old and the new one, if necessary
- @return <TRUE/> if and only if the "current entry" changed
- */
- bool setCurrentEntryInvalidate( SvTreeListEntry* _pEntry );
- };
+ class TreeListBox;
struct TaskEntry
{
OUString sUNOCommand;
- const char* pHelpID;
+ TranslateId pHelpID;
OUString sTitle;
bool bHideWhenDisabled;
// TODO: we should be consistent in the task pane and the menus/toolbars:
// If an entry is disabled in the latter, it should also be disabled in the former.
// If an entry is *hidden* in the former, it should also be hidden in the latter.
- TaskEntry( const char* _pAsciiUNOCommand, const char* pHelpID, const char* pTitleResourceID, bool _bHideWhenDisabled = false );
+ TaskEntry( const OUString& _rAsciiUNOCommand, TranslateId pHelpID, TranslateId pTitleResourceID, bool _bHideWhenDisabled = false );
};
typedef std::vector< TaskEntry > TaskEntryList;
@@ -105,63 +55,62 @@ namespace dbaui
/// the tasks available in the pane
TaskEntryList aTasks;
/// the resource ID for the title of the pane
- const char* pTitleId;
+ TranslateId pTitleId;
};
- class OTasksWindow : public vcl::Window
+ class OTasksWindow final : public OChildWindow
{
- VclPtr<OCreationList> m_aCreation;
- VclPtr<FixedText> m_aDescription;
- VclPtr<FixedText> m_aHelpText;
- VclPtr<FixedLine> m_aFL;
- VclPtr<OApplicationDetailView> m_pDetailView;
-
- DECL_LINK( OnEntrySelectHdl, SvTreeListBox*, void );
- void ImplInitSettings();
- protected:
- virtual void DataChanged(const DataChangedEvent& rDCEvt) override;
+ std::unique_ptr<weld::TreeView> m_xTreeView;
+ std::unique_ptr<weld::Label> m_xDescription;
+ std::unique_ptr<weld::TextView> m_xHelpText;
+ OApplicationDetailView* m_pDetailView;
+
+ int m_nCursorIndex;
+
+ DECL_LINK(onSelected, weld::TreeView&, bool);
+ DECL_LINK(OnEntrySelectHdl, weld::TreeView&, void);
+ DECL_LINK(FocusInHdl, weld::Widget&, void);
+ DECL_LINK(FocusOutHdl, weld::Widget&, void);
+
+ void updateHelpText();
+
public:
- OTasksWindow(vcl::Window* _pParent,OApplicationDetailView* _pDetailView);
- virtual ~OTasksWindow() override;
- virtual void dispose() override;
+ OTasksWindow(weld::Container* pParent, OApplicationDetailView* pDetailView);
+ ~OTasksWindow();
+
+ virtual void GrabFocus() override;
- // Window overrides
- virtual void Resize() override;
+ virtual bool HasChildPathFocus() const override;
OApplicationDetailView* getDetailView() const { return m_pDetailView; }
/// fills the Creation listbox with the necessary strings and images
void fillTaskEntryList( const TaskEntryList& _rList );
- bool HandleKeyInput( const KeyEvent& _rKEvt )
- {
- return m_aCreation->HandleKeyInput( _rKEvt );
- }
-
void Clear();
- void setHelpText(const char* pId);
+ void setHelpText(TranslateId pId);
};
- class OApplicationDetailView : public OSplitterView
- , public IClipboardTest
+
+ class OApplicationDetailView final : public IClipboardTest
{
- VclPtr<Splitter> m_aHorzSplitter;
- VclPtr<OTitleWindow> m_aTasks;
- VclPtr<OTitleWindow> m_aContainer;
+ std::unique_ptr<weld::Builder> m_xBuilder;
+ std::unique_ptr<weld::Container> m_xContainer;
+ std::unique_ptr<weld::Paned> m_xHorzSplitter;
+ std::unique_ptr<weld::Container> m_xTasksParent;
+ std::unique_ptr<weld::Container> m_xContainerParent;
+ std::unique_ptr<OTitleWindow> m_xTasks;
+ std::unique_ptr<OTitleWindow> m_xTitleContainer;
OAppBorderWindow& m_rBorderWin; // my parent
- VclPtr<OAppDetailPageHelper> m_pControlHelper;
- std::vector< TaskPaneData > m_aTaskPaneData;
+ std::shared_ptr<OChildWindow> m_xControlHelper;
+ std::vector< TaskPaneData > m_aTaskPaneData;
MnemonicGenerator m_aExternalMnemonics;
- void ImplInitSettings();
-
- protected:
- virtual void DataChanged(const DataChangedEvent& rDCEvt) override;
+ const OAppDetailPageHelper* GetControlHelper() const;
+ OAppDetailPageHelper* GetControlHelper();
public:
- OApplicationDetailView(OAppBorderWindow& _rParent,PreviewMode _ePreviewMode);
- virtual ~OApplicationDetailView() override;
- // Window overrides
- virtual void dispose() override;
+ OApplicationDetailView(weld::Container* pParent, OAppBorderWindow& rBorder, PreviewMode ePreviewMode);
+ ~OApplicationDetailView();
/** creates the tables page
@param _xConnection
@@ -179,16 +128,8 @@ namespace dbaui
void setTaskExternalMnemonics( MnemonicGenerator const & _rMnemonics );
- /** called to give the window the chance to intercept key events, while it has not
- the focus
-
- @return <TRUE/> if and only if the event has been handled, and should not
- not be further processed
- */
- bool interceptKeyInput( const KeyEvent& _rEvent );
-
OAppBorderWindow& getBorderWin() const { return m_rBorderWin; }
- OTasksWindow& getTasksWindow() const { return *static_cast< OTasksWindow* >( m_aTasks->getChildWindow() ); }
+ OTasksWindow& getTasksWindow() const { return *static_cast< OTasksWindow* >( m_xTasks->getChildWindow() ); }
bool isCutAllowed() override ;
bool isCopyAllowed() override ;
@@ -204,15 +145,17 @@ namespace dbaui
@return
the qualified name
*/
- OUString getQualifiedName( SvTreeListEntry* _pEntry ) const;
+ OUString getQualifiedName(const weld::TreeIter* _pEntry) const;
/** returns if an entry is a leaf
- @param _pEntry
+ @param rTreeView
+ The TreeView pEntry belongs to
+ @param rEntry
The entry to check
@return
<TRUE/> if the entry is a leaf, otherwise <FALSE/>
*/
- static bool isLeaf(SvTreeListEntry const * _pEntry);
+ static bool isLeaf(const weld::TreeView& rTreeView, const weld::TreeIter& rEntry);
/** returns if one of the selected entries is a leaf
@return
@@ -260,7 +203,7 @@ namespace dbaui
/** describes the current selection for the given control
*/
void describeCurrentSelectionForControl(
- const Control& _rControl,
+ const weld::TreeView& rControl,
css::uno::Sequence< css::sdb::application::NamedDatabaseObject >& _out_rSelectedObjects
);
@@ -271,6 +214,11 @@ namespace dbaui
css::uno::Sequence< css::sdb::application::NamedDatabaseObject >& _out_rSelectedObjects
);
+ /** get the menu parent window for the given control
+ */
+ vcl::Window* getMenuParent() const;
+ void adjustMenuPosition(const weld::TreeView& rControl, ::Point& rPos) const;
+
/** select all names on the currently selected container. Non existence names where ignored.
*
* \param _aNames the element names
@@ -287,9 +235,9 @@ namespace dbaui
@param _rxConn
If we insert a table, the connection must be set.
*/
- SvTreeListEntry* elementAdded(ElementType eType
- ,const OUString& _rName
- ,const css::uno::Any& _rObject );
+ std::unique_ptr<weld::TreeIter> elementAdded(ElementType eType,
+ const OUString& rName,
+ const css::uno::Any& rObject);
/** replaces an objects name with a new one
@param _eType
@@ -349,9 +297,11 @@ namespace dbaui
const OUString& _sName,
bool _bTable);
- SvTreeListEntry* getEntry( const Point& _aPoint ) const;
+ std::unique_ptr<weld::TreeIter> getEntry(const Point& rPosPixel) const;
+
+ TreeListBox* getTreeWindow() const;
- vcl::Window* getTreeWindow() const;
+ bool HasChildPathFocus() const;
private:
void impl_createPage(
ElementType _eType,
@@ -363,6 +313,5 @@ namespace dbaui
void impl_fillTaskPaneData( ElementType _eType, TaskPaneData& _rData ) const;
};
}
-#endif // INCLUDED_DBACCESS_SOURCE_UI_APP_APPDETAILVIEW_HXX
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */