summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFrank Schönheit <fs@openoffice.org>2001-01-12 10:35:45 +0000
committerFrank Schönheit <fs@openoffice.org>2001-01-12 10:35:45 +0000
commitadd6ae727fa58fa6c2ed63f9de53523da1f7e2cd (patch)
tree8e825f0057ca3771b5cc6822c2155c8974fff5e7
parent9e04a2d2d96ae090b1cfaabb69f6f7c32cd09203 (diff)
initial checkin - outsourced the form property browser
-rw-r--r--extensions/source/propctrlr/browserline.cxx546
-rw-r--r--extensions/source/propctrlr/browserline.hxx170
-rw-r--r--extensions/source/propctrlr/browserlistbox.cxx898
-rw-r--r--extensions/source/propctrlr/browserlistbox.hxx184
-rw-r--r--extensions/source/propctrlr/browserpage.cxx118
-rw-r--r--extensions/source/propctrlr/browserpage.hxx107
-rw-r--r--extensions/source/propctrlr/browserview.cxx180
-rw-r--r--extensions/source/propctrlr/browserview.hxx139
-rw-r--r--extensions/source/propctrlr/commoncontrol.cxx202
-rw-r--r--extensions/source/propctrlr/commoncontrol.hxx165
-rw-r--r--extensions/source/propctrlr/formbrowsertools.cxx184
-rw-r--r--extensions/source/propctrlr/formbrowsertools.hxx91
-rw-r--r--extensions/source/propctrlr/formcontroller.cxx2503
-rw-r--r--extensions/source/propctrlr/formhelpid.hrc250
-rw-r--r--extensions/source/propctrlr/formmetadata.cxx473
-rw-r--r--extensions/source/propctrlr/formmetadata.hxx245
-rw-r--r--extensions/source/propctrlr/formres.src3829
-rw-r--r--extensions/source/propctrlr/formresid.hrc275
-rw-r--r--extensions/source/propctrlr/formstrings.cxx74
-rw-r--r--extensions/source/propctrlr/formstrings.hxx260
-rw-r--r--extensions/source/propctrlr/linedescriptor.hxx154
-rw-r--r--extensions/source/propctrlr/makefile.mk247
-rw-r--r--extensions/source/propctrlr/modulepcr.cxx367
-rw-r--r--extensions/source/propctrlr/modulepcr.hxx319
-rw-r--r--extensions/source/propctrlr/pcr.map8
-rw-r--r--extensions/source/propctrlr/pcrcommon.cxx99
-rw-r--r--extensions/source/propctrlr/pcrcommon.hxx90
-rw-r--r--extensions/source/propctrlr/pcrservices.cxx146
-rw-r--r--extensions/source/propctrlr/pcrstrings.cxx74
-rw-r--r--extensions/source/propctrlr/pcrstrings.hxx94
-rw-r--r--extensions/source/propctrlr/propcontroller.cxx881
-rw-r--r--extensions/source/propctrlr/propcontroller.hxx359
-rw-r--r--extensions/source/propctrlr/propertyeditor.cxx420
-rw-r--r--extensions/source/propctrlr/propertyeditor.hxx146
-rw-r--r--extensions/source/propctrlr/propertyinfo.hxx110
-rw-r--r--extensions/source/propctrlr/proplinelistener.hxx96
-rw-r--r--extensions/source/propctrlr/propres.src169
-rw-r--r--extensions/source/propctrlr/propresid.hrc89
-rw-r--r--extensions/source/propctrlr/selectlabeldialog.cxx372
-rw-r--r--extensions/source/propctrlr/selectlabeldialog.hxx142
-rw-r--r--extensions/source/propctrlr/standardcontrol.cxx1237
-rw-r--r--extensions/source/propctrlr/standardcontrol.hxx304
-rw-r--r--extensions/source/propctrlr/stlops.hxx115
-rw-r--r--extensions/source/propctrlr/stringdefine.hxx120
-rw-r--r--extensions/source/propctrlr/usercontrol.cxx263
-rw-r--r--extensions/source/propctrlr/usercontrol.hxx144
46 files changed, 17458 insertions, 0 deletions
diff --git a/extensions/source/propctrlr/browserline.cxx b/extensions/source/propctrlr/browserline.cxx
new file mode 100644
index 000000000..4f6f837e3
--- /dev/null
+++ b/extensions/source/propctrlr/browserline.cxx
@@ -0,0 +1,546 @@
+/*************************************************************************
+ *
+ * $RCSfile: browserline.cxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: fs $ $Date: 2001-01-12 11:25:06 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (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.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc..
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#ifndef _EXTENSIONS_PROPCTRLR_BROWSERLINE_HXX_
+#include "browserline.hxx"
+#endif
+#ifndef _EXTENSIONS_PROPCTRLR_BRWCONTROLLISTENER_HXX_
+#include "brwcontrollistener.hxx"
+#endif
+#ifndef _TOOLS_DEBUG_HXX
+#include <tools/debug.hxx>
+#endif
+
+//............................................................................
+namespace pcr
+{
+//............................................................................
+
+ //==================================================================
+ //= OBrowserLine
+ //==================================================================
+ DBG_NAME(OBrowserLine);
+ //------------------------------------------------------------------
+
+ OBrowserLine::OBrowserLine( Window* pParent)
+ :m_aFtTitle(pParent)
+ ,m_pData(NULL)
+ ,m_pXButton(NULL)
+ ,m_pBrowserControl(NULL)
+ ,m_bIsLocked(sal_False)
+ ,m_bIsHyperlink(sal_False)
+ ,m_nNameWidth(0)
+ ,m_pTheParent(pParent)
+ ,m_bNeedsRepaint(sal_True)
+ ,m_bHasBrowseButton(sal_False)
+ ,m_eControlType(BCT_UNDEFINED)
+ {
+ DBG_CTOR(OBrowserLine,NULL);
+ m_aFtTitle.Show();
+ }
+ //------------------------------------------------------------------
+ OBrowserLine::~OBrowserLine()
+ {
+ if(m_pXButton)
+ {
+ m_pXButton->Hide();
+ delete m_pXButton;
+ m_pXButton=NULL;
+ }
+ DBG_DTOR(OBrowserLine,NULL);
+ }
+
+ //------------------------------------------------------------------
+ void OBrowserLine::SetHelpId(sal_uInt32 nHelpId,sal_uInt32 nBtUniqueId)
+ {
+ if(m_pBrowserControl)
+ m_pBrowserControl->SetCtrHelpId(nHelpId);
+
+ if(m_pXButton)
+ {
+ m_pXButton->SetHelpId(nHelpId);
+ m_pXButton->SetUniqueId(nBtUniqueId);
+ }
+ }
+
+ //------------------------------------------------------------------
+ void OBrowserLine::setControl(IBrowserControl* pXControl)
+ {
+ m_pBrowserControl=pXControl;
+ m_pBrowserControl->ShowCtr();
+ Resize();
+ }
+
+ //------------------------------------------------------------------
+ IBrowserControl* OBrowserLine::getControl()
+ {
+ return m_pBrowserControl;
+ }
+
+ //------------------------------------------------------------------
+ void OBrowserLine::SetSizePixel(Size aSize)
+ {
+ m_aOutputSize = aSize;
+ Resize();
+ }
+
+ //------------------------------------------------------------------
+ void OBrowserLine::SetPosPixel(Point aPosPoint)
+ {
+ m_aLinePos=aPosPoint;
+ Point aPos(m_aLinePos);
+ aPos.Y()+=2;
+
+ Point aTitlePos(m_aLinePos);
+ aTitlePos.Y()+=8;
+ Point aCtrPos(aPos);
+ Point aBtnPos(aPos);
+
+ if(m_pBrowserControl)
+ {
+ aCtrPos.X()=m_pBrowserControl->GetCtrPos().X();
+ }
+ if(m_pXButton)
+ {
+ aBtnPos.X()=m_pXButton->GetPosPixel().X();
+ }
+ m_aFtTitle.SetPosPixel(aTitlePos);
+
+ if(m_pBrowserControl)
+ {
+ m_pBrowserControl->SetCtrPos(aCtrPos);
+ }
+
+ if(m_pXButton)
+ {
+ m_pXButton->SetPosPixel(aBtnPos);
+ }
+ }
+
+ //------------------------------------------------------------------
+ Window* OBrowserLine::GetRefWindow()
+ {
+ Window* pRefWindow=&m_aFtTitle;
+
+ if(m_pXButton)
+ {
+ pRefWindow=(Window*)m_pXButton;
+ }
+ else if(m_pBrowserControl)
+ {
+ pRefWindow=m_pBrowserControl->GetMe();
+ }
+ return pRefWindow;
+ }
+
+ //------------------------------------------------------------------
+ void OBrowserLine::SetTabOrder(Window* pRefWindow, sal_uInt16 nFlags )
+ {
+ m_aFtTitle.SetZOrder(pRefWindow,nFlags);
+ if(m_pBrowserControl)
+ {
+ m_pBrowserControl->
+ SetTabOrder((Window*)&m_aFtTitle,WINDOW_ZORDER_BEHIND);
+ }
+
+ if(m_pXButton)
+ {
+ m_pXButton->SetZOrder(m_pBrowserControl->GetMe(),
+ WINDOW_ZORDER_BEHIND);
+ }
+ }
+
+ //------------------------------------------------------------------
+ sal_Bool OBrowserLine::GrabFocus()
+ {
+ sal_Bool bRes=sal_False;
+
+ if(m_pBrowserControl &&
+ m_pBrowserControl->GetMe()->IsEnabled())
+ {
+ m_pBrowserControl->GetMe()->GrabFocus();
+ bRes=sal_True;
+ }
+ else if(m_pXButton && m_pXButton->IsEnabled())
+ {
+ m_pXButton->GrabFocus();
+ bRes=sal_True;
+ }
+ return bRes;
+ }
+
+ //------------------------------------------------------------------
+ void OBrowserLine::SetPosSizePixel(Point aPosPoint,Size aSize)
+ {
+ if(m_aLinePos!=aPosPoint && m_aOutputSize!=aSize)
+ {
+ SetControlPosSize(aPosPoint,aSize);
+ }
+ else
+ {
+ m_aOutputSize=aSize;
+ Resize();
+ }
+ }
+
+ //------------------------------------------------------------------
+ Size OBrowserLine::GetSizePixel()
+ {
+ return m_aOutputSize;
+ }
+
+ //------------------------------------------------------------------
+ void OBrowserLine::Show(sal_Bool bFlag)
+ {
+ m_aFtTitle.Show(bFlag);
+ if(m_pBrowserControl)
+ {
+ m_pBrowserControl->ShowCtr(bFlag);
+ }
+ if(m_pXButton)
+ {
+ m_pXButton->Show(bFlag);
+ }
+ }
+
+ //------------------------------------------------------------------
+ void OBrowserLine::Hide()
+ {
+ Show(sal_False);
+ }
+
+ //------------------------------------------------------------------
+ sal_Bool OBrowserLine::IsVisible()
+ {
+ return m_aFtTitle.IsVisible();
+ }
+
+ //------------------------------------------------------------------
+ void OBrowserLine::Invalidate()
+ {
+ m_aFtTitle.Invalidate();
+ if(m_pBrowserControl)
+ {
+ m_pBrowserControl->InvalidateCtr();
+ }
+ if(m_pXButton)
+ {
+ m_pXButton->Invalidate();
+ }
+ }
+
+ //------------------------------------------------------------------
+ void OBrowserLine::Update()
+ {
+ m_aFtTitle.Update();
+ if(m_pBrowserControl)
+ {
+ m_pBrowserControl->UpdateCtr();
+ }
+ if(m_pXButton)
+ {
+ m_pXButton->Update();
+ }
+ }
+
+ //------------------------------------------------------------------
+ void OBrowserLine::SetData(void *pPtr)
+ {
+ m_pData=pPtr;
+ }
+
+ //------------------------------------------------------------------
+ void* OBrowserLine::GetData()
+ {
+ return m_pData;
+ }
+ //------------------------------------------------------------------
+ void OBrowserLine::SetControlPosSize(Point aPos,Size aSize)
+ {
+ m_aLinePos=aPos;
+ m_aOutputSize=aSize;
+ Size a2Size(aSize);
+
+ aSize.Width()=m_nNameWidth-3;
+ a2Size.Width()-=m_nNameWidth;
+ a2Size.Height() -=2;
+
+ aPos.Y()+=2;
+ Point aTitlePos(m_aLinePos);
+ aTitlePos.Y()+=8;
+
+ m_aFtTitle.SetPosSizePixel(aTitlePos,aSize);
+ sal_uInt16 nXButtonWidth=0;
+
+ nXButtonWidth=(sal_uInt16)aSize.Height()-4;
+
+ a2Size.Width()=a2Size.Width()-nXButtonWidth;
+
+ aPos.X()+=aSize.Width();
+
+ if(m_pBrowserControl)
+ {
+ a2Size.Height()=m_pBrowserControl->GetCtrSize().Height();
+ m_pBrowserControl->SetCtrPos(aPos);
+ m_pBrowserControl->SetCtrSize(a2Size);
+ }
+
+ if(m_bHasBrowseButton)
+ {
+ long nx=m_aOutputSize.Width()-nXButtonWidth;
+ if(nx>aPos.X())
+ {
+ aPos.X()=nx;
+ }
+ aSize.Width()=nXButtonWidth-3;
+ aSize.Height()=nXButtonWidth-2;
+ m_pXButton->SetPosSizePixel(aPos,aSize);
+ }
+ }
+
+ //------------------------------------------------------------------
+ void OBrowserLine::Resize()
+ {
+ Size aSize(m_aOutputSize);
+ Size a2Size(aSize);
+
+ aSize.Width()=m_nNameWidth-3;
+ a2Size.Width()-=m_nNameWidth;
+ a2Size.Height() -=2;
+
+ Point aPos(m_aLinePos);
+ aPos.Y()+=2;
+ Point aTitlePos(m_aLinePos);
+ aTitlePos.Y()+=8;
+
+ sal_uInt16 nXButtonWidth=0;
+
+ nXButtonWidth=(sal_uInt16)aSize.Height()-4;
+
+ a2Size.Width()=a2Size.Width()-nXButtonWidth;
+
+ aPos.X()+=aSize.Width();
+
+ if(m_pBrowserControl)
+ {
+ a2Size.Height() = m_pBrowserControl->GetCtrSize().Height();
+ m_pBrowserControl->SetCtrSize(a2Size);
+ }
+
+ if(m_bHasBrowseButton)
+ {
+ long nx=m_aOutputSize.Width()-nXButtonWidth;
+ if(nx>aPos.X())
+ {
+ aPos.X()=nx;
+ }
+ aSize.Width()=nXButtonWidth-3;
+ aSize.Height()=nXButtonWidth-2;
+ m_pXButton->SetPosSizePixel(aPos,aSize);
+ }
+ }
+
+ //------------------------------------------------------------------
+ void OBrowserLine::SetNeedsRepaint(sal_Bool bFlag)
+ {
+ m_bNeedsRepaint=bFlag;
+ }
+
+ //------------------------------------------------------------------
+ sal_Bool OBrowserLine::NeedsRepaint()
+ {
+ return m_bNeedsRepaint;
+ }
+
+ //------------------------------------------------------------------
+ void OBrowserLine::SetTitle(const XubString& rString )
+ {
+ String aText(rString);
+ aText.AppendAscii("......................................................");
+ m_aFtTitle.SetText(aText);
+ }
+
+ //------------------------------------------------------------------
+ XubString OBrowserLine::GetTitle() const
+ {
+ return m_aFtTitle.GetText();
+ }
+
+ //------------------------------------------------------------------
+ void OBrowserLine::SetKindOfControl(BrowserControlType eKOC)
+ {
+ m_eControlType=eKOC;
+ }
+
+ //------------------------------------------------------------------
+ BrowserControlType OBrowserLine::GetKindOfControl()
+ {
+ return m_eControlType;
+ }
+
+ //------------------------------------------------------------------
+ void OBrowserLine::ShowXButton()
+ {
+ m_bHasBrowseButton=sal_True;
+ if(m_pXButton)
+ delete m_pXButton;
+ m_pXButton=new PushButton(m_pTheParent);
+ m_pXButton->SetGetFocusHdl(LINK( this, OBrowserLine, GetFocusHdl));
+ m_pXButton->SetData((void *)this);
+ m_pXButton->SetText(String::CreateFromAscii("..."));
+ m_pXButton->Show();
+ Resize();
+ }
+
+ //------------------------------------------------------------------
+ void OBrowserLine::HideXButton()
+ {
+ m_bHasBrowseButton=sal_False;
+ if(m_pXButton)
+ {
+ m_pXButton->Hide();
+ delete m_pXButton;
+ m_pXButton=NULL;
+ }
+ Resize();
+ }
+
+ //------------------------------------------------------------------
+ sal_Bool OBrowserLine::IsVisibleXButton()
+ {
+ return m_bHasBrowseButton;
+ }
+
+ //------------------------------------------------------------------
+ void OBrowserLine::ShowAsHyperLink(sal_Bool nFlag)
+ {
+ m_bIsHyperlink=nFlag;
+ if(nFlag)
+ {
+ Font aFont(m_aFtTitle.GetFont());
+ aFont.SetUnderline(UNDERLINE_SINGLE);
+ aFont.SetColor(Color(COL_BLUE));
+ m_aFtTitle.SetFont(aFont);
+ }
+ else
+ {
+ Font aFont=m_aFtTitle.GetFont();
+ m_aFtTitle.SetFont(aFont);
+ }
+ }
+
+ //------------------------------------------------------------------
+ sal_Bool OBrowserLine::IsShownAsHyperlink()
+ {
+ return m_bIsHyperlink;
+ }
+
+ //------------------------------------------------------------------
+ void OBrowserLine::Locked(sal_Bool nFlag)
+ {
+ m_bIsLocked=nFlag;
+ }
+
+ //------------------------------------------------------------------
+ sal_Bool OBrowserLine::IsLocked()
+ {
+ return m_bIsLocked;
+ }
+
+ //------------------------------------------------------------------
+ void OBrowserLine::SetTitleWidth(sal_uInt16 nWidth)
+ {
+ if (m_nNameWidth != nWidth+10)
+ {
+ m_nNameWidth = nWidth+10;
+ SetControlPosSize(m_aLinePos,m_aOutputSize);
+ }
+ }
+
+ //------------------------------------------------------------------
+ void OBrowserLine::SetClickHdl(const Link& rLink)
+ {
+ if(m_pXButton)
+ m_pXButton->SetClickHdl(rLink );
+ }
+
+ //------------------------------------------------------------------
+ IMPL_LINK( OBrowserLine, GetFocusHdl, PushButton*, pPB )
+ {
+ if(m_pBrowserControl)
+ {
+ IBrowserControlListener* pListener = m_pBrowserControl->getListener();
+ if (pListener)
+ pListener->GetFocus(m_pBrowserControl);
+ }
+ return 0;
+ }
+//............................................................................
+} // namespace pcr
+//............................................................................
+
+/*************************************************************************
+ * history:
+ * $Log: not supported by cvs2svn $
+ *
+ * Revision 1.0 10.01.01 15:04:18 fs
+ ************************************************************************/
+
diff --git a/extensions/source/propctrlr/browserline.hxx b/extensions/source/propctrlr/browserline.hxx
new file mode 100644
index 000000000..7b12c9f5b
--- /dev/null
+++ b/extensions/source/propctrlr/browserline.hxx
@@ -0,0 +1,170 @@
+/*************************************************************************
+ *
+ * $RCSfile: browserline.hxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: fs $ $Date: 2001-01-12 11:25:14 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (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.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc..
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#ifndef _EXTENSIONS_PROPCTRLR_BROWSERLINE_HXX_
+#define _EXTENSIONS_PROPCTRLR_BROWSERLINE_HXX_
+
+#ifndef _COMPHELPER_STLTYPES_HXX_
+#include <comphelper/stl_types.hxx>
+#endif
+#ifndef _SV_FIXED_HXX
+#include <vcl/fixed.hxx>
+#endif
+#ifndef _SV_BUTTON_HXX
+#include <vcl/button.hxx>
+#endif
+#ifndef _EXTENSIONS_PROPCTRLR_BRWCONTROL_HXX_
+#include "brwcontrol.hxx"
+#endif
+
+//............................................................................
+namespace pcr
+{
+//............................................................................
+
+ class IBrowserControl;
+ //========================================================================
+ class OBrowserLine
+ {
+ private:
+ FixedText m_aFtTitle;
+ Size m_aOutputSize;
+ Point m_aLinePos;
+ IBrowserControl* m_pBrowserControl;
+ PushButton* m_pXButton;
+ Window* m_pTheParent;
+ void* m_pData;
+ BrowserControlType m_eControlType;
+ sal_uInt16 m_nNameWidth;
+ sal_Bool m_bNewNameWidth:1;
+ sal_Bool m_bNeedsRepaint:1;
+ sal_Bool m_bIsLocked:1;
+ sal_Bool m_bHasBrowseButton:1;
+ sal_Bool m_bIsHyperlink:1;
+
+ DECL_LINK(GetFocusHdl,PushButton*);
+
+
+ protected:
+ virtual void Resize();
+ void SetControlPosSize(Point aPos,Size aSize);
+
+ public:
+ OBrowserLine( Window* pParent);
+ ~OBrowserLine();
+
+ sal_Bool NeedsRepaint();
+ void SetNeedsRepaint(sal_Bool bFlag);
+ void setControl(IBrowserControl*);
+ IBrowserControl* getControl();
+
+ void SetKindOfControl(BrowserControlType);
+ BrowserControlType GetKindOfControl();
+
+ void SetHelpId(sal_uInt32 nCtrHelpId,sal_uInt32 nBtUniqueId);
+
+ void SetTitle(const String& rString );
+ String GetTitle() const;
+ void SetTitleWidth(sal_uInt16);
+
+ void SetSizePixel(Size aSize);
+ void SetPosPixel(Point aPos);
+ void SetPosSizePixel(Point aPos,Size aSize);
+ Size GetSizePixel();
+ void Show(sal_Bool bFlag=sal_True);
+ void Hide();
+ sal_Bool IsVisible();
+ void Invalidate();
+ void Update();
+
+ Window* GetRefWindow();
+ void SetTabOrder(Window* pRefWindow, sal_uInt16 nFlags );
+
+ sal_Bool GrabFocus();
+ 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 IsLocked();
+
+ void SetClickHdl(const Link&);
+ void SetData(void* pDat);
+ void* GetData();
+ };
+
+ DECLARE_STL_VECTOR( OBrowserLine*, OBrowserLinesArray );
+
+//............................................................................
+} // namespace pcr
+//............................................................................
+
+#endif // _EXTENSIONS_PROPCTRLR_BROWSERLINE_HXX_
+
+/*************************************************************************
+ * history:
+ * $Log: not supported by cvs2svn $
+ *
+ * Revision 1.0 08.01.01 16:36:15 fs
+ ************************************************************************/
+
diff --git a/extensions/source/propctrlr/browserlistbox.cxx b/extensions/source/propctrlr/browserlistbox.cxx
new file mode 100644
index 000000000..e95010bab
--- /dev/null
+++ b/extensions/source/propctrlr/browserlistbox.cxx
@@ -0,0 +1,898 @@
+/*************************************************************************
+ *
+ * $RCSfile: browserlistbox.cxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: fs $ $Date: 2001-01-12 11:25:25 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (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.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc..
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#ifndef _EXTENSIONS_PROPCTRLR_BROWSERLISTBOX_HXX_
+#include "browserlistbox.hxx"
+#endif
+#ifndef _EXTENSIONS_PROPCTRLR_PROPRESID_HRC_
+#include "propresid.hrc"
+#endif
+#ifndef _TOOLS_DEBUG_HXX
+#include <tools/debug.hxx>
+#endif
+#ifndef _EXTENSIONS_PROPCTRLR_PROPLINELISTENER_HXX_
+#include "proplinelistener.hxx"
+#endif
+#ifndef _EXTENSIONS_PROPCTRLR_LINEDESCRIPTOR_HXX_
+#include "linedescriptor.hxx"
+#endif
+#ifndef _EXTENSIONS_PROPCTRLR_STANDARDCONTROL_HXX_
+#include "standardcontrol.hxx"
+#endif
+
+//............................................................................
+namespace pcr
+{
+//............................................................................
+
+#define FRAME_OFFSET 4
+ // TODO: find out what this is really for ... and check if it does make sense in the new
+ // browser environment
+
+ //==================================================================
+ //= OBrowserListBox
+ //==================================================================
+ DBG_NAME(OBrowserListBox);
+ //------------------------------------------------------------------
+ OBrowserListBox::OBrowserListBox( Window* pParent, WinBits nWinStyle)
+ :Control(pParent, nWinStyle| WB_CLIPCHILDREN)
+ ,m_aVScroll(this,WB_VSCROLL|WB_REPEAT|WB_DRAG)
+ ,m_aPlayGround(this,WB_DIALOGCONTROL | WB_CLIPCHILDREN)
+ ,m_pLineListener(NULL)
+ ,m_bUpdate(sal_True)
+ ,m_aStandard(ModuleRes(RID_STR_STANDARD))
+ ,m_bIsActiv(sal_False)
+ ,m_nYOffset(0)
+ ,m_nSelectedLine(0)
+ ,m_nTheNameSize(0)
+ {
+ DBG_CTOR(OBrowserListBox,NULL);
+
+ ListBox aListBox(this,WB_DROPDOWN);
+ aListBox.SetPosSizePixel(Point(0,0),Size(100,100));
+ m_nRowHeight = (sal_uInt16)aListBox.GetSizePixel().Height()+2;
+ SetBackground(m_aPlayGround.GetBackground());
+
+ m_aPlayGround.SetPosPixel(Point(0,0));
+ m_aPlayGround.SetPaintTransparent(sal_True);
+ m_aPlayGround.Show();
+ m_aVScroll.Hide();
+ m_aVScroll.SetScrollHdl(LINK(this, OBrowserListBox, ScrollHdl));
+
+ }
+
+ //------------------------------------------------------------------
+ OBrowserListBox::~OBrowserListBox()
+ {
+ if (m_bIsActiv && (m_aLines.size() > m_nSelectedLine))
+ {
+ IBrowserControl* pControl = m_aLines[m_nSelectedLine]->getControl();
+ pControl->CommitModified();
+ }
+ Hide();
+ Clear();
+
+ DBG_DTOR(OBrowserListBox,NULL);
+ }
+
+ //------------------------------------------------------------------
+ void OBrowserListBox::Activate(sal_Bool _bActive)
+ {
+ m_bIsActiv = _bActive;
+ if (m_bIsActiv)
+ {
+ // TODO: what's the sense of this?
+ m_aVScroll.SetThumbPos(100);
+ MoveThumbTo(0);
+ Resize();
+ }
+ }
+
+ //------------------------------------------------------------------
+ void OBrowserListBox::Resize()
+ {
+ Size aSize(GetOutputSizePixel());
+ m_aPlayGround.SetSizePixel(aSize);
+
+ UpdateVScroll();
+
+ Size a2Size(aSize);
+ Size aVScrollSize;
+
+ sal_Int32 nThumbPos = m_aVScroll.GetThumbPos();
+ sal_Int32 nLines = CalcVisibleLines();
+
+ sal_Bool bNeedScrollbar = m_aLines.size() > (sal_uInt32)nLines;
+ if (!bNeedScrollbar)
+ { // don't need a scrollbar
+ if (m_aVScroll.IsVisible())
+ m_aVScroll.Hide();
+ nThumbPos=0;
+ m_nYOffset=0;
+ m_aPlayGround.SetSizePixel(aSize);
+ m_aVScroll.SetThumbPos(nThumbPos);
+ }
+ else
+ { // need a scrollbar -> adjust the playground
+ Point aPos(0,0);
+ aVScrollSize = m_aVScroll.GetSizePixel();
+ aVScrollSize.Height() = aSize.Height();
+ a2Size.Width() -= aVScrollSize.Width();
+ aPos.X() = a2Size.Width();
+ m_aVScroll.SetPosPixel(aPos);
+ m_aVScroll.SetSizePixel(aVScrollSize);
+ m_aPlayGround.SetSizePixel(a2Size);
+ }
+
+ for (sal_uInt16 i=0; i<m_aLines.size(); ++i)
+ m_aLines[i]->SetNeedsRepaint(sal_True);
+
+ // repaint
+ EnablePaint(sal_False);
+ UpdatePlayGround();
+ EnablePaint(sal_True);
+
+ // show the scrollbar
+ if (bNeedScrollbar)
+ m_aVScroll.Show();
+ }
+
+ //------------------------------------------------------------------
+ void OBrowserListBox::setListener(IPropertyLineListener* _pPLL)
+ {
+ m_pLineListener = _pPLL;
+ }
+
+ //------------------------------------------------------------------
+ sal_uInt16 OBrowserListBox::CalcVisibleLines()
+ {
+ Size aSize(m_aPlayGround.GetOutputSizePixel());
+ sal_uInt16 nResult = 0;
+ if (0 != m_nRowHeight)
+ nResult = (sal_uInt16) aSize.Height()/m_nRowHeight;
+
+ return nResult;
+ }
+
+ //------------------------------------------------------------------
+ void OBrowserListBox::UpdateVScroll()
+ {
+ sal_uInt16 nLines = CalcVisibleLines();
+ m_aVScroll.SetPageSize(nLines-1);
+ m_aVScroll.SetVisibleSize(nLines-1);
+
+ sal_uInt16 nCount = m_aLines.size();
+ sal_Int32 nThumbPos = m_aVScroll.GetThumbPos();
+ if (nCount>0)
+ {
+ m_aVScroll.SetRange(Range(0,nCount-1));
+ m_nYOffset = -m_aVScroll.GetThumbPos()*m_nRowHeight;
+ }
+ else
+ {
+ m_aVScroll.SetRange(Range(0,0));
+ m_nYOffset = 0;
+ }
+ }
+
+ //------------------------------------------------------------------
+ void OBrowserListBox::ShowLine(sal_uInt16 i)
+ {
+ Size aSize(m_aPlayGround.GetOutputSizePixel());
+ Point aPos(0, m_nYOffset);
+
+ aSize.Height() = m_nRowHeight;
+
+ aPos.Y() += i * m_nRowHeight;
+
+ if (i<m_aLines.size())
+ {
+ // adjust the pos and - if needed - the size
+ if (m_aLines[i]->GetSizePixel() != aSize)
+ m_aLines[i]->SetPosSizePixel(aPos, aSize);
+ else
+ m_aLines[i]->SetPosPixel(aPos);
+
+ m_aLines[i]->SetTitleWidth(m_nTheNameSize + 2 * FRAME_OFFSET);
+
+ // show the line if necessary
+ if (!m_aLines[i]->IsVisible())
+ m_aLines[i]->Show();
+ }
+
+ }
+
+ //------------------------------------------------------------------
+ void OBrowserListBox::UpdatePosNSize()
+ {
+ sal_uInt16 i;
+
+ for (i=0; i<m_aLines.size(); ++i)
+ {
+ if (m_aLines[i]->NeedsRepaint())
+ ShowLine(i);
+ }
+ for (i=0; i<m_aLines.size(); ++i)
+ m_aLines[i]->SetNeedsRepaint(sal_False);
+
+ }
+
+ //------------------------------------------------------------------
+ void OBrowserListBox::UpdatePlayGround()
+ {
+ sal_Int32 nThumbPos = m_aVScroll.GetThumbPos();
+ sal_Int32 nLines = CalcVisibleLines();
+
+ sal_uInt16 nEnd = (sal_uInt16)(nThumbPos + nLines);
+ if (nEnd >= m_aLines.size())
+ nEnd = m_aLines.size()-1;
+
+ if (m_aLines.size()>0)
+ {
+ for (sal_uInt16 i = (sal_uInt16)nThumbPos; i<=nEnd; ++i)
+ m_aLines[i]->SetNeedsRepaint(sal_True);
+ UpdatePosNSize();
+ }
+ }
+
+ //------------------------------------------------------------------
+ void OBrowserListBox::UpdateAll()
+ {
+ Resize();
+ }
+
+ //------------------------------------------------------------------
+ void OBrowserListBox::DisableUpdate()
+ {
+ m_bUpdate = sal_False;
+ }
+
+ //------------------------------------------------------------------
+ void OBrowserListBox::EnableUpdate()
+ {
+ m_bUpdate = sal_True;
+ UpdateAll();
+ }
+
+ //------------------------------------------------------------------
+ void OBrowserListBox::SetPropertyValue(const ::rtl::OUString& _rEntryName, const ::rtl::OUString& _rValue)
+ {
+ // TODO: why not an O(log n) search? would need a map for this ...
+ sal_uInt16 i, nEnd = m_aLines.size();
+ for (i = 0 ; i<nEnd ; ++i)
+ {
+ OBrowserLine* pLine = m_aLines[i];
+ IBrowserControl* pControl = pLine->getControl();
+ if (pControl && (pControl->GetMyName() == _rEntryName))
+ {
+ pControl->SetProperty(_rValue);
+ break;
+ }
+ }
+ }
+
+ //------------------------------------------------------------------------
+ ::rtl::OUString OBrowserListBox::GetPropertyValue(const ::rtl::OUString& _rEntryName) const
+ {
+ // TODO: O(log n) search
+ sal_uInt16 i, nEnd = m_aLines.size();
+ for (i=0; i<nEnd; ++i)
+ {
+ OBrowserLine* pLine = m_aLines[i];
+ IBrowserControl* pControl = pLine->getControl();
+ if (pControl && (pControl->GetMyName() == _rEntryName))
+ return pControl->GetProperty();
+ }
+
+ return ::rtl::OUString();
+ }
+
+ //------------------------------------------------------------------------
+ sal_uInt16 OBrowserListBox::GetPropertyPos(const ::rtl::OUString& _rEntryName) const
+ {
+ // TODO: O(log n) search
+ sal_uInt16 i, nEnd = m_aLines.size();
+ sal_uInt16 nRet = LISTBOX_ENTRY_NOTFOUND;
+ for (i=0; i<nEnd; ++i)
+ {
+ OBrowserLine* pLine = m_aLines[i];
+ IBrowserControl* pControl = pLine->getControl();
+ if (pControl && (pControl->GetMyName() == _rEntryName))
+ {
+ nRet = i;
+ break;
+ }
+ }
+
+ return nRet;
+ }
+
+ //------------------------------------------------------------------------
+ IBrowserControl* OBrowserListBox::GetPropertyControl(const ::rtl::OUString& _rEntryName)
+ {
+ // TODO: O(log n) search
+ sal_uInt16 i, nEnd = m_aLines.size();
+ for (i = 0 ; i<nEnd ; ++i)
+ {
+ OBrowserLine* pLine = m_aLines[i];
+ IBrowserControl* pControl = pLine->getControl();
+ if (pControl && (pControl->GetMyName() == _rEntryName))
+ return pControl;
+ }
+ return NULL;
+ }
+
+ //------------------------------------------------------------------------
+ IBrowserControl* OBrowserListBox::GetCurrentPropertyControl()
+ {
+ sal_uInt16 i, nEnd = m_aLines.size();
+ for (i=0; i<nEnd; ++i)
+ {
+ OBrowserLine* pLine = m_aLines[i];
+ IBrowserControl* pControl = pLine ? pLine->getControl() : NULL;
+ Window* pControlWindow = pControl ? pControl->GetMe() : NULL;
+ if (pControlWindow && pControlWindow->HasChildPathFocus())
+ return pControl;
+ }
+ return NULL;
+ }
+
+ //------------------------------------------------------------------------
+ void OBrowserListBox::SetPropertyData(const ::rtl::OUString& _rEntryName, void* pData)
+ {
+ // TODO: O(log n) search
+ sal_uInt16 i, nEnd = m_aLines.size();
+ for (i = 0 ; i<nEnd ; ++i)
+ {
+ OBrowserLine* pLine = m_aLines[i];
+ IBrowserControl* pControl = pLine->getControl();
+ if (pControl && (pControl->GetMyName() == _rEntryName))
+ {
+ pControl->SetMyData(pData);
+ break;
+ }
+ }
+ }
+
+ //------------------------------------------------------------------------
+ sal_uInt16 OBrowserListBox::AppendEntry(const OLineDescriptor& _rPropData)
+ {
+ return InsertEntry(_rPropData);
+ }
+
+ //------------------------------------------------------------------
+ sal_uInt16 OBrowserListBox::InsertEntry(const OLineDescriptor& _rPropertyData, sal_uInt16 _nPos)
+ {
+ // create a new line
+ OBrowserLine* pBrowserLine = new OBrowserLine(&m_aPlayGround);
+
+ sal_uInt16 nInsertPos = _nPos;
+
+ if (EDITOR_LIST_APPEND == nInsertPos)
+ {
+ nInsertPos = m_aLines.size();
+ m_aLines.push_back(pBrowserLine);
+ }
+ else
+ m_aLines.insert(m_aLines.begin() + nInsertPos, pBrowserLine);
+
+ pBrowserLine->SetTitleWidth(m_nTheNameSize);
+ if (m_bUpdate)
+ {
+ UpdateVScroll();
+ Invalidate();
+ }
+
+ // initialize the entry
+ ChangeEntry(_rPropertyData, nInsertPos);
+ return nInsertPos;
+ }
+
+ //------------------------------------------------------------------
+ sal_uInt16 OBrowserListBox::GetFirstVisibleEntry()
+ {
+ return (sal_uInt16)m_aVScroll.GetThumbPos();
+ }
+
+ //------------------------------------------------------------------
+ void OBrowserListBox::SetFirstVisibleEntry(sal_uInt16 _nPos)
+ {
+ if (_nPos<m_aLines.size())
+ MoveThumbTo(_nPos);
+ }
+
+ //------------------------------------------------------------------
+ void OBrowserListBox::SetSelectedEntry(sal_uInt16 _nPos)
+ {
+ if (_nPos<m_aLines.size())
+ {
+ m_nSelectedLine=_nPos;
+ ShowEntry(_nPos);
+ m_aLines[_nPos]->GrabFocus();
+ }
+ }
+
+ //------------------------------------------------------------------
+ sal_uInt16 OBrowserListBox::GetSelectedEntry()
+ {
+ return m_nSelectedLine;
+ }
+
+ //------------------------------------------------------------------
+ void OBrowserListBox::ShowEntry(sal_uInt16 _nPos)
+ {
+ if (_nPos<m_aLines.size())
+ {
+ sal_Int32 nThumbPos = m_aVScroll.GetThumbPos();
+
+ if (_nPos < nThumbPos)
+ MoveThumbTo(_nPos);
+ else
+ {
+ sal_Int32 nLines = CalcVisibleLines();
+ if (_nPos >= nThumbPos + nLines)
+ MoveThumbTo(_nPos - nLines + 1);
+ }
+ }
+
+ }
+
+ //------------------------------------------------------------------
+ void OBrowserListBox::MoveThumbTo(sal_Int32 _nNewThumbPos)
+ {
+ // disable painting to prevent flicker
+ m_aPlayGround.EnablePaint(sal_False);
+
+ sal_Int32 nDelta = _nNewThumbPos - m_aVScroll.GetThumbPos();
+ // adjust the scrollbar
+ m_aVScroll.SetThumbPos(_nNewThumbPos);
+ sal_Int32 nThumbPos = nThumbPos = _nNewThumbPos;
+
+ m_nYOffset = -m_aVScroll.GetThumbPos() * m_nRowHeight;
+
+ sal_Int32 nLines = CalcVisibleLines();
+ sal_uInt16 nEnd = (sal_uInt16)(nThumbPos + nLines);
+
+ m_aPlayGround.Scroll(0, -nDelta * m_nRowHeight, SCROLL_CHILDREN);
+
+ if (1 == nDelta)
+ {
+ // TODO: what's the sense of this two ShowLines? Why not just one call?
+ ShowLine(nEnd-1);
+ ShowLine(nEnd);
+ }
+ else if (-1 == nDelta)
+ {
+ ShowLine((sal_uInt16)nThumbPos);
+ }
+ else if (0 != nDelta)
+ {
+ UpdatePlayGround();
+ }
+
+ m_aPlayGround.EnablePaint(sal_True);
+ m_aPlayGround.Invalidate(INVALIDATE_CHILDREN);
+ }
+
+ //------------------------------------------------------------------
+ IMPL_LINK(OBrowserListBox, ScrollHdl, ScrollBar*, _pScrollBar )
+ {
+ DBG_ASSERT(_pScrollBar == &m_aVScroll, "OBrowserListBox::ScrollHdl: where does this come from?");
+
+ // disable painting to prevent flicker
+ m_aPlayGround.EnablePaint(sal_False);
+
+ sal_Int32 nThumbPos = m_aVScroll.GetThumbPos();
+
+ sal_Int32 nDelta = m_aVScroll.GetDelta();
+ m_nYOffset = -nThumbPos * m_nRowHeight;
+
+ sal_uInt16 nEnd = (sal_uInt16)(nThumbPos + CalcVisibleLines());
+
+ m_aPlayGround.Scroll(0, -nDelta * m_nRowHeight, SCROLL_CHILDREN);
+
+ if (1 == nDelta)
+ {
+ ShowLine(nEnd-1);
+ ShowLine(nEnd);
+ }
+ else if (nDelta==-1)
+ {
+ ShowLine((sal_uInt16)nThumbPos);
+ }
+ else if (nDelta!=0 || m_aVScroll.GetType() == SCROLL_DONTKNOW)
+ {
+ UpdatePlayGround();
+ }
+
+ m_aPlayGround.EnablePaint(sal_True);
+ return 0;
+ }
+
+ //------------------------------------------------------------------
+ IMPL_LINK( OBrowserListBox, ClickHdl, PushButton*,pPB)
+ {
+ DBG_ASSERT(pPB, "OBrowserListBox::ClickHdl: invalid button!");
+ if (pPB)
+ {
+ // notify our LineListener of the ClickecEvent
+ if (m_pLineListener)
+ {
+ OBrowserLine* pBrowserLine = static_cast<OBrowserLine*>(pPB->GetData());
+ IBrowserControl* pControl = pBrowserLine->getControl();
+ m_pLineListener->Clicked(pControl->GetMyName(), pControl->GetProperty(), pControl->GetMyData());
+ }
+ pPB->GrabFocus();
+ }
+ return 0;
+ }
+
+ //------------------------------------------------------------------
+ void OBrowserListBox::Modified(IBrowserControl* _pControl)
+ {
+ DBG_ASSERT(_pControl, "OBrowserListBox::Modified: invalid event source!");
+ // notify our line listener
+ if (_pControl && m_pLineListener)
+ {
+ m_pLineListener->Modified(
+ _pControl->GetMyName(),
+ _pControl->GetProperty(),
+ _pControl->GetMyData()
+ );
+
+ }
+ }
+
+ //------------------------------------------------------------------
+ void OBrowserListBox::GetFocus(IBrowserControl* _pControl)
+ {
+ DBG_ASSERT(_pControl, "OBrowserListBox::GetFocus: invalid event source!");
+ if (!_pControl)
+ return;
+
+ // notify our line listener
+ if (m_pLineListener)
+ {
+ m_pLineListener->Select(
+ _pControl->GetMyName(),
+ _pControl->GetMyData()
+ );
+ }
+
+ m_nSelectedLine = _pControl->GetLine();
+ ShowEntry(m_nSelectedLine);
+ }
+
+ //------------------------------------------------------------------
+ void OBrowserListBox::Commit(IBrowserControl* _pControl)
+ {
+ DBG_ASSERT(_pControl, "OBrowserListBox::Commit: invalid event source!");
+ if (!_pControl)
+ return;
+
+ // upon losing the focus, we notify our listener so that it can commit the content
+ if (m_pLineListener)
+ {
+ m_pLineListener->Commit(
+ _pControl->GetMyName(),
+ _pControl->GetProperty(),
+ _pControl->GetMyData()
+ );
+ }
+ }
+
+ //------------------------------------------------------------------
+ void OBrowserListBox::TravelLine(IBrowserControl* _pControl)
+ {
+ sal_Int32 nLine = _pControl->GetLine();
+
+ if (_pControl->GetDirection())
+ {
+ // cycle forwards, 'til we've the next control which can grab the focus
+ ++nLine;
+ while ((sal_uInt32)nLine<m_aLines.size())
+ {
+ if (m_aLines[nLine]->GrabFocus())
+ break;
+ ++nLine;
+ }
+
+ if ( ((sal_uInt32)nLine >= m_aLines.size())
+ && (m_aLines.size() > 0)
+ )
+ // wrap around
+ m_aLines[0]->GrabFocus();
+ }
+ else
+ { // cycle backwards, 'til we've the next control which can grab the focus
+ --nLine;
+ while (nLine>=0)
+ {
+ if (m_aLines[nLine]->GrabFocus())
+ break;
+ --nLine;
+ }
+
+ if ( (nLine < 0)
+ && (0 < m_aLines.size())
+ )
+ // wrap around
+ m_aLines[m_aLines.size() - 1]->GrabFocus();
+ }
+ }
+
+ //------------------------------------------------------------------
+ void OBrowserListBox::KeyInput(IBrowserControl* _pControl, const KeyCode& _rKey)
+ {
+ DBG_ASSERT(_pControl, "OBrowserListBox::KeyInput: invalid event source!");
+ if (!_pControl)
+ return;
+
+ // not really interested in ...
+ }
+
+ //------------------------------------------------------------------
+ void OBrowserListBox::Clear()
+ {
+ for ( OBrowserLinesArrayIterator aLoop = m_aLines.begin();
+ aLoop != m_aLines.end();
+ ++aLoop
+ )
+ {
+ // hide the line
+ (*aLoop)->Hide();
+ // reset the listener
+ (*aLoop)->getControl()->setListener(NULL);
+ // delete the control
+ delete (*aLoop)->getControl();
+ // delete the line
+ delete *aLoop;
+ }
+
+ m_aLines.clear();
+ }
+
+ //------------------------------------------------------------------
+ void OBrowserListBox::ChangeEntry(const OLineDescriptor& _rPropertyData, sal_uInt16 nPos)
+ {
+ sal_Bool bNew=sal_True;
+ if (nPos < m_aLines.size())
+ {
+ Window* pRefWindow=NULL;
+ if (nPos>0)
+ pRefWindow = m_aLines[nPos-1]->GetRefWindow();
+
+ // the current line and control
+ OBrowserLine* pBrowserLine = m_aLines[nPos];
+ IBrowserControl* pControl = pBrowserLine->getControl();
+
+ // position of the control
+ Point aControlPos;
+ if (pControl)
+ aControlPos=pControl->GetCtrPos();
+
+ if (pBrowserLine->GetKindOfControl() != _rPropertyData.eControlType)
+ {
+ // need to create a new control
+
+ bNew = sal_True;
+ delete pBrowserLine->getControl();
+
+ // default winbits: a border only
+ WinBits nWinBits=WB_BORDER;
+ if (_rPropertyData.bIsLocked)
+ nWinBits|=WB_READONLY;
+
+ pBrowserLine->SetKindOfControl(_rPropertyData.eControlType); // may be overwritten
+
+ // create the new control
+ IBrowserControl* pNewControl = NULL;
+ // TODO: source this out (into a factory)
+ switch(_rPropertyData.eControlType)
+ {
+ case BCT_LEDIT:
+ pNewControl = new OMultilineEditControl(&m_aPlayGround,sal_False, nWinBits | WB_DROPDOWN | WB_TABSTOP);
+ pBrowserLine->SetKindOfControl(BCT_MEDIT);
+ break;
+
+ case BCT_MEDIT:
+ pNewControl = new OMultilineEditControl(&m_aPlayGround,sal_True, nWinBits | WB_DROPDOWN | WB_TABSTOP);
+ break;
+
+ case BCT_LISTBOX:
+ pNewControl = new OListboxControl(&m_aPlayGround, nWinBits | WB_TABSTOP | WB_DROPDOWN);
+ break;
+
+ case BCT_COMBOBOX:
+ pNewControl = new OComboboxControl(&m_aPlayGround, nWinBits | WB_TABSTOP | WB_SORT | WB_DROPDOWN);
+ break;
+
+ case BCT_EDIT:
+ pNewControl = new OEditControl(&m_aPlayGround,sal_False,nWinBits | WB_TABSTOP);
+ break;
+
+ case BCT_CHAREDIT:
+ pNewControl = new OEditControl(&m_aPlayGround,sal_True,nWinBits | WB_TABSTOP);
+ pBrowserLine->SetKindOfControl(BCT_EDIT);
+ break;
+
+ case BCT_NUMFIELD:
+ {
+ ONumericControl* pField = new ONumericControl(&m_aPlayGround, _rPropertyData.nDigits,
+ nWinBits | WB_TABSTOP | WB_SPIN);
+ if (_rPropertyData.bHaveMinMax)
+ {
+ pField->SetMin(_rPropertyData.nMinValue);
+ pField->SetMax(_rPropertyData.nMaxValue);
+ }
+ pNewControl = pField;
+ }
+ break;
+
+ case BCT_CURFIELD:
+ pNewControl = new OCurrencyControl(&m_aPlayGround,_rPropertyData.nDigits, nWinBits | WB_TABSTOP | WB_SPIN);
+ break;
+
+ case BCT_DATEFIELD:
+ pNewControl = new ODateControl(&m_aPlayGround,nWinBits | WB_TABSTOP | WB_SPIN);
+ break;
+
+ case BCT_TIMEFIELD:
+ pNewControl = new OTimeControl(&m_aPlayGround,nWinBits | WB_TABSTOP | WB_SPIN);
+ break;
+
+ case BCT_COLORBOX:
+ pNewControl = new OColorControl(&m_aPlayGround, nWinBits | WB_TABSTOP | WB_DROPDOWN);
+ break;
+
+ case BCT_USERDEFINED:
+ DBG_ASSERT(_rPropertyData.pControl, "OBrowserListBox::ChangeEntry: invalid user defined control!");
+ pNewControl = _rPropertyData.pControl;
+ pNewControl->SetCtrParent(&m_aPlayGround);
+ break;
+
+ default:
+ pNewControl = NULL;
+ pBrowserLine->SetKindOfControl(BCT_UNDEFINED);
+ break;
+ }
+
+ pBrowserLine->setControl(pNewControl);
+ pNewControl->SetCtrPos(aControlPos);
+ // forward the locking flag to the control
+ pNewControl->SetLocked(_rPropertyData.bIsLocked);
+
+ // remember this new control
+ pControl = pNewControl;
+ }
+ else
+ {
+ bNew = sal_False;
+ if (pControl && pControl->HasList())
+ pControl->ClearList();
+ }
+
+ if (pControl)
+ {
+ pControl->setListener(this);
+ // forward the data from the descriptor
+ pControl->SetMyData(_rPropertyData.pDataPtr);
+ pControl->SetMyName(_rPropertyData.sName);
+ pControl->SetLine(nPos);
+
+ if (pControl->HasList())
+ {
+ // the standard entry
+ if (_rPropertyData.bHasDefaultValue && (BCT_COLORBOX != _rPropertyData.eControlType))
+ pControl->InsertCtrEntry(m_aStandard);
+
+ // all other entries from the descriptor
+ for (sal_uInt32 i=0;i<_rPropertyData.aListValues.size(); ++i)
+ pControl->InsertCtrEntry(_rPropertyData.aListValues[i]);
+ }
+
+ // the initial property value
+ pControl->SetProperty(_rPropertyData.sValue, _rPropertyData.bUnknownValue);
+ }
+
+ pBrowserLine->SetTitle(_rPropertyData.sTitle);
+
+ sal_uInt16 nTextWidth = (sal_uInt16)m_aPlayGround.GetTextWidth(_rPropertyData.sTitle);
+ if (m_nTheNameSize< nTextWidth)
+ m_nTheNameSize = nTextWidth;
+
+ if (_rPropertyData.bHasBrowseButton)
+ {
+ pBrowserLine->ShowXButton();
+ pBrowserLine->SetClickHdl(LINK( this, OBrowserListBox, ClickHdl ) );
+ }
+ else
+ pBrowserLine->HideXButton();
+
+ pBrowserLine->Locked(_rPropertyData.bIsLocked);
+
+ pBrowserLine->ShowAsHyperLink(_rPropertyData.bIsHyperlink);
+ pBrowserLine->SetData(_rPropertyData.pDataPtr);
+
+ if (bNew)
+ {
+ if (nPos>0)
+ pBrowserLine->SetTabOrder(pRefWindow, WINDOW_ZORDER_BEHIND);
+ else
+ pBrowserLine->SetTabOrder(pRefWindow, WINDOW_ZORDER_FIRST );
+
+ pBrowserLine->SetNeedsRepaint(sal_True);
+ pBrowserLine->SetHelpId(_rPropertyData.nHelpId,_rPropertyData.nUniqueButtonId);
+ }
+ }
+ }
+
+//............................................................................
+} // namespace pcr
+//............................................................................
+
+/*************************************************************************
+ * history:
+ * $Log: not supported by cvs2svn $
+ *
+ * Revision 1.0 08.01.01 15:59:04 fs
+ ************************************************************************/
+
diff --git a/extensions/source/propctrlr/browserlistbox.hxx b/extensions/source/propctrlr/browserlistbox.hxx
new file mode 100644
index 000000000..e319413ac
--- /dev/null
+++ b/extensions/source/propctrlr/browserlistbox.hxx
@@ -0,0 +1,184 @@
+/*************************************************************************
+ *
+ * $RCSfile: browserlistbox.hxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: fs $ $Date: 2001-01-12 11:25:36 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (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.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc..
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#ifndef _EXTENSIONS_PROPCTRLR_BROWSERLISTBOX_HXX_
+#define _EXTENSIONS_PROPCTRLR_BROWSERLISTBOX_HXX_
+
+#ifndef _SV_SCRBAR_HXX
+#include <vcl/scrbar.hxx>
+#endif
+#ifndef _SV_LSTBOX_HXX
+#include <vcl/lstbox.hxx>
+#endif
+#ifndef _SV_BUTTON_HXX
+#include <vcl/button.hxx>
+#endif
+#ifndef _LINK_HXX
+#include <tools/link.hxx>
+#endif
+#ifndef _EXTENSIONS_PROPCTRLR_BRWCONTROLLISTENER_HXX_
+#include "brwcontrollistener.hxx"
+#endif
+#ifndef _EXTENSIONS_PROPCTRLR_BROWSERLINE_HXX_
+#include "browserline.hxx"
+#endif
+#ifndef _EXTENSIONS_PROPCTRLR_MODULEPRC_HXX_
+#include "modulepcr.hxx"
+#endif
+
+//............................................................................
+namespace pcr
+{
+//............................................................................
+
+ class IPropertyLineListener;
+ struct OLineDescriptor;
+ //========================================================================
+ //= OBrowserListBox
+ //========================================================================
+ class OBrowserListBox
+ :public Control
+ ,public IBrowserControlListener
+ ,public OModuleResourceClient
+ {
+ protected:
+ Window m_aPlayGround;
+ ScrollBar m_aVScroll;
+ OBrowserLinesArray m_aLines;
+ ::rtl::OUString m_aStandard;
+ IPropertyLineListener* m_pLineListener;
+ long m_nYOffset;
+ sal_uInt16 m_nSelectedLine;
+ sal_uInt16 m_nTheNameSize;
+ sal_uInt16 m_nRowHeight;
+ sal_Bool m_bIsActiv : 1;
+ sal_Bool m_bUpdate : 1;
+
+ protected:
+ void ShowLine(sal_uInt16 i);
+ void UpdatePosNSize();
+ void UpdatePlayGround();
+ void UpdateVScroll();
+ void ShowEntry(sal_uInt16 nPos);
+ void MoveThumbTo(long nNewThumbPos);
+ void Resize();
+
+
+ public:
+ OBrowserListBox( Window* pParent, WinBits nWinStyle = WB_DIALOGCONTROL );
+
+ ~OBrowserListBox();
+
+ void UpdateAll();
+
+ virtual void Activate(sal_Bool _bActive = sal_True);
+
+ virtual sal_uInt16 CalcVisibleLines();
+ virtual void EnableUpdate();
+ virtual void DisableUpdate();
+
+ virtual void setListener(IPropertyLineListener* _pPLL);
+
+ virtual void Clear();
+
+ virtual sal_uInt16 InsertEntry(const OLineDescriptor&, sal_uInt16 nPos = EDITOR_LIST_APPEND);
+
+ virtual void ChangeEntry( const OLineDescriptor&, sal_uInt16 nPos);
+
+ virtual sal_uInt16 AppendEntry( const OLineDescriptor&);
+
+ virtual void SetPropertyValue( const ::rtl::OUString & rEntryName, const ::rtl::OUString & rValue );
+ virtual ::rtl::OUString GetPropertyValue( const ::rtl::OUString & rEntryName ) const;
+ virtual sal_uInt16 GetPropertyPos( const ::rtl::OUString& rEntryName ) const;
+ virtual void SetPropertyData( const ::rtl::OUString& rEntryName, void* pData );
+ virtual IBrowserControl* GetPropertyControl( const ::rtl::OUString& rEntryName );
+ virtual IBrowserControl* GetCurrentPropertyControl();
+
+ virtual void SetFirstVisibleEntry(sal_uInt16 nPos);
+ virtual sal_uInt16 GetFirstVisibleEntry();
+
+ virtual void SetSelectedEntry(sal_uInt16 nPos);
+ virtual sal_uInt16 GetSelectedEntry();
+ protected:
+ DECL_LINK( ScrollHdl, ScrollBar* );
+ DECL_LINK( ClickHdl, PushButton* );
+
+ // IBrowserControlListener
+ virtual void Modified (IBrowserControl* _pControl);
+ virtual void GetFocus (IBrowserControl* _pControl);
+ virtual void Commit (IBrowserControl* _pControl);
+ virtual void KeyInput (IBrowserControl* _pControl, const KeyCode& _rKey);
+ virtual void TravelLine (IBrowserControl* _pControl);
+ };
+
+//............................................................................
+} // namespace pcr
+//............................................................................
+
+#endif // _EXTENSIONS_PROPCTRLR_BROWSERLISTBOX_HXX_
+
+/*************************************************************************
+ * history:
+ * $Log: not supported by cvs2svn $
+ *
+ * Revision 1.0 08.01.01 15:48:58 fs
+ ************************************************************************/
+
diff --git a/extensions/source/propctrlr/browserpage.cxx b/extensions/source/propctrlr/browserpage.cxx
new file mode 100644
index 000000000..e794b0ba1
--- /dev/null
+++ b/extensions/source/propctrlr/browserpage.cxx
@@ -0,0 +1,118 @@
+/*************************************************************************
+ *
+ * $RCSfile: browserpage.cxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: fs $ $Date: 2001-01-12 11:25:49 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (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.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc..
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#ifndef _EXTENSIONS_PROPCTRLR_BROWSERPAGE_HXX_
+#include "browserpage.hxx"
+#endif
+
+//............................................................................
+namespace pcr
+{
+//............................................................................
+ //==================================================================
+ // class OBrowserPage
+ //==================================================================
+ //------------------------------------------------------------------
+ OBrowserPage::OBrowserPage(Window* pParent,WinBits nWinStyle)
+ :TabPage(pParent,nWinStyle)
+ ,m_aListBox(this)
+ {
+ m_aListBox.SetBackground(GetBackground());
+ Point aPos(3,3);
+ m_aListBox.SetPosPixel(aPos);
+ m_aListBox.Show();
+ }
+
+ //------------------------------------------------------------------
+ void OBrowserPage::Resize()
+ {
+ Size aSize(GetOutputSizePixel());
+ aSize.Width() -= 6;
+ aSize.Height() -= 6;
+
+ m_aListBox.SetSizePixel(aSize);
+ }
+
+ //------------------------------------------------------------------
+ OBrowserListBox* OBrowserPage::getListBox()
+ {
+ return &m_aListBox;
+ }
+
+ //------------------------------------------------------------------
+ void OBrowserPage::StateChanged(StateChangedType nType)
+ {
+ Window::StateChanged( nType);
+ if (STATE_CHANGE_VISIBLE == nType)
+ m_aListBox.Activate(IsVisible());
+ }
+
+//............................................................................
+} // namespace pcr
+//............................................................................
+
+/*************************************************************************
+ * history:
+ * $Log: not supported by cvs2svn $
+ *
+ * Revision 1.0 08.01.01 17:09:37 fs
+ ************************************************************************/
+
diff --git a/extensions/source/propctrlr/browserpage.hxx b/extensions/source/propctrlr/browserpage.hxx
new file mode 100644
index 000000000..86c5060cc
--- /dev/null
+++ b/extensions/source/propctrlr/browserpage.hxx
@@ -0,0 +1,107 @@
+/*************************************************************************
+ *
+ * $RCSfile: browserpage.hxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: fs $ $Date: 2001-01-12 11:25:58 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (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.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc..
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#ifndef _EXTENSIONS_PROPCTRLR_BROWSERPAGE_HXX_
+#define _EXTENSIONS_PROPCTRLR_BROWSERPAGE_HXX_
+
+#ifndef _SV_TABPAGE_HXX
+#include <vcl/tabpage.hxx>
+#endif
+#ifndef _EXTENSIONS_PROPCTRLR_BROWSERLISTBOX_HXX_
+#include "browserlistbox.hxx"
+#endif
+
+//............................................................................
+namespace pcr
+{
+//............................................................................
+
+ //========================================================================
+ //= OBrowserPage
+ //========================================================================
+ class OBrowserPage : public TabPage
+ {
+ private:
+ OBrowserListBox m_aListBox;
+
+ protected:
+ virtual void Resize();
+ virtual void StateChanged(StateChangedType nType);
+
+ public:
+ OBrowserPage(Window* pParent, WinBits nWinStyle = 0);
+
+ OBrowserListBox* getListBox();
+ };
+
+//............................................................................
+} // namespace pcr
+//............................................................................
+
+#endif // _EXTENSIONS_PROPCTRLR_BROWSERPAGE_HXX_
+
+/*************************************************************************
+ * history:
+ * $Log: not supported by cvs2svn $
+ *
+ * Revision 1.0 08.01.01 15:45:44 fs
+ ************************************************************************/
+
diff --git a/extensions/source/propctrlr/browserview.cxx b/extensions/source/propctrlr/browserview.cxx
new file mode 100644
index 000000000..9bed55f7e
--- /dev/null
+++ b/extensions/source/propctrlr/browserview.cxx
@@ -0,0 +1,180 @@
+/*************************************************************************
+ *
+ * $RCSfile: browserview.cxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: fs $ $Date: 2001-01-12 11:26:10 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (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.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc..
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#ifndef _EXTENSIONS_PROPCTRLR_BROWSERVIEW_HXX_
+#include "browserview.hxx"
+#endif
+#ifndef _EXTENSIONS_PROPCTRLR_PROPERTYEDITOR_HXX_
+#include "propertyeditor.hxx"
+#endif
+#ifndef _EXTENSIONS_PROPCTRLR_PROPHELPID_HRC_
+#include "prophelpid.hrc"
+#endif
+#ifndef _TOOLS_DEBUG_HXX
+#include <tools/debug.hxx>
+#endif
+#ifndef _EXTENSIONS_PROPCTRLR_PROPCONTROLLER_HXX_
+#include "propcontroller.hxx"
+#endif
+
+//............................................................................
+namespace pcr
+{
+//............................................................................
+
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::lang;
+
+
+ //========================================================================
+ //= class OPropertyBrowserView
+ //========================================================================
+ DBG_NAME(OPropertyBrowserView);
+ //------------------------------------------------------------------------
+ OPropertyBrowserView::OPropertyBrowserView( const Reference< XMultiServiceFactory >& _rxORB,
+ Window* _pParent, WinBits nBits)
+ :Window(_pParent, nBits | WB_3DLOOK)
+ ,m_pActiveController(NULL)
+ ,m_xORB(_rxORB)
+ ,m_nActivePage(0)
+ {
+ DBG_CTOR(OPropertyBrowserView,NULL);
+
+ m_pPropBox = new OPropertyEditor( this );
+ m_pPropBox->SetHelpId(HID_FM_PROPDLG_TABCTR);
+
+ m_pPropBox->Show();
+ }
+
+ //------------------------------------------------------------------------
+ OPropertyBrowserView::OPropertyBrowserView( const Reference< XMultiServiceFactory >& _rxORB,
+ Window* _pParent, const ResId& rId)
+ :Window(_pParent, rId)
+ ,m_pActiveController(NULL)
+ ,m_xORB(_rxORB)
+ ,m_nActivePage(0)
+ {
+ DBG_CTOR(OPropertyBrowserView,NULL);
+
+ m_pPropBox = new OPropertyEditor( this );
+
+ m_pPropBox->SetHelpId(HID_FM_PROPDLG_TABCTR);
+
+ Size aSize = GetOutputSizePixel();
+ m_pPropBox->SetPosSizePixel(Point(0,0), aSize);
+ m_pPropBox->Show();
+ }
+
+ //------------------------------------------------------------------------
+ OPropertyBrowserView::~OPropertyBrowserView()
+ {
+ if(m_pPropBox)
+ {
+ sal_uInt16 nTmpPage = m_pPropBox->GetCurPage();
+ if (nTmpPage)
+ m_nActivePage = nTmpPage;
+ delete m_pPropBox;
+ }
+ if (m_pActiveController)
+ m_pActiveController->release();
+ m_pActiveController = NULL;
+
+ m_xORB = NULL;
+
+ DBG_DTOR(OPropertyBrowserView, NULL);
+ }
+
+ //------------------------------------------------------------------------
+ void OPropertyBrowserView::activatePage(sal_uInt16 _nPage)
+ {
+ m_nActivePage = _nPage;
+ getPropertyBox()->SetPage(m_nActivePage);
+ }
+
+ //------------------------------------------------------------------------
+ void OPropertyBrowserView::setActiveController(OPropertyBrowserController* _pController)
+ {
+ if (_pController != m_pActiveController)
+ {
+ if (m_pActiveController) m_pActiveController->release();
+ m_pActiveController = _pController;
+ if (m_pActiveController) m_pActiveController->acquire();
+ }
+ }
+
+ //------------------------------------------------------------------------
+ void OPropertyBrowserView::Resize()
+ {
+ Size aSize = GetOutputSizePixel();
+ m_pPropBox->SetSizePixel(aSize);
+ }
+
+//............................................................................
+} // namespace pcr
+//............................................................................
+
+/*************************************************************************
+ * history:
+ * $Log: not supported by cvs2svn $
+ *
+ * Revision 1.0 08.01.01 11:05:54 fs
+ ************************************************************************/
+
diff --git a/extensions/source/propctrlr/browserview.hxx b/extensions/source/propctrlr/browserview.hxx
new file mode 100644
index 000000000..e350e50d4
--- /dev/null
+++ b/extensions/source/propctrlr/browserview.hxx
@@ -0,0 +1,139 @@
+/*************************************************************************
+ *
+ * $RCSfile: browserview.hxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: fs $ $Date: 2001-01-12 11:26:24 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (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.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc..
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#ifndef _EXTENSIONS_PROPCTRLR_BROWSERVIEW_HXX_
+#define _EXTENSIONS_PROPCTRLR_BROWSERVIEW_HXX_
+
+#ifndef _COM_SUN_STAR_BEANS_XPROPERTYSET_HPP_
+#include <com/sun/star/beans/XPropertySet.hpp>
+#endif
+#include <com/sun/star/lang/XMultiServiceFactory.hpp>
+#ifndef _SV_WINDOW_HXX
+#include <vcl/window.hxx>
+#endif
+#ifndef _TOOLS_RESID_HXX
+#include <tools/resid.hxx>
+#endif
+
+//............................................................................
+namespace pcr
+{
+//............................................................................
+
+ class OPropertyBrowserController;
+ class OPropertyEditor;
+
+ //========================================================================
+ //=
+ //========================================================================
+ class OPropertyBrowserView : public Window
+ {
+ friend class OPropertyBrowserController;
+
+ OPropertyBrowserController* m_pActiveController;
+
+ ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > m_xObject;
+ ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > m_xORB;
+
+ OPropertyEditor* m_pPropBox;
+ sal_uInt16 m_nActivePage;
+
+ protected:
+ virtual void Resize();
+
+ public:
+ OPropertyBrowserView(const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& _xORB,
+ Window* pParent, WinBits nBits = 0);
+ OPropertyBrowserView(const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& _xORB,
+ Window* pParent, const ResId& rId);
+
+ virtual ~OPropertyBrowserView();
+
+ OPropertyBrowserController* getActiveController() const
+ { return m_pActiveController; }
+ void setActiveController( OPropertyBrowserController* pController );
+
+ OPropertyEditor* getPropertyBox() { return m_pPropBox; }
+
+ void setObject(const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& _rxObject)
+ { m_xObject = _rxObject; }
+ const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& getObject() const
+ { return m_xObject; }
+
+ // page handling
+ sal_uInt16 getActivaPage() const { return m_nActivePage; }
+ void activatePage(sal_uInt16 _nPage);
+ };
+
+
+//............................................................................
+} // namespace pcr
+//............................................................................
+
+#endif // _EXTENSIONS_PROPCTRLR_BROWSERVIEW_HXX_
+
+/*************************************************************************
+ * history:
+ * $Log: not supported by cvs2svn $
+ *
+ * Revision 1.0 08.01.01 11:01:16 fs
+ ************************************************************************/
+
diff --git a/extensions/source/propctrlr/commoncontrol.cxx b/extensions/source/propctrlr/commoncontrol.cxx
new file mode 100644
index 000000000..76885a769
--- /dev/null
+++ b/extensions/source/propctrlr/commoncontrol.cxx
@@ -0,0 +1,202 @@
+/*************************************************************************
+ *
+ * $RCSfile: commoncontrol.cxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: fs $ $Date: 2001-01-12 11:26:54 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (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.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc..
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#ifndef _EXTENSIONS_PROPCTRLR_COMMONCONTROL_HXX_
+#include "commoncontrol.hxx"
+#endif
+#ifndef _TOOLS_DEBUG_HXX
+#include <tools/debug.hxx>
+#endif
+#ifndef _EXTENSIONS_PROPCTRLR_BRWCONTROLLISTENER_HXX_
+#include "brwcontrollistener.hxx"
+#endif
+#ifndef _SV_COMBOBOX_HXX
+#include <vcl/combobox.hxx>
+#endif
+
+//............................................................................
+namespace pcr
+{
+//............................................................................
+ //==================================================================
+ //= OCommonBehaviourControl
+ //==================================================================
+ //------------------------------------------------------------------
+ OCommonBehaviourControl::OCommonBehaviourControl(Window* _pMeAsWin)
+ :m_pListener(NULL)
+ ,m_pData(NULL)
+ ,m_bDir(sal_True)
+ ,m_bLocked(sal_False)
+ ,m_bModified(sal_False)
+ ,m_nLine(0)
+ ,m_sStandardString(getStandardString())
+ ,m_pMeAsWindow(_pMeAsWin)
+ {
+ DBG_ASSERT(m_pMeAsWindow != NULL, "OCommonBehaviourControl::OCommonBehaviourControl: invalid window!");
+ }
+
+ //------------------------------------------------------------------
+ void OCommonBehaviourControl::SetLocked(sal_Bool _bFlag)
+ {
+ m_bLocked = _bFlag;
+ Font aFont = m_pMeAsWindow->GetFont();
+ if (m_bLocked)
+ {
+ aFont.SetColor(Color(COL_GRAY));
+ }
+ else
+ {
+ aFont = m_pMeAsWindow->GetParent()->GetFont();
+ }
+ m_pMeAsWindow->SetFont(aFont);
+ }
+
+ //------------------------------------------------------------------
+ void OCommonBehaviourControl::autoSizeWindow()
+ {
+ ComboBox aComboBox(m_pMeAsWindow, WB_DROPDOWN);
+ aComboBox.SetPosSizePixel(Point(0,0), Size(100,100));
+ m_pMeAsWindow->SetSizePixel(aComboBox.GetSizePixel());
+ }
+
+ //------------------------------------------------------------------
+ sal_Bool OCommonBehaviourControl::handlePreNotify(NotifyEvent& rNEvt)
+ {
+ if (EVENT_KEYINPUT == rNEvt.GetType())
+ {
+ const KeyCode& aKeyCode = rNEvt.GetKeyEvent()->GetKeyCode();
+ sal_uInt16 nKey = aKeyCode.GetCode();
+
+ if (nKey == KEY_RETURN && !aKeyCode.IsShift())
+ {
+ LoseFocusHdl(m_pMeAsWindow);
+ m_bDir = sal_True;
+ if (m_pListener != NULL)
+ m_pListener->TravelLine(this);
+ return sal_True;
+ }
+ }
+ return sal_False;
+ }
+
+ //------------------------------------------------------------------
+ void OCommonBehaviourControl::CommitModified()
+ {
+ if (IsModified() && getListener())
+ getListener()->Commit(this);
+ m_bModified = sal_False;
+ }
+
+ //------------------------------------------------------------------
+ void OCommonBehaviourControl::modified(Window* _pSource)
+ {
+ m_bModified = sal_True;
+ if (m_pListener != NULL)
+ m_pListener->Modified(this);
+ }
+
+ //------------------------------------------------------------------
+ void OCommonBehaviourControl::getFocus(Window* _pSource)
+ {
+ if (m_pListener != NULL)
+ m_pListener->GetFocus(this);
+ }
+
+ //------------------------------------------------------------------
+ void OCommonBehaviourControl::commitModified(Window* _pSource)
+ {
+ if (m_pListener != NULL && m_bModified)
+ m_pListener->Commit(this);
+ m_bModified = sal_False;
+ }
+
+ //------------------------------------------------------------------
+ IMPL_LINK( OCommonBehaviourControl, ModifiedHdl, Window*, _pWin )
+ {
+ modified(_pWin);
+ return 0;
+ }
+
+ //------------------------------------------------------------------
+ IMPL_LINK( OCommonBehaviourControl, GetFocusHdl, Window*, _pWin )
+ {
+ getFocus(_pWin);
+ return 0;
+ }
+
+ //------------------------------------------------------------------
+ IMPL_LINK( OCommonBehaviourControl, LoseFocusHdl, Window*, _pWin )
+ {
+ commitModified(_pWin);
+ return 0;
+ }
+
+//............................................................................
+} // namespace pcr
+//............................................................................
+
+/*************************************************************************
+ * history:
+ * $Log: not supported by cvs2svn $
+ *
+ * Revision 1.0 09.01.01 09:55:50 fs
+ ************************************************************************/
+
diff --git a/extensions/source/propctrlr/commoncontrol.hxx b/extensions/source/propctrlr/commoncontrol.hxx
new file mode 100644
index 000000000..d4aebda6e
--- /dev/null
+++ b/extensions/source/propctrlr/commoncontrol.hxx
@@ -0,0 +1,165 @@
+/*************************************************************************
+ *
+ * $RCSfile: commoncontrol.hxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: fs $ $Date: 2001-01-12 11:27:06 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (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.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc..
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#ifndef _EXTENSIONS_PROPCTRLR_COMMONCONTROL_HXX_
+#define _EXTENSIONS_PROPCTRLR_COMMONCONTROL_HXX_
+
+#ifndef _EXTENSIONS_PROPCTRLR_BRWCONTROL_HXX_
+#include "brwcontrol.hxx"
+#endif
+#ifndef _SV_WINDOW_HXX
+#include <vcl/window.hxx>
+#endif
+
+//............................................................................
+namespace pcr
+{
+//............................................................................
+
+ //========================================================================
+ //= OCommonBehaviourControl
+ //========================================================================
+ class OCommonBehaviourControl : public IBrowserControl
+ {
+ protected:
+ ::rtl::OUString m_sStandardString;
+ ::rtl::OUString m_aName;
+ Window* m_pMeAsWindow;
+ IBrowserControlListener* m_pListener;
+ void* m_pData;
+ sal_uInt16 m_nLine;
+ sal_Bool m_bDir : 1;
+ sal_Bool m_bLocked : 1;
+ sal_Bool m_bModified : 1;
+
+ public:
+ OCommonBehaviourControl(Window* _pMeAsWin);
+
+ virtual void setListener(IBrowserControlListener* p) { m_pListener = p; }
+ virtual IBrowserControlListener* getListener() { return m_pListener; }
+
+ virtual sal_Bool HasList() { return sal_False; }
+ virtual void ClearList() { return; }
+ virtual void InsertCtrEntry(const ::rtl::OUString& rString, sal_uInt16 nPos = EDITOR_LIST_APPEND) { return; }
+
+ virtual sal_Bool IsModified() { return m_bModified; }
+ virtual void CommitModified();
+
+ virtual void SetMyName(const ::rtl::OUString &rString) { m_aName = rString; }
+ virtual ::rtl::OUString GetMyName()const { return m_aName; }
+
+ virtual void SetMyData(void* pData) { m_pData = pData; }
+ virtual void* GetMyData() { return m_pData; }
+
+ virtual sal_Bool GetDirection() { return m_bDir; }
+
+ virtual void SetLine(sal_uInt16 nLine) { m_nLine = nLine; }
+ virtual sal_uInt16 GetLine() { return m_nLine; }
+
+ virtual void SetLocked(sal_Bool bLocked=sal_True);
+
+ virtual Window* GetMe() { return m_pMeAsWindow; }
+
+ virtual void SetCtrSize(const Size& rSize) { m_pMeAsWindow->SetSizePixel(rSize); }
+ virtual void SetCtrPos(const Point& aPoint) { m_pMeAsWindow->SetPosPixel(aPoint); }
+ virtual Point GetCtrPos() const { return m_pMeAsWindow->GetPosPixel(); }
+ virtual Size GetCtrSize() const { return m_pMeAsWindow->GetSizePixel(); }
+ virtual void ShowCtr(sal_Bool bFlag=sal_True) { m_pMeAsWindow->Show(bFlag); }
+ virtual void HideCtr() { m_pMeAsWindow->Hide(); }
+
+ virtual void SetCtrHelpId(sal_uInt32 nHelpId) { m_pMeAsWindow->SetHelpId(nHelpId); }
+ virtual void SetTabOrder(Window* pRefWindow, sal_uInt16 nFlags ) { m_pMeAsWindow->SetZOrder(pRefWindow,nFlags); }
+ virtual void SetCtrParent(Window* pParent) { m_pMeAsWindow->SetParent(pParent); }
+ virtual void InvalidateCtr() { m_pMeAsWindow->Invalidate(); }
+ virtual void UpdateCtr() { m_pMeAsWindow->Update(); }
+
+ protected:
+ /// may be used to implement the default handling in PreNotify; returns sal_True if handled
+ sal_Bool handlePreNotify(NotifyEvent& _rNEvt);
+
+ /// automatically size the window given in the ctor
+ void autoSizeWindow();
+
+ /// may be used by derived classes, they forward the event to the PropCtrListener
+ DECL_LINK(ModifiedHdl,Window*);
+ DECL_LINK(GetFocusHdl,Window*);
+ DECL_LINK(LoseFocusHdl,Window*);
+
+ protected:
+ // virtual versions of the handlers, called from within the link
+ virtual void modified(Window* _pSource);
+ virtual void getFocus(Window* _pSource);
+ virtual void commitModified(Window* _pSource);
+ };
+
+//............................................................................
+} // namespace pcr
+//............................................................................
+
+#endif // _EXTENSIONS_PROPCTRLR_COMMONCONTROL_HXX_
+
+/*************************************************************************
+ * history:
+ * $Log: not supported by cvs2svn $
+ *
+ * Revision 1.0 09.01.01 09:51:51 fs
+ ************************************************************************/
+
diff --git a/extensions/source/propctrlr/formbrowsertools.cxx b/extensions/source/propctrlr/formbrowsertools.cxx
new file mode 100644
index 000000000..156dfaf8f
--- /dev/null
+++ b/extensions/source/propctrlr/formbrowsertools.cxx
@@ -0,0 +1,184 @@
+/*************************************************************************
+ *
+ * $RCSfile: formbrowsertools.cxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: fs $ $Date: 2001-01-12 11:27:35 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (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.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc..
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#ifndef _EXTENSIONS_FORMSCTRLR_FORMBROWSERTOOLS_HXX_
+#include "formbrowsertools.hxx"
+#endif
+#ifndef _COM_SUN_STAR_FORM_FORMCOMPONENTTYPE_HPP_
+#include <com/sun/star/form/FormComponentType.hpp>
+#endif
+#ifndef _COM_SUN_STAR_LANG_XSERVICEINFO_HPP_
+#include <com/sun/star/lang/XServiceInfo.hpp>
+#endif
+#ifndef _COM_SUN_STAR_BEANS_XPROPERTYSET_HPP_
+#include <com/sun/star/beans/XPropertySet.hpp>
+#endif
+#ifndef _EXTENSIONS_FORMCTRLR_PROPRESID_HRC_
+#include "formresid.hrc"
+#endif
+#ifndef _EXTENSIONS_PROPCTRLR_MODULEPRC_HXX_
+#include "modulepcr.hxx"
+#endif
+#ifndef _STRING_HXX
+#include <tools/string.hxx>
+#endif
+#ifndef _EXTENSIONS_FORMSCTRLR_FORMSTRINGS_HXX_
+#include "formstrings.hxx"
+#endif
+
+//............................................................................
+namespace pcr
+{
+//............................................................................
+
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::form;
+ using namespace ::com::sun::star::lang;
+ using namespace ::com::sun::star::beans;
+
+ ::rtl::OUString GetUIHeadlineName(sal_Int16 nClassId, const Any& aUnoObj)
+ {
+ OModuleResourceClient aResourceAccess;
+ // this ensures that we have our resource file loaded
+
+ ::rtl::OUString sClassName;
+ switch (nClassId)
+ {
+ case FormComponentType::TEXTFIELD:
+ {
+ Reference< XInterface > xIFace;
+ aUnoObj >>= xIFace;
+ sClassName = String(ModuleRes(RID_STR_PROPTITLE_EDIT));
+ if (xIFace.is())
+ { // we have a chance to check if it's a formatted field model
+ Reference< XServiceInfo > xInfo(xIFace, UNO_QUERY);
+ if (xInfo.is() && (xInfo->supportsService(SERVICE_COMPONENT_FORMATTEDFIELD)))
+ sClassName = ::rtl::OUString(ModuleRes(RID_STR_PROPTITLE_FORMATTED));
+ else if (!xInfo.is())
+ {
+ // couldn't distinguish between formatted and edit with the service name, so try with the properties
+ Reference< XPropertySet > xProps(xIFace, UNO_QUERY);
+ if (xProps.is())
+ {
+ Reference< XPropertySetInfo > xPropsInfo = xProps->getPropertySetInfo();
+ if (xPropsInfo.is() && xPropsInfo->hasPropertyByName(PROPERTY_FORMATSSUPPLIER))
+ sClassName = ::rtl::OUString(ModuleRes(RID_STR_PROPTITLE_FORMATTED));
+ }
+ }
+ }
+ }
+ break;
+
+ case FormComponentType::COMMANDBUTTON:
+ sClassName = ::rtl::OUString(ModuleRes(RID_STR_PROPTITLE_PUSHBUTTON)); break;
+ case FormComponentType::RADIOBUTTON:
+ sClassName = ::rtl::OUString(ModuleRes(RID_STR_PROPTITLE_RADIOBUTTON)); break;
+ case FormComponentType::CHECKBOX:
+ sClassName = ::rtl::OUString(ModuleRes(RID_STR_PROPTITLE_CHECKBOX)); break;
+ case FormComponentType::LISTBOX:
+ sClassName = ::rtl::OUString(ModuleRes(RID_STR_PROPTITLE_LISTBOX)); break;
+ case FormComponentType::COMBOBOX:
+ sClassName = ::rtl::OUString(ModuleRes(RID_STR_PROPTITLE_COMBOBOX)); break;
+ case FormComponentType::GROUPBOX:
+ sClassName = ::rtl::OUString(ModuleRes(RID_STR_PROPTITLE_GROUPBOX)); break;
+ case FormComponentType::IMAGEBUTTON:
+ sClassName = ::rtl::OUString(ModuleRes(RID_STR_PROPTITLE_IMAGEBUTTON)); break;
+ case FormComponentType::FIXEDTEXT:
+ sClassName = ::rtl::OUString(ModuleRes(RID_STR_PROPTITLE_FIXEDTEXT)); break;
+ case FormComponentType::GRIDCONTROL:
+ sClassName = ::rtl::OUString(ModuleRes(RID_STR_PROPTITLE_DBGRID)); break;
+ case FormComponentType::FILECONTROL:
+ sClassName = ::rtl::OUString(ModuleRes(RID_STR_PROPTITLE_FILECONTROL)); break;
+
+ case FormComponentType::DATEFIELD:
+ sClassName = ::rtl::OUString(ModuleRes(RID_STR_PROPTITLE_DATEFIELD)); break;
+ case FormComponentType::TIMEFIELD:
+ sClassName = ::rtl::OUString(ModuleRes(RID_STR_PROPTITLE_TIMEFIELD)); break;
+ case FormComponentType::NUMERICFIELD:
+ sClassName = ::rtl::OUString(ModuleRes(RID_STR_PROPTITLE_NUMERICFIELD)); break;
+ case FormComponentType::CURRENCYFIELD:
+ sClassName = ::rtl::OUString(ModuleRes(RID_STR_PROPTITLE_CURRENCYFIELD)); break;
+ case FormComponentType::PATTERNFIELD:
+ sClassName = ::rtl::OUString(ModuleRes(RID_STR_PROPTITLE_PATTERNFIELD)); break;
+ case FormComponentType::IMAGECONTROL:
+ sClassName = ::rtl::OUString(ModuleRes(RID_STR_PROPTITLE_IMAGECONTROL)); break;
+ case FormComponentType::HIDDENCONTROL:
+ sClassName = ::rtl::OUString(ModuleRes(RID_STR_PROPTITLE_HIDDENCONTROL)); break;
+
+ case FormComponentType::CONTROL:
+ default:
+ sClassName = ::rtl::OUString(ModuleRes(RID_STR_PROPTITLE_UNKNOWNCONTROL)); break;
+ }
+
+ return sClassName;
+ }
+
+//............................................................................
+} // namespace pcr
+//............................................................................
+
+/*************************************************************************
+ * history:
+ * $Log: not supported by cvs2svn $
+ *
+ * Revision 1.0 09.01.01 14:48:34 fs
+ ************************************************************************/
+
diff --git a/extensions/source/propctrlr/formbrowsertools.hxx b/extensions/source/propctrlr/formbrowsertools.hxx
new file mode 100644
index 000000000..3bc1388e7
--- /dev/null
+++ b/extensions/source/propctrlr/formbrowsertools.hxx
@@ -0,0 +1,91 @@
+/*************************************************************************
+ *
+ * $RCSfile: formbrowsertools.hxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: fs $ $Date: 2001-01-12 11:27:47 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (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.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc..
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#ifndef _EXTENSIONS_FORMSCTRLR_FORMBROWSERTOOLS_HXX_
+#define _EXTENSIONS_FORMSCTRLR_FORMBROWSERTOOLS_HXX_
+
+#ifndef _COM_SUN_STAR_UNO_ANY_HXX_
+#include <com/sun/star/uno/Any.hxx>
+#endif
+#ifndef _RTL_USTRING_HXX_
+#include <rtl/ustring.hxx>
+#endif
+
+//............................................................................
+namespace pcr
+{
+//............................................................................
+
+ ::rtl::OUString GetUIHeadlineName(sal_Int16 _nClassId, const ::com::sun::star::uno::Any& _rUnoObject);
+
+//............................................................................
+} // namespace pcr
+//............................................................................
+
+#endif // _EXTENSIONS_FORMSCTRLR_FORMBROWSERTOOLS_HXX_
+
+/*************************************************************************
+ * history:
+ * $Log: not supported by cvs2svn $
+ *
+ * Revision 1.0 09.01.01 14:36:11 fs
+ ************************************************************************/
+
diff --git a/extensions/source/propctrlr/formcontroller.cxx b/extensions/source/propctrlr/formcontroller.cxx
new file mode 100644
index 000000000..46efcf502
--- /dev/null
+++ b/extensions/source/propctrlr/formcontroller.cxx
@@ -0,0 +1,2503 @@
+/*************************************************************************
+ *
+ * $RCSfile: formcontroller.cxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: fs $ $Date: 2001-01-12 11:28:05 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (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.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc..
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+#define ITEMID_MACRO SID_ATTR_MACROITEM
+
+#ifndef _EXTENSIONS_PROPCTRLR_PROPCONTROLLER_HXX_
+#include "propcontroller.hxx"
+#endif
+#ifndef _EXTENSIONS_PROPCTRLR_USERCONTROL_HXX_
+#include "usercontrol.hxx"
+#endif
+#ifndef _COMPHELPER_PROPERTY_HXX_
+#include <comphelper/property.hxx>
+#endif
+#ifndef _COMPHELPER_TYPES_HXX_
+#include <comphelper/types.hxx>
+#endif
+#ifndef _EXTENSIONS_FORMSCTRLR_FORMBROWSERTOOLS_HXX_
+#include "formbrowsertools.hxx"
+#endif
+#ifndef _EXTENSIONS_PROPCTRLR_MODULEPRC_HXX_
+#include "modulepcr.hxx"
+#endif
+#ifndef _EXTENSIONS_PROPCTRLR_LINEDESCRIPTOR_HXX_
+#include "linedescriptor.hxx"
+#endif
+#ifndef _EXTENSIONS_FORMSCTRLR_FORMSTRINGS_HXX_
+#include "formstrings.hxx"
+#endif
+#ifndef _EXTENSIONS_PROPCTRLR_PROPRESID_HRC_
+#include "propresid.hrc"
+#endif
+#ifndef _EXTENSIONS_PROPCTRLR_FORMMETADATA_HXX_
+#include "formmetadata.hxx"
+#endif
+#ifndef _CPPUHELPER_EXTRACT_HXX_
+#include <cppuhelper/extract.hxx>
+#endif
+#ifndef _TOOLS_DEBUG_HXX
+#include <tools/debug.hxx>
+#endif
+#ifndef _SVX_SVXIDS_HRC
+#include <svx/svxids.hrc>
+#endif
+#ifndef _SFXITEMSET_HXX
+#include <svtools/itemset.hxx>
+#endif
+#ifndef _SFXAPP_HXX
+#include <sfx2/app.hxx>
+#endif
+#ifndef _COM_SUN_STAR_SDBC_XDATASOURCE_HPP_
+#include <com/sun/star/sdbc/XDataSource.hpp>
+#endif
+#ifndef _COM_SUN_STAR_BEANS_PROPERTYATTRIBUTE_HPP_
+#include <com/sun/star/beans/PropertyAttribute.hpp>
+#endif
+#ifndef _COM_SUN_STAR_UTIL_XNUMBERFORMATSSUPPLIER_HPP_
+#include <com/sun/star/util/XNumberFormatsSupplier.hpp>
+#endif
+#ifndef _COM_SUN_STAR_UTIL_XNUMBERFORMATTYPES_HPP_
+#include <com/sun/star/util/XNumberFormatTypes.hpp>
+#endif
+#ifndef _COM_SUN_STAR_SDBC_XPREPAREDSTATEMENT_HPP_
+#include <com/sun/star/sdbc/XPreparedStatement.hpp>
+#endif
+#ifndef _COM_SUN_STAR_SDBC_XROWSET_HPP_
+#include <com/sun/star/sdbc/XRowSet.hpp>
+#endif
+#ifndef _COM_SUN_STAR_SDBCX_XTABLESSUPPLIER_HPP_
+#include <com/sun/star/sdbcx/XTablesSupplier.hpp>
+#endif
+#ifndef _COM_SUN_STAR_FORM_LISTSOURCETYPE_HPP_
+#include <com/sun/star/form/ListSourceType.hpp>
+#endif
+#ifndef _COM_SUN_STAR_SDB_XQUERIESSUPPLIER_HPP_
+#include <com/sun/star/sdb/XQueriesSupplier.hpp>
+#endif
+#ifndef _COM_SUN_STAR_SDBCX_XCOLUMNSSUPPLIER_HPP_
+#include <com/sun/star/sdbcx/XColumnsSupplier.hpp>
+#endif
+#ifndef _COM_SUN_STAR_FORM_FORMCOMPONENTTYPE_HPP_
+#include <com/sun/star/form/FormComponentType.hpp>
+#endif
+#ifndef _COM_SUN_STAR_UNO_XNAMINGSERVICE_HPP_
+#include <com/sun/star/uno/XNamingService.hpp>
+#endif
+#ifndef _COM_SUN_STAR_FORM_XGRIDCOLUMNFACTORY_HPP_
+#include <com/sun/star/form/XGridColumnFactory.hpp>
+#endif
+#ifndef _CONNECTIVITY_DBTOOLS_HXX_
+#include <connectivity/dbtools.hxx>
+#endif
+#ifndef _NUMUNO_HXX
+#include <svtools/numuno.hxx>
+#endif
+#ifndef _SFXINTITEM_HXX
+#include <svtools/intitem.hxx>
+#endif
+#define ITEMID_NUMBERINFO SID_ATTR_NUMBERFORMAT_INFO
+#ifndef _SVX_NUMINF_HXX
+#include <svx/numinf.hxx>
+#endif
+#ifndef _BASEDLGS_HXX
+#include <sfx2/basedlgs.hxx>
+#endif
+#ifndef _SV_WRKWIN_HXX
+#include <vcl/wrkwin.hxx>
+#endif
+#ifndef _SVX_NUMFMT_HXX
+#include <svx/numfmt.hxx>
+#endif
+#ifndef _SV_MSGBOX_HXX
+#include <vcl/msgbox.hxx>
+#endif
+#ifndef _EXTENSIONS_PROPCTRLR_PROPERTYEDITOR_HXX_
+#include "propertyeditor.hxx"
+#endif
+#ifndef _SV_WAITOBJ_HXX
+#include <vcl/waitobj.hxx>
+#endif
+
+// for the font handling
+#define ITEMID_FONT SID_ATTR_CHAR_FONT
+#define ITEMID_POSTURE SID_ATTR_CHAR_POSTURE
+#define ITEMID_WEIGHT SID_ATTR_CHAR_WEIGHT
+#define ITEMID_SHADOWED SID_ATTR_CHAR_SHADOWED
+#define ITEMID_WORDLINEMODE SID_ATTR_CHAR_WORDLINEMODE
+#define ITEMID_CONTOUR SID_ATTR_CHAR_CONTOUR
+#define ITEMID_CROSSEDOUT SID_ATTR_CHAR_STRIKEOUT
+#define ITEMID_UNDERLINE SID_ATTR_CHAR_UNDERLINE
+#define ITEMID_FONTHEIGHT SID_ATTR_CHAR_FONTHEIGHT
+#define ITEMID_PROPSIZE SID_ATTR_CHAR_PROPSIZE
+#define ITEMID_COLOR SID_ATTR_CHAR_COLOR
+#define ITEMID_KERNING SID_ATTR_CHAR_KERNING
+#define ITEMID_CASEMAP SID_ATTR_CHAR_CASEMAP
+#define ITEMID_LANGUAGE SID_ATTR_CHAR_LANGUAGE
+#define ITEMID_ESCAPEMENT SID_ATTR_CHAR_ESCAPEMENT
+#define ITEMID_FONTLIST SID_ATTR_CHAR_FONTLIST
+#define ITEMID_AUTOKERN SID_ATTR_CHAR_AUTOKERN
+#define ITEMID_COLOR_TABLE SID_COLOR_TABLE
+#define ITEMID_BLINK SID_ATTR_FLASH
+#define ITEMID_BRUSH SID_ATTR_BRUSH
+#ifndef _SVX_FONTITEM_HXX
+#include <svx/fontitem.hxx>
+#endif
+#ifndef _SVX_FHGTITEM_HXX
+#include <svx/fhgtitem.hxx>
+#endif
+#ifndef _SVX_POSTITEM_HXX
+#include <svx/postitem.hxx>
+#endif
+#ifndef _SVX_WGHTITEM_HXX
+#include <svx/wghtitem.hxx>
+#endif
+#ifndef _SVX_UDLNITEM_HXX
+#include <svx/udlnitem.hxx>
+#endif
+#ifndef _SVX_CRSDITEM_HXX
+#include <svx/crsditem.hxx>
+#endif
+#ifndef _SVX_COLRITEM_HXX
+#include <svx/colritem.hxx>
+#endif
+#ifndef _SVX_FLSTITEM_HXX
+#include <svx/flstitem.hxx>
+#endif
+#ifndef _TOOLKIT_HELPER_VCLUNOHELPER_HXX_
+#include <toolkit/unohlp.hxx>
+#endif
+#ifndef _COM_SUN_STAR_AWT_FONTWEIGHT_HPP_
+#include <com/sun/star/awt/FontWeight.hpp>
+#endif
+#ifndef _COM_SUN_STAR_AWT_FONTSLANT_HPP_
+#include <com/sun/star/awt/FontSlant.hpp>
+#endif
+#ifndef _COM_SUN_STAR_AWT_FONTUNDERLINE_HPP_
+#include <com/sun/star/awt/FontUnderline.hpp>
+#endif
+#ifndef _COM_SUN_STAR_AWT_FONTSTRIKEOUT_HPP_
+#include <com/sun/star/awt/FontStrikeout.hpp>
+#endif
+#ifndef _CTRLTOOL_HXX
+#include <svtools/ctrltool.hxx>
+#endif
+#ifndef _SVX_CHARDLG_HXX
+#include <svx/chardlg.hxx>
+#endif
+#ifndef _EXTENSIONS_FORMCTRLR_PROPRESID_HRC_
+#include "formresid.hrc"
+#endif
+
+// event handling
+#ifndef _COM_SUN_STAR_SCRIPT_SCRIPTEVENTDESCRIPTOR_HPP_
+#include <com/sun/star/script/ScriptEventDescriptor.hpp>
+#endif
+#ifndef _MACROPG_HXX
+#include <sfx2/macropg.hxx>
+#endif
+#ifndef _COM_SUN_STAR_CONTAINER_XINDEXACCESS_HPP_
+#include <com/sun/star/container/XIndexAccess.hpp>
+#endif
+#ifndef _SFXMACITEM_HXX
+#include <svtools/macitem.hxx>
+#endif
+#define LINETYPE_EVENT reinterpret_cast<void*>(0xFFFFFFFF)
+
+#ifndef _EXTENSIONS_FORMCTRLR_FORMHELPID_HRC_
+#include "formhelpid.hrc"
+#endif
+#ifndef _COMPHELPER_STLTYPES_HXX_
+#include <comphelper/stl_types.hxx>
+#endif
+
+#ifndef _IODLG_HXX
+#include <sfx2/iodlg.hxx>
+#endif
+#ifndef _SVX_IMPGRF_HXX
+#include <svx/impgrf.hxx>
+#endif
+#ifndef _SV_COLRDLG_HXX
+#include <svtools/colrdlg.hxx>
+#endif
+#ifndef _EXTENSIONS_PROPCTRLR_SELECTLABELDIALOG_HXX_
+#include "selectlabeldialog.hxx"
+#endif
+#ifndef SVTOOLS_URIHELPER_HXX
+#include <svtools/urihelper.hxx>
+#endif
+
+//............................................................................
+namespace pcr
+{
+//............................................................................
+
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::form;
+ using namespace ::com::sun::star::sdb;
+ using namespace ::com::sun::star::sdbc;
+ using namespace ::com::sun::star::sdbcx;
+ using namespace ::com::sun::star::beans;
+ using namespace ::com::sun::star::script;
+ using namespace ::com::sun::star::lang;
+ using namespace ::com::sun::star::util;
+ using namespace ::com::sun::star::container;
+
+ static const IPropertyInfoService* getFormPropertyInfo()
+ {
+ static const OFormPropertyInfoService s_aFormMetaDataInfo;
+ return &s_aFormMetaDataInfo;
+ };
+
+ //========================================================================
+ //= helper
+ //========================================================================
+ Sequence< ::rtl::OUString> getEventMethods(const Type& type)
+ {
+ typelib_InterfaceTypeDescription *pType=0;
+ type.getDescription( (typelib_TypeDescription**)&pType);
+
+ if (!pType)
+ return Sequence< ::rtl::OUString>();
+
+ Sequence< ::rtl::OUString> aNames(pType->nMembers);
+ ::rtl::OUString* pNames = aNames.getArray();
+ for (sal_Int32 i=0;i<pType->nMembers;i++,++pNames)
+ {
+ // the decription reference
+ typelib_TypeDescriptionReference* pMemberDescriptionReference = pType->ppMembers[i];
+ // the description for the reference
+ typelib_TypeDescription* pMemberDescription = NULL;
+ typelib_typedescriptionreference_getDescription(&pMemberDescription, pMemberDescriptionReference);
+ if (pMemberDescription)
+ {
+ typelib_InterfaceMemberTypeDescription* pRealMemberDescription =
+ reinterpret_cast<typelib_InterfaceMemberTypeDescription*>(pMemberDescription);
+ *pNames = pRealMemberDescription->pMemberName;
+ }
+ }
+
+ typelib_typedescription_release( (typelib_TypeDescription *)pType );
+ return aNames;
+ }
+
+ //------------------------------------------------------------------------
+ class OLineDescriptorLess
+ {
+ public:
+ bool operator() (const OLineDescriptor& lhs, const OLineDescriptor& rhs) const
+ {
+ return lhs.nUniqueButtonId < rhs.nUniqueButtonId;
+ }
+ };
+
+ //========================================================================
+ //= OPropertyBrowserController
+ //========================================================================
+ //------------------------------------------------------------------------
+ void OPropertyBrowserController::initializeSpecialStuff()
+ {
+ m_pPropertyInfo = getFormPropertyInfo();
+ }
+
+ //------------------------------------------------------------------------
+ ::rtl::OUString OPropertyBrowserController::AnyToString( const Any& rValue, const Property& _rProp, sal_Int32 _nPropId)
+ {
+ ::rtl::OUString sReturn;
+ if (!rValue.hasValue())
+ return sReturn;
+
+ try
+ {
+ sReturn = convertSimpleToString(rValue);
+
+ // translations for some known types
+ switch(rValue.getValueTypeClass())
+ {
+ // booleans
+ case TypeClass_BOOLEAN:
+ {
+ String aEntries(ModuleRes(RID_STR_BOOL));
+ sReturn = ::comphelper::getBOOL(rValue) ? aEntries.GetToken(1) : aEntries.GetToken(0);
+ }
+ break;
+
+ // sequences
+ case TypeClass_SEQUENCE:
+ {
+ // string sequences
+ if (rValue.getValueType() == ::getCppuType((const Sequence< ::rtl::OUString>*)0))
+ {
+ Sequence< ::rtl::OUString> aStringSeq;
+ rValue >>= aStringSeq;
+
+ String aRet;
+
+ // loop through the elements and concatenate the elements (separated by a line break)
+ const ::rtl::OUString* pStringArray = aStringSeq.getConstArray();
+ sal_uInt32 nCount = aStringSeq.getLength();
+ for (sal_uInt32 i=0; i<nCount; ++i, ++pStringArray )
+ {
+ aRet += pStringArray->getStr();
+ if (i!=(nCount-1))
+ aRet += '\n';
+ }
+ sReturn = aRet;
+ }
+ // uInt16 sequences
+ else if (rValue.getValueType() == ::getCppuType((Sequence<sal_uInt16>*)0))
+ {
+ String aRet;
+ Sequence<sal_uInt16> aValues;
+ rValue >>= aValues;
+
+ // loop through the elements and concatenate the string representations of the integers
+ // (separated by a line break)
+ const sal_uInt16* pArray = aValues.getConstArray();
+ sal_uInt32 nCount = aValues.getLength();
+ for (sal_uInt32 i=0; i<nCount; ++i, ++pArray)
+ {
+ aRet += String::CreateFromInt32(*pArray);
+ if (i!=(nCount-1) )
+ aRet += '\n';
+ }
+ sReturn = aRet;
+ }
+ // Int16 sequences
+ else if (rValue.getValueType() == ::getCppuType((const Sequence<sal_Int16>*)0))
+ {
+ String aRet;
+ Sequence<sal_Int16> aValues;
+ rValue >>= aValues;
+
+ // loop through the elements and concatenate the string representations of the integers
+ // (separated by a line break)
+ const sal_Int16* pArray = aValues.getConstArray();
+ sal_uInt32 nCount = aValues.getLength();
+ for (sal_uInt32 i=0; i<nCount; ++i, ++pArray)
+ {
+ aRet += String::CreateFromInt32(*pArray);
+ if (i!=(nCount-1) )
+ aRet += '\n';
+ }
+ sReturn = aRet;
+ }
+ // uInt32 sequences
+ else if (rValue.getValueType() == ::getCppuType((const Sequence<sal_uInt32>*)0))
+ {
+ String aRet;
+ Sequence<sal_uInt32> aValues;
+ rValue >>= aValues;
+
+ // loop through the elements and concatenate the string representations of the integers
+ // (separated by a line break)
+ const sal_uInt32* pArray = aValues.getConstArray();
+ sal_uInt32 nCount = aValues.getLength();
+ for (sal_uInt32 i=0; i<nCount; ++i, ++pArray )
+ {
+ aRet += String::CreateFromInt32(*pArray);
+ if (i!=(nCount-1) )
+ aRet += '\n';
+ }
+ sReturn = aRet;
+ }
+ // Int32 sequences
+ else if (rValue.getValueType() == ::getCppuType((const Sequence<sal_Int16>*)0))
+ {
+ String aRet;
+ Sequence<sal_Int32> aValues;
+ rValue >>= aValues;
+
+ // loop through the elements and concatenate the string representations of the integers
+ // (separated by a line break)
+ const sal_Int32* pArray = aValues.getConstArray();
+ sal_uInt32 nCount = aValues.getLength();
+ for (sal_uInt32 i=0; i<nCount; ++i, ++pArray )
+ {
+ aRet += String::CreateFromInt32(*pArray);
+ if (i!=(nCount-1) )
+ aRet += '\n';
+ }
+ sReturn = aRet;
+ }
+
+
+ }
+ break;
+
+ }
+
+ // TODO TODO TODO
+ // this is surely heavyly formdependent. Need another mechanism for converting Any->Display-String
+ switch (_nPropId)
+ {
+ // ListTypen
+ case PROPERTY_ID_ALIGN:
+ case PROPERTY_ID_DATEFORMAT:
+ case PROPERTY_ID_TIMEFORMAT:
+ case PROPERTY_ID_BORDER:
+ case PROPERTY_ID_DEFAULT_CHECKED:
+ case PROPERTY_ID_COMMANDTYPE:
+ case PROPERTY_ID_CYCLE:
+ case PROPERTY_ID_LISTSOURCETYPE:
+ case PROPERTY_ID_NAVIGATION:
+ case PROPERTY_ID_BUTTONTYPE:
+ case PROPERTY_ID_SUBMIT_METHOD:
+ case PROPERTY_ID_SUBMIT_ENCODING:
+ {
+ if (m_pPropertyInfo)
+ {
+ sal_Int32 nIntValue = -1;
+ if (::cppu::enum2int(nIntValue, rValue) && m_pPropertyInfo)
+ {
+ Sequence< ::rtl::OUString > aEnumStrings = m_pPropertyInfo->getPropertyEnumRepresentations(_nPropId);
+ if ((nIntValue >= 0) && (nIntValue < aEnumStrings.getLength()))
+ {
+ sReturn = aEnumStrings[nIntValue];
+ }
+ else
+ DBG_ERROR("OPropertyBrowserController::AnyToString: could not translate an enum value");
+ }
+ }
+ }
+ break;
+
+ case PROPERTY_ID_CONTROLLABEL:
+ {
+ String aReturn;
+ Reference< XPropertySet > xSet;
+ rValue >>= xSet;
+ if (xSet.is() && ::comphelper::hasProperty(PROPERTY_LABEL, xSet))
+ {
+ aReturn = '<';
+ aReturn += ::comphelper::getString(xSet->getPropertyValue(PROPERTY_LABEL)).getStr();
+ aReturn += '>';
+ }
+ sReturn = aReturn;
+ }
+ break;
+ }
+ }
+ catch (Exception&)
+ {
+ DBG_ERROR("OPropertyBrowserController::AnyToString: caught an exception!")
+ }
+
+ return sReturn;
+ }
+
+ //------------------------------------------------------------------------
+ Any OPropertyBrowserController::StringToAny( const ::rtl::OUString& _rString, const Property& _rProp, sal_Int32 _nPropId)
+ {
+ Any aReturn;
+ try
+ {
+ // void values
+ if ((_rProp.Attributes & PropertyAttribute::MAYBEVOID) && !_rString.getLength() )
+ return aReturn;
+
+ //////////////////////////////////////////////////////////////////////
+ // TypeClass
+ Type aPropertyType = _rProp.Type;
+ TypeClass ePropertyType = aPropertyType.getTypeClass();
+
+ // (one more) special handling : we have a prop which has a TypeClass "ANY" and needs a double
+ // (originally it needed a double _or_ a string, but our UI only supports a double for it)
+ if ((TypeClass_ANY == ePropertyType) && (PROPERTY_ID_EFFECTIVE_DEFAULT == _nPropId))
+ ePropertyType = TypeClass_DOUBLE;
+
+ switch (ePropertyType)
+ {
+ case TypeClass_STRING:
+ case TypeClass_FLOAT:
+ case TypeClass_DOUBLE:
+ case TypeClass_BYTE:
+ case TypeClass_SHORT:
+ case TypeClass_LONG:
+ case TypeClass_HYPER:
+ case TypeClass_UNSIGNED_SHORT:
+ case TypeClass_UNSIGNED_LONG:
+ case TypeClass_UNSIGNED_HYPER:
+ // TODO: same as above ... the type converter is expensive
+ try
+ {
+ aReturn = m_xTypeConverter->convertToSimpleType(makeAny(_rString), ePropertyType);
+ }
+ catch(CannotConvertException&) { }
+ catch(IllegalArgumentException&) { }
+ break;
+ }
+
+ switch( ePropertyType )
+ {
+
+ case TypeClass_BOOLEAN:
+ {
+ String sBooleanValues(ModuleRes(RID_STR_BOOL));
+ if (sBooleanValues.GetToken(0) == String(_rString))
+ aReturn <<= (sal_Bool)sal_True;
+ else
+ aReturn <<= (sal_Bool)sal_False;
+ }
+ break;
+
+ case TypeClass_SEQUENCE:
+ {
+ Type aElementType = ::comphelper::getSequenceElementType(aPropertyType);
+
+ String aStr(_rString);
+ switch (aElementType.getTypeClass())
+ {
+ case TypeClass_STRING:
+ {
+ sal_uInt32 nEntryCount = aStr.GetTokenCount('\n');
+ Sequence< ::rtl::OUString> aStringSeq( nEntryCount );
+ ::rtl::OUString* pStringArray = aStringSeq.getArray();
+
+ for (sal_Int32 i=0; i<aStringSeq.getLength(); ++i, ++pStringArray)
+ *pStringArray = aStr.GetToken((sal_uInt16)i, '\n');
+ aReturn <<= aStringSeq;
+ }
+ break;
+ case TypeClass_UNSIGNED_SHORT:
+ {
+ sal_uInt32 nEntryCount = aStr.GetTokenCount('\n');
+ Sequence<sal_uInt16> aSeq( nEntryCount );
+
+ sal_uInt16* pArray = aSeq.getArray();
+
+ for (sal_Int32 i=0; i<aSeq.getLength(); ++i, ++pArray)
+ *pArray = (sal_uInt16)aStr.GetToken((sal_uInt16)i, '\n').ToInt32();
+
+ aReturn <<= aSeq;
+
+ }
+ break;
+ case TypeClass_SHORT:
+ {
+ sal_uInt32 nEntryCount = aStr.GetTokenCount('\n');
+ Sequence<sal_Int16> aSeq( nEntryCount );
+
+ sal_Int16* pArray = aSeq.getArray();
+
+ for (sal_Int32 i=0; i<aSeq.getLength(); ++i, ++pArray)
+ *pArray = (sal_Int16)aStr.GetToken((sal_uInt16)i, '\n').ToInt32();
+
+ aReturn <<= aSeq;
+
+ }
+ break;
+ case TypeClass_LONG:
+ {
+ sal_uInt32 nEntryCount = aStr.GetTokenCount('\n');
+ Sequence<sal_Int32> aSeq( nEntryCount );
+
+ sal_Int32* pArray = aSeq.getArray();
+
+ for (sal_Int32 i=0; i<aSeq.getLength(); ++i, ++pArray)
+ *pArray = aStr.GetToken((sal_uInt16)i, '\n').ToInt32();
+
+ aReturn <<= aSeq;
+
+ }
+ break;
+ case TypeClass_UNSIGNED_LONG:
+ {
+ sal_uInt32 nEntryCount = aStr.GetTokenCount('\n');
+ Sequence<sal_uInt32> aSeq( nEntryCount );
+
+ sal_uInt32* pArray = aSeq.getArray();
+
+ for (sal_Int32 i=0; i<aSeq.getLength(); ++i, ++pArray)
+ *pArray = aStr.GetToken((sal_uInt16)i, '\n').ToInt32();
+
+ aReturn <<= aSeq;
+
+ }
+ }
+ }
+ break;
+ }
+
+ switch( _nPropId )
+ {
+ case PROPERTY_ID_ALIGN:
+ case PROPERTY_ID_DATEFORMAT:
+ case PROPERTY_ID_TIMEFORMAT:
+ case PROPERTY_ID_BORDER:
+ case PROPERTY_ID_DEFAULT_CHECKED:
+ case PROPERTY_ID_COMMANDTYPE:
+ case PROPERTY_ID_CYCLE:
+ case PROPERTY_ID_LISTSOURCETYPE:
+ case PROPERTY_ID_NAVIGATION:
+ case PROPERTY_ID_BUTTONTYPE:
+ case PROPERTY_ID_SUBMIT_METHOD:
+ case PROPERTY_ID_SUBMIT_ENCODING:
+ if (m_pPropertyInfo)
+ {
+ Sequence< ::rtl::OUString > aEnumStrings = m_pPropertyInfo->getPropertyEnumRepresentations(_nPropId);
+ sal_Int32 nPos = GetStringPos(_rString, aEnumStrings);
+ if (-1 != nPos)
+ {
+ switch (aPropertyType.getTypeClass())
+ {
+ case TypeClass_ENUM:
+ aReturn = ::cppu::int2enum(nPos, aPropertyType);
+ break;
+ case TypeClass_SHORT:
+ aReturn <<= (sal_Int16)nPos;
+ break;
+ case TypeClass_UNSIGNED_SHORT:
+ aReturn <<= (sal_uInt16)nPos;
+ break;
+ case TypeClass_UNSIGNED_LONG:
+ aReturn <<= (sal_uInt32)nPos;
+ break;
+ default:
+ aReturn <<= (sal_Int32)nPos;
+ break;
+ }
+ }
+ else
+ DBG_ERROR("OPropertyBrowserController::StringToAny: could not translate the enum string!");
+ }
+ break;
+ }
+ }
+ catch(Exception&)
+ {
+ DBG_ERROR("OPropertyBrowserController::StringToAny: caught an exception !")
+ }
+
+ return aReturn;
+ }
+
+ //------------------------------------------------------------------------
+ void OPropertyBrowserController::ChangeFormatProperty(const ::rtl::OUString& _rName, const ::rtl::OUString& _rCurVal)
+ {
+ // create the itemset for the dialog
+ SfxItemSet aCoreSet(SFX_APP()->GetPool(),
+ SID_ATTR_NUMBERFORMAT_VALUE, SID_ATTR_NUMBERFORMAT_VALUE,
+ SID_ATTR_NUMBERFORMAT_INFO, SID_ATTR_NUMBERFORMAT_INFO,
+ 0); // ripped this somewhere ... don't understand it :(
+
+ // get the number formats supplier
+ Reference< XNumberFormatsSupplier > xSupplier;
+ m_xPropValueAccess->getPropertyValue(PROPERTY_FORMATSSUPPLIER) >>= xSupplier;
+
+ DBG_ASSERT(xSupplier.is(), "OPropertyBrowserController::ChangeFormatProperty : invalid call !");
+ Reference< XUnoTunnel > xTunnel(xSupplier,UNO_QUERY);
+ DBG_ASSERT(xTunnel.is(), "OPropertyBrowserController::ChangeFormatProperty : xTunnel is invalid!");
+ SvNumberFormatsSupplierObj* pSupplier = (SvNumberFormatsSupplierObj*)xTunnel->getSomething(SvNumberFormatsSupplierObj::getUnoTunnelId());
+ // SvNumberFormatsSupplierObj* pSupplier = (SvNumberFormatsSupplierObj*)xSupplier->getImplementation(::getCppuType((const SvNumberFormatsSupplierObj*)0));
+
+ DBG_ASSERT(pSupplier != NULL, "OPropertyBrowserController::ChangeFormatProperty : invalid call !");
+
+ sal_Int32 nFormatKey = String(_rCurVal.getStr()).ToInt32();
+ aCoreSet.Put(SfxUInt32Item(SID_ATTR_NUMBERFORMAT_VALUE, nFormatKey));
+
+ SvNumberFormatter* pFormatter = pSupplier->GetNumberFormatter();
+ double dPreviewVal = 1234.56789;
+ SvxNumberInfoItem aFormatter(pFormatter, dPreviewVal, SID_ATTR_NUMBERFORMAT_INFO);
+ aCoreSet.Put(aFormatter);
+
+ // a tab dialog with a single page
+ SfxSingleTabDialog* pDlg = new SfxSingleTabDialog(GetpApp()->GetAppWindow(), aCoreSet, 0);
+ SvxNumberFormatTabPage* pPage = (SvxNumberFormatTabPage*) SvxNumberFormatTabPage::Create(pDlg, aCoreSet);
+ const SfxPoolItem& rInfoItem = pPage->GetItemSet().Get(SID_ATTR_NUMBERFORMAT_INFO);
+ pPage->SetNumberFormatList((const SvxNumberInfoItem&)rInfoItem );
+ pDlg->SetTabPage(pPage);
+
+ if (RET_OK == pDlg->Execute())
+ {
+ const SfxItemSet* pResult = pDlg->GetOutputItemSet();
+ const SfxPoolItem* pItem;
+ if (SFX_ITEM_SET == pResult->GetItemState(SID_ATTR_NUMBERFORMAT_VALUE, sal_False, &pItem))
+ Commit(_rName, ::rtl::OUString::valueOf((sal_Int32)((SfxUInt32Item*)pItem)->GetValue()), pSupplier);
+ }
+ delete pDlg;
+ }
+
+ //------------------------------------------------------------------------
+ void OPropertyBrowserController::SetFields( OLineDescriptor& rProperty )
+ {
+ try
+ {
+ WaitObject aWaitCursor(m_pView);
+
+ rProperty.eControlType = BCT_COMBOBOX;
+ Reference< XPreparedStatement > xStatement;
+
+ // get the form of the control we're inspecting
+ Reference< XChild > xChild(m_xPropValueAccess, UNO_QUERY);
+ Reference< XPropertySet > xFormSet;
+ if (xChild.is())
+ xFormSet = Reference< XPropertySet >(xChild->getParent(), UNO_QUERY);
+
+ if (Reference< XGridColumnFactory >(xFormSet, UNO_QUERY).is())
+ { // we're inspecting a grid column -> the form is one step above
+ xChild = Reference< XChild >(xFormSet, UNO_QUERY);
+ if (xChild.is())
+ xFormSet = Reference< XPropertySet >(xChild->getParent(), UNO_QUERY);
+ else
+ xFormSet.clear();
+ }
+ if (!xFormSet.is())
+ return;
+
+ ::rtl::OUString aObjectName = ::comphelper::getString(xFormSet->getPropertyValue(PROPERTY_COMMAND));
+ // when there is no command we don't need to ask for columns
+ if (aObjectName.getLength())
+ {
+ ::rtl::OUString aDatabaseName = ::comphelper::getString(xFormSet->getPropertyValue(PROPERTY_DATASOURCE));
+ sal_Int32 nObjectType = ::comphelper::getINT32(xFormSet->getPropertyValue(PROPERTY_COMMANDTYPE));
+
+ // Festellen des Feldes
+ Reference< XNameAccess > xFields;
+ Reference< XPropertySet > xField;
+ try
+ {
+ Reference< XConnection > xConnection = ::dbtools::calcConnection(Reference< XRowSet > (xFormSet, UNO_QUERY),m_xORB);
+ if (!xConnection.is())
+ return;
+
+ switch (nObjectType)
+ {
+ case 0:
+ {
+ Reference< XTablesSupplier > xSupplyTables(xConnection, UNO_QUERY);
+ Reference< XColumnsSupplier > xSupplyColumns;
+ xSupplyTables->getTables()->getByName(aObjectName) >>= xSupplyColumns;
+ xFields = xSupplyColumns->getColumns();
+ }
+ break;
+ case 1:
+ {
+ Reference< XQueriesSupplier > xSupplyQueries(xConnection, UNO_QUERY);
+ Reference< XColumnsSupplier > xSupplyColumns;
+ xSupplyQueries->getQueries()->getByName(aObjectName) >>= xSupplyColumns;
+ xFields = xSupplyColumns->getColumns();
+ }
+ break;
+ default:
+ {
+ xStatement = xConnection->prepareStatement(aObjectName);
+ // not interested in any results
+ Reference< XPropertySet > (xStatement,UNO_QUERY)->setPropertyValue( ::rtl::OUString::createFromAscii("MaxRows"),makeAny(sal_Int32(0)));
+ Reference< XColumnsSupplier > xSupplyCols(xStatement->executeQuery(), UNO_QUERY);
+ if (xSupplyCols.is())
+ xFields = xSupplyCols->getColumns();
+ }
+ }
+ }
+ catch (Exception&)
+ {
+ DBG_ERROR("OPropertyBrowserController::SetFields: Exception occured!");
+ }
+
+
+ if (!xFields.is())
+ return;
+
+ Sequence< ::rtl::OUString> aFields(xFields->getElementNames());
+ const ::rtl::OUString* pFields = aFields.getConstArray();
+ for (sal_Int32 i=0; i<aFields.getLength(); i++,++pFields )
+ rProperty.aListValues.push_back(*pFields);
+ }
+ }
+ catch (Exception&)
+ {
+ DBG_ERROR("OPropertyBrowserController::SetFields : caught an exception !")
+ }
+ }
+
+ //------------------------------------------------------------------------
+ void OPropertyBrowserController::SetTables( OLineDescriptor& rProperty )
+ {
+ try
+ {
+ WaitObject aWaitCursor(m_pView);
+
+ rProperty.eControlType = BCT_COMBOBOX;
+
+ // get the RowSet interface of the form of the object we're inspecting
+ Reference< XRowSet > xRowSet(m_xPropValueAccess, UNO_QUERY);
+ if (!xRowSet.is())
+ {
+ DBG_ERROR("OPropertyBrowserController::SetQueries: could not obtain the rowset for the introspectee!");
+ return;
+ }
+
+ Reference< XTablesSupplier > xTables;
+ try
+ {
+ xTables = Reference< XTablesSupplier > (::dbtools::calcConnection(xRowSet,m_xORB),UNO_QUERY);
+ }
+ catch (Exception&)
+ {
+ return;
+ }
+
+ Reference< XNameAccess > xAccess;
+ if (xTables.is())
+ xAccess = xTables->getTables();
+ if (!xAccess.is())
+ return;
+
+ Sequence< ::rtl::OUString> aTableNameSeq = xAccess->getElementNames();
+ sal_uInt32 nCount = aTableNameSeq.getLength();
+ const ::rtl::OUString* pTableNames = aTableNameSeq.getConstArray();
+
+ for (sal_uInt32 i=0; i<nCount; ++i ,++pTableNames)
+ rProperty.aListValues.push_back( *pTableNames);
+ }
+
+ catch (Exception&)
+ {
+ DBG_ERROR("OPropertyBrowserController::SetTables : caught an exception !")
+ }
+ }
+
+ //------------------------------------------------------------------------
+ void OPropertyBrowserController::SetQueries( OLineDescriptor& rProperty )
+ {
+ try
+ {
+ WaitObject aWaitCursor(m_pView);
+
+ rProperty.eControlType = BCT_COMBOBOX;
+
+ // get the RowSet interface of the form of the object we're inspecting
+ Reference< XRowSet > xRowSet(m_xPropValueAccess, UNO_QUERY);
+ if (!xRowSet.is())
+ {
+ DBG_ERROR("OPropertyBrowserController::SetQueries: could not obtain the rowset for the introspectee!");
+ return;
+ }
+
+ Reference< XQueriesSupplier > xSupplyQueries;
+ try
+ {
+ xSupplyQueries = Reference< XQueriesSupplier > (::dbtools::calcConnection(xRowSet,m_xORB),UNO_QUERY);
+ }
+ catch (Exception&)
+ {
+ return;
+ }
+
+ Reference< XNameAccess > xAccess;
+ if (xSupplyQueries.is())
+ xAccess = xSupplyQueries->getQueries();
+
+
+ if (!xAccess.is())
+ return;
+
+ Sequence< ::rtl::OUString> aQueryNameSeq = xAccess->getElementNames();
+ sal_uInt32 nCount = aQueryNameSeq.getLength();
+ const ::rtl::OUString* pQueryNames = aQueryNameSeq.getConstArray();
+ for (sal_uInt32 i=0; i<nCount; i++,++pQueryNames )
+ rProperty.aListValues.push_back( *pQueryNames );
+ }
+ catch (Exception&)
+ {
+ DBG_ERROR("OPropertyBrowserController::SetQueries : caught an exception !")
+ }
+ }
+
+ //------------------------------------------------------------------------
+ void OPropertyBrowserController::SetCursorSource(sal_Bool bInit)
+ {
+ try
+ {
+ if (!m_bHasCursorSource)
+ return;
+
+ WaitObject aWaitCursor(m_pView);
+
+ // force the data page to be shown
+ if (getPropertyBox()->GetCurPage() != m_nDataPageId)
+ getPropertyBox()->SetPage(m_nDataPageId);
+
+ ////////////////////////////////////////////////////////////
+ // Auslesen des CursorSourceTypes
+ String sCommandType = GetPropertyValue(PROPERTY_COMMANDTYPE);
+ String sCommand = GetPropertyValue(PROPERTY_COMMAND);
+
+ ////////////////////////////////////////////////////////////
+ // Setzen der UI-Daten
+ OLineDescriptor aProperty;
+ aProperty.eControlType = BCT_MEDIT;
+
+ String fCommandName = PROPERTY_COMMAND;
+ aProperty.sName = fCommandName;
+ aProperty.sTitle = m_pPropertyInfo->getPropertyTranslation(PROPERTY_ID_COMMAND);
+ aProperty.pControl = NULL;
+ aProperty.bHasBrowseButton = sal_False;
+ aProperty.bIsHyperlink = sal_False;
+ aProperty.bIsLocked = sal_False;
+
+ aProperty.nHelpId = m_pPropertyInfo->getPropertyHelpId(PROPERTY_ID_COMMAND);
+ if (bInit)
+ aProperty.sValue = sCommand;
+ else
+ aProperty.sValue = String();
+
+ ////////////////////////////////////////////////////////////
+ // Enums setzen
+ Sequence< ::rtl::OUString > aCommandTypes = m_pPropertyInfo->getPropertyEnumRepresentations(PROPERTY_ID_COMMANDTYPE);
+ sal_Int32 nPos = GetStringPos(sCommandType, aCommandTypes);
+ if (0 == nPos)
+ SetTables(aProperty);
+ else if (1 == nPos)
+ SetQueries(aProperty);
+
+ getPropertyBox()->ChangeEntry(aProperty, getPropertyBox()->GetPropertyPos(aProperty.sName));
+ Commit(aProperty.sName, aProperty.sValue, NULL);
+ }
+ catch (Exception&)
+ {
+ DBG_ERROR("OPropertyBrowserController::SetCursorSource : caught an exception !")
+ }
+ }
+
+ //------------------------------------------------------------------------
+ void OPropertyBrowserController::SetListSource(sal_Bool bInit)
+ {
+ try
+ {
+ if (!m_bHasListSource)
+ return;
+
+ WaitObject aWaitCursor(m_pView);
+
+ // force the data page to be shown
+ if (getPropertyBox()->GetCurPage() != m_nDataPageId)
+ getPropertyBox()->SetPage(m_nDataPageId);
+
+ ////////////////////////////////////////////////////////////
+ // Auslesen des ListSourceTypes
+ Any aListSourceTypeAny;
+
+ ::rtl::OUString aStrVal;
+ if (m_xPropStateAccess.is())
+ aListSourceTypeAny = m_xPropValueAccess->getPropertyValue(PROPERTY_LISTSOURCETYPE );
+
+ sal_Int32 nListSourceType;
+ ::cppu::enum2int(nListSourceType,aListSourceTypeAny);
+
+ ::rtl::OUString aListSource = GetPropertyValue( PROPERTY_LISTSOURCE );
+
+ ////////////////////////////////////////////////////////////
+ // Setzen der UI-Daten
+ OLineDescriptor aProperty;
+ aProperty.eControlType = BCT_MEDIT;
+ String fPropName = PROPERTY_LISTSOURCE;
+ aProperty.sName = fPropName;
+ aProperty.sTitle = m_pPropertyInfo->getPropertyTranslation(PROPERTY_ID_LISTSOURCE);
+ aProperty.pControl = NULL;
+ aProperty.bHasBrowseButton = sal_False;
+ aProperty.bIsHyperlink = sal_False;
+ aProperty.bIsLocked = sal_False;
+ aProperty.nHelpId=m_pPropertyInfo->getPropertyHelpId(PROPERTY_ID_LISTSOURCE);
+
+
+
+ if (bInit)
+ aProperty.sValue = aListSource;
+ else
+ aProperty.sValue = String();
+
+ ////////////////////////////////////////////////////////////
+ // Enums setzen
+ switch( nListSourceType )
+ {
+ case ListSourceType_VALUELIST:
+ aProperty.eControlType = BCT_LEDIT;
+ break;
+
+ case ListSourceType_TABLEFIELDS:
+ case ListSourceType_TABLE:
+ SetTables( aProperty );
+ break;
+ case ListSourceType_QUERY:
+ SetQueries( aProperty );
+ break;
+ }
+
+ ////////////////////////////////////////////////////////////
+ // Eintrag umsetzen
+ sal_uInt16 nCurPage = getPropertyBox()->GetCurPage();
+ getPropertyBox()->SetPage( m_nDataPageId );
+ getPropertyBox()->ChangeEntry( aProperty, getPropertyBox()->GetPropertyPos(aProperty.sName) );
+ Commit( aProperty.sName, aProperty.sValue, NULL );
+ getPropertyBox()->SetPage( nCurPage );
+ }
+ catch (Exception&)
+ {
+ DBG_ERROR("OPropertyBrowserController::SetListSource : caught an exception !")
+ }
+ }
+
+ //------------------------------------------------------------------------
+ static sal_uInt16 pPropFontRgs[] =
+ {
+ SID_ATTR_CHAR_FONT,SID_ATTR_CHAR_WEIGHT,
+ SID_ATTR_CHAR_STRIKEOUT, SID_ATTR_CHAR_FONTHEIGHT,
+ SID_ATTR_CHAR_COLOR,SID_ATTR_CHAR_COLOR,
+ 0
+ };
+
+ //------------------------------------------------------------------------
+ void OPropertyBrowserController::ChangeFontProperty( const ::rtl::OUString& rName )
+ {
+ SfxItemSet aSet( SFX_APP()->GetPool(), pPropFontRgs);
+
+ try
+ {
+ ::rtl::OUString aFontName = ::comphelper::getString(m_xPropValueAccess->getPropertyValue( PROPERTY_FONT_NAME ));
+ ::rtl::OUString aFontStyleName = ::comphelper::getString(m_xPropValueAccess->getPropertyValue( PROPERTY_FONT_STYLENAME));
+ sal_Int16 nFontFamily = ::comphelper::getINT16(m_xPropValueAccess->getPropertyValue( PROPERTY_FONT_FAMILY ));
+ sal_Int16 nFontCharset = ::comphelper::getINT16(m_xPropValueAccess->getPropertyValue( PROPERTY_FONT_CHARSET ));
+ float nFontHeight = ::comphelper::getFloat(m_xPropValueAccess->getPropertyValue( PROPERTY_FONT_HEIGHT ));
+ float nFontWeight = ::comphelper::getFloat(m_xPropValueAccess->getPropertyValue( PROPERTY_FONT_WEIGHT ));
+ sal_Int16 nFontSlant = ::comphelper::getINT16(m_xPropValueAccess->getPropertyValue( PROPERTY_FONT_SLANT ));
+ sal_Int16 nFontUnderline = ::comphelper::getINT16(m_xPropValueAccess->getPropertyValue( PROPERTY_FONT_UNDERLINE));
+ sal_Int16 nFontStrikeout = ::comphelper::getINT16(m_xPropValueAccess->getPropertyValue( PROPERTY_FONT_STRIKEOUT));
+ Any aColor32 = m_xPropValueAccess->getPropertyValue( PROPERTY_TEXTCOLOR);
+
+ SvxFontItem aFontItem((FontFamily)nFontFamily, aFontName, aFontStyleName, PITCH_DONTKNOW, nFontCharset, SID_ATTR_CHAR_FONT);
+
+ nFontHeight = (float)OutputDevice::LogicToLogic(Size(0, (sal_Int32)nFontHeight), MAP_POINT, MAP_TWIP).Height();
+ SvxFontHeightItem aSvxFontHeightItem((sal_uInt32)nFontHeight,100,SID_ATTR_CHAR_FONTHEIGHT);
+
+ FontWeight eWeight=VCLUnoHelper::ConvertFontWeight(nFontWeight);
+ FontItalic eItalic=(FontItalic)nFontSlant;
+ FontUnderline eUnderline=(FontUnderline)nFontUnderline;
+ FontStrikeout eStrikeout=(FontStrikeout)nFontStrikeout;
+
+ SvxPostureItem aPostureItem(eItalic,SID_ATTR_CHAR_POSTURE);
+ SvxWeightItem aWeightItem(eWeight,SID_ATTR_CHAR_WEIGHT);
+
+ SvxUnderlineItem aUnderlineItem(eUnderline,SID_ATTR_CHAR_UNDERLINE);
+ SvxCrossedOutItem aCrossedOutItem(eStrikeout,SID_ATTR_CHAR_STRIKEOUT );
+
+ sal_Int32 nColor32 = 0;
+ if (aColor32.hasValue())
+ nColor32=::comphelper::getINT32(aColor32);
+
+ SvxColorItem aSvxColorItem(nColor32,SID_ATTR_CHAR_COLOR);
+
+ aSet.Put(aFontItem, SID_ATTR_CHAR_FONT);
+ aSet.Put(aSvxFontHeightItem,SID_ATTR_CHAR_FONTHEIGHT);
+ aSet.Put(aWeightItem, SID_ATTR_CHAR_WEIGHT );
+ aSet.Put(aPostureItem, SID_ATTR_CHAR_POSTURE);
+ aSet.Put(aUnderlineItem,SID_ATTR_CHAR_UNDERLINE );
+ aSet.Put(aCrossedOutItem,SID_ATTR_CHAR_STRIKEOUT );
+ aSet.Put(aSvxColorItem, SID_ATTR_CHAR_COLOR);
+
+ if (m_xPropStateAccess.is())
+ {
+ if (m_xPropStateAccess->getPropertyState(PROPERTY_FONT_NAME)== PropertyState_AMBIGUOUS_VALUE)
+ aSet.InvalidateItem(SID_ATTR_CHAR_FONT);
+ if (m_xPropStateAccess->getPropertyState(PROPERTY_FONT_HEIGHT)==PropertyState_AMBIGUOUS_VALUE)
+ aSet.InvalidateItem(SID_ATTR_CHAR_FONTHEIGHT);
+ if ((m_xPropStateAccess->getPropertyState(PROPERTY_FONT_WEIGHT)==PropertyState_AMBIGUOUS_VALUE) || (::com::sun::star::awt::FontWeight::DONTKNOW == nFontWeight))
+ aSet.InvalidateItem(SID_ATTR_CHAR_WEIGHT );
+ if ((m_xPropStateAccess->getPropertyState(PROPERTY_FONT_SLANT)==PropertyState_AMBIGUOUS_VALUE) || (::com::sun::star::awt::FontSlant_DONTKNOW == nFontSlant))
+ aSet.InvalidateItem(SID_ATTR_CHAR_POSTURE);
+ if ((m_xPropStateAccess->getPropertyState(PROPERTY_FONT_UNDERLINE)==PropertyState_AMBIGUOUS_VALUE) || (::com::sun::star::awt::FontUnderline::DONTKNOW == nFontUnderline))
+ aSet.InvalidateItem(SID_ATTR_CHAR_UNDERLINE );
+ if ((m_xPropStateAccess->getPropertyState(PROPERTY_FONT_STRIKEOUT)==PropertyState_AMBIGUOUS_VALUE) || (::com::sun::star::awt::FontStrikeout::DONTKNOW == nFontStrikeout))
+ aSet.InvalidateItem(SID_ATTR_CHAR_STRIKEOUT );
+ if (m_xPropStateAccess->getPropertyState(PROPERTY_TEXTCOLOR)==PropertyState_AMBIGUOUS_VALUE)
+ aSet.InvalidateItem(SID_ATTR_CHAR_COLOR );
+ }
+ }
+
+ catch (Exception&)
+ {
+ DBG_ERROR("OPropertyBrowserController::ChangeFontProperty : caught an exception (1) !")
+ return;
+ }
+
+
+ FontList aFontList(Application::GetDefaultDevice());
+ SvxFontListItem aFontListItem( &aFontList, SID_ATTR_CHAR_FONTLIST );
+
+ SfxSingleTabDialog* pDlg = new SfxSingleTabDialog( GetpApp()->GetAppWindow(),
+ aSet, RID_SVXDLG_FMFONT, sal_False );
+
+ SfxTabPage* pPage = SvxCharStdPage::Create( pDlg, aSet);
+ ((SvxCharStdPage*)pPage)->SetFontList( aFontListItem);
+ pDlg->SetTabPage( pPage );
+
+ try
+ {
+ if ( pDlg->Execute() == RET_OK )
+ {
+ const SfxItemSet* pOut = pDlg->GetOutputItemSet();
+
+ if (pOut != NULL)
+ {
+ SfxItemState eState = pOut->GetItemState( SID_ATTR_CHAR_FONT );
+
+ if ( eState == SFX_ITEM_SET)
+ {
+ const SvxFontItem& rFontItem=
+ (const SvxFontItem&) pOut->Get(SID_ATTR_CHAR_FONT );
+
+ getPropertyBox()->SetPropertyValue( String::CreateFromAscii("Font"), rFontItem.GetFamilyName());
+
+ m_xPropValueAccess->setPropertyValue( PROPERTY_FONT_NAME , makeAny(::rtl::OUString(rFontItem.GetFamilyName())));
+ m_xPropValueAccess->setPropertyValue( PROPERTY_FONT_STYLENAME, makeAny(::rtl::OUString(rFontItem.GetStyleName())));
+ m_xPropValueAccess->setPropertyValue( PROPERTY_FONT_FAMILY , makeAny((sal_Int16)rFontItem.GetFamily()));
+ m_xPropValueAccess->setPropertyValue( PROPERTY_FONT_CHARSET , makeAny((sal_Int16)rFontItem.GetCharSet()));
+ }
+
+ eState = pOut->GetItemState( SID_ATTR_CHAR_FONTHEIGHT );
+
+ if ( eState == SFX_ITEM_SET)
+ {
+ const SvxFontHeightItem& rSvxFontHeightItem=
+ (const SvxFontHeightItem&) pOut->Get(SID_ATTR_CHAR_FONTHEIGHT);
+
+ float nHeight = (float)OutputDevice::LogicToLogic(Size(0, rSvxFontHeightItem.GetHeight()), MAP_TWIP, MAP_POINT).Height();
+ m_xPropValueAccess->setPropertyValue( PROPERTY_FONT_HEIGHT,makeAny(nHeight));
+
+ }
+
+ eState = pOut->GetItemState( SID_ATTR_CHAR_WEIGHT );
+
+ if ( eState == SFX_ITEM_SET)
+ {
+ const SvxWeightItem& rWeightItem=
+ (const SvxWeightItem&) pOut->Get(SID_ATTR_CHAR_WEIGHT );
+ float nWeight = VCLUnoHelper::ConvertFontWeight( rWeightItem.GetWeight());
+
+ m_xPropValueAccess->setPropertyValue( PROPERTY_FONT_WEIGHT,makeAny(nWeight));
+ }
+
+ eState = pOut->GetItemState( SID_ATTR_CHAR_POSTURE );
+
+ if ( eState == SFX_ITEM_SET)
+ {
+ const SvxPostureItem& rPostureItem=
+ (const SvxPostureItem&) pOut->Get(SID_ATTR_CHAR_POSTURE);
+ sal_Int16 eSlant = rPostureItem.GetPosture();
+ m_xPropValueAccess->setPropertyValue( PROPERTY_FONT_SLANT, makeAny(eSlant));
+ }
+
+ eState = pOut->GetItemState( SID_ATTR_CHAR_UNDERLINE );
+
+ if ( eState == SFX_ITEM_SET)
+ {
+ const SvxUnderlineItem& rUnderlineItem=
+ (const SvxUnderlineItem&) pOut->Get(SID_ATTR_CHAR_UNDERLINE );
+ sal_Int16 nUnderline = rUnderlineItem.GetUnderline();
+ m_xPropValueAccess->setPropertyValue( PROPERTY_FONT_UNDERLINE,makeAny(nUnderline));
+ }
+
+ eState = pOut->GetItemState( SID_ATTR_CHAR_STRIKEOUT );
+
+ if ( eState == SFX_ITEM_SET)
+ {
+ const SvxCrossedOutItem& rCrossedOutItem=
+ (const SvxCrossedOutItem&) pOut->Get(SID_ATTR_CHAR_STRIKEOUT );
+ sal_Int16 nStrikeout = rCrossedOutItem.GetStrikeout();
+ m_xPropValueAccess->setPropertyValue( PROPERTY_FONT_STRIKEOUT,makeAny(nStrikeout));
+ }
+
+
+ eState = pOut->GetItemState( SID_ATTR_CHAR_COLOR );
+
+ if ( eState == SFX_ITEM_SET)
+ {
+ const SvxColorItem& rColorItem=
+ (const SvxColorItem&) pOut->Get(SID_ATTR_CHAR_COLOR );
+ sal_Int32 nColor= rColorItem.GetValue().GetColor();
+ m_xPropValueAccess->setPropertyValue( PROPERTY_TEXTCOLOR,makeAny(nColor));
+ }
+
+ }
+ }
+ }
+ catch (Exception&)
+ {
+ DBG_ERROR("OPropertyBrowserController::ChangeFontProperty : caught an exception (2) !")
+ return;
+ }
+
+ delete pDlg;
+ }
+
+ //------------------------------------------------------------------------
+ void OPropertyBrowserController::ChangeEventProperty( const ::rtl::OUString& _Name )
+ {
+ SfxMacroAssignDlg* pMacroDlg = NULL;
+ String rName(_Name.getStr());
+
+ if (rName.GetTokenCount()==0)
+ return;
+
+ ::rtl::OUString sListenerClassName = rName.GetToken( 0);
+ ::rtl::OUString sMethodName = rName.GetToken(1);
+
+ ::std::vector< ::rtl::OUString> aNameArray;
+
+ try
+ {
+
+ Reference< XIndexAccess > xIndexAcc(m_xObjectParent, UNO_QUERY);
+
+ sal_Int32 nObjIdx=-1;
+ // calc the index of the object with it's parent
+ if (xIndexAcc.is())
+ {
+ sal_Int32 nCount = xIndexAcc->getCount();
+
+ Reference< XPropertySet > xTestSet;
+ for (sal_Int32 i=0;i<nCount; ++i)
+ {
+ ::cppu::extractInterface(xTestSet, xIndexAcc->getByIndex(i));
+ if (xTestSet.get() == m_xPropValueAccess.get())
+ {
+ nObjIdx=i;
+ break;
+ }
+ }
+ }
+
+ // the the script events for this index
+ sal_uInt32 nScrEvts=0;
+
+ Sequence< ScriptEventDescriptor > aSeqScrEvts;
+ if (nObjIdx>=0 && m_xEventManager.is())
+ {
+ aSeqScrEvts = m_xEventManager->getScriptEvents(nObjIdx);
+ nScrEvts = aSeqScrEvts.getLength();
+ }
+
+ sal_uInt32 nLength = m_aObjectListenerTypes.getLength();
+ const Type * pListeners = m_aObjectListenerTypes.getConstArray();
+ const ScriptEventDescriptor* pEvDes = aSeqScrEvts.getConstArray();
+
+ SvxMacroTableDtor aTable;
+
+ sal_uInt16 nIndex=0;
+ sal_uInt32 i;
+
+ String aListener;
+ ::rtl::OUString aListenerClassName;
+ Sequence< ::rtl::OUString> aMethSeq;
+
+ for (i = 0 ; i < nLength ; i++ ,++pListeners)
+ {
+ // Namen besorgen
+ aListener = (*pListeners).getTypeName().getStr();
+ sal_Int32 nTokenCount = aListener.GetTokenCount('.');
+
+ if (nTokenCount>0)
+ aListenerClassName= aListener.GetToken(nTokenCount-1, '.' );
+ else
+ aListenerClassName= aListener;
+
+ if (aListenerClassName.len()>0)
+ {
+ // Methoden der Listener ausgeben
+ aMethSeq = getEventMethods( *pListeners );
+ const ::rtl::OUString * pMethods = aMethSeq.getConstArray();
+ sal_uInt32 nMethCount = aMethSeq.getLength();
+
+ for (sal_uInt32 j = 0 ; j < nMethCount ; j++,++pMethods )
+ {
+
+ EventDisplayDescription* pEventDisplayDescription = GetEvtTranslation(*pMethods);
+
+ // be sure that the event method isn't mentioned twice
+ if (pEventDisplayDescription != NULL)
+ {
+ if (sListenerClassName == aListenerClassName && sMethodName == (*pMethods))
+ {
+ nIndex=aNameArray.size();
+ }
+
+
+ for (sal_uInt32 nI=0; nI<nScrEvts;nI++)
+ {
+ const ScriptEventDescriptor& rEvDe = pEvDes[nI];
+
+ if (rEvDe.ListenerType == aListenerClassName && rEvDe.EventMethod == (*pMethods))
+ {
+ SvxMacro* pMacro=NULL;
+
+ const ScriptEventDescriptor& rTheEvDe = pEvDes[nI];
+ if (rTheEvDe.ScriptCode.len()>0 && rTheEvDe.ScriptType.len()>0)
+ {
+ pMacro = new SvxMacro(rTheEvDe.ScriptCode,rTheEvDe.ScriptType);
+ aTable.Insert(aNameArray.size(),pMacro);
+ }
+ else
+ {
+ aTable.Insert(aNameArray.size(),NULL);
+ }
+ }
+ }
+ aNameArray.push_back(pEventDisplayDescription->sDisplayName);
+ }
+ }
+ }
+ }
+
+ SvxMacroItem aMacroItem;
+
+ aMacroItem.SetMacroTable(aTable);
+
+ SfxItemSet aSet( SFX_APP()->GetPool(), SID_ATTR_MACROITEM, SID_ATTR_MACROITEM );
+ aSet.Put(aMacroItem, SID_ATTR_MACROITEM);
+ pMacroDlg = new SfxMacroAssignDlg(
+ GetpApp()->GetAppWindow(), aSet );
+ SfxMacroTabPage* pMacroTabPage = (SfxMacroTabPage*)pMacroDlg->GetTabPage();
+
+ for (sal_uInt32 j = 0 ; j < aNameArray.size(); j++ )
+ pMacroTabPage->AddEvent( aNameArray[j], (sal_uInt16)j);
+
+ if (nIndex<aNameArray.size())
+ pMacroTabPage->SelectEvent( aNameArray[nIndex], nIndex);
+
+ if ( pMacroDlg->Execute() == RET_OK )
+ {
+ // formerly (before we outsources this code) here was a SetModified on the SdrModel of
+ // the shell we're working with ...
+ // TODO: need a replacement for this
+
+ const SvxMacroTableDtor& aTab=pMacroTabPage->GetMacroTbl();
+
+ if (nObjIdx>=0 && m_xEventManager.is())
+ m_xEventManager->revokeScriptEvents(nObjIdx);
+
+
+ sal_uInt16 nEventCount = (sal_uInt16)aTab.Count();
+ sal_uInt16 nEventIndex = 0;
+
+ Sequence< ScriptEventDescriptor > aSeqScriptEvts(nEventCount);
+
+ ScriptEventDescriptor *pSeqScriptEvts=aSeqScriptEvts.getArray();
+ nIndex=0;
+
+ String aListenerClassName,aName,aListener;
+ // Sequence< Reference< XIdlMethod > > aMethSeq;
+
+ pListeners = m_aObjectListenerTypes.getConstArray();
+
+ ::rtl::OUString aMacStr;
+ for (i = 0 ; i < nLength ; i++,++pListeners )
+ {
+ // Methode ansprechen
+ // const Reference< XIdlClass > & (*pListeners) = pListeners[i];
+
+ // Namen besorgen
+ aListener = (*pListeners).getTypeName().getStr();
+ sal_Int32 nTokenCount=aListener.GetTokenCount('.');
+
+ if (nTokenCount>0)
+ aListenerClassName = aListener.GetToken(nTokenCount-1, '.' );
+ else
+ aListenerClassName = aListener;
+
+ if (aListenerClassName.Len() != 0)
+ {
+ // Methoden der Listener ausgeben
+ aMethSeq = getEventMethods( (*pListeners) );
+
+ const ::rtl::OUString* pMethods = aMethSeq.getConstArray();
+ sal_uInt32 nMethCount = aMethSeq.getLength();
+
+ for (sal_uInt32 j = 0 ; j < nMethCount ; j++,++pMethods )
+ {
+ // Reference< XIdlMethod > xMethod = pMethods[ j ];
+
+ // aMethName=xMethod->getName();
+
+ EventDisplayDescription *pEventDisplayDescription=GetEvtTranslation(*pMethods);
+
+ if (pEventDisplayDescription != NULL)
+ {
+ (aName = aListenerClassName) += ';';
+
+ aName += (*pMethods).getStr();
+
+ SvxMacro *pMacro=aTab.Get(nIndex++);
+ if (pMacro!=NULL)
+ {
+ aMacStr = String(pMacro->GetMacName());
+ if (nEventIndex<nEventCount)
+ {
+ pSeqScriptEvts[nEventIndex].ListenerType = aListenerClassName;
+ pSeqScriptEvts[nEventIndex].EventMethod = *pMethods;
+ pSeqScriptEvts[nEventIndex].ScriptType = pMacro->GetLanguage();
+ pSeqScriptEvts[nEventIndex].ScriptCode = aMacStr;
+ }
+ nEventIndex++;
+ }
+ else
+ aMacStr = ::rtl::OUString();
+ getPropertyBox()->SetPropertyValue( aName, aMacStr);
+
+ }
+ }
+ }
+ }
+
+ if (nObjIdx>=0 && m_xEventManager.is())
+ m_xEventManager->registerScriptEvents(nObjIdx,aSeqScriptEvts);
+ }
+ }
+ catch (Exception&)
+ {
+ DBG_ERROR("OPropertyBrowserController::ChangeEventProperty : caught an exception !")
+ }
+
+ delete pMacroDlg;
+ }
+
+ //------------------------------------------------------------------------
+ void OPropertyBrowserController::InsertEvents()
+ {
+ //////////////////////////////////////////////////////////////////////
+ // Seite fuer Events
+ m_nEventPageId = getPropertyBox()->AppendPage(String(ModuleRes(RID_STR_EVENTS)), HID_FM_PROPDLG_TAB_EVT);
+
+ sal_Bool bRemoveFlag = sal_True;
+
+ try
+ {
+ Reference< XIndexAccess > xIndexAcc(m_xObjectParent, UNO_QUERY);
+ sal_Int32 nObjIdx=-1;
+
+ // get the index of the inspected object within it's parent container
+ if (xIndexAcc.is() && m_xPropValueAccess.is())
+ {
+ sal_Int32 nCount = xIndexAcc->getCount();
+ Reference< XPropertySet > xTestSet;
+ for (sal_Int32 i=0; i<nCount; ++i)
+ {
+ ::cppu::extractInterface(xTestSet, xIndexAcc->getByIndex(i));
+ if (xTestSet.get() == m_xPropValueAccess.get())
+ {
+ nObjIdx=i;
+ break;
+ }
+ }
+ }
+
+ // get the current script events for this index
+ sal_uInt32 nScrEvts=0;
+ Sequence< ScriptEventDescriptor > aSeqScrEvts;
+ if (nObjIdx>=0 && m_xEventManager.is())
+ {
+ aSeqScrEvts = m_xEventManager->getScriptEvents(nObjIdx);
+ nScrEvts = aSeqScrEvts.getLength();
+ }
+ else
+ { // could not obtain the position in the event attacher manager
+ // (or don't have this manager)
+ // -> no event page
+ if (m_nEventPageId)
+ getPropertyBox()->RemovePage(m_nEventPageId);
+ m_nEventPageId=0;
+ return;
+ }
+
+ sal_uInt32 nLength = m_aObjectListenerTypes.getLength();
+ const Type * pListeners = m_aObjectListenerTypes.getConstArray();
+
+ OLineDescriptor aProperty;
+ aProperty.pDataPtr = LINETYPE_EVENT;
+ aProperty.bIsLocked = sal_True;
+
+ DECLARE_STL_SET( OLineDescriptor, OLineDescriptorLess, LineDescriptorSet );
+ LineDescriptorSet aEventLines;
+
+ const ScriptEventDescriptor* pEvDes = aSeqScrEvts.getConstArray();
+ String aListener;
+ String aListenerClassName;
+ String aMethName;
+ for (sal_uInt32 i = 0 ; i < nLength ; ++i, ++pListeners )
+ {
+ // Methode ansprechen
+ // const Reference< XIdlClass > & rxClass = pListeners[i];
+
+ // Namen besorgen
+ aListener = pListeners->getTypeName();
+ sal_uInt32 nTokenCount = aListener.GetTokenCount('.');
+
+
+ if (nTokenCount>0)
+ aListenerClassName= aListener.GetToken((sal_uInt16)nTokenCount-1, '.');
+ else
+ aListenerClassName= aListener;
+
+ if (aListenerClassName.Len() != 0)
+ {
+ // Methoden der Listener ausgeben
+ Sequence< ::rtl::OUString > aMethSeq(getEventMethods( *pListeners ));
+ const ::rtl::OUString * pMethods = aMethSeq.getConstArray();
+ sal_uInt32 nMethCount = aMethSeq.getLength();
+
+ for (sal_uInt32 j = 0 ; j < nMethCount ; j++,++pMethods )
+ {
+ // Reference< XIdlMethod > xMethod = pMethods[ j ];
+
+ // aMethName=xMethod->getName();
+ aProperty.eControlType = BCT_EDIT;
+ aProperty.sName = aListenerClassName;
+ aProperty.sName += String(';');
+ aProperty.sName += (const sal_Unicode*)*pMethods;
+ aProperty.sTitle = *pMethods;
+ aProperty.nHelpId=0;
+ aProperty.sValue = String();
+ aProperty.bHasBrowseButton = sal_True;
+
+ for (sal_uInt32 nI=0; nI<nScrEvts;nI++)
+ {
+ const ScriptEventDescriptor& rEvDe = pEvDes[nI];
+ if (aListenerClassName.Equals((const sal_Unicode*)rEvDe.ListenerType) && pMethods->equals(rEvDe.EventMethod))
+ aProperty.sValue = rEvDe.ScriptCode;
+ }
+
+ EventDisplayDescription* pEventDescription = GetEvtTranslation(*pMethods);
+ if (pEventDescription)
+ {
+ aProperty.sTitle = pEventDescription->sDisplayName;
+ aProperty.nHelpId = pEventDescription->nHelpId;
+ aProperty.nUniqueButtonId = pEventDescription->nIndex;
+ aEventLines.insert(aProperty);
+ }
+ }
+ }
+ }
+
+ for ( ConstLineDescriptorSetIterator iter = aEventLines.begin();
+ iter != aEventLines.end();
+ ++iter
+ )
+ {
+ // Now set the right id
+ OLineDescriptor aData(*iter);
+ aData.nUniqueButtonId = UID_EVT_MACRODLG;
+ getPropertyBox()->InsertEntry( aData );
+ }
+
+ bRemoveFlag = aEventLines.empty();
+ }
+ catch (Exception&)
+ {
+ DBG_ERROR("OPropertyBrowserController::InsertEvents : caught an exception !")
+ bRemoveFlag=sal_True;
+ }
+
+ if (bRemoveFlag)
+ {
+ getPropertyBox()->RemovePage(m_nEventPageId);
+ m_nEventPageId=0;
+ }
+ }
+
+ //------------------------------------------------------------------------
+ void OPropertyBrowserController::UpdateUI()
+ {
+ // Introspection auswerten
+ try
+ {
+ getPropertyBox()->DisableUpdate();
+
+ InsertEvents();
+ sal_uInt32 nPropCount = m_aObjectProperties.getLength();
+ const Property* pProps = m_aObjectProperties.getConstArray();
+ OLineDescriptor* pProperty = NULL;
+ sal_Bool bRemoveDatPage=sal_True;
+
+ TypeClass eType;
+ Any aVal,aSupplier,aKey,aDigits,aSeparator,aDefault;
+ ::rtl::OUString aStrVal;
+ PropertyState eState;
+
+ for (sal_uInt32 i=0; i<nPropCount; ++i, ++pProps)
+ {
+ sal_Int32 nPropId = m_pPropertyInfo->getPropertyId(pProps->Name);
+ String sDisplayName = m_pPropertyInfo->getPropertyTranslation(nPropId);
+ if (!sDisplayName.Len())
+ continue;
+
+ pProperty = new OLineDescriptor();
+
+
+ //////////////////////////////////////////////////////////////////////
+ // TypeClass des Property ermitteln
+ eType = pProps->Type.getTypeClass();
+
+ //////////////////////////////////////////////////////////////////////
+ // Wert holen und in ::rtl::OUString wandeln
+ eState=PropertyState_DIRECT_VALUE;
+ if (m_xPropStateAccess.is())
+ eState=m_xPropStateAccess->getPropertyState(pProps->Name);
+
+ aVal = m_xPropValueAccess->getPropertyValue( pProps->Name );
+ aStrVal = AnyToString(aVal, *pProps, nPropId);
+
+ //////////////////////////////////////////////////////////////////////
+ // Default Properties
+ pProperty->eControlType = BCT_EDIT;
+ pProperty->sName = pProps->Name;
+ pProperty->sTitle = pProps->Name;
+ pProperty->sValue = aStrVal;
+ pProperty->pControl = NULL;
+ pProperty->bIsLocked = sal_False;
+ pProperty->bHasBrowseButton = sal_False;
+ pProperty->bIsHyperlink = sal_False;
+
+ if ((pProps->Attributes & PropertyAttribute::MAYBEVOID) && nPropId != PROPERTY_ID_BORDER) //&& eState!=DIRECT_VALUE
+ {
+ pProperty->bHasDefaultValue =sal_True;
+ if (!aVal.hasValue())
+ pProperty->sValue = m_sStandard;
+ }
+ else
+ pProperty->bHasDefaultValue =sal_False;
+
+ //////////////////////////////////////////////////////////////////////
+ // Font
+ sal_Bool bFilter = sal_True;
+ if (nPropId == PROPERTY_ID_FONT_NAME)
+ {
+ bFilter = sal_False;
+
+ pProperty->sName = String::CreateFromAscii("Font");
+ pProperty->sTitle = pProperty->sName;
+ pProperty->bIsLocked = sal_True;
+ pProperty->bHasBrowseButton = sal_True;
+ pProperty->nUniqueButtonId = UID_PROP_DLG_FONT_TYPE;
+ ::rtl::OUString sValue;
+ aVal >>= sValue;
+ pProperty->sValue = sValue;
+ }
+ else if (nPropId == PROPERTY_ID_TARGET_URL)
+ {
+ pProperty->bHasBrowseButton = sal_True;
+ pProperty->nUniqueButtonId = UID_PROP_DLG_ATTR_TARGET_URL;
+ }
+ else if (nPropId == PROPERTY_ID_IMAGE_URL)
+ {
+ pProperty->bHasBrowseButton = sal_True;
+ pProperty->nUniqueButtonId = UID_PROP_DLG_IMAGE_URL;
+ }
+
+ else if (nPropId== PROPERTY_ID_ECHO_CHAR)
+ {
+ pProperty->eControlType = BCT_CHAREDIT; //@ new CharEdit
+ }
+ //////////////////////////////////////////////////////////////////////
+ // Color
+ else if (nPropId== PROPERTY_ID_BACKGROUNDCOLOR )
+ {
+ bFilter = sal_False;
+ pProperty->eControlType = BCT_COLORBOX; //@ new ColorListbox
+ pProperty->bIsLocked = sal_True;
+ pProperty->bHasBrowseButton = sal_True;
+ pProperty->nUniqueButtonId = UID_PROP_DLG_BACKGROUNDCOLOR;
+
+ }
+
+ else if (nPropId == PROPERTY_ID_LABEL || nPropId == PROPERTY_ID_DEFAULT_TEXT)
+ {
+ pProperty->eControlType = BCT_MEDIT; //@ new MultilineEdit
+ }
+ else if (PROPERTY_ID_CONTROLLABEL == nPropId)
+ {
+ bFilter = sal_False;
+ pProperty->bHasBrowseButton = sal_True;
+ pProperty->bIsLocked = sal_True;
+ pProperty->sValue = AnyToString(aVal, *pProps, PROPERTY_ID_CONTROLLABEL);
+ pProperty->nUniqueButtonId = UID_PROP_DLG_CONTROLLABEL;
+ }
+ else if ((PROPERTY_ID_FORMATKEY == nPropId) || (PROPERTY_ID_EFFECTIVE_MIN == nPropId)
+ || (PROPERTY_ID_EFFECTIVE_MAX == nPropId) || (PROPERTY_ID_EFFECTIVE_DEFAULT == nPropId))
+ {
+ // only if the set has a formatssupplier, too
+ if (::comphelper::hasProperty(PROPERTY_FORMATSSUPPLIER, m_xPropValueAccess))
+ {
+ // and the supplier is really available
+ Reference< XNumberFormatsSupplier > xSupplier;
+ m_xPropValueAccess->getPropertyValue(PROPERTY_FORMATSSUPPLIER) >>= xSupplier;
+ if (xSupplier.is())
+ {
+ Reference< XUnoTunnel > xTunnel(xSupplier,UNO_QUERY);
+ DBG_ASSERT(xTunnel.is(), "OPropertyBrowserController::ChangeFormatProperty : xTunnel is invalid!");
+ SvNumberFormatsSupplierObj* pSupplier = (SvNumberFormatsSupplierObj*)xTunnel->getSomething(SvNumberFormatsSupplierObj::getUnoTunnelId());
+
+ if (pSupplier != NULL)
+ {
+ bFilter = sal_False; // don't do further checks
+ sal_Bool bIsFormatKey = (PROPERTY_ID_FORMATKEY == nPropId);
+
+ pProperty->eControlType = BCT_USERDEFINED;
+
+ pProperty->bIsLocked = bIsFormatKey;
+ pProperty->bHasBrowseButton = bIsFormatKey;
+
+ if (bIsFormatKey)
+ {
+ pProperty->pControl = new OFormatDescriptionControl(getPropertyBox(), WB_READONLY | WB_TABSTOP | WB_BORDER);
+ // HACK : the Control need's a non-null parent, but we don't have one ... so use the property box
+ ((OFormatDescriptionControl*)pProperty->pControl)->SetFormatSupplier(pSupplier);
+
+ pProperty->nUniqueButtonId = UID_PROP_DLG_NUMBER_FORMAT;
+ }
+ else
+ {
+ pProperty->pControl = new OFormattedNumericControl(getPropertyBox(), WB_TABSTOP | WB_BORDER);
+ // HACK : same as above
+
+ FormatDescription aDesc;
+ aDesc.pSupplier = pSupplier;
+ aKey = m_xPropValueAccess->getPropertyValue(PROPERTY_FORMATKEY);
+ aDesc.nKey = aKey.hasValue() ? ::comphelper::getINT32(aKey) : 0;
+ ((OFormattedNumericControl*)pProperty->pControl)->SetFormatDescription(aDesc);
+ }
+
+ // the initial value
+ if (aVal.hasValue())
+ {
+ if (bIsFormatKey)
+ {
+ pProperty->sValue = String::CreateFromInt32(::comphelper::getINT32(aVal));
+ }
+ else
+ {
+ if (aVal.getValueTypeClass() == TypeClass_DOUBLE)
+ pProperty->sValue = convertSimpleToString(aVal);
+ else
+ DBG_WARNING("OPropertyBrowserController::UpdateUI : non-double values not supported for Effective*-properties !");
+ // our UI supports only setting double values for the min/max/default, but by definition
+ // the default may be a string if the field is not in numeric mode ....
+ }
+ }
+ }
+ }
+ }
+ }
+ //////////////////////////////////////////////////////////////////////
+ // ::rtl::OUString Sequence
+ else if (eType == TypeClass_SEQUENCE )
+ {
+ pProperty->eControlType = BCT_LEDIT;
+ bFilter = sal_False;
+ }
+
+ else if (TypeClass_BYTE <=eType && eType<=TypeClass_DOUBLE)
+ {
+ if (nPropId==PROPERTY_ID_DATEMIN || nPropId==PROPERTY_ID_DATEMAX || nPropId==PROPERTY_ID_DEFAULT_DATE)
+ pProperty->eControlType = BCT_DATEFIELD;
+ else if (nPropId==PROPERTY_ID_TIMEMIN || nPropId==PROPERTY_ID_TIMEMAX|| nPropId==PROPERTY_ID_DEFAULT_TIME)
+ pProperty->eControlType = BCT_TIMEFIELD;
+ else
+ {
+ if (nPropId== PROPERTY_ID_VALUEMIN || nPropId== PROPERTY_ID_VALUEMAX || nPropId==PROPERTY_ID_DEFAULT_VALUE)
+ {
+ pProperty->eControlType = BCT_USERDEFINED;
+ pProperty->pControl = new OFormattedNumericControl(getPropertyBox(), WB_TABSTOP | WB_BORDER | WB_SPIN);
+ // HACK : same as above
+
+ // we don't set a formatter so the control uses a default (which uses the application
+ // language and a default numeric format)
+ // but we set the decimal digits
+ aDigits = m_xPropValueAccess->getPropertyValue(PROPERTY_DECIMAL_ACCURACY);
+ ((OFormattedNumericControl*)pProperty->pControl)->SetDecimalDigits(::comphelper::getINT16(aDigits));
+
+ // and the thousands separator
+ aSeparator = m_xPropValueAccess->getPropertyValue(PROPERTY_SHOWTHOUSANDSEP);
+ ((OFormattedNumericControl*)pProperty->pControl)->SetThousandsSep(::comphelper::getBOOL(aSeparator));
+
+ // and the default value for the property
+ try
+ {
+ if (m_xPropStateAccess.is() && ((PROPERTY_ID_VALUEMIN == nPropId) || (PROPERTY_ID_VALUEMAX == nPropId)))
+ {
+ aDefault = m_xPropStateAccess->getPropertyDefault(pProps->Name);
+ if (aDefault.getValueTypeClass() == TypeClass_DOUBLE)
+
+ ((OFormattedNumericControl*)pProperty->pControl)->SetDefaultValue(::comphelper::getDouble(aDefault));
+ }
+ }
+ catch (Exception&)
+ {
+ // just ignore it
+ }
+
+ // and allow empty values only for the default value
+ ((OFormattedNumericControl*)pProperty->pControl)->EnableEmptyField(PROPERTY_ID_DEFAULT_VALUE == nPropId);
+ }
+ else
+ {
+ if (nPropId== PROPERTY_ID_HEIGHT || nPropId== PROPERTY_ID_WIDTH || nPropId== PROPERTY_ID_ROWHEIGHT)
+ pProperty->nDigits=1;
+
+ pProperty->eControlType = BCT_NUMFIELD;
+ }
+ }
+ }
+ //////////////////////////////////////////////////////////////////////
+ // Filter
+ if (bFilter )
+ {
+ switch( eType ) // TypeClass Inspection
+ {
+ case TypeClass_INTERFACE:
+ case TypeClass_ARRAY:
+ delete pProperty;
+ continue;
+ }
+
+ switch( aVal.getValueTypeClass() ) // TypeClass Any
+
+ {
+ case TypeClass_VOID:
+ if (pProps->Attributes & PropertyAttribute::MAYBEVOID)
+ break;
+
+ case TypeClass_INTERFACE:
+ case TypeClass_ARRAY:
+ case TypeClass_UNKNOWN:
+ delete pProperty;
+ continue;
+ }
+
+ if (pProps->Name.compareTo(::rtl::OUString::createFromAscii("type unknown")) == COMPARE_EQUAL )
+ {
+ delete pProperty;
+ continue;
+ }
+
+ if (pProps->Attributes & PropertyAttribute::TRANSIENT )
+ {
+ delete pProperty;
+ continue;
+ }
+
+ else if (pProps->Attributes & PropertyAttribute::READONLY )
+ {
+ delete pProperty;
+ continue;
+ }
+ }
+
+ //////////////////////////////////////////////////////////////////////
+ // sal_Bool-Werte
+ if (eType == TypeClass_BOOLEAN )
+ {
+ String aEntries(ModuleRes(RID_STR_BOOL));
+ for ( xub_StrLen i=0; i<2; ++i )
+ pProperty->aListValues.push_back( aEntries.GetToken(i) );
+
+ pProperty->eControlType = BCT_LISTBOX;
+ }
+
+ //////////////////////////////////////////////////////////////////////
+ // TYPECLASS_VOID
+ else if (eType == TypeClass_VOID )
+ pProperty->sValue = String();
+
+ //////////////////////////////////////////////////////////////////////
+ // Listen mit ResStrings fuellen
+ switch( nPropId )
+ {
+ case PROPERTY_ID_COMMANDTYPE:
+ case PROPERTY_ID_ALIGN:
+ case PROPERTY_ID_BUTTONTYPE:
+ case PROPERTY_ID_SUBMIT_METHOD:
+ case PROPERTY_ID_SUBMIT_ENCODING:
+ case PROPERTY_ID_DATEFORMAT:
+ case PROPERTY_ID_TIMEFORMAT:
+ case PROPERTY_ID_BORDER:
+ case PROPERTY_ID_CYCLE:
+ case PROPERTY_ID_NAVIGATION:
+ case PROPERTY_ID_TARGET_FRAME:
+ case PROPERTY_ID_DEFAULT_CHECKED:
+ case PROPERTY_ID_LISTSOURCETYPE:
+ {
+ Sequence< ::rtl::OUString > aEnumValues = m_pPropertyInfo->getPropertyEnumRepresentations(nPropId);
+ const ::rtl::OUString* pStart = aEnumValues.getConstArray();
+ const ::rtl::OUString* pEnd = pStart + aEnumValues.getLength();
+
+ // for a checkbox: if "ambiguous" is not allowed, remove this from the sequence
+ if (PROPERTY_ID_DEFAULT_CHECKED == nPropId)
+ if (::comphelper::hasProperty(PROPERTY_TRISTATE, m_xPropValueAccess))
+ {
+ if (!::comphelper::getBOOL(m_xPropValueAccess->getPropertyValue(PROPERTY_TRISTATE)))
+ { // remove the last sequence element
+ if (pEnd > pStart)
+ --pEnd;
+ }
+ }
+
+ if (PROPERTY_ID_LISTSOURCETYPE == nPropId)
+ if (::comphelper::hasProperty(PROPERTY_CLASSID, m_xPropValueAccess))
+ {
+ sal_Int16 nClassID = ::comphelper::getINT16(m_xPropValueAccess->getPropertyValue(PROPERTY_CLASSID));
+ if (nClassID == FormComponentType::COMBOBOX)
+ // remove the first sequence element
+ ++pStart;
+ }
+
+ // copy the sequence
+ for (const ::rtl::OUString* pLoop = pStart; pLoop != pEnd; ++pLoop)
+ pProperty->aListValues.push_back(*pLoop);
+
+ pProperty->eControlType =
+ PROPERTY_ID_TARGET_FRAME == nPropId
+ ? BCT_COMBOBOX
+ : BCT_LISTBOX;
+ }
+ break;
+
+ case PROPERTY_ID_TABINDEX:
+ pProperty->nMinValue = 0;
+ pProperty->nMaxValue = 0x7FFFFFFF;
+ pProperty->bHaveMinMax = sal_True;
+ break;
+ }
+
+ //////////////////////////////////////////////////////////////////////
+ // DataSource
+ if (nPropId == PROPERTY_ID_DATASOURCE )
+ {
+ pProperty->nUniqueButtonId = UID_PROP_DLG_ATTR_DATASOURCE;
+ // if the form already belong to a Database, don't set this property
+ Reference< XInterface > xInter;
+ m_aIntrospectee >>= xInter;
+ pProperty->bHasBrowseButton = sal_False;
+ pProperty->eControlType = BCT_COMBOBOX;
+
+ Reference< XNameAccess > xDatabaseContext(m_xORB->createInstance(SERVICE_DATABASE_CONTEXT), UNO_QUERY);
+ if (xDatabaseContext.is())
+ {
+ Sequence< ::rtl::OUString > aDatasources = xDatabaseContext->getElementNames();
+ const ::rtl::OUString* pBegin = aDatasources.getConstArray();
+ const ::rtl::OUString* pEnd = pBegin + aDatasources.getLength();
+ for (; pBegin != pEnd;++pBegin)
+ pProperty->aListValues.push_back(*pBegin);
+ }
+ }
+
+ //////////////////////////////////////////////////////////////////////
+ // ControlSource
+ else if (nPropId == PROPERTY_ID_CONTROLSOURCE )
+ SetFields( *pProperty );
+
+ //////////////////////////////////////////////////////////////////////
+ // CursorSource
+ else if (nPropId == PROPERTY_ID_COMMAND)
+ m_bHasCursorSource = sal_True;
+
+ //////////////////////////////////////////////////////////////////////
+ // ListSource
+ else if (nPropId == PROPERTY_ID_LISTSOURCE )
+ m_bHasListSource = sal_True;
+
+ //////////////////////////////////////////////////////////////////////
+ // UI-Eintrag
+ switch( nPropId ) // DataPage
+ {
+ case PROPERTY_ID_COMMAND:
+ case PROPERTY_ID_CONTROLSOURCE:
+ case PROPERTY_ID_LISTSOURCE:
+ case PROPERTY_ID_LISTSOURCETYPE:
+ case PROPERTY_ID_BOUNDCOLUMN:
+ case PROPERTY_ID_MASTERFIELDS:
+ case PROPERTY_ID_DETAILFIELDS:
+ case PROPERTY_ID_DATASOURCE:
+ case PROPERTY_ID_COMMANDTYPE:
+ case PROPERTY_ID_INSERTONLY:
+ case PROPERTY_ID_NAVIGATION:
+ case PROPERTY_ID_CYCLE:
+ case PROPERTY_ID_ALLOWADDITIONS:
+ case PROPERTY_ID_ALLOWEDITS:
+ case PROPERTY_ID_ALLOWDELETIONS:
+ case PROPERTY_ID_ESCAPE_PROCESSING:
+ case PROPERTY_ID_FILTER_CRITERIA:
+ case PROPERTY_ID_SORT:
+ case PROPERTY_ID_EMPTY_IS_NULL:
+ case PROPERTY_ID_FILTERPROPOSAL:
+ bRemoveDatPage =sal_False;
+ getPropertyBox()->SetPage( m_nDataPageId );
+ break;
+ default:
+ getPropertyBox()->SetPage( m_nGenericPageId );
+ }
+
+ pProperty->nHelpId = m_pPropertyInfo->getPropertyHelpId(nPropId);
+ pProperty->sTitle = sDisplayName;
+
+ if (PropertyState_AMBIGUOUS_VALUE == eState)
+ {
+ pProperty->bUnknownValue = sal_True;
+ pProperty->sValue = String();
+ }
+ getPropertyBox()->InsertEntry(*pProperty);
+ delete pProperty;
+ }
+
+ SetCursorSource(sal_True);
+ SetListSource(sal_True);
+
+ if (bRemoveDatPage && !m_bHasCursorSource && !m_bHasListSource)
+ {
+ getPropertyBox()->RemovePage(m_nDataPageId);
+ m_nDataPageId=0;
+ }
+
+ getPropertyBox()->SetPage( m_nDataPageId );
+
+ getPropertyBox()->EnableUpdate();
+ }
+ catch (Exception&)
+ {
+ DBG_ERROR("OPropertyBrowserController::UpdateUI : caught an exception !")
+ }
+ }
+
+ //------------------------------------------------------------------------
+ void OPropertyBrowserController::Modified( const String& aName, const String& aVal, void* pData )
+ {
+ try
+ {
+ sal_Int32 nPropId = m_pPropertyInfo->getPropertyId( aName );
+
+ // Wenn CursorSourceType veraendert wurde, CursorSource anpassen
+ if (PROPERTY_ID_COMMANDTYPE == nPropId)
+ {
+ Commit( aName, aVal, pData );
+ SetCursorSource();
+ }
+
+ //////////////////////////////////////////////////////////////////////
+ // Wenn ListSourceType veraendert wurde, ListSource anpassen
+ if (PROPERTY_ID_LISTSOURCETYPE == nPropId)
+ {
+ Commit( aName, aVal, pData );
+ SetListSource();
+ }
+ }
+ catch (Exception&)
+ {
+ DBG_ERROR("OPropertyBrowserController::Modified : caught an exception !")
+ }
+ }
+
+ //------------------------------------------------------------------------
+ void OPropertyBrowserController::Clicked( const String& aName, const String& aVal, void* pData )
+ {
+ try
+ {
+ sal_Int32 nPropId = m_pPropertyInfo->getPropertyId(aName);
+
+ //////////////////////////////////////////////////////////////////////
+ // DataSource & ImageURL
+ if (PROPERTY_ID_TARGET_URL == nPropId)
+ {
+
+ ::rtl::OUString aStrTrans = m_pPropertyInfo->getPropertyTranslation( nPropId );
+
+ SfxFileDialog* pDlg = new SfxFileDialog(
+ GetpApp()->GetAppWindow(), WB_3DLOOK );
+
+ pDlg->SetPath( aVal );
+ if (pDlg->Execute() == RET_OK )
+ {
+ String aDataSource = pDlg->GetPath();
+ Commit( aName, aDataSource, pData );
+
+ }
+ delete pDlg;
+ }
+
+
+ //////////////////////////////////////////////////////////////////////
+ // Bei Datenquelle auch Cursor-/ListSource fuellen
+ else if (PROPERTY_ID_DATASOURCE == nPropId)
+ {
+ String aUserVal=aVal;
+
+ Reference< XNamingService > xDatabaseAccesses(m_xORB->createInstance(SERVICE_DATABASE_CONTEXT), UNO_QUERY);
+ if (xDatabaseAccesses.is())
+ {
+ Reference< XDataSource > xDataSource;
+ try
+ {
+ xDataSource = Reference< XDataSource >(xDatabaseAccesses->getRegisteredObject(aVal), UNO_QUERY);
+ }
+ catch(NoSuchElementException&)
+ {
+ DBG_ERROR("Use of unknown datasource name");
+ }
+ }
+ }
+
+ //////////////////////////////////////////////////////////////////////
+ // URL
+ else if (nPropId == PROPERTY_ID_IMAGE_URL)
+ {
+
+ ::rtl::OUString aStrTrans = m_pPropertyInfo->getPropertyTranslation( nPropId );
+
+ SvxImportGraphicDialog* pDlg = new SvxImportGraphicDialog(
+ NULL,aStrTrans,
+ ENABLE_STANDARD );
+
+ if (aVal.Len() != 0)
+ pDlg ->SetPath( aVal,sal_False);
+
+
+ if (pDlg->Execute() == RET_OK )
+ {
+ String aDataSource = pDlg->GetPath();
+ Commit( aName, aDataSource, pData );
+ }
+ delete pDlg;
+ }
+
+
+ //////////////////////////////////////////////////////////////////////
+ // Color
+ else if (nPropId == PROPERTY_ID_BACKGROUNDCOLOR )
+ {
+ sal_uInt32 nColor = aVal.ToInt32();
+ Color aColor( nColor );
+ SvColorDialog aColorDlg( GetpApp()->GetAppWindow() );
+ aColorDlg.SetColor( aColor );
+
+ if (aColorDlg.Execute() )
+ {
+ aColor = aColorDlg.GetColor();
+ nColor = aColor.GetColor();
+
+ String aColorString = String::CreateFromInt32( (sal_Int32)nColor );
+ Commit( aName, aColorString, pData );
+ }
+ }
+
+ else if (PROPERTY_ID_FORMATKEY == nPropId)
+ {
+ ChangeFormatProperty(aName, aVal);
+ }
+
+ else if (PROPERTY_ID_CONTROLLABEL == nPropId)
+ {
+ OSelectLabelDialog dlgSelectLabel(GetpApp()->GetAppWindow(), m_xPropValueAccess);
+ if (RET_OK == dlgSelectLabel.Execute())
+ {
+ // if the properties transport would be via UsrAnys (instead of strings) we would have a chance
+ // to use the regular commit mechanism here ....
+ Reference< XPropertySet > xSelected(dlgSelectLabel.GetSelected());
+ if (xSelected.is())
+ m_xPropValueAccess->setPropertyValue(PROPERTY_CONTROLLABEL, makeAny(xSelected));
+ else
+ m_xPropValueAccess->setPropertyValue(PROPERTY_CONTROLLABEL, Any());
+ }
+ }
+
+ //////////////////////////////////////////////////////////////////////
+ // Font
+ else if (aName.EqualsAscii("Font"))
+ {
+ ChangeFontProperty(aName);
+ }
+ else if (pData == LINETYPE_EVENT)
+ {
+ ChangeEventProperty(aName);
+ }
+ }
+ catch (Exception&)
+ {
+ DBG_ERROR("OPropertyBrowserController::Clicked : caught an exception !")
+ }
+ }
+
+ //------------------------------------------------------------------------
+ void OPropertyBrowserController::Commit( const String& rName, const String& aVal, void* pData )
+ {
+ if (m_pChangeMultiplexer)
+ m_pChangeMultiplexer->lock();
+
+ try
+ {
+ //////////////////////////////////////////////////////////////////////
+ // Property-Info holen
+ sal_Int32 nPropId = m_pPropertyInfo->getPropertyId( rName );
+
+ Property aProp = getIntrospecteeProperty( rName );
+
+ String aUserVal=aVal;
+
+ //////////////////////////////////////////////////////////////////////
+ // URL- Adresse koennte relativ sein
+ if ((nPropId == PROPERTY_ID_TARGET_URL || nPropId == PROPERTY_ID_IMAGE_URL) && aVal.Len())
+ {
+ aUserVal = URIHelper::SmartRelToAbs(aVal);
+ }
+
+ Any aValue;
+ if (!(m_sStandard.equals(aVal) &&(aProp.Attributes & PropertyAttribute::MAYBEVOID)))
+ {
+ aValue = StringToAny( aUserVal, aProp, nPropId);
+ }
+
+ sal_Bool bDontSetToDefault = sal_False;
+
+ if ( ( (nPropId == PROPERTY_ID_DEFAULT_VALUE)
+ || (nPropId == PROPERTY_ID_DEFAULT_DATE)
+ || (nPropId == PROPERTY_ID_DEFAULT_TIME)
+ || (nPropId==PROPERTY_ID_BOUNDCOLUMN)
+ )
+ && (0 == aVal.Len())
+ )
+ {
+ aValue = Any();
+ bDontSetToDefault = sal_True;
+ }
+
+ //////////////////////////////////////////////////////////////////////
+ // Wert setzen
+ sal_Bool bDontForwardToPropSet = !(aProp.Attributes & PropertyAttribute::MAYBEVOID) &&
+ aValue.getValueType().equals( ::getVoidCppuType());
+
+
+ if (PROPERTY_ID_CONTROLLABEL == nPropId)
+ {
+ bDontForwardToPropSet = sal_True;
+ // the string fo the control label is not to be set as PropertyValue, it's only for displaying
+ bDontSetToDefault = sal_True;
+ }
+
+ if (!bDontForwardToPropSet)
+ m_xPropValueAccess->setPropertyValue( rName, aValue );
+
+ if (m_xPropStateAccess.is() && aValue.getValueType().equals( ::getVoidCppuType()) && !bDontSetToDefault)
+ {
+ m_xPropStateAccess->setPropertyToDefault(rName);
+ }
+ //////////////////////////////////////////////////////////////////////
+ // Wert neu holen und ggf. neu setzen
+ Any aNewValue = m_xPropValueAccess->getPropertyValue(rName);
+ ::rtl::OUString aNewStrVal = AnyToString(aNewValue, aProp, nPropId);
+
+ getPropertyBox()->SetPropertyValue( rName, aNewStrVal );
+
+ if (nPropId==PROPERTY_ID_TRISTATE)
+ {
+ OLineDescriptor aProperty;
+
+ aProperty.sName = (String)PROPERTY_DEFAULTCHECKED;
+ aProperty.sTitle = m_pPropertyInfo->getPropertyTranslation(PROPERTY_ID_DEFAULT_CHECKED);
+ aProperty.nHelpId = m_pPropertyInfo->getPropertyHelpId(PROPERTY_ID_DEFAULT_CHECKED);
+ aProperty.eControlType = BCT_LISTBOX;
+ aProperty.sValue = getPropertyBox()->GetPropertyValue(PROPERTY_DEFAULTCHECKED);
+ sal_uInt16 nPos = getPropertyBox()->GetPropertyPos(PROPERTY_DEFAULTCHECKED);
+
+ Sequence< ::rtl::OUString > aEntries =
+ m_pPropertyInfo->getPropertyEnumRepresentations(PROPERTY_ID_DEFAULT_CHECKED);
+ sal_Int32 nEntryCount = aEntries.getLength();
+
+ if (!::comphelper::getBOOL(aNewValue))
+ // tristate not allowed -> remove the "don't know" state
+ --nEntryCount;
+
+ sal_Bool bValidDefaultCheckedValue = sal_False;
+
+ const ::rtl::OUString* pStart = aEntries.getConstArray();
+ const ::rtl::OUString* pEnd = pStart + aEntries.getLength();
+ for (const ::rtl::OUString* pLoop = pStart; pLoop != pEnd; ++pLoop)
+ {
+ aProperty.aListValues.push_back(*pLoop);
+ if (pLoop->equals(aProperty.sValue))
+ bValidDefaultCheckedValue = sal_True;
+ }
+
+ if (!bValidDefaultCheckedValue)
+ aProperty.sValue = *pStart;
+
+ if (nPos != EDITOR_LIST_APPEND)
+ getPropertyBox()->ChangeEntry(aProperty,nPos);
+
+ Commit(aProperty.sName, aProperty.sValue, NULL);
+ }
+ else if ((PROPERTY_ID_DECIMAL_ACCURACY == nPropId) || (PROPERTY_ID_SHOWTHOUSANDSEP == nPropId))
+ {
+ sal_Bool bAccuracy = (PROPERTY_ID_DECIMAL_ACCURACY == nPropId);
+ sal_uInt16 nNewDigits = bAccuracy ? ::comphelper::getINT16(aNewValue) : 0;
+ sal_Bool bUseSep = bAccuracy ? sal_False : ::comphelper::getBOOL(aNewValue);
+
+ getPropertyBox()->DisableUpdate();
+
+ // propagate the changes to the min/max/default fields
+ Any aCurrentProp;
+ ::rtl::OUString aAffectedProps[] = { PROPERTY_DEFAULT_VALUE, PROPERTY_VALUEMIN, PROPERTY_VALUEMAX };
+ for (sal_uInt16 i=0; i<sizeof(aAffectedProps)/sizeof(aAffectedProps[0]); ++i)
+ {
+ OFormattedNumericControl* pField = (OFormattedNumericControl*)getPropertyBox()->GetPropertyControl(aAffectedProps[i]);
+ if (pField)
+ if (bAccuracy)
+ pField->SetDecimalDigits(nNewDigits);
+ else
+ pField->SetThousandsSep(bUseSep);
+ }
+
+ getPropertyBox()->EnableUpdate();
+ }
+ else if (PROPERTY_ID_FORMATKEY == nPropId)
+ {
+ FormatDescription aNewDesc;
+
+ Any aSupplier = m_xPropValueAccess->getPropertyValue(PROPERTY_FORMATSSUPPLIER);
+ DBG_ASSERT(aSupplier.getValueType().equals(::getCppuType(
+ (const Reference< XNumberFormatsSupplier>*)0)),
+
+ "OPropertyBrowserController::Commit : invalid property change !");
+ // we only allowed the FormatKey property to be displayed if the set had a valid FormatsSupplier
+ Reference< XNumberFormatsSupplier > xSupplier;
+ aSupplier >>= xSupplier;
+ DBG_ASSERT(xSupplier.is(), "OPropertyBrowserController::Commit : invalid property change !");
+ // same argument
+ Reference< XUnoTunnel > xTunnel(xSupplier,UNO_QUERY);
+ DBG_ASSERT(xTunnel.is(), "OPropertyBrowserController::ChangeFormatProperty : xTunnel is invalid!");
+ SvNumberFormatsSupplierObj* pSupplier = (SvNumberFormatsSupplierObj*)xTunnel->getSomething(SvNumberFormatsSupplierObj::getUnoTunnelId());
+ // the same again
+
+ aNewDesc.pSupplier = pSupplier;
+ aNewDesc.nKey = aVal.ToInt32();
+ // nKey will be zero if aVal is empty or standard
+
+ // give each control which has to know this an own copy of the description
+ IBrowserControl* pControl = getPropertyBox()->GetPropertyControl(PROPERTY_EFFECTIVE_MIN);
+ if (pControl)
+ ((OFormattedNumericControl*)pControl)->SetFormatDescription(aNewDesc);
+
+ pControl = getPropertyBox()->GetPropertyControl(PROPERTY_EFFECTIVE_MAX);
+ if (pControl)
+ ((OFormattedNumericControl*)pControl)->SetFormatDescription(aNewDesc);
+
+ pControl = getPropertyBox()->GetPropertyControl(PROPERTY_EFFECTIVE_DEFAULT);
+ if (pControl)
+ ((OFormattedNumericControl*)pControl)->SetFormatDescription(aNewDesc);
+ }
+
+ //////////////////////////////////////////////////////////////////////
+ // Bei Datenquelle auch Cursor-/ListSource fuellen
+ if (nPropId == PROPERTY_ID_DATASOURCE )
+ {
+ Property aProp = getIntrospecteeProperty( rName );
+
+ Any aValue = StringToAny( aUserVal, aProp, nPropId);
+
+ sal_Bool bFlag= !(aProp.Attributes & PropertyAttribute::MAYBEVOID) && !aValue.hasValue();
+
+
+ if (!bFlag)
+ m_xPropValueAccess->setPropertyValue(rName, aValue );
+
+ if (m_xPropStateAccess.is()&& !aValue.hasValue())
+ {
+ m_xPropStateAccess->setPropertyToDefault(rName);
+ }
+
+ SetCursorSource();
+ SetListSource();
+ }
+ }
+ catch(PropertyVetoException& eVetoException)
+ {
+ InfoBox(m_pView, eVetoException.Message).Execute();
+ }
+ catch(Exception&)
+ {
+ DBG_ERROR("OPropertyBrowserController::Commit : caught an exception !")
+ }
+
+ if (m_pChangeMultiplexer)
+ m_pChangeMultiplexer->unlock();
+ }
+
+ //------------------------------------------------------------------------
+ void OPropertyBrowserController::Select( const String& aName, void* pData )
+ {
+ }
+
+//............................................................................
+} // namespace pcr
+//............................................................................
+
+/*************************************************************************
+ * history:
+ * $Log: not supported by cvs2svn $
+ *
+ * Revision 1.0 10.01.01 08:51:55 fs
+ ************************************************************************/
+
diff --git a/extensions/source/propctrlr/formhelpid.hrc b/extensions/source/propctrlr/formhelpid.hrc
new file mode 100644
index 000000000..e10208b81
--- /dev/null
+++ b/extensions/source/propctrlr/formhelpid.hrc
@@ -0,0 +1,250 @@
+/*************************************************************************
+ *
+ * $RCSfile: formhelpid.hrc,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: fs $ $Date: 2001-01-12 11:28:14 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (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.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc..
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#ifndef _EXTENSIONS_FORMCTRLR_FORMHELPID_HRC_
+#define _EXTENSIONS_FORMCTRLR_FORMHELPID_HRC_
+
+#ifndef _SOLAR_HRC
+#include <svtools/solar.hrc>
+#endif
+
+// TODO: real help ids. For the moment, these ids are ripped from
+// svx/fmhelp.hrc
+
+// ----------------------------------------------------------------------------
+
+#define HID_PROP_GROUPBOX (HID_FORMS_START + 2)
+#define HID_PROP_CONTROLSOURCE (HID_FORMS_START + 3)
+#define HID_PROP_NAME (HID_FORMS_START + 4)
+#define HID_PROP_TABINDEX (HID_FORMS_START + 5)
+#define HID_PROP_MASTERFIELDS (HID_FORMS_START + 6)
+#define HID_PROP_SLAVEFIELDS (HID_FORMS_START + 7)
+#define HID_PROP_DATASOURCE (HID_FORMS_START + 8)
+#define HID_PROP_CURSORSOURCE (HID_FORMS_START + 9)
+#define HID_PROP_CURSORSOURCETYPE (HID_FORMS_START + 10)
+#define HID_PROP_CURSORTYPE (HID_FORMS_START + 11)
+#define HID_PROP_READONLY (HID_FORMS_START + 12)
+#define HID_PROP_DATAENTRY (HID_FORMS_START + 13)
+#define HID_PROP_NAVIGATION (HID_FORMS_START + 14)
+#define HID_PROP_CYCLE (HID_FORMS_START + 15)
+#define HID_PROP_ALLOW_ADDITIONS (HID_FORMS_START + 16)
+#define HID_PROP_ALLOW_EDITS (HID_FORMS_START + 17)
+#define HID_PROP_ALLOW_DELETIONS (HID_FORMS_START + 18)
+#define HID_PROP_DIRTY (HID_FORMS_START + 19)
+#define HID_PROP_OLDVALUE (HID_FORMS_START + 20)
+#define HID_PROP_VALUE (HID_FORMS_START + 21)
+#define HID_PROP_LOCKED (HID_FORMS_START + 22)
+#define HID_PROP_FORMATKEY (HID_FORMS_START + 23)
+#define HID_PROP_REQUIRED (HID_FORMS_START + 24)
+#define HID_PROP_SCALE (HID_FORMS_START + 25)
+#define HID_PROP_UNIQUE (HID_FORMS_START + 27)
+#define HID_PROP_CLASSID (HID_FORMS_START + 28)
+#define HID_PROP_LEFT (HID_FORMS_START + 29)
+#define HID_PROP_RIGHT (HID_FORMS_START + 30)
+#define HID_PROP_HEIGHT (HID_FORMS_START + 31)
+#define HID_PROP_WIDTH (HID_FORMS_START + 32)
+#define HID_PROP_BOUNDCOLUMN (HID_FORMS_START + 33)
+#define HID_PROP_LISTSOURCETYPE (HID_FORMS_START + 34)
+#define HID_PROP_LISTSOURCE (HID_FORMS_START + 35)
+#define HID_PROP_LISTINDEX (HID_FORMS_START + 36)
+#define HID_PROP_TEXT (HID_FORMS_START + 37)
+#define HID_PROP_LABEL (HID_FORMS_START + 38)
+#define HID_PROP_STRINGITEMLIST (HID_FORMS_START + 39)
+#define HID_PROP_SEARCHING (HID_FORMS_START + 40)
+#define HID_PROP_FONT (HID_FORMS_START + 41)
+#define HID_PROP_ROWHEIGHT (HID_FORMS_START + 42)
+#define HID_PROP_BACKGROUNDCOLOR (HID_FORMS_START + 43)
+#define HID_PROP_FILLCOLOR (HID_FORMS_START + 44)
+#define HID_PROP_LINECOLOR (HID_FORMS_START + 46)
+#define HID_PROP_BORDER (HID_FORMS_START + 47)
+#define HID_PROP_ALIGN (HID_FORMS_START + 48)
+#define HID_PROP_DROPDOWN (HID_FORMS_START + 49)
+#define HID_PROP_MULTILINE (HID_FORMS_START + 50)
+#define HID_PROP_HSCROLL (HID_FORMS_START + 51)
+#define HID_PROP_VSCROLL (HID_FORMS_START + 52)
+#define HID_PROP_TABSTOP (HID_FORMS_START + 53)
+#define HID_PROP_REFVALUE (HID_FORMS_START + 54)
+#define HID_PROP_BUTTONTYPE (HID_FORMS_START + 55)
+#define HID_PROP_SUBMIT_ACTION (HID_FORMS_START + 56)
+#define HID_PROP_SUBMIT_METHOD (HID_FORMS_START + 57)
+#define HID_PROP_SUBMIT_ENCODING (HID_FORMS_START + 58)
+#define HID_PROP_DEFAULTVALUE (HID_FORMS_START + 59)
+#define HID_PROP_SUBMIT_TARGET (HID_FORMS_START + 60)
+#define HID_PROP_DEFAULT_CHECKED (HID_FORMS_START + 61)
+#define HID_PROP_IMAGE_URL (HID_FORMS_START + 62)
+#define HID_PROP_DEFAULT_SELECT_SEQ (HID_FORMS_START + 63)
+#define HID_PROP_MULTISELECTION (HID_FORMS_START + 64)
+#define HID_PROP_DATE (HID_FORMS_START + 65)
+#define HID_PROP_DATEMIN (HID_FORMS_START + 66)
+#define HID_PROP_DATEMAX (HID_FORMS_START + 67)
+#define HID_PROP_DATEFORMAT (HID_FORMS_START + 68)
+#define HID_PROP_TIME (HID_FORMS_START + 69)
+#define HID_PROP_TIMEMIN (HID_FORMS_START + 70)
+#define HID_PROP_TIMEMAX (HID_FORMS_START + 71)
+#define HID_PROP_TIMEFORMAT (HID_FORMS_START + 72)
+#define HID_PROP_VALUEMIN (HID_FORMS_START + 73)
+#define HID_PROP_VALUEMAX (HID_FORMS_START + 74)
+#define HID_PROP_VALUESTEP (HID_FORMS_START + 75)
+#define HID_PROP_CURRENCYSYMBOL (HID_FORMS_START + 76)
+#define HID_PROP_EDITMASK (HID_FORMS_START + 77)
+#define HID_PROP_LITERALMASK (HID_FORMS_START + 78)
+#define HID_PROP_ENABLED (HID_FORMS_START + 79)
+#define HID_PROP_AUTOCOMPLETE (HID_FORMS_START + 80)
+#define HID_PROP_LINECOUNT (HID_FORMS_START + 81)
+#define HID_PROP_MAXTEXTLEN (HID_FORMS_START + 82)
+#define HID_PROP_SPIN (HID_FORMS_START + 83)
+#define HID_PROP_STRICTFORMAT (HID_FORMS_START + 84)
+#define HID_PROP_SHOWTHOUSANDSEP (HID_FORMS_START + 85)
+#define HID_PROP_HARDLINEBREAKS (HID_FORMS_START + 86)
+#define HID_PROP_PRINTABLE (HID_FORMS_START + 87)
+#define HID_PROP_TARGET_URL (HID_FORMS_START + 88)
+#define HID_PROP_TARGET_FRAME (HID_FORMS_START + 89)
+#define HID_PROP_TAG (HID_FORMS_START + 90)
+#define HID_PROP_ECHO_CHAR (HID_FORMS_START + 91)
+#define HID_PROP_EMPTY_IS_NULL (HID_FORMS_START + 92)
+#define HID_PROP_DECIMAL_ACCURACY (HID_FORMS_START + 93)
+#define HID_PROP_DATE_SHOW_CENTURY (HID_FORMS_START + 94)
+#define HID_PROP_DEFAULT_BUTTON (HID_FORMS_START + 95)
+#define HID_PROP_HIDDEN_VALUE (HID_FORMS_START + 96)
+#define HID_PROP_TRISTATE (HID_FORMS_START + 97)
+#define HID_PROP_NAVIGATIONBAR (HID_FORMS_START + 98)
+#define HID_PROP_FILTER_CRITERIA (HID_FORMS_START + 99)
+#define HID_PROP_SORT_CRITERIA (HID_FORMS_START + 100)
+#define HID_PROP_DEFAULT_LONG_VALUE (HID_FORMS_START + 101)
+#define HID_PROP_DEFAULT_TIME (HID_FORMS_START + 102)
+#define HID_PROP_DEFAULT_DATE (HID_FORMS_START + 103)
+#define HID_PROP_HELPTEXT (HID_FORMS_START + 104)
+#define HID_PROP_HELPURL (HID_FORMS_START + 105)
+#define HID_PROP_RECORDMARKER (HID_FORMS_START + 106)
+#define HID_PROP_FILTERPROPOSAL (HID_FORMS_START + 107)
+#define HID_PROP_EFFECTIVEMIN (HID_FORMS_START + 108)
+#define HID_PROP_EFFECTIVEMAX (HID_FORMS_START + 109)
+#define HID_PROP_EFFECTIVEDEFAULT (HID_FORMS_START + 110)
+#define HID_PROP_CONTROLLABEL (HID_FORMS_START + 111)
+#define HID_PROP_CURRSYM_POSITION (HID_FORMS_START + 112)
+#define HID_PROP_ESCAPE_PROCESSING (HID_FORMS_START + 113)
+
+// ----------------------------------------------------------------------------
+
+#define HID_EVT_START (HID_FORMS_START + 200)
+
+#define HID_EVT_ACTIONPERFORMED (HID_EVT_START + 0)
+#define HID_EVT_AFTERUPDATE (HID_EVT_START + 3)
+#define HID_EVT_BEFOREUPDATE (HID_EVT_START + 6)
+#define HID_EVT_CONFIRMDELETE (HID_EVT_START + 12)
+#define HID_EVT_ERROROCCURED (HID_EVT_START + 16)
+#define HID_EVT_FOCUSGAINED (HID_EVT_START + 18)
+#define HID_EVT_FOCUSLOST (HID_EVT_START + 19)
+#define HID_EVT_ITEMSTATECHANGED (HID_EVT_START + 20)
+#define HID_EVT_KEYTYPED (HID_EVT_START + 21)
+#define HID_EVT_LOADED (HID_EVT_START + 22)
+#define HID_EVT_MOUSEDRAGGED (HID_EVT_START + 23)
+#define HID_EVT_MOUSEENTERED (HID_EVT_START + 24)
+#define HID_EVT_MOUSEEXITED (HID_EVT_START + 25)
+#define HID_EVT_MOUSEMOVED (HID_EVT_START + 26)
+#define HID_EVT_MOUSEPRESSED (HID_EVT_START + 27)
+#define HID_EVT_MOUSERELEASED (HID_EVT_START + 28)
+#define HID_EVT_POSITIONED (HID_EVT_START + 29)
+#define HID_EVT_RESETTED (HID_EVT_START + 33)
+#define HID_EVT_SUBMITTED (HID_EVT_START + 34)
+#define HID_EVT_TEXTCHANGED (HID_EVT_START + 35)
+#define HID_EVT_UNLOADED (HID_EVT_START + 36)
+#define HID_EVT_CHANGED (HID_EVT_START + 39)
+#define HID_EVT_APPROVEACTIONPERFORMED (HID_EVT_START + 40)
+#define HID_EVT_APPROVERESETTED (HID_EVT_START + 41)
+#define HID_EVT_KEYUP (HID_EVT_START + 42)
+#define HID_EVT_APPROVEPARAMETER (HID_EVT_START + 43)
+#define HID_EVT_POSITIONING (HID_EVT_START + 44)
+#define HID_EVT_RELOADED (HID_EVT_START + 45)
+#define HID_EVT_APPROVEROWCHANGE (HID_EVT_START + 46)
+#define HID_EVT_ROWCHANGE (HID_EVT_START + 47)
+#define HID_EVT_RELOADING (HID_EVT_START + 48)
+#define HID_EVT_UNLOADING (HID_EVT_START + 49)
+
+#define UID_EVT_MACRODLG (HID_EVT_START + 99)
+
+// ----------------------------------------------------------------------------
+
+#define UID_PROP_DLG (HID_FORMS_START + 180)
+
+#define UID_PROP_DLG_FONT_TYPE (UID_PROP_DLG + 0)
+#define UID_PROP_DLG_ATTR_TARGET_URL (UID_PROP_DLG + 5)
+#define UID_PROP_DLG_IMAGE_URL (UID_PROP_DLG + 1)
+#define UID_PROP_DLG_BACKGROUNDCOLOR (UID_PROP_DLG + 2)
+#define UID_PROP_DLG_CONTROLLABEL (UID_PROP_DLG + 7)
+#define UID_PROP_DLG_NUMBER_FORMAT (UID_PROP_DLG + 6)
+#define UID_PROP_DLG_ATTR_DATASOURCE (UID_PROP_DLG + 4)
+
+// ----------------------------------------------------------------------------
+
+#define HID_FORM_DLG_START (HID_FORMS_START + 400)
+
+#define HID_FM_PROPDLG_TAB_EVT (HID_FORM_DLG_START + 8)
+
+#endif // _EXTENSIONS_FORMCTRLR_FORMHELPID_HRC_
+
+/*************************************************************************
+ * history:
+ * $Log: not supported by cvs2svn $
+ *
+ * Revision 1.0 09.01.01 15:59:13 fs
+ ************************************************************************/
+
diff --git a/extensions/source/propctrlr/formmetadata.cxx b/extensions/source/propctrlr/formmetadata.cxx
new file mode 100644
index 000000000..f1c5b8241
--- /dev/null
+++ b/extensions/source/propctrlr/formmetadata.cxx
@@ -0,0 +1,473 @@
+/*************************************************************************
+ *
+ * $RCSfile: formmetadata.cxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: fs $ $Date: 2001-01-12 11:28:26 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (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.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc..
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#ifndef _EXTENSIONS_PROPCTRLR_FORMMETADATA_HXX_
+#include "formmetadata.hxx"
+#endif
+#ifndef _EXTENSIONS_FORMCTRLR_FORMHELPID_HRC_
+#include "formhelpid.hrc"
+#endif
+#ifndef _EXTENSIONS_FORMSCTRLR_FORMSTRINGS_HXX_
+#include "formstrings.hxx"
+#endif
+#ifndef _EXTENSIONS_FORMCTRLR_PROPRESID_HRC_
+#include "formresid.hrc"
+#endif
+
+//............................................................................
+namespace pcr
+{
+//............................................................................
+
+ using namespace ::com::sun::star::uno;
+
+ //========================================================================
+ //= OPropertyInfoImpl
+ //========================================================================
+ struct OPropertyInfoImpl
+ {
+ String sName;
+ String sTranslation;
+ sal_uInt32 nHelpId;
+ sal_Int32 nId;
+ sal_uInt16 nPos;
+ sal_Bool bMultiSelectable;
+
+ OPropertyInfoImpl(
+ const String& rName,
+ sal_Int32 _nId,
+ sal_Bool bMSel,
+ const String& aTranslation,
+ sal_uInt16 nPosId,
+ sal_uInt32 nHelpId);
+ };
+
+ //------------------------------------------------------------------------
+ OPropertyInfoImpl::OPropertyInfoImpl(const String& _rName, sal_Int32 _nId, sal_Bool bMSel,
+ const String& aString, sal_uInt16 nP, sal_uInt32 nHid)
+ :sName(_rName)
+ ,nId(_nId)
+ ,bMultiSelectable(bMSel)
+ ,sTranslation(aString)
+ ,nPos(nP)
+ ,nHelpId(nHid)
+ {
+ }
+
+ //------------------------------------------------------------------------
+ // Vergleichen von PropertyInfo
+ static int
+ #if defined( WNT )
+ __cdecl
+ #endif
+ #if defined( ICC ) && defined( OS2 )
+ _Optlink
+ #endif
+ PropertyInfoCompare(const void* pFirst, const void* pSecond)
+ {
+ return reinterpret_cast<const OPropertyInfoImpl*>(pFirst)->sName.CompareTo(reinterpret_cast<const OPropertyInfoImpl*>(pSecond)->sName);
+ }
+
+ //========================================================================
+ //= OFormPropertyInfoService
+ //========================================================================
+ sal_uInt16 OFormPropertyInfoService::s_nCount = 0;
+ OPropertyInfoImpl* OFormPropertyInfoService::s_pPropertyInfos = NULL;
+ //------------------------------------------------------------------------
+ const OPropertyInfoImpl* OFormPropertyInfoService::getPropertyInfo()
+ {
+ sal_uInt16 nPos=1;
+ if (s_pPropertyInfos == NULL)
+ {
+ OModuleResourceClient aResourceAccess;
+ // this ensures that we have our resource file loaded
+
+ // somewhat ugly ... but this way we easily ensure that the
+ static OPropertyInfoImpl __READONLY_DATA aPropertyInfos[] =
+ {
+ OPropertyInfoImpl(PROPERTY_NAME, PROPERTY_ID_NAME, sal_False, String(ModuleRes(RID_STR_NAME)), nPos++, HID_PROP_NAME) ,
+ OPropertyInfoImpl(PROPERTY_LABEL, PROPERTY_ID_LABEL, sal_True, String(ModuleRes(RID_STR_LABEL)), nPos++, HID_PROP_LABEL),
+ OPropertyInfoImpl(PROPERTY_CONTROLLABEL, PROPERTY_ID_CONTROLLABEL, sal_False, String(ModuleRes(RID_STR_LABELCONTROL)), nPos++, HID_PROP_CONTROLLABEL),
+ OPropertyInfoImpl(PROPERTY_MAXTEXTLEN, PROPERTY_ID_MAXTEXTLEN, sal_True, String(ModuleRes(RID_STR_MAXTEXTLEN)), nPos++, HID_PROP_MAXTEXTLEN),
+ OPropertyInfoImpl(PROPERTY_EDITMASK, PROPERTY_ID_EDITMASK, sal_True, String(ModuleRes(RID_STR_EDITMASK)), nPos++, HID_PROP_EDITMASK),
+ OPropertyInfoImpl(PROPERTY_LITERALMASK, PROPERTY_ID_LITERALMASK, sal_True, String(ModuleRes(RID_STR_LITERALMASK)), nPos++, HID_PROP_LITERALMASK),
+ OPropertyInfoImpl(PROPERTY_STRICTFORMAT, PROPERTY_ID_STRICTFORMAT, sal_True, String(ModuleRes(RID_STR_STRICTFORMAT)), nPos++, HID_PROP_STRICTFORMAT),
+ OPropertyInfoImpl(PROPERTY_ENABLED, PROPERTY_ID_ENABLED, sal_True, String(ModuleRes(RID_STR_ENABLED)), nPos++, HID_PROP_ENABLED) ,
+ OPropertyInfoImpl(PROPERTY_READONLY, PROPERTY_ID_READONLY, sal_True, String(ModuleRes(RID_STR_READONLY)), nPos++, HID_PROP_READONLY) ,
+ OPropertyInfoImpl(PROPERTY_PRINTABLE, PROPERTY_ID_PRINTABLE, sal_True, String(ModuleRes(RID_STR_PRINTABLE)), nPos++, HID_PROP_PRINTABLE) ,
+ OPropertyInfoImpl(PROPERTY_CONTROLSOURCE, PROPERTY_ID_CONTROLSOURCE, sal_True, String(ModuleRes(RID_STR_CONTROLSOURCE)), nPos++, HID_PROP_CONTROLSOURCE),
+ OPropertyInfoImpl(PROPERTY_TABSTOP, PROPERTY_ID_TABSTOP, sal_True, String(ModuleRes(RID_STR_TABSTOP)), nPos++, HID_PROP_TABSTOP),
+ OPropertyInfoImpl(PROPERTY_TABINDEX, PROPERTY_ID_TABINDEX, sal_True, String(ModuleRes(RID_STR_TABINDEX)), nPos++, HID_PROP_TABINDEX) ,
+ OPropertyInfoImpl(PROPERTY_DATASOURCE, PROPERTY_ID_DATASOURCE, sal_True, String(ModuleRes(RID_STR_DATASOURCE)), nPos++, HID_PROP_DATASOURCE) ,
+ OPropertyInfoImpl(PROPERTY_COMMAND, PROPERTY_ID_COMMAND, sal_False, String(ModuleRes(RID_STR_CURSORSOURCE)), nPos++, HID_PROP_CURSORSOURCE),
+ OPropertyInfoImpl(PROPERTY_COMMANDTYPE, PROPERTY_ID_COMMANDTYPE, sal_False, String(ModuleRes(RID_STR_CURSORSOURCETYPE)), nPos++, HID_PROP_CURSORSOURCETYPE),
+ OPropertyInfoImpl(PROPERTY_ESCAPE_PROCESSING, PROPERTY_ID_ESCAPE_PROCESSING, sal_False, String(ModuleRes(RID_STR_ESCAPE_PROCESSING)), nPos++, HID_PROP_ESCAPE_PROCESSING),
+ OPropertyInfoImpl(PROPERTY_FILTER_CRITERIA, PROPERTY_ID_FILTER_CRITERIA, sal_False, String(ModuleRes(RID_STR_FILTER_CRITERIA)), nPos++, HID_PROP_FILTER_CRITERIA ),
+ OPropertyInfoImpl(PROPERTY_SORT, PROPERTY_ID_SORT, sal_False, String(ModuleRes(RID_STR_SORT_CRITERIA)), nPos++, HID_PROP_SORT_CRITERIA) ,
+ OPropertyInfoImpl(PROPERTY_ALLOWADDITIONS, PROPERTY_ID_ALLOWADDITIONS, sal_True, String(ModuleRes(RID_STR_ALLOW_ADDITIONS)), nPos++, HID_PROP_ALLOW_ADDITIONS) ,
+ OPropertyInfoImpl(PROPERTY_ALLOWEDITS, PROPERTY_ID_ALLOWEDITS, sal_True, String(ModuleRes(RID_STR_ALLOW_EDITS)), nPos++, HID_PROP_ALLOW_EDITS ) ,
+ OPropertyInfoImpl(PROPERTY_ALLOWDELETIONS, PROPERTY_ID_ALLOWDELETIONS, sal_True, String(ModuleRes(RID_STR_ALLOW_DELETIONS)), nPos++, HID_PROP_ALLOW_DELETIONS) ,
+ OPropertyInfoImpl(PROPERTY_INSERTONLY, PROPERTY_ID_INSERTONLY, sal_True, String(ModuleRes(RID_STR_DATAENTRY)), nPos++, HID_PROP_DATAENTRY) ,
+ OPropertyInfoImpl(PROPERTY_NAVIGATION, PROPERTY_ID_NAVIGATION, sal_True, String(ModuleRes(RID_STR_NAVIGATION)), nPos++, HID_PROP_NAVIGATION) ,
+ OPropertyInfoImpl(PROPERTY_CYCLE, PROPERTY_ID_CYCLE, sal_True, String(ModuleRes(RID_STR_CYCLE)), nPos++, HID_PROP_CYCLE) ,
+ OPropertyInfoImpl(PROPERTY_HIDDEN_VALUE, PROPERTY_ID_HIDDEN_VALUE, sal_True, String(ModuleRes(RID_STR_VALUE)), nPos++, HID_PROP_HIDDEN_VALUE),
+ OPropertyInfoImpl(PROPERTY_VALUEMIN, PROPERTY_ID_VALUEMIN, sal_True, String(ModuleRes(RID_STR_VALUEMIN)), nPos++, HID_PROP_VALUEMIN) ,
+ OPropertyInfoImpl(PROPERTY_VALUEMAX, PROPERTY_ID_VALUEMAX, sal_True, String(ModuleRes(RID_STR_VALUEMAX)), nPos++, HID_PROP_VALUEMAX) ,
+ OPropertyInfoImpl(PROPERTY_VALUESTEP, PROPERTY_ID_VALUESTEP, sal_True, String(ModuleRes(RID_STR_VALUESTEP)), nPos++, HID_PROP_VALUESTEP) ,
+ OPropertyInfoImpl(PROPERTY_DEFAULT_VALUE, PROPERTY_ID_DEFAULT_VALUE, sal_True, String(ModuleRes(RID_STR_DEFAULTVALUE)), nPos++, HID_PROP_DEFAULT_LONG_VALUE ),
+ OPropertyInfoImpl(PROPERTY_DECIMAL_ACCURACY, PROPERTY_ID_DECIMAL_ACCURACY, sal_True, String(ModuleRes(RID_STR_DECIMAL_ACCURACY)), nPos++, HID_PROP_DECIMAL_ACCURACY ),
+ OPropertyInfoImpl(PROPERTY_SHOWTHOUSANDSEP, PROPERTY_ID_SHOWTHOUSANDSEP, sal_True, String(ModuleRes(RID_STR_SHOWTHOUSANDSEP)), nPos++, HID_PROP_SHOWTHOUSANDSEP),
+
+ OPropertyInfoImpl(PROPERTY_REFVALUE, PROPERTY_ID_REFVALUE, sal_True, String(ModuleRes(RID_STR_REFVALUE)), nPos++, HID_PROP_REFVALUE),
+ OPropertyInfoImpl(PROPERTY_CURRENCYSYMBOL, PROPERTY_ID_CURRENCYSYMBOL, sal_True, String(ModuleRes(RID_STR_CURRENCYSYMBOL)), nPos++, HID_PROP_CURRENCYSYMBOL),
+ OPropertyInfoImpl(PROPERTY_CURRSYM_POSITION, PROPERTY_ID_CURRSYM_POSITION, sal_True, String(ModuleRes(RID_STR_CURRSYM_POSITION)), nPos++, HID_PROP_CURRSYM_POSITION),
+
+ OPropertyInfoImpl(PROPERTY_DATEMIN, PROPERTY_ID_DATEMIN, sal_True, String(ModuleRes(RID_STR_DATEMIN)), nPos++, HID_PROP_DATEMIN) ,
+ OPropertyInfoImpl(PROPERTY_DATEMAX, PROPERTY_ID_DATEMAX, sal_True, String(ModuleRes(RID_STR_DATEMAX)), nPos++, HID_PROP_DATEMAX) ,
+ OPropertyInfoImpl(PROPERTY_DATEFORMAT, PROPERTY_ID_DATEFORMAT, sal_True, String(ModuleRes(RID_STR_DATEFORMAT)), nPos++, HID_PROP_DATEFORMAT) ,
+ OPropertyInfoImpl(PROPERTY_DATE_SHOW_CENTURY, PROPERTY_ID_DATE_SHOW_CENTURY, sal_True, String(ModuleRes(RID_STR_DATE_SHOW_CENTURY)),nPos++, HID_PROP_DATE_SHOW_CENTURY ),
+ OPropertyInfoImpl(PROPERTY_DEFAULT_DATE, PROPERTY_ID_DEFAULT_DATE, sal_True, String(ModuleRes(RID_STR_DEFAULTVALUE)), nPos++, HID_PROP_DEFAULT_DATE ),
+
+ OPropertyInfoImpl(PROPERTY_TIMEMIN, PROPERTY_ID_TIMEMIN, sal_True, String(ModuleRes(RID_STR_TIMEMIN)), nPos++, HID_PROP_TIMEMIN) ,
+ OPropertyInfoImpl(PROPERTY_TIMEMAX, PROPERTY_ID_TIMEMAX, sal_True, String(ModuleRes(RID_STR_TIMEMAX)), nPos++, HID_PROP_TIMEMAX) ,
+ OPropertyInfoImpl(PROPERTY_TIMEFORMAT, PROPERTY_ID_TIMEFORMAT, sal_True, String(ModuleRes(RID_STR_TIMEFORMAT)), nPos++, HID_PROP_TIMEFORMAT) ,
+ OPropertyInfoImpl(PROPERTY_DEFAULT_TIME, PROPERTY_ID_DEFAULT_TIME, sal_True, String(ModuleRes(RID_STR_DEFAULTVALUE)), nPos++, HID_PROP_DEFAULT_TIME ),
+
+ OPropertyInfoImpl(PROPERTY_EFFECTIVE_MIN, PROPERTY_ID_EFFECTIVE_MIN, sal_False, String(ModuleRes(RID_STR_VALUEMIN)), nPos++, HID_PROP_EFFECTIVEMIN),
+ OPropertyInfoImpl(PROPERTY_EFFECTIVE_MAX, PROPERTY_ID_EFFECTIVE_MAX, sal_False, String(ModuleRes(RID_STR_VALUEMAX)), nPos++, HID_PROP_EFFECTIVEMAX),
+ OPropertyInfoImpl(PROPERTY_EFFECTIVE_DEFAULT, PROPERTY_ID_EFFECTIVE_DEFAULT, sal_False, String(ModuleRes(RID_STR_DEFAULTVALUE)), nPos++, HID_PROP_EFFECTIVEDEFAULT),
+ OPropertyInfoImpl(PROPERTY_FORMATKEY, PROPERTY_ID_FORMATKEY, sal_True, String(ModuleRes(RID_STR_FORMATKEY)), nPos++, HID_PROP_FORMATKEY),
+
+ OPropertyInfoImpl(PROPERTY_CLASSID, PROPERTY_ID_CLASSID, sal_False, String(ModuleRes(RID_STR_CLASSID)), nPos++, HID_PROP_CLASSID),
+ OPropertyInfoImpl(PROPERTY_HEIGHT, PROPERTY_ID_HEIGHT, sal_True, String(ModuleRes(RID_STR_HEIGHT)), nPos++, HID_PROP_HEIGHT),
+ OPropertyInfoImpl(PROPERTY_WIDTH, PROPERTY_ID_WIDTH, sal_True, String(ModuleRes(RID_STR_WIDTH)), nPos++, HID_PROP_WIDTH),
+ OPropertyInfoImpl(PROPERTY_BOUNDCOLUMN, PROPERTY_ID_BOUNDCOLUMN, sal_True, String(ModuleRes(RID_STR_BOUNDCOLUMN)), nPos++, HID_PROP_BOUNDCOLUMN),
+ OPropertyInfoImpl(PROPERTY_LISTSOURCETYPE, PROPERTY_ID_LISTSOURCETYPE, sal_True, String(ModuleRes(RID_STR_LISTSOURCETYPE)), nPos++, HID_PROP_LISTSOURCETYPE),
+ OPropertyInfoImpl(PROPERTY_LISTSOURCE, PROPERTY_ID_LISTSOURCE, sal_True, String(ModuleRes(RID_STR_LISTSOURCE)), nPos++, HID_PROP_LISTSOURCE),
+ OPropertyInfoImpl(PROPERTY_LISTINDEX, PROPERTY_ID_LISTINDEX, sal_True, String(ModuleRes(RID_STR_LISTINDEX)), nPos++, HID_PROP_LISTINDEX),
+ OPropertyInfoImpl(PROPERTY_STRINGITEMLIST, PROPERTY_ID_STRINGITEMLIST, sal_True, String(ModuleRes(RID_STR_STRINGITEMLIST)), nPos++, HID_PROP_STRINGITEMLIST),
+ OPropertyInfoImpl(PROPERTY_DEFAULT_TEXT, PROPERTY_ID_DEFAULT_TEXT, sal_True, String(ModuleRes(RID_STR_DEFAULTVALUE)), nPos++, HID_PROP_DEFAULTVALUE ),
+ OPropertyInfoImpl(PROPERTY_FONT_NAME, PROPERTY_ID_FONT_NAME, sal_True, String(ModuleRes(RID_STR_FONT)), nPos++, HID_PROP_FONT),
+ OPropertyInfoImpl(PROPERTY_ALIGN, PROPERTY_ID_ALIGN, sal_True, String(ModuleRes(RID_STR_ALIGN)), nPos++, HID_PROP_ALIGN),
+ OPropertyInfoImpl(PROPERTY_ROWHEIGHT, PROPERTY_ID_ROWHEIGHT, sal_True, String(ModuleRes(RID_STR_ROWHEIGHT)), nPos++, HID_PROP_ROWHEIGHT),
+ OPropertyInfoImpl(PROPERTY_BACKGROUNDCOLOR, PROPERTY_ID_BACKGROUNDCOLOR, sal_True, String(ModuleRes(RID_STR_BACKGROUNDCOLOR)), nPos++, HID_PROP_BACKGROUNDCOLOR),
+ OPropertyInfoImpl(PROPERTY_FILLCOLOR, PROPERTY_ID_FILLCOLOR, sal_True, String(ModuleRes(RID_STR_FILLCOLOR)), nPos++, HID_PROP_FILLCOLOR),
+ OPropertyInfoImpl(PROPERTY_LINECOLOR, PROPERTY_ID_LINECOLOR, sal_True, String(ModuleRes(RID_STR_LINECOLOR)), nPos++, HID_PROP_LINECOLOR),
+ OPropertyInfoImpl(PROPERTY_BORDER, PROPERTY_ID_BORDER, sal_True, String(ModuleRes(RID_STR_BORDER)), nPos++, HID_PROP_BORDER),
+ OPropertyInfoImpl(PROPERTY_DROPDOWN, PROPERTY_ID_DROPDOWN, sal_True, String(ModuleRes(RID_STR_DROPDOWN)), nPos++, HID_PROP_DROPDOWN),
+ OPropertyInfoImpl(PROPERTY_AUTOCOMPLETE, PROPERTY_ID_AUTOCOMPLETE, sal_True, String(ModuleRes(RID_STR_AUTOCOMPLETE)), nPos++, HID_PROP_AUTOCOMPLETE),
+ OPropertyInfoImpl(PROPERTY_LINECOUNT, PROPERTY_ID_LINECOUNT, sal_True, String(ModuleRes(RID_STR_LINECOUNT)), nPos++, HID_PROP_LINECOUNT),
+ OPropertyInfoImpl(PROPERTY_MULTI, PROPERTY_ID_MULTI, sal_True, String(ModuleRes(RID_STR_MULTILINE)), nPos++, HID_PROP_MULTILINE),
+ OPropertyInfoImpl(PROPERTY_MULTILINE, PROPERTY_ID_MULTILINE, sal_True, String(ModuleRes(RID_STR_MULTILINE)), nPos++, HID_PROP_MULTILINE),
+ OPropertyInfoImpl(PROPERTY_MULTISELECTION, PROPERTY_ID_MULTISELECTION, sal_True, String(ModuleRes(RID_STR_MULTISELECTION)), nPos++, HID_PROP_MULTISELECTION),
+ OPropertyInfoImpl(PROPERTY_HARDLINEBREAKS, PROPERTY_ID_HARDLINEBREAKS, sal_True, String(ModuleRes(RID_STR_HARDLINEBREAKS)), nPos++, HID_PROP_HARDLINEBREAKS),
+ OPropertyInfoImpl(PROPERTY_HSCROLL, PROPERTY_ID_HSCROLL, sal_True, String(ModuleRes(RID_STR_HSCROLL)), nPos++, HID_PROP_HSCROLL),
+ OPropertyInfoImpl(PROPERTY_VSCROLL, PROPERTY_ID_VSCROLL, sal_True, String(ModuleRes(RID_STR_VSCROLL)), nPos++, HID_PROP_VSCROLL),
+ OPropertyInfoImpl(PROPERTY_SPIN, PROPERTY_ID_SPIN, sal_True, String(ModuleRes(RID_STR_SPIN)), nPos++, HID_PROP_SPIN),
+ OPropertyInfoImpl(PROPERTY_BUTTONTYPE, PROPERTY_ID_BUTTONTYPE, sal_True, String(ModuleRes(RID_STR_BUTTONTYPE)), nPos++, HID_PROP_BUTTONTYPE),
+ OPropertyInfoImpl(PROPERTY_TARGET_URL, PROPERTY_ID_TARGET_URL, sal_True, String(ModuleRes(RID_STR_TARGET_URL)), nPos++, HID_PROP_TARGET_URL ),
+ OPropertyInfoImpl(PROPERTY_TARGET_FRAME, PROPERTY_ID_TARGET_FRAME, sal_True, String(ModuleRes(RID_STR_TARGET_FRAME)), nPos++, HID_PROP_TARGET_FRAME ),
+ OPropertyInfoImpl(PROPERTY_SUBMIT_ACTION, PROPERTY_ID_SUBMIT_ACTION, sal_True, String(ModuleRes(RID_STR_SUBMIT_ACTION)), nPos++, HID_PROP_SUBMIT_ACTION ),
+ OPropertyInfoImpl(PROPERTY_SUBMIT_TARGET, PROPERTY_ID_SUBMIT_TARGET, sal_True, String(ModuleRes(RID_STR_SUBMIT_TARGET)), nPos++, HID_PROP_SUBMIT_TARGET ),
+ OPropertyInfoImpl(PROPERTY_SUBMIT_METHOD, PROPERTY_ID_SUBMIT_METHOD, sal_True, String(ModuleRes(RID_STR_SUBMIT_METHOD)), nPos++, HID_PROP_SUBMIT_METHOD ),
+ OPropertyInfoImpl(PROPERTY_SUBMIT_ENCODING, PROPERTY_ID_SUBMIT_ENCODING, sal_True, String(ModuleRes(RID_STR_SUBMIT_ENCODING)), nPos++, HID_PROP_SUBMIT_ENCODING ),
+ OPropertyInfoImpl(PROPERTY_DEFAULTCHECKED, PROPERTY_ID_DEFAULT_CHECKED, sal_True, String(ModuleRes(RID_STR_DEFAULT_CHECKED)), nPos++, HID_PROP_DEFAULT_CHECKED ),
+ OPropertyInfoImpl(PROPERTY_DEFAULTBUTTON, PROPERTY_ID_DEFAULT_BUTTON, sal_True, String(ModuleRes(RID_STR_DEFAULT_BUTTON)), nPos++, HID_PROP_DEFAULT_BUTTON ),
+ OPropertyInfoImpl(PROPERTY_IMAGE_URL, PROPERTY_ID_IMAGE_URL, sal_True, String(ModuleRes(RID_STR_IMAGE_URL)), nPos++, HID_PROP_IMAGE_URL ),
+ OPropertyInfoImpl(PROPERTY_DEFAULT_SELECT_SEQ, PROPERTY_ID_DEFAULT_SELECT_SEQ, sal_True, String(ModuleRes(RID_STR_DEFAULT_SELECT_SEQ)),nPos++, HID_PROP_DEFAULT_SELECT_SEQ ),
+ OPropertyInfoImpl(PROPERTY_ECHO_CHAR, PROPERTY_ID_ECHO_CHAR, sal_True, String(ModuleRes(RID_STR_ECHO_CHAR)), nPos++, HID_PROP_ECHO_CHAR ),
+ OPropertyInfoImpl(PROPERTY_EMPTY_IS_NULL, PROPERTY_ID_EMPTY_IS_NULL, sal_True, String(ModuleRes(RID_STR_EMPTY_IS_NULL)), nPos++, HID_PROP_EMPTY_IS_NULL ),
+ OPropertyInfoImpl(PROPERTY_TRISTATE, PROPERTY_ID_TRISTATE , sal_True, String(ModuleRes(RID_STR_TRISTATE)), nPos++, HID_PROP_TRISTATE ),
+ OPropertyInfoImpl(PROPERTY_MASTERFIELDS, PROPERTY_ID_MASTERFIELDS, sal_True, String(ModuleRes(RID_STR_MASTERFIELDS)), nPos++, HID_PROP_MASTERFIELDS) ,
+ OPropertyInfoImpl(PROPERTY_DETAILFIELDS, PROPERTY_ID_DETAILFIELDS, sal_True, String(ModuleRes(RID_STR_SLAVEFIELDS)), nPos++, HID_PROP_SLAVEFIELDS),
+ OPropertyInfoImpl(PROPERTY_HASNAVIGATION, PROPERTY_ID_HASNAVIGATION, sal_True, String(ModuleRes(RID_STR_NAVIGATIONBAR)), nPos++, HID_PROP_NAVIGATIONBAR) ,
+ OPropertyInfoImpl(PROPERTY_RECORDMARKER, PROPERTY_ID_RECORDMARKER, sal_True, String(ModuleRes(RID_STR_RECORDMARKER)), nPos++, HID_PROP_RECORDMARKER) ,
+ OPropertyInfoImpl(PROPERTY_FILTERPROPOSAL, PROPERTY_ID_FILTERPROPOSAL, sal_True, String(ModuleRes(RID_STR_FILTERPROPOSAL)), nPos++, HID_PROP_FILTERPROPOSAL) ,
+ OPropertyInfoImpl(PROPERTY_TAG, PROPERTY_ID_TAG, sal_True, String(ModuleRes(RID_STR_TAG)), nPos++, HID_PROP_TAG ),
+ OPropertyInfoImpl(PROPERTY_HELPTEXT, PROPERTY_ID_HELPTEXT, sal_False, String(ModuleRes(RID_STR_HELPTEXT)), nPos++, HID_PROP_HELPTEXT),
+ OPropertyInfoImpl(PROPERTY_HELPURL, PROPERTY_ID_HELPURL, sal_False, String(ModuleRes(RID_STR_HELPURL)), nPos++, HID_PROP_HELPURL)
+ };
+
+ s_pPropertyInfos = const_cast<OPropertyInfoImpl*>(aPropertyInfos);
+ s_nCount = sizeof(aPropertyInfos) / sizeof(OPropertyInfoImpl);
+
+ // sort
+ qsort((void*) aPropertyInfos,
+ s_nCount,
+ sizeof(OPropertyInfoImpl),
+ &PropertyInfoCompare);
+
+ }
+ return s_pPropertyInfos;
+ }
+
+ //------------------------------------------------------------------------
+ sal_Int32 OFormPropertyInfoService::getPropertyId(const String& _rName) const
+ {
+ const OPropertyInfoImpl* pInfo = getPropertyInfo(_rName);
+ return pInfo ? pInfo->nId : -1;
+ }
+
+ //------------------------------------------------------------------------
+ String OFormPropertyInfoService::getPropertyTranslation(sal_Int32 _nId) const
+ {
+ const OPropertyInfoImpl* pInfo = getPropertyInfo(_nId);
+ return (pInfo) ? pInfo->sTranslation : String();
+ }
+
+ //------------------------------------------------------------------------
+ sal_Int32 OFormPropertyInfoService::getPropertyHelpId(sal_Int32 _nId) const
+ {
+ const OPropertyInfoImpl* pInfo = getPropertyInfo(_nId);
+ return (pInfo) ? pInfo->nHelpId : 0;
+ }
+
+ //------------------------------------------------------------------------
+ sal_Int16 OFormPropertyInfoService::getPropertyPos(sal_Int32 _nId) const
+ {
+ const OPropertyInfoImpl* pInfo = getPropertyInfo(_nId);
+ return (pInfo) ? pInfo->nPos : 0xFFFF;
+ }
+
+ //------------------------------------------------------------------------
+ sal_Bool OFormPropertyInfoService::getPropertyMultiFlag(sal_Int32 _nId) const
+ {
+ const OPropertyInfoImpl* pInfo = getPropertyInfo(_nId);
+ return (pInfo) ? pInfo->bMultiSelectable : sal_False;
+ }
+
+ //------------------------------------------------------------------------
+ Sequence< ::rtl::OUString > OFormPropertyInfoService::getPropertyEnumRepresentations(sal_Int32 _nId) const
+ {
+ String sSeparatedList;
+ switch (_nId)
+ {
+ case PROPERTY_ID_BORDER:
+ sSeparatedList = String(ModuleRes(RID_STR_BORDER_TYPE));
+ break;
+ case PROPERTY_ID_COMMANDTYPE:
+ sSeparatedList = String(ModuleRes(RID_STR_COMMAND_TYPE));
+ break;
+ case PROPERTY_ID_LISTSOURCETYPE:
+ sSeparatedList = String(ModuleRes(RID_STR_LISTSOURCE_TYPE));
+ break;
+ case PROPERTY_ID_ALIGN:
+ sSeparatedList = String(ModuleRes(RID_STR_ALIGNMENT));
+ break;
+ case PROPERTY_ID_BUTTONTYPE:
+ sSeparatedList = String(ModuleRes(RID_STR_ENUM_BUTTONTYPE));
+ break;
+ case PROPERTY_ID_SUBMIT_METHOD:
+ sSeparatedList = String(ModuleRes(RID_STR_ENUM_SUBMIT_METHOD));
+ break;
+ case PROPERTY_ID_SUBMIT_ENCODING:
+ sSeparatedList = String(ModuleRes(RID_STR_ENUM_SUBMIT_ENCODING));
+ break;
+ case PROPERTY_ID_DATEFORMAT:
+ sSeparatedList = String(ModuleRes(RID_STR_DATEFORMAT_LIST));
+ break;
+ case PROPERTY_ID_TIMEFORMAT:
+ sSeparatedList = String(ModuleRes(RID_STR_TIMEFORMAT_LIST));
+ break;
+ case PROPERTY_ID_DEFAULT_CHECKED:
+ sSeparatedList = String(ModuleRes(RID_STR_ENUM_CHECKED));
+ break;
+ case PROPERTY_ID_CYCLE:
+ sSeparatedList = String(ModuleRes(RID_STR_ENUM_CYCLE));
+ break;
+ case PROPERTY_ID_NAVIGATION:
+ sSeparatedList = String(ModuleRes(RID_STR_ENUM_NAVIGATION));
+ break;
+ }
+
+ sal_Int32 nTokens = sSeparatedList.GetTokenCount(';');
+ Sequence< ::rtl::OUString > aReturn(nTokens);
+ ::rtl::OUString* pReturn = aReturn.getArray();
+ for (sal_Int32 i=0; i<nTokens; ++i, ++pReturn)
+ *pReturn = sSeparatedList.GetToken((sal_uInt16)i);
+
+ return aReturn;
+ }
+
+ //------------------------------------------------------------------------
+ const OPropertyInfoImpl* OFormPropertyInfoService::getPropertyInfo(const String& _rName)
+ {
+ // intialisierung
+ if(!s_pPropertyInfos)
+ getPropertyInfo();
+ OPropertyInfoImpl aSearch(_rName, 0L, sal_False, String(), 0, 0);
+
+ const OPropertyInfoImpl* pPropInfo = (OPropertyInfoImpl*) bsearch(&aSearch,
+ static_cast<void*>(s_pPropertyInfos),
+ s_nCount,
+ sizeof(OPropertyInfoImpl),
+ &PropertyInfoCompare);
+
+ return pPropInfo;
+ }
+
+
+ //------------------------------------------------------------------------
+ const OPropertyInfoImpl* OFormPropertyInfoService::getPropertyInfo(sal_Int32 _nId)
+ {
+ // intialisierung
+ if(!s_pPropertyInfos)
+ getPropertyInfo();
+
+ // TODO: a real structure which allows quick access by name as well as by id
+ for (sal_uInt16 i = 0; i < s_nCount; i++)
+ if (s_pPropertyInfos[i].nId == _nId)
+ return &s_pPropertyInfos[i];
+
+ return NULL;
+ }
+
+ //========================================================================
+ //= event meta data handling
+ //========================================================================
+ //------------------------------------------------------------------------
+ // Vergleichen von PropertyInfo
+ static int
+ #if defined( WNT )
+ __cdecl
+ #endif
+ #if defined( ICC ) && defined( OS2 )
+ _Optlink
+ #endif
+ EventDisplayDescriptionCompareByName(const void* pFirst, const void* pSecond)
+ {
+ return
+ static_cast<const EventDisplayDescription*>(pFirst)->sName.compareTo(
+ static_cast<const EventDisplayDescription*>(pSecond)->sName);
+ }
+
+ //------------------------------------------------------------------------
+ EventDisplayDescription* GetEvtTranslation(const ::rtl::OUString& rName)
+ {
+ static EventDisplayDescription* s_pEventTranslation = NULL;
+ static sal_Int32 nCount = 0;
+ if (!s_pEventTranslation)
+ {
+ static EventDisplayDescription __READONLY_DATA aEventDisplayDescriptions[] =
+ {
+ EventDisplayDescription(nCount++,::rtl::OUString::createFromAscii("approveAction"), String(ModuleRes(RID_STR_EVT_APPROVEACTIONPERFORMED)),HID_EVT_APPROVEACTIONPERFORMED),
+ EventDisplayDescription(nCount++,::rtl::OUString::createFromAscii("actionPerformed"), String(ModuleRes(RID_STR_EVT_ACTIONPERFORMED)), HID_EVT_ACTIONPERFORMED),
+ EventDisplayDescription(nCount++,::rtl::OUString::createFromAscii("changed"), String(ModuleRes(RID_STR_EVT_CHANGED)), HID_EVT_CHANGED),
+ EventDisplayDescription(nCount++,::rtl::OUString::createFromAscii("textChanged"), String(ModuleRes(RID_STR_EVT_TEXTCHANGED)), HID_EVT_TEXTCHANGED),
+ EventDisplayDescription(nCount++,::rtl::OUString::createFromAscii("itemStateChanged"), String(ModuleRes(RID_STR_EVT_ITEMSTATECHANGED)), HID_EVT_ITEMSTATECHANGED),
+ EventDisplayDescription(nCount++,::rtl::OUString::createFromAscii("focusGained"), String(ModuleRes(RID_STR_EVT_FOCUSGAINED)), HID_EVT_FOCUSGAINED),
+ EventDisplayDescription(nCount++,::rtl::OUString::createFromAscii("focusLost"), String(ModuleRes(RID_STR_EVT_FOCUSLOST)), HID_EVT_FOCUSLOST),
+ EventDisplayDescription(nCount++,::rtl::OUString::createFromAscii("keyPressed"), String(ModuleRes(RID_STR_EVT_KEYTYPED)), HID_EVT_KEYTYPED),
+ EventDisplayDescription(nCount++,::rtl::OUString::createFromAscii("keyReleased"), String(ModuleRes(RID_STR_EVT_KEYUP)), HID_EVT_KEYUP),
+ EventDisplayDescription(nCount++,::rtl::OUString::createFromAscii("mouseEntered"), String(ModuleRes(RID_STR_EVT_MOUSEENTERED)), HID_EVT_MOUSEENTERED),
+ EventDisplayDescription(nCount++,::rtl::OUString::createFromAscii("mouseDragged"), String(ModuleRes(RID_STR_EVT_MOUSEDRAGGED)), HID_EVT_MOUSEDRAGGED),
+ EventDisplayDescription(nCount++,::rtl::OUString::createFromAscii("mouseMoved"), String(ModuleRes(RID_STR_EVT_MOUSEMOVED)), HID_EVT_MOUSEMOVED),
+ EventDisplayDescription(nCount++,::rtl::OUString::createFromAscii("mousePressed"), String(ModuleRes(RID_STR_EVT_MOUSEPRESSED)), HID_EVT_MOUSEPRESSED),
+ EventDisplayDescription(nCount++,::rtl::OUString::createFromAscii("mouseReleased"), String(ModuleRes(RID_STR_EVT_MOUSERELEASED)), HID_EVT_MOUSERELEASED),
+ EventDisplayDescription(nCount++,::rtl::OUString::createFromAscii("mouseExited"), String(ModuleRes(RID_STR_EVT_MOUSEEXITED)), HID_EVT_MOUSEEXITED),
+ EventDisplayDescription(nCount++,::rtl::OUString::createFromAscii("approveReset"), String(ModuleRes(RID_STR_EVT_APPROVERESETTED)), HID_EVT_APPROVERESETTED),
+ EventDisplayDescription(nCount++,::rtl::OUString::createFromAscii("resetted"), String(ModuleRes(RID_STR_EVT_RESETTED)), HID_EVT_RESETTED),
+ EventDisplayDescription(nCount++,::rtl::OUString::createFromAscii("approveSubmit"), String(ModuleRes(RID_STR_EVT_SUBMITTED)), HID_EVT_SUBMITTED),
+ EventDisplayDescription(nCount++,::rtl::OUString::createFromAscii("approveUpdate"), String(ModuleRes(RID_STR_EVT_BEFOREUPDATE)), HID_EVT_BEFOREUPDATE),
+ EventDisplayDescription(nCount++,::rtl::OUString::createFromAscii("updated"), String(ModuleRes(RID_STR_EVT_AFTERUPDATE)), HID_EVT_AFTERUPDATE),
+ EventDisplayDescription(nCount++,::rtl::OUString::createFromAscii("loaded"), String(ModuleRes(RID_STR_EVT_LOADED)), HID_EVT_LOADED),
+ EventDisplayDescription(nCount++,::rtl::OUString::createFromAscii("reloading"), String(ModuleRes(RID_STR_EVT_RELOADING)), HID_EVT_RELOADING),
+ EventDisplayDescription(nCount++,::rtl::OUString::createFromAscii("reloaded"), String(ModuleRes(RID_STR_EVT_RELOADED)), HID_EVT_RELOADED),
+ EventDisplayDescription(nCount++,::rtl::OUString::createFromAscii("unloading"), String(ModuleRes(RID_STR_EVT_UNLOADING)), HID_EVT_UNLOADING),
+ EventDisplayDescription(nCount++,::rtl::OUString::createFromAscii("unloaded"), String(ModuleRes(RID_STR_EVT_UNLOADED)), HID_EVT_UNLOADED),
+ EventDisplayDescription(nCount++,::rtl::OUString::createFromAscii("confirmDelete"), String(ModuleRes(RID_STR_EVT_CONFIRMDELETE)), HID_EVT_CONFIRMDELETE),
+ EventDisplayDescription(nCount++,::rtl::OUString::createFromAscii("approveRowChange"), String(ModuleRes(RID_STR_EVT_APPROVEROWCHANGE)), HID_EVT_APPROVEROWCHANGE),
+ EventDisplayDescription(nCount++,::rtl::OUString::createFromAscii("rowChanged"), String(ModuleRes(RID_STR_EVT_ROWCHANGE)), HID_EVT_ROWCHANGE),
+ EventDisplayDescription(nCount++,::rtl::OUString::createFromAscii("approveCursorMove"), String(ModuleRes(RID_STR_EVT_POSITIONING)), HID_EVT_POSITIONING),
+ EventDisplayDescription(nCount++,::rtl::OUString::createFromAscii("cursorMoved"), String(ModuleRes(RID_STR_EVT_POSITIONED)), HID_EVT_POSITIONED),
+ EventDisplayDescription(nCount++,::rtl::OUString::createFromAscii("approveParameter"), String(ModuleRes(RID_STR_EVT_APPROVEPARAMETER)), HID_EVT_APPROVEPARAMETER),
+ EventDisplayDescription(nCount++,::rtl::OUString::createFromAscii("errorOccured"), String(ModuleRes(RID_STR_EVT_ERROROCCURED)), HID_EVT_ERROROCCURED)
+ };
+ s_pEventTranslation = const_cast<EventDisplayDescription*>(aEventDisplayDescriptions);
+ nCount = sizeof(aEventDisplayDescriptions) / sizeof(EventDisplayDescription);
+
+ qsort(static_cast<void*>(s_pEventTranslation),
+ nCount,
+ sizeof(EventDisplayDescription),
+ &EventDisplayDescriptionCompareByName);
+ }
+
+ EventDisplayDescription aSearch(0, rName, String(), 0);
+ return static_cast<EventDisplayDescription*>(bsearch(
+ &aSearch,
+ static_cast<void*>(s_pEventTranslation),
+ nCount,
+ sizeof(EventDisplayDescription),
+ &EventDisplayDescriptionCompareByName
+ ));
+ }
+
+//............................................................................
+} // namespace pcr
+//............................................................................
+
+/*************************************************************************
+ * history:
+ * $Log: not supported by cvs2svn $
+ *
+ * Revision 1.0 09.01.01 15:35:18 fs
+ ************************************************************************/
+
diff --git a/extensions/source/propctrlr/formmetadata.hxx b/extensions/source/propctrlr/formmetadata.hxx
new file mode 100644
index 000000000..c7e21d374
--- /dev/null
+++ b/extensions/source/propctrlr/formmetadata.hxx
@@ -0,0 +1,245 @@
+/*************************************************************************
+ *
+ * $RCSfile: formmetadata.hxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: fs $ $Date: 2001-01-12 11:28:36 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (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.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc..
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#ifndef _EXTENSIONS_PROPCTRLR_FORMMETADATA_HXX_
+#define _EXTENSIONS_PROPCTRLR_FORMMETADATA_HXX_
+
+#ifndef _EXTENSIONS_PROPCTRLR_PROPERTYINFO_HXX_
+#include "propertyinfo.hxx"
+#endif
+#ifndef _EXTENSIONS_PROPCTRLR_MODULEPRC_HXX_
+#include "modulepcr.hxx"
+#endif
+
+//............................................................................
+namespace pcr
+{
+//............................................................................
+
+ struct OPropertyInfoImpl;
+
+ //========================================================================
+ //= OFormPropertyInfoService
+ //========================================================================
+ class OFormPropertyInfoService
+ :public IPropertyInfoService
+ ,public OModuleResourceClient
+ {
+ protected:
+ static sal_uInt16 s_nCount;
+ static OPropertyInfoImpl* s_pPropertyInfos;
+ // TODO: a real structure which allows quick access by name as well as by id
+
+ public:
+ sal_Int32 getPropertyId(const String& _rName) const;
+ String getPropertyTranslation(sal_Int32 _nId) const;
+ sal_Int32 getPropertyHelpId(sal_Int32 _nId) const;
+ sal_Int16 getPropertyPos(sal_Int32 _nId) const;
+ sal_Bool getPropertyMultiFlag(sal_Int32 _nId) const;
+ virtual ::com::sun::star::uno::Sequence< ::rtl::OUString >
+ getPropertyEnumRepresentations(sal_Int32 _nId) const;
+
+ protected:
+ static const OPropertyInfoImpl* getPropertyInfo();
+
+ static const OPropertyInfoImpl* getPropertyInfo(const String& _rName);
+ static const OPropertyInfoImpl* getPropertyInfo(sal_Int32 _nId);
+ };
+
+ //========================================================================
+ //= event description
+ //========================================================================
+ class EventDisplayDescription
+ {
+ public:
+ ::rtl::OUString sName;
+ String sDisplayName;
+ sal_Int32 nHelpId;
+ sal_Int32 nIndex;
+
+ EventDisplayDescription(sal_Int32 _nId, const ::rtl::OUString& _rName, const UniString& _rDisplayName, sal_Int32 _nHelpId)
+ :nIndex(_nId)
+ ,sName(_rName)
+ ,sDisplayName(_rDisplayName)
+ ,nHelpId(_nHelpId)
+ {
+ }
+ };
+
+ //========================================================================
+ //= event helpers
+ //========================================================================
+ EventDisplayDescription* GetEvtTranslation(const ::rtl::OUString& _rName);
+
+ //========================================================================
+ //= property ids (for all browseable properties)
+ //========================================================================
+
+ #define PROPERTY_ID_NAME 1
+ #define PROPERTY_ID_LABEL 2
+ #define PROPERTY_ID_CONTROLLABEL 3
+ #define PROPERTY_ID_MAXTEXTLEN 4
+ #define PROPERTY_ID_EDITMASK 5
+ #define PROPERTY_ID_LITERALMASK 6
+ #define PROPERTY_ID_STRICTFORMAT 7
+ #define PROPERTY_ID_ENABLED 8
+ #define PROPERTY_ID_READONLY 9
+ #define PROPERTY_ID_PRINTABLE 10
+ #define PROPERTY_ID_CONTROLSOURCE 11
+ #define PROPERTY_ID_TABSTOP 12
+ #define PROPERTY_ID_TABINDEX 13
+ #define PROPERTY_ID_DATASOURCE 14
+ #define PROPERTY_ID_COMMAND 15
+ #define PROPERTY_ID_COMMANDTYPE 16
+ #define PROPERTY_ID_FILTER_CRITERIA 17
+ #define PROPERTY_ID_SORT 18
+ #define PROPERTY_ID_INSERTONLY 19
+ #define PROPERTY_ID_ALLOWADDITIONS 20
+ #define PROPERTY_ID_ALLOWEDITS 21
+ #define PROPERTY_ID_ALLOWDELETIONS 22
+ #define PROPERTY_ID_NAVIGATION 24
+ #define PROPERTY_ID_CYCLE 25
+ #define PROPERTY_ID_HIDDEN_VALUE 26
+ #define PROPERTY_ID_VALUEMIN 27
+ #define PROPERTY_ID_VALUEMAX 28
+ #define PROPERTY_ID_VALUESTEP 29
+ #define PROPERTY_ID_DEFAULT_VALUE 30
+ #define PROPERTY_ID_DECIMAL_ACCURACY 31
+ #define PROPERTY_ID_SHOWTHOUSANDSEP 32
+ #define PROPERTY_ID_REFVALUE 33
+ #define PROPERTY_ID_CURRENCYSYMBOL 34
+ #define PROPERTY_ID_CURRSYM_POSITION 35
+ #define PROPERTY_ID_DATEMIN 36
+ #define PROPERTY_ID_DATEMAX 37
+ #define PROPERTY_ID_DATEFORMAT 38
+ #define PROPERTY_ID_DATE_SHOW_CENTURY 39
+ #define PROPERTY_ID_DEFAULT_DATE 40
+ #define PROPERTY_ID_TIMEMIN 41
+ #define PROPERTY_ID_TIMEMAX 42
+ #define PROPERTY_ID_TIMEFORMAT 43
+ #define PROPERTY_ID_DEFAULT_TIME 44
+ #define PROPERTY_ID_EFFECTIVE_MIN 45
+ #define PROPERTY_ID_EFFECTIVE_MAX 46
+ #define PROPERTY_ID_EFFECTIVE_DEFAULT 47
+ #define PROPERTY_ID_FORMATKEY 48
+ #define PROPERTY_ID_CLASSID 50
+ #define PROPERTY_ID_HEIGHT 51
+ #define PROPERTY_ID_WIDTH 52
+ #define PROPERTY_ID_BOUNDCOLUMN 53
+ #define PROPERTY_ID_LISTSOURCETYPE 54
+ #define PROPERTY_ID_LISTSOURCE 55
+ #define PROPERTY_ID_LISTINDEX 56
+ #define PROPERTY_ID_STRINGITEMLIST 57
+ #define PROPERTY_ID_DEFAULT_TEXT 58
+ #define PROPERTY_ID_FONT_NAME 59
+ #define PROPERTY_ID_ALIGN 60
+ #define PROPERTY_ID_ROWHEIGHT 61
+ #define PROPERTY_ID_BACKGROUNDCOLOR 62
+ #define PROPERTY_ID_FILLCOLOR 63
+ #define PROPERTY_ID_ESCAPE_PROCESSING 64
+ #define PROPERTY_ID_LINECOLOR 65
+ #define PROPERTY_ID_BORDER 66
+ #define PROPERTY_ID_DROPDOWN 67
+ #define PROPERTY_ID_AUTOCOMPLETE 68
+ #define PROPERTY_ID_LINECOUNT 69
+ #define PROPERTY_ID_MULTI 70
+ #define PROPERTY_ID_MULTILINE 71
+ #define PROPERTY_ID_MULTISELECTION 72
+ #define PROPERTY_ID_HARDLINEBREAKS 73
+ #define PROPERTY_ID_HSCROLL 74
+ #define PROPERTY_ID_VSCROLL 75
+ #define PROPERTY_ID_SPIN 76
+ #define PROPERTY_ID_BUTTONTYPE 77
+ #define PROPERTY_ID_TARGET_URL 78
+ #define PROPERTY_ID_TARGET_FRAME 79
+ #define PROPERTY_ID_SUBMIT_ACTION 80
+ #define PROPERTY_ID_SUBMIT_TARGET 81
+ #define PROPERTY_ID_SUBMIT_METHOD 82
+ #define PROPERTY_ID_SUBMIT_ENCODING 83
+ #define PROPERTY_ID_DEFAULT_CHECKED 84
+ #define PROPERTY_ID_DEFAULT_BUTTON 85
+ #define PROPERTY_ID_IMAGE_URL 86
+ #define PROPERTY_ID_DEFAULT_SELECT_SEQ 87
+ #define PROPERTY_ID_ECHO_CHAR 88
+ #define PROPERTY_ID_EMPTY_IS_NULL 89
+ #define PROPERTY_ID_TRISTATE 90
+ #define PROPERTY_ID_MASTERFIELDS 91
+ #define PROPERTY_ID_DETAILFIELDS 92
+ #define PROPERTY_ID_HASNAVIGATION 93
+ #define PROPERTY_ID_RECORDMARKER 94
+ #define PROPERTY_ID_FILTERPROPOSAL 95
+ #define PROPERTY_ID_TAG 96
+ #define PROPERTY_ID_HELPTEXT 97
+ #define PROPERTY_ID_HELPURL 98
+
+//............................................................................
+} // namespace pcr
+//............................................................................
+
+#endif // _EXTENSIONS_PROPCTRLR_FORMMETADATA_HXX_
+
+/*************************************************************************
+ * history:
+ * $Log: not supported by cvs2svn $
+ *
+ * Revision 1.0 08.01.01 12:09:11 fs
+ ************************************************************************/
+
diff --git a/extensions/source/propctrlr/formres.src b/extensions/source/propctrlr/formres.src
new file mode 100644
index 000000000..3c61ec852
--- /dev/null
+++ b/extensions/source/propctrlr/formres.src
@@ -0,0 +1,3829 @@
+/*************************************************************************
+ *
+ * $RCSfile: formres.src,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: fs $ $Date: 2001-01-12 11:28:49 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (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.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc..
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#ifndef _EXTENSIONS_PROPCTRLR_PROPRESID_HRC_
+#include "formresid.hrc"
+#endif
+
+String RID_STR_FORMS
+{
+ Text = "Formulare" ;
+ Text [ English ] = "Forms" ;
+ Text [ portuguese ] = "Formulários" ;
+ Text [ english_us ] = "Forms" ;
+ Text [ portuguese_brazilian ] = "Formulare" ;
+ Text [ swedish ] = "Formulär" ;
+ Text [ danish ] = "Formularer" ;
+ Text [ italian ] = "Formulari" ;
+ Text [ spanish ] = "Formularios" ;
+ Text [ french ] = "Formulaires" ;
+ Text [ dutch ] = "Formulieren" ;
+ Text[ chinese_simplified ] = "±íµ¥";
+ Text[ russian ] = "Ôîðìóëÿðû";
+ Text[ polish ] = "Formularze";
+ Text[ japanese ] = "Ì«°Ñ";
+ Text[ chinese_traditional ] = "ªí³æ";
+ Text[ greek ] = "Öüñìåò";
+ Text[ korean ] = "¾ç½Ä";
+ Text[ arabic ] = "ÇÓÊãÇÑÇÊ";
+ Text[ turkish ] = "Formlar";
+ Text[ language_user1 ] = " ";
+};
+
+ModalDialog RID_DLG_SELECTLABELCONTROL
+{
+ OutputSize = TRUE;
+ Size = MAP_APPFONT( 200, 143 );
+ Text = "Auswahl Beschriftungsfeld";
+ Text [ ENGLISH ] = "Label field selection";
+ Moveable = TRUE;
+ Closeable = TRUE;
+ FixedText 1
+ {
+ Pos = MAP_APPFONT( 6, 6 );
+ Size = MAP_APPFONT( 188, 20 );
+ Text = "Dies sind alle Kontrollfelder, die dem $control_class$ $control_name$ als Beschriftungsfeld zugeordnet werden können.";
+ Text [ ENGLISH ] = "This are all controls which may be used as label field for the $control_class$ $control_name$.";
+ WordBreak = TRUE;
+ Text[ english_us ] = "These are all control fields which may be used as label fields for the $control_class$ $control_name$.";
+ Text[ portuguese ] = "Estes são todos os campos de controlo que podem ser atribuídos a $control_class$ $control_name$ como campos de rótulos.";
+ Text[ russian ] = "Ýòî âñå ýëåìåíòû óïðàâëåíèÿ, êîòîðûå ìîãóò áûòü èñïîëüçîâàíû êàê ïîëÿ ïîäïèñåé äëÿ $control_class$ $control_name$.";
+ Text[ greek ] = "ÁõôÜ åßíáé üëá ôá ðåäßá åëÝã÷ïõ ôá ïðïßá ìðïñïýí íá ÷ñçóéìïðïéçèïýí ùò ðåäßï åðéãñáöÞò ãéá ôï $control_class$ $control_name$.";
+ Text[ dutch ] = "Dit zijn controlevelden die als titelveld kunnen worden toegewezen aan $control_class$ $control_name$.";
+ Text[ french ] = "Voici tous les champs de contrôle qui peuvent être assignés comme champ d'étiquette à $control_class$ $control_name$.";
+ Text[ spanish ] = "Estos son campos de control que pueden asignarse al $control_class$ $control_name$ como campo de etiqueta.";
+ Text[ italian ] = "Tutti questi campi di controllo possono essere assegnati a $control_class$ $control_name$ come testo fisso.";
+ Text[ danish ] = "Dette er alle kontrolfelter, som kan tildeles $control_class$ $control_name$ som etiketfelt.";
+ Text[ swedish ] = "Detta är alla kontrollfält som kan tilldelas $control_class$ $control_name$ som etikettfält.";
+ Text[ polish ] = "S¹ to wszystkie pola kontrolne, które mog¹ zostaæ przypisane $control_class$ $control_name$ jako pola etykiety.";
+ Text[ portuguese_brazilian ] = "This are all controls which may be used as label field for the $control_class$ $control_name$.";
+ Text[ japanese ] = "‚±‚ê‚ç‚Í‚Ý‚È$control_class$ $control_name$‚É×ÍÞŲ̀°ÙÄÞ‚Æ‚µ‚ÄŠ„‚è“–‚Ă邱‚Æ‚Ì‚Å‚«‚éºÝÄÛ°Ų̀°ÙÄÞ‚Å‚·B";
+ Text[ korean ] = "ÀÌ°ÍÀº $control_class$ $control_name$¿¡ ¶óº§ Çʵå·Î¼­ ¹èÁ¤µÉ ¼ö ÀÖ´Â Àüü ÄÁÆ®·Ñ ÇʵåÀÔ´Ï´Ù.";
+ Text[ chinese_simplified ] = "ÕâЩÊÇ¿ÉÖ¸¶¨µ±×÷±êÇ©×Ö¶Î$control_class$ $control_name$µÄËùÓпØÖÆ×ֶΡ£";
+ Text[ chinese_traditional ] = "³o¨Ç¬O¯à°÷³Q¤ÀÃþ¦¨§@¬°¼ÐÅÒÄæ¦ì $control_class$ $control_name$ ªº©Ò¦³±±¨î¶µ¡C";
+ Text[ arabic ] = "ßÇäÊ åÐå åí ßÇÝÉ ÚäÇÕÑ ÇáÊÍßã ÇáÊí íãßä ÇÓÊÎÏÇãåÇ ßÍÞá ÚäæäÉ áÜ $control_class$ $control_name$.";
+ Text[ turkish ] = "$control_class$ $control_name$ için etiket alaný olarak atanabilecek tüm komut öðeleri bunlar.";
+ Text[ language_user1 ] = " ";
+ };
+ Control 1
+ {
+ Pos = MAP_APPFONT( 6, 29 );
+ Size = MAP_APPFONT( 110, 83 );
+ TabStop = TRUE;
+ Border = TRUE ;
+ };
+ CheckBox 1
+ {
+ Pos = MAP_APPFONT( 122, 29 );
+ Size = MAP_APPFONT( 72, 12 );
+ Text = "~keine Zuordnung";
+ Text [ ENGLISH ] = "~no assignment";
+ Text[ english_us ] = "~no assignment";
+ Text[ portuguese ] = "~nenhuma atribuição";
+ Text[ russian ] = "~áåç íàçíà÷åíèÿ";
+ Text[ greek ] = "÷ùñßò áíôéóôïß÷éóç";
+ Text[ dutch ] = "~geen toewijzing";
+ Text[ french ] = "~aucune assignation";
+ Text[ spanish ] = "~sin asignación";
+ Text[ italian ] = "~nessuna assegnazione";
+ Text[ danish ] = "ingen tildeling";
+ Text[ swedish ] = "ingen tilldelning";
+ Text[ polish ] = "~bez przyporz¹dkowania";
+ Text[ portuguese_brazilian ] = "~no assignment";
+ Text[ japanese ] = "Š„‚è“–‚Ä‚È‚µ(~N)";
+ Text[ korean ] = "¹èÁ¤¾øÀ½(~N)";
+ Text[ chinese_simplified ] = "ÎÞ·¨Ö¸¶¨(~N)";
+ Text[ chinese_traditional ] = "µLªk¤ÀÃþ(~N)";
+ Text[ arabic ] = "ÈÏæä ÊÚííä";
+ Text[ turkish ] = "Atama yok";
+ };
+ FixedLine 1
+ {
+ Pos = MAP_APPFONT( 3, 118 );
+ Size = MAP_APPFONT( 194, 2 );
+ };
+ OKButton 1
+ {
+ Pos = MAP_APPFONT ( 91 , 123 ) ;
+ Size = MAP_APPFONT ( 50 , 14 ) ;
+ TabStop = TRUE ;
+ DefButton = TRUE ;
+ };
+ CancelButton 1
+ {
+ Pos = MAP_APPFONT ( 144 , 123 ) ;
+ Size = MAP_APPFONT ( 50 , 14 ) ;
+ TabStop = TRUE ;
+ };
+ Text[ english_us ] = "Label Field Selection";
+ Text[ portuguese ] = "Selecção de campo de rótulo";
+ Text[ russian ] = "Âûáîð ïîëÿ ïîäïèñè";
+ Text[ greek ] = "ÅðéëïãÞ ðåäßïõ åðéãñáöÞò";
+ Text[ dutch ] = "Selectie titelveld";
+ Text[ french ] = "Sélection de champ d'étiquette";
+ Text[ spanish ] = "Selección campo de etiqueta";
+ Text[ italian ] = "Selezione testo fisso";
+ Text[ danish ] = "Udvalg etiketfelt";
+ Text[ swedish ] = "Urval etikettfält";
+ Text[ polish ] = "Wybór pola etykiety";
+ Text[ portuguese_brazilian ] = "Label field selection";
+ Text[ japanese ] = "×ÍÞŲ̀°ÙÄÞ‚Ì‘I‘ð";
+ Text[ korean ] = "¶óº§ ÇÊµå ¼±ÅÃ";
+ Text[ chinese_simplified ] = "Ñ¡Ôñ±êÇ©Óò";
+ Text[ chinese_traditional ] = "¿ï¾Ü¼ÐÅÒÄæ¦ì";
+ Text[ arabic ] = "ÊÍÏíÏ ÍÞá ÇáÚäæäÉ";
+ Text[ turkish ] = "Etiket alaný seçimi";
+};
+
+ImageList RID_IL_FORMEXPLORER
+{
+ ImageBitmap = Bitmap { File = "sx_propbrw.bmp" ; };
+ MaskColor = Color { Red = 0xff00 ; Green = 0x0000 ; Blue = 0xff00 ; };
+ IdList =
+ {
+ RID_SVXIMG_FIXEDTEXT ;
+ RID_SVXIMG_GROUPBOX ;
+ RID_SVXIMG_FORM ;
+ RID_SVXIMG_FORMS ;
+ RID_SVXIMG_COLLAPSEDNODE ;
+ RID_SVXIMG_EXPANDEDNODE ;
+ };
+ IdCount = 6 ;
+};
+String RID_STR_PROPTITLE_PUSHBUTTON
+{
+ Text = "Schaltfläche" ;
+ Text [ ENGLISH ] = "Button" ;
+ Text [ portuguese ] = "Botão" ;
+ Text [ english_us ] = "Button" ;
+ Text [ portuguese_brazilian ] = "Button" ;
+ Text [ swedish ] = "Kommandoknapp" ;
+ Text [ danish ] = "Knap" ;
+ Text [ italian ] = "Pulsante" ;
+ Text [ spanish ] = "Botón" ;
+ Text [ french ] = "Bouton" ;
+ Text [ dutch ] = "Knop" ;
+ Text[ chinese_simplified ] = "°´Å¥";
+ Text[ russian ] = "Êíîïêà";
+ Text[ polish ] = "Przycisk";
+ Text[ japanese ] = "ÎÞÀÝ";
+ Text[ chinese_traditional ] = "«ö¶s";
+ Text[ greek ] = "Ðåäßï åðéëïãÞò";
+ Text[ korean ] = "¹öÆ°";
+ Text[ arabic ] = "ãÝÊÇÍ";
+ Text[ turkish ] = "Düðme";
+ Text[ language_user1 ] = " ";
+};
+String RID_STR_PROPTITLE_RADIOBUTTON
+{
+ Text = "Optionsfeld" ;
+ Text [ ENGLISH ] = "OptionButton" ;
+ Text [ portuguese ] = "Botão de selecção" ;
+ Text [ english_us ] = "Option Button" ;
+ Text [ portuguese_brazilian ] = "Radio button" ;
+ Text [ swedish ] = "Alternativfält" ;
+ Text [ danish ] = "Alternativfelt" ;
+ Text [ italian ] = "Pulsante di scelta" ;
+ Text [ spanish ] = "Botón radio" ;
+ Text [ french ] = "Bouton radio" ;
+ Text [ dutch ] = "Optieveld" ;
+ Text[ chinese_simplified ] = "Ñ¡Ïî°´Å¥";
+ Text[ russian ] = "Ïåðåêëþ÷àòåëü";
+ Text[ polish ] = "Pole opcji";
+ Text[ japanese ] = "×¼ÞµÎÞÀÝ";
+ Text[ chinese_traditional ] = "¿ï¶µ«ö¶s";
+ Text[ greek ] = "Ðåäßï åðéëïãþí";
+ Text[ korean ] = "¿É¼Ç Çʵå";
+ Text[ arabic ] = "ÒÑ ÎíÇÑ";
+ Text[ turkish ] = "Seçim alaný";
+ Text[ language_user1 ] = " ";
+};
+String RID_STR_PROPTITLE_CHECKBOX
+{
+ Text = "Markierfeld" ;
+ Text [ ENGLISH ] = "CheckBox" ;
+ Text [ portuguese ] = "Caixa de verificação" ;
+ Text [ english_us ] = "Check Box" ;
+ Text [ portuguese_brazilian ] = "Checkbox" ;
+ Text [ swedish ] = "Markeringsfält" ;
+ Text [ danish ] = "Afkrydsningsfelt" ;
+ Text [ italian ] = "Casella di controllo" ;
+ Text [ spanish ] = "Casilla de verificación" ;
+ Text [ french ] = "Case à cocher" ;
+ Text [ dutch ] = "Markeerveld" ;
+ Text[ chinese_simplified ] = "¸´Ñ¡¿ò";
+ Text[ russian ] = "Îêíî ôëàæêà";
+ Text[ polish ] = "Pole wyboru";
+ Text[ japanese ] = "Áª¯¸ÎÞ¯¸½";
+ Text[ chinese_traditional ] = "®Ö¨ú¤è¶ô";
+ Text[ greek ] = "Ðëáßóéï åëÝã÷ïõ";
+ Text[ korean ] = "È®Àζõ";
+ Text[ arabic ] = "ÎÇäÉ ÇÎÊíÇÑ";
+ Text[ turkish ] = "Seçme kutusu";
+ Text[ language_user1 ] = " ";
+};
+String RID_STR_PROPTITLE_FIXEDTEXT
+{
+ Text = "Beschriftungsfeld" ;
+ Text [ ENGLISH ] = "Label" ;
+ Text [ portuguese ] = "Campo de rótulo" ;
+ Text [ english_us ] = "Label field" ;
+ Text [ portuguese_brazilian ] = "Fixed text" ;
+ Text [ swedish ] = "Etikettfält" ;
+ Text [ danish ] = "Etiketfelt" ;
+ Text [ italian ] = "Testo fisso" ;
+ Text [ spanish ] = "Campo de etiqueta" ;
+ Text [ french ] = "Champ d'étiquette" ;
+ Text [ dutch ] = "Titelveld" ;
+ Text[ chinese_simplified ] = "±êÇ©À¸";
+ Text[ russian ] = "Ïîëå íàäïèñè";
+ Text[ polish ] = "Pole etykiety";
+ Text[ japanese ] = "×ÍÞŲ̀°ÙÄÞ";
+ Text[ chinese_traditional ] = "¼ÐÅÒÄæ¦ì";
+ Text[ greek ] = "Ðåäßï åðéãñáöÞò";
+ Text[ korean ] = "¶óº§ Çʵå";
+ Text[ arabic ] = "ÍÞá ÚäæäÉ";
+ Text[ turkish ] = "Etiket alaný";
+ Text[ language_user1 ] = " ";
+};
+String RID_STR_PROPTITLE_GROUPBOX
+{
+ Text = "Gruppierungsrahmen" ;
+ Text [ ENGLISH ] = "FrameControl" ;
+ Text [ portuguese ] = "Caixa de grupo" ;
+ Text [ english_us ] = "Group Box" ;
+ Text [ portuguese_brazilian ] = "Groupbox" ;
+ Text [ swedish ] = "Grupperingsram" ;
+ Text [ danish ] = "Gruppeboks" ;
+ Text [ italian ] = "Casella di gruppo" ;
+ Text [ spanish ] = "Marco de grupo" ;
+ Text [ french ] = "Zone de groupe" ;
+ Text [ dutch ] = "Groepskader" ;
+ Text[ chinese_simplified ] = "С×é¿ò";
+ Text[ russian ] = "Ðàìêà ãðóïïû";
+ Text[ polish ] = "Pole grupy";
+ Text[ japanese ] = "¸ÞÙ°ÌßÎÞ¯¸½";
+ Text[ chinese_traditional ] = "¸s²Õ¤è¶ô";
+ Text[ greek ] = "Ðëáßóéï ïìáäïðïßçóçò";
+ Text[ korean ] = "±×·ì ¹Ú½º";
+ Text[ arabic ] = "ßÇÏÑ ÊÌãíÚ";
+ Text[ turkish ] = "Grup çerçevesi";
+ Text[ language_user1 ] = " ";
+};
+String RID_STR_PROPTITLE_EDIT
+{
+ Text = "Textfeld" ;
+ Text [ ENGLISH ] = "Edit" ;
+ Text [ portuguese ] = "Campo de texto" ;
+ Text [ english_us ] = "Text Box" ;
+ Text [ portuguese_brazilian ] = "Edit" ;
+ Text [ swedish ] = "Textfält" ;
+ Text [ danish ] = "Tekstfelt" ;
+ Text [ italian ] = "Campo di testo" ;
+ Text [ spanish ] = "Campo de texto" ;
+ Text [ french ] = "Zone de texte" ;
+ Text [ dutch ] = "Tekstveld" ;
+ Text[ chinese_simplified ] = "ÎÄ×Ö¿ò";
+ Text[ russian ] = "Òåêñòîâîå ïîëå";
+ Text[ polish ] = "Pole tekstowe";
+ Text[ japanese ] = "÷½ÄÎÞ¯¸½";
+ Text[ chinese_traditional ] = "¤å¦r¤è¶ô";
+ Text[ greek ] = "Ðëáßóéï êåéìÝíïõ";
+ Text[ korean ] = "ÅؽºÆ® Çʵå";
+ Text[ arabic ] = "ÍÞá ÇáäÕ";
+ Text[ turkish ] = "Metin alaný";
+ Text[ language_user1 ] = " ";
+};
+String RID_STR_PROPTITLE_FORMATTED
+{
+ Text = "Formatiertes Feld" ;
+ Text [ ENGLISH ] = "Formatted Field" ;
+ Text[ english_us ] = "Formatted Field";
+ Text[ portuguese ] = "Campo formatado";
+ Text[ russian ] = "Îòôîðìàòèðîâàííîå ïîëå";
+ Text[ greek ] = "ÌïñöïðïéçìÝíï ðåäßï";
+ Text[ dutch ] = "Opgemaakt veld";
+ Text[ french ] = "Champ formaté";
+ Text[ spanish ] = "Campo formateado";
+ Text[ italian ] = "Campo formattato";
+ Text[ danish ] = "Formateret felt";
+ Text[ swedish ] = "Formaterat fält";
+ Text[ polish ] = "Formatowane pole";
+ Text[ portuguese_brazilian ] = "Formatted Field";
+ Text[ japanese ] = "‘Ž®Ý’肳‚ꂽ̨°ÙÄÞ";
+ Text[ korean ] = "¼­½ÄµÈ Çʵå";
+ Text[ chinese_simplified ] = "¸ñʽ»¯µÄÇøÓò";
+ Text[ chinese_traditional ] = "®æ¦¡¤ÆªºÄæ";
+ Text[ arabic ] = "ÍÞá ãõäÓøóÞ";
+ Text[ turkish ] = "Formatlý alan";
+ Text[ language_user1 ] = " ";
+};
+String RID_STR_PROPTITLE_LISTBOX
+{
+ Text = "Listenfeld" ;
+ Text [ ENGLISH ] = "ListBox" ;
+ Text [ portuguese ] = "Caixa de listagem" ;
+ Text [ english_us ] = "List Box" ;
+ Text [ portuguese_brazilian ] = "Listbox" ;
+ Text [ swedish ] = "Listruta" ;
+ Text [ danish ] = "Rulleliste" ;
+ Text [ italian ] = "Casella di riepilogo" ;
+ Text [ spanish ] = "Listado" ;
+ Text [ french ] = "Zone de liste" ;
+ Text [ dutch ] = "Keuzelijst" ;
+ Text[ chinese_simplified ] = "Áбí¿ò";
+ Text[ russian ] = "Ñïèñîê";
+ Text[ polish ] = "Pole listy";
+ Text[ japanese ] = "ؽÄÎÞ¯¸½";
+ Text[ chinese_traditional ] = "²M³æ¤è¶ô";
+ Text[ greek ] = "Ðåäßï ëßóôáò";
+ Text[ korean ] = "¸ñ·Ï Çʵå";
+ Text[ arabic ] = "ãÑÈÚ ÞÇÆãÉ";
+ Text[ turkish ] = "Liste alaný";
+ Text[ language_user1 ] = " ";
+};
+String RID_STR_PROPTITLE_COMBOBOX
+{
+ Text = "Kombinationsfeld" ;
+ Text [ ENGLISH ] = "ComboBox" ;
+ Text [ portuguese ] = "Caixa de combinação" ;
+ Text [ english_us ] = "Combo Box" ;
+ Text [ portuguese_brazilian ] = "Combobox" ;
+ Text [ swedish ] = "Kombinationsfält" ;
+ Text [ danish ] = "Kombinationsboks" ;
+ Text [ italian ] = "Casella combinata" ;
+ Text [ spanish ] = "Campo combinado" ;
+ Text [ french ] = "Zone combinée" ;
+ Text [ dutch ] = "Combinatieveld" ;
+ Text[ chinese_simplified ] = "×éºÏ¿ò";
+ Text[ russian ] = "Ïîëå ñî ñïèñêîì";
+ Text[ polish ] = "Pole kombi";
+ Text[ japanese ] = "ºÝÎÞÎÞ¯¸½";
+ Text[ chinese_traditional ] = "²Õ¦X¤è¶ô";
+ Text[ greek ] = "Ðåäßï óõíäõáóìïý";
+ Text[ korean ] = "ÄÞº¸ ¹Ú½º";
+ Text[ arabic ] = "ãÑÈÚ ÊÍÑíÑ æÓÑÏ";
+ Text[ turkish ] = "Kombinasyon alaný";
+ Text[ language_user1 ] = " ";
+};
+String RID_STR_PROPTITLE_IMAGEBUTTON
+{
+ Text = "Grafische Schaltfläche" ;
+ Text [ ENGLISH ] = "ImageButton" ;
+ Text [ portuguese ] = "Botão de imagem" ;
+ Text [ english_us ] = "Image Button" ;
+ Text [ portuguese_brazilian ] = "Image button" ;
+ Text [ swedish ] = "Imageknapp" ;
+ Text [ danish ] = "Grafisk knap" ;
+ Text [ italian ] = "Pulsante immagine" ;
+ Text [ spanish ] = "Botón de imagen" ;
+ Text [ french ] = "Bouton imagé" ;
+ Text [ dutch ] = "Afbeeldingenknop" ;
+ Text[ chinese_simplified ] = "ͼʽ°´Å¥";
+ Text[ russian ] = "Êíîïêà ãðàôèêè";
+ Text[ polish ] = "Przycisk graficzny";
+ Text[ japanese ] = "²Ò°¼ÞÎÞÀÝ";
+ Text[ chinese_traditional ] = "¹Ï«¬«ö¶s";
+ Text[ greek ] = "Ãñáöéêü ðåäßï åðéëïãÞò";
+ Text[ korean ] = "À̹ÌÁö ¹öÆ°";
+ Text[ arabic ] = "ãÝÊÇÍ ãÕæøÑ";
+ Text[ turkish ] = "Grafiksel düðme";
+ Text[ language_user1 ] = " ";
+};
+String RID_STR_PROPTITLE_HIDDENCONTROL
+{
+ Text = "verstecktes Kontrollfeld" ;
+ Text [ english ] = "Hidden Control" ;
+ Text [ english_us ] = "Hidden Control" ;
+};
+String RID_STR_PROPTITLE_UNKNOWNCONTROL
+{
+ Text = "Kontrollfeld (unbekannter Typ)" ;
+ Text [ english ] = "Control (unknown type)" ;
+ Text [ english_us ] = "Control (unknown type)" ;
+};
+String RID_STR_PROPTITLE_IMAGECONTROL
+{
+ Text = "Grafisches Kontrollfeld" ;
+ Text [ ENGLISH ] = "ImageControl" ;
+ Text [ portuguese ] = "Controlo gráfico" ;
+ Text [ english_us ] = "Image Control" ;
+ Text [ portuguese_brazilian ] = "Grafisches Kontrollfeld" ;
+ Text [ swedish ] = "Grafiskt kontrollfält" ;
+ Text [ danish ] = "Grafisk kontrolelement" ;
+ Text [ italian ] = "Campo di controllo immagine" ;
+ Text [ spanish ] = "Control de imagen" ;
+ Text [ french ] = "Champ de contrôle graphique" ;
+ Text [ dutch ] = "Afbeeldingscontrole" ;
+ Text[ chinese_simplified ] = "ͼʽ¿ØÖÆ×Ö¶Î";
+ Text[ russian ] = "Ãðàôè÷åñêèé ýëåìåíò óïðàâëåíèÿ";
+ Text[ polish ] = "Graficzne pole kontrolne";
+ Text[ japanese ] = "²Ò°¼ÞºÝÄÛ°Ù";
+ Text[ chinese_traditional ] = "¹Ï¦¡±±¨î¶µ";
+ Text[ greek ] = "Ãñáöéêü ðåäßï åëÝã÷ïõ";
+ Text[ korean ] = "À̹ÌÁö ÄÁÆ®·Ñ Çʵå";
+ Text[ arabic ] = "ÚäÕÑ ÊÍßã ãÑÓæã";
+ Text[ turkish ] = "Grafiksel komut öðesi";
+ Text[ language_user1 ] = " ";
+};
+String RID_STR_PROPTITLE_FILECONTROL
+{
+ Text = "Dateiauswahl" ;
+ Text [ ENGLISH ] = "FileControl" ;
+ Text [ portuguese ] = "Selecção de ficheiros" ;
+ Text [ english_us ] = "File Selection" ;
+ Text [ portuguese_brazilian ] = "Dateiauswahl" ;
+ Text [ swedish ] = "Filurval" ;
+ Text [ danish ] = "Filudvalg" ;
+ Text [ italian ] = "Scelta file" ;
+ Text [ spanish ] = "Selección de archivo" ;
+ Text [ french ] = "Sélection de fichier" ;
+ Text [ dutch ] = "Bestandselectie" ;
+ Text[ chinese_simplified ] = "Ñ¡ÔñÎļþ";
+ Text[ russian ] = "Âûáîð ôàéëà";
+ Text[ polish ] = "Wybór plików";
+ Text[ japanese ] = "̧²Ù‚Ì‘I‘ð";
+ Text[ chinese_traditional ] = "¿ï¾ÜÀÉ®×";
+ Text[ greek ] = "ÅðéëïãÞ áñ÷åßïõ";
+ Text[ korean ] = "ÆÄÀÏ ¼±ÅÃ";
+ Text[ arabic ] = "ÇÎÊíÇÑ ÇáãáÝ";
+ Text[ turkish ] = "Dosya seçimi";
+ Text[ language_user1 ] = " ";
+};
+String RID_STR_PROPTITLE_DATEFIELD
+{
+ Text = "Datumsfeld" ;
+ Text [ ENGLISH ] = "DateField" ;
+ Text [ portuguese ] = "Campo para data" ;
+ Text [ english_us ] = "Date Field" ;
+ Text [ portuguese_brazilian ] = "Datumsfeld" ;
+ Text [ swedish ] = "Datumfält" ;
+ Text [ danish ] = "Datofelt" ;
+ Text [ italian ] = "Campo data" ;
+ Text [ spanish ] = "Campo de fecha" ;
+ Text [ french ] = "Champ de date" ;
+ Text [ dutch ] = "Datumveld" ;
+ Text[ chinese_simplified ] = "ÈÕÆÚ×Ö¶Î";
+ Text[ russian ] = "Ïîëå äàòû";
+ Text[ polish ] = "Pole daty";
+ Text[ japanese ] = "“ú•tÎÞ¯¸½";
+ Text[ chinese_traditional ] = "¤é´ÁÄæ¦ì";
+ Text[ greek ] = "Ðåäßï çìåñïìçíßáò";
+ Text[ korean ] = "³¯Â¥ Çʵå";
+ Text[ arabic ] = "ÍÞá ÇáÊÇÑíÎ";
+ Text[ turkish ] = "Tarih alaný";
+ Text[ language_user1 ] = " ";
+};
+String RID_STR_PROPTITLE_TIMEFIELD
+{
+ Text = "Zeitfeld" ;
+ Text [ ENGLISH ] = "TimeField" ;
+ Text [ portuguese ] = "Campo para hora" ;
+ Text [ english_us ] = "Time Field" ;
+ Text [ portuguese_brazilian ] = "Zeitfeld" ;
+ Text [ swedish ] = "Tidsfält" ;
+ Text [ danish ] = "Klokkeslætsfelt" ;
+ Text [ italian ] = "Campo orario" ;
+ Text [ spanish ] = "Campo horario" ;
+ Text [ french ] = "Champ horaire" ;
+ Text [ dutch ] = "Tijdveld" ;
+ Text[ chinese_simplified ] = "ʱ¼ä×Ö¶Î";
+ Text[ russian ] = "Ïîëå âðåìåíè";
+ Text[ polish ] = "Pole czasu";
+ Text[ japanese ] = "ŽžŠǪ̂°ÙÄÞ";
+ Text[ chinese_traditional ] = "®É¶¡Äæ¦ì";
+ Text[ greek ] = "Ðåäßï ÷ñüíïõ";
+ Text[ korean ] = "½Ã°£ Çʵå";
+ Text[ arabic ] = "ÍÞá ÇáæÞÊ";
+ Text[ turkish ] = "Zaman alaný";
+ Text[ language_user1 ] = " ";
+};
+String RID_STR_PROPTITLE_NUMERICFIELD
+{
+ Text = "Numerisches Feld" ;
+ Text [ ENGLISH ] = "NumericField" ;
+ Text [ portuguese ] = "Campo numérico" ;
+ Text [ english_us ] = "Numeric Field" ;
+ Text [ portuguese_brazilian ] = "Numerisches Feld" ;
+ Text [ swedish ] = "Numeriskt fält" ;
+ Text [ danish ] = "Numerisk felt" ;
+ Text [ italian ] = "Campo numerico" ;
+ Text [ spanish ] = "Campo numérico" ;
+ Text [ french ] = "Champ numérique" ;
+ Text [ dutch ] = "Numeriek veld" ;
+ Text[ chinese_simplified ] = "Êý×ÖÀ¸";
+ Text[ russian ] = "×èñëîâîå ïîëå";
+ Text[ polish ] = "Pole numeryczne";
+ Text[ japanese ] = "”ŽšÎÞ¯¸½";
+ Text[ chinese_traditional ] = "¼Æ¦rÄæ¦ì";
+ Text[ greek ] = "Áñéèìçôéêü ðåäßï";
+ Text[ korean ] = "¼ýÀÚ Çʵå";
+ Text[ arabic ] = "ÍÞá ÑÞãí";
+ Text[ turkish ] = "Sayýsal alan";
+ Text[ language_user1 ] = " ";
+};
+String RID_STR_PROPTITLE_CURRENCYFIELD
+{
+ Text = "Währungsfeld" ;
+ Text [ ENGLISH ] = "CurrencyField" ;
+ Text [ portuguese ] = "Campo para moeda" ;
+ Text [ english_us ] = "Currency Field" ;
+ Text [ portuguese_brazilian ] = "Währungsfeld" ;
+ Text [ swedish ] = "Valutafält" ;
+ Text [ danish ] = "Valutafelt" ;
+ Text [ italian ] = "Campo di valuta" ;
+ Text [ spanish ] = "Campo de moneda" ;
+ Text [ french ] = "Champ monétaire" ;
+ Text [ dutch ] = "Valutaveld" ;
+ Text[ chinese_simplified ] = "»õ±Ò×Ö¶Î";
+ Text[ russian ] = "Ïîëå âàëþòû";
+ Text[ polish ] = "Pole walutowe";
+ Text[ japanese ] = "’ʉÝ̨°ÙÄÞ";
+ Text[ chinese_traditional ] = "³f¹ôÄæ¦ì";
+ Text[ greek ] = "Ðåäßï íïìßóìáôïò";
+ Text[ korean ] = "ÅëÈ­ Çʵå";
+ Text[ arabic ] = "ÍÞá ÇáÚãáÉ";
+ Text[ turkish ] = "Para birimi alaný";
+ Text[ language_user1 ] = " ";
+};
+String RID_STR_PROPTITLE_PATTERNFIELD
+{
+ Text = "Maskiertes Feld" ;
+ Text [ ENGLISH ] = "PatternField" ;
+ Text [ portuguese ] = "Campo mascarado" ;
+ Text [ english_us ] = "Pattern Field" ;
+ Text [ portuguese_brazilian ] = "Maskiertes Feld" ;
+ Text [ swedish ] = "Maskerat fält" ;
+ Text [ danish ] = "Maskeret felt" ;
+ Text [ italian ] = "Campo a maschera" ;
+ Text [ spanish ] = "Campo enmascarado" ;
+ Text [ french ] = "Champ masqué" ;
+ Text [ dutch ] = "Patroonveld" ;
+ Text[ chinese_simplified ] = "ÑÚÂëÀ¸";
+ Text[ russian ] = "Ïîëå îáðàçöà";
+ Text[ polish ] = "Pole wzorca";
+ Text[ japanese ] = "ÊßÀ°Ý̨°ÙÄÞ";
+ Text[ chinese_traditional ] = "±»½XÄæ¦ì";
+ Text[ greek ] = "ÊáëõììÝíï ðåäßï";
+ Text[ korean ] = "ÆÐÅÏ Çʵå";
+ Text[ arabic ] = "ÍÞá ãõÞäøÚ";
+ Text[ turkish ] = "Maskelenmiþ alan";
+ Text[ language_user1 ] = " ";
+};
+String RID_STR_PROPTITLE_DBGRID
+{
+ Text = "Tabellen-Kontrollfeld " ;
+ Text [ ENGLISH ] = "TableControl" ;
+ Text [ portuguese ] = "Controlo de tabelas " ;
+ Text [ english_us ] = "Table Control " ;
+ Text [ portuguese_brazilian ] = "Tabellen Control " ;
+ Text [ swedish ] = "Tabellkontrollfält " ;
+ Text [ danish ] = "Tabelkontrolelement " ;
+ Text [ italian ] = "Campo di controllo tabella " ;
+ Text [ spanish ] = "Control de tablas " ;
+ Text [ french ] = "Champ de contrôle de table " ;
+ Text [ dutch ] = "Tabelcontrole " ;
+ Text[ chinese_simplified ] = "±í¸ñ¿ØÖÆ×ֶΠ";
+ Text[ russian ] = "Ýëåìåíò óïðàâëåíèÿ òàáëèö ";
+ Text[ polish ] = "Pole kontrolne tabeli ";
+ Text[ japanese ] = "ðÌÞÙºÝÄÛ°Ù ";
+ Text[ chinese_traditional ] = "ªí®æ±±¨î¶µ ";
+ Text[ greek ] = "Ðåäßï åëÝã÷ïõ ðßíáêá ";
+ Text[ korean ] = "Ç¥ ÄÁÆ®·Ñ- Çʵå ";
+ Text[ arabic ] = "ÚäÕÑ ÊÍßã ÎÇÕ ÈÇáÌÏÇæá";
+ Text[ turkish ] = "Tablo komut öðesi ";
+ Text[ language_user1 ] = " ";
+};
+String RID_STR_EDITMASK
+{
+ Text = "Eingabemaske" ;
+ Text [ English ] = "Editmask" ;
+ Text [ portuguese ] = "Editar máscara" ;
+ Text [ english_us ] = "Edit mask" ;
+ Text [ portuguese_brazilian ] = "Eingabemaske" ;
+ Text [ swedish ] = "Inmatningsmask" ;
+ Text [ danish ] = "Redigeringsmaske" ;
+ Text [ italian ] = "Maschera di digitazione" ;
+ Text [ spanish ] = "Máscara de entrada" ;
+ Text [ french ] = "Masque de saisie" ;
+ Text [ dutch ] = "Invoervenster" ;
+ Text[ chinese_simplified ] = "±à¼­ÑÚÂë";
+ Text[ russian ] = "Ìàñêà ââîäà";
+ Text[ polish ] = "Maska wprowadzania";
+ Text[ japanese ] = "“ü—ÍϽ¸";
+ Text[ chinese_traditional ] = "½s¿è±»½X";
+ Text[ greek ] = "ÌÜóêá åéóáãùãÞò";
+ Text[ korean ] = "ÀÔ·Â ¸¶½ºÅ©";
+ Text[ arabic ] = "ÞäÇÚ ÇáÅÏÎÇá";
+ Text[ turkish ] = "Giriþ ekraný";
+ Text[ language_user1 ] = " ";
+};
+String RID_STR_LITERALMASK
+{
+ Text = "Zeichenmaske" ;
+ Text [ English ] = "Literal mask" ;
+ Text [ portuguese ] = "Máscara de caracteres" ;
+ Text [ english_us ] = "Literal mask" ;
+ Text [ portuguese_brazilian ] = "Zeichenmaske" ;
+ Text [ swedish ] = "Teckenmask" ;
+ Text [ danish ] = "Tegnmaske" ;
+ Text [ italian ] = "Maschera caratteri" ;
+ Text [ spanish ] = "Máscara de caracteres" ;
+ Text [ french ] = "Masque de caractères" ;
+ Text [ dutch ] = "Tekenmasker" ;
+ Text[ chinese_simplified ] = "×Ö·ûÑÚÂë";
+ Text[ russian ] = "Ìàñêà çíàêîâ";
+ Text[ polish ] = "Maska znaków";
+ Text[ japanese ] = "•¶ŽšÏ½¸";
+ Text[ chinese_traditional ] = "¦r¤¸±»½X";
+ Text[ greek ] = "ÌÜóêá ÷áñáêôÞñùí";
+ Text[ korean ] = "±âÈ£ ¸¶½ºÅ©";
+ Text[ arabic ] = "ÞäÇÚ ÇáÃÍÑÝ";
+ Text[ turkish ] = "Karakter ekraný";
+ Text[ language_user1 ] = " ";
+};
+String RID_STR_READONLY
+{
+ Text = "Nur lesen" ;
+ Text [ ENGLISH ] = "Read only" ;
+ Text [ portuguese ] = "Só leitura" ;
+ Text [ english_us ] = "Read-only" ;
+ Text [ portuguese_brazilian ] = "Nur lesen" ;
+ Text [ swedish ] = "Endast läsa" ;
+ Text [ danish ] = "Skrivebeskyttet" ;
+ Text [ italian ] = "Solo lettura" ;
+ Text [ spanish ] = "Solo lectura" ;
+ Text [ french ] = "En lecture seule" ;
+ Text [ dutch ] = "Alleen lezen" ;
+ Text[ chinese_simplified ] = "Ö»¶Á";
+ Text[ russian ] = "Òîëüêî ÷òåíèå";
+ Text[ polish ] = "Tylko do odczytu";
+ Text[ japanese ] = "“Ç‚ÝŽæ‚èê—p";
+ Text[ chinese_traditional ] = "°ßŪ";
+ Text[ greek ] = "Ìüíï áíÜãíùóç";
+ Text[ korean ] = "Àб⸸";
+ Text[ arabic ] = "ááÞÑÇÁÉ ÝÞØ";
+ Text[ turkish ] = "Salt okunur";
+ Text[ language_user1 ] = " ";
+};
+String RID_STR_ENABLED
+{
+ Text = "Aktiviert" ;
+ Text [ English ] = "Enabled" ;
+ Text [ portuguese ] = "Activado" ;
+ Text [ english_us ] = "Enabled" ;
+ Text [ portuguese_brazilian ] = "Aktiviert" ;
+ Text [ swedish ] = "Aktiverad" ;
+ Text [ danish ] = "Aktiveret" ;
+ Text [ italian ] = "Abilitato" ;
+ Text [ spanish ] = "Activado" ;
+ Text [ french ] = "Activé" ;
+ Text [ dutch ] = "Geactiveerd" ;
+ Text[ chinese_simplified ] = "¼¤»îµÄ";
+ Text[ russian ] = "Àêòèâèðîâàíî";
+ Text[ polish ] = "Uaktywniony";
+ Text[ japanese ] = "±¸Ã¨ÌÞ‚É‚·‚é";
+ Text[ chinese_traditional ] = "¿E¬¡ªº";
+ Text[ greek ] = "ÅíåñãïðïéçìÝíï";
+ Text[ korean ] = "È°¼º »óÅÂ";
+ Text[ arabic ] = "äÔØ";
+ Text[ turkish ] = "Etkinleþtirildi";
+ Text[ language_user1 ] = " ";
+};
+String RID_STR_AUTOCOMPLETE
+{
+ Text = "Automatisch füllen" ;
+ Text [ English ] = "Autocomplete" ;
+ Text [ portuguese ] = "AutoPreenchimento" ;
+ Text [ english_us ] = "AutoFill" ;
+ Text [ portuguese_brazilian ] = "Automatisch füllen" ;
+ Text [ swedish ] = "Automatisk fyllning" ;
+ Text [ danish ] = "Fyld automatisk" ;
+ Text [ italian ] = "Riempi automaticamente" ;
+ Text [ spanish ] = "Rellenar automáticamente" ;
+ Text [ french ] = "AutoSaisie" ;
+ Text [ dutch ] = "Automatisch vullen" ;
+ Text[ chinese_simplified ] = "×Ô¶¯Íê³É";
+ Text[ russian ] = "Àâòîââîä";
+ Text[ polish ] = "Autowype³nianie";
+ Text[ japanese ] = "Ž©“®“ü—Í";
+ Text[ chinese_traditional ] = "¦Û°Ê§¹¦¨";
+ Text[ greek ] = "Áõôüìáôï ãÝìéóìá";
+ Text[ korean ] = "ÀÚµ¿ ä¿ì±â";
+ Text[ arabic ] = "ÊÚÈÆÉ ÊáÞÇÆíÉ";
+ Text[ turkish ] = "Otomatik olarak tamamla";
+ Text[ language_user1 ] = " ";
+};
+String RID_STR_LINECOUNT
+{
+ Text = "Anzahl der Zeilen" ;
+ Text [ English ] = "Linecount" ;
+ Text [ portuguese ] = "Contar linhas" ;
+ Text [ english_us ] = "Line count" ;
+ Text [ portuguese_brazilian ] = "Anzahl der Zeilen" ;
+ Text [ swedish ] = "Antal rader" ;
+ Text [ danish ] = "Antal rækker" ;
+ Text [ italian ] = "Numero delle righe" ;
+ Text [ spanish ] = "Número de líneas" ;
+ Text [ french ] = "Nombre de lignes" ;
+ Text [ dutch ] = "Aantal regels" ;
+ Text[ chinese_simplified ] = "ÐÐÊý";
+ Text[ russian ] = "Êîëè÷åñòâî ñòðîê";
+ Text[ polish ] = "Liczba linii";
+ Text[ japanese ] = "s”";
+ Text[ chinese_traditional ] = "¦æ¼Æ";
+ Text[ greek ] = "Áñéèìüò ãñáììþí";
+ Text[ korean ] = "ÁÙÀÇ ¼ö";
+ Text[ arabic ] = "ÚÏÏ ÇáÃÓØÑ";
+ Text[ turkish ] = "Satýr sayýsý";
+ Text[ language_user1 ] = " ";
+};
+String RID_STR_MAXTEXTLEN
+{
+ Text = "Max. Textlänge" ;
+ Text [ English ] = "Max. textlength" ;
+ Text [ portuguese ] = "Comprimento máx. do texto" ;
+ Text [ english_us ] = "Max. text length" ;
+ Text [ portuguese_brazilian ] = "Max. Textlänge" ;
+ Text [ swedish ] = "Max. textlängd" ;
+ Text [ danish ] = "Maks. tekstlængde" ;
+ Text [ italian ] = "Lunghezza testo max." ;
+ Text [ spanish ] = "Longitud máx. del texto" ;
+ Text [ french ] = "Longueur de texte max." ;
+ Text [ dutch ] = "Max. tekstlengte" ;
+ Text[ chinese_simplified ] = "×µÄÎÄ×Ö";
+ Text[ russian ] = "Ìàêñ. äëèíà òåêñòà";
+ Text[ polish ] = "Maks. d³ugoœæ tekstu";
+ Text[ japanese ] = "Å‚‚Ì÷½Ä‚Ì’·‚³";
+ Text[ chinese_traditional ] = "³Ìªøªº¤å¦r";
+ Text[ greek ] = "ÌÝãéóôï ìÞêïò êåéìÝíïõ";
+ Text[ korean ] = "ÃÖ´ë ÅؽºÆ® ±æÀÌ";
+ Text[ arabic ] = "ÇáØæá ÇáÃÞÕì ááäÕ";
+ Text[ turkish ] = "Azami metin uzunluðu";
+ Text[ language_user1 ] = " ";
+};
+String RID_STR_SPIN
+{
+ Text = "Drehfeld" ;
+ Text [ English ] = "Spinbutton" ;
+ Text [ portuguese ] = "Botão de rotação" ;
+ Text [ english_us ] = "Spin Button" ;
+ Text [ portuguese_brazilian ] = "Drehfeld" ;
+ Text [ swedish ] = "Rotationsknapp" ;
+ Text [ danish ] = "Rulleknap" ;
+ Text [ italian ] = "Pulsante di selezione" ;
+ Text [ spanish ] = "Campo giratorio" ;
+ Text [ french ] = "Compteur" ;
+ Text [ dutch ] = "Draaiveld" ;
+ Text[ chinese_simplified ] = "Ñ¡Öµ¿ò";
+ Text[ language_user1 ] = " ";
+ Text[ russian ] = "Ñ÷åò÷èê";
+ Text[ polish ] = "Pole obrotu";
+ Text[ japanese ] = "½ËßÝÎÞÀÝ";
+ Text[ chinese_traditional ] = "½Õ¸`¤è¶ô";
+ Text[ greek ] = "Ðåäßï ðåñéóôñïöÞò";
+ Text[ korean ] = "ȸÀü Çʵå";
+ Text[ arabic ] = "ÒÑ ÒíÇÏÉ æäÞÕÇä";
+ Text[ turkish ] = "Deðer kutusu";
+};
+String RID_STR_STRICTFORMAT
+{
+ Text = "Formatüberprüfung" ;
+ Text [ English ] = "Strict format" ;
+ Text [ portuguese ] = "Controlar formato" ;
+ Text [ english_us ] = "Strict format" ;
+ Text [ portuguese_brazilian ] = "Formatüberprüfung" ;
+ Text [ swedish ] = "Formatkontroll" ;
+ Text [ danish ] = "Formatkontrol" ;
+ Text [ italian ] = "Controllo formato" ;
+ Text [ spanish ] = "Control de formato" ;
+ Text [ french ] = "Vérification de format" ;
+ Text [ dutch ] = "Formaatcontrole" ;
+ Text[ chinese_simplified ] = "¼ì²é¸ñʽ";
+ Text[ russian ] = "Ïðîâåðêà ôîðìàòà";
+ Text[ polish ] = "Sprawdzenie formatu";
+ Text[ japanese ] = "‘Ž®‚ÌÁª¯¸";
+ Text[ chinese_traditional ] = "Àˬd®æ¦¡";
+ Text[ greek ] = "¸ëåã÷ïò ìïñöÞò";
+ Text[ korean ] = "¼­½Ä °Ë»ç";
+ Text[ arabic ] = "ÝÍÕ ÇáÊäÓíÞ";
+ Text[ turkish ] = "Format denetimi";
+ Text[ language_user1 ] = " ";
+};
+String RID_STR_SHOWTHOUSANDSEP
+{
+ Text = "Tausender-Trennz." ;
+ Text [ English ] = "Show thousandsep." ;
+ Text [ portuguese ] = "Separador de milhares" ;
+ Text [ english_us ] = "Thousands Separator" ;
+ Text [ portuguese_brazilian ] = "Tausender-Trennz." ;
+ Text [ swedish ] = "Tusentalsavgränsare" ;
+ Text [ danish ] = "Tusindtalsseparator" ;
+ Text [ italian ] = "Car. di separz. migliaia" ;
+ Text [ spanish ] = "Delimitador decimal" ;
+ Text [ french ] = "Séparateur de milliers" ;
+ Text [ dutch ] = "Scheidingsteken voor duizendtallen" ;
+ Text[ chinese_simplified ] = "ǧλ·Ö¸ô·û";
+ Text[ russian ] = "Ðàçäåëèòåëü ãðóïï ðàçðÿäîâ";
+ Text[ polish ] = "Separator tysiêczny";
+ Text[ japanese ] = "ç’PˆÊ¾ÊßÚ°À";
+ Text[ chinese_traditional ] = "¤d¦ì¤À¹j²Å";
+ Text[ greek ] = "Äéá÷ùñéóôéêü ÷éëßùí";
+ Text[ korean ] = "õ´ÜÀ§ ±¸ºÐ±âÈ£";
+ Text[ arabic ] = "ÚáÇãÉ ÝÕá ÇáÃáæÝ";
+ Text[ turkish ] = "Binlik ayýrma iþareti";
+ Text[ language_user1 ] = " ";
+};
+String RID_STR_HARDLINEBREAKS
+{
+ Text = "Harter Zeilenumbruch" ;
+ Text [ English ] = "Hard line breaks" ;
+ Text [ portuguese ] = "Quebra de linha dura" ;
+ Text [ english_us ] = "Direct line break" ;
+ Text [ portuguese_brazilian ] = "Harter Zeilenumbruch" ;
+ Text [ swedish ] = "Hård radbrytning" ;
+ Text [ danish ] = "Hårdt linjeskift" ;
+ Text [ italian ] = "Interruzione di riga fissa" ;
+ Text [ spanish ] = "Salto de línea rígido" ;
+ Text [ french ] = "Renvoi à la ligne forcé" ;
+ Text [ dutch ] = "Vast regeleinde" ;
+ Text[ chinese_simplified ] = "ÊÖ¹¤·ÖÐзû";
+ Text[ russian ] = "Æåñòêèé ðàçðûâ ñòðîêè";
+ Text[ polish ] = "Twardy podzia³ wiersza";
+ Text[ japanese ] = "‰üs";
+ Text[ chinese_traditional ] = "¤â¤u¤À¦æ²Å";
+ Text[ greek ] = "¸íôïíç áëëáãÞ ãñáììÞò";
+ Text[ korean ] = "°³Çà (°íÁ¤)";
+ Text[ arabic ] = "ÝÇÕá ÃÓØÑ íÏæí";
+ Text[ turkish ] = "Kullanýcý tanýmlý satýr sonu";
+ Text[ language_user1 ] = " ";
+};
+String RID_STR_PRINTABLE
+{
+ Text = "Drucken" ;
+ Text [ English ] = "Printable" ;
+ Text [ portuguese ] = "Imprimir" ;
+ Text [ english_us ] = "Print" ;
+ Text [ portuguese_brazilian ] = "Drucken" ;
+ Text [ swedish ] = "Skriv ut" ;
+ Text [ danish ] = "Udskriv" ;
+ Text [ italian ] = "Stampa" ;
+ Text [ spanish ] = "Imprimir" ;
+ Text [ french ] = "Imprimer" ;
+ Text [ dutch ] = "Afdrukken" ;
+ Text[ chinese_simplified ] = "´òÓ¡";
+ Text[ russian ] = "Ïå÷àòü";
+ Text[ polish ] = "Drukuj";
+ Text[ japanese ] = "ˆóü";
+ Text[ chinese_traditional ] = "¦C¦L";
+ Text[ greek ] = "Åêôýðùóç";
+ Text[ korean ] = "Àμâ";
+ Text[ arabic ] = "ØÈÇÚÉ";
+ Text[ turkish ] = "Yazdýr";
+ Text[ language_user1 ] = " ";
+};
+String RID_STR_TARGET_URL
+{
+ Text = "URL" ;
+ Text [ English ] = "URL" ;
+ Text [ portuguese ] = "URL" ;
+ Text [ english_us ] = "URL" ;
+ Text [ portuguese_brazilian ] = "URL" ;
+ Text [ swedish ] = "URL" ;
+ Text [ danish ] = "URL" ;
+ Text [ italian ] = "URL" ;
+ Text [ spanish ] = "URL" ;
+ Text [ french ] = "URL" ;
+ Text [ dutch ] = "URL" ;
+ Text[ chinese_simplified ] = "URL";
+ Text[ russian ] = "URL";
+ Text[ polish ] = "URL";
+ Text[ japanese ] = "URL";
+ Text[ chinese_traditional ] = "URL";
+ Text[ greek ] = "URL";
+ Text[ korean ] = "URL";
+ Text[ arabic ] = "URL";
+ Text[ turkish ] = "URL";
+ Text[ language_user1 ] = " ";
+};
+String RID_STR_TARGET_FRAME
+{
+ Text = "Frame" ;
+ Text [ English ] = "TargetFrame" ;
+ Text [ portuguese ] = "Moldura" ;
+ Text [ english_us ] = "Target Frame" ;
+ Text [ portuguese_brazilian ] = "Frame" ;
+ Text [ swedish ] = "Ram" ;
+ Text [ danish ] = "Frame" ;
+ Text [ italian ] = "Frame" ;
+ Text [ spanish ] = "Frame" ;
+ Text [ french ] = "Frame" ;
+ Text [ dutch ] = "Frame" ;
+ Text[ chinese_simplified ] = "¿ò¶ÔÏó";
+ Text[ russian ] = "Êàäð";
+ Text[ polish ] = "Frame";
+ Text[ japanese ] = "ÌÚ°Ñ";
+ Text[ chinese_traditional ] = "°T®Ø";
+ Text[ greek ] = "Ðëáßóéï";
+ Text[ korean ] = "ÇÁ·¹ÀÓ";
+ Text[ arabic ] = "ÅØÇÑ";
+ Text[ turkish ] = "Frame";
+ Text[ language_user1 ] = " ";
+};
+String RID_STR_HELPTEXT
+{
+ Text = "Hilfetext" ;
+ Text [ ENGLISH ] = "Helptext" ;
+ Text [ english_us ] = "Help text" ;
+ Text[ portuguese ] = "Texto de ajuda";
+ Text[ russian ] = "Òåêñò ñïðàâêè";
+ Text[ dutch ] = "Hulptekst";
+ Text[ french ] = "Texte d'aide";
+ Text[ spanish ] = "Texto de ayuda";
+ Text[ italian ] = "Testo della Guida";
+ Text[ danish ] = "Hjælp-tekst";
+ Text[ swedish ] = "Hjälptext";
+ Text[ polish ] = "Tekst pomocy";
+ Text[ portuguese_brazilian ] = "Helptext";
+ Text[ japanese ] = "ÍÙÌß÷½Ä";
+ Text[ chinese_simplified ] = "°ïÖúÎÄ";
+ Text[ chinese_traditional ] = "»¡©ú¤å";
+ Text[ greek ] = "Êåßìåíï âïÞèåéáò";
+ Text[ korean ] = "µµ¿ò¸» ÅؽºÆ®";
+ Text[ arabic ] = "äÕ ÇáãÓÇÚÏÉ";
+ Text[ turkish ] = "Yardým metni";
+ Text[ language_user1 ] = " ";
+};
+String RID_STR_HELPURL
+{
+ Text = "Hilfe URL" ;
+ Text [ ENGLISH ] = "Help URL" ;
+ Text[ english_us ] = "Help URL";
+ Text[ portuguese ] = "URL da Ajuda";
+ Text[ russian ] = "URL ïîìîùè";
+ Text[ dutch ] = "Help URL";
+ Text[ french ] = "URL de l'aide";
+ Text[ spanish ] = "Ayuda URL";
+ Text[ italian ] = "URL della Guida";
+ Text[ danish ] = "Hjælp-URL";
+ Text[ swedish ] = "Hjälp URL";
+ Text[ polish ] = "Pomoc URL";
+ Text[ portuguese_brazilian ] = "Help URL";
+ Text[ japanese ] = "URLÍÙÌß";
+ Text[ chinese_simplified ] = "°ïÖú URL";
+ Text[ chinese_traditional ] = "»¡©ú URL";
+ Text[ greek ] = "URL âïÞèåéáò";
+ Text[ korean ] = "URL µµ¿ò¸»";
+ Text[ arabic ] = "URL ÇáãÓÇÚÏÉ";
+ Text[ turkish ] = "URL yardýmý";
+ Text[ language_user1 ] = " ";
+};
+String RID_STR_TAG
+{
+ Text = "Zusatzinformation" ;
+ Text [ English ] = "Tag" ;
+ Text [ portuguese ] = "Informação adicional" ;
+ Text [ english_us ] = "Additonal Information" ;
+ Text [ portuguese_brazilian ] = "Zusatzinformation" ;
+ Text [ swedish ] = "Ytterligare information" ;
+ Text [ danish ] = "Yderligere information" ;
+ Text [ italian ] = "Informazione aggiuntiva" ;
+ Text [ spanish ] = "Información adicional" ;
+ Text [ french ] = "Complément d'information" ;
+ Text [ dutch ] = "Verdere informatie" ;
+ Text[ chinese_simplified ] = "¸½¼ÓÐÅÏ¢";
+ Text[ russian ] = "Äîïîëíèòåëüíàÿ èíôîðìàöèÿ";
+ Text[ polish ] = "Dodatkowa informacja";
+ Text[ japanese ] = "’ljÁî•ñ";
+ Text[ chinese_traditional ] = "ªþ¥[¸ê°T";
+ Text[ greek ] = "Ðñüóèåôåò ðëçñïöïñßåò";
+ Text[ korean ] = "Ãß°¡ Á¤º¸";
+ Text[ arabic ] = "ãÚáæãÇÊ ÅÖÇÝíÉ";
+ Text[ turkish ] = "Ek bilgi";
+ Text[ language_user1 ] = " ";
+};
+String RID_STR_ECHO_CHAR
+{
+ Text = "Zeichen für Passwörter" ;
+ Text [ English ] = "Password char" ;
+ Text [ portuguese ] = "Caracteres para senhas" ;
+ Text [ english_us ] = "Password characters" ;
+ Text [ portuguese_brazilian ] = "Zeichen für Passwörter" ;
+ Text [ swedish ] = "Tecken för lösenord" ;
+ Text [ danish ] = "Tegn til adgangskoder" ;
+ Text [ italian ] = "Caratteri per le password" ;
+ Text [ spanish ] = "Caracteres para contraseñas" ;
+ Text [ french ] = "Caractères de mots de passe" ;
+ Text [ dutch ] = "Teken voor wachtwoorden" ;
+ Text[ chinese_simplified ] = "ÃÜÂë×Ö·û";
+ Text[ russian ] = "Çíàêè äëÿ ïàðîëÿ";
+ Text[ polish ] = "Znaki dla hase³";
+ Text[ japanese ] = "Ê߽ܰÄÞ—p‚Ì•¶Žš";
+ Text[ chinese_traditional ] = "±K½X¦r¤¸";
+ Text[ greek ] = "×áñáêôÞñåò ãéá êùäéêïýò ðñüóâáóçò";
+ Text[ korean ] = "Æнº¿öµå¿ë ¹®ÀÚ";
+ Text[ arabic ] = "ÃÍÑÝ ßáãÇÊ ÇáÓÑ";
+ Text[ turkish ] = "Þifre karakterleri";
+ Text[ language_user1 ] = " ";
+};
+String RID_STR_TRISTATE
+{
+ Text = "Dreifacher Status" ;
+ Text [ ENGLISH ] = "Tristate" ;
+ Text [ portuguese ] = "Estado triplo" ;
+ Text [ english_us ] = "Tristate" ;
+ Text [ portuguese_brazilian ] = "Dreifacher Status" ;
+ Text [ swedish ] = "Trefaldig status" ;
+ Text [ danish ] = "Tredobbelt status" ;
+ Text [ italian ] = "Stato triplo" ;
+ Text [ spanish ] = "Estado triple" ;
+ Text [ french ] = "Statut triple" ;
+ Text [ dutch ] = "Drievoudige status" ;
+ Text[ chinese_simplified ] = "ÈýÖØ״̬";
+ Text[ russian ] = "Òðîéíîå ñîñòîÿíèå";
+ Text[ polish ] = "Potrójny stan";
+ Text[ japanese ] = "3”{‚̽ðÀ½";
+ Text[ chinese_traditional ] = "¤T­«ª¬ºA";
+ Text[ greek ] = "ÔñéðëÞ êáôÜóôáóç";
+ Text[ korean ] = "»ïÁß »óÅÂ";
+ Text[ arabic ] = "ÍÇáÉ ËáÇËíÉ";
+ Text[ turkish ] = "Üçlü durum";
+ Text[ language_user1 ] = " ";
+};
+String RID_STR_EMPTY_IS_NULL
+{
+ Text = "Leere Zeichenfolge ist NULL" ;
+ Text [ English ] = "Empty string is NULL" ;
+ Text [ portuguese ] = "Espaço vazio é ZERO" ;
+ Text [ english_us ] = "Empty string is NULL" ;
+ Text [ swedish ] = "Tom teckensträng är NOLL" ;
+ Text [ italian ] = "Lo string vuoto è ZERO" ;
+ Text [ spanish ] = "Serie de caracteres vacía es NULL" ;
+ Text [ french ] = "Espace vide égale NULL" ;
+ Text [ dutch ] = "Opvullen met NUL" ;
+ Text[ portuguese_brazilian ] = "Leerzeichen ist NULL";
+ Text[ danish ] = "Tom streng er NULL";
+ Text[ chinese_simplified ] = "¿Õ°××Ö·ûÊÇ NULL";
+ Text[ russian ] = "Ïóñòàÿ ñòðîêà - ÍÓËÜ";
+ Text[ polish ] = "Pusty ci¹g znaków jest ZEREM";
+ Text[ japanese ] = "‹ó”’‚Ì•¶Žš—ñ‚;ÞÛ";
+ Text[ chinese_traditional ] = "ªÅ¥Õ¦r¤¸¬O NULL";
+ Text[ greek ] = "ÊåíÞ áêïëïõèßá ÷áñáêôÞñùí åßíáé NULL (ÌÇÄÅÍ)";
+ Text[ korean ] = "ºñ¾î ÀÖ´Â ¹®ÀÚ¿­Àº NULLÀÓ";
+ Text[ arabic ] = "ÓáÓáÉ ÇáÃÍÑÝ ÇáÝÇÑÛÉ ÊÚÊÈÑ NULL";
+ Text[ turkish ] = "Boþ karakter dizilimi SIFIR";
+ Text[ language_user1 ] = " ";
+};
+String RID_STR_DECIMAL_ACCURACY
+{
+ Text = "Nachkommastellen" ;
+ Text [ English ] = "Decimal accuracy" ;
+ Text [ portuguese ] = "Casas decimais" ;
+ Text [ english_us ] = "Decimal accuracy" ;
+ Text [ portuguese_brazilian ] = "Nachkommastellen" ;
+ Text [ swedish ] = "Decimalpositioner" ;
+ Text [ danish ] = "Antal decimaler" ;
+ Text [ italian ] = "Posizioni decimali" ;
+ Text [ spanish ] = "Decimales" ;
+ Text [ french ] = "Décimales" ;
+ Text [ dutch ] = "Plaatsen achter de komma" ;
+ Text[ chinese_simplified ] = "СÊýµã";
+ Text[ russian ] = "Äðîáíàÿ ÷àñòü";
+ Text[ polish ] = "Miejsca po przecinku";
+ Text[ japanese ] = "¬”“_ˆÈ‰º‚ÌŒ…";
+ Text[ chinese_traditional ] = "¤p¼ÆÂI";
+ Text[ greek ] = "ÄåêáäéêÜ øçößá";
+ Text[ korean ] = "¼Ò¼öÁ¡ ÀÌÇÏ ÀÚ¸®";
+ Text[ arabic ] = "ÇáãäÇÒá ÇáÚÔÑíÉ";
+ Text[ turkish ] = "Virgül sonrasý haneler";
+ Text[ language_user1 ] = " ";
+};
+String RID_STR_DATE_SHOW_CENTURY
+{
+ Text = "Jahrhundert zeigen" ;
+ Text [ English ] = "Show Century" ;
+ Text [ portuguese ] = "Mostrar século" ;
+ Text [ english_us ] = "Show Century" ;
+ Text [ portuguese_brazilian ] = "Jahrhundert zeigen" ;
+ Text [ swedish ] = "Visa århundrade" ;
+ Text [ danish ] = "Vis århundrede" ;
+ Text [ italian ] = "Mostra secolo" ;
+ Text [ spanish ] = "Mostrar siglo" ;
+ Text [ french ] = "Afficher le siècle" ;
+ Text [ dutch ] = "Eeuw weergeven" ;
+ Text[ chinese_simplified ] = "4 λÄê·Ý";
+ Text[ russian ] = "Ïîêàçàòü âåê";
+ Text[ polish ] = "Poka¿ stulecie";
+ Text[ japanese ] = "•S”N‚ð•\\Ž¦";
+ Text[ chinese_traditional ] = "4 ¦ì¦~¥÷";
+ Text[ greek ] = "ÅìöÜíéóç áéþíá";
+ Text[ korean ] = "¼¼±â Ç¥½Ã";
+ Text[ arabic ] = "ÅÙåÇÑ ÇáÞÑä";
+ Text[ turkish ] = "Yüzyýlý görüntüle";
+ Text[ language_user1 ] = " ";
+};
+String RID_STR_IMAGE_URL
+{
+ Text = "Grafik" ;
+ Text [ English ] = "Graphic" ;
+ Text [ portuguese ] = "Imagem" ;
+ Text [ english_us ] = "Graphic" ;
+ Text [ portuguese_brazilian ] = "Grafik" ;
+ Text [ swedish ] = "Grafik" ;
+ Text [ danish ] = "Grafik" ;
+ Text [ italian ] = "Immagine" ;
+ Text [ spanish ] = "Imagen" ;
+ Text [ french ] = "Image" ;
+ Text [ dutch ] = "Afbeelding" ;
+ Text[ chinese_simplified ] = "ͼÐÎ";
+ Text[ russian ] = "Ðèñóíîê";
+ Text[ polish ] = "Grafika";
+ Text[ japanese ] = "¸Þ×̨¯¸";
+ Text[ chinese_traditional ] = "¹Ï¤ù";
+ Text[ greek ] = "Ãñáöéêü";
+ Text[ korean ] = "±×·¡ÇÈ";
+ Text[ arabic ] = "ÕæÑÉ";
+ Text[ turkish ] = "Grafik";
+ Text[ language_user1 ] = " ";
+};
+String RID_STR_DEFAULT_SELECT_SEQ
+{
+ Text = "Standardselektion" ;
+ Text [ English ] = "Default selection" ;
+ Text [ portuguese ] = "Selecção padrão" ;
+ Text [ english_us ] = "Default selection" ;
+ Text [ portuguese_brazilian ] = "Default Selektion" ;
+ Text [ swedish ] = "Standardmarkering" ;
+ Text [ danish ] = "Standardmarkering" ;
+ Text [ italian ] = "Selezione standard" ;
+ Text [ spanish ] = "Selección predeterminada" ;
+ Text [ french ] = "Sélection par défaut" ;
+ Text [ dutch ] = "Standaardselectie" ;
+ Text[ chinese_simplified ] = "±ê׼ѡÔñ";
+ Text[ russian ] = "Âûáîð ïî óìîë÷àíèþ";
+ Text[ polish ] = "Selekcja domyœlna";
+ Text[ japanese ] = "•W€‘I‘ð”͈Í";
+ Text[ chinese_traditional ] = "¼Ð·Ç¿ï¾Ü";
+ Text[ greek ] = "ÐñïåðéëåãìÝíç åðéëïãÞ";
+ Text[ korean ] = "±âº» ¼±ÅÃ";
+ Text[ arabic ] = "ÊÍÏíÏ ÇÝÊÑÇÖí";
+ Text[ turkish ] = "Standart seçim";
+ Text[ language_user1 ] = " ";
+};
+String RID_STR_DEFAULT_BUTTON
+{
+ Text = "Standardschaltfläche" ;
+ Text [ English ] = "Default button" ;
+ Text [ portuguese ] = "Botão padrão" ;
+ Text [ english_us ] = "Default button" ;
+ Text [ portuguese_brazilian ] = "Standard-Schaltfläche" ;
+ Text [ swedish ] = "Standardknapp" ;
+ Text [ danish ] = "Standardknap" ;
+ Text [ italian ] = "Pulsante standard" ;
+ Text [ spanish ] = "Botón predeterminado" ;
+ Text [ french ] = "Bouton par défaut" ;
+ Text [ dutch ] = "Standaardknop" ;
+ Text[ chinese_simplified ] = "±ê×¼°´Å¥";
+ Text[ russian ] = "Ñòàíäàðòíàÿ êíîïêà";
+ Text[ polish ] = "Przycisk domyœlny";
+ Text[ japanese ] = "•W€ÎÞÀÝ";
+ Text[ chinese_traditional ] = "¼Ð·Ç«ö¶s";
+ Text[ greek ] = "Ðåäßï åðéëïãÞò (ÐñïåðéëïãÞ)";
+ Text[ korean ] = "±âº» ¹öÆ°";
+ Text[ arabic ] = "ãÝÊÇÍ ÇÝÊÑÇÖí";
+ Text[ turkish ] = "Standart düðme";
+ Text[ language_user1 ] = " ";
+};
+String RID_STR_LABELCONTROL
+{
+ Text = "Beschriftungsfeld";
+ Text [ ENGLISH ] = "Label field";
+ Text[ english_us ] = "Label field";
+ Text[ portuguese ] = "Campo de rótulo";
+ Text[ russian ] = "Ïîëå ïîäïèñè";
+ Text[ greek ] = "Ðåäßï åðéãñáöÞò";
+ Text[ dutch ] = "Titelveld";
+ Text[ french ] = "Champ d'étiquette";
+ Text[ spanish ] = "Campo de etiqueta";
+ Text[ italian ] = "Testo fisso";
+ Text[ danish ] = "Etiketfelt";
+ Text[ swedish ] = "Etikettfält";
+ Text[ polish ] = "Pole etykiety";
+ Text[ portuguese_brazilian ] = "Label field";
+ Text[ japanese ] = "×ÍÞŲ̀°ÙÄÞ";
+ Text[ korean ] = "¶óº§ Çʵå";
+ Text[ chinese_simplified ] = "±êÇ©À¸";
+ Text[ chinese_traditional ] = "¼ÐÅÒÄæ¦ì";
+ Text[ arabic ] = "ÍÞá ÚäæäÉ";
+ Text[ turkish ] = "Etiket alaný";
+};
+String RID_STR_LABEL
+{
+ Text = "Titel" ;
+ Text [ English ] = "Label" ;
+ Text [ portuguese ] = "Título" ;
+ Text [ english_us ] = "Label" ;
+ Text [ portuguese_brazilian ] = "Titel" ;
+ Text [ swedish ] = "Rubrik" ;
+ Text [ danish ] = "Titel" ;
+ Text [ italian ] = "Titolo" ;
+ Text [ spanish ] = "Título" ;
+ Text [ french ] = "Titre" ;
+ Text [ dutch ] = "Titel" ;
+ Text[ chinese_simplified ] = "±êÌâ";
+ Text[ russian ] = "Çàãîëîâîê";
+ Text[ polish ] = "Etykieta";
+ Text[ japanese ] = "À²ÄÙ";
+ Text[ chinese_traditional ] = "¼ÐÃD";
+ Text[ greek ] = "Ôßôëïò";
+ Text[ korean ] = "Á¦¸ñ";
+ Text[ arabic ] = "ÇáÚäæÇä";
+ Text[ turkish ] = "Baþlýk";
+ Text[ language_user1 ] = " ";
+};
+String RID_STR_ALIGN
+{
+ Text = "Ausrichtung" ;
+ Text [ English ] = "Alignment" ;
+ Text [ portuguese ] = "Alinhamento" ;
+ Text [ english_us ] = "Alignment" ;
+ Text [ portuguese_brazilian ] = "Ausrichtung" ;
+ Text [ swedish ] = "Justering" ;
+ Text [ danish ] = "Justering" ;
+ Text [ italian ] = "Allineamento" ;
+ Text [ spanish ] = "Alineación" ;
+ Text [ french ] = "Alignement" ;
+ Text [ dutch ] = "Uitlijning" ;
+ Text[ chinese_simplified ] = "¶ÔÆë";
+ Text[ russian ] = "Âûðàâíèâàíèå";
+ Text[ polish ] = "Wyrównanie";
+ Text[ japanese ] = "”z’u";
+ Text[ chinese_traditional ] = "¹ï»ô";
+ Text[ greek ] = "Óôïß÷éóç";
+ Text[ korean ] = "¸ÂÃã";
+ Text[ arabic ] = "ÇáãÍÇÐÇÉ";
+ Text[ turkish ] = "Hizalama";
+ Text[ language_user1 ] = " ";
+};
+String RID_STR_FONT
+{
+ Text = "Zeichensatz" ;
+ Text [ English ] = "Font" ;
+ Text [ portuguese ] = "Conjunto de caracteres" ;
+ Text [ english_us ] = "Character set" ;
+ Text [ portuguese_brazilian ] = "Zeichensatz" ;
+ Text [ swedish ] = "Teckenuppsättning" ;
+ Text [ danish ] = "Tegnsæt" ;
+ Text [ italian ] = "Tipo di carattere" ;
+ Text [ spanish ] = "Juego de caracteres" ;
+ Text [ french ] = "Jeu de caractères" ;
+ Text [ dutch ] = "Tekenset" ;
+ Text[ chinese_simplified ] = "×ÖÌå";
+ Text[ russian ] = "Íàáîð çíàêîâ";
+ Text[ polish ] = "Zbiór znaków";
+ Text[ japanese ] = "•¶Žš—ñ";
+ Text[ chinese_traditional ] = "¦r¤¸";
+ Text[ greek ] = "Óåô ÷áñáêôÞñùí";
+ Text[ korean ] = "¹®ÀÚÁýÇÕ";
+ Text[ arabic ] = "ãÌãæÚÉ ÃÍÑÝ";
+ Text[ turkish ] = "Karakter kümesi";
+ Text[ language_user1 ] = " ";
+};
+String RID_STR_BACKGROUNDCOLOR
+{
+ Text = "Hintergrundfarbe" ;
+ Text [ English ] = "Background color" ;
+ Text [ portuguese ] = "Cor de fundo" ;
+ Text [ english_us ] = "Background color" ;
+ Text [ portuguese_brazilian ] = "Hintergrundfarbe" ;
+ Text [ swedish ] = "Bakgrundsfärg" ;
+ Text [ danish ] = "Baggrundsfarve" ;
+ Text [ italian ] = "Colore di sfondo" ;
+ Text [ spanish ] = "Color de fondo" ;
+ Text [ french ] = "Couleur d'arrière-plan" ;
+ Text [ dutch ] = "Achtergrondkleur" ;
+ Text[ chinese_simplified ] = "±³¾°ÑÕÉ«";
+ Text[ russian ] = "Öâåò ôîíà";
+ Text[ polish ] = "Kolor t³a";
+ Text[ japanese ] = "”wŒiF";
+ Text[ chinese_traditional ] = "­I´ºÃC¦â";
+ Text[ greek ] = "×ñþìá öüíôïõ";
+ Text[ korean ] = "¹è°æ»ö";
+ Text[ arabic ] = "áæä ÇáÎáÝíÉ";
+ Text[ turkish ] = "Artalan rengi";
+ Text[ language_user1 ] = " ";
+};
+String RID_STR_BORDER
+{
+ Text = "Rahmen" ;
+ Text [ English ] = "Border" ;
+ Text [ portuguese ] = "Moldura" ;
+ Text [ english_us ] = "Border" ;
+ Text [ portuguese_brazilian ] = "Rahmen" ;
+ Text [ swedish ] = "Ram" ;
+ Text [ danish ] = "Ramme" ;
+ Text [ italian ] = "Cornice" ;
+ Text [ spanish ] = "Marco" ;
+ Text [ french ] = "Cadre" ;
+ Text [ dutch ] = "Kader" ;
+ Text[ chinese_simplified ] = "¿ò";
+ Text[ russian ] = "Ðàìêà";
+ Text[ polish ] = "Ramka";
+ Text[ japanese ] = "˜g";
+ Text[ chinese_traditional ] = "®Ø";
+ Text[ greek ] = "Ðåñßãñáììá";
+ Text[ korean ] = "Å׵θ®";
+ Text[ arabic ] = "ßÇÏÑ";
+ Text[ turkish ] = "Çerçeve";
+ Text[ language_user1 ] = " ";
+};
+String RID_STR_HSCROLL
+{
+ Text = "Horizontaler Scrollbar" ;
+ Text [ English ] = "Horizontal scrollbar" ;
+ Text [ portuguese ] = "Barra de deslocamento horizontal" ;
+ Text [ english_us ] = "Horizontal scroll bar" ;
+ Text [ portuguese_brazilian ] = "Horizontaler Scrollbar" ;
+ Text [ swedish ] = "Horisontal rullningslist" ;
+ Text [ danish ] = "Vandret rullepanel" ;
+ Text [ italian ] = "Barra di scorrimento orizzontale" ;
+ Text [ spanish ] = "Barra de deplazamiento horizontal" ;
+ Text [ french ] = "Barre de défilement horizontale" ;
+ Text [ dutch ] = "Horizontale beeldschuifbalk" ;
+ Text[ chinese_simplified ] = "ˮƽ·½Ïò¹ö¶¯À¸";
+ Text[ russian ] = "Ãîðèçîíòàëüíàÿ ïîëîñà ïðîêðóòêè";
+ Text[ polish ] = "Poziomy pasek przewijania";
+ Text[ japanese ] = "…•½‚Ƚ¸Û°ÙÊÞ°";
+ Text[ chinese_traditional ] = "¤ô¥­¦¡¨÷¶b";
+ Text[ greek ] = "Ïñéæüíôéá ãñáììÞ êýëéóçò";
+ Text[ korean ] = "¼öÆò ½ºÅ©·Ñ¹Ù";
+ Text[ arabic ] = "ÔÑíØ ÊÍÑíß ÇáÕÝÍÉ ÃÝÞíÇð";
+ Text[ turkish ] = "Yatay kaydýrma çubuðu";
+ Text[ language_user1 ] = " ";
+};
+String RID_STR_VSCROLL
+{
+ Text = "Vertikaler Scrollbar" ;
+ Text [ English ] = "Vertical scrollbar" ;
+ Text [ portuguese ] = "Barra de desl. vertical" ;
+ Text [ english_us ] = "Vertical scroll bar" ;
+ Text [ portuguese_brazilian ] = "Vertikaler Scrollbar" ;
+ Text [ swedish ] = "Vertikal rullningslist" ;
+ Text [ danish ] = "Lodret rullepanel" ;
+ Text [ italian ] = "Barra di scorrimento verticale" ;
+ Text [ spanish ] = "Barra de desplazamiento vertical" ;
+ Text [ french ] = "Barre de défilement verticale" ;
+ Text [ dutch ] = "Verticale beeldschuifbalk" ;
+ Text[ chinese_simplified ] = "´¹Ö±·½Ïò¹ö¶¯À¸";
+ Text[ russian ] = "Âåðòèêàëüíàÿ ïîëîñà ïðîêðóòêè";
+ Text[ polish ] = "Pionowy pasek przesuwania";
+ Text[ japanese ] = "‚’¼‚Ƚ¸Û°ÙÊÞ°";
+ Text[ chinese_traditional ] = "««ª½¤è¦V¨÷¶b";
+ Text[ greek ] = "Êáôáêüñõöç ãñáììÞ êýëéóçò";
+ Text[ korean ] = "¼öÁ÷ ½ºÅ©·Ñ¹Ù";
+ Text[ arabic ] = "ÔÑíØ ÊÍÑíß ÇáÕÝÍÉ ÑÃÓíÇð";
+ Text[ turkish ] = "Dikey kaydýrma çubuðu";
+ Text[ language_user1 ] = " ";
+};
+String RID_STR_MULTILINE
+{
+ Text = "Mehrzeilig" ;
+ Text [ English ] = "Multiline" ;
+ Text [ portuguese ] = "Várias linhas" ;
+ Text [ english_us ] = "Multiline Input" ;
+ Text [ portuguese_brazilian ] = "Mehrzeilige Eingabe" ;
+ Text [ swedish ] = "Flerradig" ;
+ Text [ danish ] = "Flerlinjede" ;
+ Text [ italian ] = "Digitazione a più righe" ;
+ Text [ spanish ] = "Varias líneas" ;
+ Text [ french ] = "Saisie à plusieurs lignes" ;
+ Text [ dutch ] = "Meerdere regels" ;
+ Text[ chinese_simplified ] = "¶àÐÐ";
+ Text[ russian ] = "Ìíîãîñòðî÷íûé";
+ Text[ polish ] = "Wielowierszowy";
+ Text[ japanese ] = "•¡”s";
+ Text[ chinese_traditional ] = "¦h¦æ";
+ Text[ greek ] = "Ðïëýóôõëï";
+ Text[ korean ] = "¿©·¯ ÁÙ ÀÔ·Â";
+ Text[ arabic ] = "ãÊÚÏÏ ÇáÃÓØÑ";
+ Text[ turkish ] = "Çok satýrlý giriþ";
+ Text[ language_user1 ] = " ";
+};
+String RID_STR_MULTISELECTION
+{
+ Text = "Mehrfachselektion" ;
+ Text [ English ] = "Multiselection" ;
+ Text [ portuguese ] = "Multi-selecção" ;
+ Text [ english_us ] = "Multiselection" ;
+ Text [ portuguese_brazilian ] = "Mehrfachselektion" ;
+ Text [ swedish ] = "Multipel markering" ;
+ Text [ danish ] = "Multimarkering" ;
+ Text [ italian ] = "Selezione multipla" ;
+ Text [ spanish ] = "Selección múltiple" ;
+ Text [ french ] = "Sélection multiple" ;
+ Text [ dutch ] = "Meevoudige selectie" ;
+ Text[ chinese_simplified ] = "¶àÖØÑ¡Ôñ";
+ Text[ russian ] = "Ãðóïïîâîå âûäåëåíèå";
+ Text[ polish ] = "Wielokrotny wybór";
+ Text[ japanese ] = "•¡”‘I‘ð";
+ Text[ chinese_traditional ] = "¦h­«¿ï¾Ü";
+ Text[ greek ] = "ÐïëëáðëÞ åðéëïãÞ";
+ Text[ korean ] = "´ÙÁß ¼±ÅÃ";
+ Text[ arabic ] = "ÊÍÏíÏ ãÊÚÏÏ";
+ Text[ turkish ] = "Çoklu seçim";
+ Text[ language_user1 ] = " ";
+};
+String RID_STR_NAME
+{
+ Text = "Name" ;
+ Text [ English ] = "Name" ;
+ Text [ portuguese ] = "Nome" ;
+ Text [ english_us ] = "Name" ;
+ Text [ portuguese_brazilian ] = "Name" ;
+ Text [ swedish ] = "Namn" ;
+ Text [ danish ] = "Navn" ;
+ Text [ italian ] = "Nome" ;
+ Text [ spanish ] = "Nombre" ;
+ Text [ french ] = "Nom" ;
+ Text [ dutch ] = "Naam" ;
+ Text[ chinese_simplified ] = "Ãû³Æ";
+ Text[ russian ] = "Èìÿ";
+ Text[ polish ] = "Nazwa";
+ Text[ japanese ] = "–¼‘O";
+ Text[ chinese_traditional ] = "¦WºÙ";
+ Text[ greek ] = "¼íïìá";
+ Text[ korean ] = "À̸§";
+ Text[ arabic ] = "ÇáÇÓã";
+ Text[ turkish ] = "Ad";
+ Text[ language_user1 ] = " ";
+};
+String RID_STR_TABINDEX
+{
+ Text = "Reihenfolge" ;
+ Text [ ENGLISH ] = "TabIndex" ;
+ Text [ portuguese ] = "Ordem" ;
+ Text [ english_us ] = "Order" ;
+ Text [ portuguese_brazilian ] = "Reihenfolge" ;
+ Text [ swedish ] = "Ordningsföljd" ;
+ Text [ danish ] = "Rækkefølge" ;
+ Text [ italian ] = "Sequenza" ;
+ Text [ spanish ] = "Orden" ;
+ Text [ french ] = "Ordre" ;
+ Text [ dutch ] = "Volgorde" ;
+ Text[ chinese_simplified ] = "˳Ðò";
+ Text[ russian ] = "Ïîðÿäîê";
+ Text[ polish ] = "KolejnoϾ";
+ Text[ japanese ] = "‡˜";
+ Text[ chinese_traditional ] = "¶¶§Ç";
+ Text[ greek ] = "ÄéÜôáîç";
+ Text[ korean ] = "¼ø¼­";
+ Text[ arabic ] = "ÇáÊÑÊíÈ";
+ Text[ turkish ] = "Sýra";
+ Text[ language_user1 ] = " ";
+};
+String RID_STR_NAVIGATION
+{
+ Text = "Navigation" ;
+ Text [ ENGLISH ] = "Navigation" ;
+ Text [ portuguese ] = "Navegação" ;
+ Text [ english_us ] = "Navigation" ;
+ Text [ portuguese_brazilian ] = "Navigation" ;
+ Text [ swedish ] = "Navigation" ;
+ Text [ danish ] = "Navigation" ;
+ Text [ italian ] = "Navigazione" ;
+ Text [ spanish ] = "Navegación" ;
+ Text [ french ] = "Navigation" ;
+ Text [ dutch ] = "Navigatie" ;
+ Text[ chinese_simplified ] = "ä¯ÀÀ";
+ Text[ russian ] = "Íàâèãàöèÿ";
+ Text[ polish ] = "Nawigacja";
+ Text[ japanese ] = "ÅËÞ¹Þ°¼®Ý";
+ Text[ chinese_traditional ] = "ÂsÄý";
+ Text[ greek ] = "Ìåôáêßíçóç";
+ Text[ korean ] = "Ž»ö";
+ Text[ arabic ] = "ÇáãáÇÍÉ";
+ Text[ turkish ] = "Dolaþma";
+ Text[ language_user1 ] = " ";
+};
+String RID_STR_FILTER_CRITERIA
+{
+ Text = "Filter" ;
+ Text [ ENGLISH ] = "Filter" ;
+ Text [ english_us ] = "Filter" ;
+ Text[ italian ] = "Filtro";
+ Text[ portuguese_brazilian ] = "Filter";
+ Text[ portuguese ] = "Filtro";
+ Text[ danish ] = "Filter";
+ Text[ french ] = "Filtre";
+ Text[ swedish ] = "Filter";
+ Text[ dutch ] = "Filter";
+ Text[ spanish ] = "Filtro";
+ Text[ chinese_simplified ] = "ɸѡ";
+ Text[ russian ] = "Ôèëüòð";
+ Text[ polish ] = "Filtr";
+ Text[ japanese ] = "̨ÙÀ";
+ Text[ chinese_traditional ] = "¿z¿ï";
+ Text[ greek ] = "Ößëôñï";
+ Text[ korean ] = "ÇÊÅÍ";
+ Text[ arabic ] = "ÝáÊÑ";
+ Text[ turkish ] = "Filtre";
+ Text[ language_user1 ] = " ";
+};
+String RID_STR_SORT_CRITERIA
+{
+ Text = "Sortierung" ;
+ Text [ ENGLISH ] = "Sort" ;
+ Text [ english_us ] = "Sort" ;
+ Text[ italian ] = "Ordina";
+ Text[ portuguese_brazilian ] = "Sort";
+ Text[ portuguese ] = "Ordenar";
+ Text[ danish ] = "Sortering";
+ Text[ french ] = "Tri";
+ Text[ swedish ] = "Sortering";
+ Text[ dutch ] = "Sortering";
+ Text[ spanish ] = "Ordenar";
+ Text[ chinese_simplified ] = "ÅÅÐò";
+ Text[ russian ] = "Ñîðòèðîâêà";
+ Text[ polish ] = "Sortowanie";
+ Text[ japanese ] = "•À‚בւ¦";
+ Text[ chinese_traditional ] = "±Æ§Ç";
+ Text[ greek ] = "Ôáîéíüìçóç";
+ Text[ korean ] = "Á¤·Ä";
+ Text[ arabic ] = "ÇáÝÑÒ";
+ Text[ turkish ] = "Sýralama";
+ Text[ language_user1 ] = " ";
+};
+String RID_STR_RECORDMARKER
+{
+ Text = "Datensatzmarkierer" ;
+ Text[ english_us ] = "Record marker";
+ Text[ portuguese ] = "Marcador de registos";
+ Text[ russian ] = "Ìàðêåð çàïèñè";
+ Text[ dutch ] = "Record marker";
+ Text[ french ] = "Marqueur d'enregistrement";
+ Text[ spanish ] = "Marcador de registros";
+ Text[ italian ] = "Selezionatore record di dati";
+ Text[ danish ] = "Datapostmarkering";
+ Text[ swedish ] = "Datapostmarkör";
+ Text[ polish ] = "Znacznik rekordów";
+ Text[ portuguese_brazilian ] = "Record marker";
+ Text[ japanese ] = "Úº°ÄÞ Ï°¶°";
+ Text[ chinese_simplified ] = "Êý¾Ý±ê¼Ç";
+ Text[ chinese_traditional ] = "¸ê®Æ¼Ð°O";
+ Text[ greek ] = "ÓÞìáíóç åããñáöÞò";
+ Text[ korean ] = "·¹ÄÚµå Ç¥½Ä";
+ Text[ arabic ] = "ãõÍÏÏ ÇáÓÌá";
+ Text[ turkish ] = "Veri kümesi iþareti";
+ Text[ language_user1 ] = " ";
+};
+String RID_STR_FILTERPROPOSAL
+{
+ Text = "Filtervorschlag";
+ Text [ ENGLISH ] = " Filter proposal";
+ Text [ english_us ] = "Filter proposal";
+ Text[ portuguese ] = "Proposta de filtro";
+ Text[ russian ] = "Ðåêîìåíäàöèÿ ôèëüòðà";
+ Text[ greek ] = "Ðñïôåéíüìåíï ößëôñïõ";
+ Text[ dutch ] = "Filtervoorstel";
+ Text[ french ] = "Proposition de filtre";
+ Text[ spanish ] = "Propuesta de filtro";
+ Text[ italian ] = "Filtro proposto";
+ Text[ danish ] = "Filterforslag";
+ Text[ swedish ] = "Filterförslag";
+ Text[ polish ] = "Propozycja filtru";
+ Text[ portuguese_brazilian ] = "Filter proposal";
+ Text[ japanese ] = "̨ÙÀ‚ÌŒó•â";
+ Text[ korean ] = "ÇÊÅÍ Á¦¾È";
+ Text[ chinese_simplified ] = "½¨ÒéʹÓùýÂËÆ÷";
+ Text[ chinese_traditional ] = "«Øij¨Ï¥Î¹LÂo¾¹";
+ Text[ arabic ] = "ÇÞÊÑÇÍ ÝáÊÑ";
+ Text[ turkish ] = "Filtre önerisi";
+ Text[ language_user1 ] = " ";
+};
+String RID_STR_NAVIGATIONBAR
+{
+ Text = "Navigationsleiste" ;
+ Text [ ENGLISH ] = "Navigationbar" ;
+ Text [ english_us ] = "Navigation bar" ;
+ Text[ italian ] = "Barra di navigazione";
+ Text[ portuguese_brazilian ] = "Navigationbar";
+ Text[ portuguese ] = "Barra de navegação";
+ Text[ danish ] = "Navigationslinje";
+ Text[ french ] = "Barre de navigation";
+ Text[ swedish ] = "Navigationslist";
+ Text[ dutch ] = "Navigatiebalk";
+ Text[ spanish ] = "Barra de navegación";
+ Text[ chinese_simplified ] = "ä¯ÀÀµØÖ·À¸";
+ Text[ russian ] = "Ïàíåëü íàâèãàöèè";
+ Text[ polish ] = "Pasek nawigacji";
+ Text[ japanese ] = "ÅËÞ¹Þ°¼®Ý ÊÞ°";
+ Text[ chinese_traditional ] = "ÂsÄý¦ì§}¦C";
+ Text[ greek ] = "ÃñáììÞ ìåôáêßíçóçò";
+ Text[ korean ] = "Ž»ö Ç¥½ÃÁÙ";
+ Text[ arabic ] = "ÔÑíØ ÇáãáÇÍÉ";
+ Text[ turkish ] = "Dolaþma çubuðu";
+ Text[ language_user1 ] = " ";
+};
+String RID_STR_CYCLE
+{
+ Text = "Zyklus" ;
+ Text [ ENGLISH ] = "Cycle" ;
+ Text [ portuguese ] = "Ciclo" ;
+ Text [ english_us ] = "Cycle" ;
+ Text [ portuguese_brazilian ] = "Zyklus" ;
+ Text [ swedish ] = "Cykel" ;
+ Text [ danish ] = "Cyklus" ;
+ Text [ italian ] = "Ciclo" ;
+ Text [ spanish ] = "Ciclo" ;
+ Text [ french ] = "Cycle" ;
+ Text [ dutch ] = "Cyclus" ;
+ Text[ chinese_simplified ] = "Ñ­»·";
+ Text[ russian ] = "Öèêë";
+ Text[ polish ] = "Cykl";
+ Text[ japanese ] = "»²¸Ù";
+ Text[ chinese_traditional ] = "´`Àô";
+ Text[ greek ] = "Êýêëïò";
+ Text[ korean ] = "»çÀÌŬ";
+ Text[ arabic ] = "ÏÇÆÑÉ";
+ Text[ turkish ] = "Devre";
+ Text[ language_user1 ] = " ";
+};
+String RID_STR_TABSTOP
+{
+ Text = "Tabstop" ;
+ Text [ English ] = "Tabstop" ;
+ Text [ portuguese ] = "Tabstop" ;
+ Text [ english_us ] = "Tabstop" ;
+ Text [ portuguese_brazilian ] = "Tabstop" ;
+ Text [ swedish ] = "Tabbstopp" ;
+ Text [ danish ] = "Tabstop" ;
+ Text [ italian ] = "Tabstop" ;
+ Text [ spanish ] = "Tabstop" ;
+ Text [ french ] = "Tabstop" ;
+ Text [ dutch ] = "Tabstop" ;
+ Text[ chinese_simplified ] = "ÖƱí·û";
+ Text[ russian ] = "Tabstop";
+ Text[ polish ] = "Tabstop";
+ Text[ japanese ] = "ÀÌ޽įÌß";
+ Text[ chinese_traditional ] = "»sªí²Å";
+ Text[ greek ] = "ÓôçëïèÝôçò";
+ Text[ korean ] = "ÅÇ ÁßÁö";
+ Text[ arabic ] = "ÚáÇãÉ ÌÏæáÉ";
+ Text[ turkish ] = "Sekme duraðý";
+ Text[ language_user1 ] = " ";
+};
+String RID_STR_CONTROLSOURCE
+{
+ Text = "Datenfeld" ;
+ Text [ English ] = "Data field" ;
+ Text [ portuguese ] = "Campo de dados" ;
+ Text [ english_us ] = "Field name" ;
+ Text [ portuguese_brazilian ] = "Datenfeld" ;
+ Text [ swedish ] = "Datafält" ;
+ Text [ danish ] = "Datafelt" ;
+ Text [ italian ] = "Campo di dati" ;
+ Text [ spanish ] = "Campo de datos" ;
+ Text [ french ] = "Champ de données" ;
+ Text [ dutch ] = "Gegevensveld" ;
+ Text[ chinese_simplified ] = "Êý¾Ý×Ö¶Î";
+ Text[ russian ] = "Ïîëå äàííûõ";
+ Text[ polish ] = "Pole danych";
+ Text[ japanese ] = "ÃÞ°Ą̀°ÙÄÞ";
+ Text[ chinese_traditional ] = "¸ê®ÆÄæ¦ì";
+ Text[ greek ] = "Ðåäßï äåäïìÝíùí";
+ Text[ korean ] = "µ¥ÀÌÅÍ Çʵå";
+ Text[ arabic ] = "ÍÞá ÈíÇäÇÊ";
+ Text[ turkish ] = "Veri alaný";
+ Text[ language_user1 ] = " ";
+};
+String RID_STR_DROPDOWN
+{
+ Text = "Aufklappbar" ;
+ Text [ English ] = "Dropdown" ;
+ Text [ portuguese ] = "Desdobrável" ;
+ Text [ english_us ] = "Dropdown" ;
+ Text [ portuguese_brazilian ] = "Aufklappbar" ;
+ Text [ swedish ] = "Öppningsbar" ;
+ Text [ danish ] = "Udklappelig" ;
+ Text [ italian ] = "Apribile" ;
+ Text [ spanish ] = "Desplegable" ;
+ Text [ french ] = "Déroulante" ;
+ Text [ dutch ] = "Openslaan mogelijk" ;
+ Text[ chinese_simplified ] = "¿ÉÀ©Õ¹";
+ Text[ russian ] = "Ðàñêðûâàåìûé";
+ Text[ polish ] = "Rozwijany";
+ Text[ japanese ] = "ÄÞÛ¯ÌßÀÞ³Ý";
+ Text[ chinese_traditional ] = "¥iÂX®i";
+ Text[ greek ] = "Äõíáôüôçôá áíïßãìáôïò";
+ Text[ korean ] = "µå·Ó´Ù¿î";
+ Text[ arabic ] = "ãäÓÏá";
+ Text[ turkish ] = "Açýlabilir";
+ Text[ language_user1 ] = " ";
+};
+String RID_STR_BOUNDCOLUMN
+{
+ Text = "Gebundenes Feld" ;
+ Text [ English ] = "Bound field" ;
+ Text [ portuguese ] = "Coluna ligada" ;
+ Text [ english_us ] = "Bound column" ;
+ Text [ portuguese_brazilian ] = "Gebundenes Feld" ;
+ Text [ swedish ] = "Bundet fält" ;
+ Text [ danish ] = "Bundet felt" ;
+ Text [ italian ] = "Campo collegato" ;
+ Text [ spanish ] = "Campo ligado" ;
+ Text [ french ] = "Champ lié" ;
+ Text [ dutch ] = "Gebonden veld" ;
+ Text[ chinese_simplified ] = "¹Ì¶¨µÄ×Ö¶Î";
+ Text[ russian ] = "Ïðèâÿçàííîå ïîëå";
+ Text[ polish ] = "Powi¹zane pole";
+ Text[ japanese ] = "ŠÖ˜A‚ ‚ę́°ÙÄÞ";
+ Text[ chinese_traditional ] = "©T©wªºÄæ¦ì";
+ Text[ greek ] = "ÄåóìåõìÝíï ðåäßï";
+ Text[ korean ] = "¹Ù¿îµå ¿­";
+ Text[ arabic ] = "ÍÞá ãÑÈæØ";
+ Text[ turkish ] = "Baðlý alan";
+ Text[ language_user1 ] = " ";
+};
+String RID_STR_LISTSOURCE
+{
+ Text = "Listeninhalt" ;
+ Text [ English ] = "Listsource" ;
+ Text [ portuguese ] = "Contéudo de lista" ;
+ Text [ english_us ] = "List content" ;
+ Text [ portuguese_brazilian ] = "Datenquelle" ;
+ Text [ swedish ] = "Listinnehåll" ;
+ Text [ danish ] = "Listeindhold" ;
+ Text [ italian ] = "Contenuto elenco" ;
+ Text [ spanish ] = "Contenido de lista" ;
+ Text [ french ] = "Contenu de liste" ;
+ Text [ dutch ] = "Lijstinhoud" ;
+ Text[ chinese_simplified ] = "ÁбíÄÚÈÝ";
+ Text[ russian ] = "Ñîäåðæèìîå ñïèñêà";
+ Text[ polish ] = "ZawartoϾ listy";
+ Text[ japanese ] = "ؽēà—e";
+ Text[ chinese_traditional ] = "²M³æ¤º®e";
+ Text[ greek ] = "Ðåñéå÷üìåíï ëßóôáò";
+ Text[ korean ] = "¸ñ·Ï ³»¿ë";
+ Text[ arabic ] = "ãÍÊæíÇÊ ÇáÞÇÆãÉ";
+ Text[ turkish ] = "Liste içeriði";
+ Text[ language_user1 ] = " ";
+};
+String RID_STR_LISTSOURCETYPE
+{
+ Text = "Art des Listeninhalts" ;
+ Text [ English ] = "Type of listsource" ;
+ Text [ portuguese ] = "Tipo do conteúdo da lista" ;
+ Text [ english_us ] = "Type of list contents" ;
+ Text [ portuguese_brazilian ] = "Typ der Datenquelle" ;
+ Text [ swedish ] = "Typ av listinnehåll" ;
+ Text [ danish ] = "Listeindholdstype" ;
+ Text [ italian ] = "Tipo del contenuto della lista" ;
+ Text [ spanish ] = "Tipo del contenido de lista" ;
+ Text [ french ] = "Type du contenu de liste" ;
+ Text [ dutch ] = "Type lijstinhoud" ;
+ Text[ chinese_simplified ] = "ÁбíÄÚÈݵÄÀàÐÍ";
+ Text[ russian ] = "Òèï ñîäåðæèìîãî ñïèñêà";
+ Text[ polish ] = "Typ zawartoœci listy";
+ Text[ japanese ] = "ؽēà—e‚ÌŽí—Þ";
+ Text[ chinese_traditional ] = "²M³æ¤º®eªºÃþ«¬";
+ Text[ greek ] = "Åßäïò ôïõ ðåñéå÷ïìÝíïõ ëßóôáò";
+ Text[ korean ] = "¸ñ·Ï ³»¿ëÀÇ À¯Çü";
+ Text[ arabic ] = "äæÚ ãÍÊæíÇÊ ÇáÞÇÆãÉ";
+ Text[ turkish ] = "Liste içeriði türü";
+ Text[ language_user1 ] = " ";
+};
+String RID_STR_CURSORSOURCE
+{
+ Text = "Inhalt" ;
+ Text [ English ] = "Content" ;
+ Text[ english_us ] = "Content";
+ Text[ portuguese ] = "Conteúdo";
+ Text[ russian ] = "Ñîäåðæèìîå";
+ Text[ greek ] = "Ðåñéå÷üìåíá";
+ Text[ dutch ] = "Inhoud";
+ Text[ french ] = "Contenu";
+ Text[ spanish ] = "Contenido";
+ Text[ italian ] = "Contenuto";
+ Text[ danish ] = "Datakilde";
+ Text[ swedish ] = "Innehåll";
+ Text[ polish ] = "ZawartoϾ";
+ Text[ portuguese_brazilian ] = "Datenquelle";
+ Text[ japanese ] = "“à—e";
+ Text[ korean ] = "³»¿ë";
+ Text[ chinese_simplified ] = "ÄÚÈÝ";
+ Text[ chinese_traditional ] = "¤º®e";
+ Text[ turkish ] = "Veri kaynaðý";
+ Text[ arabic ] = "ÇáãÍÊæíÇÊ";
+};
+String RID_STR_CURSORSOURCETYPE
+{
+ Text = "Art des Inhaltes" ;
+ Text [ English ] = "Type of Content" ;
+ Text[ english_us ] = "Content Type";
+ Text[ portuguese ] = "Tipo de conteúdo";
+ Text[ russian ] = "Òèï ñîäåðæèìîãî";
+ Text[ greek ] = "Ôýðïò ðåñéå÷ïìÝíùí";
+ Text[ dutch ] = "Soort inhoud";
+ Text[ french ] = "Type de contenu";
+ Text[ spanish ] = "Tipo de contenido";
+ Text[ italian ] = "Tipo di contenuto";
+ Text[ danish ] = "Datakildetype";
+ Text[ swedish ] = "Typ av innehåll";
+ Text[ polish ] = "Rodzaj zawartoœci";
+ Text[ portuguese_brazilian ] = "Typ der Datenquelle";
+ Text[ japanese ] = "“à—e‚ÌŽí—Þ";
+ Text[ korean ] = "³»¿ë Á¾·ù";
+ Text[ chinese_simplified ] = "ÄÚÈÝÀàÐÍ";
+ Text[ chinese_traditional ] = "¤º®eÃþ«¬";
+ Text[ turkish ] = "Veri kaynaðý türü";
+ Text[ arabic ] = "äæÚ ÇáãÍÊæíÇÊ";
+};
+String RID_STR_ALLOW_ADDITIONS
+{
+ Text = "Daten hinzufügen" ;
+ Text [ English ] = "Allow additions" ;
+ Text [ portuguese ] = "Adicionar dados" ;
+ Text [ english_us ] = "Allow additions" ;
+ Text [ portuguese_brazilian ] = "Daten hinzufügen" ;
+ Text [ swedish ] = "Lägg till data" ;
+ Text [ danish ] = "Tilføj data" ;
+ Text [ italian ] = "Aggiungi dati" ;
+ Text [ spanish ] = "Añadir datos" ;
+ Text [ french ] = "Ajouter des données" ;
+ Text [ dutch ] = "Gegevens toevoegen" ;
+ Text[ chinese_simplified ] = "ÐÂÔöÊý¾Ý";
+ Text[ russian ] = "Äîáàâèòü äàííûå";
+ Text[ polish ] = "Dodaj dane";
+ Text[ japanese ] = "ÃÞ°À‚̒ljÁ";
+ Text[ chinese_traditional ] = "¼W¥[¸ê®Æ";
+ Text[ greek ] = "ÐñïóèÞêç äåäïìÝíùí";
+ Text[ korean ] = "µ¥ÀÌÅÍ Ãß°¡";
+ Text[ arabic ] = "ÅÖÇÝÉ ÈíÇäÇÊ";
+ Text[ turkish ] = "Veri ekle";
+ Text[ language_user1 ] = " ";
+};
+String RID_STR_ALLOW_DELETIONS
+{
+ Text = "Daten löschen" ;
+ Text [ English ] = "Allow deletions" ;
+ Text [ portuguese ] = "Eliminar dados" ;
+ Text [ english_us ] = "Delete data" ;
+ Text [ portuguese_brazilian ] = "Daten löschen" ;
+ Text [ swedish ] = "Radera data" ;
+ Text [ danish ] = "Slet data" ;
+ Text [ italian ] = "Elimina dati" ;
+ Text [ spanish ] = "Eliminar datos" ;
+ Text [ french ] = "Supprimer les données" ;
+ Text [ dutch ] = "Gegevens wissen" ;
+ Text[ chinese_simplified ] = "ɾ³ýÊý¾Ý";
+ Text[ russian ] = "Óäàëèòü äàííûå";
+ Text[ polish ] = "Usuñ dane";
+ Text[ japanese ] = "ÃÞ°À‚Ìíœ";
+ Text[ chinese_traditional ] = "§R°£¸ê®Æ";
+ Text[ greek ] = "ÄéáãñáöÞ äåäïìÝíùí";
+ Text[ korean ] = "µ¥ÀÌÅÍ »èÁ¦";
+ Text[ arabic ] = "ÍÐÝ ÈíÇäÇÊ";
+ Text[ turkish ] = "Verileri sil";
+ Text[ language_user1 ] = " ";
+};
+String RID_STR_ALLOW_EDITS
+{
+ Text = "Daten ändern" ;
+ Text [ English ] = "Allow edits" ;
+ Text [ portuguese ] = "Modificar dados" ;
+ Text [ english_us ] = "Allow modifications" ;
+ Text [ portuguese_brazilian ] = "Daten ändern" ;
+ Text [ swedish ] = "Ändra data" ;
+ Text [ danish ] = "Modificer data" ;
+ Text [ italian ] = "Modifica dati" ;
+ Text [ spanish ] = "Modificar datos" ;
+ Text [ french ] = "Modifier les données" ;
+ Text [ dutch ] = "Gegevens wijzigen" ;
+ Text[ chinese_simplified ] = "ÐÞ¸ÄÊý¾Ý";
+ Text[ russian ] = "Èçìåíèòü äàííûå";
+ Text[ polish ] = "Modyfikuj dane";
+ Text[ japanese ] = "ÃÞ°À‚Ì•ÏX";
+ Text[ chinese_traditional ] = "­×§ï¸ê®Æ";
+ Text[ greek ] = "Ôñïðïðïßçóç äåäïìÝíùí";
+ Text[ korean ] = "µ¥ÀÌÅÍ º¯°æ";
+ Text[ arabic ] = "ÊÛííÑ ÈíÇäÇÊ";
+ Text[ turkish ] = "Verileri deðiþtir";
+ Text[ language_user1 ] = " ";
+};
+String RID_STR_DATAENTRY
+{
+ Text = "Nur Daten hinzufügen" ;
+ Text [ English ] = "Only additions allowed" ;
+ Text [ portuguese ] = "Adicionar apenas dados" ;
+ Text [ english_us ] = "Add data only " ;
+ Text [ portuguese_brazilian ] = "Nur Daten hinzufügen" ;
+ Text [ swedish ] = "Lägg endast till data" ;
+ Text [ danish ] = "Tilføj kun data" ;
+ Text [ italian ] = "Aggiungi solo i dati" ;
+ Text [ spanish ] = "Añadir solo datos" ;
+ Text [ french ] = "N'ajouter que des données" ;
+ Text [ dutch ] = "Alleen gegevens toevoegen" ;
+ Text[ chinese_simplified ] = "Ö»ÐÂÔöÊý¾Ý";
+ Text[ russian ] = "Äîáàâèòü òîëüêî äàííûå";
+ Text[ polish ] = "Dodaj tylko dane";
+ Text[ japanese ] = "ÃÞ°À‚̂ݒljÁ";
+ Text[ chinese_traditional ] = "¶È¼W¥[¸ê®Æ";
+ Text[ greek ] = "ÐñïóèÞêç äåäïìÝíùí ìüíï";
+ Text[ korean ] = "µ¥ÀÌÅ͸¸ Ãß°¡";
+ Text[ arabic ] = "ÅÖÇÝÉ ÈíÇäÇÊ ÝÞØ";
+ Text[ turkish ] = "Yalnýzca veri ekle";
+ Text[ language_user1 ] = " ";
+};
+String RID_STR_DATASOURCE
+{
+ Text = "Datenquelle" ;
+ Text [ English ] = "Data Source" ;
+ Text[ english_us ] = "Data source";
+ Text[ portuguese ] = "Fonte de dados";
+ Text[ russian ] = "Èñòî÷íèê äàííûõ";
+ Text[ greek ] = "ÐñïÝëåõóç äåäïìÝíùí";
+ Text[ dutch ] = "Gegevensbron";
+ Text[ french ] = "Source de données";
+ Text[ spanish ] = "Fuente de datos";
+ Text[ italian ] = "Sorgente dati";
+ Text[ danish ] = "Database";
+ Text[ swedish ] = "Datakälla";
+ Text[ polish ] = "ród³o danych";
+ Text[ portuguese_brazilian ] = "Datenbank";
+ Text[ japanese ] = "ÃÞ°ÀÍÞ°½";
+ Text[ korean ] = "µ¥ÀÌÅÍ ¼Ò½º";
+ Text[ chinese_simplified ] = "Êý¾ÝÔ´";
+ Text[ chinese_traditional ] = "¸ê®Æ®w·½";
+ Text[ turkish ] = "Veritabaný";
+ Text[ arabic ] = "ãÕÏÑ ÇáÈíÇäÇÊ";
+};
+String RID_STR_MASTERFIELDS
+{
+ Text = "Verknüpfen von" ;
+ Text [ English ] = "Master fields" ;
+ Text [ portuguese ] = "Ligar de" ;
+ Text [ english_us ] = "Linking" ;
+ Text [ portuguese_brazilian ] = "Übergeordnete Felder" ;
+ Text [ swedish ] = "Länka från" ;
+ Text [ danish ] = "Kæde fra" ;
+ Text [ italian ] = "Collega da" ;
+ Text [ spanish ] = "Vinculación de" ;
+ Text [ french ] = "Établir un lien depuis" ;
+ Text [ dutch ] = "Koppelen van" ;
+ Text[ chinese_simplified ] = "Á´½Óµ½";
+ Text[ russian ] = "Ñâÿçè";
+ Text[ polish ] = "Po³¹cz";
+ Text[ japanese ] = "ØݸŒ³";
+ Text[ chinese_traditional ] = "³sµ²¨ì";
+ Text[ greek ] = "Óýíäåóç ôùí";
+ Text[ korean ] = "¿¬°á";
+ Text[ arabic ] = "ÑÈØ";
+ Text[ turkish ] = "Baðlantý öðeleri";
+ Text[ language_user1 ] = " ";
+};
+String RID_STR_SLAVEFIELDS
+{
+ Text = "Verknüpfen nach" ;
+ Text [ English ] = "Subfields" ;
+ Text [ portuguese ] = "Ligar com" ;
+ Text [ english_us ] = "Subfields" ;
+ Text [ portuguese_brazilian ] = "Untergeordnete Felder" ;
+ Text [ swedish ] = "Länka till" ;
+ Text [ danish ] = "Kæde til" ;
+ Text [ italian ] = "Collega per" ;
+ Text [ spanish ] = "Vincular con" ;
+ Text [ french ] = "Établir un lien avec" ;
+ Text [ dutch ] = "Koppelen met" ;
+ Text[ chinese_simplified ] = "Á´½Óµ½";
+ Text[ russian ] = "Ñâÿçàòü ñ";
+ Text[ polish ] = "Po³¹cz z";
+ Text[ japanese ] = "Ú‘±æ";
+ Text[ chinese_traditional ] = "³sµ²¨ì";
+ Text[ greek ] = "Óýíäåóç ìå";
+ Text[ korean ] = "ÇÏÀ§ Çʵå";
+ Text[ arabic ] = "ÇÑÊÈÇØ ãÚ";
+ Text[ turkish ] = "Alt alanlar";
+ Text[ language_user1 ] = " ";
+};
+String RID_STR_VALUEMIN
+{
+ Text = "Min. Wert" ;
+ Text [ English ] = "Value min." ;
+ Text [ portuguese ] = "Valor min." ;
+ Text [ english_us ] = "Value min." ;
+ Text [ portuguese_brazilian ] = "Min. Wert" ;
+ Text [ swedish ] = "Min. värde" ;
+ Text [ danish ] = "Min. værdi" ;
+ Text [ italian ] = "Valore min." ;
+ Text [ spanish ] = "Valor mín." ;
+ Text [ french ] = "Valeur min." ;
+ Text [ dutch ] = "Min. waarde" ;
+ Text[ chinese_simplified ] = "×îСÊýÖµ";
+ Text[ russian ] = "Ìèí. çíà÷åíèå";
+ Text[ polish ] = "Min. wartoϾ";
+ Text[ japanese ] = "Å’á’l";
+ Text[ chinese_traditional ] = "³Ì¤p¼Æ­È";
+ Text[ greek ] = "ÅëÜ÷éóôç ôéìÞ";
+ Text[ korean ] = "ÃÖ¼Ò°ª";
+ Text[ arabic ] = "ÃÏäì ÞíãÉ";
+ Text[ turkish ] = "Asgari deðer";
+ Text[ language_user1 ] = " ";
+};
+String RID_STR_VALUEMAX
+{
+ Text = "Max. Wert" ;
+ Text [ English ] = "Value max." ;
+ Text [ portuguese ] = "Valor máx." ;
+ Text [ english_us ] = "Value max." ;
+ Text [ portuguese_brazilian ] = "Max. Wert" ;
+ Text [ swedish ] = "Max. värde" ;
+ Text [ danish ] = "Maks. værdi" ;
+ Text [ italian ] = "Valore max." ;
+ Text [ spanish ] = "Valor máx." ;
+ Text [ french ] = "Valeur max." ;
+ Text [ dutch ] = "Max. waarde" ;
+ Text[ chinese_simplified ] = "×î´óÊýÖµ";
+ Text[ russian ] = "Ìàêñ. çíà÷åíèå";
+ Text[ polish ] = "Maks. wartoϾ";
+ Text[ japanese ] = "Å‚’l";
+ Text[ chinese_traditional ] = "³Ì¤j¼Æ­È";
+ Text[ greek ] = "ÌÝãéóôç ôéìÞ";
+ Text[ korean ] = "ÃÖ´ë°ª";
+ Text[ arabic ] = "ÃÞÕì ÞíãÉ";
+ Text[ turkish ] = "Azami deðer";
+ Text[ language_user1 ] = " ";
+};
+String RID_STR_VALUESTEP
+{
+ Text = "Intervall" ;
+ Text [ English ] = "Value step" ;
+ Text [ portuguese ] = "Intervalo" ;
+ Text [ english_us ] = "Incr./Decrement value" ;
+ Text [ swedish ] = "Intervall" ;
+ Text [ italian ] = "Intervallo" ;
+ Text [ spanish ] = "Intervalo" ;
+ Text [ dutch ] = "Interval" ;
+ Text[ portuguese_brazilian ] = "Differenzwert";
+ Text[ danish ] = "Interval";
+ Text[ french ] = "Intervalle";
+ Text[ chinese_simplified ] = "Çø¼ä";
+ Text[ russian ] = "Çíà÷åíèå âîçðàñòàíèÿ/óáûâàíèÿ";
+ Text[ polish ] = "Przedzia³";
+ Text[ japanese ] = "ŠÔŠu";
+ Text[ chinese_traditional ] = "°Ï¶¡";
+ Text[ greek ] = "ÄéÜóôçìá";
+ Text[ korean ] = "Áõ°¨°ª";
+ Text[ arabic ] = "ÒíÇÏÉ/ÅäÞÇÕ ÇáÞíãÉ";
+ Text[ turkish ] = "Aralýk";
+ Text[ language_user1 ] = " ";
+};
+String RID_STR_CURRENCYSYMBOL
+{
+ Text = "Währungssymbol" ;
+ Text [ English ] = "Currencysymbol" ;
+ Text [ portuguese ] = "Símbolo de moeda" ;
+ Text [ english_us ] = "Currency symbol" ;
+ Text [ portuguese_brazilian ] = "Währungssymbol" ;
+ Text [ swedish ] = "Valutasymbol" ;
+ Text [ danish ] = "Valutasymbol" ;
+ Text [ italian ] = "Simbolo valuta" ;
+ Text [ spanish ] = "Símbolo de moneda" ;
+ Text [ french ] = "Symbole monétaire" ;
+ Text [ dutch ] = "Valutasymbool" ;
+ Text[ chinese_simplified ] = "»õ±Òͼ±ê";
+ Text[ russian ] = "Ñèìâîë âàëþòû";
+ Text[ polish ] = "Symbol waluty";
+ Text[ japanese ] = "’ʉݼÝÎÞÙ";
+ Text[ chinese_traditional ] = "³f¹ô¹Ï¥Ü";
+ Text[ greek ] = "Óýìâïëï íïìßóìáôïò";
+ Text[ korean ] = "ÅëÈ­ ±âÈ£";
+ Text[ arabic ] = "ÑãÒ ÇáÚãáÉ";
+ Text[ turkish ] = "Para birimi simgesi";
+ Text[ language_user1 ] = " ";
+};
+String RID_STR_DATEMIN
+{
+ Text = "Min. Datum" ;
+ Text [ English ] = "Date min." ;
+ Text [ portuguese ] = "Data min." ;
+ Text [ english_us ] = "Date min." ;
+ Text [ portuguese_brazilian ] = "Min. Datum" ;
+ Text [ swedish ] = "Min. datum" ;
+ Text [ danish ] = "Min. dato" ;
+ Text [ italian ] = "Data min." ;
+ Text [ spanish ] = "Fecha mín." ;
+ Text [ french ] = "Date min." ;
+ Text [ dutch ] = "Min. datum" ;
+ Text[ chinese_simplified ] = "×î¶ÌµÄÈÕÆÚ";
+ Text[ russian ] = "Ìèí. äàòà";
+ Text[ polish ] = "Min. data";
+ Text[ japanese ] = "Ŭ “ú•t";
+ Text[ chinese_traditional ] = "³Ìµuªº¤é´Á";
+ Text[ greek ] = "Åëá÷. çìåñïìçíßá";
+ Text[ korean ] = "ÃÖ¼Ò ³¯Â¥";
+ Text[ arabic ] = "ÃÏäì ÊÇÑíÎ";
+ Text[ turkish ] = "Tarih (asgari)";
+ Text[ language_user1 ] = " ";
+};
+String RID_STR_DATEMAX
+{
+ Text = "Max. Datum" ;
+ Text [ English ] = "Date max." ;
+ Text [ portuguese ] = "Data máx." ;
+ Text [ english_us ] = "Date max." ;
+ Text [ portuguese_brazilian ] = "Max. Datum" ;
+ Text [ swedish ] = "Max. datum" ;
+ Text [ danish ] = "Maks. dato" ;
+ Text [ italian ] = "Data max." ;
+ Text [ spanish ] = "Fecha máx." ;
+ Text [ french ] = "Date max." ;
+ Text [ dutch ] = "Max. datum" ;
+ Text[ chinese_simplified ] = "×µÄÈÕÆÚ";
+ Text[ russian ] = "Ìàêñ. äàòà";
+ Text[ polish ] = "Maks. data";
+ Text[ japanese ] = "Å‘å “ú•t";
+ Text[ chinese_traditional ] = "³Ìªøªº¤é´Á";
+ Text[ greek ] = "Ìåã. çìåñïìçíßá";
+ Text[ korean ] = "ÃÖ´ë ³¯Â¥";
+ Text[ arabic ] = "ÃÞÕì ÊÇÑíÎ";
+ Text[ turkish ] = "Tarih (azami)";
+ Text[ language_user1 ] = " ";
+};
+String RID_STR_DATEFORMAT
+{
+ Text = "Datumsformat" ;
+ Text [ English ] = "Date format" ;
+ Text [ portuguese ] = "Formato da data" ;
+ Text [ english_us ] = "Date format" ;
+ Text [ portuguese_brazilian ] = "Datumsformat" ;
+ Text [ swedish ] = "Datumformat" ;
+ Text [ danish ] = "Datoformat" ;
+ Text [ italian ] = "Formato data" ;
+ Text [ spanish ] = "Formato de fecha" ;
+ Text [ french ] = "Format de date" ;
+ Text [ dutch ] = "Datumsformaat" ;
+ Text[ chinese_simplified ] = "ÈÕÆÚ¸ñʽ";
+ Text[ russian ] = "Ôîðìàò äàííûõ";
+ Text[ polish ] = "Format daty";
+ Text[ japanese ] = "“ú•t‚Ì‘Ž®";
+ Text[ chinese_traditional ] = "¤é´Á®æ¦¡";
+ Text[ greek ] = "ÌïñöÞ çìåñïìçíßáò";
+ Text[ korean ] = "³¯Â¥ ¼­½Ä";
+ Text[ arabic ] = "ÊäÓíÞ ÇáÈíÇäÇÊ";
+ Text[ turkish ] = "Tarih formatý";
+ Text[ language_user1 ] = " ";
+};
+String RID_STR_TIMEMIN
+{
+ Text = "Min. Zeit" ;
+ Text [ English ] = "Time min." ;
+ Text [ portuguese ] = "min. de horas" ;
+ Text [ english_us ] = "Time min." ;
+ Text [ portuguese_brazilian ] = "Min. Zeit" ;
+ Text [ swedish ] = "Min. tid" ;
+ Text [ danish ] = "Min. klokkeslæt" ;
+ Text [ italian ] = "Tempo min." ;
+ Text [ spanish ] = "Tiempo mín." ;
+ Text [ french ] = "Heure min." ;
+ Text [ dutch ] = "Min. tijd" ;
+ Text[ chinese_simplified ] = "×î¶Ìʱ¼ä";
+ Text[ russian ] = "Ìèí. âðåìÿ";
+ Text[ polish ] = "Min. czas";
+ Text[ japanese ] = "Œ᎞ŠÔ";
+ Text[ chinese_traditional ] = "³Ìµu®É¶¡";
+ Text[ greek ] = "Åëá÷. ÷ñüíïò";
+ Text[ korean ] = "ÃÖ¼Ò ½Ã°£";
+ Text[ arabic ] = "ÃÏäì æÞÊ";
+ Text[ turkish ] = "Zaman (asgari)";
+ Text[ language_user1 ] = " ";
+};
+String RID_STR_TIMEMAX
+{
+ Text = "Max. Zeit" ;
+ Text [ English ] = "Time max." ;
+ Text [ portuguese ] = "máx. de horas" ;
+ Text [ english_us ] = "Time max." ;
+ Text [ portuguese_brazilian ] = "Max. Zeit" ;
+ Text [ swedish ] = "Max. tid" ;
+ Text [ danish ] = "Maks. klokkeslæt" ;
+ Text [ italian ] = "Tempo max." ;
+ Text [ spanish ] = "Tiempo máx." ;
+ Text [ french ] = "Heure max." ;
+ Text [ dutch ] = "Max.tijd" ;
+ Text[ chinese_simplified ] = "×ʱ¼ä";
+ Text[ russian ] = "Ìàêñ. âðåìÿ";
+ Text[ polish ] = "Maks. czas";
+ Text[ japanese ] = "Å‚ŽžŠÔ";
+ Text[ chinese_traditional ] = "³Ìªø®É¶¡";
+ Text[ greek ] = "Ìåã. ÷ñüíïò";
+ Text[ korean ] = "ÃÖ´ë ½Ã°£";
+ Text[ arabic ] = "ÃÞÕì æÞÊ";
+ Text[ turkish ] = "Saat (azami)";
+ Text[ language_user1 ] = " ";
+};
+String RID_STR_TIMEFORMAT
+{
+ Text = "Zeitformat" ;
+ Text [ English ] = "Timeformat" ;
+ Text [ portuguese ] = "Formato das horas" ;
+ Text [ english_us ] = "Time Format" ;
+ Text [ portuguese_brazilian ] = "Zeitformat" ;
+ Text [ swedish ] = "Tidsformat" ;
+ Text [ danish ] = "Klokkeslætsformat" ;
+ Text [ italian ] = "Formato orario" ;
+ Text [ spanish ] = "Formato de hora" ;
+ Text [ french ] = "Format d'heure" ;
+ Text [ dutch ] = "Tijdformaat" ;
+ Text[ chinese_simplified ] = "ʱ¼ä¸ñʽ";
+ Text[ russian ] = "Ôîðìàò âðåìåíè";
+ Text[ polish ] = "Format czasu";
+ Text[ japanese ] = "ŽžŠÔ‚Ì‘Ž®";
+ Text[ chinese_traditional ] = "®É¶¡®æ¦¡";
+ Text[ greek ] = "ÌïñöÞ þñáò";
+ Text[ korean ] = "½Ã°£ ¼­½Ä";
+ Text[ arabic ] = "ÊäÓíÞ æÞÊ";
+ Text[ turkish ] = "Zaman formatý";
+ Text[ language_user1 ] = " ";
+};
+String RID_STR_CURRSYM_POSITION
+{
+ Text = "Symbol voranstellen" ;
+ Text [ English ] = "prepend currency symbol" ;
+ Text[ english_us ] = "Prefix symbol";
+ Text[ portuguese ] = "Colocar símbolo antes do nome";
+ Text[ russian ] = "Óñòàíîâèòü ñíà÷àëà ñèìâîë";
+ Text[ greek ] = "ÔïðïèÝôçóç óõìâüëïõ ìðñïóôÜ";
+ Text[ dutch ] = "Valutateken vooraan";
+ Text[ french ] = "Placer le symbole avant le nombre";
+ Text[ spanish ] = "Situar símbolo delante";
+ Text[ italian ] = "Premetti simbolo";
+ Text[ danish ] = "Placer symbolet foran";
+ Text[ swedish ] = "Placera symbol framför";
+ Text[ polish ] = "Ustaw z przodu symbol";
+ Text[ portuguese_brazilian ] = "prepend currency symbol";
+ Text[ japanese ] = "¼ÝÎÞÙ‚ð‘O‚É’u‚­";
+ Text[ korean ] = "±âÈ£¸¦ ¾Õ¿¡ ºÙÀÓ";
+ Text[ chinese_simplified ] = "Ç°ÖÃͼ±ê";
+ Text[ chinese_traditional ] = "«e¸m¹Ï¥Ü";
+ Text[ arabic ] = "æÖÚ ÇáÑãÒ Ýí ÇáãÞÏãÉ";
+ Text[ turkish ] = "Simge öne ekle";
+ Text[ language_user1 ] = " ";
+};
+String RID_STR_VALUE
+{
+ Text = "Wert" ;
+ Text [ ENGLISH ] = "Value" ;
+ Text [ portuguese ] = "Valor" ;
+ Text [ english_us ] = "Value" ;
+ Text [ portuguese_brazilian ] = "Wert" ;
+ Text [ swedish ] = "Värde" ;
+ Text [ danish ] = "Værdi" ;
+ Text [ italian ] = "Valore" ;
+ Text [ spanish ] = "Valor" ;
+ Text [ french ] = "Valeur" ;
+ Text [ dutch ] = "Waarde" ;
+ Text[ chinese_simplified ] = "ÊýÖµ";
+ Text[ russian ] = "Çíà÷åíèå";
+ Text[ polish ] = "WartoϾ";
+ Text[ japanese ] = "’l";
+ Text[ chinese_traditional ] = "¼Æ­È";
+ Text[ greek ] = "ÔéìÞ";
+ Text[ korean ] = "°ª";
+ Text[ arabic ] = "ÇáÞíãÉ";
+ Text[ turkish ] = "Deðer";
+ Text[ language_user1 ] = " ";
+};
+String RID_STR_FORMATKEY
+{
+ Text = "Formatierung" ;
+ Text [ ENGLISH ] = "Format" ;
+ Text [ portuguese ] = "Formato" ;
+ Text [ english_us ] = "Formatting" ;
+ Text [ portuguese_brazilian ] = "FormatKey" ;
+ Text [ swedish ] = "Formatering" ;
+ Text [ danish ] = "Formatering" ;
+ Text [ italian ] = "Formattazione" ;
+ Text [ spanish ] = "Formato" ;
+ Text [ french ] = "Formatage" ;
+ Text [ dutch ] = "Opmaak" ;
+ Text[ chinese_simplified ] = "¸ñʽ¼ü";
+ Text[ russian ] = "Ôîðìàòèðîâàíèå";
+ Text[ polish ] = "Formatowanie";
+ Text[ japanese ] = "‘Ž®Ý’è";
+ Text[ chinese_traditional ] = "®æ¦¡¤Æ";
+ Text[ greek ] = "Ìïñöïðïßçóç";
+ Text[ korean ] = "¼­½Ä Å°";
+ Text[ arabic ] = "ÇáÊäÓíÞ";
+ Text[ turkish ] = "Formatlama";
+ Text[ language_user1 ] = " ";
+};
+String RID_STR_CLASSID
+{
+ Text = "Klassenindex" ;
+ Text [ ENGLISH ] = "ClassId" ;
+ Text [ portuguese ] = "Índice de classe" ;
+ Text [ english_us ] = "Class ID" ;
+ Text [ portuguese_brazilian ] = "Klassenindex" ;
+ Text [ swedish ] = "Klassindex" ;
+ Text [ danish ] = "Klasseindeks" ;
+ Text [ italian ] = "Indice di classe" ;
+ Text [ spanish ] = "Índice de clase" ;
+ Text [ french ] = "Index de classe" ;
+ Text [ dutch ] = "Klassenindex" ;
+ Text[ chinese_simplified ] = "ÀàË÷Òý";
+ Text[ russian ] = "Èíäåêñ êëàññà";
+ Text[ polish ] = "Indeks klas";
+ Text[ japanese ] = "¸×½²ÝÃÞ¯¸½";
+ Text[ chinese_traditional ] = "µ{¦¡Ãþ¯Á¤Þ";
+ Text[ greek ] = "ÅõñåôÞñéï êëÜóçò";
+ Text[ korean ] = "Ŭ·¡½º ID";
+ Text[ arabic ] = "ÝåÑÓ ÇáØÈÞÇÊ";
+ Text[ turkish ] = "Sýnýf dizini";
+ Text[ language_user1 ] = " ";
+};
+String RID_STR_HEIGHT
+{
+ Text = "Höhe" ;
+ Text [ ENGLISH ] = "Height" ;
+ Text [ portuguese ] = "Altura" ;
+ Text [ english_us ] = "Height" ;
+ Text [ portuguese_brazilian ] = "Höhe" ;
+ Text [ swedish ] = "Höjd" ;
+ Text [ danish ] = "Højde" ;
+ Text [ italian ] = "Altezza" ;
+ Text [ spanish ] = "Altura" ;
+ Text [ french ] = "Hauteur" ;
+ Text [ dutch ] = "Hoogte" ;
+ Text[ chinese_simplified ] = "¸ß¶È";
+ Text[ russian ] = "Âûñîòà";
+ Text[ polish ] = "WysokoϾ";
+ Text[ japanese ] = "‚‚³";
+ Text[ chinese_traditional ] = "°ª«×";
+ Text[ greek ] = "¾øïò";
+ Text[ korean ] = "³ôÀÌ";
+ Text[ arabic ] = "ÇáÇÑÊÝÇÚ";
+ Text[ turkish ] = "Yükseklik";
+ Text[ language_user1 ] = " ";
+};
+String RID_STR_WIDTH
+{
+ Text = "Breite" ;
+ Text [ ENGLISH ] = "Width" ;
+ Text [ portuguese ] = "Largura" ;
+ Text [ english_us ] = "Width" ;
+ Text [ portuguese_brazilian ] = "Breite" ;
+ Text [ swedish ] = "Bredd" ;
+ Text [ danish ] = "Bredde" ;
+ Text [ italian ] = "Larghezza" ;
+ Text [ spanish ] = "Ancho" ;
+ Text [ french ] = "Largeur" ;
+ Text [ dutch ] = "Breedte" ;
+ Text[ chinese_simplified ] = "¿í¶È";
+ Text[ russian ] = "Øèðèíà";
+ Text[ polish ] = "SzerokoϾ";
+ Text[ japanese ] = "•";
+ Text[ chinese_traditional ] = "¼e«×";
+ Text[ greek ] = "ÐëÜôïò";
+ Text[ korean ] = "³Êºñ";
+ Text[ arabic ] = "ÇáÚÑÖ";
+ Text[ turkish ] = "Geniþlik";
+ Text[ language_user1 ] = " ";
+};
+String RID_STR_LISTINDEX
+{
+ Text = "ListIndex" ;
+ Text [ ENGLISH ] = "ListIndex" ;
+ Text [ portuguese ] = "Índice de listas" ;
+ Text [ english_us ] = "List Index" ;
+ Text [ portuguese_brazilian ] = "ListIndex" ;
+ Text [ swedish ] = "Listindex" ;
+ Text [ danish ] = "ListIndeks" ;
+ Text [ italian ] = "Indice elenco" ;
+ Text [ spanish ] = "Indice de listas" ;
+ Text [ french ] = "Index de liste" ;
+ Text [ dutch ] = "ListIndex" ;
+ Text[ chinese_simplified ] = "ÁбíË÷Òý";
+ Text[ russian ] = "Èíäåêñ ñïèñêà";
+ Text[ polish ] = "Indeks list";
+ Text[ japanese ] = "ؽĂ̲ÝÃÞ¯¸½";
+ Text[ chinese_traditional ] = "²M³æ¯Á¤Þ";
+ Text[ greek ] = "ÅõñåôÞñéï ëßóôáò";
+ Text[ korean ] = "¸ñ·Ï »öÀÎ";
+ Text[ arabic ] = "ÝåÑÓ ÇáÞÇÆãÉ";
+ Text[ turkish ] = "Liste dizini";
+ Text[ language_user1 ] = " ";
+};
+String RID_STR_ROWHEIGHT
+{
+ Text = "Zeilenhöhe" ;
+ Text [ English ] = "Background color" ;
+ Text [ portuguese ] = "Altura de linhas" ;
+ Text [ english_us ] = "Row height" ;
+ Text [ portuguese_brazilian ] = "Zeilenhöhe" ;
+ Text [ swedish ] = "Radhöjd" ;
+ Text [ danish ] = "Rækkehøjde" ;
+ Text [ italian ] = "Altezza riga" ;
+ Text [ spanish ] = "Altura de fila" ;
+ Text [ french ] = "Hauteur de ligne" ;
+ Text [ dutch ] = "Rijhoogte" ;
+ Text[ chinese_simplified ] = "Ðиß";
+ Text[ russian ] = "Âûñîòà ñòðîê";
+ Text[ polish ] = "WysokoϾ wierszy";
+ Text[ japanese ] = "s‚Ì‚‚³";
+ Text[ chinese_traditional ] = "¦æ°ª";
+ Text[ greek ] = "¾øïò ãñáììÞò";
+ Text[ korean ] = "Çà ³ôÀÌ";
+ Text[ arabic ] = "ÇÑÊÝÇÚ ÇáÕÝ";
+ Text[ turkish ] = "Satýr yüksekliði";
+ Text[ language_user1 ] = " ";
+};
+String RID_STR_FILLCOLOR
+{
+ Text = "Füllfarbe" ;
+ Text [ English ] = "FillColor" ;
+ Text [ portuguese ] = "Cor de preenchimento" ;
+ Text [ english_us ] = "Fill Color" ;
+ Text [ portuguese_brazilian ] = "Füllfarbe" ;
+ Text [ swedish ] = "Fyllningsfärg" ;
+ Text [ danish ] = "Fyldfarve" ;
+ Text [ italian ] = "Colore di riempimento" ;
+ Text [ spanish ] = "Color de relleno" ;
+ Text [ french ] = "Couleur de remplissage" ;
+ Text [ dutch ] = "Opvulkleur" ;
+ Text[ chinese_simplified ] = "³äÌîÑÕÉ«";
+ Text[ russian ] = "Öâåò çàëèâêè";
+ Text[ polish ] = "Kolor wype³nienia";
+ Text[ japanese ] = "“h‚è‚‚Ԃµ";
+ Text[ chinese_traditional ] = "¥R¶ñÃC¦â";
+ Text[ greek ] = "ÃÝìéóìá ìå ÷ñþìá";
+ Text[ korean ] = "ä¿ì±â »ö»ó";
+ Text[ arabic ] = "áæä ÊÚÈÆÉ";
+ Text[ turkish ] = "Dolgu rengi";
+ Text[ language_user1 ] = " ";
+};
+String RID_STR_LINECOLOR
+{
+ Text = "Linienfarbe" ;
+ Text [ English ] = "LineColor" ;
+ Text [ portuguese ] = "Cor da linha" ;
+ Text [ english_us ] = "Line Color" ;
+ Text [ portuguese_brazilian ] = "Linienfarbe" ;
+ Text [ swedish ] = "Linjefärg" ;
+ Text [ danish ] = "Stregfarve" ;
+ Text [ italian ] = "Colore linee" ;
+ Text [ spanish ] = "Color de línea" ;
+ Text [ french ] = "Couleur de ligne" ;
+ Text [ dutch ] = "Lijnkleur" ;
+ Text[ chinese_simplified ] = "ÏßÌõÑÕÉ«";
+ Text[ russian ] = "Öâåò ëèíèè";
+ Text[ polish ] = "Kolor linii";
+ Text[ japanese ] = "ü‚ÌF";
+ Text[ chinese_traditional ] = "½u±øÃC¦â";
+ Text[ greek ] = "×ñþìá ãñáììÞò";
+ Text[ korean ] = "¼±ÀÇ »ö";
+ Text[ arabic ] = "áæä ÇáÎØ";
+ Text[ turkish ] = "Çizgi rengi";
+ Text[ language_user1 ] = " ";
+};
+String RID_STR_REFVALUE
+{
+ Text = "Referenzwert" ;
+ Text [ English ] = "RefValue" ;
+ Text [ portuguese ] = "Valor referencial" ;
+ Text [ english_us ] = "Reference value" ;
+ Text [ portuguese_brazilian ] = "Referenzwert" ;
+ Text [ swedish ] = "Referensvärde" ;
+ Text [ danish ] = "Referenceværdi" ;
+ Text [ italian ] = "Valore di riferimento" ;
+ Text [ spanish ] = "Valor referencial" ;
+ Text [ french ] = "Valeur référentielle" ;
+ Text [ dutch ] = "Referentiewaarde" ;
+ Text[ chinese_simplified ] = "ÒýÓÃÖµ";
+ Text[ russian ] = "Çíà÷åíèå ññûëêè";
+ Text[ polish ] = "Wartoœæ odwo³ania";
+ Text[ japanese ] = "ŽQÆ’l";
+ Text[ chinese_traditional ] = "°Ñ·Ó­È";
+ Text[ greek ] = "ÔéìÞ áíáöïñÜò";
+ Text[ korean ] = "ÂüÁ¶ °ª";
+ Text[ arabic ] = "ÞíãÉ ãÑÌÚíÉ";
+ Text[ turkish ] = "Referans deðer";
+ Text[ language_user1 ] = " ";
+};
+String RID_STR_STRINGITEMLIST
+{
+ Text = "Listen-Einträge" ;
+ Text [ English ] = "StringItemList" ;
+ Text [ portuguese ] = "Registos de listas" ;
+ Text [ english_us ] = "List entries" ;
+ Text [ portuguese_brazilian ] = "Listen-Einträge" ;
+ Text [ swedish ] = "Listposter" ;
+ Text [ danish ] = "Liste-elementer" ;
+ Text [ italian ] = "Voci dell'elenco" ;
+ Text [ spanish ] = "Entradas de listas" ;
+ Text [ french ] = "Entrées de liste" ;
+ Text [ dutch ] = "Items in lijsten" ;
+ Text[ chinese_simplified ] = "ÁбíÌõÄ¿";
+ Text[ russian ] = "Ýëåìåíòû ñïèñêà";
+ Text[ polish ] = "Pozycje list";
+ Text[ japanese ] = "ؽĂ̓ü—Í";
+ Text[ chinese_traditional ] = "²M³æ¶µ¥Ø";
+ Text[ greek ] = "ÅããñáöÝò ëéóôþí";
+ Text[ korean ] = "¸ñ·Ï Ç׸ñ";
+ Text[ arabic ] = "ÅÏÎÇáÇÊ ÇáÞÇÆãÉ";
+ Text[ turkish ] = "Liste giriþleri";
+ Text[ language_user1 ] = " ";
+};
+String RID_STR_BUTTONTYPE
+{
+ Text = "Art der Schaltfläche" ;
+ Text [ English ] = "Button type" ;
+ Text [ portuguese ] = "Tipo de botão" ;
+ Text [ english_us ] = "Button type" ;
+ Text [ portuguese_brazilian ] = "Art des Buttons" ;
+ Text [ swedish ] = "Typ av kommandoknapp" ;
+ Text [ danish ] = "Knaptype" ;
+ Text [ italian ] = "Tipo di pulsante" ;
+ Text [ spanish ] = "Tipo de botón" ;
+ Text [ french ] = "Type de bouton" ;
+ Text [ dutch ] = "Soort knop" ;
+ Text[ chinese_simplified ] = "°´Å¥ÀàÐÍ";
+ Text[ russian ] = "Òèï êíîïêè";
+ Text[ polish ] = "Typ przycisku";
+ Text[ japanese ] = "ÎÞÀÝ‚ÌŽí—Þ";
+ Text[ chinese_traditional ] = "«ö¶sÃþ«¬";
+ Text[ greek ] = "Ôýðïò ðåäßïõ åðéëïãÞò";
+ Text[ korean ] = "¹öÆ° À¯Çü";
+ Text[ arabic ] = "äæÚ ÇáãÝÊÇÍ";
+ Text[ turkish ] = "Düðme türü";
+ Text[ language_user1 ] = " ";
+};
+String RID_STR_SUBMIT_ACTION
+{
+ Text = "URL" ;
+ Text [ English ] = "URL" ;
+ Text [ portuguese ] = "URL" ;
+ Text [ english_us ] = "URL" ;
+ Text [ portuguese_brazilian ] = "Submit URL" ;
+ Text [ swedish ] = "URL" ;
+ Text [ danish ] = "URL" ;
+ Text [ italian ] = "URL" ;
+ Text [ spanish ] = "URL" ;
+ Text [ french ] = "URL" ;
+ Text [ dutch ] = "URL" ;
+ Text[ chinese_simplified ] = "URL";
+ Text[ russian ] = "URL";
+ Text[ polish ] = "URL";
+ Text[ japanese ] = "URL";
+ Text[ chinese_traditional ] = "URL";
+ Text[ greek ] = "URL";
+ Text[ korean ] = "URL";
+ Text[ arabic ] = "URL";
+ Text[ turkish ] = "URL";
+ Text[ language_user1 ] = " ";
+};
+String RID_STR_SUBMIT_METHOD
+{
+ Text = "Art des Submits" ;
+ Text [ English ] = "Kind of submission" ;
+ Text [ portuguese ] = "Tipo de submissão" ;
+ Text [ english_us ] = "Type of submission" ;
+ Text [ portuguese_brazilian ] = "Art der Submission" ;
+ Text [ swedish ] = "Sändningstyp" ;
+ Text [ danish ] = "Fremsendelsestype" ;
+ Text [ italian ] = "Tipo di submission" ;
+ Text [ spanish ] = "Tipo de submit" ;
+ Text [ french ] = "Type d'envoi" ;
+ Text [ dutch ] = "Submissietype" ;
+ Text[ chinese_simplified ] = "Ìá½»µÄÀàÐÍ";
+ Text[ russian ] = "Òèï ïåðåäà÷è";
+ Text[ polish ] = "Rodzaj submitu";
+ Text[ japanese ] = "’ño‚ÌŽí—Þ";
+ Text[ chinese_traditional ] = "´£¥æªºÃþ«¬";
+ Text[ greek ] = "Ôýðïò õðïâïëÞò";
+ Text[ korean ] = "Àü¼Û À¯Çü";
+ Text[ arabic ] = "äæÚ ÇáÅÑÓÇá";
+ Text[ turkish ] = "Gönderme türü";
+ Text[ language_user1 ] = " ";
+};
+String RID_STR_DEFAULT_CHECKED
+{
+ Text = "Standardstatus" ;
+ Text [ English ] = "Default checked" ;
+ Text [ portuguese ] = "Estado padrão" ;
+ Text [ english_us ] = "Default status" ;
+ Text [ portuguese_brazilian ] = "Default an" ;
+ Text [ swedish ] = "Standardstatus" ;
+ Text [ danish ] = "Standardstatus" ;
+ Text [ italian ] = "Default" ;
+ Text [ spanish ] = "Estado predeterminado" ;
+ Text [ french ] = "Statut par défaut" ;
+ Text [ dutch ] = "Standaardstatus" ;
+ Text[ chinese_simplified ] = "±ê׼״̬";
+ Text[ russian ] = "Ñòàòóñ ïî óìîë÷àíèþ";
+ Text[ polish ] = "Stan domyœlny";
+ Text[ japanese ] = "•W€½Ã°À½";
+ Text[ chinese_traditional ] = "¼Ð·Çª¬ºA";
+ Text[ greek ] = "ÐñïåðéëåãìÝíç êáôÜóôáóç";
+ Text[ korean ] = "±âº» »óÅÂ";
+ Text[ arabic ] = "ÍÇáÉ ÇÝÊÑÇÖíÉ";
+ Text[ turkish ] = "Standart durum";
+ Text[ language_user1 ] = " ";
+};
+String RID_STR_SUBMIT_ENCODING
+{
+ Text = "Kodierung beim Submit" ;
+ Text [ English ] = "Encoding of submission" ;
+ Text [ portuguese ] = "Codificar submissão" ;
+ Text [ english_us ] = "Submission encoding" ;
+ Text [ portuguese_brazilian ] = "Kodierung der Submission" ;
+ Text [ swedish ] = "Kodning vid sändning" ;
+ Text [ danish ] = "Kodning ved fremsendelse" ;
+ Text [ italian ] = "Codifica all'invio" ;
+ Text [ spanish ] = "Codificar submit" ;
+ Text [ french ] = "Encodage de l'envoi" ;
+ Text [ dutch ] = "Codering bij de submissie" ;
+ Text[ chinese_simplified ] = "ÌύʱִÐбàÂë´¦Àí";
+ Text[ russian ] = "Êîäèðîâàíèå ïðè ïåðåäà÷å";
+ Text[ polish ] = "Kodowanie submitu";
+ Text[ japanese ] = "’ño‚Ì۴ݺ°ÄÞ‚·‚é";
+ Text[ chinese_traditional ] = "´£¥æ®É°õ¦æ½s½X³B²z";
+ Text[ greek ] = "ÕðïâïëÞ êùäéêïðïßçóçò";
+ Text[ korean ] = "Àü¼Û½Ã ÄÚµåÈ­";
+ Text[ arabic ] = "ÊÑãíÒ ÇáÅÑÓÇá";
+ Text[ turkish ] = "Gönderme sýrasýnda kodlama";
+ Text[ language_user1 ] = " ";
+};
+String RID_STR_DEFAULTVALUE
+{
+ Text = "Standardwert" ;
+ Text [ English ] = "Default value" ;
+ Text [ portuguese ] = "Valor padrão" ;
+ Text [ english_us ] = "Default value" ;
+ Text [ portuguese_brazilian ] = "Defaultwert" ;
+ Text [ swedish ] = "Standardvärde" ;
+ Text [ danish ] = "Standardværdi" ;
+ Text [ italian ] = "Valore standard" ;
+ Text [ spanish ] = "Valor predeterminado" ;
+ Text [ french ] = "Valeur par défaut" ;
+ Text [ dutch ] = "Standaardwaarde" ;
+ Text[ chinese_simplified ] = "ĬÈÏÖµ";
+ Text[ russian ] = "Çíà÷åíèå ïî óìîë÷àíèþ";
+ Text[ polish ] = "Wartoœæ domyœlna";
+ Text[ japanese ] = "•W€’l";
+ Text[ chinese_traditional ] = "Àq»{­È";
+ Text[ greek ] = "ÐñïåðéëåãìÝíç ôéìÞ";
+ Text[ korean ] = "±âº»°ª";
+ Text[ arabic ] = "ÞíãÉ ÇÝÊÑÇÖíÉ";
+ Text[ turkish ] = "Standart deðer";
+ Text[ language_user1 ] = " ";
+};
+String RID_STR_SUBMIT_TARGET
+{
+ Text = "Frame" ;
+ Text [ English ] = "Target frame" ;
+ Text [ portuguese ] = "Moldura de destino" ;
+ Text [ english_us ] = "Target frame" ;
+ Text [ portuguese_brazilian ] = "Zielrahmen" ;
+ Text [ swedish ] = "Ram" ;
+ Text [ danish ] = "Frame" ;
+ Text [ italian ] = "Frame" ;
+ Text [ spanish ] = "Frame" ;
+ Text [ french ] = "Frame" ;
+ Text [ dutch ] = "Kader" ;
+ Text[ chinese_simplified ] = "¿ò¶ÔÏó";
+ Text[ russian ] = "Êàäð";
+ Text[ polish ] = "Frame";
+ Text[ japanese ] = "ÌÚ°Ñ";
+ Text[ chinese_traditional ] = "°T®Ø";
+ Text[ greek ] = "Ðëáßóéï";
+ Text[ korean ] = "ÇÁ·¹ÀÓ";
+ Text[ arabic ] = "ÅØÇÑ";
+ Text[ turkish ] = "Frame";
+ Text[ language_user1 ] = " ";
+};
+String RID_STR_BORDER_TYPE
+{
+ Text = "Ohne Rahmen;3D-Look;Flach" ;
+ Text [ English ] = "Transparence;3D-Look;Flat" ;
+ Text [ portuguese ] = "Sem moldura;3D-Look;Plano" ;
+ Text [ english_us ] = "Without frame;3D look;Flat" ;
+ Text [ portuguese_brazilian ] = "Transparent;3D-Look;Flach" ;
+ Text [ swedish ] = "Utan ram;3D-look;Platt" ;
+ Text [ danish ] = "Uden ramme;3D-look;Flad" ;
+ Text [ italian ] = "Senza cornice;3D;Piano" ;
+ Text [ spanish ] = "Sin marco;3D-Look;Plano" ;
+ Text [ french ] = "Sans cadre;tridimensionnel;plat" ;
+ Text [ dutch ] = "Zonder kader;3D-look;vlak" ;
+ Text[ chinese_simplified ] = "ÎÞ¿ò£»3 άÏÔʾ£»Æ½Ãæ";
+ Text[ russian ] = "Áåç ðàìêè;3-Ì-Âèä;Ïëîñêèé";
+ Text[ polish ] = "PrzeŸroczysty; Ustawienie 3-W; P³aski";
+ Text[ japanese ] = "˜g‚È‚µ;3DŒ`Ž®;•½‚½‚¢";
+ Text[ chinese_traditional ] = "µL®Ø¡F3 ºûÅã¥Ü¡F¥­­±";
+ Text[ greek ] = "×ùñßò ðëáßóéï;ÅìöÜíéóç 3Ä;Åðßðåäï";
+ Text[ korean ] = "ÇÁ·¹ÀÓ ¾øÀÌ;3D º¸±â;Æò¸é";
+ Text[ arabic ] = "ÈÏæä ßÇÏÑ;ãÙåÑ ËáÇËí ÇáÃÈÚÇÏ; ãõÓØøÍ";
+ Text[ turkish ] = "Çerçevesiz;3B görünüm;Düz";
+ Text[ language_user1 ] = " ";
+};
+String RID_STR_COMMAND_TYPE
+{
+ Text = "Tabelle;Abfrage;SQL-Befehl";
+ Text [ English ] = "Table;Query;SQL command";
+ Text [ english_us ] = "Table;Query;SQL command";
+ Text[ portuguese ] = "Tabela;Consulta;Comando SQL";
+ Text[ russian ] = "Òàáëèöà;Çàïðîñ;Êîìàíäà SQL";
+ Text[ greek ] = "Ðßíáêáò;Åñþôçìá;ÅíôïëÞ SQL";
+ Text[ dutch ] = "Tabel;Query;SQL-opdracht";
+ Text[ french ] = "Table;Requête;Instruction SQL";
+ Text[ spanish ] = "Tabla;consulta;comando SQL";
+ Text[ italian ] = "Tabella;Ricerca;Comando SQL";
+ Text[ danish ] = "Tabel;Forespørgsel;SQL-kommando";
+ Text[ swedish ] = "Tabell;Sökning;SQL-kommando";
+ Text[ polish ] = "Tabela;Kwerenda;Polecenie SQL";
+ Text[ portuguese_brazilian ] = ";Query;Table;SQL command";
+ Text[ japanese ] = "ðÌÞÙ;¸´Ø°;SQLºÏÝÄÞ";
+ Text[ korean ] = "Å×À̺í;ÁúÀÇ;SQL ¸í·É";
+ Text[ chinese_simplified ] = "±í¸ñ£»²éѯ£»SQL Ö¸Áî";
+ Text[ chinese_traditional ] = "¬d¸ß;ªí³æ;SQL «ü¥O";
+ Text[ arabic ] = "ÌÏæá;ÇÓÊÝÓÇÑ;ÃãÑ SQL";
+ Text[ turkish ] = "Tablo;Sorgu;SQL komutu";
+};
+String RID_STR_LISTSOURCE_TYPE
+{
+ Text = "Werteliste;Tabelle;Abfrage;Sql;Sql [Native];Tabellenfelder" ;
+ Text [ English ] = "Valuelist;Table;Query;Sql;Sql [Native];Tablefields" ;
+ Text [ portuguese ] = "Lista de valores;Tabela; Consulta; Sql;Sql [Native];Campos de tabela" ;
+ Text [ english_us ] = "Valuelist;Table;Query;Sql;Sql [Native];Tablefields" ;
+ Text [ portuguese_brazilian ] = "Werteliste;Tabelle;Abfrage;Sql;Sql [Native];Tabellenfelder" ;
+ Text [ swedish ] = "Värdelista;Tabell;Sökning;Sql;Sql [Native];Tabellfält" ;
+ Text [ danish ] = "Værdiliste;Tabel;Forespørgsel;Sql;Sql [native];Tabelfelter" ;
+ Text [ italian ] = "Lista valori;Tabella;Ricerca;Sql;Sql [native];Campi tabella" ;
+ Text [ spanish ] = "Lista de valores;Tabla;Consulta;Sql;Sql [Native];Campos de tablas" ;
+ Text [ french ] = "Liste de valeurs;Table;Requête;Sql;Sql [Natif];Champs de table" ;
+ Text [ dutch ] = "Waardenlijst;Tabel;Query;Sql;Sql [Native];Tabelvelden" ;
+ Text[ chinese_simplified ] = "ÊýÖµÁе¥;±í¸ñ;²éѯ;Sql;Sql [Native];¹¤×÷±í×Ö¶Î";
+ Text[ russian ] = "Ñïèñîê çíà÷åíèé;Òàáëèöà;Çàïðîñ;Sql;Sql [Native];Ïîëÿ òàáëèöû";
+ Text[ polish ] = "Lista wartoœci;Tabela;Kwerenda;Sql;Sql [Native];Pola tabeli";
+ Text[ japanese ] = "’lؽÄ;ðÌÞÙ;¸´Ø°;Sql;Sql [Native];ðÌÞŲ̀°ÙÄÞ";
+ Text[ greek ] = "Ëßóôá ôéìþí;Ðßíáêáò;Åñþôçìá;Sql;Sql [Native];Ðåäßá ðéíÜêùí";
+ Text[ korean ] = "°ª ¸ñ·Ï;Å×À̺í;ÁúÀÇ;Sql;Sql [Native];Å×À̺í Çʵå";
+ Text[ chinese_traditional ] = "¼Æ­È²M³æ;ªí®æ;¬d¸ß;Sql;Sql [Native];ªí®æÄæ¦ì";
+ Text[ arabic ] = "ÞÇÆãÉ Þíã;ÌÏæá;ÇÓÊÝÓÇÑ;Sql;Sql [Native]ÍÞæá ÌÏæá";
+ Text[ turkish ] = "Deðer listesi;Tablo;Sorgu;Sql;Sql [Native];Tablo alanlarý";
+};
+String RID_STR_ALIGNMENT
+{
+ Text = "Links;Zentriert;Rechts" ;
+ Text [ English ] = "Left;Center;Right" ;
+ Text [ portuguese ] = "Esquerda;Centrado;Direita" ;
+ Text [ english_us ] = "Left;Center;Right" ;
+ Text [ portuguese_brazilian ] = "Links;Zentriert;Rechts" ;
+ Text [ swedish ] = "Vänster;Centrerat;Höger" ;
+ Text [ danish ] = "Venstre;Centreret;Højre" ;
+ Text [ italian ] = "Sinistra;Centrato;Destra" ;
+ Text [ spanish ] = "Izquierda;Centrado;Derecha" ;
+ Text [ french ] = "Gauche;Centré;Droite" ;
+ Text [ dutch ] = "Links;Gecentreerd;Rechts" ;
+ Text[ chinese_simplified ] = "Ïò×ó£»¾ÓÖУ»ÏòÓÒ";
+ Text[ russian ] = "Ñëåâà;Ïî öåíòðó;Ñïðàâà";
+ Text[ polish ] = "Do lewej;Wyœrodkowany;Do prawej";
+ Text[ japanese ] = "¶‚É;’†‰›‚É;‰E‚É";
+ Text[ chinese_traditional ] = "¦V¥ª¡F¸m¤¤¡F¦V¥k";
+ Text[ greek ] = "ÁñéóôåñÜ,ÊÝíôñï,ÄåîéÜ";
+ Text[ korean ] = "¿ÞÂÊ;°¡¿îµ¥;¿À¸¥ÂÊ";
+ Text[ arabic ] = "ÇáíÓÇÑ;ÊæÓíØ;Çáíãíä";
+ Text[ turkish ] = "Sol;Orta;Sað";
+ Text[ language_user1 ] = " ";
+};
+String RID_STR_ENUM_BUTTONTYPE
+{
+ Text = "Push;Submit;Reset;Url" ;
+ Text [ English ] = "Push;Submit;Reset;Url" ;
+ Text [ portuguese ] = "Push;Submit;Reset;Url" ;
+ Text [ english_us ] = "Push;Submit;Reset;Url" ;
+ Text [ portuguese_brazilian ] = "Push;Submit;Reset;Url" ;
+ Text [ swedish ] = "Push;Submit;Reset;Url" ;
+ Text [ danish ] = "Push;Submit;Reset;Url" ;
+ Text [ italian ] = "Push;Submit;Reset;Url" ;
+ Text [ spanish ] = "Push;Submit;Reset;Url" ;
+ Text [ french ] = "Push;Submit;Reset;Url" ;
+ Text [ dutch ] = "Push;Submit;Reset;Url" ;
+ Text[ chinese_simplified ] = "Push;Submit;Reset;Url";
+ Text[ russian ] = "Push;Submit;Reset;Url";
+ Text[ polish ] = "Push;Submit;Reset;Url";
+ Text[ japanese ] = "Push;Submit;Reset;Url";
+ Text[ chinese_traditional ] = "Push;Submit;Reset;Url";
+ Text[ greek ] = "Push;Submit;Reset;Url";
+ Text[ korean ] = "Push;Submit;Reset;Url";
+ Text[ arabic ] = "Push;Submit;Reset;Url";
+ Text[ turkish ] = "Push;Submit;Reset;Url";
+ Text[ language_user1 ] = " ";
+};
+String RID_STR_ENUM_SUBMIT_METHOD
+{
+ Text = "Get;Post" ;
+ Text [ English ] = "Get;Post" ;
+ Text [ portuguese ] = "Get;Post" ;
+ Text [ english_us ] = "Get;Post" ;
+ Text [ portuguese_brazilian ] = "Get;Post" ;
+ Text [ swedish ] = "Get;Post" ;
+ Text [ danish ] = "Get;Post" ;
+ Text [ italian ] = "Get;Post" ;
+ Text [ spanish ] = "Get;Post" ;
+ Text [ french ] = "Get;Post" ;
+ Text [ dutch ] = "Get;Post" ;
+ Text[ chinese_simplified ] = "ÊÕÈ¡;¼Ä·¢";
+ Text[ russian ] = "Get;Post";
+ Text[ polish ] = "Get;Post";
+ Text[ japanese ] = "Get;Post";
+ Text[ chinese_traditional ] = "¦¬¨ú;µo°e";
+ Text[ greek ] = "Get;Post";
+ Text[ korean ] = "Get;Post";
+ Text[ arabic ] = "Get;Post";
+ Text[ turkish ] = "Get;Post";
+ Text[ language_user1 ] = " ";
+};
+String RID_STR_ENUM_SUBMIT_ENCODING
+{
+ Text = "URL;Multipart;Text" ;
+ Text [ English ] = "URL;Multipart;Text" ;
+ Text [ portuguese ] = "URL;Multipart;Texto" ;
+ Text [ english_us ] = "URL;Multipart;Text" ;
+ Text [ portuguese_brazilian ] = "URL;Multipart" ;
+ Text [ swedish ] = "URL;Multipart;Text" ;
+ Text [ danish ] = "URL;Multipart;Tekst" ;
+ Text [ italian ] = "URL;Multipart;Testo" ;
+ Text [ spanish ] = "URL;Multipart;Texto" ;
+ Text [ french ] = "URL;Multipart;Texte" ;
+ Text [ dutch ] = "URL;Multipart;Tekst" ;
+ Text[ chinese_simplified ] = "URL;Multipart;Text" ;
+ Text[ russian ] = "URL;Multipart;Òåêñò";
+ Text[ polish ] = "URL;Multipart;Tekst" ;
+ Text[ japanese ] = "URL;Multipart;Text" ;
+ Text[ chinese_traditional ] = "URL;Multipart;Text" ;
+ Text[ greek ] = "URL;Multipart;Êåßìåíï" ;
+ Text[ korean ] = "URL;Multipart;ÅؽºÆ®" ;
+ Text[ arabic ] = "URL;Multipart;Text" ;
+ Text[ turkish ] = "URL;Multipart;Metin";
+ Text[ language_user1 ] = " ";
+};
+String RID_STR_DATEFORMAT_LIST
+{
+ Text = "Standard (kurz);Standard (kurz JJ);Standard (kurz JJJJ);Standard (lang);TT.MM.JJ;MM.TT.JJ;JJ.MM.TT;TT.MM.JJJJ;MM.TT.JJJJ;JJJJ.MM.TT;JJ-MM-TT (DIN5008);JJJJ-MM-TT (DIN5008)" ;
+ Text [ English ] = "Standard (short);Standard (short YY);Standard (short YYYY);Standard (long);DD.MM.YY;MM.DD.YY;YY.MM.DD;DD.MM.YYYY;MM.DD.YYYY;YYYY.MM.DD;YY-MM-DD (DIN5008);YYYY-MM-DD (DIN5008)" ;
+ Text [ portuguese ] = "Standard (curto);Standard (curto AA);Standard (curto AAAA);Standard (longo);DD.MM.AA;MM.DD.AA;AA.MM.DD;DD.MM.AAAA;MM.DD.AAAA;AAAA.MM.DD;AA-MM-DD (DIN5008);AAAA-MM-DD (DIN5008)" ;
+ Text [ english_us ] = "Standard (short);Standard (short YY);Standard (short YYYY);Standard (long);DD.MM.YY;MM.DD.YY;YY.MM.DD;DD.MM.YYYY;MM.DD.YYYY;YYYY.MM.DD;YY-MM-DD (DIN5008);YYYY-MM-DD (DIN5008)" ;
+ Text [ portuguese_brazilian ] = "Standard (kurz);Standard (kurz JJ);Standard (kurz JJJJ);Standard (lang);TT.MM.JJ;MM.TT.JJ;JJ.MM.TT;TT.MM.JJJJ;MM.TT.JJJJ;JJJJ.MM.TT;JJ-MM-TT (DIN5008);JJJJ-MM-TT (DIN5008)" ;
+ Text [ swedish ] = "Standard (kort);Standard (kort ÅÅ);Standard (kort ÅÅÅÅ);Standard (lång);DD.MM.ÅÅ;MM.DD.ÅÅ;ÅÅ.MM.DD;DD.MM.ÅÅÅÅ;MM.DD.ÅÅÅÅ;ÅÅÅÅ.MM.DD;ÅÅ-MM-DD (DIN5008);ÅÅÅÅ-MM-DD (DIN5008)" ;
+ Text [ danish ] = "Standard (kort);Standard (kort ÅÅ);Standard (kort ÅÅÅÅ);Standard (lang);DD.MM.ÅÅ;MM.DD.ÅÅ;ÅÅ.MM.DD;DD.MM.ÅÅÅÅ;MM.DD.ÅÅÅÅ;ÅÅÅÅ.MM.DD;ÅÅ-MM-DD (DIN5008);ÅÅÅÅ-MM-DD (DIN5008)" ;
+ Text [ italian ] = "Standard (breve);Standard (breve AA);Standard (breve AAAA);Standard (lungo);GG.MM.AA;MM.GG.AA;AA.MM.GG;GG.MM.AAAA;MM.GG.AAAA;AAAA.MM.GG;AA-MM-GG (DIN5008);AAAA-MM-GG (DIN5008)" ;
+ Text [ spanish ] = "Estándar (breve);Estándar (breve JJ);Estándar (breve JJJJ);Estándar (largo);DD.MM.AA;MM.DD.AA;AA.MM.DD;DD.MM.AAAA;MM.DD.AAAA;AAAA.MM.DD;AA-MM-DD (DIN5008);JJJJ-MM-TT (DIN5008)" ;
+ Text [ french ] = "Standard (court);Standard (court AA);Standard (court AAAA);Standard (long);JJ.MM.AA;MM.JJ.AA;AA.MM.JJ;JJ.MM.AAAA;MM.JJ.AAAA;.AAAAMM.JJ;AA-MM-JJ (DIN5008);AAAA-MM-JJ (DIN5008)" ;
+ Text [ dutch ] = "Standaard (kort);Standaard (kort JJ);Standaard (kort JJJJ);Standaard (lang);TT.MM.JJ;MM.TT.JJ;JJ.MM.TT;TT.MM.JJJJ;MM.TT.JJJJ;JJJJ.MM.TT;JJ-MM-TT;JJJJ-MM-TT" ;
+ Text[ chinese_simplified ] = "±ê×¼(Ëõд);±ê×¼(Ëõд JJ);±ê×¼(Ëõд JJJJ);±ê×¼ (ÍêÕû);DD.MM.YY;MM.DD.YY;YY.MM.DD;DD.MM.YYYY;MM.DD.YYYY;YYYY.MM.DD;YY-MM-DD (DIN5008);YYYY-MM-DD (DIN5008)";
+ Text[ russian ] = "Ñòàíäàðò (êðàòêèé);Ñòàíäàðò (êðàòêèé ÃÃ); (êðàòêèé ÃÃÃÃ);Ñòàíäàðò (ïîëíûé);ÄÄ.MM.ÃÃ;MM.ÄÄ.ÃÃ;ÃÃ.MM.ÄÄ;ÄÄ.ÌÌ.ÃÃÃÃ;ÃÃÃÃ.ÌÌ.ÄÄ;ÃÃ-ÌÌ-ÄÄ (DIN5008);ÃÃÃÃ-MM-ÄÄ (DIN5008)";
+ Text[ polish ] = "Standardowy (krótki);Standardowy (krótki JJ);Standardowy (krótki JJJJ);Standardowy (d³ugi);TT.MM.JJ;MM.TT.JJ;JJ.MM.TT;TT.MM.JJJJ;MM.TT.JJJJ;JJJJ.MM.TT;JJ-MM-TT (DIN5008);JJJJ-MM-TT (DIN5008)";
+ Text[ japanese ] = "•W€(’Z‚¢);•W€(’Z‚¢ YY);•W€(’Z‚¢ YYYY);•W€(’·‚¢j;DD.MM.YY;MM.DD.YY;YY.MM.DD;DD.MM.YYYY;MM.DD.YYYY;YYYY.MM.DD;YY-MM-DD (DIN5008);YYYY-MM-DD (DIN5008)";
+ Text[ chinese_traditional ] = "¼Ð·Ç(ÁY¼g);¼Ð·Ç(ÁY¼g JJ);¼Ð·Ç(ÁY¼g JJJJ);¼Ð·Ç(§¹¾ã);DD.MM.YY;MM.DD.YY;YY.MM.DD;DD.MM.YYYY;MM.DD.YYYY;YYYY.MM.DD;YY-MM-DD (DIN5008);YYYY-MM-DD (DIN5008)";
+ Text[ greek ] = "ÐñïåðéëïãÞ (óýíôïìï);ÐñïåðéëïãÞ (óýíôïìï YY);ÐñïåðéëïãÞ (óýíôïìï YYYY);ÐñïåðéëïãÞ (ìáêñý);DD.MM.YY;MM.DD.YY;YY.MM.DD;DD.MM.YYYY;MM.DD.YYYY;YYYY.MM.DD;YY-MM-DD (DIN5008);YYYY-MM-DD (DIN5008)";
+ Text[ korean ] = "Ç¥ÁØ(ª°Ô);Ç¥ÁØ(ª°ÔYY);Ç¥ÁØ(ª°ÔYYYY);Ç¥ÁØ(±æ°Ô);DD.MM.YY;MM.DD.YY;YY.MM.DD;DD.MM.YYYY;MM.DD.YYYY;YYYY.MM.DD;YY-MM-DD (DIN5008);YYYY-MM-DD (DIN5008)";
+ Text[ arabic ] = "ÞíÇÓí (ÞÕíÑ)ºÞíÇÓí (ÞÕíÑ YY)ºÞíÇÓí (ÞÕíÑ YYY)ºÞíÇÓí (Øæíá)ºDD.MM.YYºMM.DD.YYºYY.MM.DDºDD.MM.YYYYºMM.DD.YYYYºYYYY.MM.DDºYY-MM-DD (DIN5008)ºYYYY-MM-DD (DIN5008)";
+ Text[ turkish ] = "Standart (kýsa);Standart (kýsa YY);Standart (kýsa YYYY);Standart (uzun);GG.AA.YY;AA.GG.YY;YY.AA.GG;GG.AA.YYYY;AA.GG.YYYY;YYYY.AA.GG;YY-AA-GG (DIN5008);YYYY-AA-GG (DIN5008)";
+ Text[ language_user1 ] = " ";
+};
+String RID_STR_TIMEFORMAT_LIST
+{
+ Text = "13:45;13:45:00;01:45 PM;01:45:00 PM" ;
+ Text [ English ] = "13:45;13:45:00;01:45 PM;01:45:00 PM" ;
+ Text [ portuguese ] = "13:45;13:45:00;01:45 PM;01:45:00 PM" ;
+ Text [ english_us ] = "13:45;13:45:00;01:45 PM;01:45:00 PM" ;
+ Text [ portuguese_brazilian ] = "13:45;13:45:00;01:45 PM;01:45:00 PM" ;
+ Text [ swedish ] = "13:45;13:45:00;01:45 PM;01:45:00 PM" ;
+ Text [ danish ] = "13:45;13:45:00;01:45 PM;01:45:00 PM" ;
+ Text [ italian ] = "13:45;13:45:00;01:45 PM;01:45:00 PM" ;
+ Text [ spanish ] = "13:45;13:45:00;01:45 PM;01:45:00 PM" ;
+ Text [ french ] = "13:45;13:45:00;01:45 PM;01:45:00 PM" ;
+ Text [ dutch ] = "13:45;13:45:00;01:45 PM;01:45:00 PM" ;
+ Text[ chinese_simplified ] = "13:45;13:45:00;01:45 ÏÂÎç;01:45:00 ÏÂÎç";
+ Text[ russian ] = "13:45;13:45:00;01:45 PM;01:45:00 PM";
+ Text[ polish ] = "13:45;13:45:00;01:45 PM;01:45:00 PM";
+ Text[ japanese ] = "13:45;13:45:00;01:45 PM;01:45:00 PM";
+ Text[ chinese_traditional ] = "13:45;13:45:00;01:45 ¤U¤È;01:45:00 ¤U¤È";
+ Text[ greek ] = "13:45;13:45:00;01:45 PM;01:45:00 PM";
+ Text[ korean ] = "13:45;13:45:00;01:45 PM;01:45:00 PM";
+ Text[ arabic ] = "{\\rtf1\\ansi\\deff0\\deftab720{\\fonttbl{\\f0\\fnil MS Sans Serif;}{\\f1\\froman\\fcharset2{\\*\\fname Symbol;}MT Symbol;}{\\f2\\fbidi\\fswiss\\fcharset178 MS Sans Serif;}{\\f3\\fswiss MS Sans Serif;}{\\f4\\fbidi\\fswiss\\fcharset178 MS Sans Serif;}}{\\colortbl\\red0\\green0\\blue0;}\\deflang1025\\pard\\rtlpar\\qr\\plain\\ltrch\\lang1031\\f0\\fs16 13:45;13:45:00;01:45\'b7PM;01:45:00\'b7PM\\plain\\ltrch\\lang1031\\f2\\fs16 \\par }";
+ Text[ turkish ] = "13:45;13:45:00;01:45 PM;01:45:00 PM";
+ Text[ language_user1 ] = " ";
+};
+String RID_STR_ENUM_CHECKED
+{
+ Text = "Nicht ausgewählt;Ausgewählt;Unbestimmt" ;
+ Text [ English ] = "No;Yes;Unassigned" ;
+ Text [ portuguese ] = "Não seleccionado;Seleccionado;Indefinido" ;
+ Text [ english_us ] = "Not Selected;Selected;Not Defined" ;
+ Text [ portuguese_brazilian ] = "Nein;Ja;Unbestimmt" ;
+ Text [ swedish ] = "Ej utvalt;Utvalt;Obestämd" ;
+ Text [ danish ] = "Ikke valgt;Valgt;Udefineret" ;
+ Text [ italian ] = "Non selezionato;Selezionato;Indefinito" ;
+ Text [ spanish ] = "No seleccionado;Seleccionado;Indeterminado" ;
+ Text [ french ] = "Non sélectionné;Sélectionné;Indéterminé" ;
+ Text [ dutch ] = "Niet geselecteerd;Wel geselecteerd;Onbepaald" ;
+ Text[ chinese_simplified ] = "ûÓÐÑ¡Ôñ;ÒÑÑ¡Ôñ;䶨";
+ Text[ russian ] = "Íå âûáðàíî;Âûáðàíî;Íåîïðåäåëåíî";
+ Text[ polish ] = "Nie wybrany; Wybrany;Nieokreœlony";
+ Text[ japanese ] = "‘I‘ð‚³‚ê‚Ä‚¢‚È‚¢;‘I‘ð‚³‚ê‚½;•s’è";
+ Text[ chinese_traditional ] = "¨S¦³¿ï¾Ü;¤w¿ï¾Ü;¥¼©w";
+ Text[ greek ] = "Ìç åðéëåãìÝíá;ÅðéëåãìÝíá;Ìç ïñéóìÝíï";
+ Text[ korean ] = "¼±ÅõÇÁö ¾ÊÀ½;¼±ÅõÊ;ÁöÁ¤µÇÁö ¾ÊÀ½";
+ Text[ arabic ] = "ÛíÑ ãÍÏϺãÍÏϺÛíÑ ãÚÑÝ";
+ Text[ turkish ] = "Seçilmedi;Seçildi;Belirsiz";
+ Text[ language_user1 ] = " ";
+};
+String RID_STR_ENUM_CYCLE
+{
+ Text = "Alle Datensätze;Aktueller Datensatz;Aktuelle Seite" ;
+ Text [ ENGLISH ] = "All records;Activ record;Activ page" ;
+ Text [ english_us ] = "All records;Active record;Current page" ;
+ Text[ portuguese ] = "Registos todos;Registo actual;Página actual";
+ Text[ russian ] = "Âñå çàïèñè;Òåêóùèå çàïèñè;Òåêóùàÿ ñòðàíèöà";
+ Text[ dutch ] = "Alle records;Actueel record;Actuele pagina";
+ Text[ french ] = "Tous les enregistrements ; l'enregistrement actuel ; la page actuelle";
+ Text[ spanish ] = "Todos los registros de datos;Registro actual;Página actual";
+ Text[ italian ] = "Tutti i record di dati;record di dati attuale;pagina attuale";
+ Text[ danish ] = "Alle dataposter;Aktuel datapost;Aktuel side";
+ Text[ swedish ] = "Alla dataposter;Aktuell datapost;Aktuell sida";
+ Text[ polish ] = "Wszystkie rekordy;aktualny rekord, aktualna strona";
+ Text[ portuguese_brazilian ] = "Alle Datensätze;Aktueller Datensatz";
+ Text[ japanese ] = "‚·‚ׂĂÌÚº°ÄÞ;Œ»Ý‚ÌÚº°ÄÞ;Œ»Ý‚ÌÍß°¼Þ";
+ Text[ chinese_simplified ] = "ËùÓеÄÊý¾ÝÌõÄ¿;µ±Ç°µÄÊý¾ÝÌõÄ¿;µ±Ç°Ò³Ãæ";
+ Text[ chinese_traditional ] = "©Ò¦³ªº¸ê®Æ¶µ¥Ø;·í«eªº¸ê®Æ¶µ¥Ø;·í«e­¶­±";
+ Text[ greek ] = "¼ëåò ïé åããñáöÝò;ÔñÝ÷ïõóåò åããñáöÝò;ÔñÝ÷ïõóá óåëßäá";
+ Text[ korean ] = "¸ðµç ·¹ÄÚµå;È°¼º ·¹ÄÚµå;ÇöÀç ÆäÀÌÁö";
+ Text[ arabic ] = "ßá ÇáÓÌáÇÊ;ÇáÓÌá ÇáÍÇáí;ÇáÕÝÍÉ ÇáÍÇáíÉ";
+ Text[ turkish ] = "Tüm veri kümeleri;Yürürlükteki veri kümesi;Yürürlükteki sayfa";
+ Text[ language_user1 ] = " ";
+};
+String RID_STR_ENUM_NAVIGATION
+{
+ Text = "Nein;Ja;Übergeordnetes Formular" ;
+ Text [ ENGLISH ] = "No;Yes;Parent";
+ Text [ english_us ] = "No;Yes;Parent Form";
+ Text[ italian ] = "No;Si;Formulario superiore";
+ Text[ portuguese_brazilian ] = "No;Yes;Parent";
+ Text[ portuguese ] = "Não; Sim;Formulário superior";
+ Text[ danish ] = "Nei;Ja;Overordnet formular";
+ Text[ french ] = "Non;Oui;Formulaire parent";
+ Text[ swedish ] = "Nej;Ja;Överordnat formulär";
+ Text[ dutch ] = "Nee;ja;Bovenliggend formulier";
+ Text[ spanish ] = "No;Sí;Formulario superior";
+ Text[ chinese_simplified ] = "·ñ;ÊÇ;ĸ±íµ¥";
+ Text[ russian ] = "Íåò;Äà;Âûøåñòîÿùèé ôîðìóëÿð";
+ Text[ polish ] = "Nie;Tak;Nadrzêdny formularz";
+ Text[ japanese ] = "‚¢‚¢‚¦;‚Í‚¢;ãˆÊ‚ÌŒ`Ž®";
+ Text[ chinese_traditional ] = "§_;¬O;¥Àªí³æ";
+ Text[ greek ] = "¼÷é;Íáé;Áíþôåñç öüñìá";
+ Text[ korean ] = "¾Æ´Ï¿À;¿¹;»óÀ§ Æû";
+ Text[ arabic ] = "áǺäÚãºÇáÇÓÊãÇÑÉ ÇáÃÕá";
+ Text[ turkish ] = "Hayýr;Evet;Üst düzey form";
+ Text[ language_user1 ] = " ";
+};
+String RID_STR_EVT_APPROVEPARAMETER
+{
+ Text = "Parameter füllen" ;
+ Text [ English ] = "Fill parameters" ;
+ Text [ english_us ] = "Fill parameters" ;
+ Text[ portuguese ] = "Preencher parâmetros";
+ Text[ russian ] = "Çàïîëíèòü ïàðàìåòðû";
+ Text[ greek ] = "ÐáñÜìåôñïé ãåìßóìáôïò";
+ Text[ dutch ] = "Parameter vullen";
+ Text[ french ] = "Remplir les paramètres";
+ Text[ spanish ] = "Rellenar parámetros";
+ Text[ italian ] = "Compila parametri";
+ Text[ danish ] = "Fyld parametre";
+ Text[ swedish ] = "Fyll parametrar";
+ Text[ polish ] = "Wype³nij parametry";
+ Text[ portuguese_brazilian ] = "Fill parameters";
+ Text[ japanese ] = "Êß×Ò°À‚Ì‘}“ü";
+ Text[ korean ] = "ÆĶó¹ÌÅÍ Ã¤¿ì±â";
+ Text[ chinese_simplified ] = "ÌîÈë²ÎÊý";
+ Text[ chinese_traditional ] = "¶ñ¤J§UÅܶq";
+ Text[ arabic ] = "ÊÚÈÆÉ ÇáãÚáãÇÊ";
+ Text[ turkish ] = "Parametreleri doldur";
+ Text[ language_user1 ] = " ";
+};
+String RID_STR_EVT_ACTIONPERFORMED
+{
+ Text = "Beim Auslösen" ;
+ Text [ English ] = "on click" ;
+ Text [ portuguese ] = "Ao iniciar" ;
+ Text [ english_us ] = "When initiating" ;
+ Text [ portuguese_brazilian ] = "Aktion ausgelöst" ;
+ Text [ swedish ] = "Vid utförande" ;
+ Text [ danish ] = "Under udførelse" ;
+ Text [ italian ] = "Durante l'esecuzione" ;
+ Text [ spanish ] = "Al ejecutar" ;
+ Text [ french ] = "Lors du déclenchement" ;
+ Text [ dutch ] = "Bij het oproepen" ;
+ Text[ chinese_simplified ] = "ÔÚÖ´ÐвÙ×÷ʱ";
+ Text[ russian ] = "Âî âðåìÿ âûïîëíåíèÿ";
+ Text[ polish ] = "Podczas wykonywania";
+ Text[ japanese ] = "ì“®‚ÌÛ";
+ Text[ chinese_traditional ] = "¦b¾Þ§@®É";
+ Text[ greek ] = "ÊáôÜ ôçí åêôÝëåóç";
+ Text[ korean ] = "½ÇÇàÇÒ ¶§";
+ Text[ arabic ] = "ÚäÏ ÇáÊäÝíÐ";
+ Text[ turkish ] = "Baþlatma sýrasýnda";
+ Text[ language_user1 ] = " ";
+};
+String RID_STR_EVT_AFTERUPDATE
+{
+ Text = "Nach dem Aktualisieren" ;
+ Text [ English ] = "After update" ;
+ Text [ portuguese ] = "Depois de actualizar" ;
+ Text [ english_us ] = "After update" ;
+ Text [ portuguese_brazilian ] = "Nach dem Aktualisieren" ;
+ Text [ swedish ] = "Efter uppdatering" ;
+ Text [ danish ] = "Efter opdatering" ;
+ Text [ italian ] = "Ad aggiornamento avvenuto" ;
+ Text [ spanish ] = "Después de actualizar" ;
+ Text [ french ] = "Après l'actualisation" ;
+ Text [ dutch ] = "Na het actualiseren" ;
+ Text[ chinese_simplified ] = "¸üÐÂÖ®ºó";
+ Text[ russian ] = "Ïîñëå îáíîâëåíèÿ";
+ Text[ polish ] = "Po aktualizacji";
+ Text[ japanese ] = "XV‚ÌŒã";
+ Text[ chinese_traditional ] = "§ó·s¤§«á";
+ Text[ greek ] = "ÌåôÜ ôçí åíçìÝñùóç";
+ Text[ korean ] = "¾÷µ¥ÀÌÆ®ÇÑ ÈÄ";
+ Text[ arabic ] = "ÈÚÏ ÇáÊÍÏíË";
+ Text[ turkish ] = "Güncellemeden sonra";
+ Text[ language_user1 ] = " ";
+};
+String RID_STR_EVT_BEFOREUPDATE
+{
+ Text = "Vor dem Aktualisieren" ;
+ Text [ English ] = "Before update" ;
+ Text [ portuguese ] = "Antes de actualizar" ;
+ Text [ english_us ] = "Before update" ;
+ Text [ portuguese_brazilian ] = "Vor dem Aktualisieren" ;
+ Text [ swedish ] = "Innan uppdatering" ;
+ Text [ danish ] = "Inden opdatering" ;
+ Text [ italian ] = "Prima di aggiornare" ;
+ Text [ spanish ] = "Antes de actualizar" ;
+ Text [ french ] = "Avant l'actualisation" ;
+ Text [ dutch ] = "Voor het actualiseren" ;
+ Text[ chinese_simplified ] = "ÔÚ¸üÐÂ֮ǰ";
+ Text[ russian ] = "Ïåðåä îáíîâëåíèåì";
+ Text[ polish ] = "Przed aktualizacj¹";
+ Text[ japanese ] = "XV‚Ì‘O";
+ Text[ chinese_traditional ] = "¦b§ó·s¤§«e";
+ Text[ greek ] = "Ðñéí ôçí åíçìÝñùóç";
+ Text[ korean ] = "¾÷µ¥ÀÌÆ®Çϱâ Àü";
+ Text[ arabic ] = "ÞÈá ÇáÊÍÏíË";
+ Text[ turkish ] = "Güncellemeden önce";
+ Text[ language_user1 ] = " ";
+};
+String RID_STR_EVT_APPROVEROWCHANGE
+{
+ Text = "Vor der Datensatzänderung" ;
+ Text [ English ] = "Before row change" ;
+ Text [ english_us ] = "Before record change" ;
+ Text[ portuguese ] = "Antes de modificar registo de dados";
+ Text[ russian ] = "Ïåðåä èçìåíåíèåì äàííûõ";
+ Text[ greek ] = "Ðñéí ôçí áëëáãÞ ôçò åããñáöÞò";
+ Text[ dutch ] = "Voor het veranderen van de record";
+ Text[ french ] = "Avant la modification de l'enregistrement";
+ Text[ spanish ] = "Antes de la modificación del registro de datos";
+ Text[ italian ] = "Prima la modifica dei record di dati";
+ Text[ danish ] = "Inden datapostændring";
+ Text[ swedish ] = "Innan datapoständring";
+ Text[ polish ] = "Przed zmian¹ rekordów";
+ Text[ portuguese_brazilian ] = "Before row change";
+ Text[ japanese ] = "Úº°ÄÞ•ÏX‚Ì‘O";
+ Text[ korean ] = "µ¥ÀÌÅÍ ·¹ÄÚµå º¯°æ Àü¿¡";
+ Text[ chinese_simplified ] = "¸ü¸ÄÊý¾ÝÌõĿ֮ǰ";
+ Text[ chinese_traditional ] = "¸ê®Æ±ø¥ØÅܧ󤧫e";
+ Text[ arabic ] = "ÞÈá ÊÛííÑ ÇáÓÌá";
+ Text[ turkish ] = "Veri kümesi deðiþikliðinden önce";
+};
+String RID_STR_EVT_ROWCHANGE
+{
+ Text = "Nach der Datensatzänderung" ;
+ Text [ English ] = "After row change" ;
+ Text [ english_us ] = "After record change" ;
+ Text[ portuguese ] = "Depois de modificar registo de dados";
+ Text[ russian ] = "Ïîñëå èçìåíåíèÿ äàííûõ";
+ Text[ greek ] = "ÌåôÜ ôçí áëëáãÞ ôçò åããñáöÞò";
+ Text[ dutch ] = "Na het veranderen van de record";
+ Text[ french ] = "Après la modification de l'enregistrement";
+ Text[ spanish ] = "Después de la modificación del registro de datos";
+ Text[ italian ] = "Dopo la modifica dei record di dati";
+ Text[ danish ] = "Efter datapostændring";
+ Text[ swedish ] = "Efter datapoständring";
+ Text[ polish ] = "Po zmianie rekordów";
+ Text[ portuguese_brazilian ] = "After row change";
+ Text[ japanese ] = "Úº°ÄÞ•ÏX‚ÌŒã";
+ Text[ korean ] = "µ¥ÀÌÅÍ ·¹ÄÚµå º¯°æ ÈÄ¿¡";
+ Text[ chinese_simplified ] = "¸ü¸ÄÊý¾ÝÌõÄ¿Ö®ºó";
+ Text[ chinese_traditional ] = "¸ê®Æ±ø¥ØÅܧ󤧫á";
+ Text[ arabic ] = "ÈÚÏ ÊÛííÑ ÇáÓÌá";
+ Text[ turkish ] = "Veri kümesi deðiþikliðinden sonra";
+};
+String RID_STR_EVT_CONFIRMDELETE
+{
+ Text = "Löschen bestätigen" ;
+ Text [ English ] = "Confirm delete" ;
+ Text [ portuguese ] = "Confirmar eliminar" ;
+ Text [ english_us ] = "Confirm delete" ;
+ Text [ portuguese_brazilian ] = "Löschen bestätigen" ;
+ Text [ swedish ] = "Bekräfta radering" ;
+ Text [ danish ] = "Bekræft sletning" ;
+ Text [ italian ] = "Conferma 'Elimina'" ;
+ Text [ spanish ] = "Confirmar eliminación" ;
+ Text [ french ] = "Confirmation de suppression" ;
+ Text [ dutch ] = "Wissen bevestigen" ;
+ Text[ chinese_simplified ] = "È·¶¨É¾³ý";
+ Text[ russian ] = "Ïîäòâåðäèòü óäàëåíèå";
+ Text[ polish ] = "PotwierdŸ usuniêcie";
+ Text[ japanese ] = "휂̊m”F";
+ Text[ chinese_traditional ] = "½T©w§R°£";
+ Text[ greek ] = "Åðéâåâáßùóç äéáãñáöÞò";
+ Text[ korean ] = "»èÁ¦ È®ÀÎ";
+ Text[ arabic ] = "ÊÃßíÏ ÇáÍÐÝ";
+ Text[ turkish ] = "Silme iþlemini onayla";
+ Text[ language_user1 ] = " ";
+};
+String RID_STR_EVT_ERROROCCURED
+{
+ Text = "Fehler aufgetreten" ;
+ Text [ English ] = "Error occured" ;
+ Text [ portuguese ] = "Surgiu erro" ;
+ Text [ english_us ] = "Error occurred" ;
+ Text [ portuguese_brazilian ] = "Fehler aufgetreten" ;
+ Text [ swedish ] = "Fel har uppstått" ;
+ Text [ danish ] = "Der opstod en fejl" ;
+ Text [ italian ] = "Si è verificato un errore" ;
+ Text [ spanish ] = "Ha ocurrido un error" ;
+ Text [ french ] = "Erreur survenue" ;
+ Text [ dutch ] = "Fout opgetreden" ;
+ Text[ chinese_simplified ] = "·¢ÉúÒ»¸ö´íÎó";
+ Text[ russian ] = "Ïðîèçîøëà îøèáêà";
+ Text[ polish ] = "Wyst¹pi³ b³¹d";
+ Text[ japanese ] = "´×°‚Ì”­¶";
+ Text[ chinese_traditional ] = "µo¥Í¤@­Ó¿ù»~";
+ Text[ greek ] = "ÐáñïõóéÜóôçêå óöÜëìá";
+ Text[ korean ] = "¿À·ù ¹ß»ý";
+ Text[ arabic ] = "ÍÏË ÎØÃ";
+ Text[ turkish ] = "Hata oluþtu";
+ Text[ language_user1 ] = " ";
+};
+String RID_STR_EVT_FOCUSGAINED
+{
+ Text = "Bei Fokuserhalt" ;
+ Text [ English ] = "Focus gained" ;
+ Text [ portuguese ] = "Ao receber foco" ;
+ Text [ english_us ] = "Focus gained" ;
+ Text [ portuguese_brazilian ] = "Bei Fokuserhalt" ;
+ Text [ swedish ] = "Vid fokusering" ;
+ Text [ danish ] = "Ved fokusopretholdelse" ;
+ Text [ italian ] = "Raggiungimento del punto focale" ;
+ Text [ spanish ] = "Recepción de foco" ;
+ Text [ french ] = "Réception de focus" ;
+ Text [ dutch ] = "Indien focus bereikt" ;
+ Text[ chinese_simplified ] = "ÔÚÃé׼ʱ";
+ Text[ russian ] = "Ïðè ïîëó÷åíèè ôîêóñà";
+ Text[ polish ] = "Przy otrzymaniu ogniska";
+ Text[ japanese ] = "Ì«°¶½‚𓾂½Û";
+ Text[ chinese_traditional ] = "¦bºË·Ç®É";
+ Text[ greek ] = "Óå ðåñßðôùóç åóôßáóçò";
+ Text[ korean ] = "ÃÊÁ¡À» ¸ÂÃèÀ» ¶§";
+ Text[ arabic ] = "ÇáÍÕæá Úáì ÇáÊÑßíÒ";
+ Text[ turkish ] = "Odaklandý";
+ Text[ language_user1 ] = " ";
+};
+String RID_STR_EVT_FOCUSLOST
+{
+ Text = "Bei Fokusverlust" ;
+ Text [ English ] = "Focus lost" ;
+ Text [ portuguese ] = "Ao perder foco" ;
+ Text [ english_us ] = "Focus lost" ;
+ Text [ portuguese_brazilian ] = "Bei Fokusverlust" ;
+ Text [ swedish ] = "Vid fokusförlust" ;
+ Text [ danish ] = "Ved fokustab" ;
+ Text [ italian ] = "Perdita del punto focale" ;
+ Text [ spanish ] = "Pérdida de foco" ;
+ Text [ french ] = "Perte de focus" ;
+ Text [ dutch ] = "Bij focusverlies" ;
+ Text[ chinese_simplified ] = "ÔÚÆ«ÀëÄ¿±êʱ";
+ Text[ russian ] = "Ïðè ïîòåðå ôîêóñà";
+ Text[ polish ] = "Przy utracie ogniska";
+ Text[ japanese ] = "Ì«°¶½‚ðŽ¸‚Á‚½Û";
+ Text[ chinese_traditional ] = "¦b°¾Â÷¥Ø¼Ð®É";
+ Text[ greek ] = "Óôçí ðåñßðôùóç áðþëåéáò åóôßáò";
+ Text[ korean ] = "ÃÊÁ¡À» ÀÒ¾úÀ» ¶§";
+ Text[ arabic ] = "ÝÞÏÇä ÇáÊÑßíÒ";
+ Text[ turkish ] = "Odak kayboldu";
+ Text[ language_user1 ] = " ";
+};
+String RID_STR_EVT_ITEMSTATECHANGED
+{
+ Text = "Status geändert" ;
+ Text [ English ] = "Item state changed" ;
+ Text [ portuguese ] = "Estado modificado" ;
+ Text [ english_us ] = "Item status changed" ;
+ Text [ portuguese_brazilian ] = "Status geändert" ;
+ Text [ swedish ] = "Status ändrad" ;
+ Text [ danish ] = "Status ændret" ;
+ Text [ italian ] = "Stato modificato" ;
+ Text [ spanish ] = "Estado modificado" ;
+ Text [ french ] = "Statut modifié" ;
+ Text [ dutch ] = "Status gewijzigd" ;
+ Text[ chinese_simplified ] = "״̬ÒѾ­¸ü¸Ä";
+ Text[ russian ] = "Ñîñòîÿíèå èçìåíåíî";
+ Text[ polish ] = "Zmieniony stan";
+ Text[ japanese ] = "½Ã°À½‚Ì•ÏX";
+ Text[ chinese_traditional ] = "ª¬ºA¤w¸gÅܧó";
+ Text[ greek ] = "ÊáôÜóôáóç ôñïðïðïéÞèçêå";
+ Text[ korean ] = "»óÅ º¯°æ";
+ Text[ arabic ] = "Êã ÊÛííÑ ÇáÍÇáÉ";
+ Text[ turkish ] = "Durum deðiþtirildi";
+ Text[ language_user1 ] = " ";
+};
+String RID_STR_EVT_KEYTYPED
+{
+ Text = "Taste gedrückt" ;
+ Text [ English ] = "Key typed" ;
+ Text [ portuguese ] = "Tecla premida" ;
+ Text [ english_us ] = "Key typed" ;
+ Text [ portuguese_brazilian ] = "Nach Tastendruck" ;
+ Text [ swedish ] = "Tangent tryckt" ;
+ Text [ danish ] = "Knap trykket" ;
+ Text [ italian ] = "Tasto premuto" ;
+ Text [ spanish ] = "Tecla pulsada" ;
+ Text [ french ] = "Touche enfoncée" ;
+ Text [ dutch ] = "Met ingedrukte toets" ;
+ Text[ chinese_simplified ] = "°´×¡°´¼ü";
+ Text[ russian ] = "Êëàâèøà íàæàòà";
+ Text[ polish ] = "Wciœniêty przycisk";
+ Text[ japanese ] = "·°‚ð‰Ÿ‚·";
+ Text[ chinese_traditional ] = "«ö¦í«öÁä";
+ Text[ greek ] = "ÐëÞêôñï ðáôçìÝíï";
+ Text[ korean ] = "Å° ´©¸§";
+ Text[ arabic ] = "ÇáÖÛØ Úáì ÒÑ";
+ Text[ turkish ] = "Tuþ basýlý";
+ Text[ language_user1 ] = " ";
+};
+String RID_STR_EVT_KEYUP
+{
+ Text = "Taste losgelassen" ;
+ Text [ English ] = "Key up" ;
+ Text [ portuguese ] = "Depois de premir tecla" ;
+ Text [ english_us ] = "Key released" ;
+ Text [ portuguese_brazilian ] = "Nach Tastendruck" ;
+ Text [ swedish ] = "Efter tangenttryck" ;
+ Text [ danish ] = "Knap sluppet" ;
+ Text [ italian ] = "Dopo aver premuto il tasto" ;
+ Text [ spanish ] = "Tecla soltada" ;
+ Text [ french ] = "Après avoir lâché la touche" ;
+ Text [ dutch ] = "Toets losgelaten" ;
+ Text[ chinese_simplified ] = "·Å¿ª°´¼ü";
+ Text[ russian ] = "Îòïóùåííàÿ êëàâèøà";
+ Text[ polish ] = "Zwolniony przycisk";
+ Text[ japanese ] = "·°‚̉ðœ";
+ Text[ chinese_traditional ] = "©ñ¶}«öÁä";
+ Text[ greek ] = "ÐëÞêôñï áðåëåõèåñùìÝíï";
+ Text[ korean ] = "Å° ³õÀ½";
+ Text[ arabic ] = "æÞÝ ÇáÖÛØ Úáì ÒÑ";
+ Text[ turkish ] = "Tuþ býralkýldýðýnda";
+ Text[ language_user1 ] = " ";
+};
+String RID_STR_EVT_LOADED
+{
+ Text = "Beim Laden" ;
+ Text [ English ] = "When loading" ;
+ Text [ portuguese ] = "Ao carregar" ;
+ Text [ english_us ] = "When loading" ;
+ Text [ portuguese_brazilian ] = "Beim Laden" ;
+ Text [ swedish ] = "Vid laddning" ;
+ Text [ danish ] = "Ved indlæsning" ;
+ Text [ italian ] = "Durante il caricamento" ;
+ Text [ spanish ] = "Al cargar" ;
+ Text [ french ] = "En cours de chargement" ;
+ Text [ dutch ] = "Bij het laden" ;
+ Text[ chinese_simplified ] = "ÔÚ×°ÔØʱ";
+ Text[ russian ] = "Ïðè çàãðóçêå";
+ Text[ polish ] = "Przy ³adowaniu";
+ Text[ japanese ] = "“Ç‚Ýž‚Ý‚ÌÛ";
+ Text[ chinese_traditional ] = "¦b¸Ë¸ü®É";
+ Text[ greek ] = "ÊáôÜ ôç öüñôùóç";
+ Text[ korean ] = "·ÎµåÇÒ ¶§";
+ Text[ arabic ] = "ÚäÏ ÇáÊÍãíá";
+ Text[ turkish ] = "Yükleme sýrasýnda";
+ Text[ language_user1 ] = " ";
+};
+String RID_STR_EVT_RELOADING
+{
+ Text = "Vor dem erneuten Laden";
+ Text [ english ] = "Before reloading" ;
+ Text [ english_us ] = "Before reloading" ;
+};
+String RID_STR_EVT_RELOADED
+{
+ Text = "Beim erneuten Laden" ;
+ Text [ English ] = "When reloading" ;
+ Text [ english_us ] = "When reloading" ;
+ Text[ portuguese ] = "Ao recarregar";
+ Text[ russian ] = "Ïðè ïîâòîðíîé çàãðóçêå";
+ Text[ greek ] = "ÊáôÜ ôçí åðáíÜëçøç ôçò öüñôùóçò";
+ Text[ dutch ] = "Bij het opnieuw laden";
+ Text[ french ] = "Lors du nouveau chargement";
+ Text[ spanish ] = "Al recargar";
+ Text[ italian ] = "Durante il ricaricamento";
+ Text[ danish ] = "Under genladning";
+ Text[ swedish ] = "Vid omladdning";
+ Text[ polish ] = "Podczas ponownego ³adowania";
+ Text[ portuguese_brazilian ] = "When reloading";
+ Text[ japanese ] = "±ÝÛ°ÄÞ‚ÌÛ";
+ Text[ korean ] = "»õ·Î ·ÎµåÇÒ ¶§";
+ Text[ chinese_simplified ] = "ÔÚÖØÐÂ×°ÔØʱ";
+ Text[ chinese_traditional ] = "¦b­«·s¸Ë¸ü®É";
+ Text[ arabic ] = "ÚäÏ ÅÚÇÏÉ ÇáÊÍãíá";
+ Text[ turkish ] = "Yeniden yükleme sýrasýnda";
+};
+String RID_STR_EVT_MOUSEDRAGGED
+{
+ Text = "Mausbewegung bei Tastendruck" ;
+ Text [ English ] = "Mouse dragged" ;
+ Text [ portuguese ] = "Mover rato ao premir tecla" ;
+ Text [ english_us ] = "Mouse dragged while key pressed" ;
+ Text [ portuguese_brazilian ] = "Mausbewegung bei Tastendruck" ;
+ Text [ swedish ] = "Musrörelse vid tangenttryck" ;
+ Text [ danish ] = "Musbevægelse ved knaptryk" ;
+ Text [ italian ] = "Movimento del mouse premendo i tasti" ;
+ Text [ spanish ] = "Mover ratón por medio del teclado" ;
+ Text [ french ] = "Déplacement de la souris et touche enfoncée" ;
+ Text [ dutch ] = "Muisbeweging bij indrukken toets" ;
+ Text[ chinese_simplified ] = "ÔÚ°´»÷Êó±ê¼üµÄͬʱÍÏÀ­Òƶ¯Êó±ê";
+ Text[ russian ] = "Ïåðåìåùåíèå ìûøè ïðè íàæàòèè êëàâèøè";
+ Text[ polish ] = "Przemieszczanie myszy przy przyciœniêciu przycisku";
+ Text[ japanese ] = "·°‚ð‰Ÿ‚µ‚È‚ª‚çϳ½‚ð‘€ì";
+ Text[ chinese_traditional ] = "¦b«ö¦í·Æ¹««öÁ䬡°Ê®É";
+ Text[ greek ] = "Ìåôáêßíçóç ðïíôéêéïý êáôÜ ôï ðÜôçìá ðëÞêôñïõ";
+ Text[ korean ] = "Å°¸¦ ´©¸¦ ¶§ ¸¶¿ì½º À̵¿";
+ Text[ arabic ] = "ÊÍÑíß ÇáãÇæÓ ÃËäÇÁ ÇáÖÛØ Úáì ÇáÒÑ";
+ Text[ turkish ] = "Tuþa basarak fare hareketi";
+ Text[ language_user1 ] = " ";
+};
+String RID_STR_EVT_MOUSEENTERED
+{
+ Text = "Maus innerhalb" ;
+ Text [ English ] = "Mouse entered" ;
+ Text [ portuguese ] = "Rato dentro" ;
+ Text [ english_us ] = "Mouse inside" ;
+ Text [ portuguese_brazilian ] = "Maus innerhalb" ;
+ Text [ swedish ] = "Mus inom" ;
+ Text [ danish ] = "Mus indenfor" ;
+ Text [ italian ] = "Mouse dentro" ;
+ Text [ spanish ] = "Ratón dentro" ;
+ Text [ french ] = "Souris à l'intérieur" ;
+ Text [ dutch ] = "Muis binnen" ;
+ Text[ chinese_simplified ] = "Êó±ê½øÈë";
+ Text[ russian ] = "Ìûøü âíóòðè";
+ Text[ polish ] = "Mysz wewn¹trz";
+ Text[ japanese ] = "ϳ½‚𒆂Ö";
+ Text[ chinese_traditional ] = "¹«¼Ð¶i¤J";
+ Text[ greek ] = "Ðïíôßêé åíôüò";
+ Text[ korean ] = "¸¶¿ì½º ³»ºÎ";
+ Text[ arabic ] = "ÇáãÇæÓ ÈÇáÏÇÎá";
+ Text[ turkish ] = "Fare içerde";
+ Text[ language_user1 ] = " ";
+};
+String RID_STR_EVT_MOUSEEXITED
+{
+ Text = "Maus ausserhalb" ;
+ Text [ English ] = "Mouse exited" ;
+ Text [ portuguese ] = "Rato fora" ;
+ Text [ english_us ] = "Mouse outside" ;
+ Text [ portuguese_brazilian ] = "Maus ausserhalb" ;
+ Text [ swedish ] = "Mus utanför" ;
+ Text [ danish ] = "Mus udenfor" ;
+ Text [ italian ] = "Mouse fuori" ;
+ Text [ spanish ] = "Ratón fuera" ;
+ Text [ french ] = "Souris à l'extérieur" ;
+ Text [ dutch ] = "Muis buiten" ;
+ Text[ chinese_simplified ] = "Êó±êÍ˳ö";
+ Text[ russian ] = "Ìûøü ñíàðóæè";
+ Text[ polish ] = "Mysz na zewn¹trz";
+ Text[ japanese ] = "ϳ½‚ðŠO‚Ö";
+ Text[ chinese_traditional ] = "¹«¼Ð°h¥X";
+ Text[ greek ] = "Ðïíôßêé åêôüò";
+ Text[ korean ] = "¸¶¿ì½º ¿ÜºÎ";
+ Text[ arabic ] = "ÇáãÇæÓ ÈÇáÎÇÑÌ";
+ Text[ turkish ] = "Fare dýþarda";
+ Text[ language_user1 ] = " ";
+};
+String RID_STR_EVT_MOUSEMOVED
+{
+ Text = "Mausbewegung" ;
+ Text [ English ] = "Mouse moved" ;
+ Text [ portuguese ] = "Mover rato" ;
+ Text [ english_us ] = "Mouse moved" ;
+ Text [ portuguese_brazilian ] = "Mausbewegung" ;
+ Text [ swedish ] = "Musrörelse" ;
+ Text [ danish ] = "Musbevægelse" ;
+ Text [ italian ] = "Movimento del mouse" ;
+ Text [ spanish ] = "Movimiento de ratón" ;
+ Text [ french ] = "Déplacement de la souris" ;
+ Text [ dutch ] = "Muisbeweging" ;
+ Text[ chinese_simplified ] = "Êó±ê»î¶¯";
+ Text[ russian ] = "Ïåðåìåùåíèå ìûøè";
+ Text[ polish ] = "Przesuniêcie myszy";
+ Text[ japanese ] = "ϳ½‚Ì‘€ì";
+ Text[ chinese_traditional ] = "¹«¼Ð¬¡°Ê";
+ Text[ greek ] = "Êßíçóç ðïíôéêéïý";
+ Text[ korean ] = "¸¶¿ì½º À̵¿";
+ Text[ arabic ] = "ÊÍÑíß ÇáãÇæÓ";
+ Text[ turkish ] = "Fare hareketi";
+ Text[ language_user1 ] = " ";
+};
+String RID_STR_EVT_MOUSEPRESSED
+{
+ Text = "Maustaste gedrückt" ;
+ Text [ English ] = "Mouse pressed" ;
+ Text [ portuguese ] = "Premir botão do rato " ;
+ Text [ english_us ] = "Mouse pressed" ;
+ Text [ portuguese_brazilian ] = "Maustaste gedrückt" ;
+ Text [ swedish ] = "Musknapp nedtryckt" ;
+ Text [ danish ] = "Museknap trykket" ;
+ Text [ italian ] = "Tasto del mouse premuto" ;
+ Text [ spanish ] = "Pulsar botón del ratón" ;
+ Text [ french ] = "Bouton de souris enfoncé" ;
+ Text [ dutch ] = "Muistoets ingedrukt" ;
+ Text[ chinese_simplified ] = "°´×¡Êó±ê¼ü";
+ Text[ russian ] = "Êëàâèøà ìûøè íàæàòà";
+ Text[ polish ] = "Naciœniêty przycisk myszy";
+ Text[ japanese ] = "ϳ½ ÎÞÀÝ‚ð‰Ÿ‚·";
+ Text[ chinese_traditional ] = "«ö¦í·Æ¹«Áä";
+ Text[ greek ] = "Ðïíôßêé ðéåóìÝíï";
+ Text[ korean ] = "¸¶¿ì½º ´©¸§";
+ Text[ arabic ] = "ÇáÖÛØ Úáì ÒÑ ÇáãÇæÓ";
+ Text[ turkish ] = "Fare tuþu basýlý";
+ Text[ language_user1 ] = " ";
+};
+String RID_STR_EVT_MOUSERELEASED
+{
+ Text = "Maustaste losgelassen" ;
+ Text [ English ] = "Mouse released" ;
+ Text [ portuguese ] = "Soltar botão do rato" ;
+ Text [ english_us ] = "Mouse released" ;
+ Text [ portuguese_brazilian ] = "Maustaste losgelassen" ;
+ Text [ swedish ] = "Musknapp uppsläppt" ;
+ Text [ danish ] = "Museknap sluppet" ;
+ Text [ italian ] = "Tasto del mouse rilasciato" ;
+ Text [ spanish ] = "Soltar botón del ratón" ;
+ Text [ french ] = "Bouton de souris relâché" ;
+ Text [ dutch ] = "Muistoetst losgelaten" ;
+ Text[ chinese_simplified ] = "·Å¿ªÊó±ê¼ü";
+ Text[ russian ] = "Êëàâèøà ìûøè îòïóùåíà";
+ Text[ polish ] = "Zwolnij przycisk myszy";
+ Text[ japanese ] = "ϳ½ ÎÞÀ݂𗣂·";
+ Text[ chinese_traditional ] = "©ñ¶}·Æ¹«Áä";
+ Text[ greek ] = "Ðïíôßêé áðåëåõèåñùìÝíï";
+ Text[ korean ] = "¸¶¿ì½º ³õÀ½";
+ Text[ arabic ] = "æÞÝ ÇáÖÛØ Úáì ÒÑ ÇáãÇæÓ";
+ Text[ turkish ] = "Fare tuþu býrakýlmýþ";
+ Text[ language_user1 ] = " ";
+};
+String RID_STR_EVT_POSITIONING
+{
+ Text = "Vor dem Datensatzwechsel" ;
+ Text [ English ] = "Prior positioning" ;
+ Text [ english_us ] = "Before record change" ;
+ Text[ portuguese ] = "Posição anterior";
+ Text[ russian ] = "Äî çàìåíû çàïèñè";
+ Text[ greek ] = "Ðñéí ôçí áëëáãÞ åããñáöÞò";
+ Text[ dutch ] = "Voor wisselen van record";
+ Text[ french ] = "Avant le passage au suivant";
+ Text[ spanish ] = "Antes del cambio de registro de datos";
+ Text[ italian ] = "Prima del cambio record di dati";
+ Text[ danish ] = "Inden datapostskift";
+ Text[ swedish ] = "Före datapostväxling";
+ Text[ polish ] = "Przed zmian¹ rekordów";
+ Text[ portuguese_brazilian ] = "Prior positioning";
+ Text[ japanese ] = "Úº°ÄÞ‚Ì’uŠ·‘O‚̈ʒu";
+ Text[ korean ] = "·¹ÄÚµå º¯°æ Àü¿¡";
+ Text[ chinese_simplified ] = "ÔÚת»»Êý¾ÝÌõĿ֮ǰ";
+ Text[ chinese_traditional ] = "¦bÅÜ´«¸ê®Æ±ø¥Ø¤§«e";
+ Text[ arabic ] = "ÞÈá ÊÛííÑ ÇáÓÌá";
+ Text[ turkish ] = "Veri kümesi deðiþikliðinden önce";
+};
+String RID_STR_EVT_POSITIONED
+{
+ Text = "Nach dem Datensatzwechsel" ;
+ Text [ English ] = "After positioning" ;
+ Text [ english_us ] = "After record change" ;
+ Text [ portuguese_brazilian ] = "Position verändert" ;
+ Text [ swedish ] = "Efter datapostväxling" ;
+ Text [ danish ] = "Efter datapostskift" ;
+ Text [ italian ] = "Dopo il cambio record di dati" ;
+ Text [ spanish ] = "Tras el cambio de registro de datos" ;
+ Text [ french ] = "Après passage au suivant" ;
+ Text [ dutch ] = "Na wisselen van record" ;
+ Text[ chinese_simplified ] = "ת»»Êý¾ÝÌõÄ¿ÒÔºó";
+ Text[ russian ] = "Ïîñëå çàìåíû çàïèñè";
+ Text[ polish ] = "Po zmianie rekordów";
+ Text[ japanese ] = "Úº°ÄÞ‚Ì’uŠ·Œã‚̈ʒu";
+ Text[ chinese_traditional ] = "¦bÅÜ´«¸ê®Æ±ø¥Ø¤§«á";
+ Text[ greek ] = "ÌåôÜ ôçí áëëáãÞ åããñáöÞò";
+ Text[ korean ] = "·¹ÄÚµå º¯°æ ÈÄ¿¡";
+ Text[ arabic ] = "ÈÚÏ ÊÛííÑ ÇáÓÌá";
+ Text[ portuguese ] = "Posição seguinte";
+ Text[ turkish ] = "Veri kümesi deðiþikliðinden sonra";
+ Text[ language_user1 ] = " ";
+};
+String RID_STR_EVT_RESETTED
+{
+ Text = "Nach dem Zurücksetzen" ;
+ Text [ English ] = "After reset" ;
+ Text [ portuguese ] = "Depois de restaurar" ;
+ Text [ english_us ] = "After resetting" ;
+ Text [ portuguese_brazilian ] = "Zurückgesetzt" ;
+ Text [ swedish ] = "Efter återställning" ;
+ Text [ danish ] = "Efter nulstilling" ;
+ Text [ italian ] = "Dopo aver ripristinato" ;
+ Text [ spanish ] = "Después de restaurar" ;
+ Text [ french ] = "Après la restauration" ;
+ Text [ dutch ] = "Na het terugzetten" ;
+ Text[ chinese_simplified ] = "ÖØÐÂÉ趨֮ºó";
+ Text[ russian ] = "Ïîñëå âîññòàíîâëåíèÿ";
+ Text[ polish ] = "Po cofniêciu";
+ Text[ japanese ] = "ؾ¯Ä‚µ‚½Œã";
+ Text[ chinese_traditional ] = "­«³]¤§«á";
+ Text[ greek ] = "ÌåôÜ ôçí åðáíáöïñÜ";
+ Text[ korean ] = "¿ø·¡´ë·Î ÇÑ ÈÄ¿¡";
+ Text[ arabic ] = "ÈÚÏ ÅÚÇÏÉ ÇáÊÚííä";
+ Text[ turkish ] = "Geri almadan sonra";
+ Text[ language_user1 ] = " ";
+};
+String RID_STR_EVT_APPROVERESETTED
+{
+ Text = "Vor dem Zurücksetzen" ;
+ Text [ English ] = "Approve resetted" ;
+ Text [ portuguese ] = "Antes de restaurar" ;
+ Text [ english_us ] = "Prior to Reset" ;
+ Text [ portuguese_brazilian ] = "Zurückgesetzt" ;
+ Text [ swedish ] = "Innan återställning" ;
+ Text [ danish ] = "Inden nulstilning" ;
+ Text [ italian ] = "Prima di ripristinare" ;
+ Text [ spanish ] = "Antes de restablecer" ;
+ Text [ french ] = "Avant la restauration" ;
+ Text [ dutch ] = "Voor het terugzetten" ;
+ Text[ chinese_simplified ] = "ÔÚÖØÉè֮ǰ";
+ Text[ russian ] = "Ïåðåä âîññòàíîâëåíèåì";
+ Text[ polish ] = "Przed zresetowaniem";
+ Text[ japanese ] = "ؾ¯Ä‚Ì‘O";
+ Text[ chinese_traditional ] = "¦b­«³]¤§«e";
+ Text[ greek ] = "Ðñéí ôçí åðáíáöïñÜ";
+ Text[ korean ] = "º¹¿øÇϱâ Àü¿¡";
+ Text[ arabic ] = "ÞÈá ÇáÇÓÊÚÇÏÉ";
+ Text[ turkish ] = "Geri almadan önce";
+ Text[ language_user1 ] = " ";
+};
+String RID_STR_EVT_APPROVEACTIONPERFORMED
+{
+ Text = "Vor dem Auslösen" ;
+ Text [ English ] = "Before click" ;
+ Text [ portuguese ] = "Antes de executar" ;
+ Text [ english_us ] = "Before commencing" ;
+ Text [ portuguese_brazilian ] = "Aktion ausgelöst" ;
+ Text [ swedish ] = "Innan utförande" ;
+ Text [ danish ] = "Inden udførelse" ;
+ Text [ italian ] = "Prima dell'esecuzione" ;
+ Text [ spanish ] = "antes de ejecutar" ;
+ Text [ french ] = "Avant le déclenchement" ;
+ Text [ dutch ] = "Voor het oproepen" ;
+ Text[ chinese_simplified ] = "ÔÚ²Ù×÷֮ǰ";
+ Text[ russian ] = "Ïåðåä âûïîëíåíèåì";
+ Text[ polish ] = "Przed wykonaniem";
+ Text[ japanese ] = "ì“®‘O";
+ Text[ chinese_traditional ] = "¦b¾Þ§@¤§«e";
+ Text[ greek ] = "Ðñéí ôçí åêôÝëåóç";
+ Text[ korean ] = "ÀÛµ¿ Àü¿¡";
+ Text[ arabic ] = "ÞÈá ÈÏÁ ÇáÅÌÑÇÁ";
+ Text[ turkish ] = "Baþlatmadan önce";
+ Text[ language_user1 ] = " ";
+};
+String RID_STR_EVT_SUBMITTED
+{
+ Text = "Vor dem Submit" ;
+ Text [ English ] = "Before submit" ;
+ Text [ english_us ] = "Before submitting" ;
+ Text[ portuguese ] = "Antes de submeter";
+ Text[ russian ] = "Ïåðåä ïîäòâåðæäåíèåì";
+ Text[ greek ] = "Ðñéí ôçí õðïâïëÞ";
+ Text[ dutch ] = "Voor submit";
+ Text[ french ] = "Avant l'envoi";
+ Text[ spanish ] = "Antes del envío";
+ Text[ italian ] = "Prima dell'invio";
+ Text[ danish ] = "Inden submitting";
+ Text[ swedish ] = "Innan sändning";
+ Text[ polish ] = "Przed submitem";
+ Text[ portuguese_brazilian ] = "Submit";
+ Text[ japanese ] = "»ÌÞЯĂ·‚é‘O";
+ Text[ korean ] = "Àü¼ÛÇϱâ Àü¿¡";
+ Text[ chinese_simplified ] = "Ìύ֮ǰ";
+ Text[ chinese_traditional ] = "´£¥æ¤§«e";
+ Text[ arabic ] = "ÞÈá ÇáÅÑÓÇá";
+ Text[ turkish ] = "Göndermeden önce";
+ Text[ language_user1 ] = " ";
+};
+String RID_STR_EVT_TEXTCHANGED
+{
+ Text = "Text modifiziert" ;
+ Text [ English ] = "Text changed" ;
+ Text [ portuguese ] = "Texto modificado" ;
+ Text [ english_us ] = "Text modified" ;
+ Text [ portuguese_brazilian ] = "Text modifiziert" ;
+ Text [ swedish ] = "Text modifierad" ;
+ Text [ danish ] = "Tekst ændret" ;
+ Text [ italian ] = "Testo modificato" ;
+ Text [ spanish ] = "Texto modificado" ;
+ Text [ french ] = "Texte modifié" ;
+ Text [ dutch ] = "Tekst gemodificeerd" ;
+ Text[ chinese_simplified ] = "ÎÄ×ÖÒѾ­ÐÞ¸Ä";
+ Text[ russian ] = "Òåêñò èçìåíåí";
+ Text[ polish ] = "Zmodyfikowany tekst";
+ Text[ japanese ] = "÷½Ä‚Ì•ÏX";
+ Text[ chinese_traditional ] = "¤å¦r¤w¸g­×§ï";
+ Text[ greek ] = "Ôñïðïðïßçóç êåéìÝíïõ";
+ Text[ korean ] = "ÅؽºÆ® º¯°æ";
+ Text[ arabic ] = "Êã ÊÚÏíá ÇáäÕ";
+ Text[ turkish ] = "Metin deðiþtirildi";
+ Text[ language_user1 ] = " ";
+};
+String RID_STR_EVT_UNLOADING
+{
+ Text = "Vor dem Entladen";
+ Text [ english ] = "Before unloading" ;
+ Text [ english_us ] = "Before unloading" ;
+};
+String RID_STR_EVT_UNLOADED
+{
+ Text = "Beim Entladen" ;
+ Text [ English ] = "When unloading" ;
+ Text [ portuguese ] = "Ao descarregar" ;
+ Text [ english_us ] = "When unloading" ;
+ Text [ portuguese_brazilian ] = "Beim Schließen" ;
+ Text [ swedish ] = "Vid avladdning" ;
+ Text [ danish ] = "Under afladning" ;
+ Text [ italian ] = "Durante lo scaricamento" ;
+ Text [ spanish ] = "Al descargar" ;
+ Text [ french ] = "Lors du déchargement" ;
+ Text [ dutch ] = "Bij het sluiten" ;
+ Text[ chinese_simplified ] = "ÔÚÍËжʱ";
+ Text[ russian ] = "Ïðè ðàçãðóçêå";
+ Text[ polish ] = "Przy roz³adowywaniu";
+ Text[ japanese ] = "±ÝÛ°ÄÞ‚ÌÛ";
+ Text[ chinese_traditional ] = "¦bÃö³¬®É";
+ Text[ greek ] = "ÊáôÜ ôçí åêöüñôùóç";
+ Text[ korean ] = "¾ð·ÎµåÇÒ ¶§";
+ Text[ arabic ] = "ÚäÏ ÅáÛÇÁ ÇáÊÍãíá";
+ Text[ turkish ] = "Kapatma sýrasýnda";
+ Text[ language_user1 ] = " ";
+};
+String RID_STR_EVT_CHANGED
+{
+ Text = "Modifiziert" ;
+ Text [ ENGLISH ] = "changed" ;
+ Text [ portuguese ] = "Modificado" ;
+ Text [ english_us ] = "changed" ;
+ Text [ portuguese_brazilian ] = "Modifiziert" ;
+ Text [ swedish ] = "Modifierad" ;
+ Text [ danish ] = "Modificeret" ;
+ Text [ italian ] = "Modificato" ;
+ Text [ spanish ] = "Modificado" ;
+ Text [ french ] = "Modifié(es)" ;
+ Text [ dutch ] = "Gemodificeerd" ;
+ Text[ chinese_simplified ] = "ÒѾ­ÐÞ¸Ä";
+ Text[ russian ] = "Èçìåíåíî";
+ Text[ polish ] = "Zmodyfikowany";
+ Text[ japanese ] = "•ÏX";
+ Text[ chinese_traditional ] = "¤w¸g­×§ï";
+ Text[ greek ] = "ÔñïðïðïéçìÝíï";
+ Text[ korean ] = "º¯°æµÊ";
+ Text[ arabic ] = "ãÚÏá";
+ Text[ turkish ] = "Deðiþtirildi";
+ Text[ language_user1 ] = " ";
+};
+String RID_STR_EVENTS
+{
+ Text = "Ereignisse" ;
+ Text [ English ] = "Events" ;
+ Text [ portuguese ] = "Eventos" ;
+ Text [ english_us ] = "Events" ;
+ Text [ portuguese_brazilian ] = "Ereignisse" ;
+ Text [ swedish ] = "Händelser" ;
+ Text [ danish ] = "Begivenheder" ;
+ Text [ italian ] = "Eventi" ;
+ Text [ spanish ] = "Acontecimientos" ;
+ Text [ french ] = "Événements" ;
+ Text [ dutch ] = "Gebeurtenissen" ;
+ Text[ chinese_simplified ] = "ʼþ";
+ Text[ russian ] = "Ñîáûòèÿ";
+ Text[ polish ] = "Wydarzenia";
+ Text[ japanese ] = "ŽÀsŒ_‹@";
+ Text[ chinese_traditional ] = "°Ê§@";
+ Text[ greek ] = "Ãåãïíüôá";
+ Text[ korean ] = "À̺¥Æ®";
+ Text[ arabic ] = "ÇáÃÍÏÇË";
+ Text[ turkish ] = "Olaylar";
+ Text[ language_user1 ] = " ";
+};
+String RID_STR_ESCAPE_PROCESSING
+{
+ Text = "SQL-Befehl analysieren";
+ Text [ English ] = "Analyze SQL command";
+ Text [ english_us ] = "Analyze SQL command";
+ Text[ portuguese ] = "Analisar comando SQL";
+ Text[ russian ] = "Àíàëèç êîìàíäû SQL";
+ Text[ greek ] = "ÁíÜëõóç åíôïëÞò SQL";
+ Text[ dutch ] = "SQL-opdracht analyseren";
+ Text[ french ] = "Analyser l'instruction SQL";
+ Text[ spanish ] = "Analizar comando SQL";
+ Text[ italian ] = "Analizza comando SQL";
+ Text[ danish ] = "Analyser SQL-kommando";
+ Text[ swedish ] = "Analysera SQL-kommando";
+ Text[ polish ] = "Analizuj polecenia SQL";
+ Text[ portuguese_brazilian ] = "direct SQL command";
+ Text[ japanese ] = "SQLºÏÝÄÞ‚Ì•ªÍ";
+ Text[ korean ] = "SQL ¸í·É ºÐ¼®";
+ Text[ chinese_simplified ] = "·ÖÎö SQL Ö¸Áî";
+ Text[ chinese_traditional ] = "¤ÀªR SQL «ü¥O";
+ Text[ arabic ] = "ÊÍáíá ÃãÑ SQL";
+ Text[ turkish ] = "SQL komutunu çözümle";
+};
+
+/*************************************************************************
+ * history:
+ * $Log: not supported by cvs2svn $
+ *
+ * Revision 1.0 08.01.01 14:53:11 fs
+ ************************************************************************/
diff --git a/extensions/source/propctrlr/formresid.hrc b/extensions/source/propctrlr/formresid.hrc
new file mode 100644
index 000000000..635d30051
--- /dev/null
+++ b/extensions/source/propctrlr/formresid.hrc
@@ -0,0 +1,275 @@
+/*************************************************************************
+ *
+ * $RCSfile: formresid.hrc,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: fs $ $Date: 2001-01-12 11:35:45 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (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.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc..
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#ifndef _EXTENSIONS_FORMCTRLR_PROPRESID_HRC_
+#define _EXTENSIONS_FORMCTRLR_PROPRESID_HRC_
+
+#ifndef _EXTENSIONS_PROPCTRLR_PROPRESID_HRC_
+#include "propresid.hrc"
+#endif
+
+// -----------------------------------------------------------------------
+// - Strings
+// -----------------------------------------------------------------------
+
+#define RID_STR_FORMS ( RID_FORMBROWSER_START + 1 )
+#define RID_STR_PROPTITLE_DBGRID ( RID_FORMBROWSER_START + 2 )
+#define RID_STR_PROPTITLE_PATTERNFIELD ( RID_FORMBROWSER_START + 3 )
+#define RID_STR_PROPTITLE_CURRENCYFIELD ( RID_FORMBROWSER_START + 4 )
+#define RID_STR_PROPTITLE_NUMERICFIELD ( RID_FORMBROWSER_START + 5 )
+#define RID_STR_PROPTITLE_TIMEFIELD ( RID_FORMBROWSER_START + 6 )
+#define RID_STR_PROPTITLE_DATEFIELD ( RID_FORMBROWSER_START + 7 )
+#define RID_STR_PROPTITLE_FILECONTROL ( RID_FORMBROWSER_START + 8 )
+#define RID_STR_PROPTITLE_IMAGECONTROL ( RID_FORMBROWSER_START + 9 )
+#define RID_STR_PROPTITLE_IMAGEBUTTON ( RID_FORMBROWSER_START + 10 )
+#define RID_STR_PROPTITLE_COMBOBOX ( RID_FORMBROWSER_START + 11 )
+#define RID_STR_PROPTITLE_LISTBOX ( RID_FORMBROWSER_START + 12 )
+#define RID_STR_PROPTITLE_FORMATTED ( RID_FORMBROWSER_START + 13 )
+#define RID_STR_PROPTITLE_EDIT ( RID_FORMBROWSER_START + 14 )
+#define RID_STR_PROPTITLE_GROUPBOX ( RID_FORMBROWSER_START + 15 )
+#define RID_STR_PROPTITLE_FIXEDTEXT ( RID_FORMBROWSER_START + 16 )
+#define RID_STR_PROPTITLE_CHECKBOX ( RID_FORMBROWSER_START + 17 )
+#define RID_STR_PROPTITLE_RADIOBUTTON ( RID_FORMBROWSER_START + 18 )
+#define RID_STR_PROPTITLE_PUSHBUTTON ( RID_FORMBROWSER_START + 19 )
+#define RID_STR_PROPTITLE_HIDDENCONTROL ( RID_FORMBROWSER_START + 30 )
+#define RID_STR_PROPTITLE_UNKNOWNCONTROL ( RID_FORMBROWSER_START + 31 )
+
+#define RID_STR_NAME ( RID_FORMBROWSER_START + 32 )
+#define RID_STR_LABEL ( RID_FORMBROWSER_START + 33 )
+#define RID_STR_LABELCONTROL ( RID_FORMBROWSER_START + 34 )
+#define RID_STR_MAXTEXTLEN ( RID_FORMBROWSER_START + 35 )
+#define RID_STR_EDITMASK ( RID_FORMBROWSER_START + 36 )
+#define RID_STR_LITERALMASK ( RID_FORMBROWSER_START + 37 )
+#define RID_STR_STRICTFORMAT ( RID_FORMBROWSER_START + 38 )
+#define RID_STR_ENABLED ( RID_FORMBROWSER_START + 39 )
+#define RID_STR_READONLY ( RID_FORMBROWSER_START + 40 )
+#define RID_STR_PRINTABLE ( RID_FORMBROWSER_START + 41 )
+#define RID_STR_CONTROLSOURCE ( RID_FORMBROWSER_START + 42 )
+#define RID_STR_TABSTOP ( RID_FORMBROWSER_START + 43 )
+#define RID_STR_TABINDEX ( RID_FORMBROWSER_START + 44 )
+#define RID_STR_DATASOURCE ( RID_FORMBROWSER_START + 45 )
+#define RID_STR_CURSORSOURCE ( RID_FORMBROWSER_START + 46 )
+#define RID_STR_CURSORSOURCETYPE ( RID_FORMBROWSER_START + 47 )
+#define RID_STR_FILTER_CRITERIA ( RID_FORMBROWSER_START + 48 )
+#define RID_STR_SORT_CRITERIA ( RID_FORMBROWSER_START + 49 )
+#define RID_STR_ALLOW_ADDITIONS ( RID_FORMBROWSER_START + 50 )
+#define RID_STR_ALLOW_EDITS ( RID_FORMBROWSER_START + 51 )
+#define RID_STR_ALLOW_DELETIONS ( RID_FORMBROWSER_START + 52 )
+#define RID_STR_DATAENTRY ( RID_FORMBROWSER_START + 53 )
+#define RID_STR_NAVIGATION ( RID_FORMBROWSER_START + 54 )
+#define RID_STR_CYCLE ( RID_FORMBROWSER_START + 55 )
+#define RID_STR_VALUE ( RID_FORMBROWSER_START + 56 )
+#define RID_STR_VALUESTEP ( RID_FORMBROWSER_START + 59 )
+#define RID_STR_DECIMAL_ACCURACY ( RID_FORMBROWSER_START + 61 )
+#define RID_STR_SHOWTHOUSANDSEP ( RID_FORMBROWSER_START + 62 )
+#define RID_STR_REFVALUE ( RID_FORMBROWSER_START + 63 )
+#define RID_STR_CURRENCYSYMBOL ( RID_FORMBROWSER_START + 64 )
+#define RID_STR_CURRSYM_POSITION ( RID_FORMBROWSER_START + 65 )
+#define RID_STR_DATEMIN ( RID_FORMBROWSER_START + 66 )
+#define RID_STR_DATEMAX ( RID_FORMBROWSER_START + 67 )
+#define RID_STR_DATEFORMAT ( RID_FORMBROWSER_START + 68 )
+#define RID_STR_DATE_SHOW_CENTURY ( RID_FORMBROWSER_START + 69 )
+#define RID_STR_TIMEMIN ( RID_FORMBROWSER_START + 71 )
+#define RID_STR_TIMEMAX ( RID_FORMBROWSER_START + 72 )
+#define RID_STR_TIMEFORMAT ( RID_FORMBROWSER_START + 73 )
+#define RID_STR_VALUEMIN ( RID_FORMBROWSER_START + 75 )
+#define RID_STR_VALUEMAX ( RID_FORMBROWSER_START + 76 )
+#define RID_STR_FORMATKEY ( RID_FORMBROWSER_START + 78 )
+#define RID_STR_CLASSID ( RID_FORMBROWSER_START + 80 )
+#define RID_STR_HEIGHT ( RID_FORMBROWSER_START + 81 )
+#define RID_STR_WIDTH ( RID_FORMBROWSER_START + 82 )
+#define RID_STR_BOUNDCOLUMN ( RID_FORMBROWSER_START + 83 )
+#define RID_STR_LISTSOURCETYPE ( RID_FORMBROWSER_START + 84 )
+#define RID_STR_LISTSOURCE ( RID_FORMBROWSER_START + 85 )
+#define RID_STR_LISTINDEX ( RID_FORMBROWSER_START + 86 )
+#define RID_STR_STRINGITEMLIST ( RID_FORMBROWSER_START + 87 )
+#define RID_STR_DEFAULTVALUE ( RID_FORMBROWSER_START + 88 )
+#define RID_STR_FONT ( RID_FORMBROWSER_START + 89 )
+#define RID_STR_ALIGN ( RID_FORMBROWSER_START + 90 )
+#define RID_STR_ROWHEIGHT ( RID_FORMBROWSER_START + 91 )
+#define RID_STR_BACKGROUNDCOLOR ( RID_FORMBROWSER_START + 92 )
+#define RID_STR_FILLCOLOR ( RID_FORMBROWSER_START + 93 )
+#define RID_STR_LINECOLOR ( RID_FORMBROWSER_START + 95 )
+#define RID_STR_BORDER ( RID_FORMBROWSER_START + 96 )
+#define RID_STR_DROPDOWN ( RID_FORMBROWSER_START + 97 )
+#define RID_STR_AUTOCOMPLETE ( RID_FORMBROWSER_START + 98 )
+#define RID_STR_LINECOUNT ( RID_FORMBROWSER_START + 99 )
+#define RID_STR_MULTILINE ( RID_FORMBROWSER_START + 101 )
+#define RID_STR_MULTISELECTION ( RID_FORMBROWSER_START + 102 )
+#define RID_STR_HARDLINEBREAKS ( RID_FORMBROWSER_START + 103 )
+#define RID_STR_HSCROLL ( RID_FORMBROWSER_START + 104 )
+#define RID_STR_VSCROLL ( RID_FORMBROWSER_START + 105 )
+#define RID_STR_SPIN ( RID_FORMBROWSER_START + 106 )
+#define RID_STR_BUTTONTYPE ( RID_FORMBROWSER_START + 107 )
+#define RID_STR_TARGET_URL ( RID_FORMBROWSER_START + 108 )
+#define RID_STR_TARGET_FRAME ( RID_FORMBROWSER_START + 109 )
+#define RID_STR_SUBMIT_ACTION ( RID_FORMBROWSER_START + 110 )
+#define RID_STR_SUBMIT_TARGET ( RID_FORMBROWSER_START + 111 )
+#define RID_STR_SUBMIT_METHOD ( RID_FORMBROWSER_START + 112 )
+#define RID_STR_SUBMIT_ENCODING ( RID_FORMBROWSER_START + 113 )
+#define RID_STR_DEFAULT_CHECKED ( RID_FORMBROWSER_START + 114 )
+#define RID_STR_DEFAULT_BUTTON ( RID_FORMBROWSER_START + 115 )
+#define RID_STR_IMAGE_URL ( RID_FORMBROWSER_START + 116 )
+#define RID_STR_DEFAULT_SELECT_SEQ ( RID_FORMBROWSER_START + 117 )
+#define RID_STR_ECHO_CHAR ( RID_FORMBROWSER_START + 118 )
+#define RID_STR_EMPTY_IS_NULL ( RID_FORMBROWSER_START + 119 )
+#define RID_STR_TRISTATE ( RID_FORMBROWSER_START + 120 )
+#define RID_STR_MASTERFIELDS ( RID_FORMBROWSER_START + 121 )
+#define RID_STR_SLAVEFIELDS ( RID_FORMBROWSER_START + 122 )
+#define RID_STR_NAVIGATIONBAR ( RID_FORMBROWSER_START + 123 )
+#define RID_STR_RECORDMARKER ( RID_FORMBROWSER_START + 124 )
+#define RID_STR_FILTERPROPOSAL ( RID_FORMBROWSER_START + 125 )
+#define RID_STR_TAG ( RID_FORMBROWSER_START + 126 )
+#define RID_STR_HELPTEXT ( RID_FORMBROWSER_START + 127 )
+#define RID_STR_HELPURL ( RID_FORMBROWSER_START + 128 )
+#define RID_STR_BORDER_TYPE ( RID_FORMBROWSER_START + 129 )
+#define RID_STR_COMMAND_TYPE ( RID_FORMBROWSER_START + 130 )
+#define RID_STR_CURSOR_TYPE ( RID_FORMBROWSER_START + 131 )
+#define RID_STR_LISTSOURCE_TYPE ( RID_FORMBROWSER_START + 132 )
+#define RID_STR_ALIGNMENT ( RID_FORMBROWSER_START + 133 )
+#define RID_STR_ENUM_BUTTONTYPE ( RID_FORMBROWSER_START + 134 )
+#define RID_STR_ENUM_SUBMIT_METHOD ( RID_FORMBROWSER_START + 135 )
+#define RID_STR_ENUM_SUBMIT_ENCODING ( RID_FORMBROWSER_START + 136 )
+#define RID_STR_DATEFORMAT_LIST ( RID_FORMBROWSER_START + 137 )
+#define RID_STR_TIMEFORMAT_LIST ( RID_FORMBROWSER_START + 138 )
+#define RID_STR_ENUM_CHECKED ( RID_FORMBROWSER_START + 139 )
+#define RID_STR_ENUM_CYCLE ( RID_FORMBROWSER_START + 140 )
+#define RID_STR_ENUM_NAVIGATION ( RID_FORMBROWSER_START + 141 )
+#define RID_STR_EVT_APPROVEACTIONPERFORMED ( RID_FORMBROWSER_START + 142 )
+#define RID_STR_EVT_ACTIONPERFORMED ( RID_FORMBROWSER_START + 143 )
+#define RID_STR_EVT_CHANGED ( RID_FORMBROWSER_START + 144 )
+#define RID_STR_EVT_TEXTCHANGED ( RID_FORMBROWSER_START + 145 )
+#define RID_STR_EVT_ITEMSTATECHANGED ( RID_FORMBROWSER_START + 146 )
+#define RID_STR_EVT_FOCUSGAINED ( RID_FORMBROWSER_START + 147 )
+#define RID_STR_EVT_FOCUSLOST ( RID_FORMBROWSER_START + 148 )
+#define RID_STR_EVT_KEYTYPED ( RID_FORMBROWSER_START + 149 )
+#define RID_STR_EVT_KEYUP ( RID_FORMBROWSER_START + 150 )
+#define RID_STR_EVT_MOUSEENTERED ( RID_FORMBROWSER_START + 151 )
+#define RID_STR_EVT_MOUSEDRAGGED ( RID_FORMBROWSER_START + 152 )
+#define RID_STR_EVT_MOUSEMOVED ( RID_FORMBROWSER_START + 153 )
+#define RID_STR_EVT_MOUSEPRESSED ( RID_FORMBROWSER_START + 154 )
+#define RID_STR_EVT_MOUSERELEASED ( RID_FORMBROWSER_START + 155 )
+#define RID_STR_EVT_MOUSEEXITED ( RID_FORMBROWSER_START + 156 )
+#define RID_STR_EVT_APPROVERESETTED ( RID_FORMBROWSER_START + 157 )
+#define RID_STR_EVT_RESETTED ( RID_FORMBROWSER_START + 158 )
+#define RID_STR_EVT_SUBMITTED ( RID_FORMBROWSER_START + 159 )
+#define RID_STR_EVT_BEFOREUPDATE ( RID_FORMBROWSER_START + 160 )
+#define RID_STR_EVT_AFTERUPDATE ( RID_FORMBROWSER_START + 161 )
+#define RID_STR_EVT_LOADED ( RID_FORMBROWSER_START + 162 )
+#define RID_STR_EVT_RELOADING ( RID_FORMBROWSER_START + 163 )
+#define RID_STR_EVT_RELOADED ( RID_FORMBROWSER_START + 164 )
+#define RID_STR_EVT_UNLOADING ( RID_FORMBROWSER_START + 165 )
+#define RID_STR_EVT_UNLOADED ( RID_FORMBROWSER_START + 166 )
+#define RID_STR_EVT_CONFIRMDELETE ( RID_FORMBROWSER_START + 167 )
+#define RID_STR_EVT_APPROVEROWCHANGE ( RID_FORMBROWSER_START + 168 )
+#define RID_STR_EVT_ROWCHANGE ( RID_FORMBROWSER_START + 169 )
+#define RID_STR_EVT_POSITIONING ( RID_FORMBROWSER_START + 170 )
+#define RID_STR_EVT_POSITIONED ( RID_FORMBROWSER_START + 171 )
+#define RID_STR_EVT_APPROVEPARAMETER ( RID_FORMBROWSER_START + 172 )
+#define RID_STR_EVT_ERROROCCURED ( RID_FORMBROWSER_START + 173 )
+#define RID_STR_EVENTS ( RID_FORMBROWSER_START + 174 )
+#define RID_STR_ESCAPE_PROCESSING ( RID_FORMBROWSER_START + 175 )
+
+// -----------------------------------------------------------------------
+// - Dialogs
+// -----------------------------------------------------------------------
+
+#define RID_DLG_SELECTLABELCONTROL ( RID_PROPCONTROLLER_START + 0 )
+
+
+// -----------------------------------------------------------------------
+// - Dialogs
+// -----------------------------------------------------------------------
+
+#define RID_SVXDLG_FMFONT 18013
+
+
+// -----------------------------------------------------------------------
+// - ImageLists
+// -----------------------------------------------------------------------
+
+#define RID_IL_FORMEXPLORER ( RID_PROPCONTROLLER_START + 0 )
+
+
+// -----------------------------------------------------------------------
+// - ImageList - local ids
+// -----------------------------------------------------------------------
+// HACK HACK HACK
+// as long as we have no real property browser, but this outsourcing only,
+// we do not duplicate images. Instead we do some hard coding for the image ids
+#define RID_SVXIMG_FIXEDTEXT 10597
+#define RID_SVXIMG_GROUPBOX 10598
+#define RID_SVXIMG_FORMS 18013
+#define RID_SVXIMG_FORM 10593
+#define RID_SVXIMG_COLLAPSEDNODE 18002
+#define RID_SVXIMG_EXPANDEDNODE 18003
+
+
+
+#endif // _EXTENSIONS_FORMCTRLR_PROPRESID_HRC_
+
+/*************************************************************************
+ * history:
+ * $Log: not supported by cvs2svn $
+ *
+ * Revision 1.0 09.01.01 16:03:30 fs
+ ************************************************************************/
+
diff --git a/extensions/source/propctrlr/formstrings.cxx b/extensions/source/propctrlr/formstrings.cxx
new file mode 100644
index 000000000..56b8b044b
--- /dev/null
+++ b/extensions/source/propctrlr/formstrings.cxx
@@ -0,0 +1,74 @@
+/*************************************************************************
+ *
+ * $RCSfile: formstrings.cxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: fs $ $Date: 2001-01-12 11:28:59 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (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.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc..
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#ifndef _EXTENSIONS_FORMSCTRLR_FORMSTRINGS_HXX_
+#define PCR_IMPLEMENT_STRINGS
+#include "formstrings.hxx"
+#undef PCR_IMPLEMENT_STRINGS
+#endif
+
+/*************************************************************************
+ * history:
+ * $Log: not supported by cvs2svn $
+ *
+ * Revision 1.0 08.01.01 14:19:51 fs
+ ************************************************************************/
+
diff --git a/extensions/source/propctrlr/formstrings.hxx b/extensions/source/propctrlr/formstrings.hxx
new file mode 100644
index 000000000..1972ca77e
--- /dev/null
+++ b/extensions/source/propctrlr/formstrings.hxx
@@ -0,0 +1,260 @@
+/*************************************************************************
+ *
+ * $RCSfile: formstrings.hxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: fs $ $Date: 2001-01-12 11:29:10 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (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.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc..
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#ifndef _EXTENSIONS_FORMSCTRLR_FORMSTRINGS_HXX_
+#define _EXTENSIONS_FORMSCTRLR_FORMSTRINGS_HXX_
+
+#ifndef _EXTENSIONS_FORMSCTRLR_STRINGDEFINE_HXX_
+#include "stringdefine.hxx"
+#endif
+
+//............................................................................
+namespace pcr
+{
+//............................................................................
+
+ // properties
+ PCR_CONSTASCII_STRING( PROPERTY_CLASSID, "ClassId" );
+ PCR_CONSTASCII_STRING( PROPERTY_CONTROLLABEL, "LabelControl");
+ PCR_CONSTASCII_STRING( PROPERTY_LABEL, "Label");
+ PCR_CONSTASCII_STRING( PROPERTY_TABINDEX, "TabIndex");
+ PCR_CONSTASCII_STRING( PROPERTY_TAG, "Tag");
+ PCR_CONSTASCII_STRING( PROPERTY_NAME, "Name");
+ PCR_CONSTASCII_STRING( PROPERTY_ROWCOUNT, "RowCount");
+ PCR_CONSTASCII_STRING( PROPERTY_ROWCOUNTFINAL, "IsRowCountFinal");
+ PCR_CONSTASCII_STRING( PROPERTY_FETCHSIZE, "FetchSize");
+ PCR_CONSTASCII_STRING( PROPERTY_VALUE, "Value");
+ PCR_CONSTASCII_STRING( PROPERTY_TEXT, "Text");
+ PCR_CONSTASCII_STRING( PROPERTY_CANINSERT, "CanInsert");
+ PCR_CONSTASCII_STRING( PROPERTY_CANUPDATE, "CanUpdate");
+ PCR_CONSTASCII_STRING( PROPERTY_CANDELETE, "CanDelete");
+ PCR_CONSTASCII_STRING( PROPERTY_NAVIGATION, "NavigationBarMode");
+ PCR_CONSTASCII_STRING( PROPERTY_HASNAVIGATION, "HasNavigationBar");
+ PCR_CONSTASCII_STRING( PROPERTY_CYCLE, "Cycle");
+ PCR_CONSTASCII_STRING( PROPERTY_CONTROLSOURCE, "DataField");
+ PCR_CONSTASCII_STRING( PROPERTY_ENABLED, "Enabled");
+ PCR_CONSTASCII_STRING( PROPERTY_READONLY, "ReadOnly");
+ PCR_CONSTASCII_STRING( PROPERTY_ISREADONLY, "IsReadOnly");
+ PCR_CONSTASCII_STRING( PROPERTY_FILTER_CRITERIA, "Filter");
+ PCR_CONSTASCII_STRING( PROPERTY_ISREQUIRED, "IsRequired");
+ PCR_CONSTASCII_STRING( PROPERTY_AUTOINCREMENT, "IsAutoIncrement");
+ PCR_CONSTASCII_STRING( PROPERTY_CACHESIZE, "CacheSize");
+ PCR_CONSTASCII_STRING( PROPERTY_DATAENTRY, "DataEntry");
+ PCR_CONSTASCII_STRING( PROPERTY_LASTDIRTY, "LastUpdated");
+ PCR_CONSTASCII_STRING( PROPERTY_STATEMENT, "Statement");
+ PCR_CONSTASCII_STRING( PROPERTY_WIDTH, "Width");
+ PCR_CONSTASCII_STRING( PROPERTY_SEARCHABLE, "IsSearchable");
+ PCR_CONSTASCII_STRING( PROPERTY_MULTILINE, "MultiLine");
+ PCR_CONSTASCII_STRING( PROPERTY_TARGET_URL, "TargetURL");
+ PCR_CONSTASCII_STRING( PROPERTY_TARGET_FRAME, "TargetFrame");
+ PCR_CONSTASCII_STRING( PROPERTY_MAXTEXTLEN, "MaxTextLen");
+ PCR_CONSTASCII_STRING( PROPERTY_EDITMASK, "EditMask");
+ PCR_CONSTASCII_STRING( PROPERTY_SPIN, "Spin");
+ PCR_CONSTASCII_STRING( PROPERTY_DATE, "Date");
+ PCR_CONSTASCII_STRING( PROPERTY_TIME, "Time");
+ PCR_CONSTASCII_STRING( PROPERTY_STATE, "State");
+ PCR_CONSTASCII_STRING( PROPERTY_TRISTATE, "TriState");
+ PCR_CONSTASCII_STRING( PROPERTY_HIDDEN_VALUE, "HiddenValue");
+ PCR_CONSTASCII_STRING( PROPERTY_BUTTONTYPE, "ButtonType");
+ PCR_CONSTASCII_STRING( PROPERTY_STRINGITEMLIST, "StringItemList");
+ PCR_CONSTASCII_STRING( PROPERTY_DEFAULT_TEXT, "DefaultText");
+ PCR_CONSTASCII_STRING( PROPERTY_DEFAULTCHECKED, "DefaultState");
+ PCR_CONSTASCII_STRING( PROPERTY_FORMATKEY, "FormatKey");
+ PCR_CONSTASCII_STRING( PROPERTY_FORMATSSUPPLIER, "FormatsSupplier");
+ PCR_CONSTASCII_STRING( PROPERTY_SUBMIT_ACTION, "SubmitAction");
+ PCR_CONSTASCII_STRING( PROPERTY_SUBMIT_TARGET, "SubmitTarget");
+ PCR_CONSTASCII_STRING( PROPERTY_SUBMIT_METHOD, "SubmitMethod");
+ PCR_CONSTASCII_STRING( PROPERTY_SUBMIT_ENCODING, "SubmitEncoding");
+ PCR_CONSTASCII_STRING( PROPERTY_IMAGE_URL, "ImageURL");
+ PCR_CONSTASCII_STRING( PROPERTY_EMPTY_IS_NULL, "ConvertEmptyToNull");
+ PCR_CONSTASCII_STRING( PROPERTY_LISTSOURCETYPE, "ListSourceType");
+ PCR_CONSTASCII_STRING( PROPERTY_LISTSOURCE, "ListSource");
+ PCR_CONSTASCII_STRING( PROPERTY_SELECT_SEQ, "SelectedItems");
+ PCR_CONSTASCII_STRING( PROPERTY_VALUE_SEQ, "ValueItemList");
+ PCR_CONSTASCII_STRING( PROPERTY_DEFAULT_SELECT_SEQ, "DefaultSelection");
+ PCR_CONSTASCII_STRING( PROPERTY_MULTISELECTION, "MultiSelection");
+ PCR_CONSTASCII_STRING( PROPERTY_ALIGN, "Align");
+ PCR_CONSTASCII_STRING( PROPERTY_DEFAULT_DATE, "DefaultDate");
+ PCR_CONSTASCII_STRING( PROPERTY_DEFAULT_TIME, "DefaultTime");
+ PCR_CONSTASCII_STRING( PROPERTY_DEFAULT_VALUE, "DefaultValue");
+ PCR_CONSTASCII_STRING( PROPERTY_DECIMAL_ACCURACY, "DecimalAccuracy");
+ PCR_CONSTASCII_STRING( PROPERTY_CURSORSOURCE, "DataSelection");
+ PCR_CONSTASCII_STRING( PROPERTY_CURSORSOURCETYPE, "DataSelectionType");
+ PCR_CONSTASCII_STRING( PROPERTY_FIELDTYPE, "Type");
+ PCR_CONSTASCII_STRING( PROPERTY_DECIMALS, "Decimals");
+ PCR_CONSTASCII_STRING( PROPERTY_REFVALUE, "RefValue");
+ PCR_CONSTASCII_STRING( PROPERTY_VALUEMIN, "ValueMin");
+ PCR_CONSTASCII_STRING( PROPERTY_VALUEMAX, "ValueMax");
+ PCR_CONSTASCII_STRING( PROPERTY_STRICTFORMAT, "StrictFormat");
+ PCR_CONSTASCII_STRING( PROPERTY_ALLOWADDITIONS, "AllowInserts");
+ PCR_CONSTASCII_STRING( PROPERTY_ALLOWEDITS, "AllowUpdates");
+ PCR_CONSTASCII_STRING( PROPERTY_ALLOWDELETIONS, "AllowDeletes");
+ PCR_CONSTASCII_STRING( PROPERTY_MASTERFIELDS, "MasterFields");
+ PCR_CONSTASCII_STRING( PROPERTY_ISPASSTHROUGH, "IsPassThrough");
+ PCR_CONSTASCII_STRING( PROPERTY_QUERY, "Query");
+ PCR_CONSTASCII_STRING( PROPERTY_LITERALMASK, "LiteralMask");
+ PCR_CONSTASCII_STRING( PROPERTY_VALUESTEP, "ValueStep");
+ PCR_CONSTASCII_STRING( PROPERTY_SHOWTHOUSANDSEP, "ShowThousandsSeparator");
+ PCR_CONSTASCII_STRING( PROPERTY_CURRENCYSYMBOL, "CurrencySymbol");
+ PCR_CONSTASCII_STRING( PROPERTY_DATEFORMAT, "DateFormat");
+ PCR_CONSTASCII_STRING( PROPERTY_DATEMIN, "DateMin");
+ PCR_CONSTASCII_STRING( PROPERTY_DATEMAX, "DateMax");
+ PCR_CONSTASCII_STRING( PROPERTY_DATE_SHOW_CENTURY, "DateShowCentury");
+ PCR_CONSTASCII_STRING( PROPERTY_TIMEFORMAT, "TimeFormat");
+ PCR_CONSTASCII_STRING( PROPERTY_TIMEMIN, "TimeMin");
+ PCR_CONSTASCII_STRING( PROPERTY_TIMEMAX, "TimeMax");
+ PCR_CONSTASCII_STRING( PROPERTY_LINECOUNT, "LineCount");
+ PCR_CONSTASCII_STRING( PROPERTY_BOUNDCOLUMN, "BoundColumn");
+ PCR_CONSTASCII_STRING( PROPERTY_FONT, "FontDescriptor");
+ PCR_CONSTASCII_STRING( PROPERTY_BACKGROUNDCOLOR, "BackgroundColor");
+ PCR_CONSTASCII_STRING( PROPERTY_FILLCOLOR, "FillColor");
+ PCR_CONSTASCII_STRING( PROPERTY_TEXTCOLOR, "TextColor");
+ PCR_CONSTASCII_STRING( PROPERTY_LINECOLOR, "LineColor");
+ PCR_CONSTASCII_STRING( PROPERTY_BORDER, "Border");
+ PCR_CONSTASCII_STRING( PROPERTY_DROPDOWN, "Dropdown");
+ PCR_CONSTASCII_STRING( PROPERTY_MULTI, "Multi");
+ PCR_CONSTASCII_STRING( PROPERTY_HSCROLL, "HScroll");
+ PCR_CONSTASCII_STRING( PROPERTY_VSCROLL, "VScroll");
+ PCR_CONSTASCII_STRING( PROPERTY_TABSTOP, "Tabstop");
+ PCR_CONSTASCII_STRING( PROPERTY_AUTOCOMPLETE, "Autocomplete");
+ PCR_CONSTASCII_STRING( PROPERTY_HARDLINEBREAKS, "HardLineBreaks");
+ PCR_CONSTASCII_STRING( PROPERTY_PRINTABLE, "Printable");
+ PCR_CONSTASCII_STRING( PROPERTY_ECHO_CHAR, "EchoChar");
+ PCR_CONSTASCII_STRING( PROPERTY_ROWHEIGHT, "RowHeight");
+ PCR_CONSTASCII_STRING( PROPERTY_HELPTEXT, "HelpText");
+ PCR_CONSTASCII_STRING( PROPERTY_FONT_NAME, "FontName");
+ PCR_CONSTASCII_STRING( PROPERTY_FONT_STYLENAME, "FontStyleName");
+ PCR_CONSTASCII_STRING( PROPERTY_FONT_FAMILY, "FontFamily");
+ PCR_CONSTASCII_STRING( PROPERTY_FONT_CHARSET, "FontCharset");
+ PCR_CONSTASCII_STRING( PROPERTY_FONT_HEIGHT, "FontHeight");
+ PCR_CONSTASCII_STRING( PROPERTY_FONT_WEIGHT, "FontWeight");
+ PCR_CONSTASCII_STRING( PROPERTY_FONT_SLANT, "FontSlant");
+ PCR_CONSTASCII_STRING( PROPERTY_FONT_UNDERLINE, "FontUnderline");
+ PCR_CONSTASCII_STRING( PROPERTY_FONT_STRIKEOUT, "FontStrikeout");
+ PCR_CONSTASCII_STRING( PROPERTY_HELPURL, "HelpURL");
+ PCR_CONSTASCII_STRING( PROPERTY_RECORDMARKER, "HasRecordMarker");
+ PCR_CONSTASCII_STRING( PROPERTY_BOUNDFIELD, "BoundField");
+ PCR_CONSTASCII_STRING( PROPERTY_TREATASNUMERIC, "TreatAsNumber");
+ PCR_CONSTASCII_STRING( PROPERTY_EFFECTIVE_VALUE, "EffectiveValue");
+ PCR_CONSTASCII_STRING( PROPERTY_EFFECTIVE_DEFAULT, "EffectiveDefault");
+ PCR_CONSTASCII_STRING( PROPERTY_EFFECTIVE_MIN, "EffectiveMin");
+ PCR_CONSTASCII_STRING( PROPERTY_EFFECTIVE_MAX, "EffectiveMax");
+ PCR_CONSTASCII_STRING( PROPERTY_HIDDEN, "Hidden");
+ PCR_CONSTASCII_STRING( PROPERTY_FILTERPROPOSAL, "UseFilterValueProposal");
+ PCR_CONSTASCII_STRING( PROPERTY_FIELDSOURCE, "FieldSource");
+ PCR_CONSTASCII_STRING( PROPERTY_TABLENAME, "TableName");
+ PCR_CONSTASCII_STRING( PROPERTY_FILTERSUPPLIER, "FilterSupplier");
+ PCR_CONSTASCII_STRING( PROPERTY_CURRENTFILTER, "CurrentFilter");
+ PCR_CONSTASCII_STRING( PROPERTY_SELECTED_FIELDS, "SelectedFields");
+ PCR_CONSTASCII_STRING( PROPERTY_SELECTED_TABLES, "SelectedTables");
+ PCR_CONSTASCII_STRING( PROPERTY_THREADSAFE, "ThreadSafe");
+ PCR_CONSTASCII_STRING( PROPERTY_ISFILTERAPPLIED, "IsFilterApplied");
+ PCR_CONSTASCII_STRING( PROPERTY_CURRSYM_POSITION, "PrependCurrencySymbol");
+ PCR_CONSTASCII_STRING( PROPERTY_SOURCE, "Source");
+ PCR_CONSTASCII_STRING( PROPERTY_CURSORCOLOR, "CursorColor");
+ PCR_CONSTASCII_STRING( PROPERTY_ALWAYSSHOWCURSOR, "AlwaysShowCursor");
+ PCR_CONSTASCII_STRING( PROPERTY_DISPLAYSYNCHRON, "DisplayIsSynchron");
+ PCR_CONSTASCII_STRING( PROPERTY_ISMODIFIED, "IsModified");
+ PCR_CONSTASCII_STRING( PROPERTY_ISNEW, "IsNew");
+ PCR_CONSTASCII_STRING( PROPERTY_PRIVILEGES, "Privileges");
+ PCR_CONSTASCII_STRING( PROPERTY_COMMAND, "Command");
+ PCR_CONSTASCII_STRING( PROPERTY_COMMANDTYPE, "CommandType");
+ PCR_CONSTASCII_STRING( PROPERTY_RESULTSET_CONCURRENCY, "ResultSetConcurrency");
+ PCR_CONSTASCII_STRING( PROPERTY_INSERTONLY, "IgnoreResult");
+ PCR_CONSTASCII_STRING( PROPERTY_RESULTSET_TYPE, "ResultSetType");
+ PCR_CONSTASCII_STRING( PROPERTY_ESCAPE_PROCESSING, "EscapeProcessing");
+ PCR_CONSTASCII_STRING( PROPERTY_APPLYFILTER, "ApplyFilter");
+ PCR_CONSTASCII_STRING( PROPERTY_ISNULLABLE, "IsNullable");
+ PCR_CONSTASCII_STRING( PROPERTY_ACTIVECOMMAND, "ActiveCommand");
+ PCR_CONSTASCII_STRING( PROPERTY_ISCURRENCY, "IsCurrency");
+ PCR_CONSTASCII_STRING( PROPERTY_NUMBER_FORMATS_SUPPLIER,"NumberFormatsSupplier");
+ PCR_CONSTASCII_STRING( PROPERTY_URL, "URL");
+ PCR_CONSTASCII_STRING( PROPERTY_TITLE, "Title");
+ PCR_CONSTASCII_STRING( PROPERTY_ACTIVE_CONNECTION, "ActiveConnection");
+ PCR_CONSTASCII_STRING( PROPERTY_SCALE, "Scale");
+ PCR_CONSTASCII_STRING( PROPERTY_SORT, "Order");
+ PCR_CONSTASCII_STRING( PROPERTY_DATASOURCE, "DataSourceName");
+ PCR_CONSTASCII_STRING( PROPERTY_DETAILFIELDS, "DetailFields");
+ PCR_CONSTASCII_STRING( PROPERTY_REALNAME, "RealName");
+ PCR_CONSTASCII_STRING( PROPERTY_CONTROLSOURCEPROPERTY, "DataFieldProperty");
+ PCR_CONSTASCII_STRING( PROPERTY_DEFAULTBUTTON, "DefaultButton");
+ PCR_CONSTASCII_STRING( PROPERTY_LISTINDEX, "ListIndex");
+ PCR_CONSTASCII_STRING( PROPERTY_HEIGHT, "Height");
+
+ // services
+ PCR_CONSTASCII_STRING( SERVICE_COMPONENT_GROUPBOX, "com.sun.star.form.component.GroupBox");
+ PCR_CONSTASCII_STRING( SERVICE_COMPONENT_FIXEDTEXT, "com.sun.star.form.component.FixedText");
+ PCR_CONSTASCII_STRING( SERVICE_COMPONENT_FORMATTEDFIELD,"com.sun.star.form.component.FormattedField");
+ PCR_CONSTASCII_STRING( SERVICE_DATABASE_CONTEXT, "com.sun.star.sdb.DatabaseContext");
+
+//............................................................................
+} // namespace pcr
+//............................................................................
+
+#endif // _EXTENSIONS_FORMSCTRLR_FORMSTRINGS_HXX_
+
+/*************************************************************************
+ * history:
+ * $Log: not supported by cvs2svn $
+ *
+ * Revision 1.0 08.01.01 14:17:16 fs
+ ************************************************************************/
+
diff --git a/extensions/source/propctrlr/linedescriptor.hxx b/extensions/source/propctrlr/linedescriptor.hxx
new file mode 100644
index 000000000..55b7f73f3
--- /dev/null
+++ b/extensions/source/propctrlr/linedescriptor.hxx
@@ -0,0 +1,154 @@
+/*************************************************************************
+ *
+ * $RCSfile: linedescriptor.hxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: fs $ $Date: 2001-01-12 11:29:21 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (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.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc..
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#ifndef _EXTENSIONS_PROPCTRLR_LINEDESCRIPTOR_HXX_
+#define _EXTENSIONS_PROPCTRLR_LINEDESCRIPTOR_HXX_
+
+#ifndef _EXTENSIONS_PROPCTRLR_BRWCONTROL_HXX_
+#include "brwcontrol.hxx"
+#endif
+
+//............................................................................
+namespace pcr
+{
+//............................................................................
+
+ class IBrowserControl;
+ //========================================================================
+ //= OLineDescriptor
+ //========================================================================
+ struct OLineDescriptor
+ {
+ String sName;
+ String sTitle;
+ String sValue;
+ ::std::vector< String> aListValues;
+ void* pDataPtr;
+ IBrowserControl* pControl;
+ BrowserControlType eControlType;
+ sal_uInt32 nHelpId;
+ sal_uInt32 nUniqueButtonId;
+ sal_uInt16 nDigits; // for numeric fields
+ sal_Int32 nMinValue; // for numeric fields only
+ sal_Int32 nMaxValue; // for numeric fields only
+
+ sal_Bool bUnknownValue :1;
+ sal_Bool bHasDefaultValue:1;
+ sal_Bool bHasBrowseButton:1;
+ sal_Bool bIsHyperlink :1;
+ sal_Bool bIsLocked :1;
+ sal_Bool bHaveMinMax :1;
+
+ OLineDescriptor()
+ :eControlType(BCT_UNDEFINED)
+ ,nHelpId(0)
+ ,bUnknownValue(sal_False)
+ ,bHasDefaultValue(sal_False)
+ ,bHasBrowseButton(sal_False)
+ ,bIsHyperlink(sal_False)
+ ,bIsLocked(sal_False)
+ ,pDataPtr(NULL)
+ ,pControl(NULL)
+ ,nDigits(0)
+ ,nUniqueButtonId(0)
+ ,nMinValue(0)
+ ,nMaxValue(-1)
+ ,bHaveMinMax(sal_False)
+ {
+ }
+
+ // does not copy theValues
+ // TODO: (fs) why?
+ OLineDescriptor(const OLineDescriptor& rData)
+ :eControlType(rData.eControlType)
+ ,sValue(rData.sValue)
+ ,sTitle(rData.sTitle)
+ ,sName(rData.sName)
+ ,nHelpId(rData.nHelpId)
+ ,bUnknownValue(rData.bUnknownValue)
+ ,bHasDefaultValue(rData.bHasDefaultValue)
+ ,bHasBrowseButton(rData.bHasBrowseButton)
+ ,bIsHyperlink(rData.bIsHyperlink)
+ ,bIsLocked(rData.bIsLocked)
+ ,pDataPtr(rData.pDataPtr)
+ ,pControl(rData.pControl)
+ ,nDigits(rData.nDigits)
+ ,nUniqueButtonId(rData.nUniqueButtonId)
+ ,nMinValue(rData.nMinValue)
+ ,nMaxValue(rData.nMaxValue)
+ ,bHaveMinMax(rData.bHaveMinMax)
+ {
+ }
+ };
+
+//............................................................................
+} // namespace pcr
+//............................................................................
+
+#endif _EXTENSIONS_PROPCTRLR_LINEDESCRIPTOR_HXX_
+
+/*************************************************************************
+ * history:
+ * $Log: not supported by cvs2svn $
+ *
+ * Revision 1.0 09.01.01 12:30:27 fs
+ ************************************************************************/
+
diff --git a/extensions/source/propctrlr/makefile.mk b/extensions/source/propctrlr/makefile.mk
new file mode 100644
index 000000000..dc1a7c962
--- /dev/null
+++ b/extensions/source/propctrlr/makefile.mk
@@ -0,0 +1,247 @@
+#*************************************************************************
+#
+# $RCSfile: makefile.mk,v $
+#
+# $Revision: 1.1 $
+#
+# last change: $Author: fs $ $Date: 2001-01-12 11:29:30 $
+#
+# The Contents of this file are made available subject to the terms of
+# either of the following licenses
+#
+# - GNU Lesser General Public License Version 2.1
+# - Sun Industry Standards Source License Version 1.1
+#
+# Sun Microsystems Inc., October, 2000
+#
+# GNU Lesser General Public License Version 2.1
+# =============================================
+# Copyright 2000 by Sun Microsystems, Inc.
+# 901 San Antonio Road, Palo Alto, CA 94303, USA
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License version 2.1, as published by the Free Software Foundation.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+# MA 02111-1307 USA
+#
+#
+# Sun Industry Standards Source License Version 1.1
+# =================================================
+# The contents of this file are subject to the Sun Industry Standards
+# Source License Version 1.1 (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.openoffice.org/license.html.
+#
+# Software provided under this License is provided on an "AS IS" basis,
+# WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+# WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+# MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+# See the License for the specific provisions governing your rights and
+# obligations concerning the Software.
+#
+# The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+#
+# Copyright: 2000 by Sun Microsystems, Inc.
+#
+# All Rights Reserved.
+#
+# Contributor(s): _______________________________________
+#
+#
+#
+#*************************************************************************
+PRJ=..$/..
+
+PRJNAME=pcr
+TARGET=pcr
+ENABLE_EXCEPTIONS=TRUE
+USE_DEFFILE=TRUE
+
+# --- Settings -----------------------------------------------------
+
+.INCLUDE : $(PRJ)$/util$/makefile.pmk
+
+# --- Files --------------------------------------------------------
+
+#Create UNO Header files
+UNOUCROUT=$(OUT)$/inc$/$(PRJNAME)
+INCPRE+=$(UNOUCROUT)
+
+UNOUCRDEP= $(SOLARBINDIR)$/applicat.rdb
+UNOUCRRDB= $(SOLARBINDIR)$/applicat.rdb
+
+UNOTYPES=\
+ com.sun.star.frame.XController \
+ com.sun.star.frame.XFrame \
+ com.sun.star.beans.XPropertyState \
+ com.sun.star.beans.XPropertySet \
+ com.sun.star.beans.XMultiPropertySet \
+ com.sun.star.beans.XFastPropertySet \
+ com.sun.star.beans.XIntrospectionAccess \
+ com.sun.star.beans.XIntrospection \
+ com.sun.star.beans.Property \
+ com.sun.star.beans.PropertyConcept \
+ com.sun.star.beans.PropertyAttribute \
+ com.sun.star.form.ListSourceType \
+ com.sun.star.form.XForm \
+ com.sun.star.form.XFormController \
+ com.sun.star.form.XGridColumnFactory \
+ com.sun.star.form.FormComponentType \
+ com.sun.star.script.XEventAttacherManager \
+ com.sun.star.lang.XInitialization \
+ com.sun.star.lang.Locale \
+ com.sun.star.lang.XMultiServiceFactory \
+ com.sun.star.container.XChild \
+ com.sun.star.i18n.NumberFormatCode \
+ com.sun.star.i18n.XLocaleData \
+ com.sun.star.i18n.LocaleItem \
+ com.sun.star.i18n.reservedWords \
+ com.sun.star.util.XTextSearch \
+ com.sun.star.util.XNumberFormatsSupplier \
+ com.sun.star.util.XNumberFormatTypes \
+ com.sun.star.lang.XUnoTunnel \
+ com.sun.star.util.URL \
+ com.sun.star.connection.XConnection \
+ com.sun.star.lang.Locale \
+ com.sun.star.sdbc.XResultSet \
+ com.sun.star.sdbc.XRowSet \
+ com.sun.star.sdbc.XPreparedStatement \
+ com.sun.star.sdbc.XDataSource \
+ com.sun.star.script.XTypeConverter \
+ com.sun.star.sdbcx.XTablesSupplier \
+ com.sun.star.sdbcx.XColumnsSupplier \
+ com.sun.star.sdb.XQueriesSupplier \
+ com.sun.star.awt.FontWeight \
+ com.sun.star.awt.FontUnderline \
+ com.sun.star.awt.FontStrikeout \
+ com.sun.star.awt.FontSlant \
+ com.sun.star.uno.XNamingService \
+ com.sun.star.frame.XController \
+ com.sun.star.awt.XVclWindowPeer \
+ com.sun.star.awt.XLayoutConstrains \
+ com.sun.star.awt.XView \
+ com.sun.star.awt.XPointer \
+ com.sun.star.awt.XGraphics \
+ com.sun.star.awt.XVclContainerListener \
+ com.sun.star.awt.XKeyListener \
+ com.sun.star.awt.XMouseListener \
+ com.sun.star.awt.XMouseMotionListener \
+ com.sun.star.awt.XPaintListener \
+ com.sun.star.awt.XTopWindowListener \
+ com.sun.star.awt.XTextListener \
+ com.sun.star.awt.XActionListener \
+ com.sun.star.awt.XItemListener \
+ com.sun.star.container.XContainerListener \
+ com.sun.star.awt.XSpinListener \
+ com.sun.star.awt.XAdjustmentListener \
+ com.sun.star.awt.XMenuListener \
+
+
+CXXFILES= pcrservices.cxx \
+ browserline.cxx \
+ selectlabeldialog.cxx \
+ formcontroller.cxx \
+ formmetadata.cxx \
+ formbrowsertools.cxx \
+ standardcontrol.cxx \
+ usercontrol.cxx \
+ commoncontrol.cxx \
+ browserpage.cxx \
+ browserlistbox.cxx \
+ propertyeditor.cxx \
+ formstrings.cxx \
+ pcrstrings.cxx \
+ browserview.cxx \
+ propcontroller.cxx \
+ pcrcommon.cxx \
+ modulepcr.cxx
+
+SLOFILES= $(SLO)$/pcrservices.obj \
+ $(SLO)$/browserline.obj \
+ $(SLO)$/selectlabeldialog.obj \
+ $(SLO)$/formcontroller.obj \
+ $(SLO)$/formmetadata.obj \
+ $(SLO)$/formbrowsertools.obj \
+ $(SLO)$/standardcontrol.obj \
+ $(SLO)$/usercontrol.obj \
+ $(SLO)$/commoncontrol.obj \
+ $(SLO)$/browserpage.obj \
+ $(SLO)$/browserlistbox.obj \
+ $(SLO)$/propertyeditor.obj \
+ $(SLO)$/formstrings.obj \
+ $(SLO)$/pcrstrings.obj \
+ $(SLO)$/browserview.obj \
+ $(SLO)$/propcontroller.obj \
+ $(SLO)$/pcrcommon.obj \
+ $(SLO)$/modulepcr.obj
+
+
+SRCFILES= propres.src \
+ formres.src
+
+RESLIB1NAME=pcr
+RESLIB1SRSFILES= $(SRS)/pcr.srs
+#RESLIB1DEPN= pcr.src pcr.hrc
+
+IMGLST_SRS=$(SRS)$/pcr.srs
+
+SHL1TARGET= $(TARGET)$(UPD)$(DLLPOSTFIX)
+SHL1VERSIONMAP= $(TARGET).map
+
+SHL1STDLIBS= \
+ $(CPPULIB) \
+ $(CPPUHELPERLIB) \
+ $(COMPHELPERLIB) \
+ $(VOSLIB) \
+ $(TOOLSLIB) \
+ $(SO2LIB) \
+ $(VCLLIB) \
+ $(TKLIB) \
+ $(SVTOOLLIB)\
+ $(SVLLIB) \
+ $(OSLLIB) \
+ $(SALLIB) \
+ $(UNOTOOLSLIB) \
+ $(SOTLIB) \
+ $(UCBHELPERLIB) \
+ $(SVXLIB) \
+ $(SFXLIB) \
+ $(DBTOOLSLIB)
+
+
+SHL1LIBS= $(SLB)$/$(TARGET).lib
+SHL1IMPLIB= i$(TARGET)
+SHL1DEPN= $(SHL1LIBS)
+SHL1DEF= $(MISC)$/$(SHL1TARGET).def
+
+DEF1NAME= $(SHL1TARGET)
+#DEF1DEPN= $(MISC)$/$(SHL1TARGET).flt
+#DEFLIB1NAME= $(TARGET)
+DEF1EXPORTFILE= exports.dxp
+
+
+
+# --- Targets ------------------------------------------------------
+
+.INCLUDE : target.mk
+
+#$(MISC)$/$(SHL1TARGET).flt: makefile.mk
+# @echo ------------------------------
+# @echo Making: $@
+# @echo _Impl >$@
+# @echo _real >>$@
+# @echo _TI1 >>$@
+# @echo _TI2 >>$@
+# @echo WEP >>$@
+# @echo LIBMAIN >>$@
+# @echo LibMain >>$@
+
diff --git a/extensions/source/propctrlr/modulepcr.cxx b/extensions/source/propctrlr/modulepcr.cxx
new file mode 100644
index 000000000..f82089439
--- /dev/null
+++ b/extensions/source/propctrlr/modulepcr.cxx
@@ -0,0 +1,367 @@
+/*************************************************************************
+ *
+ * $RCSfile: modulepcr.cxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: fs $ $Date: 2001-01-12 11:29:40 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (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.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc..
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#ifndef _EXTENSIONS_PROPCTRLR_MODULEPCR_HXX_
+#include "modulepcr.hxx"
+#endif
+
+#ifndef _TOOLS_RESMGR_HXX
+#include <tools/resmgr.hxx>
+#endif
+#ifndef _SOLAR_HRC
+#include <svtools/solar.hrc>
+#endif
+#ifndef _COMPHELPER_SEQUENCE_HXX_
+#include <comphelper/sequence.hxx>
+#endif
+
+#define ENTER_MOD_METHOD() \
+ ::osl::MutexGuard aGuard(s_aMutex); \
+ ensureImpl()
+
+//.........................................................................
+namespace pcr
+{
+//.........................................................................
+
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::lang;
+ using namespace ::com::sun::star::registry;
+ using namespace ::comphelper;
+ using namespace ::cppu;
+
+ //=========================================================================
+ //= OModuleImpl
+ //=========================================================================
+ /** implementation for <type>OModule</type>. not threadsafe, has to be guarded by it's owner
+ */
+ class OModuleImpl
+ {
+ ResMgr* m_pRessources;
+
+ public:
+ /// ctor
+ OModuleImpl();
+ ~OModuleImpl();
+
+ /// get the manager for the ressources of the module
+ ResMgr* getResManager();
+ };
+
+ //-------------------------------------------------------------------------
+ OModuleImpl::OModuleImpl()
+ :m_pRessources(NULL)
+ {
+ }
+
+ //-------------------------------------------------------------------------
+ OModuleImpl::~OModuleImpl()
+ {
+ if (m_pRessources)
+ delete m_pRessources;
+ }
+
+ //-------------------------------------------------------------------------
+ ResMgr* OModuleImpl::getResManager()
+ {
+ // note that this method is not threadsafe, which counts for the whole class !
+
+ if (!m_pRessources)
+ {
+ // create a manager with a fixed prefix
+ ByteString aMgrName = ByteString( "pcr" );
+ aMgrName += ByteString::CreateFromInt32(SOLARUPD); // current build number
+ m_pRessources = ResMgr::CreateResMgr(aMgrName.GetBuffer());
+ }
+ return m_pRessources;
+ }
+
+ //=========================================================================
+ //= OModule
+ //=========================================================================
+ ::osl::Mutex OModule::s_aMutex;
+ sal_Int32 OModule::s_nClients = 0;
+ OModuleImpl* OModule::s_pImpl = NULL;
+ //-------------------------------------------------------------------------
+ ResMgr* OModule::getResManager()
+ {
+ ENTER_MOD_METHOD();
+ return s_pImpl->getResManager();
+ }
+
+ //-------------------------------------------------------------------------
+ void OModule::registerClient()
+ {
+ ::osl::MutexGuard aGuard(s_aMutex);
+ ++s_nClients;
+ }
+
+ //-------------------------------------------------------------------------
+ void OModule::revokeClient()
+ {
+ ::osl::MutexGuard aGuard(s_aMutex);
+ if (!--s_nClients && s_pImpl)
+ {
+ delete s_pImpl;
+ s_pImpl = NULL;
+ }
+ }
+
+ //-------------------------------------------------------------------------
+ void OModule::ensureImpl()
+ {
+ if (s_pImpl)
+ return;
+ s_pImpl = new OModuleImpl();
+ }
+
+ //--------------------------------------------------------------------------
+ //- registration helper
+ //--------------------------------------------------------------------------
+
+ Sequence< ::rtl::OUString >* OModule::s_pImplementationNames = NULL;
+ Sequence< Sequence< ::rtl::OUString > >* OModule::s_pSupportedServices = NULL;
+ Sequence< sal_Int64 >* OModule::s_pCreationFunctionPointers = NULL;
+ Sequence< sal_Int64 >* OModule::s_pFactoryFunctionPointers = NULL;
+
+ //--------------------------------------------------------------------------
+ void OModule::registerComponent(
+ const ::rtl::OUString& _rImplementationName,
+ const Sequence< ::rtl::OUString >& _rServiceNames,
+ ComponentInstantiation _pCreateFunction,
+ FactoryInstantiation _pFactoryFunction)
+ {
+ if (!s_pImplementationNames)
+ {
+ OSL_ENSHURE(!s_pSupportedServices && !s_pCreationFunctionPointers && !s_pFactoryFunctionPointers,
+ "OModule::registerComponent : inconsistent state (the pointers (1)) !");
+ s_pImplementationNames = new Sequence< ::rtl::OUString >;
+ s_pSupportedServices = new Sequence< Sequence< ::rtl::OUString > >;
+ s_pCreationFunctionPointers = new Sequence< sal_Int64 >;
+ s_pFactoryFunctionPointers = new Sequence< sal_Int64 >;
+ }
+ OSL_ENSHURE(s_pImplementationNames && s_pSupportedServices && s_pCreationFunctionPointers && s_pFactoryFunctionPointers,
+ "OModule::registerComponent : inconsistent state (the pointers (2)) !");
+
+ OSL_ENSHURE( (s_pImplementationNames->getLength() == s_pSupportedServices->getLength())
+ && (s_pImplementationNames->getLength() == s_pCreationFunctionPointers->getLength())
+ && (s_pImplementationNames->getLength() == s_pFactoryFunctionPointers->getLength()),
+ "OModule::registerComponent : inconsistent state !");
+
+ sal_Int32 nOldLen = s_pImplementationNames->getLength();
+ s_pImplementationNames->realloc(nOldLen + 1);
+ s_pSupportedServices->realloc(nOldLen + 1);
+ s_pCreationFunctionPointers->realloc(nOldLen + 1);
+ s_pFactoryFunctionPointers->realloc(nOldLen + 1);
+
+ s_pImplementationNames->getArray()[nOldLen] = _rImplementationName;
+ s_pSupportedServices->getArray()[nOldLen] = _rServiceNames;
+ s_pCreationFunctionPointers->getArray()[nOldLen] = reinterpret_cast<sal_Int64>(_pCreateFunction);
+ s_pFactoryFunctionPointers->getArray()[nOldLen] = reinterpret_cast<sal_Int64>(_pFactoryFunction);
+ }
+
+ //--------------------------------------------------------------------------
+ void OModule::revokeComponent(const ::rtl::OUString& _rImplementationName)
+ {
+ if (!s_pImplementationNames)
+ {
+ OSL_ASSERT("OModule::revokeComponent : have no class infos ! Are you sure called this method at the right time ?");
+ return;
+ }
+ OSL_ENSHURE(s_pImplementationNames && s_pSupportedServices && s_pCreationFunctionPointers && s_pFactoryFunctionPointers,
+ "OModule::revokeComponent : inconsistent state (the pointers) !");
+ OSL_ENSHURE( (s_pImplementationNames->getLength() == s_pSupportedServices->getLength())
+ && (s_pImplementationNames->getLength() == s_pCreationFunctionPointers->getLength())
+ && (s_pImplementationNames->getLength() == s_pFactoryFunctionPointers->getLength()),
+ "OModule::revokeComponent : inconsistent state !");
+
+ sal_Int32 nLen = s_pImplementationNames->getLength();
+ const ::rtl::OUString* pImplNames = s_pImplementationNames->getConstArray();
+ for (sal_Int32 i=0; i<nLen; ++i, ++pImplNames)
+ {
+ if (pImplNames->equals(_rImplementationName))
+ {
+ removeElementAt(*s_pImplementationNames, i);
+ removeElementAt(*s_pSupportedServices, i);
+ removeElementAt(*s_pCreationFunctionPointers, i);
+ removeElementAt(*s_pFactoryFunctionPointers, i);
+ break;
+ }
+ }
+
+ if (s_pImplementationNames->getLength() == 0)
+ {
+ delete s_pImplementationNames; s_pImplementationNames = NULL;
+ delete s_pSupportedServices; s_pSupportedServices = NULL;
+ delete s_pCreationFunctionPointers; s_pCreationFunctionPointers = NULL;
+ delete s_pFactoryFunctionPointers; s_pFactoryFunctionPointers = NULL;
+ }
+ }
+
+ //--------------------------------------------------------------------------
+ sal_Bool OModule::writeComponentInfos(
+ const Reference< XMultiServiceFactory >& /*_rxServiceManager*/,
+ const Reference< XRegistryKey >& _rxRootKey)
+ {
+ OSL_ENSHURE(_rxRootKey.is(), "OModule::writeComponentInfos : invalid argument !");
+
+ if (!s_pImplementationNames)
+ {
+ OSL_ASSERT("OModule::writeComponentInfos : have no class infos ! Are you sure called this method at the right time ?");
+ return sal_True;
+ }
+ OSL_ENSHURE(s_pImplementationNames && s_pSupportedServices && s_pCreationFunctionPointers && s_pFactoryFunctionPointers,
+ "OModule::writeComponentInfos : inconsistent state (the pointers) !");
+ OSL_ENSHURE( (s_pImplementationNames->getLength() == s_pSupportedServices->getLength())
+ && (s_pImplementationNames->getLength() == s_pCreationFunctionPointers->getLength())
+ && (s_pImplementationNames->getLength() == s_pFactoryFunctionPointers->getLength()),
+ "OModule::writeComponentInfos : inconsistent state !");
+
+ sal_Int32 nLen = s_pImplementationNames->getLength();
+ const ::rtl::OUString* pImplName = s_pImplementationNames->getConstArray();
+ const Sequence< ::rtl::OUString >* pServices = s_pSupportedServices->getConstArray();
+
+ ::rtl::OUString sRootKey("/", 1, RTL_TEXTENCODING_ASCII_US);
+ for (sal_Int32 i=0; i<nLen; ++i, ++pImplName, ++pServices)
+ {
+ ::rtl::OUString aMainKeyName(sRootKey);
+ aMainKeyName += *pImplName;
+ aMainKeyName += ::rtl::OUString::createFromAscii("/UNO/SERVICES");
+
+ try
+ {
+ Reference< XRegistryKey > xNewKey( _rxRootKey->createKey(aMainKeyName) );
+
+ const ::rtl::OUString* pService = pServices->getConstArray();
+ for (sal_Int32 j=0; j<pServices->getLength(); ++j, ++pService)
+ xNewKey->createKey(*pService);
+ }
+ catch(Exception&)
+ {
+ OSL_ASSERT("OModule::writeComponentInfos : something went wrong while creating the keys !");
+ return sal_False;
+ }
+ }
+
+ return sal_True;
+ }
+
+ //--------------------------------------------------------------------------
+ Reference< XInterface > OModule::getComponentFactory(
+ const ::rtl::OUString& _rImplementationName,
+ const Reference< XMultiServiceFactory >& _rxServiceManager)
+ {
+ OSL_ENSHURE(_rxServiceManager.is(), "OModule::getComponentFactory : invalid argument (service manager) !");
+ OSL_ENSHURE(_rImplementationName.getLength(), "OModule::getComponentFactory : invalid argument (implementation name) !");
+
+ if (!s_pImplementationNames)
+ {
+ OSL_ASSERT("OModule::getComponentFactory : have no class infos ! Are you sure called this method at the right time ?");
+ return NULL;
+ }
+ OSL_ENSHURE(s_pImplementationNames && s_pSupportedServices && s_pCreationFunctionPointers && s_pFactoryFunctionPointers,
+ "OModule::getComponentFactory : inconsistent state (the pointers) !");
+ OSL_ENSHURE( (s_pImplementationNames->getLength() == s_pSupportedServices->getLength())
+ && (s_pImplementationNames->getLength() == s_pCreationFunctionPointers->getLength())
+ && (s_pImplementationNames->getLength() == s_pFactoryFunctionPointers->getLength()),
+ "OModule::getComponentFactory : inconsistent state !");
+
+
+ Reference< XInterface > xReturn;
+
+
+ sal_Int32 nLen = s_pImplementationNames->getLength();
+ const ::rtl::OUString* pImplName = s_pImplementationNames->getConstArray();
+ const Sequence< ::rtl::OUString >* pServices = s_pSupportedServices->getConstArray();
+ const sal_Int64* pComponentFunction = s_pCreationFunctionPointers->getConstArray();
+ const sal_Int64* pFactoryFunction = s_pFactoryFunctionPointers->getConstArray();
+
+ for (sal_Int32 i=0; i<nLen; ++i, ++pImplName, ++pServices, ++pComponentFunction, ++pFactoryFunction)
+ {
+ if (pImplName->equals(_rImplementationName))
+ {
+ const FactoryInstantiation FactoryInstantiationFunction = reinterpret_cast<const FactoryInstantiation>(*pFactoryFunction);
+ const ComponentInstantiation ComponentInstantiationFunction = reinterpret_cast<const ComponentInstantiation>(*pComponentFunction);
+
+ xReturn = FactoryInstantiationFunction( _rxServiceManager, *pImplName, ComponentInstantiationFunction, *pServices);
+ if (xReturn.is())
+ {
+ xReturn->acquire();
+ return xReturn.get();
+ }
+ }
+ }
+
+ return NULL;
+ }
+
+
+//.........................................................................
+} // namespace pcr
+//.........................................................................
+
+/*************************************************************************
+ * history:
+ * $Log: not supported by cvs2svn $
+ *
+ * Revision 1.0 08.01.01 12:54:13 fs
+ ************************************************************************/
+
diff --git a/extensions/source/propctrlr/modulepcr.hxx b/extensions/source/propctrlr/modulepcr.hxx
new file mode 100644
index 000000000..e7c4d21b5
--- /dev/null
+++ b/extensions/source/propctrlr/modulepcr.hxx
@@ -0,0 +1,319 @@
+/*************************************************************************
+ *
+ * $RCSfile: modulepcr.hxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: fs $ $Date: 2001-01-12 11:29:50 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (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.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc..
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#ifndef _EXTENSIONS_PROPCTRLR_MODULEPRC_HXX_
+#define _EXTENSIONS_PROPCTRLR_MODULEPRC_HXX_
+
+#ifndef _OSL_MUTEX_HXX_
+#include <osl/mutex.hxx>
+#endif
+#ifndef _TOOLS_RESID_HXX
+#include <tools/resid.hxx>
+#endif
+#ifndef _COM_SUN_STAR_LANG_XMULTISERVICEFACTORY_HPP_
+#include <com/sun/star/lang/XMultiServiceFactory.hpp>
+#endif
+#ifndef _COM_SUN_STAR_LANG_XSINGLESERVICEFACTORY_HPP_
+#include <com/sun/star/lang/XSingleServiceFactory.hpp>
+#endif
+#ifndef _COM_SUN_STAR_UNO_SEQUENCE_HXX_
+#include <com/sun/star/uno/Sequence.hxx>
+#endif
+#ifndef _COM_SUN_STAR_REGISTRY_XREGISTRYKEY_HPP_
+#include <com/sun/star/registry/XRegistryKey.hpp>
+#endif
+#ifndef _CPPUHELPER_FACTORY_HXX_
+#include <cppuhelper/factory.hxx>
+#endif
+
+class ResMgr;
+
+//.........................................................................
+namespace pcr
+{
+//.........................................................................
+
+typedef ::com::sun::star::uno::Reference< ::com::sun::star::lang::XSingleServiceFactory > (SAL_CALL *FactoryInstantiation)
+ (
+ const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& _rServiceManager,
+ const ::rtl::OUString & _rComponentName,
+ ::cppu::ComponentInstantiation _pCreateFunction,
+ const ::com::sun::star::uno::Sequence< ::rtl::OUString > & _rServiceNames
+ );
+
+ //=========================================================================
+ //= OModule
+ //=========================================================================
+ class OModuleImpl;
+ class OModule
+ {
+ friend class OModuleResourceClient;
+
+ private:
+ OModule();
+ // not implemented. OModule is a static class
+
+ protected:
+ // resource administration
+ static ::osl::Mutex s_aMutex; /// access safety
+ static sal_Int32 s_nClients; /// number of registered clients
+ static OModuleImpl* s_pImpl; /// impl class. lives as long as at least one client for the module is registered
+
+ // auto registration administration
+ static ::com::sun::star::uno::Sequence< ::rtl::OUString >*
+ s_pImplementationNames;
+ static ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Sequence< ::rtl::OUString > >*
+ s_pSupportedServices;
+ static ::com::sun::star::uno::Sequence< sal_Int64 >*
+ s_pCreationFunctionPointers;
+ static ::com::sun::star::uno::Sequence< sal_Int64 >*
+ s_pFactoryFunctionPointers;
+
+ public:
+ /// get the vcl res manager of the module
+ static ResMgr* getResManager();
+
+ /** register a component implementing a service with the given data.
+ @param _rImplementationName
+ the implementation name of the component
+ @param _rServiceNames
+ the services the component supports
+ @param _pCreateFunction
+ a function for creating an instance of the component
+ @param _pFactoryFunction
+ a function for creating a factory for that component
+ @see revokeComponent
+ */
+ static void registerComponent(
+ const ::rtl::OUString& _rImplementationName,
+ const ::com::sun::star::uno::Sequence< ::rtl::OUString >& _rServiceNames,
+ ::cppu::ComponentInstantiation _pCreateFunction,
+ FactoryInstantiation _pFactoryFunction);
+
+ /** revoke the registration for the specified component
+ @param _rImplementationName
+ the implementation name of the component
+ */
+ static void revokeComponent(
+ const ::rtl::OUString& _rImplementationName);
+
+ /** write the registration information of all known components
+ <p>writes the registration information of all components which are currently registered into the
+ specified registry.<p/>
+ <p>Usually used from within component_writeInfo.<p/>
+ @param _rxServiceManager
+ the service manager
+ @param _rRootKey
+ the registry key under which the information will be stored
+ @return
+ sal_True if the registration of all implementations was successfull, sal_False otherwise
+ */
+ static sal_Bool writeComponentInfos(
+ const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& _rxServiceManager,
+ const ::com::sun::star::uno::Reference< ::com::sun::star::registry::XRegistryKey >& _rRootKey);
+
+ /** creates a Factory for the component with the given implementation name.
+ <p>Usually used from within component_getFactory.<p/>
+ @param _rxServiceManager
+ a pointer to an XMultiServiceFactory interface as got in component_getFactory
+ @param _pImplementationName
+ the implementation name of the component
+ @return
+ the XInterface access to a factory for the component
+ */
+ static ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > getComponentFactory(
+ const ::rtl::OUString& _rImplementationName,
+ const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& _rxServiceManager
+ );
+
+ protected:
+ /// register a client for the module
+ static void registerClient();
+ /// revoke a client for the module
+ static void revokeClient();
+
+ private:
+ /** ensure that the impl class exists
+ @precond m_aMutex is guarded when this method gets called
+ */
+ static void ensureImpl();
+ };
+
+ //=========================================================================
+ //= OModuleResourceClient
+ //=========================================================================
+ /** base class for objects which uses any global module-specific ressources
+ */
+ class OModuleResourceClient
+ {
+ public:
+ OModuleResourceClient() { OModule::registerClient(); }
+ ~OModuleResourceClient() { OModule::revokeClient(); }
+ };
+
+ //=========================================================================
+ //= ModuleRes
+ //=========================================================================
+ /** specialized ResId, using the ressource manager provided by the global module
+ */
+ class ModuleRes : public ::ResId
+ {
+ public:
+ ModuleRes(USHORT _nId) : ResId(_nId, OModule::getResManager()) { }
+ };
+
+ //==========================================================================
+ //= OMultiInstanceAutoRegistration
+ //==========================================================================
+ template <class TYPE>
+ class OMultiInstanceAutoRegistration
+ {
+ public:
+ /** automatically registeres a multi instance component
+ <p>Assumed that the template argument has the three methods
+ <ul>
+ <li><code>static ::rtl::OUString getImplementationName_Static()</code><li/>
+ <li><code>static ::com::sun::star::uno::Sequence< ::rtl::OUString > getSupportedServiceNames_Static()</code><li/>
+ <li><code>static ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >
+ Create(const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >&)</code>
+ </li>
+ <ul/>
+ the instantiation of this object will automatically register the class via <method>OModule::registerComponent</method>.
+ <p/>
+ The factory creation function used is <code>::cppu::createSingleFactory</code>.
+ @see OOneInstanceAutoRegistration
+ */
+ OMultiInstanceAutoRegistration();
+ ~OMultiInstanceAutoRegistration();
+ };
+
+ template <class TYPE>
+ OMultiInstanceAutoRegistration<TYPE>::OMultiInstanceAutoRegistration()
+ {
+ OModule::registerComponent(
+ TYPE::getImplementationName_Static(),
+ TYPE::getSupportedServiceNames_Static(),
+ TYPE::Create,
+ ::cppu::createSingleFactory
+ );
+ }
+
+ template <class TYPE>
+ OMultiInstanceAutoRegistration<TYPE>::~OMultiInstanceAutoRegistration()
+ {
+ OModule::revokeComponent(TYPE::getImplementationName_Static());
+ }
+
+ //==========================================================================
+ //= OOneInstanceAutoRegistration
+ //==========================================================================
+ template <class TYPE>
+ class OOneInstanceAutoRegistration
+ {
+ public:
+ /** automatically registeres a single instance component
+ <p>Assumed that the template argument has the three methods
+ <ul>
+ <li><code>static ::rtl::OUString getImplementationName_Static()</code><li/>
+ <li><code>static ::com::sun::star::uno::Sequence< ::rtl::OUString > getSupportedServiceNames_Static()</code><li/>
+ <li><code>static ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >
+ Create(const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >&)</code>
+ </li>
+ <ul/>
+ the instantiation of this object will automatically register the class via <method>OModule::registerComponent</method>.
+ <p/>
+ The factory creation function used is <code>::cppu::createOneInstanceFactory</code>.
+ @see OOneInstanceAutoRegistration
+ */
+ OOneInstanceAutoRegistration();
+ ~OOneInstanceAutoRegistration();
+ };
+
+ template <class TYPE>
+ OOneInstanceAutoRegistration<TYPE>::OOneInstanceAutoRegistration()
+ {
+ OModule::registerComponent(
+ TYPE::getImplementationName_Static(),
+ TYPE::getSupportedServiceNames_Static(),
+ TYPE::Create,
+ ::cppu::createOneInstanceFactory
+ );
+ }
+
+ template <class TYPE>
+ OOneInstanceAutoRegistration<TYPE>::~OOneInstanceAutoRegistration()
+ {
+ OModule::revokeComponent(TYPE::getImplementationName_Static());
+ }
+
+//.........................................................................
+} // namespace pcr
+//.........................................................................
+
+#endif // _EXTENSIONS_PROPCTRLR_MODULEPRC_HXX_
+
+/*************************************************************************
+ * history:
+ * $Log: not supported by cvs2svn $
+ *
+ * Revision 1.0 08.01.01 12:52:50 fs
+ ************************************************************************/
+
diff --git a/extensions/source/propctrlr/pcr.map b/extensions/source/propctrlr/pcr.map
new file mode 100644
index 000000000..6794fcdf2
--- /dev/null
+++ b/extensions/source/propctrlr/pcr.map
@@ -0,0 +1,8 @@
+EXTPCR_1_0 {
+ global:
+ component_getImplementationEnvironment;
+ component_writeInfo;
+ component_getFactory;
+ local:
+ *;
+};
diff --git a/extensions/source/propctrlr/pcrcommon.cxx b/extensions/source/propctrlr/pcrcommon.cxx
new file mode 100644
index 000000000..63cb0c653
--- /dev/null
+++ b/extensions/source/propctrlr/pcrcommon.cxx
@@ -0,0 +1,99 @@
+/*************************************************************************
+ *
+ * $RCSfile: pcrcommon.cxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: fs $ $Date: 2001-01-12 11:30:09 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (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.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc..
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#ifndef _EXTENSIONS_PROPCTRLR_PCRCOMMON_HXX_
+#include "pcrcommon.hxx"
+#endif
+#ifndef _EXTENSIONS_PROPCTRLR_MODULEPRC_HXX_
+#include "modulepcr.hxx"
+#endif
+#ifndef _EXTENSIONS_PROPCTRLR_PROPRESID_HRC_
+#include "propresid.hrc"
+#endif
+
+//............................................................................
+namespace pcr
+{
+//............................................................................
+
+ //------------------------------------------------------------------------
+ String getStandardString()
+ {
+ static String sStandardString;
+ if (!sStandardString.Len())
+ {
+ OModuleResourceClient aResourceAccess;
+ sStandardString = String(ModuleRes(RID_STR_STANDARD));
+ }
+ return sStandardString;
+ }
+
+//............................................................................
+} // namespace pcr
+//............................................................................
+
+/*************************************************************************
+ * history:
+ * $Log: not supported by cvs2svn $
+ *
+ * Revision 1.0 09.01.01 10:44:29 fs
+ ************************************************************************/
+
diff --git a/extensions/source/propctrlr/pcrcommon.hxx b/extensions/source/propctrlr/pcrcommon.hxx
new file mode 100644
index 000000000..15b953f98
--- /dev/null
+++ b/extensions/source/propctrlr/pcrcommon.hxx
@@ -0,0 +1,90 @@
+/*************************************************************************
+ *
+ * $RCSfile: pcrcommon.hxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: fs $ $Date: 2001-01-12 11:30:17 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (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.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc..
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#ifndef _EXTENSIONS_PROPCTRLR_PCRCOMMON_HXX_
+#define _EXTENSIONS_PROPCTRLR_PCRCOMMON_HXX_
+
+#define EDITOR_LIST_APPEND (sal_uInt16)-1
+
+#ifndef _STRING_HXX
+#include <tools/string.hxx>
+#endif
+
+//............................................................................
+namespace pcr
+{
+//............................................................................
+
+ String getStandardString();
+
+//............................................................................
+} // namespace pcr
+//............................................................................
+
+#endif // _EXTENSIONS_PROPCTRLR_PCRCOMMON_HXX_
+
+/*************************************************************************
+ * history:
+ * $Log: not supported by cvs2svn $
+ *
+ * Revision 1.0 09.01.01 09:58:50 fs
+ ************************************************************************/
+
diff --git a/extensions/source/propctrlr/pcrservices.cxx b/extensions/source/propctrlr/pcrservices.cxx
new file mode 100644
index 000000000..524cbe49e
--- /dev/null
+++ b/extensions/source/propctrlr/pcrservices.cxx
@@ -0,0 +1,146 @@
+/*************************************************************************
+ *
+ * $RCSfile: pcrservices.cxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: fs $ $Date: 2001-01-12 11:30:30 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (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.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc..
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#ifndef _EXTENSIONS_PROPCTRLR_MODULEPRC_HXX_
+#include "modulepcr.hxx"
+#endif
+
+//---------------------------------------------------------------------------------------
+
+using namespace ::rtl;
+using namespace ::com::sun::star::uno;
+using namespace ::com::sun::star::lang;
+using namespace ::com::sun::star::registry;
+
+//---------------------------------------------------------------------------------------
+
+extern "C" void SAL_CALL createRegistryInfo_OPropertyBrowserController();
+
+//---------------------------------------------------------------------------------------
+
+extern "C" void SAL_CALL pcr_createRegistryInfo()
+{
+ static sal_Bool s_bInit = sal_False;
+ if (!s_bInit)
+ {
+ createRegistryInfo_OPropertyBrowserController();
+ s_bInit = sal_True;
+ }
+}
+
+//---------------------------------------------------------------------------------------
+
+extern "C" void SAL_CALL component_getImplementationEnvironment(
+ const sal_Char **ppEnvTypeName,
+ uno_Environment **ppEnv
+ )
+{
+ pcr_createRegistryInfo();
+ *ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
+}
+
+//---------------------------------------------------------------------------------------
+extern "C" sal_Bool SAL_CALL component_writeInfo(
+ void* pServiceManager,
+ void* pRegistryKey
+ )
+{
+ if (pRegistryKey)
+ try
+ {
+ return ::pcr::OModule::writeComponentInfos(
+ static_cast<XMultiServiceFactory*>(pServiceManager),
+ static_cast<XRegistryKey*>(pRegistryKey));
+ }
+ catch (InvalidRegistryException& )
+ {
+ OSL_ASSERT("pcr::component_writeInfo: could not create a registry key (InvalidRegistryException) !");
+ }
+
+ return sal_False;
+}
+
+//---------------------------------------------------------------------------------------
+extern "C" void* SAL_CALL component_getFactory(
+ const sal_Char* pImplementationName,
+ void* pServiceManager,
+ void* pRegistryKey)
+{
+ Reference< XInterface > xRet;
+ if (pServiceManager && pImplementationName)
+ {
+ xRet = ::pcr::OModule::getComponentFactory(
+ ::rtl::OUString::createFromAscii(pImplementationName),
+ static_cast< XMultiServiceFactory* >(pServiceManager));
+ }
+
+ if (xRet.is())
+ xRet->acquire();
+ return xRet.get();
+};
+
+/*************************************************************************
+ * history:
+ * $Log: not supported by cvs2svn $
+ *
+ * Revision 1.0 11.01.01 09:14:45 fs
+ ************************************************************************/
+
diff --git a/extensions/source/propctrlr/pcrstrings.cxx b/extensions/source/propctrlr/pcrstrings.cxx
new file mode 100644
index 000000000..3a9d39fd8
--- /dev/null
+++ b/extensions/source/propctrlr/pcrstrings.cxx
@@ -0,0 +1,74 @@
+/*************************************************************************
+ *
+ * $RCSfile: pcrstrings.cxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: fs $ $Date: 2001-01-12 11:30:39 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (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.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc..
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#ifndef _EXTENSIONS_FORMSCTRLR_PCRSTRINGS_HXX_
+#define PCR_IMPLEMENT_STRINGS
+#include "pcrstrings.hxx"
+#undef PCR_IMPLEMENT_STRINGS
+#endif
+
+/*************************************************************************
+ * history:
+ * $Log: not supported by cvs2svn $
+ *
+ * Revision 1.0 08.01.01 14:19:51 fs
+ ************************************************************************/
+
diff --git a/extensions/source/propctrlr/pcrstrings.hxx b/extensions/source/propctrlr/pcrstrings.hxx
new file mode 100644
index 000000000..e87168887
--- /dev/null
+++ b/extensions/source/propctrlr/pcrstrings.hxx
@@ -0,0 +1,94 @@
+/*************************************************************************
+ *
+ * $RCSfile: pcrstrings.hxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: fs $ $Date: 2001-01-12 11:30:51 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (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.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc..
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#ifndef _EXTENSIONS_FORMSCTRLR_PCRSTRINGS_HXX_
+#define _EXTENSIONS_FORMSCTRLR_PCRSTRINGS_HXX_
+
+#ifndef _EXTENSIONS_FORMSCTRLR_STRINGDEFINE_HXX_
+#include "stringdefine.hxx"
+#endif
+
+//............................................................................
+namespace pcr
+{
+//............................................................................
+
+ // properties
+ PCR_CONSTASCII_STRING( PROPERTY_DEFAULTCONTROL, "DefaultControl" );
+ PCR_CONSTASCII_STRING( PROPERTY_INTROSPECTEDOBJECT, "IntrospectedObject" );
+ PCR_CONSTASCII_STRING( PROPERTY_TITLEPROPOSAL, "TitleProposal" );
+
+ // services
+ PCR_CONSTASCII_STRING( SERVICE_FORMCONTROLLER, "com.sun.star.form.controller.FormController" );
+
+//............................................................................
+} // namespace pcr
+//............................................................................
+
+#endif // _EXTENSIONS_FORMSCTRLR_PCRSTRINGS_HXX_
+
+/*************************************************************************
+ * history:
+ * $Log: not supported by cvs2svn $
+ *
+ * Revision 1.0 08.01.01 14:17:16 fs
+ ************************************************************************/
+
diff --git a/extensions/source/propctrlr/propcontroller.cxx b/extensions/source/propctrlr/propcontroller.cxx
new file mode 100644
index 000000000..8f6706eab
--- /dev/null
+++ b/extensions/source/propctrlr/propcontroller.cxx
@@ -0,0 +1,881 @@
+/*************************************************************************
+ *
+ * $RCSfile: propcontroller.cxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: fs $ $Date: 2001-01-12 11:31:03 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (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.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc..
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#ifndef _EXTENSIONS_PROPCTRLR_PROPCONTROLLER_HXX_
+#include "propcontroller.hxx"
+#endif
+#ifndef _EXTENSIONS_FORMSCTRLR_PCRSTRINGS_HXX_
+#include "pcrstrings.hxx"
+#endif
+#ifndef _TOOLS_DEBUG_HXX
+#include <tools/debug.hxx>
+#endif
+#ifndef _COMPHELPER_TYPES_HXX_
+#include <comphelper/types.hxx>
+#endif
+#ifndef _CPPUHELPER_EXTRACT_HXX_
+#include <cppuhelper/extract.hxx>
+#endif
+#ifndef _CPPUHELPER_TYPEPROVIDER_HXX_
+#include <cppuhelper/typeprovider.hxx>
+#endif
+#ifndef _EXTENSIONS_PROPCTRLR_PROPERTYEDITOR_HXX_
+#include "propertyeditor.hxx"
+#endif
+#ifndef _EXTENSIONS_PROPCTRLR_PROPRESID_HRC_
+#include "propresid.hrc"
+#endif
+#ifndef _EXTENSIONS_PROPCTRLR_PROPHELPID_HRC_
+#include "prophelpid.hrc"
+#endif
+#ifndef _COM_SUN_STAR_BEANS_XINTROSPECTION_HPP_
+#include <com/sun/star/beans/XIntrospection.hpp>
+#endif
+#ifndef _COM_SUN_STAR_BEANS_PROPERTYCONCEPT_HPP_
+#include <com/sun/star/beans/PropertyConcept.hpp>
+#endif
+#ifndef _COM_SUN_STAR_CONTAINER_XCHILD_HPP_
+#include <com/sun/star/container/XChild.hpp>
+#endif
+#ifndef _COM_SUN_STAR_FORM_XFORM_HPP_
+#include <com/sun/star/form/XForm.hpp>
+#endif
+#ifndef _COM_SUN_STAR_FORM_XFORMCOMPONENT_HPP_
+#include <com/sun/star/form/XFormComponent.hpp>
+#endif
+#ifndef _COM_SUN_STAR_FORM_XGRIDCOLUMNFACTORY_HPP_
+#include <com/sun/star/form/XGridColumnFactory.hpp>
+#endif
+#ifndef _COM_SUN_STAR_FORM_XFORMCONTROLLER_HPP_
+#include <com/sun/star/form/XFormController.hpp>
+#endif
+#ifndef _COM_SUN_STAR_BEANS_PROPERTYATTRIBUTE_HPP_
+#include <com/sun/star/beans/PropertyAttribute.hpp>
+#endif
+#ifndef _COM_SUN_STAR_AWT_XWINDOW_HPP_
+#include <com/sun/star/awt/XWindow.hpp>
+#endif
+#ifndef _TOOLKIT_AWT_VCLXWINDOW_HXX_
+#include <toolkit/awt/vclxwindow.hxx>
+#endif
+#ifndef _TOOLKIT_HELPER_VCLUNOHELPER_HXX_
+#include <toolkit/unohlp.hxx>
+#endif
+#ifndef _EXTENSIONS_PROPCTRLR_MODULEPRC_HXX_
+#include "modulepcr.hxx"
+#endif
+
+//------------------------------------------------------------------------
+// !!! outside the namespace !!!
+extern "C" void SAL_CALL createRegistryInfo_OPropertyBrowserController()
+{
+ static ::pcr::OMultiInstanceAutoRegistration< ::pcr::OPropertyBrowserController > aAutoRegistration;
+}
+
+//............................................................................
+namespace pcr
+{
+//............................................................................
+
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::awt;
+ using namespace ::com::sun::star::form;
+ using namespace ::com::sun::star::beans;
+ using namespace ::com::sun::star::script;
+ using namespace ::com::sun::star::lang;
+ using namespace ::com::sun::star::container;
+ using namespace ::com::sun::star::frame;
+ using namespace ::comphelper;
+
+#define THISREF() static_cast< XController* >(this)
+
+ //========================================================================
+ //= OPropertyBrowserController
+ //========================================================================
+ DBG_NAME(OPropertyBrowserController);
+ //------------------------------------------------------------------------
+ OPropertyBrowserController::OPropertyBrowserController(const Reference< XMultiServiceFactory >& _rxORB)
+ :OPropertyChangeListener(m_aMutex)
+ ,OPropertyBrowserController_PropertyBase1(m_aBHelper)
+ ,m_xORB(_rxORB)
+ ,m_aDisposeListeners(m_aMutex)
+ ,m_pPropertyInfo(NULL)
+ ,m_pChangeMultiplexer(NULL)
+ ,m_pView(NULL)
+ ,m_bHasListSource( sal_False )
+ ,m_bHasCursorSource( sal_False )
+ ,m_nGenericPageId(0)
+ ,m_nDataPageId(0)
+ ,m_nEventPageId(0)
+ ,m_sStandard(ModuleRes(RID_STR_STANDARD))
+ ,m_bInitialized(sal_False)
+ {
+ DBG_CTOR(OPropertyBrowserController,NULL);
+
+ if (m_xORB.is())
+ {
+ m_xTypeConverter = Reference< XTypeConverter >(
+ m_xORB->createInstance(::rtl::OUString::createFromAscii("com.sun.star.script.Converter")),
+ UNO_QUERY
+ );
+ DBG_ASSERT(m_xTypeConverter.is(), "OPropertyBrowserController::OPropertyBrowserController: could not instantiate the type converter service!");
+ // TODO: perhaps an exception
+ }
+
+ initializeSpecialStuff();
+
+ registerProperty(PROPERTY_INTROSPECTEDOBJECT, OWN_PROPERTY_ID_INTROSPECTEDOBJECT,
+ PropertyAttribute::BOUND | PropertyAttribute::TRANSIENT,
+ &m_xIntrospecteeAsProperty, ::getCppuType(&m_xIntrospecteeAsProperty));
+ }
+
+ //------------------------------------------------------------------------
+ OPropertyBrowserController::~OPropertyBrowserController()
+ {
+ // stop listening for property changes
+ stopIntrospection();
+ DBG_DTOR(OPropertyBrowserController,NULL);
+ }
+
+ //------------------------------------------------------------------------
+ void SAL_CALL OPropertyBrowserController::attachFrame( const Reference< XFrame >& _rxFrame ) throw(RuntimeException)
+ {
+ if (_rxFrame.is() && haveView())
+ throw RuntimeException(::rtl::OUString::createFromAscii("Unable to attach to a second frame."),*this);
+
+ m_xFrame = _rxFrame;
+ if (!m_xFrame.is())
+ return;
+
+ // TODO: this construction perhaps should be done outside. Don't know the exact meaning of attachFrame.
+ // Maybe it is intended to only announce the frame to the controller, and the instance doing this
+ // announcement is responsible for calling setComponent, too.
+ Reference< XWindow > xContainerWindow = m_xFrame->getContainerWindow();
+ VCLXWindow* pContainerWindow = VCLXWindow::GetImplementation(xContainerWindow);
+ Window* pParentWin = pContainerWindow ? pContainerWindow->GetWindow() : NULL;
+ if (!pParentWin)
+ throw RuntimeException(::rtl::OUString::createFromAscii("The frame is invalid. Unable to extract the container window."),*this);
+
+ if (Construct(pParentWin))
+ m_xFrame->setComponent(VCLUnoHelper::GetInterface(m_pView), this);
+ }
+
+ //------------------------------------------------------------------------
+ sal_Bool SAL_CALL OPropertyBrowserController::attachModel( const Reference< XModel >& xModel ) throw(RuntimeException)
+ {
+ DBG_ERROR("OPropertyBrowserController::attachModel: models not supported!");
+ return sal_False;
+ }
+
+ //------------------------------------------------------------------------
+ sal_Bool SAL_CALL OPropertyBrowserController::suspend( sal_Bool bSuspend ) throw(RuntimeException)
+ {
+ // TODO
+ return sal_True;
+ }
+
+ //------------------------------------------------------------------------
+ Any SAL_CALL OPropertyBrowserController::getViewData( ) throw(RuntimeException)
+ {
+ // have no view data
+ return Any();
+ }
+
+ //------------------------------------------------------------------------
+ void SAL_CALL OPropertyBrowserController::restoreViewData( const Any& Data ) throw(RuntimeException)
+ {
+ // have no view data
+ }
+
+ //------------------------------------------------------------------------
+ Reference< XModel > SAL_CALL OPropertyBrowserController::getModel( ) throw(RuntimeException)
+ {
+ // have no model
+ return Reference< XModel >();
+ }
+
+ //------------------------------------------------------------------------
+ Reference< XFrame > SAL_CALL OPropertyBrowserController::getFrame( ) throw(RuntimeException)
+ {
+ return m_xFrame;
+ }
+
+ //------------------------------------------------------------------------
+ Any SAL_CALL OPropertyBrowserController::queryInterface( const Type& _rType ) throw(RuntimeException)
+ {
+ Any aReturn = OPropertyBrowserController_Base::queryInterface(_rType);
+ if (!aReturn.hasValue())
+ aReturn = OPropertyBrowserController_PropertyBase1::queryInterface(_rType);
+ return aReturn;
+ }
+
+ //------------------------------------------------------------------------
+ void SAL_CALL OPropertyBrowserController::acquire( ) throw()
+ {
+ OPropertyBrowserController_Base::acquire();
+ }
+
+ //------------------------------------------------------------------------
+ void SAL_CALL OPropertyBrowserController::release( ) throw()
+ {
+ OPropertyBrowserController_Base::release();
+ }
+
+ //------------------------------------------------------------------------
+ void SAL_CALL OPropertyBrowserController::dispose( ) throw(RuntimeException)
+ {
+ // say our dispose listeners goodbye
+ ::com::sun::star::lang::EventObject aEvt;
+ aEvt.Source = static_cast< ::cppu::OWeakObject* >(this);
+ m_aDisposeListeners.disposeAndClear(aEvt);
+
+ if (haveView())
+ m_pView->setActiveController(NULL);
+ // don't delete explicitly (this is done by the frame we reside in)
+ m_pView = NULL;
+ }
+
+ //------------------------------------------------------------------------
+ void SAL_CALL OPropertyBrowserController::addEventListener( const Reference< XEventListener >& _rxListener ) throw(RuntimeException)
+ {
+ m_aDisposeListeners.addInterface(_rxListener);
+ }
+
+ //------------------------------------------------------------------------
+ void SAL_CALL OPropertyBrowserController::removeEventListener( const Reference< XEventListener >& _rxListener ) throw(RuntimeException)
+ {
+ m_aDisposeListeners.removeInterface(_rxListener);
+ }
+
+ //------------------------------------------------------------------------
+ void SAL_CALL OPropertyBrowserController::initialize( const Sequence< Any >& _rArguments ) throw(Exception, RuntimeException)
+ {
+ ::osl::MutexGuard aGuard(m_aMutex);
+ if (m_bInitialized)
+ throw Exception(::rtl::OUString::createFromAscii("The object has already been initialized."), static_cast< XInitialization* >(this));
+
+// sal_Bool bConstructed = sal_False;
+// PropertyValue aCurrentArg;
+// const Any* pStart = _rArguments.getConstArray();
+// const Any* pEnd = pStart + _rArguments.getLength();
+// for (const Any* pLoop = pStart; pLoop != pEnd; ++pLoop)
+// {
+// if ((*pLoop) >>= aCurrentArg)
+// {
+// if (aCurrentArg.Name.equalsAsciiL("ParentWindow", sizeof("ParentWindow") - 1))
+// {
+// Reference< XWindow > xContainerWindow;
+// ::cppu::extractInterface(xContainerWindow, aCurrentArg.Value);
+// VCLXWindow* pContainerWindow = VCLXWindow::GetImplementation(xContainerWindow);
+// Window* pParentWin = pContainerWindow ? pContainerWindow->GetWindow() : NULL;
+// if (!pParentWin)
+// throw Exception(::rtl::OUString::createFromAscii("The frame is invalid. Unable to extract the container window."),*this);
+//
+// bConstructed = Construct(pParentWin);
+// break;
+// }
+// }
+// }
+//
+// if (!bConstructed)
+// {
+// DBG_ERROR("OPropertyBrowserController::initialize: need a parent window argument!");
+// throw Exception(::rtl::OUString::createFromAscii("Invalid arguments specified. No parent window found."), static_cast< XInitialization* >(this));
+// }
+//
+ m_bInitialized = sal_True;
+ }
+
+ //------------------------------------------------------------------------
+ ::rtl::OUString SAL_CALL OPropertyBrowserController::getImplementationName( ) throw(RuntimeException)
+ {
+ return getImplementationName_Static();
+ }
+
+ //------------------------------------------------------------------------
+ sal_Bool SAL_CALL OPropertyBrowserController::supportsService( const ::rtl::OUString& ServiceName ) throw(RuntimeException)
+ {
+ Sequence< ::rtl::OUString > aSupported(getSupportedServiceNames());
+ const ::rtl::OUString* pArray = aSupported.getConstArray();
+ for (sal_Int32 i = 0; i < aSupported.getLength(); ++i, ++pArray)
+ if (pArray->equals(ServiceName))
+ return sal_True;
+ return sal_False;
+ }
+
+ //------------------------------------------------------------------------
+ Sequence< ::rtl::OUString > SAL_CALL OPropertyBrowserController::getSupportedServiceNames( ) throw(RuntimeException)
+ {
+ return getSupportedServiceNames_Static();
+ }
+
+ //------------------------------------------------------------------------
+ ::rtl::OUString OPropertyBrowserController::getImplementationName_Static( ) throw(RuntimeException)
+ {
+ return ::rtl::OUString::createFromAscii("com.sun.star.comp.extensions.pcr.OPropertyBrowserController");
+ }
+
+ //------------------------------------------------------------------------
+ Sequence< ::rtl::OUString > OPropertyBrowserController::getSupportedServiceNames_Static( ) throw(RuntimeException)
+ {
+ Sequence< ::rtl::OUString > aSupported(1);
+ aSupported[0] = ::rtl::OUString::createFromAscii("com.sun.star.form.PropertyBrowserController");
+ return aSupported;
+ }
+
+ //------------------------------------------------------------------------
+ Reference< XInterface > SAL_CALL OPropertyBrowserController::Create(const Reference< XMultiServiceFactory >& _rxORB)
+ {
+ return static_cast<XComponent*>(new OPropertyBrowserController(_rxORB));
+ }
+
+ //------------------------------------------------------------------------
+ Sequence< Type > SAL_CALL OPropertyBrowserController::getTypes( ) throw(RuntimeException)
+ {
+ static ::cppu::OTypeCollection aTypes(
+ ::getCppuType( static_cast< Reference< XPropertySet >* >(NULL) ),
+ ::getCppuType( static_cast< Reference< XMultiPropertySet >* >(NULL) ),
+ ::getCppuType( static_cast< Reference< XFastPropertySet >* >(NULL) ),
+ OPropertyBrowserController_Base::getTypes());
+ return aTypes.getTypes();
+ }
+
+ //------------------------------------------------------------------------
+ void SAL_CALL OPropertyBrowserController::disposing( const EventObject& _rSource ) throw(RuntimeException)
+ {
+ DBG_ASSERT( Reference< XWindow >(_rSource.Source, UNO_QUERY).get() == m_xView.get(),
+ "OPropertyBrowserController::disposing: where does this come from?");
+ m_xView = NULL;
+ m_pView = NULL;
+ }
+
+ //------------------------------------------------------------------------
+ Sequence< sal_Int8 > SAL_CALL OPropertyBrowserController::getImplementationId( ) throw(RuntimeException)
+ {
+ static ::cppu::OImplementationId aId;
+ return aId.getImplementationId();
+ }
+
+ //------------------------------------------------------------------------
+ Reference< XPropertySetInfo > SAL_CALL OPropertyBrowserController::getPropertySetInfo( ) throw(RuntimeException)
+ {
+ return ::cppu::OPropertySetHelper::createPropertySetInfo(getInfoHelper());
+ }
+
+ //------------------------------------------------------------------------
+ ::cppu::IPropertyArrayHelper& SAL_CALL OPropertyBrowserController::getInfoHelper()
+ {
+ return *getArrayHelper();
+ }
+
+ //------------------------------------------------------------------------
+ ::cppu::IPropertyArrayHelper* OPropertyBrowserController::createArrayHelper( ) const
+ {
+ Sequence< Property > aProps;
+ describeProperties(aProps);
+ return new cppu::OPropertyArrayHelper(aProps);
+ }
+
+ //------------------------------------------------------------------------
+ void SAL_CALL OPropertyBrowserController::setFastPropertyValue_NoBroadcast(sal_Int32 _nHandle, const Any& _rValue) throw (Exception)
+ {
+ OPropertyBrowserController_PropertyBase1::setFastPropertyValue_NoBroadcast(_nHandle, _rValue);
+
+ if (1 == _nHandle)
+ {
+ // it was my introspectee
+ bindToObject(m_xIntrospecteeAsProperty);
+ }
+ }
+
+ //------------------------------------------------------------------------
+ sal_Bool OPropertyBrowserController::Construct(Window* _pParentWin)
+ {
+ DBG_ASSERT(!haveView(), "OPropertyBrowserController::Construct: already have a view!");
+ DBG_ASSERT(_pParentWin, "OPropertyBrowserController::Construct: invalid parent window!");
+
+ m_pView = new OPropertyBrowserView(m_xORB, _pParentWin);
+ m_pView->setActiveController(this);
+
+ // add as dispose listener for our view. The view is disposed by the frame we're plugged into,
+ // and this disposal _deletes_ the view, so it would be deadly if we use our m_pView member
+ // after that
+ m_xView = VCLUnoHelper::GetInterface(m_pView);
+ Reference< XComponent > xViewAsComp(m_xView, UNO_QUERY);
+ if (xViewAsComp.is())
+ xViewAsComp->addEventListener(this);
+
+ if (haveView())
+ getPropertyBox()->SetLineListener(this);
+ return sal_True;
+ }
+
+ //------------------------------------------------------------------------
+ void OPropertyBrowserController::_propertyChanged(const PropertyChangeEvent& _rEvent) throw( RuntimeException)
+ {
+ if (!haveView())
+ return;
+ Property aProp = getIntrospecteeProperty(_rEvent.PropertyName);
+ ::rtl::OUString sNewValue = AnyToString(_rEvent.NewValue, aProp, _rEvent.PropertyHandle);
+ getPropertyBox()->SetPropertyValue(_rEvent.PropertyName, sNewValue);
+ }
+
+ //------------------------------------------------------------------------
+ void OPropertyBrowserController::_disposing(const EventObject& _rSource) throw( RuntimeException)
+ {
+#ifdef DBG_UTIL
+ Reference< XInterface > xIntrospectee;
+ ::cppu::extractInterface(xIntrospectee, m_aIntrospectee);
+ DBG_ASSERT( Reference< XInterface >(_rSource.Source, UNO_QUERY).get() == xIntrospectee.get(),
+ "OPropertyBrowserController::_disposing: where does this come from?");
+#endif
+ bindToObject(Reference< XPropertySet >());
+ }
+
+ //------------------------------------------------------------------------
+ void OPropertyBrowserController::startPropertyListening()
+ {
+ DBG_ASSERT(!isListening(), "OPropertyBrowserController::startPropertyListening: already listening!");
+ if (!isListening() && m_xPropValueAccess.is())
+ {
+ m_pChangeMultiplexer = new OPropertyChangeMultiplexer(this, m_xPropValueAccess);
+ m_pChangeMultiplexer->acquire();
+ m_pChangeMultiplexer->addProperty(::rtl::OUString());
+ }
+ }
+
+ //------------------------------------------------------------------------
+ void OPropertyBrowserController::stopPropertyListening()
+ {
+ DBG_ASSERT(isListening(), "OPropertyBrowserController::stopPropertyListening: not listening currently!");
+ if (isListening())
+ {
+ m_pChangeMultiplexer->dispose();
+ m_pChangeMultiplexer->release();
+ m_pChangeMultiplexer = NULL;
+ }
+ }
+
+ //------------------------------------------------------------------------
+ void OPropertyBrowserController::stopIntrospection()
+ {
+ // stop listening for property changes
+ if (isListening())
+ stopPropertyListening();
+
+ m_aIntrospectee.clear();
+ m_aObjectProperties.realloc(0);
+ m_aObjectListenerTypes.realloc(0);
+ m_xEventManager = NULL;
+ m_xPropStateAccess = NULL;
+ m_xPropValueAccess = NULL;
+ m_xIntrospection = NULL;
+ m_xObjectParent = NULL;
+
+ m_bHasListSource = m_bHasCursorSource = sal_False;
+ if (haveView())
+ {
+ // remove the pages
+ if (m_nGenericPageId)
+ getPropertyBox()->RemovePage(m_nDataPageId);
+ if (m_nDataPageId)
+ getPropertyBox()->RemovePage(m_nDataPageId);
+ if (m_nEventPageId)
+ getPropertyBox()->RemovePage(m_nEventPageId);
+ m_nGenericPageId = m_nDataPageId = m_nEventPageId = 0;
+ }
+ }
+
+ //------------------------------------------------------------------------
+ ::rtl::OUString OPropertyBrowserController::GetPropertyValue(const ::rtl::OUString& _rPropName)
+ {
+ ::rtl::OUString aStrVal;
+ try
+ {
+ Property aProp = getIntrospecteeProperty(_rPropName);
+ if(m_xPropValueAccess.is())
+ {
+ Any aVal( m_xPropValueAccess->getPropertyValue(_rPropName ) );
+ aStrVal = AnyToString(aVal, aProp, m_pPropertyInfo->getPropertyId(_rPropName));
+ }
+ }
+
+ catch (Exception&)
+ {
+ DBG_ERROR("OPropertyBrowserController::GetPropertyValue : caught an exception !");
+ }
+
+ return aStrVal;
+ }
+
+ //------------------------------------------------------------------------
+ void OPropertyBrowserController::bindToObject(const Reference< XPropertySet >& _rxObject)
+ {
+ try
+ {
+ sal_uInt16 nActivePage = 0;
+ if (haveView())
+ nActivePage = m_pView->getActivaPage();
+
+ // stop inspecting the old object
+ stopIntrospection();
+
+ if (haveView())
+ {
+ // hide the property box so that it does not flicker
+ getPropertyBox()->Hide();
+ // clear the property box
+ getPropertyBox()->ClearAll();
+ }
+
+ // TODO: notify the listeners that our object has been reset (to NULL, for the moment)
+ // external instances may want to adjust the title to this new situation
+
+ // TODO: the following is very form specific
+ Reference< XForm > xForm(_rxObject, UNO_QUERY);
+ Reference< XFormComponent > xControl(_rxObject, UNO_QUERY);
+
+ Reference< XEventAttacherManager > xEvManager;
+ if (haveView())
+ m_pView->SetHelpId(HID_FM_DLG_PROP_CONTROL);
+
+ Any aAdditionalEvents;
+
+ if (xForm.is())
+ {
+ // it's a form. Create a (temporary) form controller for the additional events
+ Reference< XFormController > xController(m_xORB->createInstance(SERVICE_FORMCONTROLLER), UNO_QUERY);
+ xController->setModel(Reference< ::com::sun::star::awt::XTabControllerModel > (xForm,UNO_QUERY));
+ aAdditionalEvents <<= xController;
+
+ // set the new object, do the inspections
+ setObject(makeAny(xForm), aAdditionalEvents);
+ if (haveView())
+ m_pView->SetHelpId(HID_FM_DLG_PROP_FORM);
+
+ // now we do not need the controller anymore, it is just a helper
+ ::comphelper::disposeComponent(xController);
+ }
+ else if (xControl.is())
+ {
+ if (haveView())
+ m_pView->SetHelpId(HID_FM_DLG_PROP_CONTROL);
+ setObject(makeAny(xControl), aAdditionalEvents);
+ }
+ else
+ { // perhaps it's a grid column
+ Reference< XGridColumnFactory > xGrid;
+ Reference< ::com::sun::star::container::XChild > xChild(_rxObject, UNO_QUERY);
+
+ if (xChild.is())
+ xGrid = Reference< XGridColumnFactory > (xChild->getParent(),UNO_QUERY);
+
+ if (xGrid.is())
+ {
+ if (haveView())
+ m_pView->SetHelpId(HID_FM_DLG_PROP_GRIDCTR);
+ setObject(makeAny(_rxObject), aAdditionalEvents);
+ }
+ }
+
+ // propagate the new object to our view
+ // TODO: check whether or not the view really needs to know this
+ if (haveView())
+ m_pView->setObject(_rxObject);
+
+ // update the user interface
+ if (haveObject())
+ UpdateUI();
+
+ // show the property box, again
+ if (haveView())
+ {
+ getPropertyBox()->Show();
+ // activate the old page
+ if (0 == nActivePage)
+ nActivePage = 1;
+ m_pView->activatePage(nActivePage);
+ }
+ }
+
+ catch(Exception&)
+ {
+ DBG_ERROR("OPropertyBrowserController::bindToObject: caught an exception !");
+ }
+ }
+
+ //------------------------------------------------------------------------
+ sal_Bool OPropertyBrowserController::setObject(const ::com::sun::star::uno::Any& _rIntrospectee, const ::com::sun::star::uno::Any& _rControl)
+ {
+ try
+ {
+ //////////////////////////////////////////////////////////////////////
+ // get the introspection service
+ Reference< XIntrospection > xIntrospection(m_xORB->createInstance(::rtl::OUString::createFromAscii("com.sun.star.beans.Introspection")), UNO_QUERY);
+ if( !xIntrospection.is())
+ return sal_False;
+
+ //////////////////////////////////////////////////////////////////////
+ // inspect the object
+ m_xIntrospection = xIntrospection->inspect( _rIntrospectee );
+ if( !m_xIntrospection.is() )
+ return sal_False;
+
+ //////////////////////////////////////////////////////////////////////
+ // remember the object
+ m_aIntrospectee = _rIntrospectee;
+
+ //////////////////////////////////////////////////////////////////////
+ // the other interfaces to the object or some of it's relatives
+ ::cppu::extractInterface(m_xPropValueAccess, m_aIntrospectee);
+ m_xPropStateAccess = Reference< XPropertyState >::query(m_xPropValueAccess);
+
+ Reference< XChild > xChild(m_xPropValueAccess, UNO_QUERY);
+ if(xChild.is())
+ {
+ m_xObjectParent = Reference< XInterface >(xChild->getParent());
+ m_xEventManager = Reference< XEventAttacherManager > (m_xObjectParent, UNO_QUERY);
+ }
+
+ //////////////////////////////////////////////////////////////////////
+ // tell our property box we're the controller
+ if (haveView())
+ {
+ // add the page for the default properties
+ m_nGenericPageId = getPropertyBox()->AppendPage(
+ String(ModuleRes(RID_STR_PROPPAGE_DEFAULT)),
+ HID_FM_PROPDLG_TAB_GENERAL);
+ }
+
+ //////////////////////////////////////////////////////////////////////
+ // get the properties, and sort them by relative pos
+ Sequence< Property > aProperties(m_xIntrospection->getProperties(PropertyConcept::ALL));
+
+ // transfer all the props to a map
+ DECLARE_STL_STDKEY_MAP( sal_Int32, Property, OrderedPropertyMap );
+ OrderedPropertyMap aSortProperties;
+ const Property* pSourceProps = aProperties.getConstArray();
+ const Property* pSourcePropsEnd = pSourceProps + aProperties.getLength();
+ for (; pSourceProps < pSourcePropsEnd; ++pSourceProps)
+ {
+ sal_Int32 nRelativePosition = m_pPropertyInfo->getPropertyPos(m_pPropertyInfo->getPropertyId(pSourceProps->Name));
+ aSortProperties[nRelativePosition] = *pSourceProps;
+ }
+
+ // and copy them into the sequence, now that they're sorted
+ m_aObjectProperties.realloc(aSortProperties.size());
+ Property* pCopyDest = m_aObjectProperties.getArray();
+ for ( ConstOrderedPropertyMapIterator aCopySource = aSortProperties.begin();
+ aCopySource != aSortProperties.end();
+ ++aCopySource, ++pCopyDest
+ )
+ *pCopyDest = aCopySource->second;
+
+
+ //////////////////////////////////////////////////////////////////////
+ // get the model and the control listeners
+ Sequence< Type > aModelListeners;
+ Sequence< Type > aControlListeners;
+
+ aModelListeners = m_xIntrospection->getSupportedListeners();
+
+ // if we don't have a control, try to create one (temporarily)
+ Reference< XInterface > xTemporaryControl;
+ Any aControl(_rControl);
+ if (!aControl.hasValue())
+ {
+ try
+ {
+ ::rtl::OUString sControlService;
+ if (m_xPropValueAccess.is())
+ m_xPropValueAccess->getPropertyValue(PROPERTY_DEFAULTCONTROL) >>= sControlService;
+
+ xTemporaryControl = m_xORB->createInstance(sControlService);
+ aControl <<= xTemporaryControl;
+ }
+ catch(Exception&)
+ {
+ }
+ }
+
+ // inspect the control for listeners
+ if (aControl.hasValue())
+ {
+ Reference< XIntrospection > xMVCIntrospection(m_xORB->createInstance(::rtl::OUString::createFromAscii("com.sun.star.beans.Introspection")), UNO_QUERY);
+ Reference< XIntrospectionAccess > xAccess;
+ if( xMVCIntrospection.is() )
+ xAccess = xMVCIntrospection->inspect(aControl);
+ aControlListeners = xAccess->getSupportedListeners();
+ }
+ // dispose the temporary control
+ if (xTemporaryControl.is())
+ {
+ ::comphelper::disposeComponent(xTemporaryControl);
+ xTemporaryControl = NULL;
+ }
+
+ // merge the two lists
+ // we use a set for this to avoid duplicates
+ DECLARE_STL_SET( Type, TypeLessByName, TypeBag );
+ TypeBag aListenerCollection;
+
+ // insert the model listeners
+ const Type* pListenerLoop = aModelListeners.getConstArray();
+ const Type* pListenerLoopEnd = pListenerLoop + aModelListeners.getLength();
+ for (; pListenerLoop != pListenerLoopEnd; ++pListenerLoop)
+ aListenerCollection.insert(*pListenerLoop);
+
+ // insert the control listener
+ pListenerLoop = aControlListeners.getConstArray();
+ pListenerLoopEnd = pListenerLoop + aControlListeners.getLength();
+ for (; pListenerLoop != pListenerLoopEnd; ++pListenerLoop)
+ if (aListenerCollection.end() == aListenerCollection.find(*pListenerLoop))
+ aListenerCollection.insert(*pListenerLoop);
+
+ // now that they're disambiguated, copy these types into our member
+ m_aObjectListenerTypes.realloc(aListenerCollection.size());
+ {
+ Type* aCopyDest = m_aObjectListenerTypes.getArray();
+ for ( ConstTypeBagIterator aCopySource = aListenerCollection.begin();
+ aCopySource != aListenerCollection.end();
+ ++aCopySource, ++aCopyDest
+ )
+ *aCopyDest = *aCopySource;
+ }
+
+ // start the listening for property changes
+ startPropertyListening();
+ }
+ catch(Exception&)
+ {
+ DBG_ERROR("OPropertyBrowserController::setObject : caught an exception !");
+ return sal_False;
+ }
+
+ // append the data page for the
+ // TODO: this is form-specific
+ if (haveView())
+ m_nDataPageId = getPropertyBox()->AppendPage(
+ String(ModuleRes(RID_STR_PROPPAGE_DATA)),
+ HID_FM_PROPDLG_TAB_DATA
+ );
+
+ return sal_True;
+ }
+
+ //------------------------------------------------------------------------
+ sal_Int32 OPropertyBrowserController::GetStringPos(const String& _rEntry, const Sequence< ::rtl::OUString >& _rEntries)
+ {
+ const ::rtl::OUString* pStart = _rEntries.getConstArray();
+ const ::rtl::OUString* pEnd = pStart + _rEntries.getLength();
+ const ::rtl::OUString sCompare(_rEntry);
+ for (const ::rtl::OUString* pEntries = pStart; pEntries != pEnd; ++pEntries)
+ {
+ if (sCompare == *pEntries)
+ return pEntries - pStart;
+ }
+ return -1;
+ }
+
+ //------------------------------------------------------------------------
+ Property OPropertyBrowserController::getIntrospecteeProperty( const ::rtl::OUString& _rName )
+ {
+ const Property* pStart = m_aObjectProperties.getConstArray();
+ const Property* pEnd = pStart + m_aObjectProperties.getLength();
+ for (const Property* pLoop = pStart; pLoop != pEnd; ++pLoop)
+ {
+ if (pLoop->Name == _rName)
+ return *pLoop;
+ }
+
+ return Property();
+ }
+
+ //------------------------------------------------------------------------
+ ::rtl::OUString OPropertyBrowserController::convertSimpleToString(const Any& _rValue)
+ {
+ ::rtl::OUString sReturn;
+ if (m_xTypeConverter.is())
+ {
+ // TODO: using the type converter every time is somewhat expensive, isn't it?
+ try
+ {
+ Any aConvertedToString;
+ aConvertedToString = m_xTypeConverter->convertToSimpleType(_rValue, TypeClass_STRING);
+ aConvertedToString >>= sReturn;
+ }
+ catch(CannotConvertException&) { }
+ catch(IllegalArgumentException&) { }
+ }
+ return sReturn;
+ }
+
+//............................................................................
+} // namespace pcr
+//............................................................................
+
+/*************************************************************************
+ * history:
+ * $Log: not supported by cvs2svn $
+ *
+ * Revision 1.0 08.01.01 09:33:47 fs
+ ************************************************************************/
+
diff --git a/extensions/source/propctrlr/propcontroller.hxx b/extensions/source/propctrlr/propcontroller.hxx
new file mode 100644
index 000000000..bb3bc7097
--- /dev/null
+++ b/extensions/source/propctrlr/propcontroller.hxx
@@ -0,0 +1,359 @@
+/*************************************************************************
+ *
+ * $RCSfile: propcontroller.hxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: fs $ $Date: 2001-01-12 11:31:14 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (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.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc..
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#ifndef _EXTENSIONS_PROPCTRLR_PROPCONTROLLER_HXX_
+#define _EXTENSIONS_PROPCTRLR_PROPCONTROLLER_HXX_
+
+#ifndef _COM_SUN_STAR_BEANS_XPROPERTYSTATE_HPP_
+#include <com/sun/star/beans/XPropertyState.hpp>
+#endif
+#ifndef _COM_SUN_STAR_BEANS_XPROPERTYSET_HPP_
+#include <com/sun/star/beans/XPropertySet.hpp>
+#endif
+#ifndef _COM_SUN_STAR_BEANS_XINTROSPECTIONACCESS_HPP_
+#include <com/sun/star/beans/XIntrospectionAccess.hpp>
+#endif
+#include <com/sun/star/lang/XMultiServiceFactory.hpp>
+#ifndef _COM_SUN_STAR_FORM_XFORM_HPP_
+#include <com/sun/star/form/XForm.hpp>
+#endif
+#ifndef _COM_SUN_STAR_SCRIPT_XEVENTATTACHERMANAGER_HPP_
+#include <com/sun/star/script/XEventAttacherManager.hpp>
+#endif
+#ifndef _COM_SUN_STAR_UNO_SEQUENCE_HXX_
+#include <com/sun/star/uno/Sequence.hxx>
+#endif
+#ifndef _EXTENSIONS_PROPCTRLR_STLOPS_HXX_
+#include "stlops.hxx"
+#endif
+#ifndef _EXTENSIONS_PROPCTRLR_PROPLINELISTENER_HXX_
+#include "proplinelistener.hxx"
+#endif
+#ifndef _EXTENSIONS_PROPCTRLR_BROWSERVIEW_HXX_
+#include "browserview.hxx"
+#endif
+#ifndef _EXTENSIONS_PROPCTRLR_MODULEPCR_HXX_
+#include "modulepcr.hxx"
+#endif
+#ifndef _COMPHELPER_PROPERTY_MULTIPLEX_HXX_
+#include <comphelper/propmultiplex.hxx>
+#endif
+#ifndef _EXTENSIONS_PROPCTRLR_PROPERTYINFO_HXX_
+#include "propertyinfo.hxx"
+#endif
+#ifndef _COM_SUN_STAR_SCRIPT_XTYPECONVERTER_HPP_
+#include <com/sun/star/script/XTypeConverter.hpp>
+#endif
+#ifndef _COM_SUN_STAR_LANG_XINITIALIZATION_HPP_
+#include <com/sun/star/lang/XInitialization.hpp>
+#endif
+#ifndef _COM_SUN_STAR_FRAME_XCONTROLLER_HPP_
+#include <com/sun/star/frame/XController.hpp>
+#endif
+#ifndef _COM_SUN_STAR_LANG_XSERVICEINFO_HPP_
+#include <com/sun/star/lang/XServiceInfo.hpp>
+#endif
+#ifndef _CPPUHELPER_INTERFACECONTAINER_HXX_
+#include <cppuhelper/interfacecontainer.hxx>
+#endif
+#ifndef _CPPUHELPER_IMPLBASE2_HXX_
+#include <cppuhelper/implbase4.hxx>
+#endif
+#ifndef _COMPHELPER_PROPERTYCONTAINER_HXX_
+#include <comphelper/propertycontainer.hxx>
+#endif
+#include <com/sun/star/lang/XEventListener.hpp>
+#ifndef _COMPHELPER_PROPERTY_ARRAY_HELPER_HXX_
+#include <comphelper/proparrhlp.hxx>
+#endif
+#ifndef _COMPHELPER_BROADCASTHELPER_HXX_
+#include <comphelper/broadcasthelper.hxx>
+#endif
+
+
+class SvNumberFormatsSupplierObj;
+class Font;
+class Window;
+
+//............................................................................
+namespace pcr
+{
+//............................................................................
+
+ class OPropertyListener;
+ class OPropertyEditor;
+ struct OLineDescriptor;
+
+#define OWN_PROPERTY_ID_INTROSPECTEDOBJECT 1
+
+ //========================================================================
+ //= OPropertyBrowserController
+ //========================================================================
+ typedef ::cppu::WeakImplHelper4 < ::com::sun::star::frame::XController
+ , ::com::sun::star::lang::XServiceInfo
+ , ::com::sun::star::lang::XInitialization
+ , ::com::sun::star::lang::XEventListener
+ > OPropertyBrowserController_Base;
+ typedef ::comphelper::OPropertyContainer OPropertyBrowserController_PropertyBase1;
+
+ class OPropertyBrowserController;
+ typedef ::comphelper::OPropertyArrayUsageHelper< OPropertyBrowserController >
+ OPropertyBrowserController_PropertyBase2;
+
+ class OPropertyBrowserController
+ :public ::comphelper::OMutexAndBroadcastHelper
+ ,public OPropertyBrowserController_Base
+ ,public IPropertyLineListener
+ ,public ::comphelper::OPropertyChangeListener
+ ,public OModuleResourceClient
+ ,public OPropertyBrowserController_PropertyBase1
+ ,public OPropertyBrowserController_PropertyBase2
+ {
+ protected:
+ ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >
+ m_xORB;
+ ::com::sun::star::uno::Reference< ::com::sun::star::script::XTypeConverter >
+ m_xTypeConverter;
+ ::com::sun::star::uno::Reference< ::com::sun::star::frame::XFrame >
+ m_xFrame;
+ ::com::sun::star::uno::Reference< ::com::sun::star::awt::XWindow >
+ m_xView;
+
+ ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >
+ m_xIntrospecteeAsProperty;
+
+ ::cppu::OInterfaceContainerHelper m_aDisposeListeners;
+
+ protected:
+ // meta data about the properties
+ const IPropertyInfoService* m_pPropertyInfo;
+
+ ::comphelper::OPropertyChangeMultiplexer* m_pChangeMultiplexer; /// listener to forward property changes
+ OPropertyBrowserView* m_pView;
+
+ ::rtl::OUString m_sStandard;
+
+ protected:
+ // the inspected object
+ ::com::sun::star::uno::Any m_aIntrospectee;
+ // the properties of the current object
+ ::com::sun::star::uno::Sequence< ::com::sun::star::beans::Property > m_aObjectProperties;
+ // the listener types for the current object
+ ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Type > m_aObjectListenerTypes;
+ // the event attacher manager for the current object
+ ::com::sun::star::uno::Reference< ::com::sun::star::script::XEventAttacherManager > m_xEventManager;
+ // quick access to the property states
+ ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertyState > m_xPropStateAccess;
+ // quick access to the property states
+ ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > m_xPropValueAccess;
+ // introspection access to the object
+ ::com::sun::star::uno::Reference< ::com::sun::star::beans::XIntrospectionAccess > m_xIntrospection;
+ // the parent object (if any) of the introspected object
+ ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > m_xObjectParent;
+
+ sal_uInt16 m_nGenericPageId;
+ sal_uInt16 m_nDataPageId;
+ sal_uInt16 m_nEventPageId;
+
+ private:
+
+ sal_Bool m_bFontInserted : 1;
+ sal_Bool m_bHasListSource : 1;
+ sal_Bool m_bHasCursorSource : 1;
+ sal_Bool m_bInitialized : 1;
+
+ protected:
+ // good callback candidates:
+
+ // convert the display string into a property value
+ ::com::sun::star::uno::Any StringToAny(const ::rtl::OUString& _rString, const ::com::sun::star::beans::Property& _rProp, sal_Int32 _nPropId);
+ // convert a property value into a display string
+ ::rtl::OUString AnyToString(const ::com::sun::star::uno::Any& _rValue, const ::com::sun::star::beans::Property& _rProp, sal_Int32 _nPropId);
+
+ // helper to find a string within a string list
+ sal_Int32 GetStringPos(const String& _rEntry, const ::com::sun::star::uno::Sequence< ::rtl::OUString >& _rEntries);
+
+ // helper
+ ::com::sun::star::beans::Property getIntrospecteeProperty(const ::rtl::OUString& _rName);
+
+ // XServiceInfo
+ virtual ::rtl::OUString SAL_CALL getImplementationName( ) throw(::com::sun::star::uno::RuntimeException);
+ virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) throw(::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames( ) throw(::com::sun::star::uno::RuntimeException);
+
+ // XController
+ virtual void SAL_CALL attachFrame( const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XFrame >& xFrame ) throw(::com::sun::star::uno::RuntimeException);
+ virtual sal_Bool SAL_CALL attachModel( const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XModel >& xModel ) throw(::com::sun::star::uno::RuntimeException);
+ virtual sal_Bool SAL_CALL suspend( sal_Bool bSuspend ) throw(::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Any SAL_CALL getViewData( ) throw(::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL restoreViewData( const ::com::sun::star::uno::Any& Data ) throw(::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::frame::XModel > SAL_CALL getModel( ) throw(::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::frame::XFrame > SAL_CALL getFrame( ) throw(::com::sun::star::uno::RuntimeException);
+
+ // XComponent
+ virtual void SAL_CALL dispose( ) throw(::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL addEventListener( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XEventListener >& xListener ) throw(::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL removeEventListener( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XEventListener >& aListener ) throw(::com::sun::star::uno::RuntimeException);
+
+ // XInitialization
+ virtual void SAL_CALL initialize( const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any >& aArguments ) throw(::com::sun::star::uno::Exception, ::com::sun::star::uno::RuntimeException);
+
+ // XTypeProvider
+ virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Type > SAL_CALL getTypes( ) throw(::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId( ) throw(::com::sun::star::uno::RuntimeException);
+
+ // XEventListener
+ virtual void SAL_CALL disposing( const ::com::sun::star::lang::EventObject& Source ) throw(::com::sun::star::uno::RuntimeException);
+
+ // XPropertySet and friends
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo > SAL_CALL getPropertySetInfo( ) throw(::com::sun::star::uno::RuntimeException);
+ virtual ::cppu::IPropertyArrayHelper& SAL_CALL getInfoHelper();
+ virtual ::cppu::IPropertyArrayHelper* createArrayHelper( ) const;
+ virtual void SAL_CALL setFastPropertyValue_NoBroadcast(
+ sal_Int32 nHandle, const ::com::sun::star::uno::Any& rValue) throw (::com::sun::star::uno::Exception);
+
+ public:
+ OPropertyBrowserController(
+ const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& _rxORB);
+ virtual ~OPropertyBrowserController();
+
+ void UpdateUI();
+ void InsertEvents();
+
+ // XInterface
+ virtual ::com::sun::star::uno::Any SAL_CALL queryInterface( const ::com::sun::star::uno::Type& aType ) throw(::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL acquire( ) throw();
+ virtual void SAL_CALL release( ) throw();
+
+ // XServiceInfo - static versions
+ static ::rtl::OUString getImplementationName_Static( ) throw(::com::sun::star::uno::RuntimeException);
+ static ::com::sun::star::uno::Sequence< ::rtl::OUString > getSupportedServiceNames_Static( ) throw(::com::sun::star::uno::RuntimeException);
+ static ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > SAL_CALL
+ Create(const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >&);
+
+ private:
+ // IPropertyLineListener
+ virtual void Modified( const String& _rName, const String& _rVal, void* _pData);
+ virtual void Clicked( const String& _rName, const String& _rVal, void* _pData);
+ virtual void Commit( const String& _rName, const String& _rVal, void* _pData);
+ virtual void Select( const String& _rName, void* _pData);
+
+ // OPropertyChangeListener
+ virtual void _propertyChanged(const ::com::sun::star::beans::PropertyChangeEvent& _rEvent) throw( ::com::sun::star::uno::RuntimeException);
+ virtual void _disposing(const ::com::sun::star::lang::EventObject& _rSource) throw( ::com::sun::star::uno::RuntimeException);
+
+ /// start listening for property changes
+ void startPropertyListening();
+ /// stop listening for property changes
+ void stopPropertyListening();
+ sal_Bool isListening() const { return NULL != m_pChangeMultiplexer; }
+
+ // stop the inspection
+ void stopIntrospection();
+
+ sal_Bool haveObject() const { return m_aIntrospectee.hasValue(); }
+ sal_Bool haveView() const { return NULL != m_pView; }
+
+ OPropertyEditor* getPropertyBox() { return m_pView->getPropertyBox(); }
+
+ // set a new object (a smaller version of bindToObject)
+ virtual sal_Bool setObject(const ::com::sun::star::uno::Any& _rIntrospectee, const ::com::sun::star::uno::Any& _rControl);
+ // _rControl is the control the model belongs to. Used for events
+
+ // bind the browser to a new object (a more comprehensive version of setObject)
+ void bindToObject(const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& _rxObject);
+
+ void SetCursorSource(sal_Bool _bInit = sal_False);
+ void SetListSource(sal_Bool _bInit = sal_False);
+ void SetStringSeq(const ::com::sun::star::beans::Property& rProperty, OLineDescriptor& _rUIData);
+
+ sal_uInt32 GetPropertyPos(const ::rtl::OUString& _rPropName);
+ ::rtl::OUString GetPropertyValue(const ::rtl::OUString& _rPropName);
+
+ // good candidates for (onClicked-)callbacks, again ....
+ void ChangeFontProperty(const ::rtl::OUString& rName);
+ void ChangeEventProperty(const ::rtl::OUString& rName);
+ void ChangeFormatProperty(const ::rtl::OUString& rName, const ::rtl::OUString& rCurVal);
+
+ void SetTables(OLineDescriptor& _rProperty);
+ void SetQueries(OLineDescriptor& _rProperty);
+ void SetFields(OLineDescriptor& _rProperty);
+
+ void initializeSpecialStuff();
+
+ ::rtl::OUString convertSimpleToString(const ::com::sun::star::uno::Any& _rValue);
+
+ sal_Bool Construct(Window* _pParentWin);
+ };
+
+//............................................................................
+} // namespace pcr
+//............................................................................
+
+#endif // _EXTENSIONS_PROPCTRLR_PROPCONTROLLER_HXX_
+
+/*************************************************************************
+ * history:
+ * $Log: not supported by cvs2svn $
+ *
+ * Revision 1.0 08.01.01 09:33:46 fs
+ ************************************************************************/
+
diff --git a/extensions/source/propctrlr/propertyeditor.cxx b/extensions/source/propctrlr/propertyeditor.cxx
new file mode 100644
index 000000000..c7c0976ae
--- /dev/null
+++ b/extensions/source/propctrlr/propertyeditor.cxx
@@ -0,0 +1,420 @@
+/*************************************************************************
+ *
+ * $RCSfile: propertyeditor.cxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: fs $ $Date: 2001-01-12 11:31:24 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (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.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc..
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#ifndef _EXTENSIONS_PROPCTRLR_PROPERTYEDITOR_HXX_
+#include "propertyeditor.hxx"
+#endif
+#ifndef _TOOLS_DEBUG_HXX
+#include <tools/debug.hxx>
+#endif
+#ifndef _EXTENSIONS_PROPCTRLR_BROWSERPAGE_HXX_
+#include "browserpage.hxx"
+#endif
+
+//............................................................................
+namespace pcr
+{
+//............................................................................
+
+ //==================================================================
+ // class OPropertyEditor
+ //==================================================================
+ DBG_NAME(OPropertyEditor);
+ //------------------------------------------------------------------
+ OPropertyEditor::OPropertyEditor( Window* pParent, WinBits nWinStyle)
+ :Control(pParent, nWinStyle)
+ ,m_aTabControl(this)
+ ,m_nNextId(1)
+ {
+ DBG_CTOR(OPropertyEditor,NULL);
+
+ m_aTabControl.Show();
+ m_aTabControl.SetDeactivatePageHdl(LINK(this, OPropertyEditor, OnPageDeactivate));
+ m_aTabControl.SetBackground(GetBackground());
+ }
+
+ //------------------------------------------------------------------
+ OPropertyEditor::OPropertyEditor( Window* pParent, const ResId& rResId )
+ : Control(pParent,rResId)
+ ,m_aTabControl(this)
+ ,m_nNextId(1)
+ {
+ DBG_CTOR(OPropertyEditor,NULL);
+
+ m_aTabControl.Show();
+ m_aTabControl.SetDeactivatePageHdl(LINK(this, OPropertyEditor, OnPageDeactivate));
+
+ SetHelpId(GetHelpId());
+ m_aTabControl.SetBackground(GetBackground());
+ m_aTabControl.SetPaintTransparent(sal_True);
+
+ Resize();
+ }
+
+ //------------------------------------------------------------------
+ OPropertyEditor::~OPropertyEditor()
+ {
+ Hide();
+ ClearAll();
+ DBG_DTOR(OPropertyEditor,NULL);
+ }
+
+ //------------------------------------------------------------------
+ void OPropertyEditor::ClearAll()
+ {
+ m_nNextId=1;
+ sal_uInt16 nCount = m_aTabControl.GetPageCount();
+ for(long i = nCount-1; i >= 0; --i)
+ {
+ sal_uInt16 nID = m_aTabControl.GetPageId((sal_uInt16)i);
+ OBrowserPage* pPage = static_cast<OBrowserPage*>(m_aTabControl.GetTabPage(nID));
+ if (pPage)
+ {
+ pPage->EnableInput(sal_False);
+ m_aTabControl.RemovePage(nID);
+ delete pPage;
+ }
+ }
+ m_aTabControl.Clear();
+ }
+
+ //------------------------------------------------------------------
+ void OPropertyEditor::Resize()
+ {
+ Point aPos(3,3);
+ Size aSize(GetOutputSizePixel());
+ aSize.Width()-=6;
+ aSize.Height()-=6;
+
+ m_aTabControl.SetPosSizePixel(aPos, aSize);
+
+ }
+
+ //------------------------------------------------------------------
+ sal_uInt16 OPropertyEditor::AppendPage(const String & _rText,sal_uInt32 _nHelpId)
+ {
+ // obtain a new id
+ sal_uInt16 nId = m_nNextId++;
+ // insert the id
+ m_aTabControl.InsertPage(nId, _rText);
+
+ // create a new page
+ OBrowserPage* pPage = new OBrowserPage(&m_aTabControl);
+ // some knittings
+ pPage->SetSizePixel(m_aTabControl.GetOutputSizePixel());
+ pPage->getListBox()->setListener(m_pListener);
+ pPage->SetHelpId(_nHelpId);
+
+ // immediately activate the page
+ m_aTabControl.SetTabPage(nId, pPage);
+ m_aTabControl.SetCurPageId(nId);
+
+ return nId;
+ }
+
+ //------------------------------------------------------------------
+ void OPropertyEditor::SetHelpId( sal_uInt32 nHelpId )
+ {
+ Control::SetHelpId(0);
+ m_aTabControl.SetHelpId(nHelpId);
+ }
+
+ //------------------------------------------------------------------
+ void OPropertyEditor::RemovePage(sal_uInt16 nID)
+ {
+
+ OBrowserPage* pPage = static_cast<OBrowserPage*>(m_aTabControl.GetTabPage(nID));
+
+ if (pPage)
+ pPage->EnableInput(sal_False);
+ m_aTabControl.RemovePage(nID);
+ if (pPage)
+ delete pPage;
+ }
+
+ //------------------------------------------------------------------
+ void OPropertyEditor::SetPage(sal_uInt16 nId)
+ {
+ m_aTabControl.SetCurPageId(nId);
+ }
+
+ //------------------------------------------------------------------
+ sal_uInt16 OPropertyEditor::GetCurPage()
+ {
+ if(m_aTabControl.GetPageCount()>0)
+ return m_aTabControl.GetCurPageId();
+ else
+ return 0;
+ }
+
+ //------------------------------------------------------------------
+ sal_uInt16 OPropertyEditor::CalcVisibleLines()
+ {
+ OBrowserPage* pPage = static_cast<OBrowserPage*>(m_aTabControl.GetTabPage(m_aTabControl.GetCurPageId()));
+ if (pPage)
+ return pPage->getListBox()->CalcVisibleLines();
+ else return 0;
+ }
+
+ //------------------------------------------------------------------
+ void OPropertyEditor::EnableUpdate()
+ {
+ // forward this to all our pages
+ sal_uInt16 nCount = m_aTabControl.GetPageCount();
+ for (sal_uInt16 i=0;i<nCount;++i)
+ {
+ sal_uInt16 nID = m_aTabControl.GetPageId(i);
+ OBrowserPage* pPage = static_cast<OBrowserPage*>(m_aTabControl.GetTabPage(nID));
+ if (pPage)
+ pPage->getListBox()->EnableUpdate();
+ }
+ }
+
+ //------------------------------------------------------------------
+ void OPropertyEditor::DisableUpdate()
+ {
+ // forward this to all our pages
+ sal_uInt16 nCount = m_aTabControl.GetPageCount();
+ for (sal_uInt16 i=0;i<nCount;++i)
+ {
+ sal_uInt16 nID = m_aTabControl.GetPageId(i);
+ OBrowserPage* pPage = static_cast<OBrowserPage*>(m_aTabControl.GetTabPage(nID));
+ if (pPage)
+ pPage->getListBox()->DisableUpdate();
+ }
+ }
+
+ //------------------------------------------------------------------
+ void OPropertyEditor::SetLineListener(IPropertyLineListener* _pListener)
+ {
+ m_pListener = _pListener;
+
+ // forward the new listener to our pages
+ sal_uInt16 nCount = m_aTabControl.GetPageCount();
+ for (sal_uInt16 i=0;i<nCount;++i)
+ {
+ sal_uInt16 nID = m_aTabControl.GetPageId(i);
+ OBrowserPage* pPage = static_cast<OBrowserPage*>(m_aTabControl.GetTabPage(nID));
+ if (pPage)
+ pPage->getListBox()->setListener(m_pListener);
+ }
+
+ }
+
+ //------------------------------------------------------------------
+ sal_uInt16 OPropertyEditor::InsertEntry( const OLineDescriptor& rData, sal_uInt16 nPos)
+ {
+ // let the current page handle this
+ sal_uInt16 nEntry = LISTBOX_ENTRY_NOTFOUND;
+ OBrowserPage* pPage = static_cast<OBrowserPage*>(m_aTabControl.GetTabPage(m_aTabControl.GetCurPageId()));
+ if (pPage)
+ nEntry=pPage->getListBox()->InsertEntry(rData,nPos);
+
+ return nEntry;
+ }
+
+ //------------------------------------------------------------------
+ void OPropertyEditor::ChangeEntry( const OLineDescriptor& rData, sal_uInt16 nPos)
+ {
+ // let the current page handle this
+ OBrowserPage* pPage = static_cast<OBrowserPage*>(m_aTabControl.GetTabPage(m_aTabControl.GetCurPageId()));
+ if (pPage)
+ pPage->getListBox()->ChangeEntry(rData,nPos);
+ }
+
+ //------------------------------------------------------------------
+ sal_uInt16 OPropertyEditor::AppendEntry( const OLineDescriptor& rData)
+ {
+ // let the current page handle this
+ sal_uInt16 nEntry = LISTBOX_ENTRY_NOTFOUND;
+ OBrowserPage* pPage = static_cast<OBrowserPage*>(m_aTabControl.GetTabPage(m_aTabControl.GetCurPageId()));
+ if (pPage)
+ nEntry = pPage->getListBox()->AppendEntry(rData);
+
+ return nEntry;
+ }
+
+ //------------------------------------------------------------------
+ void OPropertyEditor::SetPropertyValue( const ::rtl::OUString & rEntryName, const ::rtl::OUString & rValue )
+ {
+ // let the current page handle this
+ OBrowserPage* pPage = static_cast<OBrowserPage*>(m_aTabControl.GetTabPage(m_aTabControl.GetCurPageId()));
+ if (pPage)
+ pPage->getListBox()->SetPropertyValue( rEntryName, rValue );
+ }
+
+ //------------------------------------------------------------------
+ ::rtl::OUString OPropertyEditor::GetPropertyValue( const ::rtl::OUString& rEntryName ) const
+ {
+ // let the current page handle this
+ ::rtl::OUString aString;
+ OBrowserPage* pPage = static_cast<OBrowserPage*>(m_aTabControl.GetTabPage(m_aTabControl.GetCurPageId()));
+ if(pPage)
+ aString=pPage->getListBox()->GetPropertyValue( rEntryName );
+ return aString;
+ }
+
+ //------------------------------------------------------------------
+ sal_uInt16 OPropertyEditor::GetPropertyPos( const ::rtl::OUString& rEntryName ) const
+ {
+ // let the current page handle this
+ sal_uInt16 nVal=LISTBOX_ENTRY_NOTFOUND;
+ OBrowserPage* pPage = static_cast<OBrowserPage*>(m_aTabControl.GetTabPage(m_aTabControl.GetCurPageId()));
+ if(pPage)
+ nVal=pPage->getListBox()->GetPropertyPos( rEntryName );
+ return nVal;
+ }
+
+ //------------------------------------------------------------------
+ IBrowserControl* OPropertyEditor::GetPropertyControl(const ::rtl::OUString& rEntryName)
+ {
+ // let the current page handle this
+ OBrowserPage* pPage = static_cast<OBrowserPage*>(m_aTabControl.GetTabPage(m_aTabControl.GetCurPageId()));
+ if (pPage)
+ return pPage->getListBox()->GetPropertyControl(rEntryName);
+ return NULL;
+ }
+
+ //------------------------------------------------------------------
+ void OPropertyEditor::SetPropertyData( const ::rtl::OUString& rEntryName, void* pData )
+ {
+ // let the current page handle this
+ OBrowserPage* pPage = static_cast<OBrowserPage*>(m_aTabControl.GetTabPage(m_aTabControl.GetCurPageId()));
+ if (pPage)
+ pPage->getListBox()->SetPropertyData(rEntryName, pData);
+
+ }
+
+ //------------------------------------------------------------------
+ void OPropertyEditor::SetFirstVisibleEntry(sal_uInt16 nPos)
+ {
+ // let the current page handle this
+ OBrowserPage* pPage = static_cast<OBrowserPage*>(m_aTabControl.GetTabPage(m_aTabControl.GetCurPageId()));
+ if(pPage)
+ pPage->getListBox()->SetFirstVisibleEntry(nPos);
+ }
+
+ //------------------------------------------------------------------
+ sal_uInt16 OPropertyEditor::GetFirstVisibleEntry()
+ {
+ // let the current page handle this
+ sal_uInt16 nEntry=LISTBOX_ENTRY_NOTFOUND;
+ OBrowserPage* pPage = static_cast<OBrowserPage*>(m_aTabControl.GetTabPage(m_aTabControl.GetCurPageId()));
+ if(pPage)
+ nEntry=pPage->getListBox()->GetFirstVisibleEntry();
+ return nEntry;
+ }
+
+ //------------------------------------------------------------------
+ void OPropertyEditor::SetSelectedEntry(sal_uInt16 nPos)
+ {
+ // let the current page handle this
+ OBrowserPage* pPage = static_cast<OBrowserPage*>(m_aTabControl.GetTabPage(m_aTabControl.GetCurPageId()));
+ if(pPage)
+ pPage->getListBox()->SetSelectedEntry(nPos);
+ }
+
+ //------------------------------------------------------------------
+ sal_uInt16 OPropertyEditor::GetSelectedEntry()
+ {
+ sal_uInt16 nEntry=LISTBOX_ENTRY_NOTFOUND;
+ // let the current page handle this
+ OBrowserPage* pPage = static_cast<OBrowserPage*>(m_aTabControl.GetTabPage(m_aTabControl.GetCurPageId()));
+ if(pPage)
+ nEntry=pPage->getListBox()->GetSelectedEntry();
+ return nEntry;
+ }
+
+ //------------------------------------------------------------------
+ void OPropertyEditor::ClearTable()
+ {
+ // let the current page handle this
+ OBrowserPage* pPage = static_cast<OBrowserPage*>(m_aTabControl.GetTabPage(m_aTabControl.GetCurPageId()));
+ if(pPage)
+ pPage->getListBox()->Clear();
+ }
+
+ //------------------------------------------------------------------
+ IMPL_LINK(OPropertyEditor, OnPageDeactivate, TabControl*, EMPTYARG)
+ {
+ // commit the data on the current (to-be-decativated) tab page
+ // (79404)
+ sal_Int32 nCurrentId = m_aTabControl.GetCurPageId();
+ OBrowserPage* pCurrentPage = static_cast<OBrowserPage*>(m_aTabControl.GetTabPage((sal_uInt16)nCurrentId));
+ OBrowserListBox* pListBox = pCurrentPage ? pCurrentPage->getListBox() : NULL;
+ IBrowserControl* pControl = pListBox ? pListBox->GetCurrentPropertyControl() : NULL;
+ if (pControl && pControl->IsModified())
+ pControl->CommitModified();
+
+ return 1L;
+ }
+
+//............................................................................
+} // namespace pcr
+//............................................................................
+
+/*************************************************************************
+ * history:
+ * $Log: not supported by cvs2svn $
+ *
+ * Revision 1.0 08.01.01 15:38:46 fs
+ ************************************************************************/
+
diff --git a/extensions/source/propctrlr/propertyeditor.hxx b/extensions/source/propctrlr/propertyeditor.hxx
new file mode 100644
index 000000000..3702de498
--- /dev/null
+++ b/extensions/source/propctrlr/propertyeditor.hxx
@@ -0,0 +1,146 @@
+/*************************************************************************
+ *
+ * $RCSfile: propertyeditor.hxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: fs $ $Date: 2001-01-12 11:31:33 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (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.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc..
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#ifndef _EXTENSIONS_PROPCTRLR_PROPERTYEDITOR_HXX_
+#define _EXTENSIONS_PROPCTRLR_PROPERTYEDITOR_HXX_
+
+#ifndef _SV_TABCTRL_HXX
+#include <vcl/tabctrl.hxx>
+#endif
+#ifndef _EXTENSIONS_PROPCTRLR_PCRCOMMON_HXX_
+#include "pcrcommon.hxx"
+#endif
+
+//............................................................................
+namespace pcr
+{
+//............................................................................
+
+ class IBrowserControl;
+ class IPropertyLineListener;
+ struct OLineDescriptor;
+
+ //========================================================================
+ //= OPropertyEditor
+ //========================================================================
+ class OPropertyEditor : public Control
+ {
+ private:
+ TabControl m_aTabControl;
+ IPropertyLineListener* m_pListener;
+ sal_uInt16 m_nNextId;
+
+ protected:
+ virtual void Resize();
+
+ public:
+ OPropertyEditor (Window* pParent, WinBits nWinStyle = WB_DIALOGCONTROL);
+ OPropertyEditor (Window* pParent, const ResId& rResId);
+
+ ~OPropertyEditor();
+
+ virtual sal_uInt16 CalcVisibleLines();
+ virtual void EnableUpdate();
+ virtual void DisableUpdate();
+
+ virtual void SetLineListener(IPropertyLineListener *);
+
+ virtual void SetHelpId( sal_uInt32 nHelpId );
+ virtual sal_uInt16 AppendPage( const String& r,sal_uInt32 nHelpId=0);
+ virtual void SetPage( sal_uInt16 );
+ virtual void RemovePage(sal_uInt16 nID);
+ virtual sal_uInt16 GetCurPage();
+ virtual void ClearAll();
+ virtual void ClearTable();
+
+ virtual void SetPropertyValue(const ::rtl::OUString & rEntryName, const ::rtl::OUString & rValue );
+ virtual ::rtl::OUString GetPropertyValue(const ::rtl::OUString & rEntryName ) const;
+ virtual sal_uInt16 GetPropertyPos(const ::rtl::OUString& rEntryName ) const;
+ virtual void SetPropertyData(const ::rtl::OUString& rEntryName, void* pData);
+ virtual IBrowserControl* GetPropertyControl( const ::rtl::OUString& rEntryName );
+
+ virtual sal_uInt16 InsertEntry(const OLineDescriptor&, sal_uInt16 nPos = EDITOR_LIST_APPEND);
+ virtual void ChangeEntry(const OLineDescriptor&, sal_uInt16 nPos);
+ virtual sal_uInt16 AppendEntry(const OLineDescriptor&);
+
+ virtual void SetFirstVisibleEntry(sal_uInt16 nPos);
+ virtual sal_uInt16 GetFirstVisibleEntry();
+
+ virtual void SetSelectedEntry(sal_uInt16 nPos);
+ virtual sal_uInt16 GetSelectedEntry();
+
+ protected:
+ DECL_LINK(OnPageDeactivate, TabControl*);
+ };
+
+//............................................................................
+} // namespace pcr
+//............................................................................
+
+#endif // _EXTENSIONS_PROPCTRLR_PROPERTYEDITOR_HXX_
+
+/*************************************************************************
+ * history:
+ * $Log: not supported by cvs2svn $
+ *
+ * Revision 1.0 08.01.01 11:50:25 fs
+ ************************************************************************/
+
diff --git a/extensions/source/propctrlr/propertyinfo.hxx b/extensions/source/propctrlr/propertyinfo.hxx
new file mode 100644
index 000000000..6dd12a5a0
--- /dev/null
+++ b/extensions/source/propctrlr/propertyinfo.hxx
@@ -0,0 +1,110 @@
+/*************************************************************************
+ *
+ * $RCSfile: propertyinfo.hxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: fs $ $Date: 2001-01-12 11:31:43 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (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.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc..
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#ifndef _EXTENSIONS_PROPCTRLR_PROPERTYINFO_HXX_
+#define _EXTENSIONS_PROPCTRLR_PROPERTYINFO_HXX_
+
+#ifndef _SAL_TYPES_H_
+#include <sal/types.h>
+#endif
+#ifndef _STRING_HXX
+#include <tools/string.hxx>
+#endif
+#ifndef _COM_SUN_STAR_UNO_SEQUENCE_HXX_
+#include <com/sun/star/uno/Sequence.hxx>
+#endif
+#ifndef _RTL_USTRING_HXX_
+#include <rtl/ustring.hxx>
+#endif
+
+//............................................................................
+namespace pcr
+{
+//............................................................................
+
+ //========================================================================
+ //= IPropertyInfoService
+ //========================================================================
+ class IPropertyInfoService
+ {
+ public:
+ virtual sal_Int32 getPropertyId(const String& _rName) const = 0;
+ virtual String getPropertyTranslation(sal_Int32 _nId) const = 0;
+ virtual sal_Int32 getPropertyHelpId(sal_Int32 _nId) const = 0;
+ virtual sal_Int16 getPropertyPos(sal_Int32 _nId) const = 0;
+ virtual sal_Bool getPropertyMultiFlag(sal_Int32 _nId) const = 0;
+ virtual ::com::sun::star::uno::Sequence< ::rtl::OUString >
+ getPropertyEnumRepresentations(sal_Int32 _nId) const = 0;
+ };
+
+//............................................................................
+} // namespace pcr
+//............................................................................
+
+#endif // _EXTENSIONS_PROPCTRLR_PROPERTYINFO_HXX_
+
+/*************************************************************************
+ * history:
+ * $Log: not supported by cvs2svn $
+ *
+ * Revision 1.0 08.01.01 12:02:53 fs
+ ************************************************************************/
+
diff --git a/extensions/source/propctrlr/proplinelistener.hxx b/extensions/source/propctrlr/proplinelistener.hxx
new file mode 100644
index 000000000..07cf53368
--- /dev/null
+++ b/extensions/source/propctrlr/proplinelistener.hxx
@@ -0,0 +1,96 @@
+/*************************************************************************
+ *
+ * $RCSfile: proplinelistener.hxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: fs $ $Date: 2001-01-12 11:32:11 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (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.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc..
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#ifndef _EXTENSIONS_PROPCTRLR_PROPLINELISTENER_HXX_
+#define _EXTENSIONS_PROPCTRLR_PROPLINELISTENER_HXX_
+
+#ifndef _STRING_HXX
+#include <tools/string.hxx>
+#endif
+
+//........................................................................
+namespace pcr
+{
+//........................................................................
+
+ //====================================================================
+ class IPropertyLineListener
+ {
+ public:
+ virtual void Modified( const String& _rName, const String& _rVal, void* _pData) = 0;
+ virtual void Clicked( const String& _rName, const String& _rVal, void* _pData) = 0;
+ virtual void Commit( const String& _rName, const String& _rVal, void* _pData) = 0;
+ virtual void Select( const String& _rName, void* _pData) = 0;
+ };
+
+//............................................................................
+} // namespace pcr
+//............................................................................
+
+#endif // _EXTENSIONS_PROPCTRLR_PROPLINELISTENER_HXX_
+
+/*************************************************************************
+ * history:
+ * $Log: not supported by cvs2svn $
+ *
+ * Revision 1.0 08.01.01 10:10:14 fs
+ ************************************************************************/
+
diff --git a/extensions/source/propctrlr/propres.src b/extensions/source/propctrlr/propres.src
new file mode 100644
index 000000000..e52d517e2
--- /dev/null
+++ b/extensions/source/propctrlr/propres.src
@@ -0,0 +1,169 @@
+/*************************************************************************
+ *
+ * $RCSfile: propres.src,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: fs $ $Date: 2001-01-12 11:32:26 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (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.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc..
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#ifndef _EXTENSIONS_PROPCTRLR_PROPRESID_HRC_
+#include "propresid.hrc"
+#endif
+
+String RID_STR_STANDARD
+{
+ Text = "Standard" ;
+ Text [ ENGLISH ] = "Standard" ;
+ Text [ portuguese ] = "Padrão" ;
+ Text [ english_us ] = "Standard" ;
+ Text [ portuguese_brazilian ] = "Standard" ;
+ Text [ swedish ] = "Standard" ;
+ Text [ danish ] = "Standard" ;
+ Text [ italian ] = "Standard" ;
+ Text [ spanish ] = "Predeterminado" ;
+ Text [ french ] = "Standard" ;
+ Text [ dutch ] = "Standaard" ;
+ Text[ chinese_simplified ] = "±ê×¼";
+ Text[ russian ] = "Ñòàíäàðò";
+ Text[ polish ] = "Standard";
+ Text[ japanese ] = "•W€";
+ Text[ chinese_traditional ] = "¼Ð·Ç";
+ Text[ greek ] = "ÐñïåðéëïãÞ";
+ Text[ korean ] = "Ç¥ÁØ";
+ Text[ arabic ] = "ÞíÇÓí";
+ Text[ turkish ] = "Standart";
+ Text[ language_user1 ] = " ";
+};
+String RID_STR_PROPPAGE_DEFAULT
+{
+ Text = "Allgemein" ;
+ Text [ English ] = "Common" ;
+ Text [ portuguese ] = "Geral" ;
+ Text [ english_us ] = "General" ;
+ Text [ portuguese_brazilian ] = "Allgemein" ;
+ Text [ swedish ] = "Allmänt" ;
+ Text [ danish ] = "Generelt" ;
+ Text [ italian ] = "Generale" ;
+ Text [ spanish ] = "General" ;
+ Text [ french ] = "Général" ;
+ Text [ dutch ] = "Algemeen" ;
+ Text[ chinese_simplified ] = "³£¹æ";
+ Text[ russian ] = "Îáùèå";
+ Text[ polish ] = "Ogólne";
+ Text[ japanese ] = "‘S”Ê";
+ Text[ chinese_traditional ] = "¤@¯ë";
+ Text[ greek ] = "ÃåíéêÜ";
+ Text[ korean ] = "ÀϹÝ";
+ Text[ arabic ] = "ÚÇã";
+ Text[ turkish ] = "Genel";
+ Text[ language_user1 ] = " ";
+};
+String RID_STR_PROPPAGE_DATA
+{
+ Text = "Daten" ;
+ Text [ English ] = "Data" ;
+ Text [ portuguese ] = "Dados" ;
+ Text [ english_us ] = "Data" ;
+ Text [ portuguese_brazilian ] = "Daten" ;
+ Text [ swedish ] = "Data" ;
+ Text [ danish ] = "Data" ;
+ Text [ italian ] = "Dati" ;
+ Text [ spanish ] = "Datos" ;
+ Text [ french ] = "Données" ;
+ Text [ dutch ] = "Gegevens" ;
+ Text[ chinese_simplified ] = "Êý¾Ý";
+ Text[ russian ] = "Äàííûå";
+ Text[ polish ] = "Dane";
+ Text[ japanese ] = "ÃÞ°À";
+ Text[ chinese_traditional ] = "¸ê®Æ";
+ Text[ greek ] = "ÄåäïìÝíá";
+ Text[ korean ] = "µ¥ÀÌÅÍ";
+ Text[ arabic ] = "ÈíÇäÇÊ";
+ Text[ turkish ] = "Veriler";
+ Text[ language_user1 ] = " ";
+};
+String RID_STR_BOOL
+{
+ Text = "Nein;Ja" ;
+ Text [ English ] = "No;Yes" ;
+ Text [ portuguese ] = "Não;Sim" ;
+ Text [ english_us ] = "No;Yes" ;
+ Text [ portuguese_brazilian ] = "Nein;Ja" ;
+ Text [ swedish ] = "Nej;Ja" ;
+ Text [ danish ] = "Nej;Ja" ;
+ Text [ italian ] = "No;Sì" ;
+ Text [ spanish ] = "No;Sí" ;
+ Text [ french ] = "Non;Oui" ;
+ Text [ dutch ] = "Nee;Ja" ;
+ Text[ chinese_simplified ] = "·ñ;ÊÇ";
+ Text[ russian ] = "Äà;Íåò";
+ Text[ polish ] = "Nie;Tak";
+ Text[ japanese ] = "‚¢‚¢‚¦;‚Í‚¢";
+ Text[ chinese_traditional ] = "§_;¬O";
+ Text[ greek ] = "¼÷é-Íáé";
+ Text[ korean ] = "¾Æ´Ï¿À;¿¹";
+ Text[ arabic ] = "áÇ;äÚã";
+ Text[ turkish ] = "Hayýr;Evet";
+ Text[ language_user1 ] = " ";
+};
+
+/*************************************************************************
+ * history:
+ * $Log: not supported by cvs2svn $
+ *
+ * Revision 1.0 08.01.01 13:04:05 fs
+ ************************************************************************/
+
diff --git a/extensions/source/propctrlr/propresid.hrc b/extensions/source/propctrlr/propresid.hrc
new file mode 100644
index 000000000..2ccdea525
--- /dev/null
+++ b/extensions/source/propctrlr/propresid.hrc
@@ -0,0 +1,89 @@
+/*************************************************************************
+ *
+ * $RCSfile: propresid.hrc,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: fs $ $Date: 2001-01-12 11:32:36 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (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.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc..
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#ifndef _EXTENSIONS_PROPCTRLR_PROPRESID_HRC_
+#define _EXTENSIONS_PROPCTRLR_PROPRESID_HRC_
+
+// TODO: create a new resource range in <svtools/solar.hrc>
+
+#define RID_PROPCONTROLLER_START 1000
+ // arbitrary at the moment
+#define RID_FORMBROWSER_START RID_PROPCONTROLLER_START + 2000
+
+// -----------------------------------------------------------------------
+// - Strings
+// -----------------------------------------------------------------------
+
+#define RID_STR_STANDARD ( RID_PROPCONTROLLER_START + 0 )
+#define RID_STR_PROPPAGE_DEFAULT ( RID_PROPCONTROLLER_START + 1 )
+#define RID_STR_PROPPAGE_DATA ( RID_PROPCONTROLLER_START + 2 )
+#define RID_STR_BOOL ( RID_PROPCONTROLLER_START + 3 )
+
+
+#endif // _EXTENSIONS_PROPCTRLR_PROPRESID_HRC_
+
+/*************************************************************************
+ * history:
+ * $Log: not supported by cvs2svn $
+ *
+ * Revision 1.0 08.01.01 12:59:45 fs
+ ************************************************************************/
+
diff --git a/extensions/source/propctrlr/selectlabeldialog.cxx b/extensions/source/propctrlr/selectlabeldialog.cxx
new file mode 100644
index 000000000..0eb7bd5ba
--- /dev/null
+++ b/extensions/source/propctrlr/selectlabeldialog.cxx
@@ -0,0 +1,372 @@
+/*************************************************************************
+ *
+ * $RCSfile: selectlabeldialog.cxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: fs $ $Date: 2001-01-12 11:32:49 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (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.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc..
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#ifndef _EXTENSIONS_PROPCTRLR_SELECTLABELDIALOG_HXX_
+#include "selectlabeldialog.hxx"
+#endif
+#ifndef _EXTENSIONS_PROPCTRLR_FORMRESID_HRC_
+#include "formresid.hrc"
+#endif
+#ifndef _EXTENSIONS_FORMSCTRLR_FORMBROWSERTOOLS_HXX_
+#include "formbrowsertools.hxx"
+#endif
+#ifndef _EXTENSIONS_FORMSCTRLR_FORMSTRINGS_HXX_
+#include "formstrings.hxx"
+#endif
+#ifndef _COM_SUN_STAR_FORM_FORMCOMPONENTTYPE_HPP_
+#include <com/sun/star/form/FormComponentType.hpp>
+#endif
+#ifndef _COM_SUN_STAR_CONTAINER_XCHILD_HPP_
+#include <com/sun/star/container/XChild.hpp>
+#endif
+#ifndef _COM_SUN_STAR_CONTAINER_XINDEXACCESS_HPP_
+#include <com/sun/star/container/XIndexAccess.hpp>
+#endif
+#ifndef _COM_SUN_STAR_SDBC_XRESULTSET_HPP_
+#include <com/sun/star/sdbc/XResultSet.hpp>
+#endif
+#ifndef _COM_SUN_STAR_BEANS_XPROPERTYSET_HPP_
+#include <com/sun/star/beans/XPropertySet.hpp>
+#endif
+#ifndef _COM_SUN_STAR_LANG_XSERVICEINFO_HPP_
+#include <com/sun/star/lang/XServiceInfo.hpp>
+#endif
+#ifndef _COMPHELPER_PROPERTY_HXX_
+#include <comphelper/property.hxx>
+#endif
+#ifndef _COMPHELPER_TYPES_HXX_
+#include <comphelper/types.hxx>
+#endif
+
+//............................................................................
+namespace pcr
+{
+//............................................................................
+
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::container;
+ using namespace ::com::sun::star::beans;
+ using namespace ::com::sun::star::form;
+ using namespace ::com::sun::star::sdbc;
+ using namespace ::com::sun::star::lang;
+
+ //========================================================================
+ // OSelectLabelDialog
+ //========================================================================
+ DBG_NAME(OSelectLabelDialog);
+ //------------------------------------------------------------------------
+ OSelectLabelDialog::OSelectLabelDialog( Window* pParent, Reference< XPropertySet > _xControlModel )
+ :ModalDialog(pParent, ModuleRes(RID_DLG_SELECTLABELCONTROL))
+ ,m_aMainDesc(this, ResId(1))
+ ,m_aControlTree(this, ResId(1))
+ ,m_aNoAssignment(this, ResId(1))
+ ,m_aSeparator(this, ResId(1))
+ ,m_aOk(this, ResId(1))
+ ,m_aCancel(this, ResId(1))
+ ,m_xControlModel(_xControlModel)
+ ,m_pInitialSelection(NULL)
+ ,m_aModelImages(ModuleRes(RID_IL_FORMEXPLORER))
+ ,m_pLastSelected(NULL)
+ ,m_bHaveAssignableControl(sal_False)
+ {
+ DBG_CTOR(OSelectLabelDialog,NULL);
+
+ // initialize the TreeListBox
+ m_aControlTree.SetSelectionMode( SINGLE_SELECTION );
+ m_aControlTree.SetDragDropMode( 0 );
+ m_aControlTree.EnableInplaceEditing( sal_False );
+ m_aControlTree.SetWindowBits(WB_BORDER | WB_HASLINES | WB_HASLINESATROOT | WB_HASBUTTONS | WB_HASBUTTONSATROOT | WB_HSCROLL);
+
+ m_aControlTree.SetNodeBitmaps( m_aModelImages.GetImage( RID_SVXIMG_COLLAPSEDNODE ), m_aModelImages.GetImage( RID_SVXIMG_EXPANDEDNODE ) );
+ m_aControlTree.SetSelectHdl(LINK(this, OSelectLabelDialog, OnEntrySelected));
+ m_aControlTree.SetDeselectHdl(LINK(this, OSelectLabelDialog, OnEntrySelected));
+
+ // fill the description
+ UniString sDescription = m_aMainDesc.GetText();
+ sal_Int16 nClassID = FormComponentType::CONTROL;
+ if (::comphelper::hasProperty(PROPERTY_CLASSID, m_xControlModel))
+ nClassID = ::comphelper::getINT16(m_xControlModel->getPropertyValue(PROPERTY_CLASSID));
+
+ sDescription.SearchAndReplace(String::CreateFromAscii("$control_class$"), GetUIHeadlineName(nClassID, makeAny(m_xControlModel)));
+ UniString sName = ::comphelper::getString(m_xControlModel->getPropertyValue(PROPERTY_NAME)).getStr();
+ sDescription.SearchAndReplace(String::CreateFromAscii("$control_name$"), sName);
+ m_aMainDesc.SetText(sDescription);
+
+ // search for the root of the form hierarchy
+ Reference< XChild > xCont(m_xControlModel, UNO_QUERY);
+ Reference< XInterface > xSearch( xCont.is() ? xCont->getParent() : Reference< XInterface > ());
+ Reference< XResultSet > xParentAsResultSet(xSearch, UNO_QUERY);
+ while (xParentAsResultSet.is())
+ {
+ xCont = Reference< XChild > (xSearch, UNO_QUERY);
+ xSearch = xCont.is() ? xCont->getParent() : Reference< XInterface > ();
+ xParentAsResultSet = Reference< XResultSet > (xSearch, UNO_QUERY);
+ }
+
+ // and insert all entries below this root into the listbox
+ if (xSearch.is())
+ {
+ // check wich service the allowed components must suppport
+ sal_Int16 nClassId = 0;
+ try { nClassId = ::comphelper::getINT16(m_xControlModel->getPropertyValue(PROPERTY_CLASSID)); } catch(...) { }
+ m_sRequiredService = (FormComponentType::RADIOBUTTON == nClassId) ? SERVICE_COMPONENT_GROUPBOX : SERVICE_COMPONENT_FIXEDTEXT;
+ m_aRequiredControlImage = m_aModelImages.GetImage((FormComponentType::RADIOBUTTON == nClassId) ? RID_SVXIMG_GROUPBOX : RID_SVXIMG_FIXEDTEXT);
+
+ // calc the currently set label control (so InsertEntries can calc m_pInitialSelection)
+ Any aCurrentLabelControl( m_xControlModel->getPropertyValue(PROPERTY_CONTROLLABEL) );
+ DBG_ASSERT((aCurrentLabelControl.getValueTypeClass() == TypeClass_INTERFACE) || !aCurrentLabelControl.hasValue(),
+
+ "OSelectLabelDialog::OSelectLabelDialog : invalid ControlLabel property !");
+ if (aCurrentLabelControl.hasValue())
+ aCurrentLabelControl >>= m_xInitialLabelControl;
+
+ // insert the root
+ Image aRootImage = m_aModelImages.GetImage(RID_SVXIMG_FORMS);
+ SvLBoxEntry* pRoot = m_aControlTree.InsertEntry(ModuleRes(RID_STR_FORMS), aRootImage, aRootImage);
+
+ // build the tree
+ m_pInitialSelection = NULL;
+ m_bHaveAssignableControl = sal_False;
+ InsertEntries(xSearch, pRoot);
+ m_aControlTree.Expand(pRoot);
+ }
+
+ if (m_pInitialSelection)
+ {
+ m_aControlTree.MakeVisible(m_pInitialSelection, sal_True);
+ m_aControlTree.Select(m_pInitialSelection, sal_True);
+ }
+ else
+ {
+ m_aControlTree.MakeVisible(m_aControlTree.First(), sal_True);
+ if (m_aControlTree.FirstSelected())
+ m_aControlTree.Select(m_aControlTree.FirstSelected(), sal_False);
+ m_aNoAssignment.Check(sal_True);
+ }
+
+ if (!m_bHaveAssignableControl)
+ { // no controls which can be assigned
+ m_aNoAssignment.Check(sal_True);
+ m_aNoAssignment.Enable(sal_False);
+ }
+
+ m_aNoAssignment.SetClickHdl(LINK(this, OSelectLabelDialog, OnNoAssignmentClicked));
+ m_aNoAssignment.GetClickHdl().Call(&m_aNoAssignment);
+
+ FreeResource();
+ }
+
+ //------------------------------------------------------------------------
+ OSelectLabelDialog::~OSelectLabelDialog()
+ {
+ // delete the entry datas of the listbox entries
+ SvLBoxEntry* pLoop = m_aControlTree.First();
+ while (pLoop)
+ {
+ void* pData = pLoop->GetUserData();
+ if (pData)
+ delete (Reference< XPropertySet > *)pData;
+ pLoop = m_aControlTree.Next(pLoop);
+ }
+
+ DBG_DTOR(OSelectLabelDialog,NULL);
+ }
+
+ //------------------------------------------------------------------------
+ sal_Int32 OSelectLabelDialog::InsertEntries(const Reference< XInterface > & _xContainer, SvLBoxEntry* pContainerEntry)
+ {
+ Reference< XIndexAccess > xContainer(_xContainer, UNO_QUERY);
+ if (!xContainer.is())
+ return 0;
+
+ sal_Int32 nChildren = 0;
+ UniString sName,sDisplayName;
+ Reference< XPropertySet > xAsSet;
+ for (sal_Int32 i=0; i<xContainer->getCount(); ++i)
+ {
+ xContainer->getByIndex(i) >>= xAsSet;
+ if (!xAsSet.is())
+ {
+ DBG_WARNING("OSelectLabelDialog::InsertEntries : strange : a form component which isn't a property set !");
+ continue;
+ }
+
+ if (!::comphelper::hasProperty(PROPERTY_NAME, xAsSet))
+ // we need at least a name for displaying ...
+ continue;
+ sName = ::comphelper::getString(xAsSet->getPropertyValue(PROPERTY_NAME)).getStr();
+
+ // we need to check if the control model supports the required service
+ Reference< XServiceInfo > xInfo(xAsSet, UNO_QUERY);
+ if (!xInfo.is())
+ continue;
+
+ if (!xInfo->supportsService(m_sRequiredService))
+ { // perhaps it is a container
+ Reference< XIndexAccess > xCont(xAsSet, UNO_QUERY);
+ if (xCont.is() && xCont->getCount())
+ { // yes -> step down
+ Image aFormImage = m_aModelImages.GetImage( RID_SVXIMG_FORM );
+ SvLBoxEntry* pCont = m_aControlTree.InsertEntry(sName, aFormImage, aFormImage, pContainerEntry);
+ sal_Int32 nContChildren = InsertEntries(xCont, pCont);
+ if (nContChildren)
+ {
+ m_aControlTree.Expand(pCont);
+ ++nChildren;
+ }
+ else
+ { // oops, no valid childs -> remove the entry
+ m_aControlTree.ModelIsRemoving(pCont);
+ m_aControlTree.GetModel()->Remove(pCont);
+ m_aControlTree.ModelHasRemoved(pCont);
+ }
+ }
+ continue;
+ }
+
+ // get the label
+ if (!::comphelper::hasProperty(PROPERTY_LABEL, xAsSet))
+ continue;
+ sDisplayName = ::comphelper::getString(xAsSet->getPropertyValue(PROPERTY_LABEL)).getStr();
+ sDisplayName += String::CreateFromAscii(" (");
+ sDisplayName += sName;
+ sDisplayName += ')';
+
+ // all requirements met -> insert
+ SvLBoxEntry* pCurrent = m_aControlTree.InsertEntry(sDisplayName, m_aRequiredControlImage, m_aRequiredControlImage, pContainerEntry);
+ pCurrent->SetUserData(new Reference< XPropertySet > (xAsSet));
+ ++nChildren;
+
+ if (m_xInitialLabelControl == xAsSet)
+ m_pInitialSelection = pCurrent;
+
+ m_bHaveAssignableControl = sal_True;
+ }
+
+ return nChildren;
+ }
+
+ //------------------------------------------------------------------------
+ IMPL_LINK(OSelectLabelDialog, OnEntrySelected, SvTreeListBox*, pLB)
+ {
+ DBG_ASSERT(pLB == &m_aControlTree, "OSelectLabelDialog::OnEntrySelected : where did this come from ?");
+ SvLBoxEntry* pSelected = m_aControlTree.FirstSelected();
+ void* pData = pSelected ? pSelected->GetUserData() : NULL;
+
+ if (pData)
+ m_xSelectedControl = Reference< XPropertySet > (*(Reference< XPropertySet > *)pData);
+
+ m_aNoAssignment.SetClickHdl(Link());
+ m_aNoAssignment.Check(pData == NULL);
+ m_aNoAssignment.SetClickHdl(LINK(this, OSelectLabelDialog, OnNoAssignmentClicked));
+
+ return 0L;
+ }
+
+ //------------------------------------------------------------------------
+ IMPL_LINK(OSelectLabelDialog, OnNoAssignmentClicked, Button*, pButton)
+ {
+ DBG_ASSERT(pButton == &m_aNoAssignment, "OSelectLabelDialog::OnNoAssignmentClicked : where did this come from ?");
+
+ if (m_aNoAssignment.IsChecked())
+ m_pLastSelected = m_aControlTree.FirstSelected();
+ else
+ {
+ DBG_ASSERT(m_bHaveAssignableControl, "OSelectLabelDialog::OnNoAssignmentClicked");
+ // search the first assignable entry
+ SvLBoxEntry* pSearch = m_aControlTree.First();
+ while (pSearch)
+ {
+ if (pSearch->GetUserData())
+ break;
+ pSearch = m_aControlTree.Next(pSearch);
+ }
+ // and select it
+ if (pSearch)
+ {
+ m_aControlTree.Select(pSearch);
+ m_pLastSelected = pSearch;
+ }
+ }
+
+ if (m_pLastSelected)
+ {
+ m_aControlTree.SetSelectHdl(Link());
+ m_aControlTree.SetDeselectHdl(Link());
+ m_aControlTree.Select(m_pLastSelected, !m_aNoAssignment.IsChecked());
+ m_aControlTree.SetSelectHdl(LINK(this, OSelectLabelDialog, OnEntrySelected));
+ m_aControlTree.SetDeselectHdl(LINK(this, OSelectLabelDialog, OnEntrySelected));
+ }
+
+ return 0L;
+ }
+
+//............................................................................
+} // namespace pcr
+//............................................................................
+
+/*************************************************************************
+ * history:
+ * $Log: not supported by cvs2svn $
+ *
+ * Revision 1.0 09.01.01 14:06:16 fs
+ ************************************************************************/
+
diff --git a/extensions/source/propctrlr/selectlabeldialog.hxx b/extensions/source/propctrlr/selectlabeldialog.hxx
new file mode 100644
index 000000000..867034fb0
--- /dev/null
+++ b/extensions/source/propctrlr/selectlabeldialog.hxx
@@ -0,0 +1,142 @@
+/*************************************************************************
+ *
+ * $RCSfile: selectlabeldialog.hxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: fs $ $Date: 2001-01-12 11:33:05 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (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.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc..
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#ifndef _EXTENSIONS_PROPCTRLR_SELECTLABELDIALOG_HXX_
+#define _EXTENSIONS_PROPCTRLR_SELECTLABELDIALOG_HXX_
+
+#ifndef _SV_FIXED_HXX
+#include <vcl/fixed.hxx>
+#endif
+#ifndef _SVTREEBOX_HXX
+#include <svtools/svtreebx.hxx>
+#endif
+#ifndef _SV_BUTTON_HXX
+#include <vcl/button.hxx>
+#endif
+#ifndef _SV_IMAGE_HXX
+#include <vcl/image.hxx>
+#endif
+#ifndef _SV_DIALOG_HXX
+#include <vcl/dialog.hxx>
+#endif
+#ifndef _COM_SUN_STAR_BEANS_XPROPERTYSET_HPP_
+#include <com/sun/star/beans/XPropertyset.hpp>
+#endif
+#ifndef _EXTENSIONS_PROPCTRLR_MODULEPRC_HXX_
+#include "modulepcr.hxx"
+#endif
+
+//............................................................................
+namespace pcr
+{
+//............................................................................
+
+ //========================================================================
+ // OSelectLabelDialog
+ //========================================================================
+ class OSelectLabelDialog
+ :public ModalDialog
+ ,public OModuleResourceClient
+ {
+ FixedText m_aMainDesc;
+ SvTreeListBox m_aControlTree;
+ CheckBox m_aNoAssignment;
+ FixedLine m_aSeparator;
+ OKButton m_aOk;
+ CancelButton m_aCancel;
+
+ ImageList m_aModelImages;
+ ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > m_xControlModel;
+ ::rtl::OUString m_sRequiredService;
+ Image m_aRequiredControlImage;
+ SvLBoxEntry* m_pInitialSelection;
+ ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > m_xInitialLabelControl;
+
+ ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > m_xSelectedControl;
+ SvLBoxEntry* m_pLastSelected;
+ sal_Bool m_bHaveAssignableControl;
+
+ public:
+ OSelectLabelDialog(Window* pParent, ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > _xControlModel);
+ ~OSelectLabelDialog();
+
+ ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > GetSelected() const { return m_aNoAssignment.IsChecked() ? ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > () : m_xSelectedControl; }
+
+ protected:
+ sal_Int32 InsertEntries(const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& _xContainer, SvLBoxEntry* pContainerEntry);
+
+ DECL_LINK(OnEntrySelected, SvTreeListBox*);
+ DECL_LINK(OnNoAssignmentClicked, Button*);
+ };
+
+//............................................................................
+} // namespace pcr
+//............................................................................
+
+#endif // _EXTENSIONS_PROPCTRLR_SELECTLABELDIALOG_HXX_
+
+/*************************************************************************
+ * history:
+ * $Log: not supported by cvs2svn $
+ *
+ * Revision 1.0 09.01.01 14:06:24 fs
+ ************************************************************************/
+
diff --git a/extensions/source/propctrlr/standardcontrol.cxx b/extensions/source/propctrlr/standardcontrol.cxx
new file mode 100644
index 000000000..ddc72097c
--- /dev/null
+++ b/extensions/source/propctrlr/standardcontrol.cxx
@@ -0,0 +1,1237 @@
+/*************************************************************************
+ *
+ * $RCSfile: standardcontrol.cxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: fs $ $Date: 2001-01-12 11:33:20 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (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.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc..
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#ifndef _EXTENSIONS_PROPCTRLR_STANDARDCONTROL_HXX_
+#include "standardcontrol.hxx"
+#endif
+#ifndef _EXTENSIONS_PROPCTRLR_BRWCONTROLLISTENER_HXX_
+#include "brwcontrollistener.hxx"
+#endif
+
+#ifndef _TOOLS_SOLMATH_HXX
+#include <tools/solmath.hxx>
+#endif
+#ifndef _SFX_OBJSH_HXX
+#include <sfx2/objsh.hxx>
+#endif
+
+//==================================================================
+// ugly dependencies for the OColorControl
+#ifndef _SVX_SVXIDS_HRC
+#include <svx/svxids.hrc>
+#endif
+#define ITEMID_COLOR_TABLE SID_COLOR_TABLE
+#ifndef _SVX_DRAWITEM_HXX
+#include <svx/drawitem.hxx>
+#endif
+#ifndef _XTABLE_HXX
+#include <xtable.hxx>
+#endif
+//==================================================================
+// ugly dependencies for the OMultilineEditControl
+#ifndef _SV_FLOATWIN_HXX
+#include <vcl/floatwin.hxx>
+#endif
+#ifndef _SVEDIT_HXX
+#include <svtools/svmedit.hxx>
+#endif
+#ifndef _SV_BUTTON_HXX
+#include <vcl/button.hxx>
+#endif
+#ifndef _SV_SVAPP_HXX
+#include <vcl/svapp.hxx>
+#endif
+//==================================================================
+
+//............................................................................
+namespace pcr
+{
+//............................................................................
+
+ //==================================================================
+ //= OTimeControl
+ //==================================================================
+ //------------------------------------------------------------------
+ OTimeControl::OTimeControl(Window* pParent, WinBits nWinStyle)
+ :OCommonBehaviourControl(this)
+ ,TimeField(pParent, nWinStyle)
+ {
+ SetStrictFormat(sal_True);
+ SetFormat(TIMEF_SEC);
+
+ SetModifyHdl(LINK(this, OCommonBehaviourControl, ModifiedHdl ));
+ SetGetFocusHdl(LINK(this, OCommonBehaviourControl, GetFocusHdl));
+ SetLoseFocusHdl(LINK(this, OCommonBehaviourControl, LoseFocusHdl));
+
+ autoSizeWindow();
+
+ EnableEmptyFieldValue(sal_True);
+ }
+
+ //------------------------------------------------------------------
+ void OTimeControl::SetProperty(const ::rtl::OUString &rString,sal_Bool bIsUnknown)
+ {
+ if (bIsUnknown || (rString == m_sStandardString))
+ {
+ SetText(String());
+ SetEmptyTime();
+ }
+ else
+ {
+ if (rString.getLength())
+ {
+ sal_uInt32 nTime = rString.toInt32();
+ SetTime(Time(nTime));
+ }
+ else
+ {
+ SetText(String());
+ SetEmptyTime();
+ }
+ }
+ }
+
+ //------------------------------------------------------------------
+ ::rtl::OUString OTimeControl::GetProperty() const
+ {
+ if (GetText().Len()>0)
+ {
+ sal_Int32 nTime = GetTime().GetTime();
+ return ::rtl::OUString::valueOf(nTime);
+ }
+ else
+ return ::rtl::OUString();
+ }
+
+ //------------------------------------------------------------------
+ long OTimeControl::PreNotify( NotifyEvent& rNEvt )
+ {
+ long nResult = OCommonBehaviourControl::handlePreNotify(rNEvt);
+ if (nResult) // handled
+ return nResult;
+
+ return TimeField::PreNotify(rNEvt);
+ }
+
+ //==================================================================
+ //= ODateControl
+ //==================================================================
+ //------------------------------------------------------------------
+ ODateControl::ODateControl(Window* pParent, WinBits nWinStyle)
+ :OCommonBehaviourControl(this)
+ ,DateField(pParent, nWinStyle)
+ {
+ SetStrictFormat(sal_True);
+
+ SetModifyHdl(LINK(this, OCommonBehaviourControl, ModifiedHdl ));
+ SetGetFocusHdl(LINK(this, OCommonBehaviourControl, GetFocusHdl));
+ SetLoseFocusHdl(LINK(this, OCommonBehaviourControl, LoseFocusHdl));
+
+ SetMin(Date(1,1,1600));
+ SetFirst(Date(1,1,1600));
+ SetLast(Date(1,1,9999));
+ SetMax(Date(1,1,9999));
+
+ autoSizeWindow();
+
+ SetExtFormat(XTDATEF_SYSTEM_SHORT_YYYY);
+ EnableEmptyFieldValue(sal_True);
+ }
+
+ //------------------------------------------------------------------
+ void ODateControl::SetProperty(const ::rtl::OUString& rString, sal_Bool bIsUnknown)
+ {
+ if (bIsUnknown || (rString==m_sStandardString))
+ {
+ SetText(String());
+ SetEmptyDate();
+ }
+ else
+ {
+ if (rString.getLength())
+ {
+ sal_uInt32 nDate = rString.toInt32();
+ SetDate(Date(nDate));
+ }
+ else
+ {
+ SetText(String());
+ SetEmptyDate();
+ }
+ }
+ }
+
+ //------------------------------------------------------------------
+ ::rtl::OUString ODateControl::GetProperty() const
+ {
+ if (GetText().Len()>0)
+ {
+ sal_Int32 nDate = GetDate().GetDate();
+ return ::rtl::OUString::valueOf(nDate);
+ }
+ else return ::rtl::OUString();
+ }
+
+ //------------------------------------------------------------------
+ long ODateControl::PreNotify( NotifyEvent& rNEvt )
+ {
+ long nResult = OCommonBehaviourControl::handlePreNotify(rNEvt);
+ if (nResult) // handled
+ return nResult;
+
+ return DateField::PreNotify(rNEvt);
+ }
+
+ //==================================================================
+ //= OEditControl
+ //==================================================================
+ //------------------------------------------------------------------
+ OEditControl::OEditControl(Window* _pParent, sal_Bool _bPW, WinBits _nWinStyle)
+ :OCommonBehaviourControl(this)
+ ,Edit(_pParent, _nWinStyle)
+ {
+ m_bIsPassword = _bPW;
+
+ SetModifyHdl(LINK(this, OCommonBehaviourControl, ModifiedHdl ));
+ SetGetFocusHdl(LINK(this, OCommonBehaviourControl, GetFocusHdl));
+ SetLoseFocusHdl(LINK(this, OCommonBehaviourControl, LoseFocusHdl));
+
+ autoSizeWindow();
+
+ if (m_bIsPassword)
+ SetMaxTextLen(1);
+ }
+
+ //------------------------------------------------------------------
+ void OEditControl::SetProperty(const ::rtl::OUString &rString,sal_Bool bIsUnknown)
+ {
+ String aStr;
+
+ if (!bIsUnknown)
+ aStr = rString.getStr();
+
+ if (m_bIsPassword)
+ if (aStr.Len())
+ {
+ sal_Unicode nCharacter = (sal_Unicode)aStr.ToInt32();
+ if (nCharacter)
+ aStr = String(&nCharacter, 1);
+ else
+ aStr = String();
+ }
+
+ SetText(aStr);
+ }
+
+ //------------------------------------------------------------------
+ ::rtl::OUString OEditControl::GetProperty() const
+ {
+ String aStr = GetText();
+
+ if (m_bIsPassword)
+ {
+ if (aStr.Len())
+ aStr = String::CreateFromInt32((sal_Int32)aStr.GetBuffer()[0]);
+ else
+ aStr = String('0');
+ }
+
+ return aStr;
+ }
+
+ //------------------------------------------------------------------
+ long OEditControl::PreNotify( NotifyEvent& rNEvt )
+ {
+ long nResult = OCommonBehaviourControl::handlePreNotify(rNEvt);
+ if (nResult) // handled
+ return nResult;
+
+ return Edit::PreNotify(rNEvt);
+ }
+
+ //------------------------------------------------------------------
+ void OEditControl::modified(Window* _pSource)
+ {
+ OCommonBehaviourControl::modified(_pSource);
+
+ // for pasword controls, we fire a commit for every single change
+ if (m_bIsPassword)
+ commitModified(_pSource);
+ }
+
+ //==================================================================
+ // class OCurrencyControl
+ //==================================================================
+ //------------------------------------------------------------------
+ OCurrencyControl::OCurrencyControl( Window* _pParent, sal_uInt16 _nDigits, WinBits _nWinStyle)
+ :OCommonBehaviourControl(this)
+ ,LongCurrencyField(_pParent, _nWinStyle)
+ {
+ SetModifyHdl(LINK( this, OCommonBehaviourControl, ModifiedHdl ));
+ SetGetFocusHdl(LINK( this, OCommonBehaviourControl, GetFocusHdl));
+ SetLoseFocusHdl(LINK( this, OCommonBehaviourControl, LoseFocusHdl));
+
+ International aInter=GetInternational();
+ aInter.SetCurrSymbol(String());
+ SetInternational(aInter);
+
+ double nMax = GetMax();
+ nMax = -nMax;
+ BigInt aBigInt(nMax);
+ SetMin(aBigInt);
+
+ SetStrictFormat(sal_True);
+ SetDecimalDigits(_nDigits);
+ EnableEmptyFieldValue(sal_True);
+
+ autoSizeWindow();
+ }
+
+ //------------------------------------------------------------------
+ static double ImplCalcLongValue( double nValue, sal_uInt16 nDigits )
+ {
+ double n = nValue;
+ for ( sal_uInt16 d = 0; d < nDigits; d++ )
+ n *= 10;
+ return n;
+ }
+
+ //------------------------------------------------------------------
+ static double ImplCalcDoubleValue( double nValue, sal_uInt16 nDigits )
+ {
+ double n = nValue;
+ for ( sal_uInt16 d = 0; d < nDigits; d++ )
+ n /= 10;
+ return n;
+ }
+
+ //------------------------------------------------------------------
+ void OCurrencyControl::SetProperty(const ::rtl::OUString &rString,sal_Bool bIsUnknown)
+ {
+ ::rtl::OUString aStr;
+
+ if (bIsUnknown || (rString == m_sStandardString))
+ {
+ SetText(String());
+ SetEmptyFieldValue();
+ }
+ else
+ {
+ if (rString.getLength())
+ {
+ int nErr = 0;
+ double nValue = SolarMath::StringToDouble(rString, GetInternational(), nErr);
+ BigInt aBInt = ImplCalcLongValue(nValue, GetDecimalDigits());
+ SetValue(aBInt);
+ }
+ else
+ SetEmptyFieldValue();
+ }
+ }
+
+
+ //------------------------------------------------------------------
+ ::rtl::OUString OCurrencyControl::GetProperty() const
+ {
+ if (GetText().Len()>0)
+ {
+ String aBuffer;
+ BigInt aBInt=GetValue();
+ double nValue = ImplCalcDoubleValue(aBInt,GetDecimalDigits());
+ SolarMath::DoubleToString(aBuffer,nValue,'F',GetDecimalDigits());
+
+ return aBuffer;
+ }
+ else
+ return ::rtl::OUString();
+
+ }
+
+ //------------------------------------------------------------------
+ long OCurrencyControl::PreNotify( NotifyEvent& rNEvt )
+ {
+ long nResult = OCommonBehaviourControl::handlePreNotify(rNEvt);
+ if (nResult) // handled
+ return nResult;
+
+ return LongCurrencyField::PreNotify(rNEvt);
+ }
+
+ //==================================================================
+ //= ONumericControl
+ //==================================================================
+ //------------------------------------------------------------------
+ ONumericControl::ONumericControl( Window* _pParent, sal_uInt16 _nDigits, WinBits _nWinStyle)
+ :OCommonBehaviourControl(this)
+ ,NumericField(_pParent, _nWinStyle)
+ {
+ SetModifyHdl(LINK( this, OCommonBehaviourControl, ModifiedHdl ));
+ SetGetFocusHdl(LINK( this, OCommonBehaviourControl, GetFocusHdl));
+ SetLoseFocusHdl(LINK( this, OCommonBehaviourControl, LoseFocusHdl));
+
+ SetDecimalDigits(_nDigits);
+ EnableEmptyFieldValue(sal_True);
+ SetMin(-GetMax());
+ SetStrictFormat(sal_True);
+
+ autoSizeWindow();
+ }
+
+ //------------------------------------------------------------------
+ void ONumericControl::SetProperty(const ::rtl::OUString &rString,sal_Bool bIsUnknown)
+ {
+ if (bIsUnknown || (rString == m_sStandardString))
+ {
+ SetText(String());
+ SetEmptyFieldValue();
+ }
+ else
+ {
+ if (rString.getLength()>0)
+ SetValue(rString.toInt32());
+ else
+ SetEmptyFieldValue();
+ }
+ }
+
+ //------------------------------------------------------------------
+ ::rtl::OUString ONumericControl::GetProperty() const
+ {
+ if (GetText().Len() != 0)
+ return ::rtl::OUString::valueOf((sal_Int32)GetValue());
+ else
+ return ::rtl::OUString();
+
+ }
+
+ //------------------------------------------------------------------
+ long ONumericControl::PreNotify( NotifyEvent& rNEvt )
+ {
+ long nResult = OCommonBehaviourControl::handlePreNotify(rNEvt);
+ if (nResult) // handled
+ return nResult;
+
+ return NumericField::PreNotify(rNEvt);
+ }
+
+ //==================================================================
+ //= OColorControl
+ //==================================================================
+ #define LB_DEFAULT_COUNT 9
+ //------------------------------------------------------------------
+ String MakeHexStr(sal_uInt32 nVal, sal_uInt32 nLength)
+ {
+ String aStr;
+ while (nVal>0)
+ {
+ sal_uInt16 nDigit=sal_uInt16(nVal & 0x000F);
+ char c=char(nVal & 0x000F);
+ nVal>>=4;
+ if (c<=9) c+='0';
+ else c+='A'-10;
+ aStr.Insert(c,0);
+ }
+ while (aStr.Len() < nLength) aStr.Insert('0',0);
+ return aStr;
+ }
+
+ //------------------------------------------------------------------
+ OColorControl::OColorControl(Window* pParent, WinBits nWinStyle)
+ :OCommonBehaviourControl(this)
+ ,ColorListBox(pParent, nWinStyle)
+ {
+ SetSelectHdl(LINK( this, OCommonBehaviourControl, ModifiedHdl ));
+ SetGetFocusHdl(LINK( this, OCommonBehaviourControl, GetFocusHdl));
+ SetLoseFocusHdl(LINK( this, OCommonBehaviourControl, LoseFocusHdl));
+
+
+ // initialize the color listbox
+ SfxObjectShell* pDocSh = SfxObjectShell::Current();
+ DBG_ASSERT( pDocSh, "OColorControl::OColorControl: no doc shell!");
+
+ if (pDocSh)
+ {
+ SvxColorTableItem aItem( *(const SvxColorTableItem*)( pDocSh->GetItem( SID_COLOR_TABLE ) ) );
+ XColorTable* pColorTbl = aItem.GetColorTable();
+ DBG_ASSERT(pColorTbl, "OColorControl::OColorControl: no color table!");
+
+ if (pColorTbl)
+ {
+ for (sal_uInt16 i = 0; i < pColorTbl->Count(); ++i)
+ {
+ XColorEntry* pEntry = pColorTbl->Get( i );
+ InsertEntry( pEntry->GetColor(), pEntry->GetName() );
+ }
+ }
+ }
+
+ SetUpdateMode( sal_False);
+
+ if (m_sStandardString.getLength()>0)
+ InsertEntry(m_sStandardString);
+
+ SetUpdateMode( sal_True );
+ SelectEntryPos(0);
+ }
+
+ //------------------------------------------------------------------
+ void OColorControl::SetCtrSize(const Size& _rSize)
+ {
+ OCommonBehaviourControl::SetCtrSize(_rSize);
+
+ sal_uInt16 nCount = GetEntryCount();
+ if (nCount>LB_DEFAULT_COUNT)
+ nCount=LB_DEFAULT_COUNT;
+ SetDropDownLineCount(nCount);
+ }
+
+ //------------------------------------------------------------------
+ void OColorControl::SetProperty(const ::rtl::OUString &rString,sal_Bool bIsUnknown)
+ {
+ if (!bIsUnknown)
+ {
+ if ((rString.getLength() != 0) && (rString != m_sStandardString))
+ {
+ sal_uInt32 nColor = rString.toInt32();
+ Color aRgbCol((ColorData)nColor);
+
+ if (!IsEntrySelected(aRgbCol))
+ {
+ SelectEntry(aRgbCol);
+ if (!IsEntrySelected(aRgbCol))
+ { // the given color is not part of the list -> insert a new entry with the hex code of the color
+ String aStr = String::CreateFromAscii("0x");
+ aStr += MakeHexStr(nColor,8);
+ InsertEntry(aRgbCol, aStr);
+ SelectEntry(aRgbCol);
+ }
+ }
+ }
+ else
+ SelectEntryPos(0);
+ }
+ else
+ SetNoSelection();
+ }
+
+ //------------------------------------------------------------------
+ ::rtl::OUString OColorControl::GetProperty()const
+ {
+ ::rtl::OUString aResult;
+ if (GetSelectEntryCount()>0)
+ {
+ aResult=GetSelectEntry();
+ if (aResult != m_sStandardString)
+ {
+ Color aRgbCol = GetSelectEntryColor();
+ sal_Int32 nColor = aRgbCol.GetColor();
+ aResult = ::rtl::OUString::valueOf(nColor);
+ }
+ }
+ return aResult;
+ }
+
+ //------------------------------------------------------------------
+ sal_Bool OColorControl::HasList()
+ {
+ return sal_True;
+ }
+
+ //------------------------------------------------------------------
+ void OColorControl::ClearList()
+ {
+ Clear();
+ }
+
+ //------------------------------------------------------------------
+ void OColorControl::InsertCtrEntry( const ::rtl::OUString& _rString, sal_uInt16 _nPos)
+ {
+ InsertEntry(_rString, _nPos);
+ }
+
+ //------------------------------------------------------------------
+ long OColorControl::PreNotify( NotifyEvent& rNEvt )
+ {
+ long nResult = OCommonBehaviourControl::handlePreNotify(rNEvt);
+ if (nResult) // handled
+ return nResult;
+
+ return ColorListBox::PreNotify(rNEvt);
+ }
+
+ //------------------------------------------------------------------
+ void OColorControl::modified(Window* _pSource)
+ {
+ OCommonBehaviourControl::modified(_pSource);
+
+ if (!IsTravelSelect())
+ // fire a commit
+ commitModified(_pSource);
+ }
+
+ //==================================================================
+ //= OListboxControl
+ //==================================================================
+ //------------------------------------------------------------------
+ OListboxControl::OListboxControl( Window* pParent, WinBits nWinStyle)
+ :OCommonBehaviourControl(this)
+ ,ListBox(pParent, nWinStyle)
+ {
+ SetDropDownLineCount(9);
+
+ SetSelectHdl(LINK( this, OCommonBehaviourControl, ModifiedHdl ));
+ SetGetFocusHdl(LINK( this, OCommonBehaviourControl, GetFocusHdl));
+ SetLoseFocusHdl(LINK( this, OCommonBehaviourControl, LoseFocusHdl));
+ }
+
+ //------------------------------------------------------------------
+ void OListboxControl::SetCtrSize(const Size& rSize)
+ {
+ OCommonBehaviourControl::SetCtrSize(rSize);
+
+ sal_uInt16 nCount = GetEntryCount();
+ if (nCount>LB_DEFAULT_COUNT)
+ nCount=LB_DEFAULT_COUNT;
+ SetDropDownLineCount(nCount);
+ }
+
+ //------------------------------------------------------------------
+ ::rtl::OUString OListboxControl::GetProperty()const
+ {
+ if (GetSelectEntryCount()>0)
+ return GetSelectEntry();
+ return String();
+ }
+
+ //------------------------------------------------------------------
+ void OListboxControl::SetProperty(const ::rtl::OUString &rString,sal_Bool bIsUnknown)
+ {
+ if (!bIsUnknown)
+ {
+ String aTmp = rString;
+ if (aTmp != GetSelectEntry())
+ SelectEntry(aTmp);
+
+ if (!IsEntrySelected(aTmp))
+ {
+ if (!rString.getLength())
+ {
+ SelectEntry(m_sStandardString);
+ }
+ else
+ {
+ InsertEntry(aTmp, 0);
+ SelectEntry(aTmp);
+ }
+ }
+ }
+ else
+ {
+ SetNoSelection();
+ }
+ }
+
+ //------------------------------------------------------------------
+ sal_Bool OListboxControl::HasList()
+ {
+ return sal_True;
+ }
+
+ //------------------------------------------------------------------
+ void OListboxControl::ClearList()
+ {
+ Clear();
+ }
+
+ //------------------------------------------------------------------
+ void OListboxControl::InsertCtrEntry( const ::rtl::OUString& rString,sal_uInt16 nPos)
+ {
+ InsertEntry(rString,nPos);
+ }
+
+ //------------------------------------------------------------------
+ long OListboxControl::PreNotify( NotifyEvent& rNEvt )
+ {
+ long nResult = OCommonBehaviourControl::handlePreNotify(rNEvt);
+ if (nResult) // handled
+ return nResult;
+
+ return ListBox::PreNotify(rNEvt);
+ }
+
+ //------------------------------------------------------------------
+ void OListboxControl::modified(Window* _pSource)
+ {
+ OCommonBehaviourControl::modified(_pSource);
+
+ if (!IsTravelSelect())
+ // fire a commit
+ commitModified(_pSource);
+ }
+
+ //==================================================================
+ //= OComboboxControl
+ //==================================================================
+ //------------------------------------------------------------------
+ OComboboxControl::OComboboxControl( Window* pParent, WinBits nWinStyle)
+ :OCommonBehaviourControl(this)
+ ,ComboBox(pParent,nWinStyle)
+ {
+ SetModifyHdl(LINK( this, OCommonBehaviourControl, ModifiedHdl ));
+ SetGetFocusHdl(LINK( this, OCommonBehaviourControl, GetFocusHdl));
+ SetLoseFocusHdl(LINK( this, OCommonBehaviourControl, LoseFocusHdl));
+
+ SetDropDownLineCount(9);
+ }
+
+ //------------------------------------------------------------------
+ void OComboboxControl::SetCtrSize(const Size& rSize)
+ {
+ OCommonBehaviourControl::SetCtrSize(rSize);
+
+ sal_uInt16 nCount = GetEntryCount();
+ if (nCount > LB_DEFAULT_COUNT)
+ nCount = LB_DEFAULT_COUNT;
+ SetDropDownLineCount(nCount);
+ }
+
+ //------------------------------------------------------------------
+ void OComboboxControl::SetProperty(const ::rtl::OUString &rString,sal_Bool bIsUnknown)
+ {
+ ::rtl::OUString aStr;
+ if (!bIsUnknown)
+ aStr = rString;
+ SetText(aStr);
+ }
+
+ //------------------------------------------------------------------
+ ::rtl::OUString OComboboxControl::GetProperty() const
+ {
+ return GetText();
+ }
+
+ //------------------------------------------------------------------
+ sal_Bool OComboboxControl::HasList()
+ {
+ return sal_True;
+ }
+
+ //------------------------------------------------------------------
+ void OComboboxControl::ClearList()
+ {
+ Clear();
+ }
+
+ //------------------------------------------------------------------
+ void OComboboxControl::InsertCtrEntry( const ::rtl::OUString& rString,sal_uInt16 nPos)
+ {
+ InsertEntry(rString,nPos);
+ }
+
+ //------------------------------------------------------------------
+ long OComboboxControl::PreNotify( NotifyEvent& rNEvt )
+ {
+ long nResult = OCommonBehaviourControl::handlePreNotify(rNEvt);
+ if (nResult) // handled
+ return nResult;
+
+ return ComboBox::PreNotify(rNEvt);
+ }
+
+ //==================================================================
+ //= OMultilineEditControl
+ //==================================================================
+ class OMultilineFloatingEdit : public FloatingWindow
+ {
+ private:
+ MultiLineEdit m_aImplEdit;
+
+ protected:
+ virtual void Resize();
+
+ public:
+ OMultilineFloatingEdit(Window* _pParen);
+ MultiLineEdit* getEdit() { return &m_aImplEdit; }
+
+ protected:
+ virtual long PreNotify(NotifyEvent& _rNEvt);
+ };
+
+ //------------------------------------------------------------------
+ OMultilineFloatingEdit::OMultilineFloatingEdit(Window* _pParent)
+ :FloatingWindow(_pParent, WB_BORDER)
+ ,m_aImplEdit(this, WB_VSCROLL|WB_IGNORETAB|WB_NOBORDER)
+ {
+ m_aImplEdit.Show();
+ }
+
+ //------------------------------------------------------------------
+ void OMultilineFloatingEdit::Resize()
+ {
+ m_aImplEdit.SetSizePixel(GetOutputSizePixel());
+ }
+
+ //------------------------------------------------------------------
+ long OMultilineFloatingEdit::PreNotify(NotifyEvent& _rNEvt)
+ {
+ long nResult = sal_True;
+
+ sal_uInt16 nSwitch = _rNEvt.GetType();
+ if (EVENT_KEYINPUT == nSwitch)
+ {
+ const KeyCode& aKeyCode = _rNEvt.GetKeyEvent()->GetKeyCode();
+ sal_uInt16 nKey = aKeyCode.GetCode();
+
+ if ( ( (KEY_RETURN == nKey)
+ && !aKeyCode.IsShift()
+ )
+ || ( (KEY_UP == nKey)
+ && aKeyCode.IsMod2()
+ )
+ )
+ {
+ EndPopupMode();
+ }
+ else
+ nResult=FloatingWindow::PreNotify(_rNEvt);
+ }
+ else
+ nResult=FloatingWindow::PreNotify(_rNEvt);
+
+ return nResult;
+ }
+
+ //==================================================================
+ //= OMultilineEditControl
+ //==================================================================
+ #define STD_HEIGHT 100
+ //------------------------------------------------------------------
+ OMultilineEditControl::OMultilineEditControl( Window* pParent,sal_Bool bEd, WinBits nWinStyle)
+ :OCommonBehaviourControl(this)
+ ,Control(pParent,((nWinStyle | WB_DIALOGCONTROL)& (~WB_READONLY| ~WB_DROPDOWN)))
+ ,m_pFloatingEdit(NULL)
+ ,m_pDropdownButton(NULL)
+ ,m_pImplEdit(NULL)
+ ,m_bDropdown(sal_False)
+ ,m_bEdit(bEd)
+ {
+ m_pImplEdit = new MultiLineEdit(this,WB_TABSTOP|WB_IGNORETAB| WB_NOBORDER| nWinStyle& WB_READONLY);
+ m_pImplEdit->Show();
+
+ if (nWinStyle & WB_DROPDOWN)
+ {
+ m_pDropdownButton = new PushButton( this, WB_NOLIGHTBORDER | WB_RECTSTYLE | WB_NOTABSTOP);
+ m_pDropdownButton->SetSymbol(SYMBOL_SPIN_DOWN);
+ m_pDropdownButton->SetClickHdl( LINK( this, OMultilineEditControl, DropDownHdl ) );
+ m_pDropdownButton->Show();
+ }
+ SetBackground(m_pImplEdit->GetBackground());
+
+ m_pFloatingEdit = new OMultilineFloatingEdit(this); //FloatingWindow
+
+ m_pFloatingEdit->SetPopupModeEndHdl(LINK( this, OMultilineEditControl, ReturnHdl ));
+
+ m_pFloatingEdit->getEdit()->SetModifyHdl(LINK( this, OCommonBehaviourControl, ModifiedHdl));
+ m_pImplEdit->SetGetFocusHdl(LINK( this, OCommonBehaviourControl, GetFocusHdl));
+ m_pImplEdit->SetModifyHdl(LINK( this, OCommonBehaviourControl, ModifiedHdl));
+ m_pImplEdit->SetLoseFocusHdl(LINK( this, OCommonBehaviourControl, LoseFocusHdl));
+
+ autoSizeWindow();
+ }
+
+ //------------------------------------------------------------------
+ OMultilineEditControl::~OMultilineEditControl()
+ {
+ delete m_pFloatingEdit;
+ delete m_pImplEdit;
+ delete m_pDropdownButton;
+ }
+
+ //------------------------------------------------------------------
+ sal_Bool OMultilineEditControl::ShowDropDown( sal_Bool bShow )
+ {
+ if (bShow)
+ {
+ Point aMePos= GetPosPixel();
+ aMePos = GetParent()->OutputToScreenPixel( aMePos );
+ Size aSize=GetSizePixel();
+ Rectangle aRect(aMePos,aSize);
+ aSize.Height() = STD_HEIGHT;
+ m_pFloatingEdit->SetOutputSizePixel(aSize);
+ m_pFloatingEdit->StartPopupMode( aRect, FLOATWIN_POPUPMODE_DOWN );
+
+ m_pFloatingEdit->Show();
+ m_pFloatingEdit->getEdit()->GrabFocus();
+ m_pFloatingEdit->getEdit()->SetSelection(Selection(m_pFloatingEdit->getEdit()->GetText().Len()));
+ m_bDropdown=sal_True;
+ if (m_bEdit)
+ m_pFloatingEdit->getEdit()->SetText(m_pImplEdit->GetText());
+ m_pImplEdit->SetText(String());
+ }
+ else
+ {
+ m_pFloatingEdit->Hide();
+ m_pFloatingEdit->Invalidate();
+ m_pFloatingEdit->Update();
+
+ String aOutput;
+ String aStr=m_pFloatingEdit->getEdit()->GetText();
+
+ if (aStr.Len()>0)
+ {
+ sal_Int32 nCount = aStr.GetTokenCount('\n');
+
+ String aInput=aStr.GetToken(0,'\n' );
+
+ if (m_bEdit)
+ {
+ aOutput=aStr;
+ }
+ else
+ {
+ if (aInput.Len()>0)
+ {
+ aOutput+='\"';
+ aOutput+=aInput;
+ aOutput+='\"';
+ }
+
+ for (sal_Int32 i=1; i<nCount; ++i)
+ {
+ aInput = aStr.GetToken((sal_uInt16)i, '\n');
+ if (aInput.Len()>0)
+ {
+ aOutput += ';';
+ aOutput += '\"';
+ aOutput += aInput;
+ aOutput += '\"';
+ }
+ }
+ }
+ }
+
+ m_pImplEdit->SetText(aOutput);
+ GetParent()->Invalidate(INVALIDATE_CHILDREN);
+ m_bDropdown=sal_False;
+ m_pImplEdit->GrabFocus();
+ }
+ return m_bDropdown;
+
+ }
+
+
+ //------------------------------------------------------------------
+ void OMultilineEditControl::Resize()
+ {
+ Size aOutSz = GetOutputSizePixel();
+
+ if (m_pDropdownButton!=NULL)
+ {
+ long nSBWidth = GetSettings().GetStyleSettings().GetScrollBarSize();
+ nSBWidth = CalcZoom( nSBWidth );
+ m_pImplEdit->SetPosSizePixel( 0, 1, aOutSz.Width() - nSBWidth, aOutSz.Height()-2 );
+ m_pDropdownButton->SetPosSizePixel( aOutSz.Width() - nSBWidth, 0, nSBWidth, aOutSz.Height() );
+ }
+ else
+ m_pImplEdit->SetPosSizePixel( 0, 1, aOutSz.Width(), aOutSz.Height()-2 );
+ }
+
+ //------------------------------------------------------------------
+ void OMultilineEditControl::SetLocked(sal_Bool bFlag)
+ {
+ m_bLocked = bFlag;
+ Font aFont = GetFont();
+
+ m_pFloatingEdit->getEdit()->SetReadOnly(bFlag);
+ if (m_bLocked)
+ {
+ aFont.SetColor(Color(COL_GRAY));
+ }
+ else
+ {
+ aFont = GetParent()->GetFont();
+ }
+ SetFont(aFont);
+ }
+
+ //------------------------------------------------------------------
+ void OMultilineEditControl::SetProperty(const ::rtl::OUString &rString,sal_Bool bIsUnknown)
+ {
+ String aStr;
+
+ if (!bIsUnknown)
+ aStr=rString.getStr();
+
+ m_pFloatingEdit->getEdit()->SetText(aStr);
+
+ if (m_bEdit)
+ {
+ m_pImplEdit->SetText(aStr);
+ }
+ else
+ {
+ String aOutput;
+
+ if (aStr.Len()>0)
+ {
+ if (aStr.Len()>0)
+ {
+ sal_Int32 nCount = aStr.GetTokenCount('\n');
+
+ String aInput=aStr.GetToken(0,'\n' );
+ if (aInput.Len()>0)
+ {
+ aOutput+='\"';
+ aOutput+=aInput;
+ aOutput+='\"';
+ }
+
+ for(sal_Int32 i=1;i<nCount;i++)
+ {
+ aInput=aStr.GetToken((sal_uInt16)i,'\n' );
+ if (aInput.Len()>0)
+ {
+ aOutput += ';';
+ aOutput += '\"';
+ aOutput += aInput;
+ aOutput += '\"';
+ }
+ }
+ }
+ }
+ m_pImplEdit->SetText(aOutput);
+ }
+ }
+
+ //------------------------------------------------------------------
+ ::rtl::OUString OMultilineEditControl::GetProperty() const
+ {
+ if (m_bEdit)
+ return m_pImplEdit->GetText();
+ else
+ return m_pFloatingEdit->getEdit()->GetText();
+ }
+
+ //------------------------------------------------------------------
+ void OMultilineEditControl::GetFocus()
+ {
+ m_pImplEdit->GetFocus();
+ }
+
+ //------------------------------------------------------------------
+ long OMultilineEditControl::PreNotify( NotifyEvent& rNEvt )
+ {
+ long nResult=sal_True;
+
+ sal_uInt16 nSwitch=rNEvt.GetType();
+ if (nSwitch==EVENT_KEYINPUT)
+ {
+ const KeyCode& aKeyCode=rNEvt.GetKeyEvent()->GetKeyCode();
+ sal_uInt16 nKey=aKeyCode.GetCode();
+
+ if (nKey==KEY_RETURN &&!aKeyCode.IsShift())
+ {
+ LoseFocusHdl(m_pImplEdit);
+ m_bDir = sal_True;
+ if (getListener())
+ getListener()->TravelLine(this);
+ }
+ else if (nKey==KEY_DOWN && aKeyCode.IsMod2())
+ {
+ Invalidate();
+ ShowDropDown(sal_True);
+ }
+ else if (KEYGROUP_CURSOR==aKeyCode.GetGroup()|| nKey==KEY_HELP
+ || aKeyCode.GetGroup()==KEYGROUP_FKEYS || m_bEdit)
+ {
+ nResult=Control::PreNotify(rNEvt);
+ }
+ else if (!m_bEdit)
+ {
+ Selection aSel=m_pImplEdit->GetSelection();
+ if (aSel.Min()!=aSel.Max())
+ {
+ aSel.Min()=FindPos(aSel.Min());
+ aSel.Max()=FindPos(aSel.Max());
+ }
+ else
+ {
+ aSel.Min()=FindPos(aSel.Min());
+ aSel.Max()=aSel.Min();
+ }
+ Invalidate();
+ ShowDropDown(sal_True);
+ m_pFloatingEdit->getEdit()->GrabFocus();
+ m_pFloatingEdit->getEdit()->SetSelection(aSel);
+ Window* pFocusWin = Application::GetFocusWindow();
+ pFocusWin->KeyInput(*rNEvt.GetKeyEvent());
+ }
+ }
+ else
+ nResult=Control::PreNotify(rNEvt);
+
+ return nResult;
+ }
+
+ //------------------------------------------------------------------
+ long OMultilineEditControl::FindPos(long nSinglePos)
+ {
+ sal_uInt16 nPos=0;
+ sal_uInt16 nDiff=0;
+ String aOutput;
+ String aStr=m_pFloatingEdit->getEdit()->GetText();
+ String aStr1=m_pImplEdit->GetText();
+
+ if ((nSinglePos == 0) || (nSinglePos == aStr1.Len()))
+ {
+ return nSinglePos;
+ }
+
+ if (aStr.Len()>0)
+ {
+ sal_Int32 nCount = aStr.GetTokenCount('\n');
+
+ String aInput = aStr.GetToken(0,'\n' );
+
+ if (aInput.Len()>0)
+ {
+ aOutput+='\"';
+ nDiff++;
+ aOutput+=aInput;
+ aOutput+='\"';
+ }
+
+ if (nSinglePos <= aOutput.Len())
+ {
+ nPos=nSinglePos-nDiff;
+ }
+ else
+ {
+ for (sal_Int32 i=1; i<nCount; ++i)
+ {
+ aInput=aStr.GetToken((sal_uInt16)i, '\n');
+ if (aInput.Len()>0)
+ {
+ aOutput += ';';
+ aOutput += '\"';
+ nDiff += 2;
+ aOutput += aInput;
+ aOutput += '\"';
+
+ if (nSinglePos <= aOutput.Len())
+ {
+ nPos=nSinglePos-nDiff;
+ break;
+ }
+ }
+ }
+ }
+ }
+ return nPos;
+ }
+
+ //------------------------------------------------------------------
+ IMPL_LINK( OMultilineEditControl, ReturnHdl, OMultilineFloatingEdit*, pMEd)
+ {
+
+ String aStr = m_pFloatingEdit->getEdit()->GetText();
+ String aStr2 = m_pImplEdit->GetText();
+ ShowDropDown(sal_False);
+
+ if (aStr!=aStr2 || !m_bEdit)
+ {
+ if (m_bModified)
+ modified(m_pImplEdit);
+ commitModified(m_pImplEdit);
+ }
+
+ return 0;
+ }
+
+ //------------------------------------------------------------------
+ IMPL_LINK( OMultilineEditControl, DropDownHdl, PushButton*, pPb )
+ {
+ ShowDropDown(!m_bDropdown);
+ return 0;
+ }
+
+ //------------------------------------------------------------------
+ void OMultilineEditControl::modified(Window* _pSource)
+ {
+ if (_pSource == m_pFloatingEdit->getEdit())
+ { // no listener notification in this case, just the set flag
+ m_bModified = sal_True;
+ }
+ else
+ OCommonBehaviourControl::modified(_pSource);
+ }
+
+//............................................................................
+} // namespace pcr
+//............................................................................
+
+/*************************************************************************
+ * history:
+ * $Log: not supported by cvs2svn $
+ *
+ * Revision 1.0 09.01.01 10:28:46 fs
+ ************************************************************************/
+
diff --git a/extensions/source/propctrlr/standardcontrol.hxx b/extensions/source/propctrlr/standardcontrol.hxx
new file mode 100644
index 000000000..47869b8dd
--- /dev/null
+++ b/extensions/source/propctrlr/standardcontrol.hxx
@@ -0,0 +1,304 @@
+/*************************************************************************
+ *
+ * $RCSfile: standardcontrol.hxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: fs $ $Date: 2001-01-12 11:33:33 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (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.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc..
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#ifndef _EXTENSIONS_PROPCTRLR_STANDARDCONTROL_HXX_
+#define _EXTENSIONS_PROPCTRLR_STANDARDCONTROL_HXX_
+
+#ifndef _EXTENSIONS_PROPCTRLR_COMMONCONTROL_HXX_
+#include "commoncontrol.hxx"
+#endif
+#ifndef _SV_FIELD_HXX
+#include <vcl/field.hxx>
+#endif
+#ifndef _LONGCURR_HXX
+#include <vcl/longcurr.hxx>
+#endif
+#ifndef _CTRLBOX_HXX
+#include <svtools/ctrlbox.hxx>
+#endif
+#ifndef _SV_LSTBOX_HXX
+#include <vcl/lstbox.hxx>
+#endif
+#ifndef _SV_COMBOBOX_HXX
+#include <vcl/combobox.hxx>
+#endif
+
+class PushButton;
+class MultiLineEdit;
+//............................................................................
+namespace pcr
+{
+//............................................................................
+
+ //========================================================================
+ //= OTimeControl
+ //========================================================================
+ class OTimeControl : public OCommonBehaviourControl, TimeField
+ {
+ protected:
+ virtual long PreNotify( NotifyEvent& rNEvt );
+
+ public:
+ OTimeControl( Window* pParent, WinBits nWinStyle = WB_TABSTOP);
+
+ virtual void SetProperty(const ::rtl::OUString &rString,sal_Bool bIsUnknown=sal_False);
+ virtual ::rtl::OUString GetProperty()const;
+ };
+
+ //========================================================================
+ //= ODateControl
+ //========================================================================
+ class ODateControl : public OCommonBehaviourControl, DateField
+ {
+ protected:
+ virtual long PreNotify( NotifyEvent& rNEvt );
+
+ public:
+ ODateControl( Window* pParent, WinBits nWinStyle = WB_TABSTOP);
+
+ virtual void SetProperty(const ::rtl::OUString &rString,sal_Bool bIsUnknown=sal_False);
+ virtual ::rtl::OUString GetProperty()const;
+ };
+
+ //========================================================================
+ //= OEditControl
+ //========================================================================
+ class OEditControl : public OCommonBehaviourControl, Edit
+ {
+ protected:
+ sal_Bool m_bIsPassword : 1;
+
+ protected:
+ virtual long PreNotify( NotifyEvent& rNEvt );
+
+ public:
+ OEditControl(Window* _pParent, sal_Bool _bPassWord, WinBits nWinStyle = WB_TABSTOP);
+
+ virtual void SetProperty(const ::rtl::OUString &rString,sal_Bool bIsUnknown=sal_False);
+ virtual ::rtl::OUString GetProperty()const;
+
+ protected:
+ virtual void modified(Window* _pSource);
+ };
+
+ //========================================================================
+ //= OCurrencyControl
+ //========================================================================
+ class OCurrencyControl : public OCommonBehaviourControl, LongCurrencyField
+ {
+ protected:
+ virtual long PreNotify( NotifyEvent& rNEvt );
+
+ public:
+ OCurrencyControl( Window* pParent,sal_uInt16 nDigits,
+ WinBits nWinStyle = WB_TABSTOP);
+
+ virtual void SetProperty(const ::rtl::OUString &rString,sal_Bool bIsUnknown=sal_False);
+ virtual ::rtl::OUString GetProperty()const;
+ };
+
+ //========================================================================
+ //= ONumericControl
+ //========================================================================
+ class ONumericControl : public OCommonBehaviourControl, NumericField
+ {
+ protected:
+ virtual long PreNotify( NotifyEvent& rNEvt );
+
+ public:
+ ONumericControl( Window* pParent,sal_uInt16 nDigits, WinBits nWinStyle = WB_TABSTOP);
+
+ virtual void SetProperty(const ::rtl::OUString &rString,sal_Bool bIsUnknown=sal_False);
+ virtual ::rtl::OUString GetProperty()const;
+
+ void SetMin(sal_Int32 _nMin) { NumericField::SetMin(_nMin); }
+ void SetMax(sal_Int32 _nMax) { NumericField::SetMax(_nMax); }
+ };
+
+ //========================================================================
+ //= OColorControl
+ //========================================================================
+ class OColorControl : public OCommonBehaviourControl, ColorListBox
+ {
+ protected:
+ virtual long PreNotify( NotifyEvent& rNEvt );
+
+ public:
+ OColorControl( Window* pParent, WinBits nWinStyle = WB_TABSTOP |WB_DROPDOWN|WB_AUTOSIZE);
+
+ // property value handling
+ virtual void SetProperty(const ::rtl::OUString &rString,sal_Bool bIsUnknown=sal_False);
+ virtual ::rtl::OUString GetProperty()const;
+
+ // list handling
+ virtual sal_Bool HasList();
+ virtual void ClearList();
+ virtual void InsertCtrEntry( const ::rtl::OUString& rString, sal_uInt16 nPos = LISTBOX_APPEND );
+
+ virtual void SetCtrSize(const Size& rSize);
+
+ protected:
+ virtual void modified(Window* _pSource);
+ };
+
+ //========================================================================
+ //= OListboxControl
+ //========================================================================
+ class OListboxControl : public OCommonBehaviourControl, ListBox
+ {
+ protected:
+ virtual long PreNotify( NotifyEvent& rNEvt );
+
+ public:
+ OListboxControl( Window* pParent, WinBits nWinStyle = WB_TABSTOP|WB_SORT|WB_DROPDOWN|WB_AUTOSIZE);
+
+ // property value handling
+ virtual void SetProperty(const ::rtl::OUString &rString,sal_Bool bIsUnknown=sal_False);
+ virtual ::rtl::OUString GetProperty()const;
+
+ // list handling
+ virtual sal_Bool HasList();
+ virtual void ClearList();
+ virtual void InsertCtrEntry( const ::rtl::OUString& rString, sal_uInt16 nPos = LISTBOX_APPEND );
+
+ virtual void SetCtrSize(const Size& rSize);
+
+ protected:
+ virtual void modified(Window* _pSource);
+ };
+
+ //========================================================================
+ //= OComboboxControl
+ //========================================================================
+ class OComboboxControl : public OCommonBehaviourControl, ComboBox
+ {
+ protected:
+ virtual long PreNotify( NotifyEvent& rNEvt );
+
+
+ public:
+ OComboboxControl( Window* pParent,
+ WinBits nWinStyle = WB_TABSTOP | WB_SORT | WB_DROPDOWN | WB_AUTOSIZE);
+
+ // property value handling
+ virtual void SetProperty(const ::rtl::OUString &rString,sal_Bool bIsUnknown=sal_False);
+ virtual ::rtl::OUString GetProperty()const;
+
+ // list handling
+ virtual sal_Bool HasList();
+ virtual void ClearList();
+ virtual void InsertCtrEntry( const ::rtl::OUString& rString, sal_uInt16 nPos = LISTBOX_APPEND );
+
+ virtual void SetCtrSize(const Size& rSize);
+
+ };
+
+ //========================================================================
+ //= OMultilineEditControl
+ //========================================================================
+ class OMultilineFloatingEdit;
+ class OMultilineEditControl : public OCommonBehaviourControl, Control
+ {
+ OMultilineFloatingEdit* m_pFloatingEdit;
+ MultiLineEdit* m_pImplEdit;
+ PushButton* m_pDropdownButton;
+ sal_Bool m_bDropdown :1;
+ sal_Bool m_bEdit :1;
+
+ DECL_LINK(ReturnHdl,OMultilineFloatingEdit*);
+ DECL_LINK(DropDownHdl, PushButton*);
+
+ protected:
+
+ virtual long PreNotify( NotifyEvent& rNEvt );
+ void Resize();
+
+ long FindPos(long nSinglePos);
+
+ public:
+ OMultilineEditControl( Window* pParent,sal_Bool bEdit,
+ WinBits nWinStyle = WB_TABSTOP | WB_DROPDOWN);
+
+ ~OMultilineEditControl();
+
+ virtual void GetFocus();
+ virtual sal_Bool ShowDropDown( sal_Bool bShow );
+
+ virtual void SetProperty(const ::rtl::OUString &rString,sal_Bool bIsUnknown=sal_False);
+ virtual ::rtl::OUString GetProperty()const;
+
+ virtual void SetLocked(sal_Bool bLocked=sal_True);
+ protected:
+ virtual void modified(Window* _pSource);
+ };
+//............................................................................
+} // namespace pcr
+//............................................................................
+
+#endif // _EXTENSIONS_PROPCTRLR_STANDARDCONTROL_HXX_
+
+/*************************************************************************
+ * history:
+ * $Log: not supported by cvs2svn $
+ *
+ * Revision 1.0 09.01.01 10:26:52 fs
+ ************************************************************************/
+
diff --git a/extensions/source/propctrlr/stlops.hxx b/extensions/source/propctrlr/stlops.hxx
new file mode 100644
index 000000000..f86fc2a82
--- /dev/null
+++ b/extensions/source/propctrlr/stlops.hxx
@@ -0,0 +1,115 @@
+/*************************************************************************
+ *
+ * $RCSfile: stlops.hxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: fs $ $Date: 2001-01-12 11:33:44 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (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.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc..
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#ifndef _EXTENSIONS_PROPCTRLR_STLOPS_HXX_
+#define _EXTENSIONS_PROPCTRLR_STLOPS_HXX_
+
+#ifndef _COMPHELPER_STLTYPES_HXX_
+#include <comphelper/stl_types.hxx>
+#endif
+#ifndef _COM_SUN_STAR_BEANS_PROPERTY_HPP_
+#include <com/sun/star/beans/Property.hpp>
+#endif
+
+//............................................................................
+namespace pcr
+{
+//............................................................................
+
+ //========================================================================
+ struct PropertyLessByName
+ :public ::std::binary_function < ::com::sun::star::beans::Property,
+ ::com::sun::star::beans::Property,
+ bool
+ >
+ {
+ bool operator() (::com::sun::star::beans::Property _rLhs, ::com::sun::star::beans::Property _rRhs) const
+ {
+ return _rLhs.Name < _rRhs.Name ? true : false;
+ }
+ };
+
+ //========================================================================
+ struct TypeLessByName
+ :public ::std::binary_function < ::com::sun::star::uno::Type,
+ ::com::sun::star::uno::Type,
+ bool
+ >
+ {
+ bool operator() (::com::sun::star::uno::Type _rLhs, ::com::sun::star::uno::Type _rRhs) const
+ {
+ return _rLhs.getTypeName() < _rRhs.getTypeName() ? true : false;
+ }
+ };
+
+//............................................................................
+} // namespace pcr
+//............................................................................
+
+#endif _EXTENSIONS_PROPCTRLR_STLOPS_HXX_
+
+/*************************************************************************
+ * history:
+ * $Log: not supported by cvs2svn $
+ *
+ * Revision 1.0 08.01.01 09:58:11 fs
+ ************************************************************************/
+
diff --git a/extensions/source/propctrlr/stringdefine.hxx b/extensions/source/propctrlr/stringdefine.hxx
new file mode 100644
index 000000000..b4dda6acd
--- /dev/null
+++ b/extensions/source/propctrlr/stringdefine.hxx
@@ -0,0 +1,120 @@
+/*************************************************************************
+ *
+ * $RCSfile: stringdefine.hxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: fs $ $Date: 2001-01-12 11:33:53 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (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.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc..
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#ifndef _EXTENSIONS_FORMSCTRLR_STRINGDEFINE_HXX_
+#define _EXTENSIONS_FORMSCTRLR_STRINGDEFINE_HXX_
+
+#ifndef _RTL_USTRING_HXX_
+#include <rtl/ustring.hxx>
+#endif
+#ifndef _STRING_HXX
+#include <tools/string.hxx>
+#endif
+
+//............................................................................
+namespace pcr
+{
+//............................................................................
+
+ //============================================================
+ //= a helper for static ascii pseudo-unicode strings
+ //============================================================
+ struct _ConstAsciiString_
+ {
+ protected:
+ sal_Int32 length;
+ sal_Char const* str;
+
+ public:
+ _ConstAsciiString_(const sal_Char* _str, sal_Int32 _len) : str(_str), length(_len) { }
+
+ operator ::rtl::OUString () const { return ::rtl::OUString(str, length, RTL_TEXTENCODING_ASCII_US); }
+ operator String () const { return String(str, (xub_StrLen)length, RTL_TEXTENCODING_ASCII_US); }
+ operator const sal_Char* () const { return str; }
+
+ sal_Int32 len() const { return length; }
+ };
+
+#define CONST_ASCII_LENGTH(c) \
+ (const sal_Char*)c, c.length()
+
+ //============================================================
+ //= concrete strings
+ //============================================================
+ #ifndef PCR_IMPLEMENT_STRINGS
+ #define PCR_CONSTASCII_STRING(ident, string) extern const _ConstAsciiString_ ident
+ #else
+ #define PCR_CONSTASCII_STRING(ident, string) extern const _ConstAsciiString_ ident(string, sizeof(string)-1)
+ #endif
+
+//............................................................................
+} // namespace pcr
+//............................................................................
+
+#endif // _EXTENSIONS_FORMSCTRLR_STRINGDEFINE_HXX_
+
+/*************************************************************************
+ * history:
+ * $Log: not supported by cvs2svn $
+ *
+ * Revision 1.0 12.01.01 09:37:53 fs
+ ************************************************************************/
+
diff --git a/extensions/source/propctrlr/usercontrol.cxx b/extensions/source/propctrlr/usercontrol.cxx
new file mode 100644
index 000000000..148625fa2
--- /dev/null
+++ b/extensions/source/propctrlr/usercontrol.cxx
@@ -0,0 +1,263 @@
+/*************************************************************************
+ *
+ * $RCSfile: usercontrol.cxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: fs $ $Date: 2001-01-12 11:34:02 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (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.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc..
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#ifndef _EXTENSIONS_PROPCTRLR_USERCONTROL_HXX_
+#include "usercontrol.hxx"
+#endif
+
+#ifndef _NUMUNO_HXX
+#include <svtools/numuno.hxx>
+#endif
+#ifndef _TOOLS_SOLMATH_HXX
+#include <tools/solmath.hxx>
+#endif
+#ifndef _TOOLS_DEBUG_HXX
+#include <tools/debug.hxx>
+#endif
+
+//............................................................................
+namespace pcr
+{
+//............................................................................
+
+ //==================================================================
+ // class OFormatDescriptionControl
+ //==================================================================
+ //------------------------------------------------------------------
+ OFormatDescriptionControl::OFormatDescriptionControl( Window* pParent, WinBits nWinStyle)
+ :OCommonBehaviourControl(this)
+ ,FormattedField(pParent, nWinStyle)
+ {
+ SetModifyHdl(LINK( this, OCommonBehaviourControl, ModifiedHdl ));
+ SetGetFocusHdl(LINK( this, OCommonBehaviourControl, GetFocusHdl));
+ SetLoseFocusHdl(LINK( this, OCommonBehaviourControl, LoseFocusHdl));
+
+ autoSizeWindow();
+ }
+
+ //------------------------------------------------------------------
+ long OFormatDescriptionControl::PreNotify( NotifyEvent& rNEvt )
+ {
+ // want to handle two keys myself : Del/Backspace should empty the window (setting my prop to "standard" this way)
+ if (EVENT_KEYINPUT == rNEvt.GetType())
+ {
+ sal_uInt16 nKey = rNEvt.GetKeyEvent()->GetKeyCode().GetCode();
+
+ if ((KEY_DELETE == nKey) || (KEY_BACKSPACE == nKey))
+ {
+ SetText(String());
+ ModifiedHdl(this);
+ return sal_True;
+ }
+ }
+
+ if (OCommonBehaviourControl::handlePreNotify(rNEvt))
+ return sal_True;
+
+ // it wasn't a PropCommonControl event => let our window handle it
+ return FormattedField::PreNotify(rNEvt);
+ }
+
+ //------------------------------------------------------------------
+ void OFormatDescriptionControl::SetProperty(const ::rtl::OUString& rString, sal_Bool bIsUnknown)
+ {
+ if (bIsUnknown || (rString == m_sStandardString) || !rString.getLength())
+ // unknown or standard -> no text
+ SetText(String());
+ else
+ {
+ // else set the new format key, the text will be reformatted
+ SetValue(1234.56789);
+ SetFormatKey(String(rString).ToInt32());
+ }
+ }
+
+ //------------------------------------------------------------------
+ ::rtl::OUString OFormatDescriptionControl::GetProperty() const
+ {
+ if (!GetText().Len())
+ return m_sStandardString;
+ else
+ return String::CreateFromInt32(GetFormatKey());
+ }
+
+ //------------------------------------------------------------------
+ void OFormatDescriptionControl::SetFormatSupplier(const SvNumberFormatsSupplierObj* pSupplier)
+ {
+ if (pSupplier)
+ {
+ TreatAsNumber(sal_True);
+
+ SvNumberFormatter* pFormatter = pSupplier->GetNumberFormatter();
+ SetFormatter(pFormatter, sal_True);
+ SetValue(1234.56789);
+ }
+ else
+ {
+ TreatAsNumber(sal_False);
+ SetFormatter(NULL, sal_True);
+ SetText(String());
+ }
+ }
+
+ //==================================================================
+ // class OFormattedNumericControl
+ //==================================================================
+ DBG_NAME(OFormattedNumericControl);
+ //------------------------------------------------------------------
+ OFormattedNumericControl::OFormattedNumericControl( Window* pParent, WinBits nWinStyle)
+ :OCommonBehaviourControl(this)
+ ,FormattedField(pParent, nWinStyle)
+ {
+ DBG_CTOR(OFormattedNumericControl,NULL);
+
+ SetModifyHdl(LINK( this, OFormattedNumericControl, ModifiedHdl ));
+ SetGetFocusHdl(LINK( this, OFormattedNumericControl, GetFocusHdl));
+ SetLoseFocusHdl(LINK( this, OFormattedNumericControl, LoseFocusHdl));
+
+ autoSizeWindow();
+
+ TreatAsNumber(sal_True);
+
+ m_nLastDecimalDigits = GetDecimalDigits();
+ }
+
+ //------------------------------------------------------------------
+ OFormattedNumericControl::~OFormattedNumericControl()
+ {
+ DBG_DTOR(OFormattedNumericControl,NULL);
+ }
+
+ //------------------------------------------------------------------
+ long OFormattedNumericControl::PreNotify( NotifyEvent& rNEvt )
+ {
+ if (OCommonBehaviourControl::handlePreNotify(rNEvt))
+ return sal_True;
+
+ // it wasn't a PropCommonControl event => let our window handle it
+ return FormattedField::PreNotify(rNEvt);
+ }
+
+ //------------------------------------------------------------------
+ void OFormattedNumericControl::SetProperty(const ::rtl::OUString& rString, sal_Bool bIsUnknown)
+ {
+ if (bIsUnknown || (rString == m_sStandardString) || !rString.getLength())
+ // unknown or standard -> no text
+ SetText(String());
+ else
+ {
+ SetValue(String(rString).ToDouble());
+ }
+ }
+
+ //------------------------------------------------------------------
+ ::rtl::OUString OFormattedNumericControl::GetProperty() const
+ {
+ if (!GetText().Len())
+ return m_sStandardString;
+ else
+ {
+ String sReturn;
+ SolarMath::DoubleToString(
+ sReturn, const_cast<OFormattedNumericControl*>(this)->GetValue(), 'F', m_nLastDecimalDigits,
+ '.', sal_True);
+ // always use a '.' (instead of the decimal separator given by m_aUsedInternational) :
+ // when the returned string is interpreted nobody knows about this control or the used
+ // international, so by convention we always use '.' for describing floating point numbers
+ // 27.07.99 - 67901 - FS
+ return sReturn;
+ }
+ }
+
+ //------------------------------------------------------------------
+ void OFormattedNumericControl::SetFormatDescription(const FormatDescription& rDesc)
+ {
+ if (rDesc.pSupplier)
+ {
+ TreatAsNumber(sal_True);
+
+ SvNumberFormatter* pFormatter = rDesc.pSupplier->GetNumberFormatter();
+ if (pFormatter != GetFormatter())
+ SetFormatter(pFormatter, sal_True);
+ SetFormatKey(rDesc.nKey);
+
+ m_nLastDecimalDigits = GetDecimalDigits();
+ }
+ else
+ {
+ TreatAsNumber(sal_False);
+ SetFormatter(NULL, sal_True);
+ SetText(String());
+ m_nLastDecimalDigits = 0;
+ }
+ }
+
+//............................................................................
+} // namespace pcr
+//............................................................................
+
+/*************************************************************************
+ * history:
+ * $Log: not supported by cvs2svn $
+ *
+ * Revision 1.0 09.01.01 10:23:42 fs
+ ************************************************************************/
+
diff --git a/extensions/source/propctrlr/usercontrol.hxx b/extensions/source/propctrlr/usercontrol.hxx
new file mode 100644
index 000000000..d0bd10104
--- /dev/null
+++ b/extensions/source/propctrlr/usercontrol.hxx
@@ -0,0 +1,144 @@
+/*************************************************************************
+ *
+ * $RCSfile: usercontrol.hxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: fs $ $Date: 2001-01-12 11:34:10 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (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.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc..
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#ifndef _EXTENSIONS_PROPCTRLR_USERCONTROL_HXX_
+#define _EXTENSIONS_PROPCTRLR_USERCONTROL_HXX_
+
+#ifndef _EXTENSIONS_PROPCTRLR_COMMONCONTROL_HXX_
+#include "commoncontrol.hxx"
+#endif
+#define _ZFORLIST_DECLARE_TABLE
+#ifndef _FMTFIELD_HXX_
+#include <svtools/fmtfield.hxx>
+#endif
+
+class SvNumberFormatsSupplierObj;
+
+//............................................................................
+namespace pcr
+{
+//............................................................................
+
+ //========================================================================
+ //= OFormatDescriptionControl
+ //========================================================================
+ class OFormatDescriptionControl : public OCommonBehaviourControl, FormattedField
+ {
+ protected:
+ virtual long PreNotify( NotifyEvent& rNEvt );
+
+ public:
+ OFormatDescriptionControl( Window* pParent, WinBits nWinStyle = WB_TABSTOP);
+
+ virtual void SetProperty(const ::rtl::OUString &rString,sal_Bool bIsUnknown=sal_False);
+ virtual ::rtl::OUString GetProperty()const;
+
+ virtual void SetFormatSupplier(const SvNumberFormatsSupplierObj* pSupplier);
+ };
+
+ //========================================================================
+ //= FormatDescription
+ //========================================================================
+ struct FormatDescription
+ {
+ SvNumberFormatsSupplierObj* pSupplier;
+ sal_Int32 nKey;
+ };
+
+ //========================================================================
+ //= OFormattedNumericControl
+ //========================================================================
+ class OFormattedNumericControl : public OCommonBehaviourControl, FormattedField
+ {
+ sal_Int32 m_nLastDecimalDigits;
+
+ protected:
+ virtual long PreNotify( NotifyEvent& rNEvt );
+
+ public:
+ OFormattedNumericControl( Window* pParent, WinBits nWinStyle = WB_TABSTOP);
+ ~OFormattedNumericControl();
+
+ virtual void SetProperty(const ::rtl::OUString &rString,sal_Bool bIsUnknown=sal_False);
+ virtual ::rtl::OUString GetProperty()const;
+
+ virtual void SetFormatDescription(const FormatDescription& rDesc);
+
+ // make some FormattedField methods available
+ virtual void SetDecimalDigits(sal_uInt16 nPrecision) { FormattedField::SetDecimalDigits(nPrecision); m_nLastDecimalDigits = nPrecision; }
+ virtual void SetDefaultValue(double dDef) { FormattedField::SetDefaultValue(dDef); }
+ virtual void EnableEmptyField(sal_Bool bEnable) { FormattedField::EnableEmptyField(bEnable); }
+ virtual void SetThousandsSep(sal_Bool bEnable) { FormattedField::SetThousandsSep(bEnable); }
+ };
+
+//............................................................................
+} // namespace pcr
+//............................................................................
+
+#endif // _EXTENSIONS_PROPCTRLR_USERCONTROL_HXX_
+
+/*************************************************************************
+ * history:
+ * $Log: not supported by cvs2svn $
+ *
+ * Revision 1.0 09.01.01 10:22:35 fs
+ ************************************************************************/
+