libyui
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 
45 class YSelectionWidget : public YWidget
46 {
47 protected:
48 
58  const std::string & label,
60  bool recursiveSelection = false );
61 
62 public:
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 
188  virtual YItemCollection selectedItems();
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 
321 protected:
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 
368  YItemIterator end );
373  YItem * findItem ( const std::string & wantedItemLabel,
375  YItemConstIterator end ) const;
376 
381  bool itemsContain ( YItem * wantedItem,
383  YItemConstIterator end ) const;
384 
385 
386 private:
387 
389 };
390 
391 
392 #endif // YSelectionWidget_h
YItemCollection::iterator YItemIterator
Mutable iterator over YItemCollection.
Definition: YItem.h:42
void setItems(const YItemCollection &itemCollection)
Definition: YSelectionWidget.h:130
virtual void shortcutChanged()
Definition: YSelectionWidget.h:292
bool enforceInitialSelection() const
Definition: YSelectionWidget.cc:124
virtual void selectItem(YItem *item, bool selected=true)
Definition: YSelectionWidget.cc:421
virtual void addItems(const YItemCollection &itemCollection)
Definition: YSelectionWidget.cc:271
YItemIterator itemsEnd()
Definition: YSelectionWidget.cc:303
virtual void setLabel(const std::string &newLabel)
Definition: YSelectionWidget.cc:105
YItem * firstItem() const
Definition: YSelectionWidget.cc:329
YWidgetListIterator end()
Definition: YWidget.h:245
std::vector< YItem * > YItemCollection
Collection of pointers to YItem.
Definition: YItem.h:39
Definition: YSelectionWidget.h:45
void setEnforceSingleSelection(bool on)
Definition: YSelectionWidget.cc:137
YWidget * parent() const
Definition: YWidget.cc:271
YSelectionWidget(YWidget *parent, const std::string &label, bool enforceSingleSelection, bool recursiveSelection=false)
Definition: YSelectionWidget.cc:59
virtual YItemCollection selectedItems()
Definition: YSelectionWidget.cc:384
void findSelectedItems(YItemCollection &selectedItems, YItemConstIterator begin, YItemConstIterator end)
Definition: YSelectionWidget.cc:394
YItemIterator itemsBegin()
Definition: YSelectionWidget.cc:290
virtual void deleteAllItems()
Definition: YSelectionWidget.cc:80
virtual std::string shortcutString() const
Definition: YSelectionWidget.h:305
int itemsCount() const
Definition: YSelectionWidget.cc:322
bool itemsContain(YItem *item) const
Definition: YSelectionWidget.cc:457
virtual YItem * selectedItem()
Definition: YSelectionWidget.cc:349
std::string label() const
Definition: YSelectionWidget.cc:99
virtual void setItemStatus(YItem *item, int status)
Definition: YSelectionWidget.cc:451
bool hasSelectedItem()
Definition: YSelectionWidget.cc:415
virtual void addItem(YItem *item_disown)
Definition: YSelectionWidget.cc:193
virtual void setShortcutString(const std::string &str)
Definition: YSelectionWidget.cc:143
Definition: YItem.h:55
std::string iconBasePath() const
Definition: YSelectionWidget.cc:156
YItemCollection::const_iterator YItemConstIterator
Const iterator over YItemCollection.
Definition: YItem.h:45
virtual const char * widgetClass() const
Definition: YSelectionWidget.h:72
Definition: YSelectionWidget.cc:37
virtual void deselectAllItems()
Definition: YSelectionWidget.cc:491
void setIconBasePath(const std::string &basePath)
Definition: YSelectionWidget.cc:150
virtual ~YSelectionWidget()
Definition: YSelectionWidget.cc:74
YWidgetListIterator begin()
Definition: YWidget.h:238
void setEnforceInitialSelection(bool on)
Definition: YSelectionWidget.cc:117
bool recursiveSelection() const
Definition: YSelectionWidget.cc:130
YItem * findSelectedItem(YItemConstIterator begin, YItemConstIterator end)
Definition: YSelectionWidget.cc:356
YItem * itemAt(int index) const
Definition: YSelectionWidget.cc:339
Definition: YWidget.h:54
void dumpItems() const
Definition: YSelectionWidget.cc:545
bool hasItems() const
Definition: YSelectionWidget.cc:316
bool enforceSingleSelection() const
Definition: YSelectionWidget.cc:111
std::string iconFullPath(const std::string &iconName) const
YItem * findItem(const std::string &itemLabel) const