libyui-ncurses  2.57.2
NCPopupMenu.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: NCPopupMenu.h
20 
21  Author: Michael Andres <ma@suse.de>
22 
23 /-*/
24 
25 #ifndef NCPopupMenu_h
26 #define NCPopupMenu_h
27 
28 #include "NCPopupTable.h"
29 #include "CyclicContainer.h"
30 
31 
32 class NCPopupMenu : public NCPopupTable
33 {
34 private:
35 
36  struct Item;
37 
38  NCPopupMenu & operator=( const NCPopupMenu & );
39  NCPopupMenu( const NCPopupMenu & );
40 
41  Item * selectedItem();
42 
43  void selectNextItem();
44  void selectPreviousItem();
45  void updateSelectedItem();
46 
47  CyclicContainer<Item>::Iterator findItem( YTableItem * tableItem );
48 
49  void selectItem( CyclicContainer<Item>::Iterator item );
50 
51  /**
52  * Container of menu items.
53  * It allows cyclic navigation between the items.
54  *
55  * Note that this container holds pointers to items, but it does not own
56  * the pointers. The pointers are owned by the NCPopupMenu object.
57  **/
58  CyclicContainer<Item> _items;
59 
60 protected:
61 
62  virtual NCursesEvent wHandleInput( wint_t ch );
63  virtual NCursesEvent wHandleHotkey( wint_t key );
64 
65  virtual bool postAgain();
66 
67 public:
68 
69  NCPopupMenu( const wpos & at,
70  YItemIterator begin,
71  YItemIterator end );
72 
73  virtual ~NCPopupMenu();
74 
75 };
76 
77 #endif // NCPopupMenu_h
wpos
Screen position pair in the order line, column: (L, C)
Definition: position.h:110
NCPopupMenu::Item
Definition: NCPopupMenu.cc:33
NCursesEvent
Definition: NCurses.h:73
CyclicContainer
Container class that allows cyclic navigation between its elements by moving to the next/previous ele...
Definition: CyclicContainer.h:40
NCPopupTable
Definition: NCPopupTable.h:41
NCPopupMenu
Definition: NCPopupMenu.h:33