summaryrefslogtreecommitdiff
path: root/sw/source/ui/cctrl
diff options
context:
space:
mode:
authorJens-Heiner Rechtien <hr@openoffice.org>2000-09-18 16:15:01 +0000
committerJens-Heiner Rechtien <hr@openoffice.org>2000-09-18 16:15:01 +0000
commit7b0b5cdfeed656b279bc32cd929630d5fc25878b (patch)
tree5b89fb8497d7329d26c43f109bb014c54ffb0e8c /sw/source/ui/cctrl
parentd791366863cf9659a01b171ce0e727bfe2f28cdf (diff)
initial import
Diffstat (limited to 'sw/source/ui/cctrl')
-rw-r--r--sw/source/ui/cctrl/actctrl.cxx231
-rw-r--r--sw/source/ui/cctrl/makefile.mk97
-rw-r--r--sw/source/ui/cctrl/popbox.cxx182
-rw-r--r--sw/source/ui/cctrl/swlbox.cxx622
4 files changed, 1132 insertions, 0 deletions
diff --git a/sw/source/ui/cctrl/actctrl.cxx b/sw/source/ui/cctrl/actctrl.cxx
new file mode 100644
index 000000000000..c470b79d88e8
--- /dev/null
+++ b/sw/source/ui/cctrl/actctrl.cxx
@@ -0,0 +1,231 @@
+/*************************************************************************
+ *
+ * $RCSfile: actctrl.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 17:14:32 $
+ *
+ * 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): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#ifdef PRECOMPILED
+#include "ui_pch.hxx"
+#endif
+
+#pragma hdrstop
+
+
+#ifndef _LIST_HXX //autogen
+#include <tools/list.hxx>
+#endif
+#include "actctrl.hxx"
+
+
+
+void NumEditAction::Action()
+{
+ aActionLink.Call( this );
+}
+
+
+long NumEditAction::Notify( NotifyEvent& rNEvt )
+{
+ long nHandled = 0;
+
+ if ( rNEvt.GetType() == EVENT_KEYINPUT )
+ {
+ const KeyEvent* pKEvt = rNEvt.GetKeyEvent();
+ const KeyCode aKeyCode = pKEvt->GetKeyCode();
+ const USHORT nModifier = aKeyCode.GetModifier();
+ if( aKeyCode.GetCode() == KEY_RETURN &&
+ !nModifier)
+ {
+ Action();
+ nHandled = 1;
+ }
+
+ }
+ if(!nHandled)
+ NumericField::Notify( rNEvt );
+ return nHandled;
+}
+
+/*------------------------------------------------------------------------
+ Beschreibung: KeyInput fuer ShortName - Edits ohne Spaces
+------------------------------------------------------------------------*/
+
+
+void NoSpaceEdit::KeyInput(const KeyEvent& rEvt)
+{
+ BOOL bCallParent = TRUE;
+ if(rEvt.GetCharCode())
+ {
+ String sKey = rEvt.GetCharCode();
+ if( STRING_NOTFOUND != sForbiddenChars.Search(sKey))
+ bCallParent = FALSE;
+ }
+ if(bCallParent)
+ Edit::KeyInput(rEvt);
+}
+/* -----------------------------11.02.00 15:28--------------------------------
+
+ ---------------------------------------------------------------------------*/
+void NoSpaceEdit::Modify()
+{
+ Selection aSel = GetSelection();
+ String sTemp = GetText();
+ for(USHORT i = 0; i < sForbiddenChars.Len(); i++)
+ {
+ sTemp.EraseAllChars( sForbiddenChars.GetChar(i) );
+ }
+ USHORT nDiff = GetText().Len() - sTemp.Len();
+ if(nDiff)
+ {
+ aSel.setMin(aSel.getMin() - nDiff);
+ aSel.setMax(aSel.getMin());
+ SetText(sTemp);
+ SetSelection(aSel);
+ }
+ if(GetModifyHdl().IsSet())
+ GetModifyHdl().Call(this);
+}
+
+/*************************************************************************
+
+ $Log: not supported by cvs2svn $
+ Revision 1.67 2000/09/18 16:05:12 willem.vandorp
+ OpenOffice header added.
+
+ Revision 1.66 2000/07/10 09:25:33 os
+ #76692# check CharCode first
+
+ Revision 1.65 2000/02/21 07:16:20 os
+ #73223# Call ModifyHdl in ::Modify
+
+ Revision 1.64 2000/02/11 14:46:03 os
+ #71914# Check content in ::Modify
+
+ Revision 1.63 2000/02/01 10:08:25 os
+ #71914# forbidden chars in table names: <>. and space
+
+ Revision 1.62 1999/06/10 07:45:50 OS
+ NoSpaceEdit: illegal characters can be set
+
+
+ Rev 1.61 10 Jun 1999 09:45:50 OS
+ NoSpaceEdit: illegal characters can be set
+
+ Rev 1.60 05 Nov 1998 10:43:42 OS
+ #58990# Notify sollte richtig auf KEYINPUT reagieren
+
+ Rev 1.59 21 Apr 1998 08:43:20 OS
+ NoSpaceEdit, TableNameEdit hierher verschoben
+
+ Rev 1.58 30 Mar 1998 18:46:04 TJ
+ chg: header wg. internal Comperror
+
+ Rev 1.57 12 Nov 1997 17:29:42 MBA
+ SP3:Notify,EVENT_KEYUP
+
+ Rev 1.56 03 Nov 1997 13:09:44 MA
+ precomp entfernt
+
+ Rev 1.55 17 Oct 1997 08:22:12 OS
+ Notify anstelle von KeyInput ueberladen #44732#
+
+ Rev 1.54 13 Feb 1997 16:36:26 MA
+ NameEdit entfernt
+
+ Rev 1.53 28 Aug 1996 08:23:40 OS
+ includes
+
+ Rev 1.52 24 Nov 1995 16:57:36 OM
+ PCH->PRECOMPILED
+
+ Rev 1.51 08 Nov 1995 10:18:32 OS
+ switch => if, keine member -> kein DTOR
+
+ Rev 1.50 12 Oct 1995 15:27:26 MA
+ Klasse EditAction entfernt
+
+ Rev 1.49 21 Mar 1995 19:00:08 OS
+ EditAction wieder drin
+
+ Rev 1.48 20 Mar 1995 19:05:22 OS
+ unbenutzte Funktionen entfernt
+
+ Rev 1.47 15 Mar 1995 11:01:46 MS
+ n.b. Ctors entfernt
+
+ Rev 1.46 15 Mar 1995 10:36:46 MS
+ ActionControlls reduziert
+
+ Rev 1.45 04 Mar 1995 23:13:30 ER
+ Help::EnableBalloonMode() hammernichmehr
+
+ Rev 1.44 07 Feb 1995 19:23:44 ER
+ #elif UNX wird vielleicht wahr werden oder auch nicht..
+
+ Rev 1.43 09 Jan 1995 16:17:44 ER
+ del: ctype h
+
+ Rev 1.42 25 Oct 1994 14:55:18 ER
+ add: PCH
+
+ Rev 1.41 22 Aug 1994 08:17:32 MS
+ SPoints entfernt
+
+*************************************************************************/
+
+
diff --git a/sw/source/ui/cctrl/makefile.mk b/sw/source/ui/cctrl/makefile.mk
new file mode 100644
index 000000000000..69c49a9f815a
--- /dev/null
+++ b/sw/source/ui/cctrl/makefile.mk
@@ -0,0 +1,97 @@
+#*************************************************************************
+#
+# $RCSfile: makefile.mk,v $
+#
+# $Revision: 1.1.1.1 $
+#
+# last change: $Author: hr $ $Date: 2000-09-18 17:14:32 $
+#
+# 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=sw
+TARGET=cctrl
+
+AUTOSEG=true
+
+PROJECTPCH=ui_pch
+PDBTARGET=ui_pch
+PROJECTPCHSOURCE=..\ui_1st\ui_pch
+
+# --- Settings -----------------------------------------------------
+
+.INCLUDE : $(PRJ)$/inc$/swpre.mk
+.INCLUDE : settings.mk
+.INCLUDE : $(PRJ)$/inc$/sw.mk
+
+# --- Files --------------------------------------------------------
+
+CXXFILES = \
+ actctrl.cxx \
+ linbox.cxx \
+ popbox.cxx \
+ swlbox.cxx
+
+SLOFILES = \
+ $(SLO)$/actctrl.obj \
+ $(SLO)$/linbox.obj \
+ $(SLO)$/popbox.obj \
+ $(SLO)$/swlbox.obj
+
+# --- Tagets -------------------------------------------------------
+
+.INCLUDE : target.mk
+
diff --git a/sw/source/ui/cctrl/popbox.cxx b/sw/source/ui/cctrl/popbox.cxx
new file mode 100644
index 000000000000..bb723a4b1c72
--- /dev/null
+++ b/sw/source/ui/cctrl/popbox.cxx
@@ -0,0 +1,182 @@
+/*************************************************************************
+ *
+ * $RCSfile: popbox.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 17:14:32 $
+ *
+ * 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): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#ifdef PRECOMPILED
+#include "ui_pch.hxx"
+#endif
+
+#pragma hdrstop
+
+#include "cmdid.h"
+#include "swtypes.hxx"
+#include "segmentc.hxx"
+
+#include "popbox.hxx"
+
+
+// --- class SwHelpToolBox ---------------------------------------------
+
+
+SwHelpToolBox::SwHelpToolBox( Window* pParent, const ResId& rResId ) :
+ ToolBox( pParent, rResId )
+{
+}
+
+
+void SwHelpToolBox::MouseButtonDown(const MouseEvent &rEvt)
+{
+ // Zuerst DoubleClick-Link auswerten
+ // Dessen Returnwert entscheidet ueber andere Verarbeitung
+ // Doppelclickhandler nur, wenn nicht auf einen Button geclickt wurde
+ if(rEvt.GetButtons() == MOUSE_RIGHT &&
+ 0 == GetItemId(rEvt.GetPosPixel())) {
+ aRightClickLink.Call((MouseEvent *)&rEvt);
+ return;
+ }
+ else
+ ToolBox::MouseButtonDown(rEvt);
+}
+
+
+long SwHelpToolBox::DoubleClick( ToolBox* pCaller )
+{
+ // kein Doppelklick auf einen Button
+ if(0 == pCaller->GetCurItemId() && aDoubleClickLink.Call(0)) return TRUE;
+ return FALSE;
+}
+
+/*-----------------26.02.94 00:36-------------------
+ dtor ueberladen
+--------------------------------------------------*/
+
+
+SwHelpToolBox::~SwHelpToolBox() {}
+
+
+BOOL SwHelpToolBox::Drop( const DropEvent& rEvt)
+{
+ return GetParent()->Drop(rEvt);
+}
+
+
+BOOL SwHelpToolBox::QueryDrop( DropEvent& rEvt)
+{
+ return GetParent()->QueryDrop(rEvt);
+}
+
+/*------------------------------------------------------------------------
+
+ $Log: not supported by cvs2svn $
+ Revision 1.17 2000/09/18 16:05:12 willem.vandorp
+ OpenOffice header added.
+
+ Revision 1.16 2000/04/11 08:03:01 os
+ UNICODE
+
+ Revision 1.15 1997/11/03 12:09:46 MA
+ precomp entfernt
+
+
+ Rev 1.14 03 Nov 1997 13:09:46 MA
+ precomp entfernt
+
+ Rev 1.13 28 Aug 1996 08:23:42 OS
+ includes
+
+ Rev 1.12 19 Jun 1996 14:57:58 OS
+ +Drop/QueryDrop
+
+ Rev 1.11 16 Apr 1996 17:03:48 OM
+ Unbenutzten Ctor entfernt
+
+ Rev 1.10 24 Nov 1995 16:57:38 OM
+ PCH->PRECOMPILED
+
+ Rev 1.9 07 Jul 1995 09:27:26 OM
+ Mouse_Contextmenu entfernt
+
+ Rev 1.8 06 Jul 1995 22:52:36 ER
+ Hack wg. MOUSE_CONTEXTMENU
+
+ Rev 1.7 09 Mar 1995 14:46:30 MA
+ Aufgeraeumt
+
+ Rev 1.6 04 Mar 1995 23:14:18 ER
+ Help::EnableBalloonMode() hammernichmehr
+
+ Rev 1.5 25 Jan 1995 17:13:58 OS
+ Timerinstrumentierung
+
+ Rev 1.4 09 Jan 1995 16:24:12 ER
+ del: initui hxx
+
+ Rev 1.3 25 Oct 1994 14:55:16 ER
+ add: PCH
+
+ Rev 1.2 19 Oct 1994 13:14:08 MA
+ Syntax
+
+ Rev 1.1 19 Oct 1994 12:21:12 MA
+ SV-ChangeXXX -> SetXXX.
+
+------------------------------------------------------------------------*/
+
+
diff --git a/sw/source/ui/cctrl/swlbox.cxx b/sw/source/ui/cctrl/swlbox.cxx
new file mode 100644
index 000000000000..3328dd6176fd
--- /dev/null
+++ b/sw/source/ui/cctrl/swlbox.cxx
@@ -0,0 +1,622 @@
+/*************************************************************************
+ *
+ * $RCSfile: swlbox.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 17:14:32 $
+ *
+ * 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): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#ifdef PRECOMPILED
+#include "ui_pch.hxx"
+#endif
+
+#pragma hdrstop
+
+#ifndef _DEBUG_HXX //autogen
+#include <tools/debug.hxx>
+#endif
+#ifndef _UNOTOOLS_CHARCLASS_HXX
+#include <unotools/charclass.hxx>
+#endif
+
+#ifndef _SWTYPES_HXX
+#include <swtypes.hxx>
+#endif
+#ifndef _SWLBOX_HXX
+#include <swlbox.hxx>
+#endif
+
+
+SV_IMPL_PTRARR(SwEntryLst, SwBoxEntry*)
+
+/*--------------------------------------------------------------------
+ Beschreibung: Ein ListboxElement
+ --------------------------------------------------------------------*/
+
+
+SwBoxEntry::SwBoxEntry() :
+ bModified(FALSE),
+ bNew(FALSE),
+ nId(LISTBOX_APPEND)
+{
+}
+
+
+SwBoxEntry::SwBoxEntry(const String& aNam, USHORT nIdx) :
+ bModified(FALSE),
+ bNew(FALSE),
+ aName(aNam),
+ nId(nIdx)
+{
+}
+
+
+SwBoxEntry::SwBoxEntry(const SwBoxEntry& rOld) :
+ aName(rOld.aName),
+ nId(rOld.nId),
+ bNew(rOld.bNew),
+ bModified(rOld.bModified)
+{
+
+}
+
+/*--------------------------------------------------------------------
+ Beschreibung:
+ --------------------------------------------------------------------*/
+
+
+/*SwListBox::SwListBox(Window* pParent, const ResId& rId):
+ ListBox(pParent, rId)
+{
+ DBG_ASSERT( 0 == (ListBox::GetStyle() & WB_SORT), "NIE sortiert aus der Resource lesen!" );
+ // falls eine Liste ueber die Resource gelesen wurde, die interne
+ // entsprechend updaten
+ USHORT nCnt = ListBox::GetEntryCount();
+ for( USHORT n = 0; n < nCnt; ++n )
+ {
+ const SwBoxEntry* pTmp = new SwBoxEntry( ListBox::GetEntry( n ), n );
+ aEntryLst.Insert( pTmp, n );
+ }
+}
+
+/*--------------------------------------------------------------------
+ Beschreibung: Basisklasse Dtor
+ --------------------------------------------------------------------*/
+
+
+/*SwListBox::~SwListBox()
+{
+}
+
+/*--------------------------------------------------------------------
+ Beschreibung: Listen loeschen und Anzeige loeschen
+ --------------------------------------------------------------------*/
+
+
+/*void SwListBox::Clear()
+{
+ ListBox::Clear();
+ aEntryLst.DeleteAndDestroy( 0, aEntryLst.Count() );
+}
+
+/*--------------------------------------------------------------------
+ Beschreibung: Rund um die Entries
+ --------------------------------------------------------------------*/
+
+
+/*const SwBoxEntry& SwListBox::GetEntry(USHORT nPos) const
+{
+ if( nPos < aEntryLst.Count() )
+ return *aEntryLst[ nPos ];
+
+ return aDefault;
+}
+
+/*--------------------------------------------------------------------
+ Beschreibung: aktullen Eintrag zurueckgeben
+ --------------------------------------------------------------------*/
+
+
+/*const SwBoxEntry& SwListBox::GetSelectEntry() const
+{
+ USHORT nPos = ListBox::GetSelectEntryPos();
+ if( nPos < aEntryLst.Count() )
+ return *aEntryLst[ nPos ];
+
+ return aDefault;
+}
+
+
+void SwListBox::RemoveEntry( USHORT nPos )
+{
+ if( nPos < aEntryLst.Count() )
+ {
+ aEntryLst.DeleteAndDestroy( nPos, 1 );
+ ListBox::RemoveEntry( nPos );
+ }
+}
+
+/*--------------------------------------------------------------------
+ Beschreibung: Eintrag in die ListBox aufnehmen
+ --------------------------------------------------------------------*/
+
+
+/*void SwListBox::InsertEntry( const SwBoxEntry& rEntry, USHORT nPos )
+{
+ if( nPos >= aEntryLst.Count() )
+ nPos = aEntryLst.Count();
+
+ SwBoxEntry* pEntry = new SwBoxEntry( rEntry );
+ ListBox::InsertEntry( pEntry->aName, nPos );
+ aEntryLst.C40_INSERT( SwBoxEntry, pEntry, nPos );
+}
+
+/*--------------------------------------------------------------------
+ Beschreibung: Sortiert einfuegen
+ --------------------------------------------------------------------*/
+
+
+/*void SwListBox::InsertEntrySort( const SwBoxEntry& rEntry )
+{
+ USHORT nPos;
+ if( !SeekEntry( rEntry, &nPos ) )
+ {
+ SwBoxEntry* pEntry = new SwBoxEntry( rEntry );
+ ListBox::InsertEntry( pEntry->aName, nPos );
+ aEntryLst.C40_INSERT( SwBoxEntry, pEntry, nPos );
+ }
+}
+
+
+BOOL SwListBox::SeekEntry( const SwBoxEntry& rEntry, USHORT* pPos )
+{
+ register USHORT nO = aEntryLst.Count(), nM, nU = 0;
+ if( nO > 0 )
+ {
+ nO--;
+ while( nU <= nO )
+ {
+ nM = nU + ( nO - nU ) / 2;
+ StringCompare eCmp = aEntryLst[ nM ]->aName.ICompare( rEntry.aName );
+ if( COMPARE_EQUAL == eCmp )
+ {
+ if( pPos ) *pPos = nM;
+ return TRUE;
+ }
+ else if( COMPARE_GREATER == eCmp )
+ nU = nM + 1;
+ else if( nM == 0 )
+ break;
+ else
+ nO = nM - 1;
+ }
+ }
+ if( pPos ) *pPos = nU;
+ return FALSE;
+}
+
+/* */
+
+
+SwComboBox::SwComboBox(Window* pParent, const ResId& rId, USHORT nStyleBits ):
+ ComboBox(pParent, rId),
+ nStyle(nStyleBits)
+{
+ // Verwaltung fuer die Stringlist aus der Resource aufbauen
+ USHORT nSize = GetEntryCount();
+ for( USHORT i=0; i < nSize; ++i )
+ {
+ const SwBoxEntry* pTmp = new SwBoxEntry(ComboBox::GetEntry(i), i);
+ aEntryLst.Insert(pTmp, aEntryLst.Count() );
+ }
+}
+
+/*--------------------------------------------------------------------
+ Beschreibung: Basisklasse Dtor
+ --------------------------------------------------------------------*/
+
+
+SwComboBox::~SwComboBox()
+{
+// das erledigen die Listen doch schon selbst im DTOR!
+// aEntryLst.DeleteAndDestroy(0, aEntryLst.Count());
+// aDelEntryLst.DeleteAndDestroy(0, aDelEntryLst.Count());
+}
+
+/*--------------------------------------------------------------------
+ Beschreibung: neue Eintraege verwalten
+ --------------------------------------------------------------------*/
+
+
+void SwComboBox::InsertNewEntry(const SwBoxEntry& rEntry)
+{
+ SwBoxEntry* pNew = new SwBoxEntry(rEntry);
+ pNew->bNew = TRUE;
+ InsertSorted(pNew);
+}
+
+/*--------------------------------------------------------------------
+ Beschreibung: Eintrag in die ComboBox aufnehmen
+ --------------------------------------------------------------------*/
+
+
+void SwComboBox::InsertEntry(const SwBoxEntry& rEntry)
+{
+ InsertSorted(new SwBoxEntry(rEntry));
+}
+
+/*--------------------------------------------------------------------
+ Beschreibung: Eintrag aus der Liste loeschen
+ --------------------------------------------------------------------*/
+
+
+void SwComboBox::RemoveEntry(USHORT nPos)
+{
+ if(nPos >= aEntryLst.Count())
+ return;
+
+ // Altes Element austragen
+ SwBoxEntry* pEntry = aEntryLst[nPos];
+ aEntryLst.Remove(nPos, 1);
+ ComboBox::RemoveEntry(nPos);
+
+ // keine neuen Eintraege in die Liste mit aufnehmen
+ if(pEntry->bNew)
+ return;
+
+ // in DeleteListe eintragen
+ aDelEntryLst.C40_INSERT(SwBoxEntry, pEntry, aDelEntryLst.Count());
+}
+
+
+
+/*--------------------------------------------------------------------
+ Beschreibung: Position by Name
+ --------------------------------------------------------------------*/
+
+USHORT SwComboBox::GetEntryPos(const SwBoxEntry& rEntry) const
+{
+ return ComboBox::GetEntryPos(rEntry.aName);
+}
+
+/*--------------------------------------------------------------------
+ Beschreibung: Rund um die Entries
+ --------------------------------------------------------------------*/
+
+
+const SwBoxEntry& SwComboBox::GetEntry(USHORT nPos) const
+{
+ if(nPos < aEntryLst.Count())
+ return *aEntryLst[nPos];
+
+ return aDefault;
+}
+
+/*--------------------------------------------------------------------
+ Beschreibung: geloeschte Eintraege
+ --------------------------------------------------------------------*/
+
+
+USHORT SwComboBox::GetRemovedCount() const
+{
+ return aDelEntryLst.Count();
+}
+
+
+const SwBoxEntry& SwComboBox::GetRemovedEntry(USHORT nPos) const
+{
+ if(nPos < aDelEntryLst.Count())
+ return *aDelEntryLst[nPos];
+
+ return aDefault;
+}
+
+/*--------------------------------------------------------------------
+ Beschreibung: Neue Entries begutachten
+ --------------------------------------------------------------------*/
+
+
+USHORT SwComboBox::GetNewCount() const
+{
+ USHORT nNew = 0;
+ USHORT nSize = aEntryLst.Count();
+ for(USHORT i=0; i < nSize; ++i)
+ if(aEntryLst[i]->bNew)
+ nNew++;
+
+ return nNew;
+}
+
+/*--------------------------------------------------------------------
+ Beschreibung: Alle neuen Eintraege ueberpruefen
+ --------------------------------------------------------------------*/
+
+
+const SwBoxEntry& SwComboBox::GetNewEntry(USHORT nPos) const
+{
+ USHORT nSize = aEntryLst.Count();
+ USHORT nNew = 0;
+
+ for(USHORT i=0; i < nSize; ++i)
+ if( aEntryLst[i]->bNew && nNew++ == nPos )
+ return *aEntryLst[i];
+
+ return aDefault;
+}
+
+/*--------------------------------------------------------------------
+ Beschreibung: Sortiert einfuegen
+ --------------------------------------------------------------------*/
+
+
+void SwComboBox::InsertSorted(SwBoxEntry* pEntry)
+{
+ ComboBox::InsertEntry(pEntry->aName);
+ USHORT nPos = ComboBox::GetEntryPos(pEntry->aName);
+ aEntryLst.C40_INSERT(SwBoxEntry, pEntry, nPos);
+}
+
+
+/*--------------------------------------------------------------------
+ Beschreibung: Je nach Option bestimmte Zeichen ausblenden
+ --------------------------------------------------------------------*/
+
+
+void SwComboBox::KeyInput( const KeyEvent& rKEvt )
+{
+ USHORT nChar = rKEvt.GetCharCode();
+
+ if(nStyle & CBS_FILENAME)
+ {
+#ifdef MAC
+ if(nChar == ':')
+ return;
+#elif defined UNX
+ if(nChar == '/' || nChar == ' ' )
+ return;
+#else
+ if(nChar == ':' || nChar == '\\' || nChar == '.' || nChar == ' ')
+ return;
+#endif
+ }
+ ComboBox::KeyInput(rKEvt);
+}
+
+
+
+/*--------------------------------------------------------------------
+ Beschreibung: Text nach Option konvertieren
+ --------------------------------------------------------------------*/
+
+
+String SwComboBox::GetText() const
+{
+ String aTxt( ComboBox::GetText() );
+
+ if(nStyle & CBS_LOWER)
+ GetAppCharClass().toLower( aTxt );
+ else if( nStyle & CBS_UPPER )
+ GetAppCharClass().toUpper( aTxt );
+
+ return aTxt;
+}
+
+
+/*------------------------------------------------------------------------
+
+ $Log: not supported by cvs2svn $
+ Revision 1.52 2000/09/18 16:05:13 willem.vandorp
+ OpenOffice header added.
+
+ Revision 1.51 2000/08/30 16:45:51 jp
+ use CharClass instead of international
+
+ Revision 1.50 2000/04/11 08:03:01 os
+ UNICODE
+
+ Revision 1.49 2000/02/11 14:43:21 hr
+ #70473# changes for unicode ( patched by automated patchtool )
+
+ Revision 1.48 1997/11/03 12:09:46 MA
+ precomp entfernt
+
+
+ Rev 1.47 03 Nov 1997 13:09:46 MA
+ precomp entfernt
+
+ Rev 1.46 08 Aug 1997 17:29:48 OM
+ Headerfile-Umstellung
+
+ Rev 1.45 06 Aug 1997 11:28:38 TRI
+ GetpApp statt pApp
+
+ Rev 1.44 23 Apr 1997 10:39:28 OS
+ ResId const
+
+ Rev 1.43 07 Nov 1996 11:47:52 JP
+ ASSERT korrigiert
+
+ Rev 1.42 05 Nov 1996 15:36:36 JP
+ SwListBox: Sortierung selbst uebernommen; ueberfluessiges entfernt/aufgeraeumt
+
+ Rev 1.41 28 Aug 1996 08:23:42 OS
+ includes
+
+ Rev 1.40 16 Aug 1996 13:24:00 TRI
+ C40_INSERT statt Insert
+
+ Rev 1.39 25 Jun 1996 17:46:54 HJS
+ include tlintl.hxx
+
+ Rev 1.38 16 Apr 1996 16:46:10 OM
+ SwEventListBox entfernt
+
+ Rev 1.37 24 Nov 1995 16:57:38 OM
+ PCH->PRECOMPILED
+
+ Rev 1.36 17 Nov 1995 13:21:36 MA
+ Segmentierung
+
+ Rev 1.35 27 Jul 1995 10:44:42 mk
+ an SCC4.0.1a angepasst (MDA)
+
+ Rev 1.34 20 Mar 1995 19:03:20 OS
+ unbenutzte Funktionen entfernt
+
+ Rev 1.33 15 Dec 1994 20:21:28 SWG
+ *ARR* Ersetzungen, svmem, __far_data etc.
+
+ Rev 1.32 25 Oct 1994 14:55:22 ER
+ add: PCH
+
+ Rev 1.31 10 May 1994 13:48:44 MS
+ boeser Fehler! bei sortierten SwlBoxen kam der Zugriff auf die EntryListe durcheinander
+
+ Rev 1.30 06 May 1994 13:17:28 MS
+ GetSelectEntryPos geandert
+
+ Rev 1.29 02 Mar 1994 17:22:56 MS
+ mit EntryPos
+
+ Rev 1.28 02 Mar 1994 15:46:52 VB
+ ListBox mit MouseButtonDown-Handler
+
+ Rev 1.27 26 Feb 1994 02:59:36 ER
+ virt. dtor mit export
+
+ Rev 1.26 23 Feb 1994 12:07:04 ER
+ SEXPORT
+
+ Rev 1.25 17 Feb 1994 08:35:06 MI
+ SEG_FUNCDEFS ausgefuellt
+
+ Rev 1.24 16 Feb 1994 19:56:36 MI
+ SEG_FUNCDEFS ausgefuellt
+
+ Rev 1.23 16 Feb 1994 15:41:54 MI
+ Pragmas zurechtgerueckt
+
+ Rev 1.22 28 Jan 1994 11:36:26 MI
+ TCOV() entfernt, SW_... nach SEG_... umbenannt
+
+ Rev 1.21 13 Jan 1994 08:33:26 MI
+ Segmentierung per #define ermoeglicht
+
+ Rev 1.20 10 Jan 1994 09:38:36 MS
+ UNX - Fehler behoben
+
+ Rev 1.19 09 Jan 1994 21:06:46 MI
+ Provisorische Segmentierung
+
+ Rev 1.18 06 Jan 1994 13:14:38 MS
+ Default-Options geaendert
+
+ Rev 1.17 08 Dec 1993 11:21:38 MS
+ SwBoxEntry() setz nId auf LISTBOX_ENTRY_NOTFOUND
+
+ Rev 1.16 06 Dec 1993 11:47:10 VB
+ Upper/Lower konvertieren ueber International
+
+ Rev 1.15 24 Sep 1993 18:50:02 VB
+ Segmentierung
+
+ Rev 1.14 24 Sep 1993 08:59:44 MS
+ Beschraenkung der Eingabe geaendert
+
+ Rev 1.13 23 Sep 1993 17:33:46 MS
+ ComboBox Namen im Edit begrenzen
+
+ Rev 1.12 27 Apr 1993 08:18:20 OK
+ NEU: #pragma hdrstop
+
+ Rev 1.11 16 Feb 1993 08:52:18 MS
+ fuer m800
+
+ Rev 1.10 10 Feb 1993 19:42:08 VB
+ Umstellung SV21
+
+ Rev 1.9 06 Jan 1993 09:15:30 OK
+ Anpassung an M70
+
+ Rev 1.8 02 Dec 1992 17:39:46 MS
+ neu SwMultiComboBox
+
+ Rev 1.7 27 Nov 1992 16:04:52 MS
+ RemoveEntry() korrigiert
+
+ Rev 1.6 27 Nov 1992 15:55:48 MS
+ mit InitComboBox
+
+ Rev 1.5 27 Nov 1992 15:42:52 MS
+ Init erweitert
+
+ Rev 1.4 27 Nov 1992 14:42:38 MS
+ mit const SwBoxEntr& Returns
+
+ Rev 1.3 27 Nov 1992 13:43:54 MS
+ GetCurEntry gerichtet
+
+ Rev 1.2 27 Nov 1992 11:40:52 MS
+ neu GetEntryPos
+
+ Rev 1.1 27 Nov 1992 11:30:08 MS
+ neu InitFromResource
+
+ Rev 1.0 27 Nov 1992 10:49:58 MS
+ Initial revision.
+
+ ------------------------------------------------------------------------*/
+