libyui
 
Loading...
Searching...
No Matches
YSelectionWidget.h
1/*
2 Copyright (C) 2000-2012 Novell, Inc
3 This library is free software; you can redistribute it and/or modify
4 it under the terms of the GNU Lesser General Public License as
5 published by the Free Software Foundation; either version 2.1 of the
6 License, or (at your option) version 3.0 of the License. This library
7 is distributed in the hope that it will be useful, but WITHOUT ANY
8 WARRANTY; without even the implied warranty of MERCHANTABILITY or
9 FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
10 License for more details. You should have received a copy of the GNU
11 Lesser General Public License along with this library; if not, write
12 to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
13 Floor, Boston, MA 02110-1301 USA
14*/
15
16
17/*-/
18
19 File: YSelectionWidget.h
20
21 Author: Stefan Hundhammer <shundhammer@suse.de>
22
23/-*/
24
25#ifndef YSelectionWidget_h
26#define YSelectionWidget_h
27
28#include "YWidget.h"
29#include "YItem.h"
30#include "ImplPtr.h"
31
33
46{
47protected:
48
58 const std::string & label,
60 bool recursiveSelection = false );
61
62public:
66 virtual ~YSelectionWidget();
67
72 virtual const char * widgetClass() const { return "YSelectionWidget"; }
73
77 std::string label() const;
78
85 virtual void setLabel( const std::string & newLabel );
86
98 virtual void addItem( YItem * item_disown );
99
103 void addItem( const std::string & itemLabel, bool selected = false );
104
109 void addItem( const std::string & itemLabel,
110 const std::string & iconName,
111 bool selected = false );
112
117 virtual void addItems( const YItemCollection & itemCollection );
118
125 virtual void deleteAllItems();
126
130 void setItems( const YItemCollection & itemCollection )
131 { deleteAllItems(); addItems( itemCollection ); }
132
145
151
155 bool hasItems() const;
156
163 int itemsCount() const;
164
169 YItem * itemAt( int index ) const;
170
174 YItem * firstItem() const;
175
179 virtual YItem * selectedItem();
180
189
193 bool hasSelectedItem();
194
211 virtual void selectItem( YItem * item, bool selected = true );
212
222 virtual void setItemStatus( YItem * item, int status );
223
230 virtual void deselectAllItems();
231
236 void setIconBasePath( const std::string & basePath );
237
242 std::string iconBasePath() const;
243
252 std::string iconFullPath( const std::string & iconName ) const;
253
263 std::string iconFullPath( YItem * item ) const;
264
268 bool itemsContain( YItem * item ) const;
269
274 YItem * findItem( const std::string & itemLabel ) const;
275
279 void dumpItems() const;
280
284 bool enforceSingleSelection() const;
285
292 virtual void shortcutChanged() {}
293
305 virtual std::string shortcutString() const { return label(); }
306
318 virtual void setShortcutString( const std::string & str );
319
320
321protected:
322
331 void setEnforceSingleSelection( bool on );
332
337 void setEnforceInitialSelection( bool on );
338
342 bool enforceInitialSelection() const;
343
347 bool recursiveSelection() const;
348
355
363
373 YItem * findItem ( const std::string & wantedItemLabel,
375 YItemConstIterator end ) const;
376
381 bool itemsContain ( YItem * wantedItem,
383 YItemConstIterator end ) const;
384
385
386private:
387
389};
390
391
392#endif // YSelectionWidget_h
YItemCollection::const_iterator YItemConstIterator
Const iterator over YItemCollection.
Definition YItem.h:45
YItemCollection::iterator YItemIterator
Mutable iterator over YItemCollection.
Definition YItem.h:42
std::vector< YItem * > YItemCollection
Collection of pointers to YItem.
Definition YItem.h:39
Definition ImplPtr.h:43
Definition YItem.h:56
bool enforceSingleSelection() const
Definition YSelectionWidget.cc:111
YItem * findSelectedItem(YItemConstIterator begin, YItemConstIterator end)
Definition YSelectionWidget.cc:356
virtual void deleteAllItems()
Definition YSelectionWidget.cc:80
virtual void deselectAllItems()
Definition YSelectionWidget.cc:491
virtual void shortcutChanged()
Definition YSelectionWidget.h:292
void setItems(const YItemCollection &itemCollection)
Definition YSelectionWidget.h:130
void findSelectedItems(YItemCollection &selectedItems, YItemConstIterator begin, YItemConstIterator end)
Definition YSelectionWidget.cc:394
std::string iconFullPath(const std::string &iconName) const
virtual void addItems(const YItemCollection &itemCollection)
Definition YSelectionWidget.cc:271
YItemIterator itemsEnd()
Definition YSelectionWidget.cc:303
bool recursiveSelection() const
Definition YSelectionWidget.cc:130
std::string iconBasePath() const
Definition YSelectionWidget.cc:156
YItem * firstItem() const
Definition YSelectionWidget.cc:329
YItemIterator itemsBegin()
Definition YSelectionWidget.cc:290
YItem * findItem(const std::string &itemLabel) const
bool hasItems() const
Definition YSelectionWidget.cc:316
void addItem(const std::string &itemLabel, const std::string &iconName, bool selected=false)
bool enforceInitialSelection() const
Definition YSelectionWidget.cc:124
virtual void addItem(YItem *item_disown)
Definition YSelectionWidget.cc:193
void setEnforceSingleSelection(bool on)
Definition YSelectionWidget.cc:137
YSelectionWidget(YWidget *parent, const std::string &label, bool enforceSingleSelection, bool recursiveSelection=false)
Definition YSelectionWidget.cc:59
virtual std::string shortcutString() const
Definition YSelectionWidget.h:305
void dumpItems() const
Definition YSelectionWidget.cc:545
virtual void setItemStatus(YItem *item, int status)
Definition YSelectionWidget.cc:451
std::string label() const
Definition YSelectionWidget.cc:99
virtual ~YSelectionWidget()
Definition YSelectionWidget.cc:74
virtual YItem * selectedItem()
Definition YSelectionWidget.cc:349
virtual void setLabel(const std::string &newLabel)
Definition YSelectionWidget.cc:105
void setEnforceInitialSelection(bool on)
Definition YSelectionWidget.cc:117
virtual void selectItem(YItem *item, bool selected=true)
Definition YSelectionWidget.cc:421
virtual YItemCollection selectedItems()
Definition YSelectionWidget.cc:384
bool hasSelectedItem()
Definition YSelectionWidget.cc:415
int itemsCount() const
Definition YSelectionWidget.cc:322
void addItem(const std::string &itemLabel, bool selected=false)
YItem * findItem(const std::string &wantedItemLabel, YItemConstIterator begin, YItemConstIterator end) const
virtual const char * widgetClass() const
Definition YSelectionWidget.h:72
YItem * itemAt(int index) const
Definition YSelectionWidget.cc:339
virtual void setShortcutString(const std::string &str)
Definition YSelectionWidget.cc:143
void setIconBasePath(const std::string &basePath)
Definition YSelectionWidget.cc:150
bool itemsContain(YItem *item) const
Definition YSelectionWidget.cc:457
YWidgetListIterator end()
Definition YWidget.h:245
YWidgetListIterator begin()
Definition YWidget.h:238
YWidget(YWidget *parent)
Definition YWidget.cc:106
YWidget * parent() const
Definition YWidget.cc:277
Definition YSelectionWidget.cc:38