summaryrefslogtreecommitdiffstats
path: root/include/vcl/edit.hxx
diff options
context:
space:
mode:
authorMichael Meeks <michael.meeks@collabora.com>2015-01-01 09:42:15 +0000
committerMichael Meeks <michael.meeks@collabora.com>2015-04-09 19:53:19 +0100
commit2e03ce9e18ed9d3fe39e8ae847b803ab42234737 (patch)
tree9f5498aa24c1f864ed58cd2e7aa55cc5fbec8169 /include/vcl/edit.hxx
parentvcl: convert MessageDialog to use VclReferences. (diff)
downloadcore-2e03ce9e18ed9d3fe39e8ae847b803ab42234737.tar.gz
core-2e03ce9e18ed9d3fe39e8ae847b803ab42234737.zip
vcl: manage SubEdit with references - and fix leak / cleanup.
Change-Id: Icbfe237a55cfbd83739b055350d5a6a54a2fa36d Conflicts: vcl/source/control/edit.cxx
Diffstat (limited to 'include/vcl/edit.hxx')
-rw-r--r--include/vcl/edit.hxx13
1 files changed, 8 insertions, 5 deletions
diff --git a/include/vcl/edit.hxx b/include/vcl/edit.hxx
index ec05923011b8..5a28ecb58360 100644
--- a/include/vcl/edit.hxx
+++ b/include/vcl/edit.hxx
@@ -28,6 +28,7 @@
#include <vcl/ctrl.hxx>
#include <vcl/menu.hxx>
#include <vcl/dndhelp.hxx>
+#include <vcl/vclref.hxx>
#include <com/sun/star/uno/Reference.h>
namespace com {
@@ -68,7 +69,7 @@ enum AutocompleteAction{ AUTOCOMPLETE_KEYINPUT, AUTOCOMPLETE_TABFORWARD, AUTOCOM
class VCL_DLLPUBLIC Edit : public Control, public vcl::unohelper::DragAndDropClient
{
private:
- Edit* mpSubEdit;
+ VclReference<Edit> mpSubEdit;
Timer* mpUpdateDataTimer;
TextFilter* mpFilterText;
DDInfo* mpDDInfo;
@@ -85,7 +86,7 @@ private:
sal_Int32 mnMaxWidthChars;
AutocompleteAction meAutocompleteAction;
sal_Unicode mcEchoChar;
- bool mbModified:1,
+ bool mbModified:1,
mbInternModified:1,
mbReadOnly:1,
mbInsertMode:1,
@@ -164,6 +165,7 @@ public:
Edit( vcl::Window* pParent, WinBits nStyle = WB_BORDER );
Edit( vcl::Window* pParent, const ResId& rResId );
virtual ~Edit();
+ virtual void dispose() SAL_OVERRIDE;
virtual void MouseButtonDown( const MouseEvent& rMEvt ) SAL_OVERRIDE;
virtual void MouseButtonUp( const MouseEvent& rMEvt ) SAL_OVERRIDE;
@@ -186,7 +188,7 @@ public:
virtual void SetModifyFlag();
virtual void ClearModifyFlag();
- virtual bool IsModified() const { return mpSubEdit ? mpSubEdit->mbModified : mbModified; }
+ virtual bool IsModified() const { return mpSubEdit.get() ? mpSubEdit->mbModified : mbModified; }
virtual void EnableUpdateData( sal_uLong nTimeout = EDIT_UPDATEDATA_TIMEOUT );
virtual void DisableUpdateData() { delete mpUpdateDataTimer; mpUpdateDataTimer = NULL; }
@@ -235,8 +237,8 @@ public:
virtual const Link& GetModifyHdl() const { return maModifyHdl; }
virtual void SetUpdateDataHdl( const Link& rLink ) { maUpdateDataHdl = rLink; }
- void SetSubEdit( Edit* pEdit );
- Edit* GetSubEdit() const { return mpSubEdit; }
+ void SetSubEdit( VclReference<Edit> pEdit );
+ Edit* GetSubEdit() const { return mpSubEdit.get(); }
boost::signals2::signal< void ( Edit* ) > autocompleteSignal;
AutocompleteAction GetAutocompleteAction() const { return meAutocompleteAction; }
@@ -268,6 +270,7 @@ public:
// global style settings (needed by sc's inputwin.cxx)
static Size GetMinimumEditSize();
};
+typedef VclReference<Edit> EditRef;
#endif // INCLUDED_VCL_EDIT_HXX