1*b1cdbd2cSJim Jagielski /************************************************************** 2*b1cdbd2cSJim Jagielski * 3*b1cdbd2cSJim Jagielski * Licensed to the Apache Software Foundation (ASF) under one 4*b1cdbd2cSJim Jagielski * or more contributor license agreements. See the NOTICE file 5*b1cdbd2cSJim Jagielski * distributed with this work for additional information 6*b1cdbd2cSJim Jagielski * regarding copyright ownership. The ASF licenses this file 7*b1cdbd2cSJim Jagielski * to you under the Apache License, Version 2.0 (the 8*b1cdbd2cSJim Jagielski * "License"); you may not use this file except in compliance 9*b1cdbd2cSJim Jagielski * with the License. You may obtain a copy of the License at 10*b1cdbd2cSJim Jagielski * 11*b1cdbd2cSJim Jagielski * http://www.apache.org/licenses/LICENSE-2.0 12*b1cdbd2cSJim Jagielski * 13*b1cdbd2cSJim Jagielski * Unless required by applicable law or agreed to in writing, 14*b1cdbd2cSJim Jagielski * software distributed under the License is distributed on an 15*b1cdbd2cSJim Jagielski * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16*b1cdbd2cSJim Jagielski * KIND, either express or implied. See the License for the 17*b1cdbd2cSJim Jagielski * specific language governing permissions and limitations 18*b1cdbd2cSJim Jagielski * under the License. 19*b1cdbd2cSJim Jagielski * 20*b1cdbd2cSJim Jagielski *************************************************************/ 21*b1cdbd2cSJim Jagielski 22*b1cdbd2cSJim Jagielski 23*b1cdbd2cSJim Jagielski 24*b1cdbd2cSJim Jagielski #ifndef _EXTENSIONS_PROPCTRLR_BROWSERLINE_HXX_ 25*b1cdbd2cSJim Jagielski #define _EXTENSIONS_PROPCTRLR_BROWSERLINE_HXX_ 26*b1cdbd2cSJim Jagielski 27*b1cdbd2cSJim Jagielski /** === begin UNO includes === **/ 28*b1cdbd2cSJim Jagielski #include <com/sun/star/inspection/XPropertyControl.hpp> 29*b1cdbd2cSJim Jagielski /** === end UNO includes === **/ 30*b1cdbd2cSJim Jagielski #include <vcl/fixed.hxx> 31*b1cdbd2cSJim Jagielski #ifndef _SV_BUTTON_HXX 32*b1cdbd2cSJim Jagielski #include <vcl/button.hxx> 33*b1cdbd2cSJim Jagielski #endif 34*b1cdbd2cSJim Jagielski 35*b1cdbd2cSJim Jagielski namespace com { namespace sun { namespace star { namespace inspection { namespace PropertyLineElement 36*b1cdbd2cSJim Jagielski { 37*b1cdbd2cSJim Jagielski const sal_Int16 CompleteLine = 0x4000; 38*b1cdbd2cSJim Jagielski } } } } } 39*b1cdbd2cSJim Jagielski 40*b1cdbd2cSJim Jagielski //............................................................................ 41*b1cdbd2cSJim Jagielski namespace pcr 42*b1cdbd2cSJim Jagielski { 43*b1cdbd2cSJim Jagielski //............................................................................ 44*b1cdbd2cSJim Jagielski 45*b1cdbd2cSJim Jagielski class OBrowserLine; 46*b1cdbd2cSJim Jagielski 47*b1cdbd2cSJim Jagielski //======================================================================== 48*b1cdbd2cSJim Jagielski class IButtonClickListener 49*b1cdbd2cSJim Jagielski { 50*b1cdbd2cSJim Jagielski public: 51*b1cdbd2cSJim Jagielski virtual void buttonClicked( OBrowserLine* _pLine, sal_Bool _bPrimary ) = 0; 52*b1cdbd2cSJim Jagielski }; 53*b1cdbd2cSJim Jagielski 54*b1cdbd2cSJim Jagielski //======================================================================== 55*b1cdbd2cSJim Jagielski class OBrowserLine 56*b1cdbd2cSJim Jagielski { 57*b1cdbd2cSJim Jagielski private: 58*b1cdbd2cSJim Jagielski ::rtl::OUString m_sEntryName; 59*b1cdbd2cSJim Jagielski FixedText m_aFtTitle; 60*b1cdbd2cSJim Jagielski Size m_aOutputSize; 61*b1cdbd2cSJim Jagielski Point m_aLinePos; 62*b1cdbd2cSJim Jagielski ::com::sun::star::uno::Reference< ::com::sun::star::inspection::XPropertyControl > 63*b1cdbd2cSJim Jagielski m_xControl; 64*b1cdbd2cSJim Jagielski Window* m_pControlWindow; 65*b1cdbd2cSJim Jagielski PushButton* m_pBrowseButton; 66*b1cdbd2cSJim Jagielski PushButton* m_pAdditionalBrowseButton; 67*b1cdbd2cSJim Jagielski IButtonClickListener* m_pClickListener; 68*b1cdbd2cSJim Jagielski Window* m_pTheParent; 69*b1cdbd2cSJim Jagielski sal_uInt16 m_nNameWidth; 70*b1cdbd2cSJim Jagielski sal_uInt16 m_nEnableFlags; 71*b1cdbd2cSJim Jagielski bool m_bIndentTitle; 72*b1cdbd2cSJim Jagielski bool m_bReadOnly; 73*b1cdbd2cSJim Jagielski 74*b1cdbd2cSJim Jagielski public: 75*b1cdbd2cSJim Jagielski OBrowserLine( const ::rtl::OUString& _rEntryName, Window* pParent); 76*b1cdbd2cSJim Jagielski ~OBrowserLine(); 77*b1cdbd2cSJim Jagielski 78*b1cdbd2cSJim Jagielski void setControl( const ::com::sun::star::uno::Reference< ::com::sun::star::inspection::XPropertyControl >& _rxControl ); getControl()79*b1cdbd2cSJim Jagielski const ::com::sun::star::uno::Reference< ::com::sun::star::inspection::XPropertyControl >& getControl() 80*b1cdbd2cSJim Jagielski { 81*b1cdbd2cSJim Jagielski return m_xControl; 82*b1cdbd2cSJim Jagielski } getControlWindow() const83*b1cdbd2cSJim Jagielski inline Window* getControlWindow() const 84*b1cdbd2cSJim Jagielski { 85*b1cdbd2cSJim Jagielski return m_pControlWindow; 86*b1cdbd2cSJim Jagielski } 87*b1cdbd2cSJim Jagielski 88*b1cdbd2cSJim Jagielski const ::rtl::OUString& GetEntryName() const89*b1cdbd2cSJim Jagielski GetEntryName() const { return m_sEntryName; } 90*b1cdbd2cSJim Jagielski 91*b1cdbd2cSJim Jagielski void SetComponentHelpIds( const rtl::OString& _rHelpId, const rtl::OString& _sPrimaryButtonId, const rtl::OString& _sSecondaryButtonId ); 92*b1cdbd2cSJim Jagielski 93*b1cdbd2cSJim Jagielski void SetTitle(const String& rString ); 94*b1cdbd2cSJim Jagielski void FullFillTitleString(); 95*b1cdbd2cSJim Jagielski String GetTitle() const; 96*b1cdbd2cSJim Jagielski void SetTitleWidth(sal_uInt16); 97*b1cdbd2cSJim Jagielski 98*b1cdbd2cSJim Jagielski void SetPosSizePixel(Point aPos,Size aSize); 99*b1cdbd2cSJim Jagielski void Show(sal_Bool bFlag=sal_True); 100*b1cdbd2cSJim Jagielski void Hide(); 101*b1cdbd2cSJim Jagielski sal_Bool IsVisible(); 102*b1cdbd2cSJim Jagielski 103*b1cdbd2cSJim Jagielski Window* GetRefWindow(); 104*b1cdbd2cSJim Jagielski void SetTabOrder(Window* pRefWindow, sal_uInt16 nFlags ); 105*b1cdbd2cSJim Jagielski 106*b1cdbd2cSJim Jagielski sal_Bool GrabFocus(); 107*b1cdbd2cSJim Jagielski void ShowBrowseButton( const ::rtl::OUString& _rImageURL, sal_Bool _bPrimary ); 108*b1cdbd2cSJim Jagielski void ShowBrowseButton( const Image& _rImage, sal_Bool _bPrimary ); 109*b1cdbd2cSJim Jagielski void ShowBrowseButton( sal_Bool _bPrimary ); 110*b1cdbd2cSJim Jagielski void HideBrowseButton( sal_Bool _bPrimary ); 111*b1cdbd2cSJim Jagielski 112*b1cdbd2cSJim Jagielski void EnablePropertyControls( sal_Int16 _nControls, bool _bEnable ); 113*b1cdbd2cSJim Jagielski void EnablePropertyLine( bool _bEnable ); 114*b1cdbd2cSJim Jagielski 115*b1cdbd2cSJim Jagielski void SetReadOnly( bool _bReadOnly ); 116*b1cdbd2cSJim Jagielski 117*b1cdbd2cSJim Jagielski void SetClickListener( IButtonClickListener* _pListener ); 118*b1cdbd2cSJim Jagielski 119*b1cdbd2cSJim Jagielski void IndentTitle( bool _bIndent ); 120*b1cdbd2cSJim Jagielski 121*b1cdbd2cSJim Jagielski private: 122*b1cdbd2cSJim Jagielski DECL_LINK( OnButtonClicked, PushButton* ); 123*b1cdbd2cSJim Jagielski DECL_LINK( OnButtonFocus, PushButton* ); 124*b1cdbd2cSJim Jagielski 125*b1cdbd2cSJim Jagielski void implHideBrowseButton( sal_Bool _bPrimary, bool _bReLayout ); 126*b1cdbd2cSJim Jagielski void implUpdateEnabledDisabled(); 127*b1cdbd2cSJim Jagielski 128*b1cdbd2cSJim Jagielski void impl_layoutComponents(); 129*b1cdbd2cSJim Jagielski 130*b1cdbd2cSJim Jagielski PushButton& impl_ensureButton( bool _bPrimary ); 131*b1cdbd2cSJim Jagielski void impl_getImagesFromURL_nothrow( const ::rtl::OUString& _rImageURL, Image& _out_rImage, Image& _out_rHCImage ); 132*b1cdbd2cSJim Jagielski }; 133*b1cdbd2cSJim Jagielski 134*b1cdbd2cSJim Jagielski //............................................................................ 135*b1cdbd2cSJim Jagielski } // namespace pcr 136*b1cdbd2cSJim Jagielski //............................................................................ 137*b1cdbd2cSJim Jagielski 138*b1cdbd2cSJim Jagielski #endif // _EXTENSIONS_PROPCTRLR_BROWSERLINE_HXX_ 139*b1cdbd2cSJim Jagielski 140