| /************************************************************** |
| * |
| * 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 SV_PROPERTY_HXX |
| #define SV_PROPERTY_HXX |
| |
| #ifndef _VIRDEV_HXX //autogen |
| #include <vcl/virdev.hxx> |
| #endif |
| #ifndef SV_FIXED_HXX |
| #include <vcl/fixed.hxx> |
| #endif |
| #ifndef SV_LSTBOX_HXX |
| #include <vcl/lstbox.hxx> |
| #endif |
| #ifndef SV_GROUP_HXX |
| #include <vcl/group.hxx> |
| #endif |
| #ifndef SV_BUTTON_HXX |
| #include <vcl/button.hxx> |
| #endif |
| #ifndef SV_MOREBTN_HXX |
| #include <vcl/morebtn.hxx> |
| #endif |
| #ifndef _DIALOG_HXX //autogen |
| #include <vcl/dialog.hxx> |
| #endif |
| #include <vcl/combobox.hxx> |
| #include <vcl/field.hxx> |
| #include <svl/svarray.hxx> |
| |
| #define _SVSTDARR_USHORTS |
| #include <svl/svstdarr.hxx> |
| #include <vcl/virdev.hxx> |
| #include <vcl/scrbar.hxx> |
| #include <svl/svarray.hxx> |
| |
| #ifndef _SVSTDARR_STRINGS |
| #define _SVSTDARR_STRINGS |
| #include <svl/svstdarr.hxx> |
| #endif |
| #include <vcl/tabpage.hxx> |
| #include <vcl/tabctrl.hxx> |
| |
| //------------------------------------------------------------------------ |
| |
| //======================================================================== |
| enum eKindOfControl { KOC_UNDEFINED=0,KOC_LISTBOX=1, KOC_COMBOBOX=2, |
| KOC_EDIT=3,KOC_USERDEFINED=5}; |
| |
| class SvXPropertyCtrListener; |
| |
| class SvXPropertyControl : public Control |
| { |
| public: |
| SvXPropertyControl( Window* pParent, WinBits nWinStyle = 0 ); |
| SvXPropertyControl( Window* pParent, const ResId& rResId ); |
| |
| virtual void SetSvXPropertyCtrListener(SvXPropertyCtrListener*)=0; |
| |
| virtual SvXPropertyCtrListener* GetSvXPropertyCtrListener()=0; |
| virtual void SetProperty(const String &rString)=0; |
| virtual String GetProperty()const=0; |
| virtual sal_Bool HasList()=0; |
| virtual void ClearList()=0; |
| virtual void InsertEntry( const String& rString, |
| sal_uInt16 nPos = LISTBOX_APPEND )=0; |
| |
| virtual void SetCtrSize(const Size& rSize)=0; |
| virtual void SetLocked(sal_Bool bLocked=sal_True)=0; |
| |
| virtual void SetMyName(const String &rString)=0; |
| virtual String GetMyName()const=0; |
| |
| virtual void SetMyData(void*)=0; |
| virtual void* GetMyData()=0; |
| }; |
| |
| class SvXPropertyCtrListener |
| { |
| |
| public: |
| virtual void Modified (SvXPropertyControl *pSvXPCtr)=0; |
| virtual void GetFocus (SvXPropertyControl *pSvXPCtr)=0; |
| virtual void LoseFocus(SvXPropertyControl *pSvXPCtr)=0; |
| virtual void KeyInput (SvXPropertyControl *pSvXPCtr ,const KeyCode&)=0; |
| }; |
| |
| |
| class SvXPropertyEdit : public SvXPropertyControl |
| { |
| private: |
| |
| String aName; |
| SvXPropertyCtrListener* pListener; |
| Edit aEdit; |
| void* pData; |
| |
| DECL_LINK(ModifiedHdl,Edit*); |
| DECL_LINK(GetFocusHdl,Edit*); |
| DECL_LINK(LoseFocusHdl,Edit*); |
| |
| public: |
| SvXPropertyEdit( Window* pParent, WinBits nWinStyle = 0 ); |
| SvXPropertyEdit( Window* pParent, const ResId& rResId ); |
| |
| virtual void SetSvXPropertyCtrListener(SvXPropertyCtrListener*); |
| |
| virtual SvXPropertyCtrListener* GetSvXPropertyCtrListener(); |
| |
| virtual void SetProperty(const String &rString); |
| virtual String GetProperty()const; |
| |
| virtual sal_Bool HasList(); |
| virtual void ClearList(); |
| virtual void InsertEntry( const String& rString, |
| sal_uInt16 nPos = LISTBOX_APPEND ); |
| |
| virtual void SetCtrSize(const Size& rSize); |
| virtual void SetLocked(sal_Bool bLocked=sal_True); |
| |
| virtual void SetMyName(const String &rString); |
| virtual String GetMyName()const; |
| |
| virtual void SetMyData(void*); |
| virtual void* GetMyData(); |
| }; |
| |
| |
| class SvXPropertyListBox : public SvXPropertyControl |
| { |
| private: |
| |
| String aName; |
| SvXPropertyCtrListener* pListener; |
| ListBox aListBox; |
| void* pData; |
| |
| DECL_LINK(ModifiedHdl,ListBox*); |
| DECL_LINK(GetFocusHdl,ListBox*); |
| DECL_LINK(LoseFocusHdl,ListBox*); |
| |
| |
| public: |
| SvXPropertyListBox( Window* pParent, WinBits nWinStyle = 0 ); |
| SvXPropertyListBox( Window* pParent, const ResId& rResId ); |
| |
| virtual void SetSvXPropertyCtrListener(SvXPropertyCtrListener*); |
| |
| virtual SvXPropertyCtrListener* GetSvXPropertyCtrListener(); |
| |
| ListBox* GetListBox(); |
| |
| virtual void SetProperty(const String &rString); |
| virtual String GetProperty()const; |
| |
| virtual sal_Bool HasList(); |
| virtual void ClearList(); |
| virtual void InsertEntry( const String& rString, |
| sal_uInt16 nPos = LISTBOX_APPEND ); |
| |
| virtual void SetCtrSize(const Size& rSize); |
| virtual void SetLocked(sal_Bool bLocked=sal_True); |
| |
| virtual void SetMyName(const String &rString); |
| virtual String GetMyName()const; |
| |
| virtual void SetMyData(void*); |
| virtual void* GetMyData(); |
| }; |
| |
| class SvXPropertyComboBox : public SvXPropertyControl |
| { |
| private: |
| |
| String aName; |
| SvXPropertyCtrListener* pListener; |
| ComboBox aComboBox; |
| void* pData; |
| |
| DECL_LINK(ModifiedHdl,ComboBox*); |
| DECL_LINK(GetFocusHdl,ComboBox*); |
| DECL_LINK(LoseFocusHdl,ComboBox*); |
| |
| |
| public: |
| SvXPropertyComboBox( Window* pParent, WinBits nWinStyle = 0 ); |
| SvXPropertyComboBox( Window* pParent, const ResId& rResId ); |
| |
| virtual void SetSvXPropertyCtrListener(SvXPropertyCtrListener*); |
| |
| virtual SvXPropertyCtrListener* GetSvXPropertyCtrListener(); |
| |
| ComboBox* GetComboBox(); |
| |
| virtual void SetProperty(const String &rString); |
| virtual String GetProperty()const; |
| |
| virtual sal_Bool HasList(); |
| virtual void ClearList(); |
| virtual void InsertEntry( const String& rString, |
| sal_uInt16 nPos = LISTBOX_APPEND ); |
| |
| virtual void SetCtrSize(const Size& rSize); |
| virtual void SetLocked(sal_Bool bLocked=sal_True); |
| |
| virtual void SetMyName(const String &rString); |
| virtual String GetMyName()const; |
| |
| virtual void SetMyData(void*); |
| virtual void* GetMyData(); |
| }; |
| |
| |
| |
| class SvPropertyLine : public Control |
| { |
| private: |
| FixedText aName; |
| sal_uInt16 nNameWidth; |
| sal_Bool bNeedsRepaint; |
| SvXPropertyControl* pSvXPropertyControl; |
| |
| PushButton aXButton; |
| sal_Bool bIsLocked; |
| sal_Bool bHasXButton; |
| sal_Bool bIsHyperlink; |
| eKindOfControl eKindOfCtr; |
| |
| protected: |
| virtual void Resize(); |
| |
| public: |
| SvPropertyLine( Window* pParent, |
| WinBits nWinStyle = 0 ); |
| SvPropertyLine( Window* pParent, |
| const ResId& rResId ); |
| |
| sal_Bool NeedsRepaint(); |
| void SetNeedsRepaint(sal_Bool bFlag); |
| void SetSvXPropertyControl(SvXPropertyControl*); |
| SvXPropertyControl* GetSvXPropertyControl(); |
| |
| void SetKindOfControl(eKindOfControl); |
| eKindOfControl GetKindOfControl(); |
| |
| void SetName(const String& rString ); |
| String GetName() const; |
| void SetNameWidth(sal_uInt16); |
| |
| void ShowXButton(); |
| void HideXButton(); |
| sal_Bool IsVisibleXButton(); |
| void ShowAsHyperLink(sal_Bool nFlag=sal_True); |
| sal_Bool IsShownAsHyperlink(); |
| |
| void Locked(sal_Bool nFlag=sal_True); |
| sal_Bool IsLineLocked(); |
| |
| void SetClickHdl(const Link&); |
| |
| }; |
| |
| |
| class SvPropertyData |
| { |
| public: |
| eKindOfControl eKind; |
| String aName; |
| String aValue; |
| SvStrings theValues; // ??? |
| |
| sal_Bool bHasVisibleXButton; |
| sal_Bool bIsHyperLink; |
| sal_Bool bIsLocked; |
| void* pDataPtr; |
| SvXPropertyControl* pControl; |
| }; |
| |
| class SvPropertyDataObjectControl |
| { |
| }; |
| |
| class SvPropertyDataControl |
| { |
| public: |
| virtual void Modified( const String& aName, |
| const String& aVal, |
| void* pData)=0; |
| |
| virtual void Clicked( const String& aName, |
| const String& aVal, |
| void* pData)=0; |
| |
| virtual void Commit( const String& aName, |
| const String& aVal, |
| void* pData)=0; |
| |
| virtual void Select( const String& aName, |
| void* pData)=0; |
| |
| virtual void LinkClicked(const String& aName, |
| void* pData)=0; |
| }; |
| |
| class SvXPropEvListener: public SvXPropertyCtrListener |
| { |
| Link aModifyLink; |
| Link aGetFocusLink; |
| Link aLoseFocusLink; |
| Link aKeyInputLink; |
| String aModifiedResult; |
| |
| SvXPropertyControl * pTheActiveControl; |
| KeyCode aKeyCode; |
| |
| public: |
| SvXPropEvListener(); |
| virtual ~SvXPropEvListener(); |
| |
| virtual void Modified (SvXPropertyControl *pSvXPCtr); |
| virtual void GetFocus (SvXPropertyControl *pSvXPCtr); |
| virtual void LoseFocus(SvXPropertyControl *pSvXPCtr); |
| virtual void KeyInput(SvXPropertyControl *pSvXPCtr ,const KeyCode&); |
| |
| SvXPropertyControl * GetPropertyControl(); |
| KeyCode GetKeyCode() const; |
| |
| void SetModifyHdl( const Link& rLink ) { aModifyLink = rLink; } |
| const Link& GetModifyHdl() const { return aModifyLink; } |
| |
| void SetGetFocusHdl( const Link& rLink ) { aGetFocusLink = rLink; } |
| const Link& GetGetFocusHdl() const { return aGetFocusLink; } |
| |
| void SetLoseFocusHdl( const Link& rLink ) { aLoseFocusLink = rLink; } |
| const Link& GetLoseFocusHdl() const { return aLoseFocusLink; } |
| |
| void SetKeyInputHdl( const Link& rLink ) { aKeyInputLink = rLink; } |
| const Link& GetKeyInputHdl() const { return aKeyInputLink; } |
| |
| |
| }; |
| |
| typedef SvPropertyLine * SvPropertyLinePtr; |
| |
| SV_DECL_PTRARR(SvPropLineArray,SvPropertyLinePtr,1,1) |
| |
| class SvListBoxForProperties: public Control |
| { |
| private: |
| |
| SvXPropEvListener aListener; |
| Window aPlayGround; |
| ScrollBar aVScroll; |
| SvPropLineArray PLineArray; |
| SvPropertyDataControl* pPropDataControl; |
| sal_uInt16 nRowHeight; |
| sal_Bool bUpdate; |
| sal_uInt16 nTheNameSize; |
| long nYOffset; |
| |
| DECL_LINK( ScrollHdl,ScrollBar*); |
| DECL_LINK( ClickHdl ,PushButton*); |
| |
| DECL_LINK( ModifyHdl,SvXPropEvListener*); |
| DECL_LINK( GetFocusHdl,SvXPropEvListener*); |
| DECL_LINK(LoseFocusHdl,SvXPropEvListener*); |
| DECL_LINK( KeyInputHdl,SvXPropEvListener*); |
| |
| protected: |
| void UpdateAll(); |
| void UpdatePosNSize(); |
| void UpdatePlayGround(); |
| void UpdateVScroll(); |
| |
| void Resize(); |
| |
| public: |
| SvListBoxForProperties( Window* pParent, WinBits nWinStyle = 0 ); |
| SvListBoxForProperties( Window* pParent, const ResId& rResId ); |
| |
| ~SvListBoxForProperties(); |
| |
| virtual sal_uInt16 CalcVisibleLines(); |
| virtual void EnableUpdate(); |
| virtual void DisableUpdate(); |
| |
| virtual void SetController(SvPropertyDataControl *); |
| |
| virtual void Clear(); |
| |
| virtual sal_uInt16 InsertEntry( const SvPropertyData&, sal_uInt16 nPos = LISTBOX_APPEND ); |
| |
| virtual void ChangeEntry( const SvPropertyData&, sal_uInt16 nPos); |
| |
| virtual sal_uInt16 AppendEntry( const SvPropertyData&); |
| |
| virtual void SetPropertyValue( const String & rEntryName, const String & rValue ); |
| |
| virtual void SetFirstVisibleEntry(sal_uInt16 nPos); |
| virtual sal_uInt16 GetFirstVisibleEntry(); |
| |
| virtual void SetSelectedEntry(sal_uInt16 nPos); |
| virtual sal_uInt16 GetSelectedEntry(); |
| }; |
| |
| class SvTabPageForProperties: public TabPage |
| { |
| |
| private: |
| |
| SvListBoxForProperties aLbProp; |
| |
| protected: |
| |
| virtual void Resize(); |
| |
| public: |
| SvTabPageForProperties(Window* pParent,WinBits nWinStyle = 0 ); |
| |
| SvListBoxForProperties* GetTheListBox(); |
| }; |
| |
| |
| class SvBasicPropertyDataControl: public SvPropertyDataControl |
| { |
| private: |
| |
| sal_Bool bCorrectness; |
| String aEntryName; |
| String aEntryProperty; |
| String aCorrectProperty; |
| void* pTheData; |
| Link aModifyLink; |
| Link aClickedLink; |
| Link aCommitLink; |
| Link aSelectLink; |
| |
| public: |
| virtual ~SvBasicPropertyDataControl(); |
| |
| virtual void Modified( const String& aName, |
| const String& aVal, |
| void* pData); //User has modified Property |
| |
| virtual void Clicked( const String& aName, |
| const String& aVal, |
| void* pData); //Xtension-Button pressed |
| |
| virtual void Commit( const String& aName, |
| const String& aVal, |
| void* pData); //User accept changes |
| |
| virtual void Select( const String& aName, |
| void* pData); //User select new Row |
| |
| virtual void LinkClicked(const String& aName, |
| void* pData); |
| |
| virtual void SetIsCorrect(sal_Bool nFlag); |
| |
| //virtual String GetTheCorrectProperty()const; |
| virtual void SetTheCorrectProperty(const String& aName); |
| |
| String GetName() const; //Tell's the name of the Property |
| String GetProperty() const; //Tell's the content of the Property |
| void* GetData(); //Tell's the storage |
| |
| |
| void SetModifyHdl( const Link& rLink ) { aModifyLink = rLink; } |
| const Link& GetModifyHdl() const { return aModifyLink; } |
| |
| void SetClickedHdl( const Link& rLink ) { aClickedLink = rLink; } |
| const Link& GetClickedHdl() const { return aClickedLink; } |
| |
| void SetCommitHdl( const Link& rLink ) { aCommitLink = rLink; } |
| const Link& GetCommitHdl() const { return aCommitLink; } |
| |
| void SetSelectHdl( const Link& rLink ) { aSelectLink = rLink; } |
| const Link& GetSelectHdl() const { return aSelectLink; } |
| |
| }; |
| |
| |
| class SvPropertyBox: public Control |
| { |
| private: |
| SvPropertyDataControl* pThePropDataCtr; |
| TabControl aTabControl; |
| |
| protected: |
| virtual void Resize(); |
| |
| public: |
| SvPropertyBox ( Window* pParent, WinBits nWinStyle = 0 ); |
| SvPropertyBox ( Window* pParent, const ResId& rResId ); |
| |
| ~SvPropertyBox(); |
| |
| virtual sal_uInt16 CalcVisibleLines(); |
| virtual void EnableUpdate(); // auch IDL? |
| virtual void DisableUpdate(); // auch IDL? |
| |
| // AB: Hier beginnt das 'offizielle' Interface, das in IDL uebernommen werden soll |
| virtual void SetController(SvPropertyDataControl *); |
| |
| virtual sal_uInt16 AppendPage( const String & r ); |
| virtual void SetPage( sal_uInt16 ); |
| virtual sal_uInt16 GetCurPage(); |
| virtual void ClearAll(); |
| virtual void ClearTable(); |
| |
| virtual void SetPropertyValue( const String & rEntryName, const String & rValue ); |
| |
| virtual sal_uInt16 InsertEntry( const SvPropertyData&, sal_uInt16 nPos = LISTBOX_APPEND ); |
| virtual void ChangeEntry( const SvPropertyData&, sal_uInt16 nPos); |
| virtual sal_uInt16 AppendEntry( const SvPropertyData&); |
| |
| virtual void SetFirstVisibleEntry(sal_uInt16 nPos); |
| virtual sal_uInt16 GetFirstVisibleEntry(); |
| |
| virtual void SetSelectedEntry(sal_uInt16 nPos); |
| virtual sal_uInt16 GetSelectedEntry(); |
| }; |
| |
| |
| |
| /* |
| class ScPropertyDlg : public ModalDialog |
| { |
| private: |
| SvBasicPropertyDataControl aBaProDatCtr; |
| OKButton anOk; |
| CancelButton aCancel; |
| sal_uInt16 nCount; |
| sal_uInt16 nClickCount; |
| |
| SvPropertyData aProperty; |
| SvPropertyBox aPropListBox; |
| |
| ListBox aKindOfListBox; |
| FixedText aModAnswer; |
| FixedText aClickAnswer; |
| FixedText aCommitAnswer; |
| FixedText aSelectAnswer; |
| |
| DECL_LINK( ModifiedHdl, ListBox*); |
| |
| DECL_LINK( RowModifiedHdl, SvBasicPropertyDataControl*); |
| DECL_LINK( ClickHdl , SvBasicPropertyDataControl*); |
| DECL_LINK( SelectHdl , SvBasicPropertyDataControl*); |
| DECL_LINK( CommitHdl , SvBasicPropertyDataControl*); |
| |
| public: |
| ScPropertyDlg( Window* pParent); |
| ~ScPropertyDlg(); |
| }; |
| */ |
| #endif // SC_AUTOFMT_HXX |
| |
| |