1 /************************************************************************* 2 * 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4 * 5 * Copyright 2000, 2010 Oracle and/or its affiliates. 6 * 7 * OpenOffice.org - a multi-platform office productivity suite 8 * 9 * This file is part of OpenOffice.org. 10 * 11 * OpenOffice.org is free software: you can redistribute it and/or modify 12 * it under the terms of the GNU Lesser General Public License version 3 13 * only, as published by the Free Software Foundation. 14 * 15 * OpenOffice.org is distributed in the hope that it will be useful, 16 * but WITHOUT ANY WARRANTY; without even the implied warranty of 17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18 * GNU Lesser General Public License version 3 for more details 19 * (a copy is included in the LICENSE file that accompanied this code). 20 * 21 * You should have received a copy of the GNU Lesser General Public License 22 * version 3 along with OpenOffice.org. If not, see 23 * <http://www.openoffice.org/license.html> 24 * for a copy of the LGPLv3 License. 25 * 26 ************************************************************************/ 27 #ifndef _SWLBOX_HXX 28 #define _SWLBOX_HXX 29 30 #include <svl/svarray.hxx> 31 32 #ifndef _LSTBOX_HXX //autogen 33 #include <vcl/lstbox.hxx> 34 #endif 35 36 #ifndef _COMBOBOX_HXX //autogen 37 #include <vcl/combobox.hxx> 38 #endif 39 #include "swdllapi.h" 40 41 class SwBoxEntry; 42 class Window; 43 44 SV_DECL_PTRARR_DEL(SwEntryLst, SwBoxEntry*, 10, 10) 45 46 /*-------------------------------------------------------------------- 47 Beschreibung: SwBoxEntry 48 --------------------------------------------------------------------*/ 49 50 class SW_DLLPUBLIC SwBoxEntry 51 { 52 friend class SwComboBox; 53 54 sal_Bool bModified : 1; 55 sal_Bool bNew : 1; 56 57 String aName; 58 sal_uInt16 nId; 59 60 public: 61 SwBoxEntry(const String& aName, sal_uInt16 nId=0); 62 SwBoxEntry(const SwBoxEntry& rOrg); 63 SwBoxEntry(); 64 65 const String& GetName() const { return aName;} 66 }; 67 68 /*-------------------------------------------------------------------- 69 Beschreibung: fuer ComboBoxen 70 --------------------------------------------------------------------*/ 71 72 typedef sal_uInt16 SwComboBoxStyle; 73 namespace nsSwComboBoxStyle 74 { 75 const SwComboBoxStyle CBS_UPPER = 0x01; 76 const SwComboBoxStyle CBS_LOWER = 0x02; 77 const SwComboBoxStyle CBS_ALL = 0x04; 78 const SwComboBoxStyle CBS_FILENAME = 0x08; 79 const SwComboBoxStyle CBS_SW_FILENAME = CBS_FILENAME; 80 } 81 82 class SW_DLLPUBLIC SwComboBox : public ComboBox 83 { 84 SwEntryLst aEntryLst; 85 SwEntryLst aDelEntryLst; 86 SwBoxEntry aDefault; 87 sal_uInt16 nStyle; 88 89 SW_DLLPRIVATE void InitComboBox(); 90 SW_DLLPRIVATE void InsertSorted(SwBoxEntry* pEntry); 91 92 using ComboBox::InsertEntry; 93 using ComboBox::RemoveEntry; 94 using Window::SetStyle; 95 96 public: 97 98 using ComboBox::GetEntryPos; 99 100 SwComboBox(Window* pParent, const ResId& rId, 101 sal_uInt16 nStyleBits = nsSwComboBoxStyle::CBS_ALL); 102 ~SwComboBox(); 103 104 virtual void KeyInput( const KeyEvent& rKEvt ); 105 106 void InsertEntry(const SwBoxEntry&); 107 sal_uInt16 InsertEntry( const XubString& rStr, sal_uInt16 = 0) 108 { InsertEntry( SwBoxEntry( rStr ) ); return 0; } 109 110 void RemoveEntry(sal_uInt16 nPos); 111 112 sal_uInt16 GetEntryPos(const SwBoxEntry& rEntry) const; 113 const SwBoxEntry& GetEntry(sal_uInt16) const; 114 115 sal_uInt16 GetRemovedCount() const; 116 const SwBoxEntry& GetRemovedEntry(sal_uInt16 nPos) const; 117 118 sal_uInt16 GetStyle() const { return nStyle; } 119 void SetStyle(const sal_uInt16 nSt) { nStyle = nSt; } 120 121 String GetText() const; 122 }; 123 124 #endif /* _SWLBOX_HXX */ 125