libyui-ncurses-pkg  2.50.8
NCPkgFilterClassification.h
1 /****************************************************************************
2 |
3 | Copyright (c) [2002-2011] Novell, Inc.
4 | All Rights Reserved.
5 |
6 | This program is free software; you can redistribute it and/or
7 | modify it under the terms of version 2 of the GNU General Public License as
8 | published by the Free Software Foundation.
9 |
10 | This program is distributed in the hope that it will be useful,
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | GNU General Public License for more details.
14 |
15 | You should have received a copy of the GNU General Public License
16 | along with this program; if not, contact Novell, Inc.
17 |
18 | To contact Novell about this file by physical or electronic mail,
19 | you may find current contact information at www.novell.com
20 |
21 |***************************************************************************/
22 
23 
24 /*---------------------------------------------------------------------\
25 | |
26 | __ __ ____ _____ ____ |
27 | \ \ / /_ _/ ___|_ _|___ \ |
28 | \ V / _` \___ \ | | __) | |
29 | | | (_| |___) || | / __/ |
30 | |_|\__,_|____/ |_| |_____| |
31 | |
32 | core system |
33 | (C) SuSE GmbH |
34 \----------------------------------------------------------------------/
35 
36  File: NCPkgFilterClassification.h
37 
38  Author: Gabriele Mohr <gs@suse.com>
39 
40 /-*/
41 
42 #ifndef NCPkgFilterClassification_h
43 #define NCPkgFilterClassification_h
44 
45 #include <iosfwd>
46 
47 #include <vector>
48 #include <string>
49 #include <algorithm>
50 
51 #include "NCPadWidget.h"
52 #include "NCPopup.h"
53 #include "NCPushButton.h"
54 #include "NCSelectionBox.h"
55 
56 #include "NCZypp.h"
57 
58 class NCTable;
59 class NCPushButton;
60 class NCPackageSelector;
61 
62 class NCPkgFilterClassification: public NCSelectionBox
63 {
64 public:
65 
66  /**
67  * A helper class to hold repository data in a neat table
68  * widget
69  * @param parent A parent widget
70  * @param opt Widget options
71  */
72 
73  NCPkgFilterClassification( YWidget *parent, NCPackageSelector *pkg);
74 
75  virtual ~NCPkgFilterClassification() {};
76 
77  void showRetractedInstalled();
78 
79  virtual NCursesEvent wHandleInput( wint_t ch );
80 
81 protected:
82 
83  YItem * currentPkgClass() const;
84  void setCurrentPkgClass( YItem * item );
85  int itemIndex( YItem * item ) const;
86 
87  bool showPackages();
88  void showDescription();
89 
90  bool check(ZyppSel selectable, ZyppPkg pkg, YItem * group );
91 
92 
93  // Data members
94 
95  NCPackageSelector *packager;
96 
97  YItem *recommended;
98  YItem *suggested;
99  YItem *orphaned;
100  YItem *unneeded;
101  YItem *multiversion;
102  YItem *retracted;
103  YItem *retractedInstalled;
104  YItem *all;
105 
106 private:
107 
110 
111 };
112 #endif
NCPkgFilterClassification(YWidget *parent, NCPackageSelector *pkg)
A helper class to hold repository data in a neat table widget.