YaST Commits
Threads by month
- ----- 2024 -----
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
May 2011
- 16 participants
- 288 discussions
24 May '11
Author: gs
Date: Tue May 24 13:03:32 2011
New Revision: 64106
URL: http://svn.opensuse.org/viewcvs/yast?rev=64106&view=rev
Log:
Created tag branch-Code-11-SP2-2_17_18
Added:
tags/branch-Code-11-SP2-2_17_18/
--
To unsubscribe, e-mail: yast-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: yast-commit+help(a)opensuse.org
1
0
[yast-commit] r64105 - in /branches/SuSE-Code-11-SP2-Branch/ncurses-pkg: VERSION package/yast2-ncurses-pkg.changes yast2-ncurses-pkg.spec.in
by gs@svn2.opensuse.org 24 May '11
by gs@svn2.opensuse.org 24 May '11
24 May '11
Author: gs
Date: Tue May 24 13:02:54 2011
New Revision: 64105
URL: http://svn.opensuse.org/viewcvs/yast?rev=64105&view=rev
Log:
Require latest libyui (support for multi selection in Tree widget)
V 2.17.18
Modified:
branches/SuSE-Code-11-SP2-Branch/ncurses-pkg/VERSION
branches/SuSE-Code-11-SP2-Branch/ncurses-pkg/package/yast2-ncurses-pkg.changes
branches/SuSE-Code-11-SP2-Branch/ncurses-pkg/yast2-ncurses-pkg.spec.in
Modified: branches/SuSE-Code-11-SP2-Branch/ncurses-pkg/VERSION
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP2-Branch/ncurs…
==============================================================================
--- branches/SuSE-Code-11-SP2-Branch/ncurses-pkg/VERSION (original)
+++ branches/SuSE-Code-11-SP2-Branch/ncurses-pkg/VERSION Tue May 24 13:02:54 2011
@@ -1 +1 @@
-2.17.17
+2.17.18
Modified: branches/SuSE-Code-11-SP2-Branch/ncurses-pkg/package/yast2-ncurses-pkg.changes
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP2-Branch/ncurs…
==============================================================================
--- branches/SuSE-Code-11-SP2-Branch/ncurses-pkg/package/yast2-ncurses-pkg.changes (original)
+++ branches/SuSE-Code-11-SP2-Branch/ncurses-pkg/package/yast2-ncurses-pkg.changes Tue May 24 13:02:54 2011
@@ -1,4 +1,11 @@
-------------------------------------------------------------------
+Tue May 24 12:58:31 CEST 2011 - gs(a)suse.de
+
+- Require latest libyui (support for multi selection in Tree widget,
+ needed for yast2-snapper fate #303699)
+- V 2.17.18
+
+-------------------------------------------------------------------
Wed Oct 13 13:58:01 CEST 2010 - gs(a)suse.de
- Show error popup if searching for packages throws an exception
Modified: branches/SuSE-Code-11-SP2-Branch/ncurses-pkg/yast2-ncurses-pkg.spec.in
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP2-Branch/ncurs…
==============================================================================
--- branches/SuSE-Code-11-SP2-Branch/ncurses-pkg/yast2-ncurses-pkg.spec.in (original)
+++ branches/SuSE-Code-11-SP2-Branch/ncurses-pkg/yast2-ncurses-pkg.spec.in Tue May 24 13:02:54 2011
@@ -10,7 +10,7 @@
Provides: yast2_ui_pkg
Requires: glibc-locale
BuildRequires: yast2-core-devel >= 2.16.33
-BuildRequires: yast2-libyui-devel >= 2.17.14
+BuildRequires: yast2-libyui-devel >= 2.21.1
BuildRequires: libzypp-devel >= 4.2.3
Requires: yast2-core >= 2.16.33
#addItem(item, true)
--
To unsubscribe, e-mail: yast-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: yast-commit+help(a)opensuse.org
1
0
24 May '11
Author: gs
Date: Tue May 24 12:33:28 2011
New Revision: 64104
URL: http://svn.opensuse.org/viewcvs/yast?rev=64104&view=rev
Log:
Created tag branch-Code-11-SP2-2_17_19 for ncurses
Added:
tags/branch-Code-11-SP2-2_17_19/ncurses/ (props changed)
- copied from r64103, branches/SuSE-Code-11-SP2-Branch/ncurses/
--
To unsubscribe, e-mail: yast-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: yast-commit+help(a)opensuse.org
1
0
[yast-commit] r64103 - in /branches/SuSE-Code-11-SP2-Branch/ncurses: package/yast2-ncurses.changes yast2-ncurses.spec.in
by gs@svn2.opensuse.org 24 May '11
by gs@svn2.opensuse.org 24 May '11
24 May '11
Author: gs
Date: Tue May 24 12:32:45 2011
New Revision: 64103
URL: http://svn.opensuse.org/viewcvs/yast?rev=64103&view=rev
Log:
Add support for multi selection in Tree widget,
require latest libyui, V 2.17.19
Modified:
branches/SuSE-Code-11-SP2-Branch/ncurses/package/yast2-ncurses.changes
branches/SuSE-Code-11-SP2-Branch/ncurses/yast2-ncurses.spec.in
Modified: branches/SuSE-Code-11-SP2-Branch/ncurses/package/yast2-ncurses.changes
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP2-Branch/ncurs…
==============================================================================
--- branches/SuSE-Code-11-SP2-Branch/ncurses/package/yast2-ncurses.changes (original)
+++ branches/SuSE-Code-11-SP2-Branch/ncurses/package/yast2-ncurses.changes Tue May 24 12:32:45 2011
@@ -1,8 +1,14 @@
-------------------------------------------------------------------
+Tue May 24 12:23:21 CEST 2011 - gs(a)suse.de
+
+- Add support for multi selection in Tree widget, (needed for
+ yast2-snapper fate #303699), require latest libyui
+- V 2.17.19
+
+-------------------------------------------------------------------
Wed Mar 9 13:29:21 CET 2011 - gs(a)suse.de
- Show block devices in file selection dialog (bnc #661685)
-- V 2.17.19
-------------------------------------------------------------------
Wed Feb 16 10:51:16 CET 2011 - gs(a)suse.de
Modified: branches/SuSE-Code-11-SP2-Branch/ncurses/yast2-ncurses.spec.in
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP2-Branch/ncurs…
==============================================================================
--- branches/SuSE-Code-11-SP2-Branch/ncurses/yast2-ncurses.spec.in (original)
+++ branches/SuSE-Code-11-SP2-Branch/ncurses/yast2-ncurses.spec.in Tue May 24 12:32:45 2011
@@ -8,8 +8,8 @@
Summary: -
Provides: yast2_ui
Requires: glibc-locale
-BuildRequires: yast2-libyui-devel >= 2.17.14
-Requires: yast2-libyui >= 2.17.14
+BuildRequires: yast2-libyui-devel >= 2.21.1
+Requires: yast2-libyui >= 2.21.1
Recommends: yast2-ncurses-pkg
%description
-
--
To unsubscribe, e-mail: yast-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: yast-commit+help(a)opensuse.org
1
0
24 May '11
Author: gs
Date: Tue May 24 12:30:53 2011
New Revision: 64102
URL: http://svn.opensuse.org/viewcvs/yast?rev=64102&view=rev
Log:
tag obsolete, retag version including tree widget changes
Removed:
tags/branch-Code-11-SP2-2_17_19/ncurses/
--
To unsubscribe, e-mail: yast-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: yast-commit+help(a)opensuse.org
1
0
[yast-commit] r64101 - in /branches/SuSE-Code-11-SP2-Branch/ncurses/src: NCTree.cc NCTree.h NCWidgetFactory.cc NCWidgetFactory.h
by gs@svn2.opensuse.org 24 May '11
by gs@svn2.opensuse.org 24 May '11
24 May '11
Author: gs
Date: Tue May 24 12:22:42 2011
New Revision: 64101
URL: http://svn.opensuse.org/viewcvs/yast?rev=64101&view=rev
Log:
feature NCTree multi selection added (needed for
snapper feature #303699)
Modified:
branches/SuSE-Code-11-SP2-Branch/ncurses/src/NCTree.cc
branches/SuSE-Code-11-SP2-Branch/ncurses/src/NCTree.h
branches/SuSE-Code-11-SP2-Branch/ncurses/src/NCWidgetFactory.cc
branches/SuSE-Code-11-SP2-Branch/ncurses/src/NCWidgetFactory.h
Modified: branches/SuSE-Code-11-SP2-Branch/ncurses/src/NCTree.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP2-Branch/ncurs…
==============================================================================
--- branches/SuSE-Code-11-SP2-Branch/ncurses/src/NCTree.cc (original)
+++ branches/SuSE-Code-11-SP2-Branch/ncurses/src/NCTree.cc Tue May 24 12:22:42 2011
@@ -37,12 +37,12 @@
NCTreeLine * fchild;
mutable chtype * prefix;
-
+ bool multiSel;
unsigned prefixLen() const { return level + 3; }
public:
- NCTreeLine( NCTreeLine * p, YTreeItem * item )
+ NCTreeLine( NCTreeLine * p, YTreeItem * item, bool multiSelection )
: NCTableLine( 0 )
, yitem( item )
, level( p ? p->level + 1 : 0 )
@@ -50,6 +50,7 @@
, nsibling( 0 )
, fchild( 0 )
, prefix( 0 )
+ , multiSel( multiSelection )
{
if ( parent )
{
@@ -73,9 +74,16 @@
}
}
- Append( new NCTableCol( NCstring( string( prefixLen(), ' ' )
-
+ if ( !multiSel )
+ {
+ Append( new NCTableCol( NCstring( string( prefixLen(), ' ' )
+ yitem->label() ) ) );
+ }
+ else
+ {
+ Append( new NCTableCol( NCstring( string( prefixLen(), ' ' ) + "[ ] "
+ + yitem->label() ) ) );
+ }
}
virtual ~NCTreeLine() { delete [] prefix; }
@@ -132,13 +140,14 @@
switch ( key )
{
case KEY_IC:
-
+ case '+':
if ( fchild->isVisible() )
return 0;
break;
case KEY_DC:
+ case '-':
if ( !fchild->isVisible() )
return 0;
@@ -147,8 +156,6 @@
case KEY_SPACE:
// case KEY_RETURN: see bug 67350
- case '+':
- case '-':
break;
default:
@@ -235,11 +242,18 @@
-NCTree::NCTree( YWidget * parent, const string & nlabel )
- : YTree( parent, nlabel )
+NCTree::NCTree( YWidget * parent, const string & nlabel, bool multiselection, bool recursiveselection )
+ : YTree( parent, nlabel, multiselection, recursiveselection )
, NCPadWidget( parent )
+ , multiSel ( multiselection )
{
yuiDebug() << endl;
+
+ if ( multiselection && recursiveselection )
+ yuiMilestone() << "NCTree recursive multi selection ON" << endl;
+ else if ( multiselection )
+ yuiMilestone() << "NCTree multi selection ON" << endl;
+
setLabel( nlabel );
}
@@ -336,7 +350,20 @@
return yitem;
}
+void NCTree::deselectAllItems()
+{
+ if ( multiSel)
+ {
+ YItemCollection selectedItems = YTree::selectedItems();
+ for ( YItemConstIterator it = selectedItems.begin(); it != selectedItems.end(); ++it )
+ {
+ selectItem( *it, false );
+ }
+ }
+
+ YTree::deselectAllItems();
+}
// Set current item (under the cursor) to selected
@@ -348,17 +375,48 @@
YTreeItem * treeItem = dynamic_cast<YTreeItem *>( item );
YUI_CHECK_PTR( treeItem );
YTreeItem *citem = getCurrentItem();
+
+ //retrieve position of item
+ int at = treeItem->index();
+
+ NCTreeLine * cline = 0; // current line
+ NCTableCol * ccol = 0; // current column
+
+ if ( multiSel )
+ {
+ cline = modifyTreeLine( at );
+ if ( cline )
+ {
+ ccol = cline->GetCol(0);
+ }
+ }
- if ( !selected && ( treeItem == citem ) )
+ if ( !selected )
{
- YTree::deselectAllItems();
+ if ( !multiSel && (treeItem == citem) )
+ {
+ YTree::deselectAllItems();
+ }
+ else
+ {
+ YTree::selectItem ( treeItem, false );
+ if ( ccol )
+ {
+ ccol->SetLabel( NCstring( string( cline->Level() + 3, ' ' ) + "[ ] "
+ + item->label() ) );
+ }
+ }
}
else
{
- //retrieve position of item
- int at = treeItem->index();
-
YTree::selectItem( treeItem, selected );
+
+ if ( multiSel && ccol )
+ {
+ ccol->SetLabel( NCstring( string( cline->Level() + 3, ' ' ) + "[x] "
+ + item->label() ) );
+ }
+
//this highlights selected item, possibly unpacks the tree
//should it be in currently hidden branch
myPad()->ShowItem( getTreeLine( at ) );
@@ -422,7 +480,7 @@
YTreeItem * treeItem = dynamic_cast<YTreeItem *>( item );
YUI_CHECK_PTR( treeItem );
- NCTreeLine * line = new NCTreeLine( parentLine, treeItem );
+ NCTreeLine * line = new NCTreeLine( parentLine, treeItem, multiSel );
pad->Append( line );
// iterate over children
@@ -433,15 +491,18 @@
}
}
-
-
+// Returns current item (pure virtual in YTree)
+YTreeItem * NCTree::currentItem()
+{
+ return getCurrentItem();
+}
// Fills TreePad with lines (uses CreateTreeLines to create them)
void NCTree::DrawPad()
{
if ( !myPad() )
{
- yuiWarning() << "PadWidget not valid" << endl;
+ yuiWarning() << "PadWidget not yet created" << endl;
return;
}
@@ -463,36 +524,60 @@
NCursesEvent ret = NCursesEvent::none;
YTreeItem * oldCurrentItem = getCurrentItem();
- if ( ! handleInput( key ) ) // NCTreePad::handleInput()
- {
- switch ( key )
- {
- case KEY_SPACE: // KEY_SPACE is handled in NCTreeLine::handleInput
- case KEY_RETURN:
-
- if ( notify() )
- {
- return NCursesEvent::Activated;
- }
- break;
- }
- }
-
+ bool handled = handleInput( key ); // NCTreePad::handleInput()
const YItem * currentItem = getCurrentItem();
if ( !currentItem )
return ret;
- YTree::selectItem( const_cast<YItem *>( currentItem ), true );
+ if ( multiSel )
+ {
+ if ( ! handled )
+ {
+ switch ( key )
+ {
+ // KEY_SPACE is handled in NCTreeLine::handleInput
+ case KEY_RETURN:
- yuiDebug() << "Old item: " << oldCurrentItem->label() << " Current: " << currentItem->label() << endl;
+ if ( currentItem->selected() )
+ selectItem( const_cast<YItem *>(currentItem), false );
+ else
+ selectItem( const_cast<YItem *>(currentItem), true );
+
+ if ( notify() )
+ {
+ return NCursesEvent::ValueChanged;
+ }
+ break;
+ }
+ }
+ }
+ else
+ {
+ if ( ! handled )
+ {
+ switch ( key )
+ {
+ // KEY_SPACE is handled in NCTreeLine::handleInput
+ case KEY_RETURN:
- if ( notify() && immediateMode() && ( oldCurrentItem != currentItem ) )
- ret = NCursesEvent::SelectionChanged;
+ if ( notify() )
+ {
+ return NCursesEvent::Activated;
+ }
+ break;
+ }
+ }
+ YTree::selectItem( const_cast<YItem *>( currentItem ), true );
+ }
- yuiDebug() << "Notify: " << ( notify() ? "true" : "false" ) << " Return event: " << ret << endl;
+ if ( notify() && immediateMode() && ( oldCurrentItem != currentItem ) )
+ ret = NCursesEvent::SelectionChanged;
+ yuiDebug() << "Notify: " << ( notify() ? "true" : "false" ) <<
+ " Return event: " << ret.reason << endl;
+
return ret;
}
Modified: branches/SuSE-Code-11-SP2-Branch/ncurses/src/NCTree.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP2-Branch/ncurs…
==============================================================================
--- branches/SuSE-Code-11-SP2-Branch/ncurses/src/NCTree.h (original)
+++ branches/SuSE-Code-11-SP2-Branch/ncurses/src/NCTree.h Tue May 24 12:22:42 2011
@@ -24,6 +24,7 @@
#include "YTree.h"
#include "NCPadWidget.h"
#include "NCTreePad.h"
+#include "NCTablePad.h"
class NCTreeLine;
@@ -37,6 +38,8 @@
NCTree( const NCTree & );
int idx;
+ bool multiSel;
+
void CreateTreeLines( NCTreeLine * p, NCTreePad * pad, YItem * item );
protected:
@@ -57,7 +60,7 @@
public:
- NCTree( YWidget * parent, const string & label );
+ NCTree( YWidget * parent, const string & label, bool multiselection=false, bool recursiveselection=false );
virtual ~NCTree();
virtual int preferredWidth();
@@ -70,6 +73,10 @@
virtual YTreeItem * getCurrentItem() const;
+ virtual YTreeItem * currentItem();
+
+ virtual void deselectAllItems();
+
virtual void selectItem( YItem *item, bool selected );
virtual void selectItem( int index );
Modified: branches/SuSE-Code-11-SP2-Branch/ncurses/src/NCWidgetFactory.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP2-Branch/ncurs…
==============================================================================
--- branches/SuSE-Code-11-SP2-Branch/ncurses/src/NCWidgetFactory.cc (original)
+++ branches/SuSE-Code-11-SP2-Branch/ncurses/src/NCWidgetFactory.cc Tue May 24 12:22:42 2011
@@ -153,9 +153,9 @@
NCTree *
-NCWidgetFactory::createTree( YWidget * parent, const string & label )
+NCWidgetFactory::createTree( YWidget * parent, const string & label, bool multiselection, bool recursiveselection )
{
- NCTree * tree = new NCTree( parent, label );
+ NCTree * tree = new NCTree( parent, label, multiselection, recursiveselection );
YUI_CHECK_NEW( tree );
return tree;
Modified: branches/SuSE-Code-11-SP2-Branch/ncurses/src/NCWidgetFactory.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP2-Branch/ncurs…
==============================================================================
--- branches/SuSE-Code-11-SP2-Branch/ncurses/src/NCWidgetFactory.h (original)
+++ branches/SuSE-Code-11-SP2-Branch/ncurses/src/NCWidgetFactory.h Tue May 24 12:22:42 2011
@@ -93,7 +93,7 @@
virtual NCRadioButton * createRadioButton ( YWidget * parent, const string & label, bool isChecked = false );
virtual NCComboBox * createComboBox ( YWidget * parent, const string & label, bool editable = false );
virtual NCSelectionBox * createSelectionBox ( YWidget * parent, const string & label );
- virtual NCTree * createTree ( YWidget * parent, const string & label );
+ virtual NCTree * createTree ( YWidget * parent, const string & label, bool multiselection = false, bool recursiveselection = false );
virtual NCTable * createTable ( YWidget * parent, YTableHeader * tableHeader, bool multiSelection = false );
virtual NCProgressBar * createProgressBar ( YWidget * parent, const string & label, int maxValue = 100 );
virtual NCRichText * createRichText ( YWidget * parent, const string & text = string(), bool plainTextMode = false );
--
To unsubscribe, e-mail: yast-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: yast-commit+help(a)opensuse.org
1
0
[yast-commit] r64100 - in /branches/SuSE-Code-11-SP1-Branch/qt-pkg: CMakeLists.txt COPYING MAINTAINER Makefile.cvs RPMNAME VERSION.cmake cmake/ package/ src/ yast2-qt-pkg.spec.in
by tgoettlicher@svn2.opensuse.org 24 May '11
by tgoettlicher@svn2.opensuse.org 24 May '11
24 May '11
Author: tgoettlicher
Date: Tue May 24 12:20:10 2011
New Revision: 64100
URL: http://svn.opensuse.org/viewcvs/yast?rev=64100&view=rev
Log:
backported from trunk
Added:
branches/SuSE-Code-11-SP1-Branch/qt-pkg/CMakeLists.txt
- copied unchanged from r64098, trunk/qt-pkg/CMakeLists.txt
branches/SuSE-Code-11-SP1-Branch/qt-pkg/COPYING
- copied unchanged from r64098, trunk/qt-pkg/COPYING
branches/SuSE-Code-11-SP1-Branch/qt-pkg/MAINTAINER
- copied unchanged from r64098, trunk/qt-pkg/MAINTAINER
branches/SuSE-Code-11-SP1-Branch/qt-pkg/Makefile.cvs
- copied unchanged from r64098, trunk/qt-pkg/Makefile.cvs
branches/SuSE-Code-11-SP1-Branch/qt-pkg/RPMNAME
- copied unchanged from r64098, trunk/qt-pkg/RPMNAME
branches/SuSE-Code-11-SP1-Branch/qt-pkg/VERSION.cmake
- copied unchanged from r64098, trunk/qt-pkg/VERSION.cmake
branches/SuSE-Code-11-SP1-Branch/qt-pkg/cmake/
- copied from r64098, trunk/qt-pkg/cmake/
branches/SuSE-Code-11-SP1-Branch/qt-pkg/package/
- copied from r64098, trunk/qt-pkg/package/
branches/SuSE-Code-11-SP1-Branch/qt-pkg/src/
- copied from r64098, trunk/qt-pkg/src/
branches/SuSE-Code-11-SP1-Branch/qt-pkg/yast2-qt-pkg.spec.in
- copied unchanged from r64098, trunk/qt-pkg/yast2-qt-pkg.spec.in
--
To unsubscribe, e-mail: yast-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: yast-commit+help(a)opensuse.org
1
0
[yast-commit] r64099 - in /branches/SuSE-Code-11-SP1-Branch/qt-pkg: CMakeLists.txt COPYING MAINTAINER Makefile.cvs RPMNAME VERSION.cmake cmake/ package/ src/ yast2-qt-pkg.spec.in
by tgoettlicher@svn2.opensuse.org 24 May '11
by tgoettlicher@svn2.opensuse.org 24 May '11
24 May '11
Author: tgoettlicher
Date: Tue May 24 12:19:17 2011
New Revision: 64099
URL: http://svn.opensuse.org/viewcvs/yast?rev=64099&view=rev
Log:
deleted
Removed:
branches/SuSE-Code-11-SP1-Branch/qt-pkg/CMakeLists.txt
branches/SuSE-Code-11-SP1-Branch/qt-pkg/COPYING
branches/SuSE-Code-11-SP1-Branch/qt-pkg/MAINTAINER
branches/SuSE-Code-11-SP1-Branch/qt-pkg/Makefile.cvs
branches/SuSE-Code-11-SP1-Branch/qt-pkg/RPMNAME
branches/SuSE-Code-11-SP1-Branch/qt-pkg/VERSION.cmake
branches/SuSE-Code-11-SP1-Branch/qt-pkg/cmake/
branches/SuSE-Code-11-SP1-Branch/qt-pkg/package/
branches/SuSE-Code-11-SP1-Branch/qt-pkg/src/
branches/SuSE-Code-11-SP1-Branch/qt-pkg/yast2-qt-pkg.spec.in
--
To unsubscribe, e-mail: yast-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: yast-commit+help(a)opensuse.org
1
0
[yast-commit] r64098 - /tags/branch-Code-11-SP2-2_17_40/product-creator/
by jsuchome@svn2.opensuse.org 24 May '11
by jsuchome@svn2.opensuse.org 24 May '11
24 May '11
Author: jsuchome
Date: Tue May 24 10:38:49 2011
New Revision: 64098
URL: http://svn.opensuse.org/viewcvs/yast?rev=64098&view=rev
Log:
Created tag branch-Code-11-SP2-2_17_40 for product-creator
Added:
tags/branch-Code-11-SP2-2_17_40/product-creator/ (props changed)
- copied from r64097, branches/SuSE-Code-11-SP2-Branch/product-creator/
--
To unsubscribe, e-mail: yast-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: yast-commit+help(a)opensuse.org
1
0
24 May '11
Author: jsuchome
Date: Tue May 24 10:38:44 2011
New Revision: 64097
URL: http://svn.opensuse.org/viewcvs/yast?rev=64097&view=rev
Log:
Created tag branch-Code-11-SP2-2_17_40
Added:
tags/branch-Code-11-SP2-2_17_40/
--
To unsubscribe, e-mail: yast-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: yast-commit+help(a)opensuse.org
1
0
[yast-commit] r64096 - in /branches/SuSE-Code-11-SP2-Branch/product-creator: ./ package/ src/ src/data/kiwi_templates/iso/ src/data/kiwi_templates/xen/
by jsuchome@svn2.opensuse.org 24 May '11
by jsuchome@svn2.opensuse.org 24 May '11
24 May '11
Author: jsuchome
Date: Tue May 24 10:38:26 2011
New Revision: 64096
URL: http://svn.opensuse.org/viewcvs/yast?rev=64096&view=rev
Log:
- updated to new kiwi version (fate#311430 "Update kiwi to 4.8")
- 2.17.40
Modified:
branches/SuSE-Code-11-SP2-Branch/product-creator/VERSION
branches/SuSE-Code-11-SP2-Branch/product-creator/package/yast2-product-creator.changes
branches/SuSE-Code-11-SP2-Branch/product-creator/src/Kiwi.ycp
branches/SuSE-Code-11-SP2-Branch/product-creator/src/complex.ycp
branches/SuSE-Code-11-SP2-Branch/product-creator/src/data/kiwi_templates/iso/config.xml
branches/SuSE-Code-11-SP2-Branch/product-creator/src/data/kiwi_templates/xen/config.xml
branches/SuSE-Code-11-SP2-Branch/product-creator/src/kiwi_dialogs.ycp
branches/SuSE-Code-11-SP2-Branch/product-creator/src/routines.ycp
Modified: branches/SuSE-Code-11-SP2-Branch/product-creator/VERSION
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP2-Branch/produ…
==============================================================================
--- branches/SuSE-Code-11-SP2-Branch/product-creator/VERSION (original)
+++ branches/SuSE-Code-11-SP2-Branch/product-creator/VERSION Tue May 24 10:38:26 2011
@@ -1 +1 @@
-2.17.39
+2.17.40
Modified: branches/SuSE-Code-11-SP2-Branch/product-creator/package/yast2-product-creator.changes
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP2-Branch/produ…
==============================================================================
--- branches/SuSE-Code-11-SP2-Branch/product-creator/package/yast2-product-creator.changes (original)
+++ branches/SuSE-Code-11-SP2-Branch/product-creator/package/yast2-product-creator.changes Tue May 24 10:38:26 2011
@@ -1,4 +1,10 @@
-------------------------------------------------------------------
+Wed May 18 12:42:05 CEST 2011 - jsuchome(a)suse.cz
+
+- updated to new kiwi version (fate#311430 "Update kiwi to 4.8")
+- 2.17.40
+
+-------------------------------------------------------------------
Tue Apr 26 10:50:33 CEST 2011 - jsuchome(a)suse.cz
- better UI for locale related settings (fate#311734)
Modified: branches/SuSE-Code-11-SP2-Branch/product-creator/src/Kiwi.ycp
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP2-Branch/produ…
==============================================================================
--- branches/SuSE-Code-11-SP2-Branch/product-creator/src/Kiwi.ycp (original)
+++ branches/SuSE-Code-11-SP2-Branch/product-creator/src/Kiwi.ycp Tue May 24 10:38:26 2011
@@ -233,10 +233,22 @@
y2warning ("no such file %1/config.xml", base_path);
return ret;
}
+ string file_path = base_path + "/config.xml";
+ if (FileUtils::Exists ("/usr/share/kiwi/xsl/master.xsl"))
+ {
+ file_path = Directory::tmpdir + "/transformed-config.xml";
+ map out = (map) SCR::Execute (.target.bash_output, sformat (
+ "xsltproc /usr/share/kiwi/xsl/master.xsl %1/config.xml > %2",
+ base_path, file_path));
+ if (out["exit"]:0 != 0)
+ {
+ y2error ("xslt transformation failed: %1", out);
+ }
+ }
// read rest of config.xml using more generic agent
map anyxml = (map) SCR::Read (.anyxml, $[
- "file" : base_path + "/config.xml",
+ "file" : file_path,
"args" : $[
"ForceArray" : 1,
"KeepRoot" : 1,
@@ -249,7 +261,7 @@
// attributes of 'image' tag:
ret["name"] = image["name"]:"";
- ret["schemeversion"]= image["schemeversion"]:"2.0";
+ ret["schemaversion"]= image["schemaversion"]:"5.2";
if (haskey (image, "inherit"))
ret["inherit"] = image["inherit"]:"";
@@ -289,7 +301,6 @@
list<string> split = splitstring (lang, ".");
ret = save_preferences (ret, "locale", split[0]:lang);
}
-
return ret;
}
@@ -310,8 +321,8 @@
KiwiConfig = save_preferences(KiwiConfig,"defaultroot",chroot_dir);
}
- string image_tag = sformat ("<image name=\"%1\" schemeversion=\"%2\"%3>",
- KiwiConfig["name"]:"", KiwiConfig["schemeversion"]:"2.0",
+ string image_tag = sformat ("<image name=\"%1\" schemaversion=\"%2\"%3>",
+ KiwiConfig["name"]:"", KiwiConfig["schemaversion"]:"5.2",
(KiwiConfig["inherit"]:"" == "" ?
"" :
sformat (" inherit=\"%1\"", KiwiConfig["inherit"]:"")
Modified: branches/SuSE-Code-11-SP2-Branch/product-creator/src/complex.ycp
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP2-Branch/produ…
==============================================================================
--- branches/SuSE-Code-11-SP2-Branch/product-creator/src/complex.ycp (original)
+++ branches/SuSE-Code-11-SP2-Branch/product-creator/src/complex.ycp Tue May 24 10:38:26 2011
@@ -693,10 +693,12 @@
string name = config["name"]:d;
// index by order, so we can handle more configs with same name
Configurations[i] = config;
- string unit = config["preferences",0,"size",0,"unit"]:"M";
- string i_size = get_preferences (config, "size", 0) + unit;
+ map size_map = get_current_size_map (config, task);
+ string unit = size_map["unit"]:"M";
+ string i_size = size_map[Kiwi::content_key]:"0" + unit;
+
// with "additive", "size" has a different meaning
- if (config["preferences",0,"size",0,"additive"]:"" == "true")
+ if (size_map["additive"]:"" == "true")
i_size = "+" + i_size;
overview = add (overview, `item (
`id (i), name,
Modified: branches/SuSE-Code-11-SP2-Branch/product-creator/src/data/kiwi_templates/iso/config.xml
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP2-Branch/produ…
==============================================================================
--- branches/SuSE-Code-11-SP2-Branch/product-creator/src/data/kiwi_templates/iso/config.xml (original)
+++ branches/SuSE-Code-11-SP2-Branch/product-creator/src/data/kiwi_templates/iso/config.xml Tue May 24 10:38:26 2011
@@ -1,44 +1,43 @@
-<?xml version="1.0"?>
-<image schemeversion="2.0" name="kiwi-image-template">
- <description type="system">
- <author></author>
- <contact></contact>
- <specification>Template for system image configuration</specification>
- </description>
- <preferences>
- <type primary="true" boot="isoboot/suse-SLES11" flags="compressed">iso</type>
- <type boot="vmxboot/suse-SLES11" filesystem="ext3" format="vmdk">vmx</type>
- <type boot="usbboot/suse-SLES11" filesystem="ext3">usb</type>
- <type boot="xenboot/suse-SLES11" filesystem="ext3">xen</type>
- <type boot="oemboot/suse-SLES11" filesystem="ext3" flags="unified">oem</type>
- <version>1.0.0</version>
- <size unit="M">2000</size>
- <packagemanager>zypper</packagemanager>
- <rpm-check-signatures>False</rpm-check-signatures>
- <rpm-force>False</rpm-force>
- <locale>en_US</locale>
- </preferences>
- <users group="users">
- <user name="linux" pwd="" home="/home/linux" realname="Live-CD User"/>
- <user name="root" pwd="" home="/root"/>
- </users>
- <packages type="image" patternType="plusRecommended" patternPackageType="plusRecommended">
- <opensusePattern name="Minimal"/>
- </packages>
- <packages type="bootstrap">
- <package name="filesystem"/>
- <package name="glibc-locale"/>
- <package name="kernel-default"/>
- <package name="udev"/>
- <package name="openssl-certs"/>
- </packages>
- <split>
- <temporary>
- <!-- allow read/write access to: -->
- <file name="/var"/>
- <file name="/var/*"/>
- <file name="/etc"/>
- <file name="/etc/*"/>
- </temporary>
- </split>
+<?xml version="1.0" encoding="utf-8"?>
+
+<image schemaversion="5.2" name="kiwi-image-template">
+ <description type="system">
+ <author/>
+ <contact/>
+ <specification>Template for system image configuration</specification>
+ </description>
+ <preferences>
+ <type image="iso" primary="true" boot="isoboot/suse-SLES11" flags="compressed">
+ <size unit="M">2000</size>
+ </type>
+ <type image="vmx" boot="vmxboot/suse-SLES11" filesystem="ext3" format="vmdk">
+ <size unit="M">2000</size>
+ </type>
+ <type image="usb" boot="usbboot/suse-SLES11" filesystem="ext3">
+ <size unit="M">2000</size>
+ </type>
+ <type boot="vmxboot/suse-SLES11" filesystem="ext3" image="vmx" bootkernel="xenk" bootprofile="xen">2000</type>
+ <type image="oem" boot="oemboot/suse-SLES11" filesystem="ext3" flags="unified">
+ <size unit="M">2000</size>
+ </type>
+ <version>1.0.0</version>
+ <packagemanager>zypper</packagemanager>
+ <rpm-check-signatures>false</rpm-check-signatures>
+ <rpm-force>false</rpm-force>
+ <locale>en_US</locale>
+ </preferences>
+ <users group="users">
+ <user name="linux" pwd="" home="/home/linux" realname="Live-CD User"/>
+ <user name="root" pwd="" home="/root"/>
+ </users>
+ <packages type="image" patternType="plusRecommended">
+ <opensusePattern name="Minimal"/>
+ </packages>
+ <packages type="bootstrap">
+ <package name="filesystem"/>
+ <package name="glibc-locale"/>
+ <package name="kernel-default"/>
+ <package name="udev"/>
+ <package name="openssl-certs"/>
+ </packages>
</image>
Modified: branches/SuSE-Code-11-SP2-Branch/product-creator/src/data/kiwi_templates/xen/config.xml
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP2-Branch/produ…
==============================================================================
--- branches/SuSE-Code-11-SP2-Branch/product-creator/src/data/kiwi_templates/xen/config.xml (original)
+++ branches/SuSE-Code-11-SP2-Branch/product-creator/src/data/kiwi_templates/xen/config.xml Tue May 24 10:38:26 2011
@@ -1,31 +1,31 @@
-<?xml version="1.0"?>
-<image schemeversion="2.0" name="kiwi-xen-image-template">
+<?xml version="1.0" encoding="utf-8"?>
+
+<image schemaversion="5.2" name="kiwi-xen-image-template">
<description type="system">
- <author></author>
- <contact></contact>
+ <author/>
+ <contact/>
<specification>Template for system image configuration</specification>
</description>
<preferences>
- <type boot="xenboot/suse-SLES11" filesystem="ext3">xen</type>
+ <type boot="vmxboot/suse-SLES11" filesystem="ext3" image="vmx" bootkernel="xenk" bootprofile="xen">2000</type>
<version>1.0.0</version>
- <size unit="M">2000</size>
<packagemanager>zypper</packagemanager>
- <rpm-check-signatures>False</rpm-check-signatures>
- <rpm-force>True</rpm-force>
+ <rpm-check-signatures>false</rpm-check-signatures>
+ <rpm-force>true</rpm-force>
</preferences>
<users group="users">
- <user home="/home/linux" name="linux"/>
- <user home="/root" name="root"/>
+ <user home="/home/linux" name="linux"/>
+ <user home="/root" name="root"/>
</users>
<packages type="image">
- <package name="OpenIPMI"/>
+ <package name="OpenIPMI"/>
<package name="lvm2"/>
<package name="aaa_base"/>
<package name="aaa_skel"/>
<package name="acl"/>
<package name="acpid"/>
<package name="attr"/>
- <!-- for x86_64 only -->
+<!-- for x86_64 only -->
<package name="linux32" arch="x86_64"/>
<package name="bash"/>
<package name="bc"/>
@@ -167,7 +167,7 @@
<package name="portmap"/>
<package name="cron"/>
</packages>
- <packages type="xen" memory="512" disk="/dev/sda">
+ <packages type="xen">
<package name="kernel-xen"/>
<package name="xen"/>
</packages>
Modified: branches/SuSE-Code-11-SP2-Branch/product-creator/src/kiwi_dialogs.ycp
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP2-Branch/produ…
==============================================================================
--- branches/SuSE-Code-11-SP2-Branch/product-creator/src/kiwi_dialogs.ycp (original)
+++ branches/SuSE-Code-11-SP2-Branch/product-creator/src/kiwi_dialogs.ycp Tue May 24 10:38:26 2011
@@ -73,7 +73,7 @@
string current_method = "none";
foreach (map typemap, (list<map>)KiwiConfig["preferences",0,"type"]:[], {
- if (typemap[content_key]:"" == kiwi_task)
+ if (typemap["image"]:"" == kiwi_task)
{
current_method = typemap["flags"]:current_method;
}
@@ -98,7 +98,7 @@
KiwiConfig["preferences",0,"type"] = maplist (map typemap,
(list<map>)KiwiConfig["preferences",0,"type"]:[],
{
- if (typemap[content_key]:"" == kiwi_task)
+ if (typemap["image"]:"" == kiwi_task)
{
if (selected == "none")
{
@@ -361,29 +361,6 @@
}
/**
- * initialize the value of compress checkbox
- */
- define void InitCompressCheckBox (string id) {
- UI::ChangeWidget (`id (id), `Enabled, false);
- UI::ChangeWidget (`id (id), `Value, KiwiConfig["compressed"]:false);
- }
-
- /**
- * store the value of compress checkbox
- */
- define void StoreCompressCheckBox (string key, map event) {
- KiwiConfig["compressed"] = (boolean) UI::QueryWidget(`id(key), `Value);
- }
- /**
- * handler for compress checkbox
- */
- define symbol HandleCompressCheckBox (string key, map event) {
- // store the value on exiting
- if (event["ID"]:nil == `next) StoreCompressCheckBox (key, event);
- return nil;
- }
-
- /**
* initialize the value of version
*/
define void InitVersion (string id) {
@@ -411,42 +388,40 @@
}
/**
- * initialize the value of size unit
+ * initialize the values of "size", "sizeunit" and "additive" widgets
*/
- define void InitSizeUnitCombo (string id) {
- string unit = KiwiConfig["preferences",0,"size",0,"unit"]:"M";
- UI::ChangeWidget (`id (id), `Items, maplist (string u, [ "M", "G" ], ``(
- `item (`id (u), u + "B", unit == u))
- ));
- }
+ define void InitSize (string id) {
- /**
- * initialize the value of 'additive'
- */
- define void InitAdditiveCheckBox (string id) {
- boolean additive = KiwiConfig["preferences",0,"size",0,"additive"]:"" == "true";
- UI::ChangeWidget (`id (id), `Value, additive);
- }
+ map size_map = get_current_size_map (KiwiConfig, kiwi_task);
- /**
- * initialize the value of version
- */
- define void InitSize (string id) {
- integer siz = tointeger (get_preferences (KiwiConfig, "size", "2000"));
- if (siz == nil) siz = 2000;
- UI::ChangeWidget (`id (id), `Value, siz);
+ integer siz = tointeger (size_map[Kiwi::content_key]:"0");
+ if (siz == nil) siz = 0;
+ UI::ChangeWidget (`id ("size"), `Value, siz);
+ UI::ChangeWidget (`id ("additive"), `Value, size_map["additive"]:"" == "true");
+ UI::ChangeWidget (`id ("sizeunit"), `Items, maplist (string u, [ "M", "G" ], ``(
+ `item (`id (u), u + "B", size_map["unit"]:"M" == u))
+ ));
}
/**
- * store the size value
+ * store the values of "size", "sizeunit" and "additive" widgets
*/
define void StoreSize (string key, map event) {
- KiwiConfig["preferences",0,"size"] = [ $[
- content_key : sformat ("%1", UI::QueryWidget(`id(key), `Value)),
- "unit" : UI::QueryWidget (`id ("sizeunit"), `Value),
- "additive" : ((boolean) UI::QueryWidget (`id ("additive"), `Value))
- ? "true" : "false"
- ]];
+
+ KiwiConfig["preferences",0,"type"] = maplist (map typemap,
+ (list<map>)KiwiConfig["preferences",0,"type"]:[],
+ {
+ if (typemap["image"]:"" == kiwi_task)
+ {
+ typemap["size"] = [ $[
+ content_key : sformat ("%1", UI::QueryWidget(`id(key), `Value)),
+ "unit" : UI::QueryWidget (`id ("sizeunit"), `Value),
+ "additive" : ((boolean) UI::QueryWidget (`id ("additive"), `Value)) ? "true" : "false",
+ ] ];
+ }
+ return typemap;
+ });
+
}
/**
@@ -1322,22 +1297,10 @@
if (FileUtils::CheckAndCreatePath (out_dir) &&
Kiwi::PrepareAndCreate (out_dir, selected_profiles))
{
- if (kiwi_task == "usb" && false)
- {
- // additional question (yes/no)
- if (Popup::YesNo (sformat (success[kiwi_task]:"", out_dir) + _("
-Save the image to the stick now?")))
- {
- NotImplementedHandler ("", $[ "ID" : ""]);
- }
- }
- else
- {
- // default popup message, %1 is a dir
- Popup::Message (sformat (success[kiwi_task]:_("Image successfully created in
+ // default popup message, %1 is a dir
+ Popup::Message (sformat (success[kiwi_task]:_("Image successfully created in
%1
directory."), out_dir));
- }
}
else
{
@@ -1505,8 +1468,8 @@
KiwiConfig["preferences",0,"type"] = maplist (
map typemap, (list<map>)pref[0,"type"]:[],
{
- string type = typemap[content_key]:"";
- if (typemap["primary"]:"false" == "true" && type != kiwi_task)
+ string type = typemap["image"]:"";
+ if (tolower (typemap["primary"]:"false") == "true" && type != kiwi_task)
typemap = remove (typemap, "primary");
else if (type == kiwi_task)
{
@@ -1530,7 +1493,7 @@
map<string,any> def_map = Kiwi::ReadConfigXML (default_dir);
foreach (map typemap, (list<map>)def_map["preferences",0,"type"]:[],
{
- if (typemap[content_key]:"" == kiwi_task)
+ if (typemap["image"]:"" == kiwi_task)
{
KiwiConfig["preferences",0,"type"] = add (
KiwiConfig["preferences",0,"type"]:[], typemap);
@@ -1598,7 +1561,7 @@
// compression not allowed in most cases (bnc#510833)
foreach (map typemap, (list<map>)KiwiConfig["preferences",0,"type"]:[], {
- if (typemap[content_key]:"" == kiwi_task)
+ if (typemap["image"]:"" == kiwi_task)
{
if (typemap["filesystem"]:"" == "ext3")
show_compression = false;
@@ -1738,16 +1701,6 @@
"validate_function" : CreateImage,
"no_help" : true,
],
- // widgets for config.xml tab
- "compressed" : $[
- "widget" : `checkbox,
- // textentry label
- "label" : _("Co&mpress"),
- "help" : _("<p>Check <b>Compress</b> if the final image should be based \non the squashfs compressed file system."),
- "init" : InitCompressCheckBox,
- "store" : StoreCompressCheckBox,
- "handle" : HandleCompressCheckBox,
- ],
"compression" : $[
"widget" : `combobox,
"opt" : [ `hstretch, `notify ],
@@ -1833,7 +1786,6 @@
"label" : _("&Unit"),
"no_help" : true,
"items" : [],
- "init" : InitSizeUnitCombo,
// stored and handled by "size"
],
"additive" : $[
@@ -1841,7 +1793,6 @@
// check box label
"label" : _("Additive"),
"no_help" : true,
- "init" : InitAdditiveCheckBox,
],
// ---------------- widgtes for directory structure
"general_scripts" : $[
@@ -2259,7 +2210,7 @@
list type_its = [];
//solve `back here (=no import)
foreach (map typemap, (list<map>) Config["preferences",0,"type"]:[], {
- string type = typemap[content_key]:"";
+ string type = typemap["image"]:"";
type_its = add (type_its,
`item (`id (type), task2label[type]:type, type == kiwi_task));
});
@@ -2334,8 +2285,8 @@
kiwi_task = "";
foreach (map typemap, (list<map>) Config["preferences",0,"type"]:[], {
- string type = typemap[content_key]:"";
- if (typemap["primary"]:"false" == "true" || kiwi_task == "")
+ string type = typemap["image"]:"";
+ if (tolower (typemap["primary"]:"false") == "true" || kiwi_task == "")
kiwi_task = type;
if ((supported_images == "" && !contains (present_types, type)) ||
supported_images == "template")
Modified: branches/SuSE-Code-11-SP2-Branch/product-creator/src/routines.ycp
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP2-Branch/produ…
==============================================================================
--- branches/SuSE-Code-11-SP2-Branch/product-creator/src/routines.ycp (original)
+++ branches/SuSE-Code-11-SP2-Branch/product-creator/src/routines.ycp Tue May 24 10:38:26 2011
@@ -41,10 +41,10 @@
string task = "";
foreach (map typemap, (list<map>) config["preferences",0,"type"]:[], {
if (task == "") // take the 1st one if none is default
- task = typemap[Kiwi::content_key]:task;
- if (typemap["primary"]:"false" == "true")
+ task = typemap["image"]:task;
+ if (tolower (typemap["primary"]:"false") == "true")
{
- task = typemap[Kiwi::content_key]:task;
+ task = typemap["image"]:task;
break;
}
});
@@ -55,12 +55,24 @@
return task;
}
+// return the size info for current image type
+map get_current_size_map (map config, string task) {
+
+ map ret = $[];
+ foreach (map typemap, (list<map>) config["preferences",0,"type"]:[], {
+ if (task == typemap["image"]:"")
+ ret = typemap["size",0]:$[];
+ });
+ return ret;
+}
+
+
// get the value of boot image directory
string get_bootdir (map config, string task) {
string dir = "";
foreach (map typemap, (list<map>) config["preferences",0,"type"]:[], {
- if (task == typemap[Kiwi::content_key]:"")
+ if (task == typemap["image"]:"")
{
dir = typemap["boot"]:"";
break;
--
To unsubscribe, e-mail: yast-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: yast-commit+help(a)opensuse.org
1
0
[yast-commit] r64095 - /tags/stable-2_21_3/product-creator/
by jsuchome@svn2.opensuse.org 24 May '11
by jsuchome@svn2.opensuse.org 24 May '11
24 May '11
Author: jsuchome
Date: Tue May 24 10:34:12 2011
New Revision: 64095
URL: http://svn.opensuse.org/viewcvs/yast?rev=64095&view=rev
Log:
Created tag stable-2_21_3 for product-creator
Added:
tags/stable-2_21_3/product-creator/
- copied from r64094, trunk/product-creator/
--
To unsubscribe, e-mail: yast-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: yast-commit+help(a)opensuse.org
1
0
[yast-commit] r64094 - in /trunk/product-creator: ./ package/ src/ src/data/kiwi_templates/iso/ src/data/kiwi_templates/xen/
by jsuchome@svn2.opensuse.org 24 May '11
by jsuchome@svn2.opensuse.org 24 May '11
24 May '11
Author: jsuchome
Date: Tue May 24 10:34:00 2011
New Revision: 64094
URL: http://svn.opensuse.org/viewcvs/yast?rev=64094&view=rev
Log:
- updated to new kiwi version (fate#311430 "Update kiwi to 4.8")
- 2.21.3
Modified:
trunk/product-creator/VERSION
trunk/product-creator/package/yast2-product-creator.changes
trunk/product-creator/src/Kiwi.ycp
trunk/product-creator/src/complex.ycp
trunk/product-creator/src/data/kiwi_templates/iso/config.xml
trunk/product-creator/src/data/kiwi_templates/xen/config.xml
trunk/product-creator/src/kiwi_dialogs.ycp
trunk/product-creator/src/routines.ycp
Modified: trunk/product-creator/VERSION
URL: http://svn.opensuse.org/viewcvs/yast/trunk/product-creator/VERSION?rev=6409…
==============================================================================
--- trunk/product-creator/VERSION (original)
+++ trunk/product-creator/VERSION Tue May 24 10:34:00 2011
@@ -1 +1 @@
-2.21.2
+2.21.3
Modified: trunk/product-creator/package/yast2-product-creator.changes
URL: http://svn.opensuse.org/viewcvs/yast/trunk/product-creator/package/yast2-pr…
==============================================================================
--- trunk/product-creator/package/yast2-product-creator.changes (original)
+++ trunk/product-creator/package/yast2-product-creator.changes Tue May 24 10:34:00 2011
@@ -1,4 +1,10 @@
-------------------------------------------------------------------
+Tue May 24 10:11:06 CEST 2011 - jsuchome(a)suse.cz
+
+- updated to new kiwi version (fate#311430 "Update kiwi to 4.8")
+- 2.21.3
+
+-------------------------------------------------------------------
Fri May 13 09:59:46 CEST 2011 - jsuchome(a)suse.cz
- better UI for locale related settings (fate#311734)
Modified: trunk/product-creator/src/Kiwi.ycp
URL: http://svn.opensuse.org/viewcvs/yast/trunk/product-creator/src/Kiwi.ycp?rev…
==============================================================================
--- trunk/product-creator/src/Kiwi.ycp (original)
+++ trunk/product-creator/src/Kiwi.ycp Tue May 24 10:34:00 2011
@@ -233,10 +233,22 @@
y2warning ("no such file %1/config.xml", base_path);
return ret;
}
+ string file_path = base_path + "/config.xml";
+ if (FileUtils::Exists ("/usr/share/kiwi/xsl/master.xsl"))
+ {
+ file_path = Directory::tmpdir + "/transformed-config.xml";
+ map out = (map) SCR::Execute (.target.bash_output, sformat (
+ "xsltproc /usr/share/kiwi/xsl/master.xsl %1/config.xml > %2",
+ base_path, file_path));
+ if (out["exit"]:0 != 0)
+ {
+ y2error ("xslt transformation failed: %1", out);
+ }
+ }
// read rest of config.xml using more generic agent
map anyxml = (map) SCR::Read (.anyxml, $[
- "file" : base_path + "/config.xml",
+ "file" : file_path,
"args" : $[
"ForceArray" : 1,
"KeepRoot" : 1,
@@ -249,7 +261,7 @@
// attributes of 'image' tag:
ret["name"] = image["name"]:"";
- ret["schemeversion"]= image["schemeversion"]:"2.0";
+ ret["schemaversion"]= image["schemaversion"]:"5.2";
if (haskey (image, "inherit"))
ret["inherit"] = image["inherit"]:"";
@@ -289,7 +301,6 @@
list<string> split = splitstring (lang, ".");
ret = save_preferences (ret, "locale", split[0]:lang);
}
-
return ret;
}
@@ -310,8 +321,8 @@
KiwiConfig = save_preferences(KiwiConfig,"defaultroot",chroot_dir);
}
- string image_tag = sformat ("<image name=\"%1\" schemeversion=\"%2\"%3>",
- KiwiConfig["name"]:"", KiwiConfig["schemeversion"]:"2.0",
+ string image_tag = sformat ("<image name=\"%1\" schemaversion=\"%2\"%3>",
+ KiwiConfig["name"]:"", KiwiConfig["schemaversion"]:"5.2",
(KiwiConfig["inherit"]:"" == "" ?
"" :
sformat (" inherit=\"%1\"", KiwiConfig["inherit"]:"")
Modified: trunk/product-creator/src/complex.ycp
URL: http://svn.opensuse.org/viewcvs/yast/trunk/product-creator/src/complex.ycp?…
==============================================================================
--- trunk/product-creator/src/complex.ycp (original)
+++ trunk/product-creator/src/complex.ycp Tue May 24 10:34:00 2011
@@ -697,10 +697,12 @@
string name = config["name"]:d;
// index by order, so we can handle more configs with same name
Configurations[i] = config;
- string unit = config["preferences",0,"size",0,"unit"]:"M";
- string i_size = get_preferences (config, "size", 0) + unit;
+ map size_map = get_current_size_map (config, task);
+ string unit = size_map["unit"]:"M";
+ string i_size = size_map[Kiwi::content_key]:"0" + unit;
+
// with "additive", "size" has a different meaning
- if (config["preferences",0,"size",0,"additive"]:"" == "true")
+ if (size_map["additive"]:"" == "true")
i_size = "+" + i_size;
overview = add (overview, `item (
`id (i), name,
Modified: trunk/product-creator/src/data/kiwi_templates/iso/config.xml
URL: http://svn.opensuse.org/viewcvs/yast/trunk/product-creator/src/data/kiwi_te…
==============================================================================
--- trunk/product-creator/src/data/kiwi_templates/iso/config.xml (original)
+++ trunk/product-creator/src/data/kiwi_templates/iso/config.xml Tue May 24 10:34:00 2011
@@ -1,735 +1,51 @@
-<?xml version="1.0"?>
-<image schemeversion="2.4" name="kiwi-image-template">
- <description type="system">
- <author></author>
- <contact></contact>
- <specification>Template for system image configuration</specification>
- </description>
- <preferences>
- <type primary="true" boot="isoboot/suse-11.2" bootprofile="default" bootkernel="desktop" flags="clic" hybrid="true">iso</type>
- <type boot="vmxboot/suse-11.1" filesystem="ext3" format="vmdk">vmx</type>
- <type boot="usbboot/suse-11.1" filesystem="ext3">usb</type>
- <type boot="xenboot/suse-11.1" filesystem="ext3">xen</type>
- <type boot="oemboot/suse-11.1" filesystem="ext3" flags="unified">oem</type>
- <version>1.0.0</version>
- <packagemanager>zypper</packagemanager>
- <size unit="M">3000</size>
- <boot-theme>openSUSE</boot-theme>
- <rpm-check-signatures>false</rpm-check-signatures>
- <rpm-force>false</rpm-force>
- <locale>en_US</locale>
- <oem-swap>false</oem-swap>
- <oem-boot-title>USB</oem-boot-title>
- <rpm-excludedocs>false</rpm-excludedocs>
- </preferences>
- <users group="users">
- <user name="linux" pwd="" home="/home/linux" realname="Live-CD User"/>
- <user name="root" pwd="" home="/root"/>
- </users>
- <repository type="rpm-md">
- <source path="http://download.opensuse.org/repositories/openSUSE:/Factory:/Live/standard/"/>
- </repository>
- <packages type="image" patternPackageType="onlyRequired">
- <package name="bootsplash-branding-openSUSE" bootinclude="true" bootdelete="true"/>
- <package name="gfxboot-branding-openSUSE" bootinclude="true" bootdelete="true"/>
- <package name="yast2-live-installer"/>
- <package name="pam"/>
- <package name="pam-config"/>
- <package name="pam-modules"/>
- <package name="udev"/>
- <package name="aaa_base"/>
- <package name="tar"/>
- <package name="patch"/>
- <package name="zypper"/>
- <!-- PACKAGES BEGIN -->
- <package name="ConsoleKit"/>
- <package name="ConsoleKit-x11"/>
- <package name="DeviceKit-disks"/>
- <package name="DirectFB"/>
- <package name="ImageMagick"/>
- <package name="Mesa"/>
- <package name="MozillaSunbird"/>
- <package name="MozillaSunbird-translations"/>
- <package name="PolicyKit"/>
- <package name="PolicyKit-doc"/>
- <package name="SuSEfirewall2"/>
- <package name="a2ps"/>
- <package name="aaa_base"/>
- <package name="acl"/>
- <package name="acpica"/>
- <package name="acpid"/>
- <package name="adaptec-firmware"/>
- <package name="alsa"/>
- <package name="alsa-firmware"/>
- <package name="alsa-oss"/>
- <package name="alsa-plugins"/>
- <package name="alsa-utils"/>
- <package name="apparmor-parser"/>
- <package name="apparmor-profiles"/>
- <package name="apparmor-utils"/>
- <package name="aria2"/>
- <package name="aspell"/>
- <package name="aspell-de"/>
- <package name="aspell-en"/>
- <package name="atk"/>
- <package name="atmel-firmware"/>
- <package name="attr"/>
- <package name="audiofile"/>
- <package name="audit"/>
- <package name="audit-libs"/>
- <package name="augeas-lenses"/>
- <package name="autofs"/>
- <package name="autoyast2-installation"/>
- <package name="awesfx"/>
- <package name="b43-fwcutter"/>
- <package name="bash"/>
- <package name="bc"/>
- <package name="bind-libs"/>
- <package name="bind-utils"/>
- <package name="bluez-firmware"/>
- <package name="bootsplash"/>
- <package name="bootsplash-branding-openSUSE"/>
- <package name="branding-openSUSE"/>
- <package name="btrfsprogs"/>
- <package name="bundle-lang-common-de"/>
- <package name="bundle-lang-common-en"/>
- <package name="bzip2"/>
- <package name="cabextract"/>
- <package name="cairo"/>
- <package name="cdrkit-cdrtools-compat"/>
- <package name="checkmedia"/>
- <package name="cifs-mount"/>
- <package name="command-not-found"/>
- <package name="compcache"/>
- <package name="compcache-kmp-desktop"/>
- <package name="coreutils"/>
- <package name="cpio"/>
- <package name="cpp"/>
- <package name="cpp44"/>
- <package name="cracklib"/>
- <package name="cracklib-dict-full"/>
- <package name="crda"/>
- <package name="cron"/>
- <package name="cryptsetup"/>
- <package name="cups"/>
- <package name="cups-client"/>
- <package name="cups-drivers"/>
- <package name="cups-libs"/>
- <package name="curl"/>
- <package name="cyrus-sasl"/>
- <package name="cyrus-sasl-crammd5"/>
- <package name="cyrus-sasl-digestmd5"/>
- <package name="cyrus-sasl-gssapi"/>
- <package name="cyrus-sasl-plain"/>
- <package name="db-utils"/>
- <package name="dbus-1"/>
- <package name="dbus-1-glib"/>
- <package name="dbus-1-x11"/>
- <package name="ddrescue"/>
- <package name="dejavu"/>
- <package name="deltarpm"/>
- <package name="desktop-data-openSUSE"/>
- <package name="desktop-file-utils"/>
- <package name="device-mapper"/>
- <package name="dhcpcd"/>
- <package name="dialog"/>
- <package name="diffutils"/>
- <package name="dirmngr"/>
- <package name="dmidecode"/>
- <package name="dmraid"/>
- <package name="dosfstools"/>
- <package name="dvb"/>
- <package name="e2fsprogs"/>
- <package name="eject"/>
- <package name="elfutils"/>
- <package name="esound-daemon"/>
- <package name="espeak"/>
- <package name="ethtool"/>
- <package name="fam"/>
- <package name="fbset"/>
- <package name="file"/>
- <package name="filesystem"/>
- <package name="fillup"/>
- <package name="findutils"/>
- <package name="fontconfig"/>
- <package name="fonts-config"/>
- <package name="foomatic-filters"/>
- <package name="freeglut"/>
- <package name="freetype2"/>
- <package name="fuse"/>
- <package name="gawk"/>
- <package name="gconf2"/>
- <package name="gd"/>
- <package name="gdbm"/>
- <package name="genisoimage"/>
- <package name="gettext-runtime"/>
- <package name="gfxboot"/>
- <package name="gfxboot-branding-openSUSE"/>
- <package name="ghostscript-fonts-std"/>
- <package name="ghostscript-library"/>
- <package name="ghostscript-x11"/>
- <package name="glib2"/>
- <package name="glib2-branding-openSUSE"/>
- <package name="glibc"/>
- <package name="glibc-32bit"/>
- <package name="glibc-locale"/>
- <package name="glibc-locale-32bit"/>
- <package name="gnome-icon-theme"/>
- <package name="gnome-keyring"/>
- <package name="gnome-vfs2"/>
- <package name="gnutls"/>
- <package name="gpart"/>
- <package name="gpg2"/>
- <package name="gpm"/>
- <package name="grep"/>
- <package name="groff"/>
- <package name="grub"/>
- <package name="gtk2"/>
- <package name="gtk2-branding-openSUSE"/>
- <package name="gtk2-engine-murrine"/>
- <package name="gtk2-engines"/>
- <package name="gtk2-metatheme-gilouche"/>
- <package name="gtk2-metatheme-sonar"/>
- <package name="gvfs"/>
- <package name="gvfs-backends"/>
- <package name="gvfs-fuse"/>
- <package name="gzip"/>
- <package name="hal"/>
- <package name="hdparm"/>
- <package name="hicolor-icon-theme"/>
- <package name="hwinfo"/>
- <package name="icedax"/>
- <package name="icewm"/>
- <package name="icewm-lite"/>
- <package name="ifnteuro"/>
- <package name="ifplugd"/>
- <package name="info"/>
- <package name="info2html"/>
- <package name="initviocons"/>
- <package name="input-utils"/>
- <package name="insserv"/>
- <package name="iproute2"/>
- <package name="iptables"/>
- <package name="iputils"/>
- <package name="ipw-firmware"/>
- <package name="irda"/>
- <package name="irqbalance"/>
- <package name="iw"/>
- <package name="jfsutils"/>
- <package name="kbd"/>
- <package name="kernel-desktop"/>
- <package name="kernel-firmware"/>
- <package name="keyutils"/>
- <package name="keyutils-libs"/>
- <package name="klogd"/>
- <package name="kpartx"/>
- <package name="krb5"/>
- <package name="krb5-client"/>
- <package name="lcms"/>
- <package name="less"/>
- <package name="libFLAC8"/>
- <package name="libHX18"/>
- <package name="libMagickCore2"/>
- <package name="libMagickWand2"/>
- <package name="libSDL-1_2-0"/>
- <package name="libacl"/>
- <package name="libadns1"/>
- <package name="libaio"/>
- <package name="libapparmor1"/>
- <package name="libarchive2"/>
- <package name="libart_lgpl"/>
- <package name="libasm1"/>
- <package name="libasound2"/>
- <package name="libatasmart4"/>
- <package name="libatk-1_0-0"/>
- <package name="libattr"/>
- <package name="libaugeas0"/>
- <package name="libavahi-client3"/>
- <package name="libavahi-common3"/>
- <package name="libavahi-glib1"/>
- <package name="libblkid1"/>
- <package name="libblocxx6"/>
- <package name="libbluetooth3"/>
- <package name="libbonobo"/>
- <package name="libbonoboui"/>
- <package name="libbonoboui-lang"/>
- <package name="libbz2-1"/>
- <package name="libcap2"/>
- <package name="libcdio10"/>
- <package name="libcdio_cdda0"/>
- <package name="libcdio_paranoia0"/>
- <package name="libcloog0"/>
- <package name="libcom_err2"/>
- <package name="libcryptsetup0"/>
- <package name="libcurl4"/>
- <package name="libdaemon0"/>
- <package name="libdb-4_5"/>
- <package name="libdns_sd"/>
- <package name="libdrm"/>
- <package name="libdw1"/>
- <package name="libeggdbus-1-0"/>
- <package name="libelf1"/>
- <package name="liberation-fonts"/>
- <package name="libesd0"/>
- <package name="libevent-1_4-2"/>
- <package name="libexif"/>
- <package name="libexpat1"/>
- <package name="libext2fs2"/>
- <package name="libfprint0"/>
- <package name="libfreebl3"/>
- <package name="libfuse2"/>
- <package name="libgcc44"/>
- <package name="libgcrypt11"/>
- <package name="libgdu0"/>
- <package name="libgimpprint"/>
- <package name="libgio-2_0-0"/>
- <package name="libgio-fam"/>
- <package name="libglade2"/>
- <package name="libglib-2_0-0"/>
- <package name="libgmodule-2_0-0"/>
- <package name="libgmp3"/>
- <package name="libgmpxx4"/>
- <package name="libgnome"/>
- <package name="libgnomecanvas"/>
- <package name="libgnomecanvas-lang"/>
- <package name="libgnomeui"/>
- <package name="libgnomeui-lang"/>
- <package name="libgnutls26"/>
- <package name="libgobject-2_0-0"/>
- <package name="libgomp44"/>
- <package name="libgpg-error0"/>
- <package name="libgphoto2"/>
- <package name="libgssglue1"/>
- <package name="libgthread-2_0-0"/>
- <package name="libgudev-1_0-0"/>
- <package name="libgvfscommon0"/>
- <package name="libidl"/>
- <package name="libidn"/>
- <package name="libiw30"/>
- <package name="libjasper"/>
- <package name="libjpeg"/>
- <package name="libksba"/>
- <package name="liblcms1"/>
- <package name="libldap-2_4-2"/>
- <package name="libldapcpp1"/>
- <package name="libltdl7"/>
- <package name="liblua5_1"/>
- <package name="liblzma0"/>
- <package name="liblzo2-2"/>
- <package name="libmng"/>
- <package name="libmpfr1"/>
- <package name="libmysqlclient_r16"/>
- <package name="libncurses5"/>
- <package name="libncurses5-32bit"/>
- <package name="libncurses6"/>
- <package name="libnetpbm10"/>
- <package name="libnl"/>
- <package name="libnscd"/>
- <package name="libnsssharedhelper0"/>
- <package name="libnuma1"/>
- <package name="libogg0"/>
- <package name="libopenct1"/>
- <package name="libopensc2"/>
- <package name="libopenssl0_9_8"/>
- <package name="libpcap1"/>
- <package name="libpciaccess0"/>
- <package name="libpcre0"/>
- <package name="libpixman-1-0"/>
- <package name="libpng12-0"/>
- <package name="libpolkit0"/>
- <package name="libpoppler5"/>
- <package name="libpopt0"/>
- <package name="libppl7"/>
- <package name="libppl_c2"/>
- <package name="libproxy0"/>
- <package name="libproxy0-config-gnome"/>
- <package name="libproxy0-pacrunner-mozjs"/>
- <package name="libproxy0-wpad-dns"/>
- <package name="libpth20"/>
- <package name="libpulse0"/>
- <package name="libpython2_6-1_0"/>
- <package name="libqt4"/>
- <package name="libqt4-qt3support"/>
- <package name="libqt4-sql"/>
- <package name="libqt4-sql-mysql"/>
- <package name="libqt4-x11"/>
- <package name="libreadline6"/>
- <package name="libreiserfs"/>
- <package name="librpcsecgss"/>
- <package name="libselinux1"/>
- <package name="libsmbclient0"/>
- <package name="libsmbios-bin"/>
- <package name="libsmbios2"/>
- <package name="libsndfile"/>
- <package name="libsoup-2_4-1"/>
- <package name="libsqlite3-0"/>
- <package name="libstdc++44"/>
- <package name="libstorage"/>
- <package name="libtalloc1"/>
- <package name="libtasn1"/>
- <package name="libtasn1-3"/>
- <package name="libtdb1"/>
- <package name="libtiff3"/>
- <package name="libtirpc1"/>
- <package name="libudev0"/>
- <package name="libusb-0_1-4"/>
- <package name="libusb-1_0-0"/>
- <package name="libuuid1"/>
- <package name="libvorbis"/>
- <package name="libwbclient0"/>
- <package name="libx86"/>
- <package name="libx86emu1"/>
- <package name="libxcrypt"/>
- <package name="libxml2"/>
- <package name="libzio"/>
- <package name="libzypp"/>
- <package name="licenses"/>
- <package name="limal"/>
- <package name="limal-ca-mgm"/>
- <package name="limal-ca-mgm-perl"/>
- <package name="limal-nfs-server"/>
- <package name="limal-nfs-server-perl"/>
- <package name="limal-perl"/>
- <package name="linux-atm-lib"/>
- <package name="linux32"/>
- <package name="login"/>
- <package name="logrotate"/>
- <package name="lomoco"/>
- <package name="lsb-release"/>
- <package name="lsof"/>
- <package name="lsscsi"/>
- <package name="lukemftp"/>
- <package name="lvm2"/>
- <package name="mailx"/>
- <package name="man"/>
- <package name="manufacturer-PPDs"/>
- <package name="master-boot-code"/>
- <package name="mc"/>
- <package name="mdadm"/>
- <package name="memtest86+"/>
- <package name="mhash"/>
- <package name="microcode_ctl"/>
- <package name="mingetty"/>
- <package name="mkinitrd"/>
- <package name="module-init-tools"/>
- <package name="mozilla-nspr"/>
- <package name="mozilla-nss"/>
- <package name="mpt-firmware"/>
- <package name="mtools"/>
- <package name="multipath-tools"/>
- <package name="nano"/>
- <package name="ncurses-utils"/>
- <package name="ndiswrapper"/>
- <package name="ndiswrapper-kmp-desktop"/>
- <package name="net-tools"/>
- <package name="netcat"/>
- <package name="netcfg"/>
- <package name="netpbm"/>
- <package name="nfs-client"/>
- <package name="nfsidmap"/>
- <package name="nss_ldap"/>
- <package name="ntfs-3g"/>
- <package name="ntfsprogs"/>
- <package name="ntp"/>
- <package name="numactl"/>
- <package name="numlockx"/>
- <package name="obex-data-server"/>
- <package name="openSUSE-build-key"/>
- <package name="openSUSE-release"/>
- <package name="openldap2-client"/>
- <package name="openobex"/>
- <package name="openslp"/>
- <package name="openssh"/>
- <package name="openssh-askpass"/>
- <package name="openssl"/>
- <package name="openssl-certs"/>
- <package name="opensuse-manuals_en"/>
- <package name="orbit2"/>
- <package name="pam"/>
- <package name="pam-config"/>
- <package name="pam-modules"/>
- <package name="pam_apparmor"/>
- <package name="pam_fp"/>
- <package name="pam_krb5"/>
- <package name="pam_ldap"/>
- <package name="pam_mount"/>
- <package name="pango"/>
- <package name="parted"/>
- <package name="patterns-openSUSE-apparmor"/>
- <package name="patterns-openSUSE-base"/>
- <package name="patterns-openSUSE-enhanced_base"/>
- <package name="patterns-openSUSE-fonts"/>
- <package name="patterns-openSUSE-sw_management"/>
- <package name="patterns-openSUSE-x11"/>
- <package name="patterns-openSUSE-x11_yast"/>
- <package name="patterns-openSUSE-yast2_basis"/>
- <package name="patterns-openSUSE-yast2_install_wf"/>
- <package name="pciutils"/>
- <package name="pciutils-ids"/>
- <package name="pcmciautils"/>
- <package name="pcre"/>
- <package name="perl"/>
- <package name="perl-Bootloader"/>
- <package name="perl-Business-ISBN"/>
- <package name="perl-Business-ISBN-Data"/>
- <package name="perl-Config-Crontab"/>
- <package name="perl-Crypt-SSLeay"/>
- <package name="perl-Crypt-SmbHash"/>
- <package name="perl-DBD-SQLite"/>
- <package name="perl-DBI"/>
- <package name="perl-Digest-HMAC"/>
- <package name="perl-Digest-MD4"/>
- <package name="perl-Digest-SHA1"/>
- <package name="perl-File-Tail"/>
- <package name="perl-GD"/>
- <package name="perl-GD-Barcode"/>
- <package name="perl-HTML-Parser"/>
- <package name="perl-HTML-Tagset"/>
- <package name="perl-Net-Daemon"/>
- <package name="perl-NetxAP"/>
- <package name="perl-Parse-RecDescent"/>
- <package name="perl-PlRPC"/>
- <package name="perl-RPC-XML"/>
- <package name="perl-TermReadKey"/>
- <package name="perl-TimeDate"/>
- <package name="perl-URI"/>
- <package name="perl-WWW-Curl"/>
- <package name="perl-X500-DN"/>
- <package name="perl-XML-LibXML"/>
- <package name="perl-XML-LibXML-Common"/>
- <package name="perl-XML-NamespaceSupport"/>
- <package name="perl-XML-Parser"/>
- <package name="perl-XML-SAX"/>
- <package name="perl-XML-Simple"/>
- <package name="perl-XML-Writer"/>
- <package name="perl-XML-XPath"/>
- <package name="perl-base"/>
- <package name="perl-gettext"/>
- <package name="perl-libapparmor"/>
- <package name="perl-libwww-perl"/>
- <package name="permissions"/>
- <package name="pinentry"/>
- <package name="pkg-config"/>
- <package name="pm-profiler"/>
- <package name="pm-utils"/>
- <package name="polkit"/>
- <package name="polkit-default-privs"/>
- <package name="poppler-tools"/>
- <package name="postfix"/>
- <package name="ppp"/>
- <package name="pptp"/>
- <package name="preload"/>
- <package name="preload-kmp-desktop"/>
- <package name="procps"/>
- <package name="psmisc"/>
- <package name="pullin-flash-player"/>
- <package name="pullin-msttf-fonts"/>
- <package name="pwdutils"/>
- <package name="python"/>
- <package name="python-base"/>
- <package name="python-satsolver"/>
- <package name="python-xml"/>
- <package name="quota"/>
- <package name="recode"/>
- <package name="reiserfs"/>
- <package name="release-notes-openSUSE"/>
- <package name="rpcbind"/>
- <package name="rpm"/>
- <package name="rpm-python"/>
- <package name="rsync"/>
- <package name="rsyslog"/>
- <package name="satsolver-tools"/>
- <package name="sax2"/>
- <package name="sax2-gui"/>
- <package name="sax2-ident"/>
- <package name="sax2-libsax"/>
- <package name="sax2-libsax-perl"/>
- <package name="sax2-tools"/>
- <package name="sbl"/>
- <package name="scout"/>
- <package name="scpm"/>
- <package name="sed"/>
- <package name="setserial"/>
- <package name="sg3_utils"/>
- <package name="shared-mime-info"/>
- <package name="slang"/>
- <package name="smartmontools"/>
- <package name="smp_utils"/>
- <package name="smpppd"/>
- <package name="splashy"/>
- <package name="splashy-branding-openSUSE"/>
- <package name="strace"/>
- <package name="sudo"/>
- <package name="suseRegister"/>
- <package name="susehelp"/>
- <package name="susehelp_de"/>
- <package name="susehelp_en"/>
- <package name="suspend"/>
- <package name="sysconfig"/>
- <package name="sysfsutils"/>
- <package name="systemtap-runtime"/>
- <package name="sysvinit"/>
- <package name="tar"/>
- <package name="tcpd"/>
- <package name="terminfo-base"/>
- <package name="tightvnc"/>
- <package name="timezone"/>
- <package name="translation-update"/>
- <package name="translation-update-de"/>
- <package name="udev"/>
- <package name="ulimit"/>
- <package name="unrar"/>
- <package name="unscd"/>
- <package name="unzip"/>
- <package name="update-alternatives"/>
- <package name="usbutils"/>
- <package name="utempter"/>
- <package name="util-linux"/>
- <package name="vim"/>
- <package name="vim-base"/>
- <package name="virtualbox-ose-kmp-desktop"/>
- <package name="w3m"/>
- <package name="wdiff"/>
- <package name="wget"/>
- <package name="wireless-regdb"/>
- <package name="wireless-tools"/>
- <package name="wodim"/>
- <package name="wpa_supplicant"/>
- <package name="wvdial"/>
- <package name="wvstreams"/>
- <package name="x11-input-fujitsu"/>
- <package name="x11-input-wacom"/>
- <package name="x11-tools"/>
- <package name="xdg-menu"/>
- <package name="xdg-utils"/>
- <package name="xfsdump"/>
- <package name="xfsprogs"/>
- <package name="xinetd"/>
- <package name="xkeyboard-config"/>
- <package name="xorg-x11"/>
- <package name="xorg-x11-Xvnc"/>
- <package name="xorg-x11-driver-input"/>
- <package name="xorg-x11-driver-video"/>
- <package name="xorg-x11-driver-video-radeonhd"/>
- <package name="xorg-x11-driver-virtualbox-ose"/>
- <package name="xorg-x11-fonts-core"/>
- <package name="xorg-x11-libICE"/>
- <package name="xorg-x11-libSM"/>
- <package name="xorg-x11-libX11"/>
- <package name="xorg-x11-libX11-ccache"/>
- <package name="xorg-x11-libXau"/>
- <package name="xorg-x11-libXdmcp"/>
- <package name="xorg-x11-libXext"/>
- <package name="xorg-x11-libXfixes"/>
- <package name="xorg-x11-libXmu"/>
- <package name="xorg-x11-libXp"/>
- <package name="xorg-x11-libXpm"/>
- <package name="xorg-x11-libXprintUtil"/>
- <package name="xorg-x11-libXrender"/>
- <package name="xorg-x11-libXt"/>
- <package name="xorg-x11-libXv"/>
- <package name="xorg-x11-libfontenc"/>
- <package name="xorg-x11-libs"/>
- <package name="xorg-x11-libxcb"/>
- <package name="xorg-x11-libxkbfile"/>
- <package name="xorg-x11-server"/>
- <package name="xorg-x11-xauth"/>
- <package name="xstroke"/>
- <package name="xterm"/>
- <package name="xz"/>
- <package name="yast2"/>
- <package name="yast2-add-on"/>
- <package name="yast2-apparmor"/>
- <package name="yast2-backup"/>
- <package name="yast2-bootloader"/>
- <package name="yast2-branding-openSUSE"/>
- <package name="yast2-control-center"/>
- <package name="yast2-control-center-qt"/>
- <package name="yast2-core"/>
- <package name="yast2-country"/>
- <package name="yast2-country-data"/>
- <package name="yast2-dbus-client"/>
- <package name="yast2-fingerprint-reader"/>
- <package name="yast2-firewall"/>
- <package name="yast2-hardware-detection"/>
- <package name="yast2-inetd"/>
- <package name="yast2-installation"/>
- <package name="yast2-irda"/>
- <package name="yast2-iscsi-client"/>
- <package name="yast2-kerberos-client"/>
- <package name="yast2-ldap"/>
- <package name="yast2-ldap-client"/>
- <package name="yast2-libyui"/>
- <package name="yast2-mail"/>
- <package name="yast2-metapackage-handler"/>
- <package name="yast2-mouse"/>
- <package name="yast2-ncurses"/>
- <package name="yast2-ncurses-pkg"/>
- <package name="yast2-network"/>
- <package name="yast2-nfs-client"/>
- <package name="yast2-nfs-common"/>
- <package name="yast2-nis-client"/>
- <package name="yast2-ntp-client"/>
- <package name="yast2-online-update"/>
- <package name="yast2-online-update-frontend"/>
- <package name="yast2-packager"/>
- <package name="yast2-packager-webpin"/>
- <package name="yast2-pam"/>
- <package name="yast2-perl-bindings"/>
- <package name="yast2-pkg-bindings"/>
- <package name="yast2-printer"/>
- <package name="yast2-profile-manager"/>
- <package name="yast2-qt"/>
- <package name="yast2-qt-pkg"/>
- <package name="yast2-registration"/>
- <package name="yast2-registration-branding-openSUSE"/>
- <package name="yast2-repair"/>
- <package name="yast2-restore"/>
- <package name="yast2-runlevel"/>
- <package name="yast2-samba-client"/>
- <package name="yast2-samba-server"/>
- <package name="yast2-scanner"/>
- <package name="yast2-security"/>
- <package name="yast2-slp"/>
- <package name="yast2-sound"/>
- <package name="yast2-storage"/>
- <package name="yast2-sudo"/>
- <package name="yast2-sysconfig"/>
- <package name="yast2-theme-openSUSE"/>
- <package name="yast2-trans-de"/>
- <package name="yast2-trans-en_US"/>
- <package name="yast2-trans-stats"/>
- <package name="yast2-transfer"/>
- <package name="yast2-tune"/>
- <package name="yast2-tv"/>
- <package name="yast2-update"/>
- <package name="yast2-users"/>
- <package name="yast2-vm"/>
- <package name="yast2-x11"/>
- <package name="yast2-xml"/>
- <package name="yast2-ycp-ui-bindings"/>
- <package name="yp-tools"/>
- <package name="ypbind"/>
- <package name="zd1211-firmware"/>
- <package name="zip"/>
- <package name="zisofs-tools"/>
- <package name="zlib"/>
- <package name="zypper"/>
- <!-- PACKAGES END -->
- </packages>
- <packages type="bootstrap">
- <package name="filesystem"/>
- <package name="bundle-lang-common-en"/>
- <package name="openSUSE-release"/>
- <package name="openSUSE-release-livecd-x11"/>
- </packages>
- <split>
- <temporary>
- <!-- allow read/write access to: -->
- <file name="/var"/>
- <file name="/var/*"/>
- <file name="/etc"/>
- <file name="/etc/*"/>
- </temporary>
- </split>
+<?xml version="1.0" encoding="utf-8"?>
+
+<image schemaversion="5.2" name="kiwi-image-template">
+ <description type="system">
+ <author/>
+ <contact/>
+ <specification>Template for system image configuration</specification>
+ </description>
+ <preferences>
+ <type image="iso" primary="true" boot="isoboot/suse-11.4" bootprofile="default" bootkernel="desktop" flags="clic" hybrid="true">
+ <size unit="M">3000</size>
+ </type>
+ <type image="vmx" boot="vmxboot/suse-11.4" filesystem="ext3" format="vmdk">
+ <size unit="M">3000</size>
+ </type>
+ <type image="usb" boot="usbboot/suse-11.4" filesystem="ext3">
+ <size unit="M">3000</size>
+ </type>
+ <type boot="vmxboot/suse-11.1" filesystem="ext3" image="vmx" bootkernel="xenk" bootprofile="xen">3000</type>
+ <type image="oem" boot="oemboot/suse-11.4" filesystem="ext3" flags="unified">
+ <size unit="M">3000</size>
+ <oemconfig>
+ <oem-boot-title>USB</oem-boot-title>
+ <oem-swap>false</oem-swap>
+ </oemconfig>
+ </type>
+ <version>1.0.0</version>
+ <packagemanager>zypper</packagemanager>
+ <boot-theme>openSUSE</boot-theme>
+ <rpm-check-signatures>false</rpm-check-signatures>
+ <rpm-force>false</rpm-force>
+ <locale>en_US</locale>
+ <rpm-excludedocs>false</rpm-excludedocs>
+ </preferences>
+ <users group="users">
+ <user name="linux" pwd="" home="/home/linux" realname="Live-CD User"/>
+ <user name="root" pwd="" home="/root"/>
+ </users>
+ <repository type="rpm-md">
+ <source path="http://download.opensuse.org/repositories/openSUSE:/Factory:/Live/standard/"/>
+ </repository>
+ <packages type="image">
+ <opensusePattern name="Minimal"/>
+ </packages>
+ <packages type="bootstrap">
+ <package name="filesystem"/>
+ <package name="bundle-lang-common-en"/>
+ <package name="openSUSE-release"/>
+ <package name="openSUSE-release-livecd-x11"/>
+ </packages>
</image>
Modified: trunk/product-creator/src/data/kiwi_templates/xen/config.xml
URL: http://svn.opensuse.org/viewcvs/yast/trunk/product-creator/src/data/kiwi_te…
==============================================================================
--- trunk/product-creator/src/data/kiwi_templates/xen/config.xml (original)
+++ trunk/product-creator/src/data/kiwi_templates/xen/config.xml Tue May 24 10:34:00 2011
@@ -1,31 +1,31 @@
-<?xml version="1.0"?>
-<image schemeversion="2.0" name="kiwi-xen-image-template">
+<?xml version="1.0" encoding="utf-8"?>
+
+<image schemaversion="5.2" name="kiwi-xen-image-template">
<description type="system">
- <author></author>
- <contact></contact>
+ <author/>
+ <contact/>
<specification>Template for system image configuration</specification>
</description>
<preferences>
- <type boot="xenboot/suse-11.1" filesystem="ext3">xen</type>
+ <type boot="vmxboot/suse-11.1" filesystem="ext3" image="vmx" bootkernel="xenk" bootprofile="xen">2000</type>
<version>1.0.0</version>
- <size unit="M">2000</size>
<packagemanager>zypper</packagemanager>
- <rpm-check-signatures>False</rpm-check-signatures>
- <rpm-force>True</rpm-force>
+ <rpm-check-signatures>false</rpm-check-signatures>
+ <rpm-force>true</rpm-force>
</preferences>
<users group="users">
- <user home="/home/linux" name="linux"/>
- <user home="/root" name="root"/>
+ <user home="/home/linux" name="linux"/>
+ <user home="/root" name="root"/>
</users>
<packages type="image">
- <package name="OpenIPMI"/>
+ <package name="OpenIPMI"/>
<package name="lvm2"/>
<package name="aaa_base"/>
<package name="aaa_skel"/>
<package name="acl"/>
<package name="acpid"/>
<package name="attr"/>
- <!-- for x86_64 only -->
+<!-- for x86_64 only -->
<package name="linux32" arch="x86_64"/>
<package name="bash"/>
<package name="bc"/>
@@ -167,7 +167,7 @@
<package name="portmap"/>
<package name="cron"/>
</packages>
- <packages type="xen" memory="512" disk="/dev/sda">
+ <packages type="xen">
<package name="kernel-xen"/>
<package name="xen"/>
</packages>
Modified: trunk/product-creator/src/kiwi_dialogs.ycp
URL: http://svn.opensuse.org/viewcvs/yast/trunk/product-creator/src/kiwi_dialogs…
==============================================================================
--- trunk/product-creator/src/kiwi_dialogs.ycp (original)
+++ trunk/product-creator/src/kiwi_dialogs.ycp Tue May 24 10:34:00 2011
@@ -73,7 +73,7 @@
string current_method = "none";
foreach (map typemap, (list<map>)KiwiConfig["preferences",0,"type"]:[], {
- if (typemap[content_key]:"" == kiwi_task)
+ if (typemap["image"]:"" == kiwi_task)
{
current_method = typemap["flags"]:current_method;
}
@@ -98,7 +98,7 @@
KiwiConfig["preferences",0,"type"] = maplist (map typemap,
(list<map>)KiwiConfig["preferences",0,"type"]:[],
{
- if (typemap[content_key]:"" == kiwi_task)
+ if (typemap["image"]:"" == kiwi_task)
{
if (selected == "none")
{
@@ -361,29 +361,6 @@
}
/**
- * initialize the value of compress checkbox
- */
- define void InitCompressCheckBox (string id) {
- UI::ChangeWidget (`id (id), `Enabled, false);
- UI::ChangeWidget (`id (id), `Value, KiwiConfig["compressed"]:false);
- }
-
- /**
- * store the value of compress checkbox
- */
- define void StoreCompressCheckBox (string key, map event) {
- KiwiConfig["compressed"] = (boolean) UI::QueryWidget(`id(key), `Value);
- }
- /**
- * handler for compress checkbox
- */
- define symbol HandleCompressCheckBox (string key, map event) {
- // store the value on exiting
- if (event["ID"]:nil == `next) StoreCompressCheckBox (key, event);
- return nil;
- }
-
- /**
* initialize the value of version
*/
define void InitVersion (string id) {
@@ -411,42 +388,40 @@
}
/**
- * initialize the value of size unit
+ * initialize the values of "size", "sizeunit" and "additive" widgets
*/
- define void InitSizeUnitCombo (string id) {
- string unit = KiwiConfig["preferences",0,"size",0,"unit"]:"M";
- UI::ChangeWidget (`id (id), `Items, maplist (string u, [ "M", "G" ], ``(
- `item (`id (u), u + "B", unit == u))
- ));
- }
+ define void InitSize (string id) {
- /**
- * initialize the value of 'additive'
- */
- define void InitAdditiveCheckBox (string id) {
- boolean additive = KiwiConfig["preferences",0,"size",0,"additive"]:"" == "true";
- UI::ChangeWidget (`id (id), `Value, additive);
- }
+ map size_map = get_current_size_map (KiwiConfig, kiwi_task);
- /**
- * initialize the value of version
- */
- define void InitSize (string id) {
- integer siz = tointeger (get_preferences (KiwiConfig, "size", "2000"));
- if (siz == nil) siz = 2000;
- UI::ChangeWidget (`id (id), `Value, siz);
+ integer siz = tointeger (size_map[Kiwi::content_key]:"0");
+ if (siz == nil) siz = 0;
+ UI::ChangeWidget (`id ("size"), `Value, siz);
+ UI::ChangeWidget (`id ("additive"), `Value, size_map["additive"]:"" == "true");
+ UI::ChangeWidget (`id ("sizeunit"), `Items, maplist (string u, [ "M", "G" ], ``(
+ `item (`id (u), u + "B", size_map["unit"]:"M" == u))
+ ));
}
/**
- * store the size value
+ * store the values of "size", "sizeunit" and "additive" widgets
*/
define void StoreSize (string key, map event) {
- KiwiConfig["preferences",0,"size"] = [ $[
- content_key : sformat ("%1", UI::QueryWidget(`id(key), `Value)),
- "unit" : UI::QueryWidget (`id ("sizeunit"), `Value),
- "additive" : ((boolean) UI::QueryWidget (`id ("additive"), `Value))
- ? "true" : "false"
- ]];
+
+ KiwiConfig["preferences",0,"type"] = maplist (map typemap,
+ (list<map>)KiwiConfig["preferences",0,"type"]:[],
+ {
+ if (typemap["image"]:"" == kiwi_task)
+ {
+ typemap["size"] = [ $[
+ content_key : sformat ("%1", UI::QueryWidget(`id(key), `Value)),
+ "unit" : UI::QueryWidget (`id ("sizeunit"), `Value),
+ "additive" : ((boolean) UI::QueryWidget (`id ("additive"), `Value)) ? "true" : "false",
+ ] ];
+ }
+ return typemap;
+ });
+
}
/**
@@ -1322,22 +1297,10 @@
if (FileUtils::CheckAndCreatePath (out_dir) &&
Kiwi::PrepareAndCreate (out_dir, selected_profiles))
{
- if (kiwi_task == "usb" && false)
- {
- // additional question (yes/no)
- if (Popup::YesNo (sformat (success[kiwi_task]:"", out_dir) + _("
-Save the image to the stick now?")))
- {
- NotImplementedHandler ("", $[ "ID" : ""]);
- }
- }
- else
- {
- // default popup message, %1 is a dir
- Popup::Message (sformat (success[kiwi_task]:_("Image successfully created in
+ // default popup message, %1 is a dir
+ Popup::Message (sformat (success[kiwi_task]:_("Image successfully created in
%1
directory."), out_dir));
- }
}
else
{
@@ -1502,8 +1465,8 @@
KiwiConfig["preferences",0,"type"] = maplist (
map typemap, (list<map>)pref[0,"type"]:[],
{
- string type = typemap[content_key]:"";
- if (typemap["primary"]:"false" == "true" && type != kiwi_task)
+ string type = typemap["image"]:"";
+ if (tolower (typemap["primary"]:"false") == "true" && type != kiwi_task)
typemap = remove (typemap, "primary");
else if (type == kiwi_task)
{
@@ -1527,7 +1490,7 @@
map<string,any> def_map = Kiwi::ReadConfigXML (default_dir);
foreach (map typemap, (list<map>)def_map["preferences",0,"type"]:[],
{
- if (typemap[content_key]:"" == kiwi_task)
+ if (typemap["image"]:"" == kiwi_task)
{
KiwiConfig["preferences",0,"type"] = add (
KiwiConfig["preferences",0,"type"]:[], typemap);
@@ -1595,7 +1558,7 @@
// compression not allowed in most cases (bnc#510833)
foreach (map typemap, (list<map>)KiwiConfig["preferences",0,"type"]:[], {
- if (typemap[content_key]:"" == kiwi_task)
+ if (typemap["image"]:"" == kiwi_task)
{
if (typemap["filesystem"]:"" == "ext3")
show_compression = false;
@@ -1735,16 +1698,6 @@
"validate_function" : CreateImage,
"no_help" : true,
],
- // widgets for config.xml tab
- "compressed" : $[
- "widget" : `checkbox,
- // textentry label
- "label" : _("Co&mpress"),
- "help" : _("<p>Check <b>Compress</b> if the final image should be based \non the squashfs compressed file system."),
- "init" : InitCompressCheckBox,
- "store" : StoreCompressCheckBox,
- "handle" : HandleCompressCheckBox,
- ],
"compression" : $[
"widget" : `combobox,
"opt" : [ `hstretch, `notify ],
@@ -1830,7 +1783,6 @@
"label" : _("&Unit"),
"no_help" : true,
"items" : [],
- "init" : InitSizeUnitCombo,
// stored and handled by "size"
],
"additive" : $[
@@ -1838,7 +1790,6 @@
// check box label
"label" : _("Additive"),
"no_help" : true,
- "init" : InitAdditiveCheckBox,
],
// ---------------- widgtes for directory structure
"general_scripts" : $[
@@ -2256,7 +2207,7 @@
list type_its = [];
//solve `back here (=no import)
foreach (map typemap, (list<map>) Config["preferences",0,"type"]:[], {
- string type = typemap[content_key]:"";
+ string type = typemap["image"]:"";
type_its = add (type_its,
`item (`id (type), task2label[type]:type, type == kiwi_task));
});
@@ -2331,8 +2282,8 @@
kiwi_task = "";
foreach (map typemap, (list<map>) Config["preferences",0,"type"]:[], {
- string type = typemap[content_key]:"";
- if (typemap["primary"]:"false" == "true" || kiwi_task == "")
+ string type = typemap["image"]:"";
+ if (tolower (typemap["primary"]:"false") == "true" || kiwi_task == "")
kiwi_task = type;
if ((supported_images == "" && !contains (present_types, type)) ||
supported_images == "template")
Modified: trunk/product-creator/src/routines.ycp
URL: http://svn.opensuse.org/viewcvs/yast/trunk/product-creator/src/routines.ycp…
==============================================================================
--- trunk/product-creator/src/routines.ycp (original)
+++ trunk/product-creator/src/routines.ycp Tue May 24 10:34:00 2011
@@ -41,12 +41,10 @@
string task = "";
foreach (map typemap, (list<map>) config["preferences",0,"type"]:[], {
if (task == "") // take the 1st one if none is default
- task = typemap[Kiwi::content_key]:task;
- if (typemap["primary"]:"false" == "true")
+ task = typemap["image"]:task;
+ if (tolower (typemap["primary"]:"false") == "true")
{
- task = typemap[Kiwi::content_key]:task;
- if (task == "" && typemap["image"]:"" != "")
- task = typemap["image"]:"";
+ task = typemap["image"]:task;
break;
}
});
@@ -58,12 +56,24 @@
return task;
}
+// return the size info for current image type
+map get_current_size_map (map config, string task) {
+
+ map ret = $[];
+ foreach (map typemap, (list<map>) config["preferences",0,"type"]:[], {
+ if (task == typemap["image"]:"")
+ ret = typemap["size",0]:$[];
+ });
+ return ret;
+}
+
+
// get the value of boot image directory
string get_bootdir (map config, string task) {
string dir = "";
foreach (map typemap, (list<map>) config["preferences",0,"type"]:[], {
- if (task == typemap[Kiwi::content_key]:"")
+ if (task == typemap["image"]:"")
{
dir = typemap["boot"]:"";
break;
--
To unsubscribe, e-mail: yast-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: yast-commit+help(a)opensuse.org
1
0
[yast-commit] r64093 - /branches/tmp/dmacvicar/zc10/ncurses/src/NCPkgStrings.cc
by dmacvicar@svn2.opensuse.org 23 May '11
by dmacvicar@svn2.opensuse.org 23 May '11
23 May '11
Author: dmacvicar
Date: Mon May 23 22:21:03 2011
New Revision: 64093
URL: http://svn.opensuse.org/viewcvs/yast?rev=64093&view=rev
Log:
misisng file
Added:
branches/tmp/dmacvicar/zc10/ncurses/src/NCPkgStrings.cc
Added: branches/tmp/dmacvicar/zc10/ncurses/src/NCPkgStrings.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/tmp/dmacvicar/zc10/ncurses/sr…
==============================================================================
--- branches/tmp/dmacvicar/zc10/ncurses/src/NCPkgStrings.cc (added)
+++ branches/tmp/dmacvicar/zc10/ncurses/src/NCPkgStrings.cc Mon May 23 22:21:03 2011
@@ -0,0 +1,781 @@
+/*---------------------------------------------------------------------\
+| |
+| __ __ ____ _____ ____ |
+| \ \ / /_ _/ ___|_ _|___ \ |
+| \ V / _` \___ \ | | __) | |
+| | | (_| |___) || | / __/ |
+| |_|\__,_|____/ |_| |_____| |
+| |
+| core system |
+| (C) SuSE GmbH |
+\----------------------------------------------------------------------/
+
+ File: NCPkgStrings.cc
+
+ Author: Gabriele Strattner <gs(a)suse.de>
+
+/-*/
+
+
+#include "NCPkgStrings.h"
+
+#include "NCi18n.h"
+
+#include <libintl.h>
+
+
+/*
+ Textdomain "ncurses-pkg"
+*/
+
+const string NCPkgStrings::Deps()
+{
+ //menu entry 1 - all about pkg dependencies
+ static const string value = _( "&Dependencies" );
+ return value;
+}
+
+const string NCPkgStrings::View()
+{
+ //menu entry 2 - display different kinds of info on pkgs
+ static const string value = _( "&View" );
+ return value;
+}
+
+const string NCPkgStrings::Extras()
+{
+ //menu entry 3 - miscellaneous stuff
+ static const string value = _( "&Extras" );
+ return value;
+}
+
+const string NCPkgStrings::Filter()
+{
+ //pick a package filter - patterns, langs, repos, search,...
+ static const string value = _( "&Filter" );
+ return value;
+}
+
+
+const string NCPkgStrings::InstPkg()
+{
+ // All installed Packages
+ static const string value = _( "Installed Packages" );
+ return value;
+}
+
+const string NCPkgStrings::PackageName()
+{
+ // Label under the pkg table - pkg name follows
+ static const string value = _( "Package: " );
+ return value;
+}
+
+const string NCPkgStrings::Actions()
+{
+ // Actions on pkgs (install, remove,..)
+ static const string value = _( "A&ctions" );
+ return value;
+}
+
+const string NCPkgStrings::Help()
+{
+ // Help button
+ static const string value = _( "&Help" );
+ return value;
+}
+
+const string NCPkgStrings::PackageHelp()
+{
+ // the headline of the help window
+ static const string value = _( "General Help" );
+ return value;
+}
+
+const string NCPkgStrings::HelpPkgGen1()
+{
+ // part1 of help text package installation
+ static const string value = _( "<h3>Welcome to package selector</h3><p>This tool will help you to manage software installed on your system. You can install, update or remove single packages, as well as patterns (sets of packages serving certain purpose) or languages. Usually, you don't need to care about package dependencies when installing or removing anything - solver will do it for you. Package selector consists of three main parts: <b>filters, package table<b> and <b>menu</b>.</p>" );
+ return value;
+
+}
+
+const string NCPkgStrings::HelpPkgGen2()
+{
+ // part of help text package installation
+ static const string value = _( "<p><b>Filters</b> (left panel) are designed to make orientation in great amount of packages easier. They enable displaying e.g. only packages from certain repository, or in a selected pattern (for example, Games or C/C++ Development) as well as searching for particular keywords. More information on filters can be found in <i>How to use filters</i>.</p>" );
+ return value;
+}
+
+const string NCPkgStrings::HelpPkgGen3()
+{
+ // additional help text for post installation
+ static const string value = _( "<p><b>Package table</b> is the main component of package selector. You will see a list of packages matching current filter (for example, selected RPM group or search result) there. Each line of package table has several columns:</p>" );
+ return value;
+}
+
+const string NCPkgStrings::HelpPkgGen4 ()
+{
+ // part2 of help text package installation
+ static const string value = _( "<ol><li>Package status ( for more information see <i>Package Status and Symbols</i> )</li><li>Package name</li><li>Package summary</li><li>Available version ( on some of the configured repositories )</li><li>Installed version( empty for not yet installed packages )</li><li>Package size</li></ol>" );
+
+ return value;
+}
+
+const string NCPkgStrings::HelpPkgGen5()
+{
+ // part3 of help text package installation
+ static const string value = _( "<p><b>Actions</b> menu just below the table provides the possibilities to change the status of selected package (or all packages in the list), for example, to delete a package or select an additional package for installation. The status change can also be done directly by pressing the key specified in the menu item (for detailed information about the package status, see <i>Package Status and Symbols</i>).</p>" );
+ return value;
+}
+
+const string NCPkgStrings::HelpPkgGen6()
+{
+ // part4 of help text package installation
+ static const string value = _( "<p><b>Menu</b> provides functions related to package dependencies handling, displaying relevant information on packages and several other useful actions, such as opening repository editor. For more information, see <i>Useful Functions in Menu</i>.</p>" );
+ return value;
+}
+
+const string NCPkgStrings::PackageStatusHelp()
+{
+ // the headline of the help window
+ static const string value = _( "Package Status and Symbols" );
+ return value;
+}
+
+const string NCPkgStrings::HelpOnStatus1()
+{
+ // part 1 of help text package status
+ static const string value = _( "<p>The package status can be changed using the <i>Actions</i> menu or the keys specified in the menu items. For example, use '+' to install an additional package.</p><p>The \"Taboo\" status means the package should never be installed. Similarly \"Locked\" status means that installed version of this package should always be kept.</p>" );
+ return value;
+}
+
+const string NCPkgStrings::HelpOnStatus2()
+{
+ // part 2 of help text package status
+ static const string value = _( "<p>You can also use <b>RET</b> or <b>SPACE</b> to toggle the package status.The <i>Actions</i> menu also provides the possibility to change the status for all packages in the list (select 'All Listed Packages').</p>" );
+ return value;
+}
+const string NCPkgStrings::HelpOnStatus3()
+{
+ // part 3 of help text package status
+ static const string value = _( "<p>The meaning of the status flags:</p>" );
+ return value;
+}
+
+const string NCPkgStrings::HelpOnStatus4()
+{
+ // help text package status
+ static const string value = _( "<p><b> + </b>: package will be installed</p><p><b>a+ </b>: package will be installed automatically</p><p><b> > </b>: package will be updated</p><p><b>a> </b>: package will be automatically updated</p><p><b> i </b>: package is installed</p><p><b> - </b>: package will be deleted</p><p><b>---</b>: never install this package (taboo)</p>" );
+ return value;
+}
+
+const string NCPkgStrings::HelpOnStatus5()
+{
+ // help text package status
+ static const string value = _( "<p><b>-i-</b>: keep the installed version and never update or delete it ( package locked )</p><p>Status information for pattern and languages:</p><p><b> i </b>: All requirements of this pattern/language are satisfied</p>" );
+ return value;
+}
+
+const string NCPkgStrings::PackageFiltersHelp()
+{
+ // label for an error popup
+ static const string value = _( "How to Use Filters" );
+ return value;
+}
+
+const string NCPkgStrings::HelpOnFilters1()
+{
+ // help text package status
+ static const string value = _( "<p>Out of all available packages, <b>Filters</b> allow you to filter out only those you are interested in. Package filters are based on package properties (repository, RPM group), package \"containers\" (patterns, languages) or search results. Select the desired filter from the drop-down menu. Specific filters are described below.</p>" );
+ return value;
+}
+
+const string NCPkgStrings::HelpOnFilters2()
+{
+ // help text package status
+ static const string value = _( "<p><b>Patterns</b> describe the features and functions system should have (for example, X server or Console tools). Each pattern contains a set of packages it requires (must have), recommends (should have) and suggests (may have). If you trigger pattern for installation (update, deletion), solver will be run and change the status of subordinate packages accordingly.</p>" );
+ return value;
+}
+
+const string NCPkgStrings::HelpOnFilters3()
+{
+ // help text package status
+ static const string value = _( "<p><b>Languages</b> are package containers very much like patterns. They contain packages with translations, dictionaries and other language-specific files for selected language. <b>RPM Groups</b> are however not package containers that can be installed. Instead, membership in certain RPM group is a property of package itself. They have hierarchical (tree) structure. <b>Repositories</b> filter enables displaying packages coming only from specific repository. </p>" );
+ return value;
+}
+
+const string NCPkgStrings::HelpOnFilters4()
+{
+ // help text package search
+ static const string value = _( "<p>To use <b>Search</b> filter, enter a keyword (or part of keyword) for package search. For example, search for all 3D packages using expression \"3d\". It is also possible to search in package descriptions, RPM provides, or requires. Just select the appropriate check box. Start the search by hitting 'Search' button.</p>" );
+ return value;
+}
+
+const string NCPkgStrings::HelpOnFilters5()
+{
+ // help text package status
+static const string value = _( "<p><b>Installation summary</b> presents a summary of packages, whose status has changed in this session (for example, they were marked for installation, or removal), either by user, or automatically by the solver.</p>" );
+ return value;
+}
+
+const string NCPkgStrings::PackageMenuHelp()
+{
+ // label for an error popup
+ static const string value = _( "Useful Functions in Menu" );
+ return value;
+}
+
+const string NCPkgStrings::HelpPkgMenu1()
+{
+ static const string value = _( "<p><b>Dependencies:</b> This menu offers various actions related to package dependency handling. By default, the package dependencies are checked with every status change (<i>Automatic Dependency Check</i> is on) You will be informed about package conflicts in a dialog proposing possible conflict resolution. To resolve the conflict, select one of the offered solutions and press 'OK -- Try Again'.</p>" );
+ return value;
+}
+
+const string NCPkgStrings::HelpPkgMenu2()
+{
+ static const string value = _( "<p>To disable dependency checking on every status change, toggle <i>Automatic Dependency Check</i> off. In that case, you can check dependencies manually by selecting <i>Check Dependencies Now</i> item. <i>Verify system</i> entry will check package dependencies and resolve conflicts non-interactively, marking missing packages for automatic installation, if necessary. For debugging purpose, you may use <i>Generate Dependency Solver Testcase</i>. It will dump package dependencies data into <tt>/var/log/YaST2/solverTestcase</tt> directory. This is usually what you need when asked for \"solver testcase\" in bugzilla.</p>" );
+ return value;
+}
+
+const string NCPkgStrings::HelpPkgMenu2_2()
+{
+ static const string value = _( "<p>Available options for dependency checking are: <i>System Verification Mode</i> (monitor and repair dependencies of already installed packages and solve immediately), <i>Cleanup when deleting packages</i> (remove dependent unused packages) and <i>Allow vendor change</i> (package vendor may differ from vendor of installed package). Please note: after checking the system with <i>Verify System Now</i> the option <i>System Verification Mode</i> is on (if desired uncheck the option).</p>" );
+ return value;
+}
+const string NCPkgStrings::HelpPkgMenu3()
+{
+ static const string value = _( "<p><b>View:</b> here you have the possibility to choose which information about the selected package will be displayed in the window below the package table. Available options are: package description, technical data (version, size, license etc.) package versions (all available), file list (all files included in the package) and dependencies (provides, requires etc.).</p>" );
+ return value;
+}
+
+const string NCPkgStrings::HelpPkgMenu4()
+{
+ static const string value = _("<p><b>Configuration:</b> this menu integrates package selector with the rest of package management utils. From here, you can <b>Launch Repository Manager</b> and edit configured repositories or register to update repository and configure periodic download of available updates (<b>Launch Online Update Configuration</b>). Also, you can pick one of the three possible behaviours of package selector at exit - in <b>Action after Package Installation</b> menu.</p>");
+ return value;
+}
+const string NCPkgStrings::HelpPkgMenu5()
+{
+ static const string value = _( "<p><b>Extras:</b> miscellaneous functions reside here. <i>Export Package List to File</i> will dump data on installed packages, patterns and languages into specified XML file. This file can be later read by <i>Import Package List from File</i> option e.g. on different computer. It will bring the set of packages on the target computer into the same state as described in provided XML file. <i>Show Available Disk Space</i> will show a popup table displaying disk usage and free disk space on currently mounted partition.</p>" );
+ return value;
+}
+
+
+const string NCPkgStrings::SearchIn()
+{
+ // label of a frame with search settings
+ static const string value = _( "&Search in " );
+ return value;
+}
+
+const string NCPkgStrings::SearchPhrase()
+{
+ // begin: text/labels for search popups (use unique hotkeys until the end:)
+ // text for the package search popup
+ static const string value = _( "Search &Phrase" );
+ return value;
+}
+
+const string NCPkgStrings::PkgStatus()
+{
+ // column header status
+ static const string value = string(" ");
+ return value;
+}
+
+const string NCPkgStrings::PatternsLabel()
+{
+ // the label of the selections
+ static const string value = _( "Patterns" );
+ return value;
+}
+
+const string NCPkgStrings::LangCode()
+{
+ static const string value = _("Code");
+ return value;
+}
+
+const string NCPkgStrings::LangName()
+{
+ static const string value = _("Language");
+ return value;
+}
+
+const string NCPkgStrings::RepoURL()
+{
+ static const string value = _("URL");
+ return value;
+
+}
+
+const string NCPkgStrings::PkgName()
+{
+ // column header package name (keep it short!)
+ static const string value = _( "Name" );
+ return value;
+}
+
+const string NCPkgStrings::PkgVersion()
+{
+ // column header installed package version (keep it short!)
+ static const string value = _( "Version" );
+ return value;
+}
+
+const string NCPkgStrings::PkgInstSource()
+{
+ // column header - repository of the package (e.g. openSUSE 10.3)
+ static const string value = _( "Repository" );
+ return value;
+}
+
+const string NCPkgStrings::PkgVersionNew()
+{
+ // column header available package version (keep it short - use abbreviation!)
+ static const string value = _( "Avail. Vers." );
+ return value;
+}
+
+const string NCPkgStrings::PkgVersionInst()
+{
+ // column header installed package version (keep it short - use abbreviation!)
+ static const string value = _( "Inst. Vers." );
+ return value;
+}
+
+const string NCPkgStrings::PkgSummary()
+{
+ // column header package description (keep it short!)
+ static const string value = _( "Summary" );
+ return value;
+}
+
+
+const string NCPkgStrings::PkgSize()
+{
+ // column header package size (keep it short!)
+ static const string value = _( "Size" );
+ return value;
+}
+
+const string NCPkgStrings::PkgArch()
+{
+ // column header package architecture (keep it short!)
+ static const string value = _( "Architecture" );
+ return value;
+}
+
+const string NCPkgStrings::PatchKind()
+{
+ // column header patch kind (keep it short!)
+ static const string value = _( "Kind" );
+ return value;
+}
+
+const string NCPkgStrings::Solving()
+{
+ // a text for a small popup which is shown during package dependency checking
+ static const string value = _( "Solving..." );
+ return value;
+}
+const string NCPkgStrings::Saving()
+{
+ // a text for a small popup which is shown during writing package selection to a file
+ static const string value = _( "Saving..." );
+ return value;
+}
+const string NCPkgStrings::Loading()
+{
+ // a text for a samll popup which is shown during loading package selections from a file
+ static const string value = _( "Loading..." );
+ return value;
+}
+
+const string NCPkgStrings::DiskspaceLabel()
+{
+ // the headline of the disk space popup
+ static const string value = _( "Disk Usage Overview" );
+ return value;
+}
+
+const string NCPkgStrings::Partition()
+{
+ // column header name of the partition (keep it short!)
+ static const string value = _( "Partition" );
+ return value;
+}
+
+const string NCPkgStrings::UsedSpace()
+{
+ // column header used disk space (keep it short!)
+ static const string value = _( "Used" );
+ return value;
+}
+
+const string NCPkgStrings::FreeSpace()
+{
+ // column header free disk space (keep it short!)
+ static const string value = _( "Free" );
+ return value;
+}
+
+const string NCPkgStrings::TotalSpace()
+{
+ // column header total disk space (keep it short!)
+ static const string value = _( "Total" );
+ return value;
+}
+
+const string NCPkgStrings::DiskSpaceError()
+{
+ //
+ static const string value = _( "<i>Out of disk space!</i>" );
+ return value;
+}
+
+const string NCPkgStrings::DiskSpaceWarning()
+{
+ //
+ static const string value = _( "<b>Disk space is running out!</b>" );
+ return value;
+}
+
+const string NCPkgStrings::MoreText()
+{
+ // part of a text
+ static const string value = _( "needs" );
+ return value;
+}
+
+const string NCPkgStrings::MoreSpaceText()
+{
+ // part of a text
+ static const string value = _( "more disk space." );
+ return value;
+}
+
+const string NCPkgStrings::Version()
+{
+ // part of the package description
+ static const string value = _( "<b>Version: </b>" );
+ return value;
+}
+
+const string NCPkgStrings::Size()
+{
+ // part of the package description
+ static const string value = _( "<b>Size: </b>" );
+ return value;
+}
+
+const string NCPkgStrings::InstVersion()
+{
+ // part of the package description
+ static const string value = _( "<b>Installed: </b>" );
+ return value;
+}
+
+const string NCPkgStrings::Authors()
+{
+ // part of the package description
+ static const string value = _( "<b>Authors: </b>" );
+ return value;
+}
+
+const string NCPkgStrings::License()
+{
+ // part of the package description
+ static const string value = _( "<b>License: </b>" );
+ return value;
+}
+
+const string NCPkgStrings::MediaNo()
+{
+ // part of the package description
+ static const string value = _( "<b>Media No.: </b>" );
+ return value;
+}
+
+const string NCPkgStrings::RpmGroup()
+{
+ // part of the package description
+ static const string value = _( "<b>Package Group: </b>" );
+ return value;
+}
+
+const string NCPkgStrings::Provides()
+{
+ // part of the package description
+ static const string value = _( "<b>Provides: </b>" );
+ return value;
+}
+
+const string NCPkgStrings::Requires()
+{
+ // part of the package description
+ static const string value = _( "<b>Requires: </b>" );
+ return value;
+}
+
+const string NCPkgStrings::PreRequires()
+{
+ // part of the package description
+ static const string value = _( "<b>Prerequires: </b>" );
+ return value;
+
+}
+
+const string NCPkgStrings::Conflicts()
+{
+ // part of the package description
+ static const string value = _( "<b>Conflicts with: </b>" );
+ return value;
+}
+
+const string NCPkgStrings::ListOfFiles()
+{
+ // headline for a list of installed files
+ static const string value = _( "<i>List of Installed Files:</i><br>" );
+ return value;
+}
+
+const string NCPkgStrings::LanguageDescription()
+{
+ static const string value = _( "Translations, dictionaries and other language related files for " );
+ return value;
+}
+
+const string NCPkgStrings::AutoChangeLabel()
+{
+ // the headline of the popup containing a list with packages with status changes
+ static const string value = _( "Automatic Changes" );
+ return value;
+}
+
+const string NCPkgStrings::AutoChangeText1()
+{
+ // text part1 of popup with automatic changes (it's a label; text continous)
+ static const string value = _( "In addition to your manual selections, the following" );
+ return value;
+}
+
+const string NCPkgStrings::AutoChangeText2()
+{
+ // text part1 of popup with automatic changes continous
+ static const string value = _( "packages have been changed to resolve dependencies:" );
+ return value;
+}
+
+const string NCPkgStrings::YouHelp()
+{
+ // the headline of the help popup
+ static const string value = _( "Patch Status and Patch Installation" );
+ return value;
+}
+
+const string NCPkgStrings::YouHelp1()
+{
+ // help text online udpate
+ // Do NOT translate 'recommended' and 'security'! because the patch kind is always shown as english text.
+ static const string value = _( "<p>Kind \"recommended\" means you should install the patch. \"security\" is a security patch and it is highly recommended to install it.</p>" );
+ return value;
+}
+
+const string NCPkgStrings::YouHelp2()
+{
+ // help text online udpate continue
+ static const string value = _( "<p>Patches for \"libzypp\" (Package, Patch, Pattern and Product Management) will be always installed first. The other patches must be installed on a second run.</p>" );
+ return value;
+}
+
+const string NCPkgStrings::YouHelp3()
+{
+ // help text online udpate continue
+ static const string value = _( "<p>Meaning of the status flags:</p><p><b>a+ </b>: Patches concerning your installation are preselected. They will be downloaded and installed on your system. If you do not want a certain patch, deselect it with '-'.</p><p><b> i </b>: All requirements of this patch are satisfied.</p><p><b>+ </b>: You have selected this patch for installation.</p>" );
+ return value;
+}
+
+//
+// label, text for translation
+//
+const string NCPkgStrings::WarningLabel()
+{
+ // label for a warning popup
+ static const string value = _( "Warning" );
+ return value;
+}
+
+const string NCPkgStrings::ErrorLabel()
+{
+ // label for an error popup
+ static const string value = _( "Error" );
+ return value;
+}
+
+const string NCPkgStrings::NotifyLabel()
+{
+ // label for a notify popup
+ static const string value = _( "Notify" );
+ return value;
+}
+
+
+const string NCPkgStrings::OKLabel()
+{
+ // the label of an OK button
+ static const string value = _( "&OK" );
+ return value;
+}
+
+const string NCPkgStrings::CancelLabel()
+{
+ // begin: the label of the Cancel button
+ static const string value = _( "&Cancel" );
+ return value;
+}
+
+const string NCPkgStrings::YesLabel()
+{
+ // the label of the Yes button
+ static const string value = _( "&Yes" );
+ return value;
+}
+
+const string NCPkgStrings::AcceptLabel()
+{
+ // the label of an Accept button
+ static const string value = _( "&Accept" );
+ return value;
+}
+
+const string NCPkgStrings::NoLabel()
+{
+ // the label of the No button
+ static const string value = _( "&No" );
+ return value;
+}
+
+const string NCPkgStrings::SolveLabel()
+{
+ // the label of the Solve button - 'try again' implies that user
+ // has to make some action (#213602)
+ static const string value = _( "&OK -- Try Again" );
+ return value;
+}
+
+
+const string NCPkgStrings::CancelText()
+{
+ // text for a Notify popup
+ static const string value = _( "<p>All changes in package, patch or pattern selection will be lost.<br>Really exit?</p>" );
+ return value;
+}
+
+//FIXME: remove these if possible
+const string NCPkgStrings::LanguageLabel()
+{
+ // the label of language table
+ static const string value = _( "Available Languages" );
+ return value;
+}
+
+const string NCPkgStrings::RepoLabel()
+{
+ // the label of language table
+ static const string value = _( "Available Repositories" );
+ return value;
+}
+
+const string NCPkgStrings::YOUPatches()
+{
+ // A label for a list of YOU Patches - keep it short - max 25 chars!
+ // (the list shows all patches which are needed)
+ //static const string value = _( "Installable Patches" );
+ //static const string value = _( "Relevant Patches" );
+ static const string value = _( "Needed Patches" );
+ return value;
+}
+
+const string NCPkgStrings::InstPatches()
+{
+ // A label for a list of YOU Patches - keep it short - max. 25 chars!
+ // (the list shows all patches which are already installed)
+ //static const string value = _( "Installed Patches" );
+ static const string value = _( "Unneeded Patches" );
+ //static const string value = _( "Satisfied Patches" );
+ return value;
+}
+
+const string NCPkgStrings::Patches()
+{
+ // A common label for a list of YOU Patches - keep it short - max. 25 chars!
+ static const string value = _( "Online Update Patches" );
+ return value;
+}
+
+const string NCPkgStrings::UpdateProblem()
+{
+ // the label Filter: Update Problem ( keep it short - max. 25 chars )
+ static const string value = _( "Update Problem -- see help" );
+ return value;
+}
+
+const string NCPkgStrings::SearchResults()
+{
+ // the label for Filter: Search results
+ static const string value = _( "Search Results" );
+ return value;
+}
+
+const string NCPkgStrings::PackageDeps()
+{
+ // the headline of the dependency popup
+ static const string value = _( "Package Dependencies" );
+ return value;
+}
+
+const string NCPkgStrings::HelpOnUpdate()
+{
+ // help text package status
+ static const string value = _( "<b>Update Problem List</b><br><p>The packages in the list cannot be updated automatically.</p><p>Possible reasons:</p><p>They are obsoleted by other packages.</p><p>There is no newer version to which to update on any installation media.</p><p>They are third-party packages</p><p>Manually select what to do with them. The safest course of action is to delete them.</p>" );
+ return value;
+}
+
+const string NCPkgStrings::PkgSource()
+{
+ // column header source RPM installation (keep it short!)
+ static const string value = _( "Source" );
+ return value;
+}
+
+#if 0
+const string NCPkgStrings::MenuEntryUpdateList()
+{
+ // menu entry Update List
+ static const string value = _( "&Update List" );
+ return value;
+}
+#endif
+const string NCPkgStrings::Patch()
+{
+ // part of the patch description
+ static const string value = _( "<b>Patch: </b>" );
+ return value;
+}
+
+const string NCPkgStrings::NoPatches()
+{
+ // info line is shown if YOU patch list is empty
+ static const string value = _( "No patches available" );
+ return value;
+}
+
+const string NCPkgStrings::Script()
+{
+ static const string value = _( "Script" );
+ return value;
+
+}
+
+
--
To unsubscribe, e-mail: yast-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: yast-commit+help(a)opensuse.org
1
0
[yast-commit] r64092 - /branches/tmp/dmacvicar/zc10/ncurses/src/Makefile.am
by dmacvicar@svn2.opensuse.org 23 May '11
by dmacvicar@svn2.opensuse.org 23 May '11
23 May '11
Author: dmacvicar
Date: Mon May 23 22:04:34 2011
New Revision: 64092
URL: http://svn.opensuse.org/viewcvs/yast?rev=64092&view=rev
Log:
missing file
Modified:
branches/tmp/dmacvicar/zc10/ncurses/src/Makefile.am
Modified: branches/tmp/dmacvicar/zc10/ncurses/src/Makefile.am
URL: http://svn.opensuse.org/viewcvs/yast/branches/tmp/dmacvicar/zc10/ncurses/sr…
==============================================================================
--- branches/tmp/dmacvicar/zc10/ncurses/src/Makefile.am (original)
+++ branches/tmp/dmacvicar/zc10/ncurses/src/Makefile.am Mon May 23 22:04:34 2011
@@ -84,6 +84,7 @@
NCPopupTextEntry.h NCPopupTextEntry.cc \
\
YQZypp.h \
+ NCPkgStrings.h NCPkgStrings.cc \
NCPkgSelMapper.cc NCPkgSelMapper.h \
NCPackageSelector.cc NCPackageSelector.h \
NCPkgTable.cc NCPkgTable.h \
--
To unsubscribe, e-mail: yast-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: yast-commit+help(a)opensuse.org
1
0
[yast-commit] r64091 - /branches/tmp/dmacvicar/zc10/ncurses/package/yast2-ncurses.changes
by dmacvicar@svn2.opensuse.org 23 May '11
by dmacvicar@svn2.opensuse.org 23 May '11
23 May '11
Author: dmacvicar
Date: Mon May 23 21:58:12 2011
New Revision: 64091
URL: http://svn.opensuse.org/viewcvs/yast?rev=64091&view=rev
Log:
Fix changelog order
Modified:
branches/tmp/dmacvicar/zc10/ncurses/package/yast2-ncurses.changes
Modified: branches/tmp/dmacvicar/zc10/ncurses/package/yast2-ncurses.changes
URL: http://svn.opensuse.org/viewcvs/yast/branches/tmp/dmacvicar/zc10/ncurses/pa…
==============================================================================
--- branches/tmp/dmacvicar/zc10/ncurses/package/yast2-ncurses.changes (original)
+++ branches/tmp/dmacvicar/zc10/ncurses/package/yast2-ncurses.changes Mon May 23 21:58:12 2011
@@ -1242,12 +1242,6 @@
- improvements for package installation dialog
-------------------------------------------------------------------
-Thu Nov 14 20:56:17 CET 2002 - ma(a)suse.de
-
-- V 2.7.2
-- Fixed bug that inhibits logging on big-endian architectures.
-
--------------------------------------------------------------------
Tue Nov 26 15:36:02 CET 2002 - gs(a)suse.de
- V 2.6.24
@@ -1255,13 +1249,19 @@
(preserve newlines)
-------------------------------------------------------------------
+Thu Nov 14 20:56:17 CET 2002 - ma(a)suse.de
+
+- V 2.7.2
+- Fixed bug that inhibits logging on big-endian architectures.
+
+-------------------------------------------------------------------
Thu Nov 14 19:34:31 CET 2002 - ma(a)suse.de
- V 2.6.23
- Fixed bug that inhibits logging on big-endian architectures.
--------------------------------------------------------------------
+-------------------------------------------------------------------
Wed Nov 13 12:35:21 CET 2002 - gs(a)suse.de
- V 2.6.22
--
To unsubscribe, e-mail: yast-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: yast-commit+help(a)opensuse.org
1
0
[yast-commit] r64090 - /branches/tmp/dmacvicar/zc10/ncurses/src/
by dmacvicar@svn2.opensuse.org 23 May '11
by dmacvicar@svn2.opensuse.org 23 May '11
23 May '11
Author: dmacvicar
Date: Mon May 23 21:27:16 2011
New Revision: 64090
URL: http://svn.opensuse.org/viewcvs/yast?rev=64090&view=rev
Log:
Port to Code11 libzypp.
TODO: PkgTable class, updateInfo method commented.
Search progress popup commented.
Added:
branches/tmp/dmacvicar/zc10/ncurses/src/NCPkgStrings.h
Modified:
branches/tmp/dmacvicar/zc10/ncurses/src/NCPkgTable.cc
branches/tmp/dmacvicar/zc10/ncurses/src/NCPkgTable.h
branches/tmp/dmacvicar/zc10/ncurses/src/NCPopupDeps.cc
branches/tmp/dmacvicar/zc10/ncurses/src/NCPopupPkgTable.cc
branches/tmp/dmacvicar/zc10/ncurses/src/NCPopupSelection.cc
branches/tmp/dmacvicar/zc10/ncurses/src/ObjectStatStrategy.cc
branches/tmp/dmacvicar/zc10/ncurses/src/PackageSelector.cc
branches/tmp/dmacvicar/zc10/ncurses/src/PackageSelector.h
branches/tmp/dmacvicar/zc10/ncurses/src/YNCursesUI.cc
branches/tmp/dmacvicar/zc10/ncurses/src/YQZypp.h
Added: branches/tmp/dmacvicar/zc10/ncurses/src/NCPkgStrings.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/tmp/dmacvicar/zc10/ncurses/sr…
==============================================================================
--- branches/tmp/dmacvicar/zc10/ncurses/src/NCPkgStrings.h (added)
+++ branches/tmp/dmacvicar/zc10/ncurses/src/NCPkgStrings.h Mon May 23 21:27:16 2011
@@ -0,0 +1,317 @@
+/*---------------------------------------------------------------------\
+| |
+| __ __ ____ _____ ____ |
+| \ \ / /_ _/ ___|_ _|___ \ |
+| \ V / _` \___ \ | | __) | |
+| | | (_| |___) || | / __/ |
+| |_|\__,_|____/ |_| |_____| |
+| |
+| core system |
+| (C) SuSE GmbH |
+\----------------------------------------------------------------------/
+
+ File: NCPkgStrings.h
+
+ Author: Gabriele Strattner <gs(a)suse.de>
+
+/-*/
+#ifndef NCPkgStrings_h
+#define NCPkgStrings_h
+
+#include "NCstring.h"
+#include <string>
+
+
+
+// Class to make available globally used names in package selection dialog,
+// such as widget ids, text which has to be translated and so on
+
+class NCPkgStrings
+{
+public:
+
+ // Main menu entry Dependencies
+ static const string Deps();
+
+ // Main menu entry View
+ static const string View();
+
+ // Main menu entry 'Extras'
+ static const string Extras();
+
+ //Package Filters combo box label
+ static const string Filter();
+
+ static const string InstPkg();
+
+ //Label below the table - pkg name follows
+ static const string PackageName();
+
+ //Actions menu (what to do with the pkg)
+ static const string Actions();
+
+ static const string Help();
+
+ // The headline of the help popup
+ static const string PackageHelp();
+
+ //strings in 'General Help'
+ static const string HelpPkgGen1();
+ static const string HelpPkgGen2();
+ static const string HelpPkgGen3();
+ static const string HelpPkgGen4();
+ static const string HelpPkgGen5();
+ static const string HelpPkgGen6();
+
+ // The headline of the help popup
+ static const string PackageStatusHelp();
+
+ //strings in 'Package Status and symbols'
+ static const string HelpOnStatus1();
+ static const string HelpOnStatus2();
+ static const string HelpOnStatus3();
+ static const string HelpOnStatus4();
+ static const string HelpOnStatus5();
+
+ // The headline of the help popup
+ static const string PackageFiltersHelp();
+
+ //string in 'How to use filters'
+ static const string HelpOnFilters1();
+ static const string HelpOnFilters2();
+ static const string HelpOnFilters3();
+ static const string HelpOnFilters4();
+ static const string HelpOnFilters5();
+
+ // The headline of the help popup
+ static const string PackageMenuHelp();
+
+ // strings in 'Useful functions in menu'
+ static const string HelpPkgMenu1();
+ static const string HelpPkgMenu2();
+ static const string HelpPkgMenu2_2();
+ static const string HelpPkgMenu3();
+ static const string HelpPkgMenu4();
+ static const string HelpPkgMenu5();
+
+ //Search settings
+ static const string SearchIn();
+ static const string SearchPhrase();
+
+ // table column headlines
+ static const string PkgStatus();
+ static const string PatternsLabel();
+ static const string LangCode();
+ static const string LangName();
+ static const string RepoURL();
+ static const string PkgName();
+ static const string PkgSummary();
+ static const string PkgVersion();
+ static const string PkgInstSource();
+ static const string PkgVersionNew();
+ static const string PkgVersionInst();
+ static const string PkgSize();
+ static const string PkgArch();
+ static const string PkgSource();
+ static const string PatchKind();
+
+ //Useful busy popups
+ static const string Solving();
+ static const string Saving();
+ static const string Loading();
+
+ /**
+ * The headline of the disk space popup
+ */
+ static const string DiskspaceLabel();
+
+ //column headers, diskspace table
+ static const string Partition();
+ static const string UsedSpace();
+ static const string FreeSpace();
+ static const string TotalSpace();
+ /**
+ * The headline of the disk space popup
+ */
+ static const string DiskSpaceError();
+ static const string DiskSpaceWarning();
+ static const string MoreText();
+ static const string MoreSpaceText();
+
+ /**
+ * bold text Version: (richtext)
+ */
+ static const string Version();
+
+ /**
+ * bold text Installed version: (richtext)
+ */
+ static const string InstVersion();
+
+ /**
+ * bold text License: (richtext)
+ */
+ static const string License();
+
+ /**
+ * bold text Media No.: (richtext)
+ */
+ static const string MediaNo();
+
+ /**
+ * bold text Size: (richtext)
+ */
+ static const string Size();
+
+ /**
+ * bold text Package Group: (richtext)
+ */
+ static const string RpmGroup();
+
+ /**
+ * bold text Authors: (richtext)
+ */
+ static const string Authors();
+
+ /**
+ * bold text Provides: (richtext)
+ */
+ static const string Provides();
+
+ /**
+ * bold text Requires: (richtext)
+ */
+ static const string Requires();
+
+ /**
+ * bold text Required by: (richtext)
+ */
+ static const string PreRequires();
+
+ /**
+ * bold text Conflicts with: (richtext)
+ */
+ static const string Conflicts();
+
+ static const string ListOfFiles();
+ static const string LanguageDescription();
+ /**
+ * text used for automatic changes popup
+ */
+ static const string AutoChangeLabel();
+ static const string AutoChangeText1();
+ static const string AutoChangeText2();
+
+ /**
+ * The headline of the help YOU popup
+ */
+ static const string YouHelp();
+
+ /**
+ * help text package status
+ */
+ static const string YouHelp1();
+ static const string YouHelp2();
+ static const string YouHelp3();
+
+ static const string WarningLabel();
+ static const string ErrorLabel();
+ static const string NotifyLabel();
+
+ /**
+ * The label of the OK button
+ */
+ static const string OKLabel();
+
+ /**
+ * The label of the Cancel button
+ */
+ static const string CancelLabel();
+
+ /**
+ * The label of the Yes button
+ */
+ static const string YesLabel();
+
+ /**
+ * The label of the Accept button
+ */
+ static const string AcceptLabel();
+
+ /**
+ * The label of the No button
+ */
+ static const string NoLabel();
+
+ /**
+ * The label of the Solve button
+ */
+ static const string SolveLabel();
+
+
+ static const string CancelText();
+ /**
+ * The label of the language selections popup
+ */
+ static const string LanguageLabel();
+
+ /**
+ * The label of the repositories selections popup
+ */
+ static const string RepoLabel();
+
+ /**
+ * The label Filter: YOU Patches
+ */
+ static const string YOUPatches();
+ static const string InstPatches();
+ static const string Patches();
+
+ /**
+ * The label for Filter: Search results
+ */
+ static const string SearchResults();
+
+ /**
+ * The label for Filter: Update problem
+ */
+ static const string UpdateProblem();
+
+ /**
+ * The headline of the dependency popup
+ */
+ static const string PackageDeps();
+
+ static const string HelpOnUpdate();
+
+ /**
+ * bold text Patch: (richtext)
+ */
+ static const string Patch();
+
+ /**
+ * Info line in empty patch list
+ */
+ static const string NoPatches();
+
+ static const string MenuList();
+ static const string Script();
+
+
+
+private:
+
+ // Need no object of this class: hide default constructor
+ NCPkgStrings();
+
+ static int do_something(){ return 0; }
+
+};
+
+
+///////////////////////////////////////////////////////////////////
+
+#endif // NCPkgStrings_h
+
+
+
Modified: branches/tmp/dmacvicar/zc10/ncurses/src/NCPkgTable.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/tmp/dmacvicar/zc10/ncurses/sr…
==============================================================================
--- branches/tmp/dmacvicar/zc10/ncurses/src/NCPkgTable.cc (original)
+++ branches/tmp/dmacvicar/zc10/ncurses/src/NCPkgTable.cc Mon May 23 21:27:16 2011
@@ -91,10 +91,10 @@
case S_AutoDel: // Will be automatically deleted
return " a- ";
case S_AutoUpdate: // Will be automatically updated
- return " a> ";
- case S_Taboo: // Never install this
+ return " a> ";
+ case S_Taboo: // Never install this
return " ---";
- case S_Protected: // always keep installed version
+ case S_Protected: // always keep installed version
return " -i-";
default:
return "####";
@@ -119,7 +119,7 @@
, haveInstalledVersion ( false )
{
fillHeader();
-
+
WIDDBG << endl;
}
@@ -154,7 +154,7 @@
ZyppSel slbPtr )
{
vector<NCTableCol*> Items( elements.size()+1, 0 );
-
+
// fill first column (containing the status information and the package pointers)
Items[0] = new NCPkgTableTag( objPtr, slbPtr, stat );
@@ -163,9 +163,9 @@
Items[i] = new NCTableCol( YCPString( elements[i-1] ) );
}
myPad()->Append( Items );
-
+
// don't call DrawPad(); for every line - is called once after the loop
-
+
}
///////////////////////////////////////////////////////////////////
@@ -178,7 +178,7 @@
//
void NCPkgTable::itemsCleared()
{
- return NCTable::itemsCleared();
+ return NCTable::itemsCleared();
}
@@ -213,8 +213,8 @@
if ( !packager || !slbPtr )
return false;
- zypp::Text notify;
- zypp::License license;
+ std::string notify;
+ std::string license;
bool license_confirmed = true;
ZyppPkg pkgPtr = NULL;
YCPString header( "" );
@@ -235,7 +235,7 @@
case S_Install:
case S_Update:
if ( objPtr )
- {
+ {
notify = objPtr->insnotify();
NCDBG << "NOTIFY message: " << notify << endl;
header = YCPString(PkgNames::NotifyLabel());
@@ -277,7 +277,7 @@
case S_AutoInstall:
newstatus = S_Taboo;
break;
-
+
case S_Update:
case S_AutoUpdate:
newstatus = S_Protected;
@@ -286,7 +286,7 @@
default:
break;
}
-
+
ok = false;
} else {
NCMIL << "User confirmed license agreement for " << pkgName << endl;
@@ -301,10 +301,10 @@
YCPString( "<i>" + pkgName + "</i><br><br>" + packager->createDescrText( notify ) ) );
info.showInfoPopup( );
}
-
+
// inform the package manager
ok = statusStrategy->setObjectStatus( newstatus, slbPtr, objPtr );
-
+
if ( ok && singleChange )
{
switch ( tableType )
@@ -322,22 +322,22 @@
// don't show diskspace (type T_Availables is also used in YOU mode)
break;
case T_Selections:
- // check/show dependencies of selections
+ // check/show dependencies of selections
packager->showSelectionDependencies();
packager->showDiskSpace();
break;
-
+
case T_Patches:
// show the download size for all selected patches
packager->showDownloadSize();
break;
-
+
default:
break;
}
// update this list to show the status changes
updateTable();
-
+
if ( tableType == T_Availables )
{
// additionally update the package list
@@ -364,7 +364,7 @@
while ( index < size )
{
- // get the table line
+ // get the table line
NCTableLine * cl = myPad()->ModifyLine( index );
if ( !cl )
{
@@ -383,7 +383,7 @@
ret = false;
break;
}
-
+
ZyppStatus newstatus = S_NoInst;
if ( slbPtr && objPtr)
{
@@ -399,7 +399,7 @@
{
// get the new status and replace old status
newstatus = statusStrategy->getPackageStatus( slbPtr, objPtr );
-
+
// set new status (if status has changed)
if ( getStatus(index) != newstatus )
{
@@ -429,7 +429,7 @@
case T_Patches: {
packager->fillPatchList( "installable" ); // default: installable patches
- // set the visible info to long description
+ // set the visible info to long description
packager->setVisibleInfo ( PkgNames::PatchDescr() );
// show the package description of the current item
showInformation ();
@@ -439,7 +439,7 @@
if ( ! zypp::getZYpp()->resolver()->problematicUpdateItems().empty() )
{
packager->fillUpdateList();
- // set the visible info to package description
+ // set the visible info to package description
packager->setVisibleInfo ( PkgNames::PkgInfo() );
// show the package description of the current item
showInformation ();
@@ -453,8 +453,8 @@
{
packager->fillPackageList ( YCPString( defaultGroup->value().translation()),
defaultGroup );
-
- // set the visible info to package description
+
+ // set the visible info to package description
packager->setVisibleInfo ( PkgNames::PkgInfo() );
// show the package description of the current item
showInformation ();
@@ -487,7 +487,7 @@
//
// fillHeader
//
-// Fillup the column headers of the package table
+// Fillup the column headers of the package table
//
void NCPkgTable::fillHeader( )
{
@@ -584,14 +584,14 @@
NCERR << "No valid package available" << endl;
return false;
}
-
+
// add the package name
- pkgLine.push_back( slbPtr->name() );
+ pkgLine.push_back( slbPtr->name() );
string instVersion = "";
string version = "";
ZyppStatus status;
-
+
switch( tableType )
{
case T_PatchPkgs: {
@@ -599,7 +599,7 @@
{
instVersion = slbPtr->installedObj()->edition().asString();
}
-
+
// in case of YOU patches: show the version of the package which
// is contained in the patch
version = pkgPtr->edition().asString();
@@ -611,10 +611,10 @@
pkgLine.push_back( instVersion );
pkgLine.push_back( pkgPtr->summary() ); // short description
-
+
status = slbPtr->status(); // the package status
NCMIL << "Status of " << slbPtr->name() << ": " << status << endl;
- zypp::ByteCount size = pkgPtr->size(); // installed size
+ zypp::ByteCount size = pkgPtr->installSize(); // installed size
pkgLine.push_back( size.asString( 8 ) ); // format size
break;
@@ -624,11 +624,11 @@
if ( pkgPtr == slbPtr->candidateObj() )
isCandidate = " x ";
pkgLine.push_back( isCandidate );
-
+
version = pkgPtr->edition().asString();
pkgLine.push_back( version );
// is alias the right string? id?
- pkgLine.push_back( pkgPtr->source().alias() ); // show the installation source
+ pkgLine.push_back( pkgPtr->repoInfo().alias() ); // show the installation source
// set package status either to S_NoInst or S_KeepInstalled
status = S_NoInst;
@@ -640,17 +640,17 @@
status = S_KeepInstalled;
}
}
-
- zypp::ByteCount size = pkgPtr->size(); // installed size
+
+ zypp::ByteCount size = pkgPtr->installSize(); // installed size
pkgLine.push_back( size.asString( 8 ) ); // format size
pkgLine.push_back( pkgPtr->arch().asString()); // architecture
-
+
break;
}
default: {
// version() was edition.version. but what about edition.release?
- // if the package is installed, get the installed version
+ // if the package is installed, get the installed version
if ( slbPtr->hasInstalledObj() )
{
instVersion = slbPtr->installedObj()->edition().version();
@@ -672,26 +672,26 @@
pkgLine.push_back( instVersion ); // installed version
}
pkgLine.push_back( pkgPtr->summary() ); // short description
-
+
status = slbPtr->status(); // the package status
- zypp::ByteCount size = pkgPtr->size(); // installed size
+ zypp::ByteCount size = pkgPtr->installSize(); // installed size
pkgLine.push_back( size.asString( 8 ) ); // format size
// Selectable does not have source_install
#ifdef FIXME
if ( slbPtr->source_install() )
{
- pkgLine.push_back( " x " );
+ pkgLine.push_back( " x " );
}
else
#endif
{
- pkgLine.push_back( " " );
+ pkgLine.push_back( " " );
}
}
}
-
+
addLine( status, // the package status
pkgLine, // the package data
pkgPtr, // the corresponding package pointer
@@ -716,7 +716,7 @@
pkgLine,
ZyppObj(),
ZyppSel()); // null pointer
-
+
return true;
}
@@ -729,7 +729,7 @@
{
vector<string> pkgLine;
pkgLine.reserve(5);
-
+
if ( !patchPtr || !selectable )
{
NCERR << "No valid patch available" << endl;
@@ -737,19 +737,19 @@
}
pkgLine.push_back( selectable->name() ); // show the patch name
-
+
if ( !patchPtr->summary().empty() )
pkgLine.push_back( patchPtr->summary() ); // short description
else
- pkgLine.push_back( selectable->name() ); // name
+ pkgLine.push_back( selectable->name() ); // name
pkgLine.push_back( patchPtr->category() ); // patch kind
pkgLine.push_back( patchPtr->edition().asString() ); // patch version
-
+
// zypp::ByteCount size = patchPtr->size();
// pkgLine.push_back( size.asString( 8 ) );
-
+
addLine( selectable->status(), // get the status
pkgLine,
patchPtr,
@@ -770,25 +770,76 @@
if ( !packager )
return false;
-
+
switch ( tableType )
{
case T_Packages:
case T_Update:
// show the required package info
- packager->showPackageInformation( objPtr, slbPtr );
+ if (objPtr && slbPtr)
+ {
+ packager->showPackageInformation( objPtr, slbPtr );
+ //updateInfo( objPtr, slbPtr, VisibleInfo() );
+ //packager->PackageLabel()->setLabel( slbPtr->name() );
+ }
break;
case T_Patches:
// show the patch info
+ //if (objPtr && slbPtr )
+ // updateInfo( objPtr, slbPtr, VisibleInfo() );
packager->showPatchInformation( objPtr, slbPtr );
break;
default:
break;
}
-
+
return true;
}
+void NCPkgTable::updateInfo( ZyppObj pkgPtr, ZyppSel slbPtr, NCPkgTableInfoType mode )
+{
+/*
+ switch (mode)
+ {
+ case I_Descr:
+ if ( packager->InfoText() )
+ packager->InfoText()->longDescription( pkgPtr );
+ break;
+ case I_Technical:
+ if ( packager->InfoText() )
+ packager->InfoText()->technicalData( pkgPtr, slbPtr );
+ break;
+ case I_Files:
+ if ( packager->InfoText() )
+ packager->InfoText()->fileList( slbPtr );
+ break;
+ case I_Deps:
+ if ( packager->InfoText() )
+ packager->InfoText()->dependencyList( pkgPtr, slbPtr );
+ break;
+ case I_Versions:
+ if ( packager->VersionsList() )
+ packager->VersionsList()->fillAvailableList( slbPtr );
+ break;
+ case I_PatchDescr:
+ if ( packager->InfoText() )
+ packager->InfoText()->patchDescription( pkgPtr, slbPtr );
+ break;
+ case I_PatchPkgs:
+ if ( packager->PatchPkgs() )
+ packager->fillPatchPackages( packager->PatchPkgs(), pkgPtr );
+ break;
+ case I_PatchPkgsVersions:
+ if ( packager->PatchPkgsVersions() )
+ packager->fillPatchPackages( packager->PatchPkgsVersions(), pkgPtr, true );
+ break;
+ // Intentionally omitting 'default' branch so the compiler can
+ // catch unhandled enum states
+ }
+*/
+}
+
+
///////////////////////////////////////////////////////////////////
//
//
@@ -800,10 +851,10 @@
NCursesEvent NCPkgTable::wHandleInput( wint_t key )
{
NCursesEvent ret = NCursesEvent::none;
-
+
// call handleInput of NCPad
handleInput( key );
-
+
switch ( key )
{
case KEY_UP:
@@ -823,7 +874,7 @@
toggleObjStatus( );
ret = NCursesEvent::handled;
- break;
+ break;
}
default: {
// set the new status
@@ -845,7 +896,7 @@
//
ZyppStatus NCPkgTable::getStatus( int index )
{
- // get the tag
+ // get the tag
NCPkgTableTag * cc = getTag( index);
if ( !cc )
return S_NoInst;
@@ -855,7 +906,7 @@
ZyppObj NCPkgTable::getDataPointer( int index )
{
- // get the tag
+ // get the tag
NCPkgTableTag *cc = getTag( index );
if ( !cc )
return ZyppObj( );
@@ -865,7 +916,7 @@
ZyppSel NCPkgTable::getSelPointer( int index )
{
- // get the tag
+ // get the tag
NCPkgTableTag *cc = getTag( index );
if ( !cc )
return ZyppSel( );
@@ -875,7 +926,7 @@
NCPkgTableTag * NCPkgTable::getTag( const int & index )
{
- // get the table line
+ // get the table line
NCTableLine * cl = myPad()->ModifyLine( index );
if ( !cl )
return 0;
@@ -897,7 +948,7 @@
int index = getCurrentItem();
ZyppObj objPtr = getDataPointer( index );
bool ok;
-
+
if ( !objPtr )
{
NCERR << "Invalid Pointer" << endl;
@@ -905,14 +956,14 @@
}
ZyppSel selPtr = objPtr->getSelectable();
NCTableLine * currentLine = myPad()->ModifyLine( index );
-
+
if ( !selPtr || !currentLine )
{
NCERR << "Invalid Selectable" << endl;
return false;
}
- NCTableCol * currentCol = currentLine->GetCol( currentLine->Cols()-1 );
+ NCTableCol * currentCol = currentLine->GetCol( currentLine->Cols()-1 );
if ( install && selPtr->providesSources() )
{
@@ -928,7 +979,7 @@
if ( currentCol )
currentCol->SetLabel( NClabel( " " ) );
}
-
+
return true;
}
#endif
@@ -945,16 +996,16 @@
if ( !slbPtr )
return false;
-
+
ZyppStatus newStatus;
-
+
bool ok = statusStrategy->toggleStatus( slbPtr, objPtr, newStatus );
if ( ok )
{
changeStatus( newStatus, slbPtr, objPtr, true );
}
-
+
return true;
}
@@ -970,12 +1021,12 @@
if ( !slbPtr )
{
- return false;
+ return false;
}
ZyppStatus newStatus;
bool ok = statusStrategy->keyToStatus( key, slbPtr, objPtr, newStatus );
-
+
if ( ok )
{
changeStatus( newStatus, slbPtr, objPtr, true );
@@ -1000,12 +1051,12 @@
ZyppSel slbPtr = getSelPointer( index );
ZyppObj objPtr = getDataPointer( index );
bool ok = false;
-
+
if ( slbPtr )
{
switch ( type ) {
case A_Install: {
- if ( slbPtr->status() == S_NoInst )
+ if ( slbPtr->status() == S_NoInst )
ok = statusStrategy->keyToStatus( '+', slbPtr, objPtr, newStatus );
break;
}
@@ -1028,7 +1079,7 @@
}
case A_UpdateNewer: {
if ( slbPtr->status() == S_KeepInstalled && slbPtr->hasCandidateObj() ) {
- if ( slbPtr->installedObj()->edition() < slbPtr->candidateObj()->edition() )
+ if ( slbPtr->installedObj()->edition() < slbPtr->candidateObj()->edition() )
ok = statusStrategy->keyToStatus( '>', slbPtr, objPtr, newStatus );
}
break;
Modified: branches/tmp/dmacvicar/zc10/ncurses/src/NCPkgTable.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/tmp/dmacvicar/zc10/ncurses/sr…
==============================================================================
--- branches/tmp/dmacvicar/zc10/ncurses/src/NCPkgTable.h (original)
+++ branches/tmp/dmacvicar/zc10/ncurses/src/NCPkgTable.h Mon May 23 21:27:16 2011
@@ -26,7 +26,7 @@
#include "NCTable.h"
#include "PkgNames.h"
-#include <map>
+#include <map>
#include <string>
#include <utility> // for STL pair
@@ -56,7 +56,7 @@
// returns the corresponding string value to given package status
string statusToStr( ZyppStatus stat ) const;
-
+
public:
NCPkgTableTag( ZyppObj pkgPtr,
@@ -68,7 +68,7 @@
virtual void DrawAt( NCursesWindow & w, const wrect at,
NCTableStyle & tableStyle,
NCTableLine::STATE linestate,
- unsigned colidx ) const;
+ unsigned colidx ) const;
void setStatus( ZyppStatus stat ) { status = stat; }
ZyppStatus getStatus() const { return status; }
@@ -112,19 +112,30 @@
L_Installed,
L_Unknown
};
-
+
+ enum NCPkgTableInfoType {
+ I_Descr,
+ I_Technical,
+ I_Versions,
+ I_Files,
+ I_Deps,
+ I_PatchDescr,
+ I_PatchPkgs,
+ I_PatchPkgsVersions
+ };
+
private:
NCPkgTable & operator=( const NCPkgTable & );
NCPkgTable ( const NCPkgTable & );
-
+
PackageSelector * packager; // connection to the PackageSelector,
ObjectStatStrategy * statusStrategy; // particular methods to get the status
NCPkgTableType tableType; // the type (e.g. table of packages, patches)
bool haveInstalledVersion; // for T_Packages and T_Update
-
+
// returns the first column of line with 'index' (the tag)
NCPkgTableTag * getTag ( const int & index );
@@ -156,9 +167,9 @@
/**
* Draws the package list (has to be called after the loop with addLine() calls)
- */
+ */
void drawList( ) { return DrawPad(); }
-
+
/**
* Clears the package list
*/
@@ -201,7 +212,7 @@
* the currently selected package and updates the states
* of all packages in the list
* @param newstat The new status
- * @param slbPtr The pointer to the object to change
+ * @param slbPtr The pointer to the object to change
* @param objPtr is candidatePtr or what the user selected instead of it.
* @return bool
*/
@@ -209,7 +220,7 @@
const ZyppSel & slbPtr,
ZyppObj objPtr,
bool singleChange );
-
+
bool changeObjStatus( int key );
bool changeListObjStatus( NCPkgTableListAction key );
@@ -217,27 +228,27 @@
bool toggleObjStatus( );
/**
- * Set the status information if status has changed
+ * Set the status information if status has changed
* @return bool
- */
+ */
bool updateTable();
/**
* Gets the currently displayed package status.
* @param index The index in package table (the line)
* @return ZyppStatus
- */
+ */
ZyppStatus getStatus( int index );
#ifdef FIXME
/**
* Toggles the installation of the source package.
- * @param install
+ * @param install
* @return bool
- */
+ */
bool SourceInstall( bool install );
#endif
-
+
/**
* Sets the type of the table and the status strategy (which means call particular methods
* to set/get the status for different zypp::ResObjects (zypp::Patch, zypp::Package or available zypp::Package)
@@ -249,7 +260,7 @@
bool setTableType( NCPkgTableType type, ObjectStatStrategy * strategy ) {
if ( !strategy )
return false;
-
+
delete statusStrategy;
statusStrategy = strategy;
tableType = type;
@@ -261,32 +272,32 @@
* Gets the data pointer of a certain package.
* @param index The index in package table (the line)
* @return ZyppObj
- */
+ */
ZyppObj getDataPointer( int index );
/**
* Gets the selectable pointer of a certain package.
* @param index The index in package table (the line)
* @return ZyppSel
- */
+ */
ZyppSel getSelPointer( int index );
/**
* Returns the number of lines in the table (the table size)
* @return unsigned int
- */
+ */
unsigned int getNumLines( ) { return myPad()->Lines(); }
/**
* Shows default list (packages of default RPM group or patch list)
* @return bool
- */
+ */
bool fillDefaultList( );
/**
* Fills the header of the table
* @return void
- */
+ */
void fillHeader( );
/**
@@ -294,29 +305,30 @@
* @param pkgPtr The package pointer
* @param slbPtr The selectable pointer
* @return bool
- */
+ */
bool createListEntry ( ZyppPkg pkgPtr, ZyppSel slbPtr );
/**
* Creates a line in the YOU patch table.
- * @param pkgPtr The YOU patch pointer
+ * @param pkgPtr The YOU patch pointer
* @return bool
- */
+ */
bool createPatchEntry ( ZyppPatch pkgPtr, ZyppSel slbPtr );
/**
* Creates a line in the table shwing an info text.
* @param text The information
* @return bool
- */
+ */
bool createInfoEntry ( string text );
/**
* Show the corresponding information (e.g. the package description).
* @return bool
- */
+ */
bool showInformation ( );
+ void updateInfo( ZyppObj pkgPtr, ZyppSel slbPtr, NCPkgTableInfoType mode );
};
Modified: branches/tmp/dmacvicar/zc10/ncurses/src/NCPopupDeps.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/tmp/dmacvicar/zc10/ncurses/sr…
==============================================================================
--- branches/tmp/dmacvicar/zc10/ncurses/src/NCPopupDeps.cc (original)
+++ branches/tmp/dmacvicar/zc10/ncurses/src/NCPopupDeps.cc Mon May 23 21:27:16 2011
@@ -244,7 +244,7 @@
success = resolver->resolvePool();
break;
case S_Verify:
- success = resolver->verifySystem( true ); // check hardware
+ success = resolver->verifySystem(); // check hardware
break;
default:
NCERR << "Unknown action for resolve" << endl;
Modified: branches/tmp/dmacvicar/zc10/ncurses/src/NCPopupPkgTable.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/tmp/dmacvicar/zc10/ncurses/sr…
==============================================================================
--- branches/tmp/dmacvicar/zc10/ncurses/src/NCPopupPkgTable.cc (original)
+++ branches/tmp/dmacvicar/zc10/ncurses/src/NCPopupPkgTable.cc Mon May 23 21:27:16 2011
@@ -96,7 +96,7 @@
split->addChild( lb1 );
NCLabel * lb2 = new NCLabel( split, opt, YCPString(PkgNames::AutoChangeText2()) );
split->addChild( lb2 );
-
+
// add the package table (use default type T_Packages)
pkgTable = new NCPkgTable( split, opt );
pkgTable->setPackager( packager );
@@ -147,19 +147,19 @@
pkgTable->itemsCleared(); // clear the table
- set<string> ignoredNames;
+ set<string> ignoredNames;
set<string> userWantedNames = zypp::ui::userWantedPackageNames();
//these are the packages already selected for autoinstallation in previous 'verify system' run
set<string> verifiedNames = packager->getVerifiedPkgs();
//initialize storage for the new set
insert_iterator< set<string> > result (ignoredNames, ignoredNames.begin());
-
+
if(!verifiedNames.empty())
- {
+ {
//if we have some leftovers from previous run, do the union of the sets
set_union(userWantedNames.begin(), userWantedNames.end(),
- verifiedNames.begin(), verifiedNames.end(), result );
+ verifiedNames.begin(), verifiedNames.end(), result );
}
else
//else just take userWanted stuff
@@ -167,7 +167,7 @@
for ( set<string>::iterator it = ignoredNames.begin(); it != ignoredNames.end(); ++it )
NCMIL << "Ignoring: " << *it << endl;
-
+
ZyppPoolIterator
b = zyppPkgBegin(),
e = zyppPkgEnd(),
@@ -180,7 +180,7 @@
// show all packages which are automatically selected for installation
if ( slb->toModify() && slb->modifiedBy () != zypp::ResStatus::USER )
{
- if ( ! contains( ignoredNames, slb->name() ) )
+ if ( ignoredNames.find(slb->name()) ==ignoredNames.end() )
{
ZyppPkg pkgPtr = tryCastToZyppPkg (slb->theObj());
if ( pkgPtr )
Modified: branches/tmp/dmacvicar/zc10/ncurses/src/NCPopupSelection.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/tmp/dmacvicar/zc10/ncurses/sr…
==============================================================================
--- branches/tmp/dmacvicar/zc10/ncurses/src/NCPopupSelection.cc (original)
+++ branches/tmp/dmacvicar/zc10/ncurses/src/NCPopupSelection.cc Mon May 23 21:27:16 2011
@@ -25,7 +25,7 @@
#include "PkgNames.h"
#include "NCPkgTable.h"
#include "ObjectStatStrategy.h"
-#include <zypp/ui/PatternContents.h>
+#include <zypp/Pattern.h>
#include "YQZypp.h"
@@ -154,15 +154,18 @@
// show the package list
std::set<std::string> packages;
- ZyppSelection selPtr = tryCastToZyppSelection (objPtr);
- ZyppPattern patPtr = tryCastToZyppPattern (objPtr);
- if (selPtr)
- packages = selPtr->install_packages ();
- else if (patPtr)
- {
- zypp::ui::PatternContents patternContents( patPtr );
- packages = patternContents.install_packages();
- }
+ ZyppPattern patPtr = tryCastToZyppPattern (objPtr);
+ zypp::Pattern::Contents related ( patPtr->contents() );
+ for ( zypp::Pattern::Contents::Selectable_iterator it = related.selectableBegin();
+ it != related.selectableEnd();
+ ++it )
+ {
+ ZyppPkg zyppPkg = tryCastToZyppPkg( (*it)->theObj() );
+ if ( zyppPkg )
+ {
+ packages.insert(zyppPkg->name());
+ }
+ }
packager->showSelPackages( getCurrentLine(), packages );
// showDiskSpace() moved to NCPkgTable.cc (show/check diskspace
@@ -209,7 +212,7 @@
vdim = 20;
else
vdim = NCurses::lines()-4;
-
+
return ( dim == YD_HORIZ ? NCurses::cols()*2/3 : vdim );
}
@@ -262,21 +265,7 @@
///////////////////////////////////////////////////////////////////
//
-// OrderFunc
-//
-bool order( ZyppSel slb1, ZyppSel slb2 )
-{
- ZyppSelection ptr1 = tryCastToZyppSelection (slb1->theObj());
- ZyppSelection ptr2 = tryCastToZyppSelection (slb2->theObj());
- if ( !ptr1 || !ptr2 )
- return false;
- else
- return ptr1->order() < ptr2->order();
-}
-
-///////////////////////////////////////////////////////////////////
-//
-// OrderFuncPattern
+// OrderFuncPattern
//
bool orderPattern( ZyppSel slb1, ZyppSel slb2 )
{
@@ -303,35 +292,14 @@
ZyppPoolIterator i, b, e;
list<ZyppSel> slbList;
-
+
switch ( type )
{
- case S_Selection:
- {
- for ( i = zyppSelectionsBegin () ; i != zyppSelectionsEnd (); ++i )
- {
- ZyppObj resPtr = (*i)->theObj();
- bool show;
-
- ZyppSelection selPtr = tryCastToZyppSelection (resPtr);
- show = selPtr && selPtr->visible() && !selPtr->isBase();
- if (show)
- {
- NCMIL << resPtr->kind () <<": " << resPtr->name()
- << ", initial status: " << (*i)->status() << endl;
-
- slbList.push_back (*i);
- }
- }
- slbList.sort( order );
-
- break;
- }
case S_Pattern:
{
for ( i = zyppPatternsBegin () ; i != zyppPatternsEnd (); ++i )
{
- ZyppObj resPtr = (*i)->theObj();
+ ZyppObj resPtr = (*i)->theObj();
bool show;
ZyppPattern patPtr = tryCastToZyppPattern (resPtr);
@@ -351,7 +319,7 @@
default:
NCERR << "Selecion type not handled: " << type << endl;
}
-
+
list<ZyppSel>::iterator listIt;
vector<string> pkgLine;
for ( listIt = slbList.begin(); listIt != slbList.end(); ++listIt )
@@ -365,6 +333,6 @@
resPtr, // ZyppSelection or ZyppPattern
(*listIt) ); // ZyppSel
}
-
+
return true;
}
Modified: branches/tmp/dmacvicar/zc10/ncurses/src/ObjectStatStrategy.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/tmp/dmacvicar/zc10/ncurses/sr…
==============================================================================
--- branches/tmp/dmacvicar/zc10/ncurses/src/ObjectStatStrategy.cc (original)
+++ branches/tmp/dmacvicar/zc10/ncurses/src/ObjectStatStrategy.cc Mon May 23 21:27:16 2011
@@ -67,25 +67,25 @@
/////////////////////////////////////////////////////////////////
//
-// ObjectStatStrategy::setObjectStatus()
+// ObjectStatStrategy::setObjectStatus()
//
// Informs the package manager about the status change
//
bool ObjectStatStrategy::setObjectStatus( ZyppStatus newstatus, ZyppSel slbPtr, ZyppObj objPtr )
{
bool ok = false;
-
+
if ( !slbPtr )
{
NCERR << "Invalid package object" << endl;
return false;
}
- ok = slbPtr->set_status( newstatus );
+ ok = slbPtr->setStatus( newstatus );
NCMIL << "Set status of: " << slbPtr->name() << " to: "
<< newstatus << " returns: " << (ok?"true":"false") << endl;
-
+
return ok;
}
@@ -102,12 +102,12 @@
{
if ( !slbPtr )
return false;
-
+
bool valid = true;
ZyppStatus retStat = S_NoInst;
ZyppStatus oldStatus = getPackageStatus( slbPtr, objPtr );
bool installed = slbPtr->hasInstalledObj();
-
+
// get the new status
switch ( key )
{
@@ -158,7 +158,7 @@
valid = false;
}
break;
- //this is the case for 'going back' i.e. S_Install -> S_NoInst, S_Update -> S_KeepInstalled
+ //this is the case for 'going back' i.e. S_Install -> S_NoInst, S_Update -> S_KeepInstalled
//not for S_Del, since '+' key does this
case '<':
if ( oldStatus == S_Install
@@ -166,7 +166,7 @@
{
retStat = S_NoInst;
}
- else if ( oldStatus == S_Update
+ else if ( oldStatus == S_Update
|| oldStatus == S_AutoUpdate )
{
retStat = S_KeepInstalled;
@@ -182,7 +182,7 @@
retStat = S_Protected;
}
break;
- case '%': // reset S_Taboo or S_Protected status
+ case '%': // reset S_Taboo or S_Protected status
if ( oldStatus == S_Taboo )
{
retStat = S_NoInst;
@@ -203,7 +203,7 @@
if ( valid )
newStat = retStat;
-
+
return valid;
}
@@ -220,10 +220,10 @@
{
if ( !slbPtr )
return false;
-
+
bool ok = true;
-
- ZyppStatus oldStatus = getPackageStatus( slbPtr, objPtr );
+
+ ZyppStatus oldStatus = getPackageStatus( slbPtr, objPtr );
ZyppStatus newStatus = oldStatus;
switch ( oldStatus )
@@ -281,15 +281,7 @@
void ObjectStatStrategy::solveResolvableCollections()
{
zypp::Resolver_Ptr resolver = zypp::getZYpp()->resolver();
-
- resolver->transactReset( zypp::ResStatus::APPL_LOW );
-
- resolver->transactResKind( zypp::ResTraits<zypp::Product>::kind );
- resolver->transactResKind( zypp::ResTraits<zypp::Selection>::kind );
- resolver->transactResKind( zypp::ResTraits<zypp::Pattern >::kind );
- resolver->transactResKind( zypp::ResTraits<zypp::Language >::kind );
- resolver->transactResKind( zypp::ResTraits<zypp::Patch >::kind );
- resolver->transactResKind( zypp::ResTraits<zypp::Atom >::kind );
+ resolver->resolvePool();
}
@@ -335,12 +327,12 @@
{
if ( !slbPtr )
return false;
-
+
bool valid = true;
ZyppStatus retStat = S_NoInst;
ZyppStatus oldStatus = getPackageStatus( slbPtr, objPtr );
bool installed = slbPtr->hasInstalledObj();
-
+
// get the new status
switch ( key )
{
@@ -364,12 +356,12 @@
|| oldStatus == S_AutoDel)
{
retStat = S_KeepInstalled;
- }
+ }
else
{
valid = false;
}
-
+
break;
case '>':
if ( oldStatus == S_KeepInstalled
@@ -393,7 +385,7 @@
if ( valid )
newStat = retStat;
-
+
return valid;
}
@@ -411,10 +403,10 @@
{
if ( !slbPtr )
return false;
-
+
bool ok = true;
-
- ZyppStatus oldStatus = getPackageStatus( slbPtr, objPtr );
+
+ ZyppStatus oldStatus = getPackageStatus( slbPtr, objPtr );
ZyppStatus newStatus = oldStatus;
switch ( oldStatus )
@@ -448,14 +440,14 @@
}
newStat = newStatus;
-
+
return ok;
}
#endif
/////////////////////////////////////////////////////////////////
//
-// PatchStatStrategy::setObjectStatus()
+// PatchStatStrategy::setObjectStatus()
//
// Inform the package manager about the status change
// of the patch
@@ -470,12 +462,12 @@
return false;
}
- ok = slbPtr->set_status( newstatus );
+ ok = slbPtr->setStatus( newstatus );
NCMIL << "Set status of: " << slbPtr->name() << " to: "
<< newstatus << " returns: " << (ok?"true":"false") << endl;
// do a solver run
- solveResolvableCollections();
+ solveResolvableCollections();
return ok;
}
@@ -494,7 +486,7 @@
/////////////////////////////////////////////////////////////////
//
-// SelectionStatStrategy::setObjectStatus()
+// SelectionStatStrategy::setObjectStatus()
//
// Inform the package manager about the status change
// of the selection
@@ -509,12 +501,12 @@
return false;
}
- ok = slbPtr->set_status( newstatus );
+ ok = slbPtr->setStatus( newstatus );
NCMIL << "Set status of: " << slbPtr->name() << " to: "
<< newstatus << " returns: " << (ok?"true":"false") << endl;
// do a solver run
- solveResolvableCollections();
+ solveResolvableCollections();
return ok;
}
@@ -600,10 +592,10 @@
}
// Set status
- ok = slbPtr->set_status( status );
+ ok = slbPtr->setStatus( status );
NCMIL << "Set status of: " << slbPtr->name() << " to: "
<< status << " returns: " << (ok?"true":"false") << endl;
-
+
// Set candidate
ok = slbPtr->setCandidate( newCandidate );
NCMIL << "Set user candidate returns: " << (ok?"true":"false") << endl;
Modified: branches/tmp/dmacvicar/zc10/ncurses/src/PackageSelector.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/tmp/dmacvicar/zc10/ncurses/sr…
==============================================================================
--- branches/tmp/dmacvicar/zc10/ncurses/src/PackageSelector.cc (original)
+++ branches/tmp/dmacvicar/zc10/ncurses/src/PackageSelector.cc Mon May 23 21:27:16 2011
@@ -34,6 +34,7 @@
#include "NCPopupPkgTable.h"
#include "NCPopupPkgDescr.h"
#include "NCPopupFile.h"
+#include "NCPkgStrings.h"
#include "PackageSelector.h"
#include "YSelectionBox.h"
#include "YNCursesUI.h"
@@ -48,13 +49,14 @@
#include "YQZypp.h" // tryCastToZyppPkg(), tryCastToZyppPatch()
#include <zypp/ui/Selectable.h>
-#include <zypp/ui/PatchContents.h>
+#include <zypp/Package.h>
#include <zypp/SysContent.h>
-typedef zypp::ui::PatchContents ZyppPatchContents;
-typedef zypp::ui::PatchContents::const_iterator ZyppPatchContentsIterator;
+typedef zypp::Patch::Contents ZyppPatchContents;
+typedef zypp::Patch::Contents::Selectable_iterator ZyppPatchContentsIterator;
+
typedef zypp::syscontent::Reader::Entry ZyppReaderEntry;
-typedef std::pair<string, ZyppReaderEntry> importMapPair;
+typedef std::pair<string, ZyppReaderEntry> importMapPair;
#include <ycp/YCPString.h>
#include <ycp/YCPVoid.h>
@@ -74,20 +76,7 @@
///////////////////////////////////////////////////////////////////
//
-// CompFunc
-//
-bool sortByName( ZyppSel ptr1, ZyppSel ptr2 )
-{
- if ( ptr1->name() < ptr2->name() )
- {
- return true;
- }
- return false;
-}
-
-///////////////////////////////////////////////////////////////////
-//
-// ignore case compare
+// ignore case compare
//
bool ic_compare ( char c1, char c2 )
{
@@ -124,7 +113,7 @@
// Filter menu
eventHandlerMap[ PkgNames::RpmGroups()->toString() ] = &PackageSelector::FilterHandler;
eventHandlerMap[ PkgNames::Selections()->toString() ] = &PackageSelector::FilterHandler;
- eventHandlerMap[ PkgNames::Patterns()->toString() ] = &PackageSelector::FilterHandler;
+ eventHandlerMap[ PkgNames::Patterns()->toString() ] = &PackageSelector::FilterHandler;
eventHandlerMap[ PkgNames::UpdateList()->toString() ] = &PackageSelector::FilterHandler;
eventHandlerMap[ PkgNames::Installed()->toString() ] = &PackageSelector::FilterHandler;
eventHandlerMap[ PkgNames::Whatif()->toString() ] = &PackageSelector::FilterHandler;
@@ -134,10 +123,10 @@
eventHandlerMap[ PkgNames::Security()->toString() ] = &PackageSelector::FilterHandler;
eventHandlerMap[ PkgNames::Optional()->toString() ] = &PackageSelector::FilterHandler;
eventHandlerMap[ PkgNames::InstalledPatches()->toString() ] = &PackageSelector::FilterHandler;
- eventHandlerMap[ PkgNames::AllPatches()->toString() ] = &PackageSelector::FilterHandler;
+ eventHandlerMap[ PkgNames::AllPatches()->toString() ] = &PackageSelector::FilterHandler;
eventHandlerMap[ PkgNames::NewPatches()->toString() ] = &PackageSelector::FilterHandler;
eventHandlerMap[ PkgNames::InstalledPatches()->toString() ] = &PackageSelector::FilterHandler;
- eventHandlerMap[ PkgNames::InstallablePatches()->toString() ] = &PackageSelector::FilterHandler;
+ eventHandlerMap[ PkgNames::InstallablePatches()->toString() ] = &PackageSelector::FilterHandler;
eventHandlerMap[ PkgNames::YaST2Patches()->toString() ] = &PackageSelector::FilterHandler;
// Information menu
@@ -147,7 +136,7 @@
eventHandlerMap[ PkgNames::Versions()->toString() ] = &PackageSelector::InformationHandler;
eventHandlerMap[ PkgNames::Relations()->toString() ] = &PackageSelector::InformationHandler;
- // YOU information
+ // YOU information
eventHandlerMap[ PkgNames::PatchDescr()->toString() ] = &PackageSelector::InformationHandler;
eventHandlerMap[ PkgNames::PatchPackages()->toString() ] = &PackageSelector::InformationHandler;
eventHandlerMap[ PkgNames::PatchPackagesVersions()->toString() ] = &PackageSelector::InformationHandler;
@@ -168,7 +157,7 @@
eventHandlerMap[ PkgNames::UpdateNewer()->toString() ] = &PackageSelector::StatusHandler;
eventHandlerMap[ PkgNames::UpdateAll()->toString() ] = &PackageSelector::StatusHandler;
eventHandlerMap[ PkgNames::DontUpdate()->toString() ] = &PackageSelector::StatusHandler;
-
+
// Etc. menu
eventHandlerMap[ PkgNames::ShowDeps()->toString() ] = &PackageSelector::DependencyHandler;
eventHandlerMap[ PkgNames::AutoDeps()->toString() ] = &PackageSelector::DependencyHandler;
@@ -178,7 +167,7 @@
eventHandlerMap[ PkgNames::SaveSel()->toString() ] = &PackageSelector::SelectionHandler;
eventHandlerMap[ PkgNames::LoadSel()->toString() ] = &PackageSelector::SelectionHandler;
eventHandlerMap[ PkgNames::Testcase()->toString() ] = &PackageSelector::TestcaseHandler;
-
+
// Help menu
eventHandlerMap[ PkgNames::GeneralHelp()->toString() ] = &PackageSelector::HelpHandler;
eventHandlerMap[ PkgNames::StatusHelp()->toString() ] = &PackageSelector::HelpHandler;
@@ -205,13 +194,13 @@
selectionPopup = new NCPopupSelection( wpos( 1, 1 ), this, NCPopupSelection::S_Selection );
// create the patterns popup
patternPopup = new NCPopupSelection( wpos( 1, 1 ), this, NCPopupSelection::S_Pattern );
-
+
_rpmGroupsTree = new YRpmGroupsTree ();
// get the rpm groups
ZyppPoolIterator b = zyppPkgBegin ();
ZyppPoolIterator e = zyppPkgEnd ();
ZyppPoolIterator i;
- for ( i = b; i != e; ++i )
+ for ( i = b; i != e; ++i )
{
ZyppPkg zyppPkg = tryCastToZyppPkg( (*i)->theObj() );
if ( zyppPkg )
@@ -220,7 +209,7 @@
}
}
// create the filter popup
- filterPopup = new NCPopupTree( wpos( 1, 1 ), this );
+ filterPopup = new NCPopupTree( wpos( 1, 1 ), this );
// the file popup
filePopup = new NCPopupFile( wpos( 1, 1), floppyDevice, this );
@@ -228,7 +217,7 @@
// create the search popup
searchPopup = new NCPopupSearch( wpos( 1, 1 ), this );
-
+
// the dependency popup
depsPopup = new NCPopupDeps( wpos( 1, 1 ), this );
@@ -257,7 +246,7 @@
}
if ( depsPopup )
{
- delete depsPopup;
+ delete depsPopup;
}
if ( diskspacePopup )
{
@@ -279,108 +268,23 @@
void PackageSelector::createFilterMenu()
{
- bool selections;
- bool patterns;
-
- // create the pattern popup
- if ( ! zyppPool().empty<zypp::Pattern>() )
- {
-
- patterns = true;
- }
- else
- {
- patterns = false;
- }
- // create the selections popup
- if ( ! zyppPool().empty<zypp::Selection>() )
- {
-
- selections = true;
- }
- else
- {
- selections = false;
- }
-
- if ( selections && !patterns )
- {
- // ReplaceWidget and show menu entry Selections instead of Patterns
- char menu[4000];
- snprintf ( menu, sizeof(menu) - 1,
- "`MenuButton( `opt(`key_F4), \"%s\", "
- "[`item( `id(\"groups\"), \"%s\" ), `item( `id(\"selections\"), \"%s\" ), "
- " `item( `id(\"search\"), \"%s\" ), `item( `id(\"installed\"), \"%s\" ), "
- " `item( `id(\"whatif\"), \"%s\" ), `item( `id(\"updatelist\"), \"%s\" ) ] ) ",
- PkgNames::MenuFilter().c_str(),
- PkgNames::MenuEntryRPMGroups().c_str(),
- PkgNames::MenuEntrySelections().c_str(),
- PkgNames::MenuEntrySearch().c_str(),
- PkgNames::MenuEntryInstPkg().c_str() ,
- PkgNames::MenuEntryInstSummary().c_str(),
- PkgNames::MenuEntryUpdateList().c_str()
- );
-
- Parser parser( menu );
- YCodePtr parsed_code = parser.parse ();
- YCPValue layout = YCPNull ();
- if (parsed_code != NULL)
- layout = parsed_code->evaluate();
- if ( !layout.isNull() )
- y2ui->evaluateReplaceWidget( YCPSymbol("replacefilter"), layout->asTerm() );
-
- }
- else if ( patterns && selections )
- {
- // ReplaceWidget and show menu entries Patterns AND Selections
- char menu[4000];
- snprintf ( menu, sizeof(menu) - 1,
- "`MenuButton(`opt(`key_F4), \"%s\", "
- "[`item( `id(\"groups\"), \"%s\" ), `item( `id(\"patterns\"), \"%s\" ), "
- " `item( `id(\"selections\"), \"%s\" ), "
- " `item( `id(\"search\"), \"%s\" ), `item( `id(\"installed\"), \"%s\" ), "
- " `item( `id(\"whatif\"), \"%s\" ), `item( `id(\"updatelist\"), \"%s\" ) ] ) ",
- PkgNames::MenuFilter().c_str(),
- PkgNames::MenuEntryRPMGroups().c_str(),
- PkgNames::MenuEntryPatterns().c_str(),
- PkgNames::MenuEntrySelections().c_str(),
- PkgNames::MenuEntrySearch().c_str(),
- PkgNames::MenuEntryInstPkg().c_str() ,
- PkgNames::MenuEntryInstSummary().c_str(),
- PkgNames::MenuEntryUpdateList().c_str()
- );
-
- Parser parser( menu );
- YCodePtr parsed_code = parser.parse ();
- YCPValue layout = YCPNull ();
- if (parsed_code != NULL)
- layout = parsed_code->evaluate();
- if ( !layout.isNull() )
- y2ui->evaluateReplaceWidget( YCPSymbol("replacefilter"), layout->asTerm() );
-
- }
+ // NO OP if no Selections support
}
///////////////////////////////////////////////////////////////////
//
// detection whether the user has made any changes
//
-
+
void PackageSelector::saveState ()
{
ZyppPool p = zyppPool ();
p.saveState<zypp::Package> ();
p.saveState<zypp::SrcPackage> ();
-
- p.saveState<zypp::Patch> ();
- // some future proofing
- p.saveState<zypp::Message> ();
- p.saveState<zypp::Script> ();
- p.saveState<zypp::Selection> ();
+ p.saveState<zypp::Patch> ();
p.saveState<zypp::Pattern> ();
- p.saveState<zypp::Language> ();
}
void PackageSelector::restoreState ()
@@ -389,15 +293,9 @@
p.restoreState<zypp::Package> ();
p.restoreState<zypp::SrcPackage> ();
-
+
p.restoreState<zypp::Patch> ();
- // some future proofing
- p.restoreState<zypp::Message> ();
- p.restoreState<zypp::Script> ();
-
- p.restoreState<zypp::Selection> ();
p.restoreState<zypp::Pattern> ();
- p.restoreState<zypp::Language> ();
}
bool PackageSelector::diffState ()
@@ -412,21 +310,11 @@
log << diff << endl;
diff = diff || p.diffState<zypp::SrcPackage> ();
log << diff << endl;
-
+
diff = diff || p.diffState<zypp::Patch> ();
log << diff << endl;
- // some future proofing
- diff = diff || p.diffState<zypp::Message> ();
- log << diff << endl;
- diff = diff || p.diffState<zypp::Script> ();
- log << diff << endl;
-
- diff = diff || p.diffState<zypp::Selection> ();
- log << diff << endl;
diff = diff || p.diffState<zypp::Pattern> ();
log << diff << endl;
- diff = diff || p.diffState<zypp::Language> ();
- log << diff << endl;
return diff;
}
@@ -443,7 +331,7 @@
if ( event == NCursesEvent::handled )
return false;
-
+
// Get the id of the widget which is affected
if ( event == NCursesEvent::button )
{
@@ -453,31 +341,31 @@
{
currentId = event.selection;
}
-
+
// Find the handler-function for the given widget-nameId
if ( ! currentId.isNull() )
{
UIMIL << "Selected widget id: " << currentId->toString() << endl;
- // hyperlink
+ // hyperlink
if ( currentId->isString()
&& currentId->asString()->value().substr(0, 4) == "pkg:" )
{
LinkHandler( currentId->asString()->value() );
return true;
}
-
+
tHandlerMap::iterator it = eventHandlerMap.find ( currentId->toString() );
-
+
if (it != eventHandlerMap.end()) // if currentId found in map
- {
+ {
tHandlerFctPtr pFct = (*it).second;
retVal = (this->*pFct) ( event ); // call handler
}
else
{
UIERR << "Unhandled event for widget-Id: " << currentId->toString() << endl;
-
- // return true means: don't leave the event loop in runPkgSelection
+
+ // return true means: don't leave the event loop in runPkgSelection
retVal = true;
}
}
@@ -505,9 +393,9 @@
//
// fillAvailableList
//
-// Fills the package table (on bottom ) with the list of available packages
+// Fills the package table (on bottom ) with the list of available packages
//
-bool PackageSelector::fillAvailableList( NCPkgTable * pkgTable, ZyppSel selectable )
+bool PackageSelector::fillAvailableList( NCPkgTable * pkgTable, ZyppSel slb )
{
if ( !pkgTable )
{
@@ -515,35 +403,47 @@
return false;
}
- if ( !selectable )
+ bool addInstalled = true;
+ if ( !slb )
{
NCERR << "Package pointer not valid" << endl;
return false;
}
-
+
// clear the package table
pkgTable->itemsCleared ();
- NCDBG << "Number of available packages: " << selectable->availableObjs() << endl;
+ NCDBG << "Number of available packages: " << slb->availableSize() << endl;
// show all availables
zypp::ui::Selectable::available_iterator
- b = selectable->availableBegin (),
- e = selectable->availableEnd (),
+ b = slb->availableBegin (),
+ e = slb->availableEnd (),
it;
for (it = b; it != e; ++it)
{
- pkgTable->createListEntry( tryCastToZyppPkg (*it), selectable );
+
+ if ( slb->installedObj() &&
+ slb->installedObj()->edition() == (*it)->edition() &&
+ slb->installedObj()->arch() == (*it)->arch() )
+ // FIXME: In future releases, also the vendor will make a difference
+ {
+ addInstalled = false;
+ }
+ pkgTable->createListEntry( tryCastToZyppPkg (*it), slb );
+ }
+ if ( (! slb->installedEmpty()) && addInstalled )
+ {
+ pkgTable->createListEntry( tryCastToZyppPkg (slb->installedObj()), slb );
}
// show the package list
pkgTable->drawList();
-
+
if ( pkgTable->getNumLines() > 0 )
{
pkgTable->setCurrentItem( 0 );
}
-
return true;
}
@@ -556,7 +456,7 @@
bool PackageSelector::showSelPackages( const YCPString & label, const set<string> & wanted )
{
NCPkgTable * packageList = getPackageList();
-
+
if ( !packageList )
{
UIERR << "Widget is not a valid NCPkgTable widget" << endl;
@@ -565,7 +465,7 @@
// clear the package table
packageList->itemsCleared ();
-
+
set<string>::iterator not_found = wanted.end ();
std::vector<ZyppSel> sorted;
@@ -607,7 +507,7 @@
// show the package table
packageList->drawList();
-
+
if ( !label.isNull() )
{
NCDBG << "Filter: " << label->toString() << endl;
@@ -619,7 +519,7 @@
static_cast<NCLabel *>(filterLabel)->setLabel( label );
}
}
-
+
return true;
}
@@ -639,9 +539,8 @@
bool checkRequires )
{
NCPkgTable * packageList = getPackageList();
-
- if ( !packageList
- || expr.isNull() )
+
+ if ( !packageList )
{
return false;
}
@@ -649,70 +548,74 @@
// clear the package table
packageList->itemsCleared ();
-// FIXME filter it inside zypp
- ZyppPoolIterator b = zyppPkgBegin ();
- ZyppPoolIterator e = zyppPkgEnd ();
- ZyppPoolIterator i;
-
- // get the package list and sort it
- list<ZyppSel> pkgList( b, e );
- pkgList.sort( sortByName );
-
- // fill the package table
- list<ZyppSel>::iterator listIt = pkgList.begin();
- ZyppPkg pkg;
- string description = "";
- string provides = "";
- string requires = "";
-
- while ( listIt != pkgList.end() )
- {
- if ( (*listIt)->installedObj() )
- pkg = tryCastToZyppPkg ((*listIt)->installedObj());
- else
- pkg = tryCastToZyppPkg ((*listIt)->theObj());
+ zypp::PoolQuery q;
+ q.setMatchSubstring();
- if ( pkg )
- {
- if ( checkDescr )
- {
- zypp::Text value = pkg->description();
- description = createDescrText( value );
- }
- if ( checkProvides )
- {
- zypp::CapSet value = pkg->dep (zypp::Dep::PROVIDES);
- provides = createRelLine( value );
- }
- if ( checkRequires )
- {
- zypp::CapSet value = pkg->dep (zypp::Dep::REQUIRES);
- requires = createRelLine( value );
- }
- if ( ( checkName && match( pkg->name(), expr->value(), ignoreCase )) ||
- ( checkSummary && match( pkg->summary(), expr->value(), ignoreCase) ) ||
- ( checkDescr && match( description, expr->value(), ignoreCase) ) ||
- ( checkProvides && match( provides, expr->value(), ignoreCase) ) ||
- ( checkRequires && match( requires, expr->value(), ignoreCase) )
- )
- {
- // search sucessful
- packageList->createListEntry( pkg, *listIt );
- }
- }
+ q.addString( expr->value() );
+ q.addKind( zypp::ResKind::package );
- ++listIt;
- }
+ if ( !ignoreCase )
+ q.setCaseSensitive();
+ if ( checkName )
+ q.addAttribute( zypp::sat::SolvAttr::name );
+ if ( checkSummary )
+ q.addAttribute( zypp::sat::SolvAttr::summary );
+ if ( checkDescr )
+ q.addAttribute( zypp::sat::SolvAttr::description );
+ if ( checkProvides )
+ q.addAttribute( zypp::sat::SolvAttr("solvable:provides") );
+ if ( checkRequires )
+ q.addAttribute( zypp::sat::SolvAttr("solvable:requires") );
+
+ //NCPopupInfo * info = new NCPopupInfo( wpos( (NCurses::lines()-4)/2, (NCurses::cols()-18)/2 ),
+// "",
+// _("Searching...")
+// );
+//info->popup();
+
+ try
+ {
+ for( zypp::PoolQuery::Selectable_iterator it = q.selectableBegin();
+ it != q.selectableEnd(); it++)
+ {
+ ZyppPkg pkg = tryCastToZyppPkg( (*it)->theObj() );
+ packageList->createListEntry ( pkg, *it);
+ }
+ }
+ catch (const std::exception & e)
+ {
+ //NCPopupInfo * info = new NCPopupInfo ( wpos( NCurses::lines()/10,
+ // NCurses::cols()/10),
+ // NCPkgStrings::ErrorLabel(),
+ // // Popup informs the user that the query string
+ // // entered for package search isn't correct
+ // _("Query Error:") + ("<br>") + e.what(),
+ // NCPkgStrings::OKLabel() );
+ //info->setPreferredSize( 50, 10 );
+ //info->showInfoPopup();
+ //YDialog::deleteTopmostDialog();
+ NCERR << "Caught a std::exception: " << e.what () << endl;
+ }
+
+ //info->popdown();
+//YDialog::deleteTopmostDialog();
+
+ int found_pkgs = packageList->getNumLines();
+ ostringstream s;
+//s << boost::format( _( "%d packages found")) % found_pkgs;
+//packager->PatternLabel()->setText( s.str() );
// show the package list
packageList->drawList();
-
- // set filter label to 'Search'
- YWidget * filterLabel = y2ui->widgetWithId( PkgNames::Filter(), true );
- if ( filterLabel )
+
+ if ( found_pkgs > 0 )
{
- static_cast<NCLabel *>(filterLabel)->setLabel( YCPString(PkgNames::SearchResults()) );
+ packageList->setCurrentItem( 0 );
+ packageList->showInformation();
+ packageList->setKeyboardFocus();
}
+// else
+ //packager->clearInfoArea();
return true;
}
@@ -726,7 +629,7 @@
bool PackageSelector::fillPatchSearchList( const YCPString & expr )
{
NCPkgTable * packageList = getPackageList();
-
+
if ( !packageList
|| expr.isNull() )
{
@@ -738,7 +641,7 @@
// get the patch list and sort it
list<ZyppSel> patchList( zyppPatchesBegin (), zyppPatchesEnd () );
patchList.sort( sortByName );
- list<ZyppSel>::iterator listIt = patchList.begin();
+ list<ZyppSel>::iterator listIt = patchList.begin();
while ( listIt != patchList.end() )
{
@@ -756,7 +659,7 @@
}
// show the patch list with search result
packageList->drawList();
-
+
// set filter label to 'Search'
YWidget * filterLabel = y2ui->widgetWithId( PkgNames::Filter(), true );
if ( filterLabel )
@@ -777,20 +680,20 @@
bool PackageSelector::fillPatchList( string filter )
{
NCPkgTable * packageList = getPackageList();
-
+
if ( !packageList )
{
UIERR << "No valid NCPkgTable widget" << endl;
return false;
}
-
+
// clear list of patches
packageList->itemsCleared ();
// get the patch list and sort it
list<ZyppSel> patchList( zyppPatchesBegin (), zyppPatchesEnd () );
patchList.sort( sortByName );
- list<ZyppSel>::iterator listIt = patchList.begin();
+ list<ZyppSel>::iterator listIt = patchList.begin();
while ( listIt != patchList.end() )
{
@@ -800,18 +703,18 @@
{
checkPatch( patchPtr, *listIt, filter );
}
- ++listIt;
+ ++listIt;
}
if ( filter == "installable"
&& packageList->getNumLines() == 0 )
{
- packageList->createInfoEntry( PkgNames::NoPatches() );
+ packageList->createInfoEntry( PkgNames::NoPatches() );
}
// show the patches
packageList->drawList();
-
+
// show the selected filter label
YWidget * filterLabel = y2ui->widgetWithId( PkgNames::Filter(), true );
if ( filterLabel )
@@ -823,14 +726,14 @@
}
else if ( filter == "installed" )
{
- static_cast<NCLabel *>(filterLabel)->setLabel( YCPString(PkgNames::InstPatches()) );
+ static_cast<NCLabel *>(filterLabel)->setLabel( YCPString(PkgNames::InstPatches()) );
}
else
{
- static_cast<NCLabel *>(filterLabel)->setLabel( YCPString(PkgNames::Patches()) );
+ static_cast<NCLabel *>(filterLabel)->setLabel( YCPString(PkgNames::Patches()) );
}
}
-
+
return true;
}
@@ -843,19 +746,19 @@
bool PackageSelector::fillUpdateList( )
{
NCPkgTable * packageList = getPackageList();
-
+
if ( !packageList )
{
- UIERR << "Widget is not a valid NCPkgTable widget" << endl;
+ NCERR << "Widget is not a valid NCPkgTable widget" << endl;
return false;
}
// clear the package table
packageList->itemsCleared ();
- list<zypp::PoolItem_Ref> problemList = zypp::getZYpp()->resolver()->problematicUpdateItems();
-
- for ( list<zypp::PoolItem_Ref>::const_iterator it = problemList.begin();
+ list<zypp::PoolItem> problemList = zypp::getZYpp()->resolver()->problematicUpdateItems();
+
+ for ( list<zypp::PoolItem>::const_iterator it = problemList.begin();
it != problemList.end();
++it )
{
@@ -872,19 +775,19 @@
packageList->createListEntry( pkg, slb );
}
}
-
+
}
-
+
// show the list
packageList->drawList();
-
+
// show the selected filter label
- YWidget * filterLabel = y2ui->widgetWithId( PkgNames::Filter(), true );
- if ( filterLabel )
+ YWidget * packageLabel = y2ui->widgetWithId( PkgNames::Packages(), true );
+ if ( packageLabel )
{
- static_cast<NCLabel *>(filterLabel)->setLabel( YCPString(PkgNames::UpdateProblem()) );
+ static_cast<NCLabel *>(packageLabel)->setLabel( YCPString(PkgNames::UpdateProblem()) );
}
-
+
return true;
}
@@ -895,95 +798,83 @@
//
bool PackageSelector::fillPatchPackages ( NCPkgTable * pkgTable, ZyppObj objPtr, bool versions )
{
- if ( !pkgTable )
+ if ( !pkgTable || !objPtr )
return false;
+
pkgTable->itemsCleared ();
std::set<ZyppSel> patchSelectables;
-
- ZyppPatch patchPtr = tryCastToZyppPatch( objPtr );
-
+ ZyppPatch patchPtr = tryCastToZyppPatch( objPtr );
+
if ( !patchPtr )
return false;
- ZyppPatchContents patchContents( patchPtr );
+ ZyppPatchContents patchContents( patchPtr->contents() );
- zypp::Patch::AtomList atomList = patchPtr->atoms();
- NCMIL << "Filtering for patch: " << patchPtr->name().c_str() << " number of atoms: " << atomList.size() << endl ;
+ NCMIL << "Filtering for patch: " << patchPtr->name().c_str() << " number of atoms: "
+ << patchContents.size() << endl ;
- for ( ZyppPatchContentsIterator it = patchContents.begin();
- it != patchContents.end();
+ for ( ZyppPatchContentsIterator it = patchContents.selectableBegin();
+ it != patchContents.selectableEnd();
++it )
{
-
- ZyppPkg pkg = tryCastToZyppPkg( *it );
+ ZyppPkg pkg = tryCastToZyppPkg( (*it)->theObj() );
if ( pkg )
{
NCMIL << "Patch package found: " << (*it)->name().c_str() << endl;
-
ZyppSel sel = selMapper.findZyppSel( pkg );
if ( sel )
- if ( contains( patchSelectables, sel ) )
+ {
+ if ( inContainer( patchSelectables, sel ) )
{
NCMIL << "Suppressing duplicate selectable: " << (*it)->name().c_str() << "-" <<
- (*it)->edition().asString().c_str() << " " <<
- (*it)->arch().asString().c_str() << endl;
+ pkg->edition().asString().c_str() << " " <<
+ pkg->arch().asString().c_str() << endl;
}
else
{
patchSelectables.insert( sel );
+ NCDBG << (*it)->name().c_str() << ": Version: " << pkg->edition().asString() << endl;
+
+ pkgTable->createListEntry( pkg, sel );
- if ( versions )
+ if ( versions ) // additionally show all availables
{
- // show all availables
zypp::ui::Selectable::available_iterator
b = sel->availableBegin (),
e = sel->availableEnd (),
it;
for (it = b; it != e; ++it)
{
- pkgTable->createListEntry( tryCastToZyppPkg (*it), sel );
+ ZyppPkg pkgAvail = tryCastToZyppPkg (*it);
+ if ( pkgAvail )
+ {
+ if ( pkg->edition() != pkgAvail->edition() ||
+ pkg->arch() != pkgAvail->arch() )
+ {
+ pkgTable->createListEntry( pkgAvail, sel );
+ }
+ }
}
- }
- else
- {
- pkgTable->createListEntry( pkg, sel );
- }
- }
+ } // if ( versions )
+ }
+ }
}
- else // No ZyppPkg - some other kind of object (script, message)
+ else // No ZyppPkg - some other kind of object
{
- if ( zypp::isKind<zypp::Script> ( *it ) )
- {
- vector<string> pkgLine;
- pkgLine.reserve(4);
+ NCDBG << "Found unknown atom of kind %s: %s" <<
+ (*it)->kind().asString().c_str() <<
+ (*it)->name().c_str() << endl;
- pkgLine.push_back( (*it)->name() );
- pkgLine.push_back( " " ); // versions empty
- pkgLine.push_back( " " );
- pkgLine.push_back( PkgNames::Script() );
-
- pkgTable->addLine( S_NoInst,
- pkgLine,
- ZyppObj(),
- ZyppSel()
- );
- }
- else
- {
- y2debug( "Found unknown atom of kind %s: %s",
- (*it)->kind().asString().c_str(),
- (*it)->name().c_str() );
- }
}
}
// show the list
pkgTable->drawList();
-
+
return true;
}
@@ -996,13 +887,13 @@
bool PackageSelector::fillSummaryList( NCPkgTable::NCPkgTableListType type )
{
NCPkgTable * packageList = getPackageList();
-
+
if ( !packageList )
{
UIERR << "No valid NCPkgTable widget" << endl;
return false;
}
-
+
// clear the package table
packageList->itemsCleared ();
@@ -1014,32 +905,32 @@
list<ZyppSel>::iterator listIt;
ZyppPkg pkgPtr;
- // If the dependency check is off, the dependencies will not be solved for
+ // If the dependency check is off, the dependencies will not be solved for
// the installation summary.
// This is not necessary because the dependencies will be solved and the
- // "Automatic Changes" list will be shown if the OK button is pressed.
+ // "Automatic Changes" list will be shown if the OK button is pressed.
if ( !autoCheck )
{
// showPackageDependencies( true );
}
-
+
for ( listIt = pkgList.begin(); listIt != pkgList.end(); ++listIt )
{
ZyppSel selectable = *listIt;
ZyppPkg pkg = tryCastToZyppPkg (selectable->theObj ());
- // show all matching packages
+ // show all matching packages
switch ( type )
{
case NCPkgTable::L_Changes: {
if ( selectable->status() != S_NoInst
- && selectable->status() != S_KeepInstalled )
+ && selectable->status() != S_KeepInstalled )
{
packageList->createListEntry( pkg, selectable );
}
break;
}
case NCPkgTable::L_Installed: {
- if ( selectable->status() == S_KeepInstalled )
+ if ( selectable->status() == S_KeepInstalled )
{
packageList->createListEntry( pkg, selectable );
}
@@ -1052,7 +943,7 @@
// show the package list
packageList->drawList();
-
+
// show the selected filter label
YWidget * filterLabel = y2ui->widgetWithId( PkgNames::Filter(), true );
if ( filterLabel )
@@ -1073,13 +964,13 @@
bool PackageSelector::fillPackageList( const YCPString & label, YStringTreeItem * rpmGroup )
{
NCPkgTable * packageList = getPackageList();
-
+
if ( !packageList )
{
UIERR << "No valid NCPkgTable widget" << endl;
return false;
}
-
+
// clear the package table
packageList->itemsCleared ();
@@ -1095,7 +986,7 @@
for ( listIt = pkgList.begin(); listIt != pkgList.end(); ++listIt )
{
ZyppSel selectable = *listIt;
-
+
// Multiple instances of this package may or may not be in the same
// RPM group, so let's check both the installed version (if there
// is any) and the candidate version.
@@ -1103,14 +994,14 @@
// Make sure we emit only one filterMatch() signal if both exist
// and both are in the same RPM group. We don't want multiple list
// entries for the same package!
-
+
bool match =
checkPackage( selectable->candidateObj(), selectable, rpmGroup ) ||
- checkPackage( selectable->installedObj(), selectable, rpmGroup );
+ checkPackage( selectable->installedObj(), selectable, rpmGroup );
// If there is neither an installed nor a candidate package, check
- // any other instance.
-
+ // any other instance.
+
if ( ! match &&
! selectable->installedObj() &&
! selectable->candidateObj() )
@@ -1120,7 +1011,7 @@
// show the package list
packageList->drawList();
-
+
if ( !label.isNull() )
{
// show the selected filter label
@@ -1142,7 +1033,7 @@
bool PackageSelector::match ( string s1, string s2, bool ignoreCase )
{
string::iterator pos;
-
+
if ( ignoreCase )
{
pos = search( s1.begin(), s1.end(),
@@ -1172,19 +1063,19 @@
return false;
NCPkgTable * packageList = getPackageList();
-
+
if ( !packageList )
{
UIERR << "Widget is not a valid NCPkgTable widget" << endl;
return false;
}
-
+
string group_str = _rpmGroupsTree->rpmGroup (rpmGroup);
// is the requested rpm group a prefix of this package's group?
if ( pkg->group ().find (group_str) == 0 )
{
packageList->createListEntry( pkg, slb );
-
+
return true;
}
else
@@ -1204,11 +1095,11 @@
bool PackageSelector::checkPatch( ZyppPatch patchPtr,
ZyppSel selectable,
string filter )
-
+
{
NCPkgTable * packageList = getPackageList();
bool displayPatch = false;
-
+
if ( !packageList || !patchPtr
|| !selectable )
{
@@ -1230,7 +1121,7 @@
if ( selectable->hasInstalledObj() ) // patch installed?
{
// display only if broken
- if ( selectable->installedPoolItem().status().isIncomplete() )
+ if ( selectable->installedObj().isBroken() )
{
displayPatch = true;
NCWAR << "Installed patch is broken: " << patchPtr->name().c_str() << " - "
@@ -1239,13 +1130,13 @@
}
else // patch not installed
- {
- if (selectable->hasCandidateObj() &&
- selectable->candidatePoolItem().status().isSatisfied() )
+ {
+ if (selectable->hasCandidateObj() &&
+ selectable->candidateObj().status().isSatisfied() )
{
//patch not installed, but it is satisfied (updated to the version patch requires)
//all that is missing are patch metadata, so let's display the patch
-
+
displayPatch = true;
NCMIL << "Patch satisfied, but not installed yet: " << patchPtr->name().c_str() << " - "
@@ -1259,9 +1150,14 @@
// isSatisfied(): all packages are installed, therefore the isNeeded() flag
// isn't set. BUT the patch meta data aren't installed and therefore it makes
// sense to install the patch
- if ( selectable->candidatePoolItem().status().isNeeded())
- {
- displayPatch = true;
+ if ( selectable->hasCandidateObj() &&
+ selectable->candidateObj().isRelevant() )
+ {
+ // and only those that are needed
+ if ( ! selectable->candidateObj().isSatisfied() ||
+ // may be it is satisfied because is preselected
+ selectable->candidateObj().status().isToBeInstalled() )
+ displayPatch = true;
}
else
{
@@ -1296,7 +1192,7 @@
if ( patchPtr->category() == "yast" )
displayPatch = true;
}
-
+
if ( displayPatch )
packageList->createPatchEntry( patchPtr, selectable );
@@ -1323,13 +1219,13 @@
newStatus = oldStatus;
break;
- //Keep also those marked for deletion
+ //Keep also those marked for deletion
case S_Del:
case S_AutoDel:
newStatus = S_KeepInstalled;
NCDBG << "Keeping " << kind << " " << selectable->name().c_str() << endl;
break;
-
+
//Add not yet installed pkgs (if they have candidate available)
case S_NoInst:
case S_Taboo:
@@ -1340,12 +1236,12 @@
}
else
{
- NCDBG << "Cannot add " << kind << " " << selectable->name().c_str() <<
- " " << " - no candidate." << endl;
+ NCDBG << "Cannot add " << kind << " " << selectable->name().c_str() <<
+ " " << " - no candidate." << endl;
}
- break;
- }
- }
+ break;
+ }
+ }
//Package/Pattern is not on the list
else
{
@@ -1362,7 +1258,7 @@
NCDBG << "Deleting " << kind << " " << selectable->name().c_str() << endl;
break;
- //Keep status for not installed, taboo and to-be-deleted
+ //Keep status for not installed, taboo and to-be-deleted
case S_Del:
case S_AutoDel:
case S_NoInst:
@@ -1371,9 +1267,9 @@
break;
}
}
-
- if (oldStatus != newStatus)
- selectable->set_status( newStatus );
+
+ if (oldStatus != newStatus)
+ selectable->setStatus( newStatus );
}
///////////////////////////////////////////////////////////////////
@@ -1385,12 +1281,12 @@
bool PackageSelector::SearchHandler( const NCursesEvent& event)
{
NCPkgTable * packageList = getPackageList();
-
+
if ( !packageList || !searchPopup )
{
return false;
}
-
+
// open the search popup
NCursesEvent retEvent = searchPopup->showSearchPopup();
@@ -1405,7 +1301,7 @@
}
packageList->setKeyboardFocus();
-
+
return true;
}
@@ -1431,7 +1327,7 @@
NCERR << "*** InformationHandler RETURN false ***" << endl;
return false;
}
-
+
if ( visibleInfo->compare( event.selection ) == YO_EQUAL )
{
// information selection has not changed
@@ -1444,7 +1340,7 @@
if ( visibleInfo->compare( PkgNames::Versions() ) == YO_EQUAL )
{
// show the package table
- const char * tableLayout = "`PkgSpecial( `id(\"availpkgs\"), `opt(`notify), \"pkgTable\" )";
+ const char * tableLayout = "`PkgSpecial( `id(\"availpkgs\"), `opt(`notify), \"pkgTable\" )";
Parser parser( tableLayout );
YCodePtr parsed_code = parser.parse ();
YCPValue layout = YCPNull ();
@@ -1471,7 +1367,7 @@
else if ( visibleInfo->compare( PkgNames::PatchPackages() ) == YO_EQUAL )
{
// show the package table
- const char * tableLayout = "`PkgSpecial( `id(\"patchpkgs\"), `opt(`notify), \"pkgTable\" )";
+ const char * tableLayout = "`PkgSpecial( `id(\"patchpkgs\"), `opt(`notify), \"pkgTable\" )";
Parser parser( tableLayout );
YCodePtr parsed_code = parser.parse ();
YCPValue layout = YCPNull ();
@@ -1492,12 +1388,12 @@
patchPkgs->fillHeader( );
fillPatchPackages( patchPkgs, packageList->getDataPointer( packageList->getCurrentItem() ) );
- }
+ }
}
else if ( visibleInfo->compare( PkgNames::PatchPackagesVersions() ) == YO_EQUAL )
{
// show the package table
- const char * tableLayout = "`PkgSpecial( `id(\"pkgsversions\"), `opt(`notify), \"pkgTable\" )";
+ const char * tableLayout = "`PkgSpecial( `id(\"pkgsversions\"), `opt(`notify), \"pkgTable\" )";
Parser parser( tableLayout );
YCodePtr parsed_code = parser.parse ();
YCPValue layout = YCPNull ();
@@ -1518,12 +1414,12 @@
patchPkgsVersions->fillHeader( );
fillPatchPackages( patchPkgsVersions, packageList->getDataPointer( packageList->getCurrentItem() ), true );
- }
- }
+ }
+ }
else
{
// show the rich text widget
- const char * textLayout = "`RichText( `id(\"description\"), \" \")";
+ const char * textLayout = "`RichText( `id(\"description\"), \" \")";
Parser parser( textLayout );
YCodePtr parsed_code = parser.parse ();
YCPValue layout = YCPNull ();
@@ -1531,12 +1427,12 @@
layout = parsed_code->evaluate ();
if (!layout.isNull())
y2ui->evaluateReplaceWidget( YCPSymbol ("replaceinfo"), layout->asTerm() );
-
+
packageList->showInformation( );
}
packageList->setKeyboardFocus();
-
+
UIMIL << "Change package info to: " << visibleInfo->toString() << endl;
return true;
}
@@ -1559,7 +1455,7 @@
showPackageDependencies( true ); // do the check
// update the package list and the disk space info
updatePackageList();
- showDiskSpace();
+ showDiskSpace();
}
else if ( event.selection->compare( PkgNames::VerifySystem() ) == YO_EQUAL )
{
@@ -1570,7 +1466,7 @@
else if ( event.selection->compare( PkgNames::AutoDeps() ) == YO_EQUAL )
{
char menu[2000];
-
+
if ( autoCheck )
{
snprintf ( menu, sizeof(menu) - 1,
@@ -1600,7 +1496,7 @@
Parser parser( menu );
YCodePtr parsed_code = parser.parse ();
YCPValue layout = YCPNull ();
-
+
if ( parsed_code != NULL )
layout = parsed_code->evaluate();
@@ -1615,7 +1511,7 @@
snprintf ( menu, sizeof(menu) - 1,
"`MenuButton( \"%s\", ["
"`menu( \"%s\", [`item( `id(\"showdeps\"), \"%s\" ), `item( `id(\"autodeps\"), \"%s\" ), `item ( `id(\"verifysystem\"), \"%s\" ) ] ),"
- "`item( `id(\"testcase\"), \"%s\" )"
+ "`item( `id(\"testcase\"), \"%s\" )"
#ifdef FIXME
","
"`menu( \"%s\", [`item( `id(\"save\"), \"%s\" ), `item( `id(\"load\"), \"%s\" ) ] )"
@@ -1626,7 +1522,7 @@
PkgNames::MenuCheckDeps().c_str(),
PkgNames::MenuAutoDeps().c_str(),
PkgNames::MenuVerifySystem().c_str(),
- PkgNames::MenuTestCase().c_str()
+ PkgNames::MenuTestCase().c_str()
#ifdef FIXME
,
PkgNames::MenuSel().c_str(),
@@ -1639,20 +1535,20 @@
Parser parser( menu );
YCodePtr parsed_code = parser.parse ();
YCPValue layout = YCPNull ();
-
+
if ( parsed_code != NULL )
layout = parsed_code->evaluate();
if ( !layout.isNull() )
{
- y2ui->evaluateReplaceWidget( YCPSymbol ("replacemenu"), layout->asTerm() );
+ y2ui->evaluateReplaceWidget( YCPSymbol ("replacemenu"), layout->asTerm() );
autoCheck = true;
}
}
}
NCPkgTable * packageList = getPackageList();
-
+
if ( packageList )
{
packageList->setKeyboardFocus();
@@ -1672,7 +1568,7 @@
{
NCursesEvent retEvent;
NCPkgTable * packageList = getPackageList();
-
+
if ( !packageList
|| event.selection.isNull() )
{
@@ -1683,7 +1579,7 @@
{
if ( filterPopup )
{
- // show the filter popup (fills the package list)
+ // show the filter popup (fills the package list)
retEvent = filterPopup->showFilterPopup( );
}
}
@@ -1702,7 +1598,7 @@
// show the selection popup
retEvent = patternPopup->showSelectionPopup( );
}
- }
+ }
// patches
else if ( event.selection->compare( PkgNames::Recommended() ) == YO_EQUAL )
{
@@ -1719,7 +1615,7 @@
else if ( event.selection->compare( PkgNames::YaST2Patches() ) == YO_EQUAL )
{
fillPatchList( "YaST2" ); // patch kind
- }
+ }
else if ( event.selection->compare( PkgNames::AllPatches() ) == YO_EQUAL )
{
fillPatchList( "all" ); // show all patches
@@ -1748,11 +1644,11 @@
{
fillSummaryList( NCPkgTable::L_Installed );
}
-
+
packageList->showInformation();
- packageList->setKeyboardFocus();
-
- // return true means: don't leave the event loop in runPkgSelection
+ packageList->setKeyboardFocus();
+
+ // return true means: don't leave the event loop in runPkgSelection
return true;
}
@@ -1765,13 +1661,13 @@
bool PackageSelector::StatusHandler( const NCursesEvent& event )
{
NCPkgTable * packageList = getPackageList();
-
+
if ( !packageList
|| event.selection.isNull() )
{
return false;
}
-
+
if ( packageList->getNumLines() == 0 )
{
// nothing to do
@@ -1806,24 +1702,24 @@
}
else if ( event.selection->compare( PkgNames::TabooOn() ) == YO_EQUAL )
{
- packageList->changeObjStatus( '!' );
+ packageList->changeObjStatus( '!' );
}
else if ( event.selection->compare( PkgNames::TabooOff() ) == YO_EQUAL )
{
- packageList->changeObjStatus( '%' );
- }
+ packageList->changeObjStatus( '%' );
+ }
else if ( event.selection->compare( PkgNames::SourceYes() ) == YO_EQUAL )
{
#ifdef FIXME
- packageList->SourceInstall( true );
+ packageList->SourceInstall( true );
#endif
}
else if ( event.selection->compare( PkgNames::SourceNo() ) == YO_EQUAL )
{
#ifdef FIXME
- packageList->SourceInstall( false );
+ packageList->SourceInstall( false );
#endif
- }
+ }
else if ( event.selection->compare( PkgNames::InstallAll() ) == YO_EQUAL )
{
packageList->changeListObjStatus( NCPkgTable::A_Install );
@@ -1852,9 +1748,9 @@
{
packageList->changeListObjStatus( NCPkgTable::A_DontUpdate );
}
-
+
packageList->setKeyboardFocus();
-
+
return true;
}
@@ -1863,7 +1759,7 @@
// PackageListHandler
//
// Handles actions not directly related to the package list.
-//
+//
bool PackageSelector::PackageListHandler( const NCursesEvent& event )
{
return true;
@@ -1874,7 +1770,7 @@
// DiskinfoHandler
//
// Opens a popup with disk space information.
-//
+//
bool PackageSelector::DiskinfoHandler( const NCursesEvent& event )
{
NCPkgTable * packageList = getPackageList();
@@ -1887,7 +1783,7 @@
{
packageList->setKeyboardFocus();
}
-
+
return true;
}
@@ -1902,7 +1798,7 @@
bool found = false;
// e.g. link is pkg://hp-officeJet
string pkgName = link.substr(6);
-
+
ZyppPoolIterator
b = zyppPkgBegin(),
e = zyppPkgEnd(),
@@ -1925,15 +1821,15 @@
NCERR << "Package " << pkgName << " NOT found" << endl;
// open error popup
}
-
+
return found;
}
///////////////////////////////////////////////////////////////////
//
// testcase handler
-//
-// generate solver testcase
+//
+// generate solver testcase
//
bool PackageSelector::TestcaseHandler ( const NCursesEvent& event )
{
@@ -1949,7 +1845,7 @@
YCPString( "" ),
YCPString( _("Dependency resolver test case written to ") + "<br>" + testCaseDir ) );
info.setNiceSize( 40, 8 );
- info.showInfoPopup( );
+ info.showInfoPopup( );
}
return success;
}
@@ -1957,7 +1853,7 @@
///////////////////////////////////////////////////////////////////
//
// File handler
-//
+//
// export/import all packages and patterns list to/from file
//
bool PackageSelector::FileHandler( const NCursesEvent& event )
@@ -1967,16 +1863,16 @@
return false;
}
- //Export package list into file
- if ( event.selection->compare( PkgNames::ExportToFile() ) == YO_EQUAL )
+ //Export package list into file
+ if ( event.selection->compare( PkgNames::ExportToFile() ) == YO_EQUAL )
{
//Ask for file to save into
- YCPValue filename = YNCursesUI::ui()->askForSaveFileName( YCPString(DEFAULT_EXPORT_FILE_NAME),
- YCPString("*.xml"),
- YCPString(_("Export List of All Packages and Patterns to File" )));
-
- if ( filename->isString() && !filename->asString()->value().empty() )
- {
+ YCPValue filename = YNCursesUI::ui()->askForSaveFileName( YCPString(DEFAULT_EXPORT_FILE_NAME),
+ YCPString("*.xml"),
+ YCPString(_("Export List of All Packages and Patterns to File" )));
+
+ if ( filename->isString() && !filename->asString()->value().empty() )
+ {
zypp::syscontent::Writer writer;
const zypp::ResPool & pool = zypp::getZYpp()->pool();
@@ -1986,21 +1882,21 @@
boost::ref(writer),
_1));
- try
+ try
{
//open file for writing and try to dump syscontent into it
std::ofstream exportFile( filename ->asString()->value_cstr() );
exportFile.exceptions(std::ios_base::badbit | std::ios_base::failbit );
exportFile << writer;
-
+
NCMIL << "Exported list of packages and patterns to " << filename->toString() << endl;
- }
-
+ }
+
catch (std::exception & exception)
{
NCWAR << "Error exporting list of packages and patterns to " << filename->toString() << endl;
- //delete partially written file (don't care if it doesn't exist)
+ //delete partially written file (don't care if it doesn't exist)
(void) unlink( filename->asString()->value_cstr() );
//present error popup to the user
@@ -2012,9 +1908,9 @@
NCursesEvent input = errorMsg.showInfoPopup();
}
-
+
return true;
- }
+ }
}
//Import package list from file
@@ -2026,12 +1922,12 @@
YCPString(_("Import List of All Packages and Patterns from File")));
if ( filename->isString() && !filename->asString()->value().empty() )
- {
+ {
NCPkgTable * packageList = getPackageList();
NCMIL << "Importing list of packages and patterns from " << filename->toString() << endl;
try
- {
+ {
std::ifstream importFile ( filename->asString()->value_cstr() );
zypp::syscontent::Reader reader (importFile);
@@ -2045,32 +1941,32 @@
it ++ )
{
string kind = it->kind();
-
+
// importMapPair => std::pair<string, ZyppReaderEntry>
- if ( kind == "package" )
+ if ( kind == "package" )
importPkgs.insert( importMapPair( it->name(), *it ) );
- else if ( kind == "pattern" )
+ else if ( kind == "pattern" )
importPatterns.insert( importMapPair( it->name(), *it ) );
- }
+ }
- NCMIL << "Found " << importPkgs.size() << " packages and " << importPatterns.size() << " patterns." << endl;
+ NCMIL << "Found " << importPkgs.size() << " packages and " << importPatterns.size() << " patterns." << endl;
//Change status of appropriate packages and patterns
for (ZyppPoolIterator it = zyppPkgBegin();
- it != zyppPkgEnd();
+ it != zyppPkgEnd();
it++ )
{
ZyppSel selectable = *it;
//isWanted => package name found in importPkgs map
- importSelectable ( *it, importPkgs.find( selectable->name() ) != importPkgs.end(), "package" );
+ importSelectable ( *it, importPkgs.find( selectable->name() ) != importPkgs.end(), "package" );
}
for (ZyppPoolIterator it = zyppPatternsBegin();
- it != zyppPatternsEnd();
+ it != zyppPatternsEnd();
it++ )
{
ZyppSel selectable = *it;
- importSelectable ( *it, importPatterns.find( selectable->name() ) != importPatterns.end(), "pattern" );
+ importSelectable ( *it, importPatterns.find( selectable->name() ) != importPatterns.end(), "pattern" );
}
//Switch to installation summary filter
@@ -2096,12 +1992,12 @@
}
}
}
- return true;
+ return true;
}
///////////////////////////////////////////////////////////////////
//
// HelpHandler
-//
+//
// Show the help popup
//
bool PackageSelector::HelpHandler( const NCursesEvent& event )
@@ -2109,12 +2005,12 @@
NCPkgTable * packageList = getPackageList();
string text = "";
YCPString headline = YCPString(PkgNames::PackageHelp());
-
+
if ( event.selection.isNull() )
{
return false;
}
-
+
if ( event.selection->compare( PkgNames::GeneralHelp() ) == YO_EQUAL )
{
text += PkgNames::HelpPkgInst1();
@@ -2145,7 +2041,7 @@
headline = YCPString(PkgNames::SearchHeadline());
text += PkgNames::HelpOnSearch();
}
-
+
// open the popup with the help text
NCPopupInfo pkgHelp( wpos( 1, 1 ), headline, YCPString( text ) );
pkgHelp.setNiceSize( (NCurses::cols()*65)/100, (NCurses::lines()*85)/100 );
@@ -2155,14 +2051,14 @@
{
packageList->setKeyboardFocus();
}
-
+
return true;
}
///////////////////////////////////////////////////////////////////
//
// YOUHelpHandler
-//
+//
// Show the Online Update Help
//
bool PackageSelector::YouHelpHandler( const NCursesEvent& event )
@@ -2182,14 +2078,14 @@
{
packageList->setKeyboardFocus();
}
-
+
return true;
}
///////////////////////////////////////////////////////////////////
//
// SelectionHandler
-//
+//
// Save/Load selections
//
bool PackageSelector::SelectionHandler( const NCursesEvent& event )
@@ -2200,7 +2096,7 @@
{
return false;
}
-
+
if ( event.selection->compare( PkgNames::SaveSel() ) == YO_EQUAL )
{
filePopup->saveToFile();
@@ -2216,7 +2112,7 @@
{
packageList->setKeyboardFocus();
}
-
+
return true;
}
@@ -2225,7 +2121,7 @@
// CancelHandler
//
// Cancel button handler.
-//
+//
bool PackageSelector::CancelHandler( const NCursesEvent& event )
{
bool changes = diffState ();
@@ -2237,7 +2133,7 @@
YCPString( PkgNames::CancelText() ),
PkgNames::OKLabel(),
PkgNames::CancelLabel() );
- cancelMsg.setNiceSize( 35, 8 );
+ cancelMsg.setNiceSize( 35, 8 );
NCursesEvent input = cancelMsg.showInfoPopup( );
if ( input == NCursesEvent::cancel ) {
// don't leave the package installation dialog
@@ -2249,7 +2145,7 @@
NCMIL << "Cancel button pressed - leaving package selection" << endl;
const_cast<NCursesEvent &>(event).result = YCPSymbol("cancel");
-
+
// return false, which means stop the event loop (see runPkgSelection)
return false;
}
@@ -2259,7 +2155,7 @@
// OkButtonHandler
//
// OK button handler.
-//
+//
bool PackageSelector::OkButtonHandler( const NCursesEvent& event )
{
bool closeDialog = true;
@@ -2277,7 +2173,7 @@
}
confirmedAllLicenses = showPendingLicenseAgreements();
-
+
} while ( !confirmedAllLicenses && closeDialog );
if ( !youMode ) // don't show automatic changes if YOU mode
@@ -2292,7 +2188,7 @@
closeDialog = false;
}
}
-
+
if ( diskspacePopup )
{
string message = "";
@@ -2305,8 +2201,8 @@
YCPString( PkgNames::DiskSpaceError() + "<br>" + message ),
PkgNames::OKLabel(),
PkgNames::CancelLabel() );
-
- spaceMsg.setNiceSize( 50, 10 );
+
+ spaceMsg.setNiceSize( 50, 10 );
NCursesEvent input = spaceMsg.showInfoPopup( );
if ( input == NCursesEvent::cancel )
@@ -2323,10 +2219,10 @@
// could free some memory?
// clearSaveState ();
- const_cast<NCursesEvent &>(event).result = YCPSymbol("accept");
+ const_cast<NCursesEvent &>(event).result = YCPSymbol("accept");
NCMIL << "OK button pressed - leaving package selection, starting installation" << endl;
- // return false, leave the package selection
+ // return false, leave the package selection
return false;
}
else
@@ -2355,7 +2251,7 @@
bool PackageSelector::showPendingLicenseAgreements( ZyppPoolIterator begin, ZyppPoolIterator end )
{
- y2milestone( "Showing all pending license agreements" );
+ NCMIL << "Showing all pending license agreements" << endl;
bool allConfirmed = true;
@@ -2376,7 +2272,8 @@
if ( ! licenseText.empty() )
{
- y2milestone( "Package/Patch %s has a license agreement", sel->name().c_str() );
+ NCMIL << "Package/Patch " << sel->name().c_str() <<
+ "has a license" << endl;
if( ! sel->hasLicenceConfirmed() )
{
@@ -2384,7 +2281,8 @@
}
else
{
- y2milestone( "Package/Patch %s's license is already confirmed", sel->name().c_str() );
+ NCMIL << "License for " << sel->name().c_str() <<
+ " is already confirmed" << endl;
}
}
}
@@ -2422,18 +2320,18 @@
{
case S_Install:
case S_AutoInstall:
- slbPtr->set_status( S_Taboo );
+ slbPtr->setStatus( S_Taboo );
break;
-
+
case S_Update:
case S_AutoUpdate:
- slbPtr->set_status( S_Protected );
+ slbPtr->setStatus( S_Protected );
break;
default:
break;
}
-
+
ok = false;
} else {
NCMIL << "User confirmed license agreement for " << pkgName << endl;
@@ -2464,13 +2362,13 @@
if ( visibleInfo.isNull() )
{
NCERR << "Visible package information NOT set" << endl;
- return false;
- }
+ return false;
+ }
if ( visibleInfo->compare( PkgNames::PatchDescr() ) == YO_EQUAL )
{
string descr;
-
+
descr += PkgNames::Patch();
descr += selectable->name();
descr += " ";
@@ -2487,22 +2385,22 @@
descr += "<br>";
if ( selectable->hasInstalledObj()
- && selectable->installedPoolItem().status().isIncomplete() )
+ && selectable->installedObj().isBroken() )
{
descr += _( "----- this patch is broken !!! -----" );
descr += "<br>";
}
// get and format the patch description
- zypp::Text value = patchPtr->description();
+ string value = patchPtr->description();
descr += createDescrText( value );
-
- // show the description
+
+ // show the description
YWidget * descrInfo = y2ui->widgetWithId( PkgNames::Description(), true );
-
+
if ( descrInfo )
{
static_cast<NCRichText *>(descrInfo)->setText( YCPString( descr ) );
- }
+ }
}
else if ( visibleInfo->compare( PkgNames::PatchPackages() ) == YO_EQUAL )
{
@@ -2520,7 +2418,7 @@
fillPatchPackages ( patchPkgsVersions, objPtr, true);
}
}
-
+
return true;
}
@@ -2534,7 +2432,7 @@
bool PackageSelector::showPackageDependencies ( bool doit )
{
bool cancel = false;
-
+
if ( depsPopup
&& (doit || autoCheck) )
{
@@ -2597,22 +2495,22 @@
NCERR << "Selectable not valid" << endl;
return false;
}
-
+
if ( visibleInfo.isNull() )
{
NCERR << "Visible package information NOT set" << endl;
- return false;
+ return false;
}
if ( visibleInfo->compare( PkgNames::LongDescr() ) == YO_EQUAL )
{
// ask the package manager for the description of this package
- zypp::Text value = pkgPtr->description();
+ string value = pkgPtr->description();
string descr = createDescrText( value );
- // show the description
+ // show the description
YWidget * descrInfo = y2ui->widgetWithId( PkgNames::Description(), true );
-
+
if ( descrInfo )
{
static_cast<NCRichText *>(descrInfo)->setText( YCPString(descr) );
@@ -2627,26 +2525,26 @@
if ( package )
{
// get the file list from the package manager/show the list
- list<string> fileList = package->filenames();
- text += createText( fileList, false ) ;
+ zypp::Package::FileList fileList = package->filelist();
+ text += createText( fileList.begin(), fileList.end(), false ) ;
}
-
- // get the widget id
- YWidget * descrInfo = y2ui->widgetWithId( PkgNames::Description(), true );
+
+ // get the widget id
+ YWidget * descrInfo = y2ui->widgetWithId( PkgNames::Description(), true );
if ( descrInfo )
{
static_cast<NCRichText *>(descrInfo)->setText( YCPString(text) );
- }
+ }
}
else if ( visibleInfo->compare( PkgNames::PkgInfo() ) == YO_EQUAL )
{
string instVersion = "";
string version = "";
string text = "";
-
+
text += slbPtr->name();
text += " - ";
-
+
text += pkgPtr->summary();
text += "<br>";
@@ -2665,9 +2563,9 @@
{
version = pkgPtr->edition().version();
version += "-";
- version += pkgPtr->edition().release();
+ version += pkgPtr->edition().release();
}
-
+
text += PkgNames::Version();
text += version;
if ( instVersion != "" )
@@ -2677,22 +2575,22 @@
text += instVersion;
}
text += " ";
-
+
// show the size
text += PkgNames::Size();
- text += pkgPtr->size().asString();
+ text += pkgPtr->installSize().asString();
text += " ";
-
+
ZyppPkg package = tryCastToZyppPkg (pkgPtr);
if ( package )
{
// add the media nr
text += PkgNames::MediaNo();
char num[5];
- int medianr = package->sourceMediaNr ();
+ int medianr = package->location().medianr();
sprintf( num, "%d", medianr );
text += num;
- text += "<br>";
+ text += "<br>";
// the license
text += PkgNames::License();
@@ -2705,10 +2603,10 @@
text += package->group ();
text += "<br>";
}
-
+
// show Provides:
text += PkgNames::Provides();
- zypp::CapSet provides = package->dep (zypp::Dep::PROVIDES);
+ zypp::Capabilities provides = package->dep (zypp::Dep::PROVIDES);
text += createRelLine(provides);
text += "<br>";
@@ -2716,11 +2614,11 @@
if ( package )
{
text += PkgNames::Authors();
- list<string> authors = package->authors(); // zypp::Package
- text += createText( authors, true );
+ list<string> authors = package->authors(); // zypp::Package
+ text += createText( authors.begin(), authors.end(), true );
}
-
- // show the description
+
+ // show the description
YWidget * descrInfo = y2ui->widgetWithId( PkgNames::Description(), true );
if ( descrInfo )
@@ -2753,14 +2651,13 @@
zypp::Dep::OBSOLETES,
zypp::Dep::RECOMMENDS,
zypp::Dep::SUGGESTS,
- zypp::Dep::FRESHENS,
zypp::Dep::ENHANCES,
zypp::Dep::SUPPLEMENTS,
};
for (size_t i = 0; i < sizeof (deptypes)/sizeof(deptypes[0]); ++i)
{
zypp::Dep deptype = deptypes[i];
- zypp::CapSet relations = pkgPtr->dep (deptype);
+ zypp::Capabilities relations = pkgPtr->dep (deptype);
string relline = createRelLine (relations);
if (!relline.empty ())
{
@@ -2769,18 +2666,18 @@
+ relline + "<br>";
}
}
-
- // show the package relations
+
+ // show the package relations
YWidget * descrInfo = y2ui->widgetWithId( PkgNames::Description(), true );
-
+
if ( descrInfo )
{
static_cast<NCRichText *>(descrInfo)->setText( YCPString( text ) );
}
}
-
+
NCDBG << "Showing package information: " << visibleInfo->toString() << endl;
-
+
return true;
}
@@ -2790,10 +2687,10 @@
//
#define DOCTYPETAG "<!-- DT:Rich -->"
-string PackageSelector::createDescrText( zypp::Text value )
+string PackageSelector::createDescrText( const string & value )
{
string html_text = "";
-
+
#ifdef FIXME
bool author_format = false;
bool htmlFormat = false; /* Is the description coming in html? */
@@ -2802,7 +2699,7 @@
* to be formatted in html. The yast (this method here) needs not to
* do further formatting for the text part.
*/
-
+
list<string>::const_iterator it = value.begin();
string line;
@@ -2853,15 +2750,15 @@
else
{
html_text += " ";
- }
+ }
}
-
+
++it;
}
#else
html_text = value;
#endif
-
+
return html_text;
}
@@ -2879,19 +2776,15 @@
}
}
-///////////////////////////////////////////////////////////////////
-//
-// createProvides
-//
-string PackageSelector::createRelLine( const zypp::CapSet & info )
+string PackageSelector::createRelLine( const zypp::Capabilities & info )
{
string text = "";
- zypp::CapSet::const_iterator
+ zypp::Capabilities::const_iterator
b = info.begin (),
e = info.end (),
it;
unsigned int i, n = info.size();
-
+
for ( it = b, i = 0; it != e; ++it, ++i )
{
text = text + (*it).asString();
@@ -2904,40 +2797,6 @@
return text;
}
-
-///////////////////////////////////////////////////////////////////
-//
-// createText
-//
-string PackageSelector::createText( list<string> info, bool oneline )
-{
- list<string>::iterator it;
- string text = "";
- unsigned int i;
-
- for ( i = 0, it = info.begin(); it != info.end() && i < 1000; ++it, i++ )
- {
- text += (*it);
- if ( i < info.size()-1 )
- {
- if ( oneline && i < 999 )
- {
- text += ", ";
- }
- else
- {
- text += "<br>";
- }
- }
- if ( i == 999 )
- {
- text += "...";
- }
- }
-
- return text;
-}
-
static
ostream & operator << (ostream & s, zypp::DiskUsageCounter::MountPoint mp)
{
@@ -2971,14 +2830,14 @@
zypp::ByteCount diff = 0;
for (it = b; it != e; ++it)
{
- UIMIL << *it << endl;
+ //NCMIL << *it << endl;
diff += (it->pkg_size - it->used_size) * 1024;
}
// show pkg_diff, i.e. total difference of disk space (can be negative in installed system
// if packages are deleted)
YCPString label( diff.asString () );
-
+
// show the required diskspace
YWidget * diskSpace = y2ui->widgetWithId( PkgNames::Diskspace(), true );
if ( diskSpace )
@@ -3010,18 +2869,17 @@
if ( patch )
{
- ZyppPatchContents patchContents( patch );
+ zypp::Patch::Contents patchContents(patch->contents());
- for ( ZyppPatchContentsIterator contents_it = patchContents.begin();
- contents_it != patchContents.end();
- ++contents_it )
- {
- ZyppPkg pkg = tryCastToZyppPkg( *contents_it );
- ZyppSel sel;
-
- if ( pkg )
- sel = selMapper.findZyppSel( pkg );
-
+ for ( ZyppPatchContentsIterator contents_it = patchContents.selectableBegin();
+ contents_it != patchContents.selectableEnd();
+ ++contents_it )
+ {
+ ZyppPkg pkg = tryCastToZyppPkg( (*contents_it)->theObj() );
+ ZyppSel sel;
+
+ if ( pkg )
+ sel = selMapper.findZyppSel( pkg );
if ( sel )
{
@@ -3063,7 +2921,7 @@
++it )
{
if ( (*it)->candidateObj() )
- totalSize += (*it)->candidateObj()->size();
+ totalSize += (*it)->candidateObj()->downloadSize();
}
YCPString label( totalSize.asString() );
@@ -3084,6 +2942,6 @@
NCPkgTable * PackageSelector::getPackageList()
{
YWidget * packages = y2ui->widgetWithId( PkgNames::Packages(), true );
-
+
return ( dynamic_cast<NCPkgTable *>(packages) );
}
Modified: branches/tmp/dmacvicar/zc10/ncurses/src/PackageSelector.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/tmp/dmacvicar/zc10/ncurses/sr…
==============================================================================
--- branches/tmp/dmacvicar/zc10/ncurses/src/PackageSelector.h (original)
+++ branches/tmp/dmacvicar/zc10/ncurses/src/PackageSelector.h Mon May 23 21:27:16 2011
@@ -24,7 +24,7 @@
#include "YNCursesUI.h"
#include "PkgNames.h"
-#include <map>
+#include <map>
#include <string>
#include <utility> // for STL pair
@@ -68,7 +68,7 @@
typedef std::map<std::string, tHandlerFctPtr> tHandlerMap;
tHandlerMap eventHandlerMap; // event handler map
-
+
YNCursesUI * y2ui; // the UI
YCPValue visibleInfo; // visible package info (description, file list, ...)
@@ -85,21 +85,21 @@
NCPopupSearch * searchPopup; // the package search popup
NCPopupFile * filePopup; // the save/load selection popup
-
+
bool youMode; // YOU
bool updateMode; // Update
bool testMode; // testing
-
+
bool autoCheck; // flag for automatic dependency check on/off
YRpmGroupsTree * _rpmGroupsTree; // rpm groups of the found packages
-
- // internal helper functions (format list of string)
- string createRelLine( const zypp::CapSet & info );
+
+ // internal helper functions (format list of string)
+ string createRelLine( const zypp::Capabilities & info );
// internal use (copies tree items got from YPkgRpmGroupTagsFilterView)
void cloneTree( YStringTreeItem * parentOrig, YTreeItem * parentClone );
- // the package (patch) list
+ // the package (patch) list
NCPkgTable * getPackageList();
// Mapping from ZyppPkg to the correspoinding ZyppSel.
@@ -123,9 +123,9 @@
/**
* Destructor
- */
+ */
virtual ~PackageSelector();
-
+
/**
* Fills the package table
* @param label The selected RPM group (the label)
@@ -141,7 +141,7 @@
* @return bool
*/
bool fillPatchList( string filter );
-
+
/**
* Fills the package table with packages with update problems
* @return bool
@@ -149,15 +149,15 @@
bool fillUpdateList( );
/**
- * Fills the package table with a summary packages
+ * Fills the package table with a summary packages
* @return bool
*/
bool fillSummaryList( NCPkgTable::NCPkgTableListType type );
-
+
/**
* Fills the list of available packages
* @param table The table widget
- * @param selectable Show all available versions of this package
+ * @param selectable Show all available versions of this package
* @return bool
*/
bool fillAvailableList( NCPkgTable *table, ZyppSel selectable );
@@ -168,9 +168,9 @@
* @param youPatch Show all packages belonging to the patch
* @param versions Show all versions of all packages belonging to the patch
* @return bool
- */
+ */
bool fillPatchPackages ( NCPkgTable * pkgTable, ZyppObj youPatch, bool versions = false );
-
+
/**
* Fills the package table with packages matching the search expression
* @param expr The search expression
@@ -180,7 +180,7 @@
* @param checkProvides Check in Provides (true or false)
* @param checkRequires Check in Requires (true or false)
* @return bool
- */
+ */
bool fillSearchList( const YCPString & expr,
bool ignoreCase,
bool checkName,
@@ -190,7 +190,7 @@
bool checkRequires );
bool fillPatchSearchList( const YCPString & expr );
-
+
bool isYouMode() { return youMode; }
/**
* Gets default RPM group (the first group)
@@ -231,7 +231,7 @@
* @return bool
*/
bool SelectionHandler( const NCursesEvent& event );
-
+
/**
* Handler function for the "Information" menu
* @param event The Ncurses event
@@ -254,7 +254,7 @@
/**
* Handler function for "OK button pressed"
* @param event The Ncurses event
- * @return bool
+ * @return bool
*/
bool OkButtonHandler ( const NCursesEvent& event );
@@ -271,26 +271,26 @@
* @return bool
*/
bool DiskinfoHandler ( const NCursesEvent& event );
-
+
/**
* Handler function for the package list which handles events not directly
* related to the list. Most events are handled in NCPkgTable itself.
* @param event The Ncurses event
* @return bool
- */
+ */
bool PackageListHandler( const NCursesEvent& event );
/**
* Handler function for the "Filter" menu
* @param event The Ncurses event
- * @return bool
+ * @return bool
*/
bool FilterHandler( const NCursesEvent& event );
/**
* Handler function for the "Action" menu (changes the package status)
* @param event The Ncurses event
- * @return bool
+ * @return bool
*/
bool StatusHandler( const NCursesEvent& event );
@@ -314,7 +314,7 @@
* @return bool
*/
bool LinkHandler ( string link );
-
+
/**
* Gets the required package info from package manager and shows it
* ( called from NCPkgTable )
@@ -333,12 +333,12 @@
* Verifies and shows the dependencies
*/
bool verifyPackageDependencies ();
-
+
/**
* Checks and shows the selectiondependencies
*/
void showSelectionDependencies ( );
-
+
/**
* Gets the required patch info from you patch manager and shows it
@@ -347,7 +347,7 @@
*/
bool showPatchInformation ( ZyppObj pkgPtr, ZyppSel slbPtr );
-
+
/**
* Sets the member variable to the currently visible information
* @param info
@@ -366,11 +366,11 @@
* Updates the status in list of packages
*/
void updatePackageList();
-
+
/**
* Check if 'pkg' matches 'selectedRpmGroup'.
* Returns true if there is a match, false otherwise or if 'pkg' is 0.
- * @return bool
+ * @return bool
**/
bool checkPackage( ZyppObj pkg, ZyppSel slb, YStringTreeItem * rpmGroup );
@@ -380,22 +380,22 @@
* @return bool
**/
bool checkPatch( ZyppPatch patch, ZyppSel selectable, string filter );
-
+
/**
- * Set status of a selectable according to its presence
+ * Set status of a selectable according to its presence
* in the list imported from xml file (zypp::syscontent::Reader)
- *
+ *
* @param selectable a selectable
* @param isWanted should be installed or not
- * @param kind "package" or "pattern"
- * @return void
+ * @param kind "package" or "pattern"
+ * @return void
**/
void importSelectable ( ZyppSel selectable, bool isWanted, const char* kind );
-
+
/**
* Returns whether automatic dependency is on or off
- * @return bool
- */
+ * @return bool
+ */
bool autoChecking() { return autoCheck; }
/**
@@ -403,14 +403,44 @@
* @param oneline true: create one line, items seperated by comma; false: every string is a line
* @return string The text
*/
- string createText( list<string> info, bool oneline );
+ template <class InputIterator>
+ std::string createText( InputIterator begin, InputIterator end, bool oneline )
+ {
+ string text = "";
+ unsigned int i;
+ InputIterator it;
+
+ for ( i = 0, it = begin; it != end && i < 1000; ++it, i++ )
+ {
+ text += (*it);
+ InputIterator next(it);
+ if ( ++next == end )
+ {
+ if ( oneline && i < 999 )
+ {
+ text += ", ";
+ }
+ else
+ {
+ text += "<br>";
+ }
+ }
+ if ( i == 999 )
+ {
+ text += "...";
+ }
+ }
+
+ return text;
+ }
+
/**
* Creates a text from a list of strings which may contain HTML tags
* @param t used to be list, now a single string. but what does it contain?
* @return string The text
*/
- string createDescrText( zypp::Text t );
+ string createDescrText( const string & t );
/**
* Used for package search
@@ -422,12 +452,12 @@
/**
* Calls the package mananager (updateDu()) and shows the required disk space
- */
+ */
void showDiskSpace();
/**
* Shows the total download size
- */
+ */
void showDownloadSize();
/**
@@ -446,9 +476,9 @@
/**
* Show popup with license.
* @return bool
- */
+ */
bool showLicenseAgreement( ZyppSel & slbPtr , string licenseText );
-
+
void createFilterMenu();
/**
@@ -456,7 +486,7 @@
* (usually via 'verify system' call)
* @return std::set <string>
*/
- set <string> getVerifiedPkgs()
+ set <string> getVerifiedPkgs()
{
return verified_pkgs;
}
Modified: branches/tmp/dmacvicar/zc10/ncurses/src/YNCursesUI.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/tmp/dmacvicar/zc10/ncurses/sr…
==============================================================================
--- branches/tmp/dmacvicar/zc10/ncurses/src/YNCursesUI.cc (original)
+++ branches/tmp/dmacvicar/zc10/ncurses/src/YNCursesUI.cc Mon May 23 21:27:16 2011
@@ -26,7 +26,7 @@
#include <YEvent.h>
#include <ycp/y2log.h>
-#include <ycp/Parser.h>
+//#include <ycp/Parser.h>
#include <ycp/YCPString.h>
#include <ycp/YCPVoid.h>
#include <ycp/YCPMap.h>
@@ -87,11 +87,11 @@
setenv( "LC_CTYPE", locale.c_str(), 1 );
NCMIL << "setenv LC_CTYPE: " << locale << " encoding: " << encoding << endl;
-
+
// The encoding of a terminal (xterm, konsole usw. ) can never change; the encoding
- // of "real" console is changed in setConsoleFont().
+ // of "real" console is changed in setConsoleFont().
NCstring::setTerminalEncoding( encoding );
-
+
setLanguage( language );
}
@@ -106,7 +106,7 @@
if ( macro_file )
playMacro( macro_file );
-
+
topmostConstructorHasFinished();
}
@@ -201,19 +201,19 @@
{
// Note: libyui assumes ownership of YEvents, so they need to be
// created on the heap with 'new'. libyui takes care of deleting them.
-
+
case button:
if ( widget->isValid() )
return new YWidgetEvent( dynamic_cast<YWidget *> (widget), reason );
else
return 0;
-
+
case menu:
return new YMenuEvent( selection );
-
+
case cancel:
return new YCancelEvent();
-
+
case timeout:
return new YTimeoutEvent();
@@ -222,17 +222,17 @@
return new YKeyEvent( keySymbol, dynamic_cast<YWidget *> (widget) );
else
return 0;
-
+
case none:
case handled:
return 0;
// Intentionally omitting 'default' branch so the compiler can
- // detect unhandled enums
+ // detect unhandled enums
}
// If we get this far, there must be an error.
-
+
UIINT << "Can't propagate through (EventType*)0" << endl;
UIDBG << *this << endl;
return 0;
@@ -263,7 +263,7 @@
YEvent * yevent = cevent.propagate();
UIDBG << "Returning event: " << ( yevent ? yevent->ycpEvent()->toString().c_str() : "(nil)" ) << endl;
-
+
return yevent;
}
@@ -755,7 +755,7 @@
Refresh();
NCDBG << "Language: " << language << " Encoding: " << ((encoding!="")?encoding:"NOT SET") << endl;
-
+
return true;
}
@@ -792,9 +792,9 @@
//
int YNCursesUI::runInTerminal( const YCPString & module )
-{
+{
int ret;
- string cmd = module->value();
+ string cmd = module->value();
//Save tty modes and end ncurses mode temporarily
::def_prog_mode();
@@ -891,13 +891,13 @@
string code = language2encoding( language );
NCMIL << "setConsoleFont( ENCODING: " << code << " )" << endl;
-
+
if ( NCstring::setTerminalEncoding( code ) )
{
Redraw();
}
else
- {
+ {
Refresh();
}
}
@@ -997,7 +997,7 @@
const YCPString & headline )
{
NCAskForSaveFileName filePopup( wpos( 1, 1 ), startDir, filter, headline );
-
+
NCursesEvent retEvent = filePopup.showDirPopup( );
if ( !retEvent.result.isNull() )
@@ -1006,7 +1006,7 @@
return retEvent.result;
}
else
- return YCPVoid(); // nothing selected -> return 'nil'
+ return YCPVoid(); // nothing selected -> return 'nil'
}
///////////////////////////////////////////////////////////////////
@@ -1022,7 +1022,7 @@
const YCPString & headline )
{
NCAskForExistingFile filePopup( wpos( 1, 1 ), startDir, filter, headline );
-
+
NCursesEvent retEvent = filePopup.showDirPopup( );
if ( !retEvent.result.isNull() )
@@ -1031,7 +1031,7 @@
return retEvent.result;
}
else
- return YCPVoid(); // nothing selected -> return 'nil'
+ return YCPVoid(); // nothing selected -> return 'nil'
}
///////////////////////////////////////////////////////////////////
@@ -1046,7 +1046,7 @@
const YCPString & headline )
{
NCAskForExistingDirectory dirPopup( wpos( 1, 1 ), startDir, headline );
-
+
NCursesEvent retEvent = dirPopup.showDirPopup( );
if ( !retEvent.result.isNull() )
Modified: branches/tmp/dmacvicar/zc10/ncurses/src/YQZypp.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/tmp/dmacvicar/zc10/ncurses/sr…
==============================================================================
--- branches/tmp/dmacvicar/zc10/ncurses/src/YQZypp.h (original)
+++ branches/tmp/dmacvicar/zc10/ncurses/src/YQZypp.h Mon May 23 21:27:16 2011
@@ -10,40 +10,39 @@
| (C) SuSE GmbH |
\----------------------------------------------------------------------/
- File: YQZypp.h
+ File: NCZypp.h
Author: Stefan Hundhammer <sh(a)suse.de>
/-*/
-// -*- c++ -*-
-
-#ifndef YQZypp_h
-#define YQZypp_h
+#ifndef Yqzypp_h
+#define Yqzypp_h
#include <set>
#include <zypp/ui/Status.h>
#include <zypp/ui/Selectable.h>
#include <zypp/ResObject.h>
#include <zypp/Package.h>
-#include <zypp/Selection.h>
#include <zypp/Pattern.h>
-#include <zypp/Language.h>
+#include <zypp/Product.h>
+//#include <zypp/Language.h>
#include <zypp/Patch.h>
#include <zypp/ZYppFactory.h>
#include <zypp/ResPoolProxy.h>
+#include <zypp/PoolQuery.h>
-using zypp::ui::S_Protected;
-using zypp::ui::S_Taboo;
-using zypp::ui::S_Del;
-using zypp::ui::S_Update;
-using zypp::ui::S_Install;
-using zypp::ui::S_AutoDel;
-using zypp::ui::S_AutoUpdate;
-using zypp::ui::S_AutoInstall;
-using zypp::ui::S_KeepInstalled;
-using zypp::ui::S_NoInst;
+using zypp::ui::S_Protected;
+using zypp::ui::S_Taboo;
+using zypp::ui::S_Del;
+using zypp::ui::S_Update;
+using zypp::ui::S_Install;
+using zypp::ui::S_AutoDel;
+using zypp::ui::S_AutoUpdate;
+using zypp::ui::S_AutoInstall;
+using zypp::ui::S_KeepInstalled;
+using zypp::ui::S_NoInst;
//
@@ -54,13 +53,15 @@
typedef zypp::ui::Selectable::Ptr ZyppSel;
typedef zypp::ResObject::constPtr ZyppObj;
typedef zypp::Package::constPtr ZyppPkg;
-typedef zypp::Selection::constPtr ZyppSelection;
typedef zypp::Pattern::constPtr ZyppPattern;
-typedef zypp::Language::constPtr ZyppLang;
+//typedef zypp::Language::constPtr ZyppLang;
typedef zypp::Patch::constPtr ZyppPatch;
+typedef zypp::Product::constPtr ZyppProduct;
+typedef zypp::Repository ZyppRepo;
typedef zypp::ResPoolProxy ZyppPool;
typedef zypp::ResPoolProxy::const_iterator ZyppPoolIterator;
+typedef zypp::ResPoolProxy::repository_iterator ZyppRepositoryIterator;
inline ZyppPool zyppPool() { return zypp::getZYpp()->poolProxy(); }
@@ -71,46 +72,49 @@
inline ZyppPoolIterator zyppPkgBegin() { return zyppBegin<zypp::Package>(); }
inline ZyppPoolIterator zyppPkgEnd() { return zyppEnd<zypp::Package>(); }
-inline ZyppPoolIterator zyppSelectionsBegin() { return zyppBegin<zypp::Selection>(); }
-inline ZyppPoolIterator zyppSelectionsEnd() { return zyppEnd<zypp::Selection>(); }
-
inline ZyppPoolIterator zyppPatternsBegin() { return zyppBegin<zypp::Pattern>(); }
inline ZyppPoolIterator zyppPatternsEnd() { return zyppEnd<zypp::Pattern>(); }
-inline ZyppPoolIterator zyppLangBegin() { return zyppBegin<zypp::Language>(); }
-inline ZyppPoolIterator zyppLangEnd() { return zyppEnd<zypp::Language>(); }
+//inline ZyppPoolIterator zyppLangBegin() { return zyppBegin<zypp::Language>(); }
+//inline ZyppPoolIterator zyppLangEnd() { return zyppEnd<zypp::Language>(); }
inline ZyppPoolIterator zyppPatchesBegin() { return zyppBegin<zypp::Patch>(); }
inline ZyppPoolIterator zyppPatchesEnd() { return zyppEnd<zypp::Patch>(); }
+inline ZyppPoolIterator zyppProductsBegin() { return zyppBegin<zypp::Product>(); }
+inline ZyppPoolIterator zyppProductsEnd() { return zyppEnd<zypp::Product>(); }
+
+inline ZyppRepositoryIterator ZyppRepositoriesBegin() { return zyppPool().knownRepositoriesBegin(); }
+inline ZyppRepositoryIterator ZyppRepositoriesEnd() { return zyppPool().knownRepositoriesEnd(); }
+
inline ZyppPkg tryCastToZyppPkg( ZyppObj zyppObj )
{
return zypp::dynamic_pointer_cast<const zypp::Package>( zyppObj );
}
-inline ZyppSelection tryCastToZyppSelection( ZyppObj zyppObj )
-{
- return zypp::dynamic_pointer_cast<const zypp::Selection>( zyppObj );
-}
-
inline ZyppPattern tryCastToZyppPattern( ZyppObj zyppObj )
{
return zypp::dynamic_pointer_cast<const zypp::Pattern>( zyppObj );
}
+#if 0
inline ZyppLang tryCastToZyppLang( ZyppObj zyppObj )
{
return zypp::dynamic_pointer_cast<const zypp::Language>( zyppObj );
}
-
+#endif
inline ZyppPatch tryCastToZyppPatch( ZyppObj zyppObj )
{
return zypp::dynamic_pointer_cast<const zypp::Patch>( zyppObj );
}
+inline ZyppProduct tryCastToZyppProduct( ZyppObj zyppObj )
+{
+ return zypp::dynamic_pointer_cast<const zypp::Product>( zyppObj );
+}
-template<typename T> bool contains( const std::set<T> & container, T search )
+template<typename T> bool inContainer( const std::set<T> & container, T search )
{
return container.find( search ) != container.end();
}
@@ -121,5 +125,8 @@
return binary_search( sorted_vector.begin(), sorted_vector.end(), search);
}
-
-#endif // YQZypp_h
+inline bool sortByName( ZyppSel ptr1, ZyppSel ptr2 )
+{
+ return( ptr1->name() < ptr2->name() );
+}
+#endif // Yqzypp_h
--
To unsubscribe, e-mail: yast-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: yast-commit+help(a)opensuse.org
1
0
[yast-commit] r64089 - /branches/SuSE-Code-11-SP2-Branch/apparmor/
by jreidinger@svn2.opensuse.org 23 May '11
by jreidinger@svn2.opensuse.org 23 May '11
23 May '11
Author: jreidinger
Date: Mon May 23 16:39:24 2011
New Revision: 64089
URL: http://svn.opensuse.org/viewcvs/yast?rev=64089&view=rev
Log:
create separate package for SP2 for apparmor features
Added:
branches/SuSE-Code-11-SP2-Branch/apparmor/ (props changed)
- copied from r64088, branches/SuSE-Code-11-SP1-Branch/apparmor/
--
To unsubscribe, e-mail: yast-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: yast-commit+help(a)opensuse.org
1
0
[yast-commit] r64088 - /branches/SuSE-Code-11-SP1-Branch/control-center/src/
by tgoettlicher@svn2.opensuse.org 23 May '11
by tgoettlicher@svn2.opensuse.org 23 May '11
23 May '11
Author: tgoettlicher
Date: Mon May 23 15:58:18 2011
New Revision: 64088
URL: http://svn.opensuse.org/viewcvs/yast?rev=64088&view=rev
Log:
backported trunk to sp2
Added:
branches/SuSE-Code-11-SP1-Branch/control-center/src/CMakeLists.txt
branches/SuSE-Code-11-SP1-Branch/control-center/src/YaST-systemsettings.desktop
branches/SuSE-Code-11-SP1-Branch/control-center/src/i18n.cpp
branches/SuSE-Code-11-SP1-Branch/control-center/src/i18n.h
branches/SuSE-Code-11-SP1-Branch/control-center/src/kcategorizedsortfilterproxymodel.cpp
branches/SuSE-Code-11-SP1-Branch/control-center/src/kcategorizedsortfilterproxymodel.h
branches/SuSE-Code-11-SP1-Branch/control-center/src/kcategorizedsortfilterproxymodel_p.h
branches/SuSE-Code-11-SP1-Branch/control-center/src/kcategorizedview.cpp
branches/SuSE-Code-11-SP1-Branch/control-center/src/kcategorizedview.h
branches/SuSE-Code-11-SP1-Branch/control-center/src/kcategorizedview_p.h
branches/SuSE-Code-11-SP1-Branch/control-center/src/kcategorydrawer.cpp
branches/SuSE-Code-11-SP1-Branch/control-center/src/kcategorydrawer.h
branches/SuSE-Code-11-SP1-Branch/control-center/src/kcmoduleinfo.cpp
branches/SuSE-Code-11-SP1-Branch/control-center/src/kcmoduleinfo.h
branches/SuSE-Code-11-SP1-Branch/control-center/src/kcmodulemodel.cpp
branches/SuSE-Code-11-SP1-Branch/control-center/src/kcmodulemodel.h
branches/SuSE-Code-11-SP1-Branch/control-center/src/kicongrouppage.cpp
branches/SuSE-Code-11-SP1-Branch/control-center/src/kicongrouppage.h
branches/SuSE-Code-11-SP1-Branch/control-center/src/listview.h
branches/SuSE-Code-11-SP1-Branch/control-center/src/main_window.cpp
branches/SuSE-Code-11-SP1-Branch/control-center/src/main_window.h
branches/SuSE-Code-11-SP1-Branch/control-center/src/menuitem.cpp
branches/SuSE-Code-11-SP1-Branch/control-center/src/menuitem.h
branches/SuSE-Code-11-SP1-Branch/control-center/src/models_test.cpp
branches/SuSE-Code-11-SP1-Branch/control-center/src/moduleiconitem.cpp
branches/SuSE-Code-11-SP1-Branch/control-center/src/moduleiconitem.h
branches/SuSE-Code-11-SP1-Branch/control-center/src/yccmoduleinfoprovider.cpp
branches/SuSE-Code-11-SP1-Branch/control-center/src/yccmoduleinfoprovider.h
branches/SuSE-Code-11-SP1-Branch/control-center/src/yqdesktopfilesmodel.cpp
branches/SuSE-Code-11-SP1-Branch/control-center/src/yqdesktopfilesmodel.h
branches/SuSE-Code-11-SP1-Branch/control-center/src/yqmodulegroupsmodel.cpp
branches/SuSE-Code-11-SP1-Branch/control-center/src/yqmodulegroupsmodel.h
branches/SuSE-Code-11-SP1-Branch/control-center/src/yqmodulesmodel.cpp
branches/SuSE-Code-11-SP1-Branch/control-center/src/yqmodulesmodel.h
branches/SuSE-Code-11-SP1-Branch/control-center/src/yqmodulesproxymodel.cpp
branches/SuSE-Code-11-SP1-Branch/control-center/src/yqmodulesproxymodel.h
branches/SuSE-Code-11-SP1-Branch/control-center/src/yqsavelogs.cpp
branches/SuSE-Code-11-SP1-Branch/control-center/src/yqsavelogs.h
Modified:
branches/SuSE-Code-11-SP1-Branch/control-center/src/YaST.desktop
branches/SuSE-Code-11-SP1-Branch/control-center/src/main.cpp
Added: branches/SuSE-Code-11-SP1-Branch/control-center/src/CMakeLists.txt
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/contr…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/control-center/src/CMakeLists.txt (added)
+++ branches/SuSE-Code-11-SP1-Branch/control-center/src/CMakeLists.txt Mon May 23 15:58:18 2011
@@ -0,0 +1,86 @@
+INCLUDE(${QT_USE_FILE})
+
+INCLUDE_DIRECTORIES(/usr/include/initng ${CMAKE_CURRENT_BINARY_DIR})
+
+SET(THEMEDIR "/usr/share/YaST2/theme")
+
+ADD_DEFINITIONS(-DQT_NO_DEBUG_OUTPUT)
+ADD_DEFINITIONS("-DLOCALEDIR=\"${CMAKE_INSTALL_PREFIX}/share/YaST2/locale\"")
+ADD_DEFINITIONS("-DICON_DIR=\"${THEMEDIR}/current/icons/32x32/apps\"")
+ADD_DEFINITIONS("-DFALLBACK_ICON_DIR=\"${CMAKE_INSTALL_PREFIX}/share/icons/hicolor/32x32/apps\"")
+ADD_DEFINITIONS("-DPIXMAP_DIR=\"${THEMEDIR}/current/icons/32x32/apps\"")
+ADD_DEFINITIONS("-DDESKTOP_TRANSLATIONS_DIR=\"${CMAKE_INSTALL_PREFIX}/share/locale\"")
+ADD_DEFINITIONS("-DMODULES_DESKTOP_DIR=\"${CMAKE_INSTALL_PREFIX}/share/applications/YaST2\"")
+ADD_DEFINITIONS("-DGROUPS_DESKTOP_DIR=\"${CMAKE_INSTALL_PREFIX}/share/applications/YaST2/groups\"")
+
+SET(yast2-control-center_SRCS
+ main.cpp
+ main_window.cpp
+ kcategorizedview.cpp
+ kcategorydrawer.cpp
+ kcategorizedsortfilterproxymodel.cpp
+ moduleiconitem.cpp
+ yccmoduleinfoprovider.cpp
+ yqdesktopfilesmodel.cpp
+ yqmodulegroupsmodel.cpp
+ yqmodulesmodel.cpp
+ yqmodulesproxymodel.cpp
+ yqsavelogs.cpp
+ i18n.cpp
+)
+
+#SET(yast2-control-center_UIS
+# main_window.ui
+#)
+
+SET(yast2-control-center_HDRS
+ main_window.h
+ kcategorizedview.h
+ kcategorydrawer.h
+ kcategorizedsortfilterproxymodel.h
+ moduleiconitem.h
+ kcategorizedview_p.h
+ yccmoduleinfoprovider.h
+ yqdesktopfilesmodel.h
+ yqmodulegroupsmodel.h
+ yqmodulesmodel.h
+ yqmodulesproxymodel.h
+ listview.h
+ yqsavelogs.h
+ i18n.h
+)
+
+#SET(yast2-control-center_RCCS ../files.qrc)
+
+
+QT4_AUTOMOC(${yast2-control-center_SRCS})
+# QT4_WRAP_UI(yast2-control-center_UIS_H ${yast2-control-center_UIS})
+QT4_WRAP_CPP(yast2-control-center_MOC ${yast2-control-center_UIS_H})
+QT4_ADD_RESOURCES(yast2-control-center_RCC_SRCS ${yast2-control-center_RCCS})
+
+
+
+ADD_EXECUTABLE(y2controlcenter ${yast2-control-center_SRCS} ${yast2-control-center_MOC} ${yast2-control-center_RCC_SRCS})
+TARGET_LINK_LIBRARIES(y2controlcenter ${QT_LIBRARIES})
+INSTALL(TARGETS y2controlcenter DESTINATION ${CMAKE_INSTALL_PREFIX}/lib/YaST2/bin)
+
+INSTALL(FILES yast.png DESTINATION ${CMAKE_INSTALL_PREFIX}/share/pixmaps )
+INSTALL(FILES YaST.desktop DESTINATION ${CMAKE_INSTALL_PREFIX}/share/applications )
+INSTALL(FILES YaST-systemsettings.desktop DESTINATION ${CMAKE_INSTALL_PREFIX}/share/kde4/services )
+
+SET(MODELS_TEST_SRCS
+ models_test.cpp
+ yqdesktopfilesmodel.cpp
+ yqmodulegroupsmodel.cpp
+ yccmoduleinfoprovider.cpp
+ yqmodulesmodel.cpp )
+
+
+QT4_AUTOMOC(${MODELS_TEST_SRCS})
+ADD_EXECUTABLE(models_test ${MODELS_TEST_SRCS})
+TARGET_LINK_LIBRARIES(models_test ${QT_QTCORE_LIBRARIES} ${QT_QTGUI_LIBRARIES})
+
+FIND_PACKAGE(KDE4)
+IF ( KDE4_FOUND )
+ ADD_SUBDIRECTORY(kde)
+ENDIF ( KDE4_FOUND )
Added: branches/SuSE-Code-11-SP1-Branch/control-center/src/YaST-systemsettings.desktop
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/contr…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/control-center/src/YaST-systemsettings.desktop (added)
+++ branches/SuSE-Code-11-SP1-Branch/control-center/src/YaST-systemsettings.desktop Mon May 23 15:58:18 2011
@@ -0,0 +1,9 @@
+[Desktop Entry]
+Type=Service
+Name=YaST
+Icon=yast
+GenericName=Administrator Settings
+Exec=kdesu -c /sbin/yast2
+X-KDE-RootOnly=true
+X-KDE-System-Settings-Parent-Category=system-administration
+X-KDE-ServiceTypes=SystemSettingsExternalApp
Modified: branches/SuSE-Code-11-SP1-Branch/control-center/src/YaST.desktop
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/contr…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/control-center/src/YaST.desktop (original)
+++ branches/SuSE-Code-11-SP1-Branch/control-center/src/YaST.desktop Mon May 23 15:58:18 2011
@@ -4,8 +4,5 @@
Name=YaST
Icon=yast
GenericName=Control Center
-Exec=/sbin/yast2
-OnlyShowIn=KDE;GNOME;
-X-KDE-SubstituteUID=true
-X-KDE-RootOnly=true
+Exec=/usr/bin/xdg-su -c /sbin/yast2
Encoding=UTF-8
Added: branches/SuSE-Code-11-SP1-Branch/control-center/src/i18n.cpp
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/contr…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/control-center/src/i18n.cpp (added)
+++ branches/SuSE-Code-11-SP1-Branch/control-center/src/i18n.cpp Mon May 23 15:58:18 2011
@@ -0,0 +1,10 @@
+
+#include "i18n.h"
+
+void
+set_textdomain (const char* domain)
+{
+ bindtextdomain (domain, LOCALEDIR);
+ textdomain (domain);
+ bind_textdomain_codeset (domain, "UTF-8");
+}
Added: branches/SuSE-Code-11-SP1-Branch/control-center/src/i18n.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/contr…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/control-center/src/i18n.h (added)
+++ branches/SuSE-Code-11-SP1-Branch/control-center/src/i18n.h Mon May 23 15:58:18 2011
@@ -0,0 +1,22 @@
+#ifndef MYINTL_H
+#define MYINTL_H
+
+
+#include <libintl.h>
+#include <qstring.h>
+
+
+inline QString _(const char* msgid)
+{
+ return QString::fromUtf8 (gettext(msgid));
+}
+
+inline QString _(const char* msgid1, const char* msgid2, unsigned long int n)
+{
+ return QString::fromUtf8 (ngettext (msgid1, msgid2, n));
+}
+
+void set_textdomain (const char* domain);
+
+
+#endif
Added: branches/SuSE-Code-11-SP1-Branch/control-center/src/kcategorizedsortfilterproxymodel.cpp
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/contr…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/control-center/src/kcategorizedsortfilterproxymodel.cpp (added)
+++ branches/SuSE-Code-11-SP1-Branch/control-center/src/kcategorizedsortfilterproxymodel.cpp Mon May 23 15:58:18 2011
@@ -0,0 +1,349 @@
+/**
+ * This file is part of the KDE project
+ * Copyright (C) 2007 Rafael Fernández López <ereslibre(a)kde.org>
+ * Copyright (C) 2007 John Tapsell <tapsell(a)kde.org>
+ * Copyright (C) 2006 by Dominic Battre <dominic(a)battre.de>
+ * Copyright (C) 2006 by Martin Pool <mbp(a)canonical.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#include "kcategorizedsortfilterproxymodel.h"
+#include "yqdesktopfilesmodel.h"
+#include "kcategorizedsortfilterproxymodel_p.h"
+
+#include <limits.h>
+#include <iostream>
+
+#include <QItemSelection>
+#include <QStringList>
+#include <QSize>
+#include <QDebug>
+
+KCategorizedSortFilterProxyModel::KCategorizedSortFilterProxyModel(QObject *parent)
+ : QSortFilterProxyModel(parent)
+ , d(new Private())
+
+{
+ setFilterCaseSensitivity( Qt::CaseInsensitive );
+}
+
+KCategorizedSortFilterProxyModel::~KCategorizedSortFilterProxyModel()
+{
+ delete d;
+}
+
+void KCategorizedSortFilterProxyModel::sort(int column, Qt::SortOrder order)
+{
+ d->sortColumn = column;
+ d->sortOrder = order;
+
+ QSortFilterProxyModel::sort(column, order);
+}
+
+bool KCategorizedSortFilterProxyModel::isCategorizedModel() const
+{
+ return d->categorizedModel;
+}
+
+void KCategorizedSortFilterProxyModel::setCategorizedModel(bool categorizedModel)
+{
+ if (categorizedModel == d->categorizedModel)
+ {
+ return;
+ }
+
+ d->categorizedModel = categorizedModel;
+
+ invalidate();
+}
+
+int KCategorizedSortFilterProxyModel::sortColumn() const
+{
+ return d->sortColumn;
+}
+
+Qt::SortOrder KCategorizedSortFilterProxyModel::sortOrder() const
+{
+ return d->sortOrder;
+}
+
+void KCategorizedSortFilterProxyModel::setSortCategoriesByNaturalComparison(bool sortCategoriesByNaturalComparison)
+{
+ if (sortCategoriesByNaturalComparison == d->sortCategoriesByNaturalComparison)
+ {
+ return;
+ }
+
+ d->sortCategoriesByNaturalComparison = sortCategoriesByNaturalComparison;
+
+ invalidate();
+}
+
+bool KCategorizedSortFilterProxyModel::sortCategoriesByNaturalComparison() const
+{
+ return d->sortCategoriesByNaturalComparison;
+}
+
+int KCategorizedSortFilterProxyModel::naturalCompare(const QString &a,
+ const QString &b)
+{
+ // This method chops the input a and b into pieces of
+ // digits and non-digits (a1.05 becomes a | 1 | . | 05)
+ // and compares these pieces of a and b to each other
+ // (first with first, second with second, ...).
+ //
+ // This is based on the natural sort order code code by Martin Pool
+ // http://sourcefrog.net/projects/natsort/
+ // Martin Pool agreed to license this under LGPL or GPL.
+
+ const QChar* currA = a.unicode(); // iterator over a
+ const QChar* currB = b.unicode(); // iterator over b
+
+ if (currA == currB) {
+ return 0;
+ }
+
+ const QChar* begSeqA = currA; // beginning of a new character sequence of a
+ const QChar* begSeqB = currB;
+
+ while (!currA->isNull() && !currB->isNull()) {
+ if (currA->unicode() == QChar::ObjectReplacementCharacter) {
+ return 1;
+ }
+
+ if (currB->unicode() == QChar::ObjectReplacementCharacter) {
+ return -1;
+ }
+
+ if (currA->unicode() == QChar::ReplacementCharacter) {
+ return 1;
+ }
+
+ if (currB->unicode() == QChar::ReplacementCharacter) {
+ return -1;
+ }
+
+ // find sequence of characters ending at the first non-character
+ while (!currA->isNull() && !currA->isDigit()) {
+ ++currA;
+ }
+
+ while (!currB->isNull() && !currB->isDigit()) {
+ ++currB;
+ }
+
+ // compare these sequences
+ const QString subA(begSeqA, currA - begSeqA);
+ const QString subB(begSeqB, currB - begSeqB);
+ const int cmp = QString::localeAwareCompare(subA, subB);
+ if (cmp != 0) {
+ return cmp;
+ }
+
+ if (currA->isNull() || currB->isNull()) {
+ break;
+ }
+
+ // now some digits follow...
+ if ((*currA == '0') || (*currB == '0')) {
+ // one digit-sequence starts with 0 -> assume we are in a fraction part
+ // do left aligned comparison (numbers are considered left aligned)
+ while (1) {
+ if (!currA->isDigit() && !currB->isDigit()) {
+ break;
+ } else if (!currA->isDigit()) {
+ return -1;
+ } else if (!currB->isDigit()) {
+ return + 1;
+ } else if (*currA < *currB) {
+ return -1;
+ } else if (*currA > *currB) {
+ return + 1;
+ }
+ ++currA;
+ ++currB;
+ }
+ } else {
+ // No digit-sequence starts with 0 -> assume we are looking at some integer
+ // do right aligned comparison.
+ //
+ // The longest run of digits wins. That aside, the greatest
+ // value wins, but we can't know that it will until we've scanned
+ // both numbers to know that they have the same magnitude.
+
+ int weight = 0;
+ while (1) {
+ if (!currA->isDigit() && !currB->isDigit()) {
+ if (weight != 0) {
+ return weight;
+ }
+ break;
+ } else if (!currA->isDigit()) {
+ return -1;
+ } else if (!currB->isDigit()) {
+ return + 1;
+ } else if ((*currA < *currB) && (weight == 0)) {
+ weight = -1;
+ } else if ((*currA > *currB) && (weight == 0)) {
+ weight = + 1;
+ }
+ ++currA;
+ ++currB;
+ }
+ }
+
+ begSeqA = currA;
+ begSeqB = currB;
+ }
+
+ if (currA->isNull() && currB->isNull()) {
+ return 0;
+ }
+
+ return currA->isNull() ? -1 : + 1;
+}
+
+bool KCategorizedSortFilterProxyModel::lessThan(const QModelIndex &left, const QModelIndex &right) const
+{
+ if (d->categorizedModel)
+ {
+ int compare = compareCategories(left, right);
+
+ if (compare > 0) // left is greater than right
+ {
+ return false;
+ }
+ else if (compare < 0) // left is less than right
+ {
+ return true;
+ }
+ }
+
+ return subSortLessThan(left, right);
+}
+
+bool KCategorizedSortFilterProxyModel::subSortLessThan(const QModelIndex &left, const QModelIndex &right) const
+{
+ QModelIndex i1 = createIndex(left.row(), YQDesktopFilesModel::Name);
+ QModelIndex i2 = createIndex(right.row(), YQDesktopFilesModel::Name);
+
+ QVariant l = (left.model() ? left.model()->data(i1, Qt::UserRole) : QVariant());
+ QVariant r = (right.model() ? right.model()->data(i2, Qt::UserRole) : QVariant());
+
+ return l.toString() < r.toString();
+}
+
+int KCategorizedSortFilterProxyModel::compareCategories(const QModelIndex &left, const QModelIndex &right) const
+{
+ QVariant l = (left.model() ? left.model()->data(left, CategorySortRole) : QVariant());
+ QVariant r = (right.model() ? right.model()->data(right, CategorySortRole) : QVariant());
+
+ QVariant s1 = (left.model() ? left.model()->data( left, CategoryDisplayRole ) : QVariant());
+ QVariant s2 = (right.model() ? right.model()->data( right, CategoryDisplayRole ) : QVariant());
+
+ Q_ASSERT(l.isValid());
+ Q_ASSERT(r.isValid());
+ Q_ASSERT(s1.isValid());
+ Q_ASSERT(s2.isValid());
+ Q_ASSERT(l.type() == r.type());
+ Q_ASSERT(s1.type() == s2.type());
+
+ qlonglong lint = l.toLongLong();
+ qlonglong rint = r.toLongLong();
+
+ if (lint < rint)
+ {
+ return -1;
+ }
+
+ if (lint > rint)
+ {
+ return 1;
+ }
+
+ if (lint == rint)
+ {
+
+ QString lstr = s1.toString();
+ QString rstr = s2.toString();
+
+ if (d->sortCategoriesByNaturalComparison)
+ {
+ return naturalCompare(lstr, rstr);
+ }
+ else
+ {
+ if (lstr < rstr)
+ {
+ return -1;
+ }
+
+ if (lstr > rstr)
+ {
+ return 1;
+ }
+
+ return 0;
+ }
+ }
+
+ return 0;
+}
+
+bool KCategorizedSortFilterProxyModel::filterAcceptsRow( int row, const QModelIndex &srcindex ) const
+{
+ QModelIndex i0 = sourceModel()->index( row, YQDesktopFilesModel::Group, srcindex);
+ QModelIndex i1 = sourceModel()->index( row, 0, srcindex);
+ QStringList keywordList = sourceModel()->data( i1, KeywordsRole ).toStringList();
+ QString keywords = keywordList.join(" ");
+
+ bool nameMatches = QSortFilterProxyModel::filterAcceptsRow( row, srcindex );
+ bool keywordMatches = ( !keywords.isEmpty() && keywords.contains( filterFixedString()) );
+
+ if( nameMatches || keywordMatches )
+ {
+ QString gr = sourceModel()->data(i0, Qt::UserRole).toString();
+ d->filterGroups.insert( gr );
+ }
+
+ return ( nameMatches || keywordMatches );
+}
+
+void KCategorizedSortFilterProxyModel::customFilterFunction( const QString &s )
+{
+ d->filterGroups.clear();
+ setFilterFixedString( s );
+ d->filterString = s;
+ invalidateFilter();
+ invalidate();
+}
+
+QString KCategorizedSortFilterProxyModel::matchingGroupFilterRegexp()
+{
+ QStringList slist = d->filterGroups.toList();
+
+ if ( !slist.isEmpty() )
+ return slist.join("|");
+ else
+ // dumb constant, make sure nothing matches if the list of matching groups is empty
+ return QString("zzzz");
+}
+
+QString KCategorizedSortFilterProxyModel::filterFixedString() const
+{
+ return d->filterString;
+}
Added: branches/SuSE-Code-11-SP1-Branch/control-center/src/kcategorizedsortfilterproxymodel.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/contr…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/control-center/src/kcategorizedsortfilterproxymodel.h (added)
+++ branches/SuSE-Code-11-SP1-Branch/control-center/src/kcategorizedsortfilterproxymodel.h Mon May 23 15:58:18 2011
@@ -0,0 +1,195 @@
+/**
+ * This file is part of the KDE project
+ * Copyright (C) 2007 Rafael Fernández López <ereslibre(a)kde.org>
+ * Copyright (C) 2007 John Tapsell <tapsell(a)kde.org>
+ * Copyright (C) 2006 by Dominic Battre <dominic(a)battre.de>
+ * Copyright (C) 2006 by Martin Pool <mbp(a)canonical.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#ifndef KCATEGORIZEDSORTFILTERPROXYMODEL_H
+#define KCATEGORIZEDSORTFILTERPROXYMODEL_H
+
+#include <QtGui/QSortFilterProxyModel>
+
+//#include "kdeui_export.h"
+
+class QItemSelection;
+
+
+/**
+ * This class lets you categorize a view. It is meant to be used along with
+ * KCategorizedView class.
+ *
+ * In general terms all you need to do is to reimplement subSortLessThan() and
+ * compareCategories() methods. In order to make categorization work, you need
+ * to also call setCategorizedModel() class to enable it, since the categorization
+ * is disabled by default.
+ *
+ * @see KCategorizedView
+ *
+ * @author Rafael Fernández López <ereslibre(a)kde.org>
+ */
+//class KDEUI_EXPORT KCategorizedSortFilterProxyModel
+class KCategorizedSortFilterProxyModel
+ : public QSortFilterProxyModel
+{
+public:
+ enum AdditionalRoles {
+ // Note: use printf "0x%08X\n" $(($RANDOM*$RANDOM))
+ // to define additional roles.
+ CategoryDisplayRole = 0x17CE990A, ///< This role is used for asking the category to a given index
+
+ CategorySortRole = 0x27857E60, ///< This role is used for sorting categories. You can return a
+ ///< string or a long long value. Strings will be sorted alphabetically
+ ///< while long long will be sorted by their value. Please note that this
+ ///< value won't be shown on the view, is only for sorting purposes. What will
+ ///< be shown as "Category" on the view will be asked with the role
+ ///< CategoryDisplayRole.
+
+ KeywordsRole = 0x09B2C2AA
+ };
+
+ KCategorizedSortFilterProxyModel(QObject *parent = 0);
+ virtual ~KCategorizedSortFilterProxyModel();
+
+ /**
+ * Overridden from QSortFilterProxyModel. Sorts the source model using
+ * @p column for the given @p order.
+ */
+ virtual void sort(int column, Qt::SortOrder order = Qt::AscendingOrder);
+
+ /**
+ * @return whether the model is categorized or not. Disabled by default.
+ */
+ bool isCategorizedModel() const;
+
+ /**
+ * Enables or disables the categorization feature.
+ *
+ * @param categorizedModel whether to enable or disable the categorization feature.
+ */
+ void setCategorizedModel(bool categorizedModel);
+
+ /**
+ * @return the column being used for sorting.
+ */
+ int sortColumn() const;
+
+ /**
+ * @return the sort order being used for sorting.
+ */
+ Qt::SortOrder sortOrder() const;
+
+ /**
+ * Set if the sorting using CategorySortRole will use a natural comparison
+ * in the case that strings were returned. If enabled, QString::localeAwareCompare
+ * will be used for sorting.
+ *
+ * @param sortCategoriesByNaturalComparison whether to sort using a natural comparison or not.
+ */
+ void setSortCategoriesByNaturalComparison(bool sortCategoriesByNaturalComparison);
+
+ /**
+ * @return whether it is being used a natural comparison for sorting. Enabled by default.
+ */
+ bool sortCategoriesByNaturalComparison() const;
+
+ /**
+ * Does a natural comparing of the strings. -1 is returned if \a a
+ * is smaller than \a b. +1 is returned if \a a is greater than \a b. 0
+ * is returned if both values are equal.
+ */
+ static int naturalCompare(const QString &a, const QString &b);
+
+ void customFilterFunction( const QString &s );
+
+ QString matchingGroupFilterRegexp();
+
+ QString filterFixedString() const;
+
+protected:
+ /**
+ * Overridden from QSortFilterProxyModel. If you are subclassing
+ * KCategorizedSortFilterProxyModel, you will probably not need to reimplement this
+ * method.
+ *
+ * It calls compareCategories() to sort by category. If the both items are in the
+ * same category (i.e. compareCategories returns 0), then subSortLessThan is called.
+ *
+ * @return Returns true if the item @p left is less than the item @p right when sorting.
+ *
+ * @warning You usually won't need to reimplement this method when subclassing
+ * from KCategorizedSortFilterProxyModel.
+ */
+ virtual bool lessThan(const QModelIndex &left, const QModelIndex &right) const;
+
+ /**
+ * This method has a similar purpose as lessThan() has on QSortFilterProxyModel.
+ * It is used for sorting items that are in the same category.
+ *
+ * @return Returns true if the item @p left is less than the item @p right when sorting.
+ */
+ virtual bool subSortLessThan(const QModelIndex &left, const QModelIndex &right) const;
+
+ /**
+ * This method compares the category of the @p left index with the category
+ * of the @p right index.
+ *
+ * Internally and if not reimplemented, this method will ask for @p left and
+ * @p right models for role CategorySortRole. In order to correctly sort
+ * categories, the data() metod of the model should return a qlonglong (or numeric) value, or
+ * a QString object. QString objects will be sorted with QString::localeAwareCompare if
+ * sortCategoriesByNaturalComparison() is true.
+ *
+ * @note Please have present that:
+ * QString(QChar(QChar::ObjectReplacementCharacter)) >
+ * QString(QChar(QChar::ReplacementCharacter)) >
+ * [ all possible strings ] >
+ * QString();
+ *
+ * This means that QString() will be sorted the first one, while
+ * QString(QChar(QChar::ObjectReplacementCharacter)) and
+ * QString(QChar(QChar::ReplacementCharacter)) will be sorted in last
+ * position.
+ *
+ * @warning Please note that data() method of the model should return always
+ * information of the same type. If you return a QString for an index,
+ * you should return always QStrings for all indexes for role CategorySortRole
+ * in order to correctly sort categories. You can't mix by returning
+ * a QString for one index, and a qlonglong for other.
+ *
+ * @note If you need a more complex layout, you will have to reimplement this
+ * method.
+ *
+ * @return A negative value if the category of @p left should be placed before the
+ * category of @p right. 0 if @p left and @p right are on the same category, and
+ * a positive value if the category of @p left should be placed after the
+ * category of @p right.
+ */
+ virtual int compareCategories(const QModelIndex &left, const QModelIndex &right) const;
+
+ virtual bool filterAcceptsRow( int row, const QModelIndex &index ) const;
+
+private:
+ class Private;
+ Private *const d;
+
+};
+
+
+#endif // KCATEGORIZEDSORTFILTERPROXYMODEL_H
Added: branches/SuSE-Code-11-SP1-Branch/control-center/src/kcategorizedsortfilterproxymodel_p.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/contr…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/control-center/src/kcategorizedsortfilterproxymodel_p.h (added)
+++ branches/SuSE-Code-11-SP1-Branch/control-center/src/kcategorizedsortfilterproxymodel_p.h Mon May 23 15:58:18 2011
@@ -0,0 +1,53 @@
+/**
+ * This file is part of the KDE project
+ * Copyright (C) 2007 Rafael Fernández López <ereslibre(a)kde.org>
+ * Copyright (C) 2007 John Tapsell <tapsell(a)kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#ifndef KCATEGORIZEDSORTFILTERPROXYMODEL_P_H
+#define KCATEGORIZEDSORTFILTERPROXYMODEL_P_H
+
+#include <QSet>
+
+class KCategorizedSortFilterProxyModel;
+
+class KCategorizedSortFilterProxyModel::Private
+{
+public:
+ Private()
+ : sortColumn(0)
+ , sortOrder(Qt::AscendingOrder)
+ , categorizedModel(false)
+ , sortCategoriesByNaturalComparison(true)
+ {
+ }
+
+ ~Private()
+ {
+ }
+
+ int sortColumn;
+ Qt::SortOrder sortOrder;
+ bool categorizedModel;
+ bool sortCategoriesByNaturalComparison;
+
+ QSet<QString> filterGroups;
+ QString filterString;
+};
+
+#endif
Added: branches/SuSE-Code-11-SP1-Branch/control-center/src/kcategorizedview.cpp
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/contr…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/control-center/src/kcategorizedview.cpp (added)
+++ branches/SuSE-Code-11-SP1-Branch/control-center/src/kcategorizedview.cpp Mon May 23 15:58:18 2011
@@ -0,0 +1,1552 @@
+/**
+ * This file is part of the KDE project
+ * Copyright (C) 2007 Rafael Fernández López <ereslibre(a)kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#include "kcategorizedview.h"
+#include "kcategorizedview_p.h"
+
+#include <math.h> // trunc on C99 compliant systems
+
+#include <QPainter>
+#include <QScrollBar>
+#include <QPaintEvent>
+#include <QDebug>
+#include <iostream>
+
+
+#include "kcategorydrawer.h"
+#include "kcategorizedsortfilterproxymodel.h"
+
+// By defining DOLPHIN_DRAGANDDROP the custom drag and drop implementation of
+// KCategorizedView is bypassed to have a consistent drag and drop look for all
+// views. Hopefully transparent pixmaps for drag objects will be supported in
+// Qt 4.4, so that this workaround can be skipped.
+#define DOLPHIN_DRAGANDDROP
+
+KCategorizedView::Private::Private(KCategorizedView *listView)
+ : listView(listView)
+ , categoryDrawer(0)
+ , biggestItemSize(QSize(0, 0))
+ , mouseButtonPressed(false)
+ , rightMouseButtonPressed(false)
+ , isDragging(false)
+ , dragLeftViewport(false)
+ , proxyModel(0)
+{
+}
+
+KCategorizedView::Private::~Private()
+{
+}
+
+const QModelIndexList &KCategorizedView::Private::intersectionSet(const QRect &rect)
+{
+ QModelIndex index;
+ QRect indexVisualRect;
+
+ intersectedIndexes.clear();
+
+ int itemHeight;
+
+ if (listView->gridSize().isEmpty())
+ {
+ itemHeight = biggestItemSize.height();
+ }
+ else
+ {
+ itemHeight = listView->gridSize().height();
+ }
+
+ // Lets find out where we should start
+ int top = proxyModel->rowCount() - 1;
+ int bottom = 0;
+ int middle = (top + bottom) / 2;
+ while (bottom <= top)
+ {
+ middle = (top + bottom) / 2;
+
+ index = proxyModel->index(middle, 0);
+ indexVisualRect = visualRect(index);
+ // We need the whole height (not only the visualRect). This will help us to update
+ // all needed indexes correctly (ereslibre)
+ indexVisualRect.setHeight(indexVisualRect.height() + (itemHeight - indexVisualRect.height()));
+
+ if (qMax(indexVisualRect.topLeft().y(),
+ indexVisualRect.bottomRight().y()) < qMin(rect.topLeft().y(),
+ rect.bottomRight().y()))
+ {
+ bottom = middle + 1;
+ }
+ else
+ {
+ top = middle - 1;
+ }
+ }
+
+ for (int i = middle; i < proxyModel->rowCount(); i++)
+ {
+ index = proxyModel->index(i, 0);
+ indexVisualRect = visualRect(index);
+
+ if (rect.intersects(indexVisualRect))
+ intersectedIndexes.append(index);
+
+ // If we passed next item, stop searching for hits
+ if (qMax(rect.bottomRight().y(), rect.topLeft().y()) <
+ qMin(indexVisualRect.topLeft().y(),
+ indexVisualRect.bottomRight().y()))
+ break;
+ }
+
+ return intersectedIndexes;
+}
+
+QRect KCategorizedView::Private::visualRectInViewport(const QModelIndex &index) const
+{
+ if (!index.isValid())
+ return QRect();
+
+ QString curCategory = elementsInfo[index.row()].category;
+
+ QRect retRect;
+ const bool leftToRightFlow = (listView->flow() == QListView::LeftToRight);
+
+ if (leftToRightFlow)
+ {
+ if (listView->layoutDirection() == Qt::LeftToRight)
+ {
+ retRect = QRect(listView->spacing(), listView->spacing() * 2 +
+ categoryDrawer->categoryHeight(index, listView->viewOptions()), 0, 0);
+ }
+ else
+ {
+ retRect = QRect(listView->viewport()->width() - listView->spacing(), listView->spacing() * 2 +
+ categoryDrawer->categoryHeight(index, listView->viewOptions()), 0, 0);
+ }
+ }
+ else
+ {
+ retRect = QRect(listView->spacing(), listView->spacing() * 2 +
+ categoryDrawer->categoryHeight(index, listView->viewOptions()), 0, 0);
+ }
+
+ int viewportWidth = listView->viewport()->width() - listView->spacing();
+
+ int itemHeight;
+ int itemWidth;
+
+ if (listView->gridSize().isEmpty() && leftToRightFlow)
+ {
+ itemHeight = biggestItemSize.height();
+ itemWidth = biggestItemSize.width();
+ }
+ else if (leftToRightFlow)
+ {
+ itemHeight = listView->gridSize().height();
+ itemWidth = listView->gridSize().width();
+ }
+ else if (listView->gridSize().isEmpty() && !leftToRightFlow)
+ {
+ itemHeight = biggestItemSize.height();
+ itemWidth = listView->viewport()->width() - listView->spacing() * 2;
+ }
+ else
+ {
+ itemHeight = listView->gridSize().height();
+ itemWidth = listView->gridSize().width() - listView->spacing() * 2;
+ }
+
+ int itemWidthPlusSeparation = listView->spacing() + itemWidth;
+ if (!itemWidthPlusSeparation)
+ itemWidthPlusSeparation++;
+
+ int elementsPerRow = viewportWidth / itemWidthPlusSeparation;
+ if (!elementsPerRow)
+ elementsPerRow++;
+
+
+ int column;
+ int row;
+
+ if (leftToRightFlow)
+ {
+ column = elementsInfo[index.row()].relativeOffsetToCategory % elementsPerRow;
+ row = elementsInfo[index.row()].relativeOffsetToCategory / elementsPerRow;
+
+ if (listView->layoutDirection() == Qt::LeftToRight)
+ {
+ retRect.setLeft(retRect.left() + column * listView->spacing() +
+ column * itemWidth);
+ }
+ else
+ {
+ retRect.setLeft(retRect.right() - column * listView->spacing() -
+ column * itemWidth - itemWidth);
+
+ retRect.setRight(retRect.right() - column * listView->spacing() -
+ column * itemWidth);
+ }
+ }
+ else
+ {
+ elementsPerRow = 1;
+ column = elementsInfo[index.row()].relativeOffsetToCategory % elementsPerRow;
+ row = elementsInfo[index.row()].relativeOffsetToCategory / elementsPerRow;
+ }
+
+ foreach (const QString &category, categories)
+ {
+ if (category == curCategory)
+ break;
+
+ float rows = (float) ((float) categoriesIndexes[category].count() /
+ (float) elementsPerRow);
+
+ int rowsInt = categoriesIndexes[category].count() / elementsPerRow;
+
+ if (rows - trunc(rows)) rowsInt++;
+
+ retRect.setTop(retRect.top() +
+ (rowsInt * itemHeight) +
+ categoryDrawer->categoryHeight(index, listView->viewOptions()) +
+ listView->spacing() * 2);
+
+ if (listView->gridSize().isEmpty())
+ {
+ retRect.setTop(retRect.top() +
+ (rowsInt * listView->spacing()));
+ }
+ }
+
+ if (listView->gridSize().isEmpty())
+ {
+ retRect.setTop(retRect.top() + row * listView->spacing() +
+ (row * itemHeight));
+ }
+ else
+ {
+ retRect.setTop(retRect.top() + (row * itemHeight));
+ }
+
+ retRect.setWidth(itemWidth);
+
+ QModelIndex heightIndex = proxyModel->index(index.row(), 0);
+ if (listView->gridSize().isEmpty())
+ {
+ retRect.setHeight(listView->sizeHintForIndex(heightIndex).height());
+ }
+ else
+ {
+ const QSize sizeHint = listView->sizeHintForIndex(heightIndex);
+ if (sizeHint.width() < itemWidth && leftToRightFlow) {
+ retRect.setWidth(sizeHint.width());
+ retRect.moveLeft(retRect.left() + (itemWidth - sizeHint.width()) / 2);
+ }
+ retRect.setHeight(qMin(sizeHint.height(), listView->gridSize().height()));
+ }
+
+ return retRect;
+}
+
+QRect KCategorizedView::Private::visualCategoryRectInViewport(const QString &category) const
+{
+ QRect retRect(listView->spacing(),
+ listView->spacing(),
+ listView->viewport()->width() - listView->spacing() * 2,
+ 0);
+
+ if (!proxyModel || !categoryDrawer || !proxyModel->isCategorizedModel() || !proxyModel->rowCount() || !categories.contains(category))
+ return QRect();
+
+ QModelIndex index = proxyModel->index(0, 0, QModelIndex());
+
+ int viewportWidth = listView->viewport()->width() - listView->spacing();
+
+ int itemHeight;
+ int itemWidth;
+
+ if (listView->gridSize().isEmpty())
+ {
+ itemHeight = biggestItemSize.height();
+ itemWidth = biggestItemSize.width();
+ }
+ else
+ {
+ itemHeight = listView->gridSize().height();
+ itemWidth = listView->gridSize().width();
+ }
+
+ int itemWidthPlusSeparation = listView->spacing() + itemWidth;
+ int elementsPerRow = viewportWidth / itemWidthPlusSeparation;
+
+ if (!elementsPerRow)
+ elementsPerRow++;
+
+ if (listView->flow() == QListView::TopToBottom)
+ {
+ elementsPerRow = 1;
+ }
+
+ foreach (const QString &itCategory, categories)
+ {
+ if (itCategory == category)
+ break;
+
+ float rows = (float) ((float) categoriesIndexes[itCategory].count() /
+ (float) elementsPerRow);
+ int rowsInt = categoriesIndexes[itCategory].count() / elementsPerRow;
+
+ if (rows - trunc(rows)) rowsInt++;
+
+ retRect.setTop(retRect.top() +
+ (rowsInt * itemHeight) +
+ categoryDrawer->categoryHeight(index, listView->viewOptions()) +
+ listView->spacing() * 2);
+
+ if (listView->gridSize().isEmpty())
+ {
+ retRect.setTop(retRect.top() +
+ (rowsInt * listView->spacing()));
+ }
+ }
+
+ retRect.setHeight(categoryDrawer->categoryHeight(index, listView->viewOptions()));
+
+ return retRect;
+}
+
+// We're sure elementsPosition doesn't contain index
+const QRect &KCategorizedView::Private::cacheIndex(const QModelIndex &index)
+{
+ QRect rect = visualRectInViewport(index);
+ QHash<int, QRect>::iterator it = elementsPosition.insert(index.row(), rect);
+
+ return *it;
+}
+
+// We're sure categoriesPosition doesn't contain category
+const QRect &KCategorizedView::Private::cacheCategory(const QString &category)
+{
+ QRect rect = visualCategoryRectInViewport(category);
+ QHash<QString, QRect>::iterator it = categoriesPosition.insert(category, rect);
+
+ return *it;
+}
+
+const QRect &KCategorizedView::Private::cachedRectIndex(const QModelIndex &index)
+{
+ QHash<int, QRect>::const_iterator it = elementsPosition.constFind(index.row());
+ if (it != elementsPosition.constEnd()) // If we have it cached
+ { // return it
+ return *it;
+ }
+ else // Otherwise, cache it
+ { // and return it
+ return cacheIndex(index);
+ }
+}
+
+const QRect &KCategorizedView::Private::cachedRectCategory(const QString &category)
+{
+ QHash<QString, QRect>::const_iterator it = categoriesPosition.constFind(category);
+ if (it != categoriesPosition.constEnd()) // If we have it cached
+ { // return it
+ return *it;
+ }
+ else // Otherwise, cache it and
+ { // return it
+ return cacheCategory(category);
+ }
+}
+
+QRect KCategorizedView::Private::visualRect(const QModelIndex &index)
+{
+ QRect retRect = cachedRectIndex(index);
+ int dx = -listView->horizontalOffset();
+ int dy = -listView->verticalOffset();
+ retRect.adjust(dx, dy, dx, dy);
+
+ return retRect;
+}
+
+QRect KCategorizedView::Private::categoryVisualRect(const QString &category)
+{
+ QRect retRect = cachedRectCategory(category);
+ int dx = -listView->horizontalOffset();
+ int dy = -listView->verticalOffset();
+ retRect.adjust(dx, dy, dx, dy);
+
+ return retRect;
+}
+
+void KCategorizedView::Private::drawNewCategory(const QModelIndex &index,
+ int sortRole,
+ const QStyleOption &option,
+ QPainter *painter)
+{
+ if (!index.isValid())
+ {
+ return;
+ }
+
+
+ QStyleOption optionCopy = option;
+ const QString category = proxyModel->data(index, KCategorizedSortFilterProxyModel::CategoryDisplayRole).toString();
+
+ //optionCopy.state &= ~QStyle::State_Selected;
+
+ if ((listView->selectionMode() != SingleSelection) && (listView->selectionMode() != NoSelection)) {
+ if ((category == hoveredCategory) && !mouseButtonPressed)
+ {
+ optionCopy.state |= QStyle::State_MouseOver;
+ }
+ else if ((category == hoveredCategory) && mouseButtonPressed)
+ {
+ QPoint initialPressPosition = listView->viewport()->mapFromGlobal(QCursor::pos());
+ initialPressPosition.setY(initialPressPosition.y() + listView->verticalOffset());
+ initialPressPosition.setX(initialPressPosition.x() + listView->horizontalOffset());
+
+ if (initialPressPosition == this->initialPressPosition)
+ {
+ optionCopy.state |= QStyle::State_Selected;
+ }
+ }
+ }
+
+ categoryDrawer->drawCategory(index,
+ sortRole,
+ optionCopy,
+ painter);
+}
+
+
+void KCategorizedView::Private::updateScrollbars()
+{
+ // find the last index in the last category
+ QModelIndex lastIndex = categoriesIndexes.isEmpty() ? QModelIndex() : categoriesIndexes[categories.last()].last();
+
+ int lastItemBottom = cachedRectIndex(lastIndex).top() +
+ listView->spacing() + (listView->gridSize().isEmpty() ? biggestItemSize.height() : listView->gridSize().height()) - listView->viewport()->height();
+
+ listView->horizontalScrollBar()->setRange(0, 0);
+
+ if (listView->verticalScrollMode() == QAbstractItemView::ScrollPerItem)
+ {
+ listView->setVerticalScrollMode(QAbstractItemView::ScrollPerPixel);
+ }
+
+ if (listView->horizontalScrollMode() == QAbstractItemView::ScrollPerItem)
+ {
+ listView->setHorizontalScrollMode(QAbstractItemView::ScrollPerPixel);
+ }
+
+ listView->verticalScrollBar()->setSingleStep(listView->viewport()->height() / 10);
+ listView->verticalScrollBar()->setPageStep(listView->viewport()->height());
+ listView->verticalScrollBar()->setRange(0, lastItemBottom);
+}
+
+void KCategorizedView::Private::drawDraggedItems(QPainter *painter)
+{
+ QStyleOptionViewItemV4 option = listView->viewOptions();
+ option.state &= ~QStyle::State_MouseOver;
+ foreach (const QModelIndex &index, listView->selectionModel()->selectedIndexes())
+ {
+ const int dx = mousePosition.x() - initialPressPosition.x() + listView->horizontalOffset();
+ const int dy = mousePosition.y() - initialPressPosition.y() + listView->verticalOffset();
+
+ option.rect = visualRect(index);
+ option.rect.adjust(dx, dy, dx, dy);
+
+ if (option.rect.intersects(listView->viewport()->rect()))
+ {
+ listView->itemDelegate(index)->paint(painter, option, index);
+ }
+ }
+}
+
+void KCategorizedView::Private::layoutChanged(bool forceItemReload)
+{
+ if (proxyModel && categoryDrawer && proxyModel->isCategorizedModel() &&
+ ((forceItemReload ||
+ (modelSortRole != proxyModel->sortRole()) ||
+ (modelSortColumn != proxyModel->sortColumn()) ||
+ (modelSortOrder != proxyModel->sortOrder()) ||
+ (modelLastRowCount != proxyModel->rowCount()) ||
+ (modelCategorized != proxyModel->isCategorizedModel()))))
+ {
+ // Force the view to update all elements
+ listView->rowsInsertedArtifficial(QModelIndex(), 0, proxyModel->rowCount() - 1);
+
+ if (!forceItemReload)
+ {
+ modelSortRole = proxyModel->sortRole();
+ modelSortColumn = proxyModel->sortColumn();
+ modelSortOrder = proxyModel->sortOrder();
+ modelLastRowCount = proxyModel->rowCount();
+ modelCategorized = proxyModel->isCategorizedModel();
+ }
+ }
+
+ if (proxyModel && categoryDrawer && proxyModel->isCategorizedModel())
+ {
+ updateScrollbars();
+ }
+}
+
+void KCategorizedView::Private::drawDraggedItems()
+{
+ QRect rectToUpdate;
+ QRect currentRect;
+ foreach (const QModelIndex &index, listView->selectionModel()->selectedIndexes())
+ {
+ int dx = mousePosition.x() - initialPressPosition.x() + listView->horizontalOffset();
+ int dy = mousePosition.y() - initialPressPosition.y() + listView->verticalOffset();
+
+ currentRect = visualRect(index);
+ currentRect.adjust(dx, dy, dx, dy);
+
+ if (currentRect.intersects(listView->viewport()->rect()))
+ {
+ rectToUpdate = rectToUpdate.united(currentRect);
+ }
+ }
+
+ listView->viewport()->update(lastDraggedItemsRect.united(rectToUpdate));
+
+ lastDraggedItemsRect = rectToUpdate;
+}
+
+
+//==============================================================================
+
+
+KCategorizedView::KCategorizedView(QWidget *parent)
+ : QListView(parent)
+ , d(new Private(this))
+{
+}
+
+KCategorizedView::~KCategorizedView()
+{
+ delete d;
+}
+
+void KCategorizedView::setGridSize(const QSize &size)
+{
+ QListView::setGridSize(size);
+
+ d->layoutChanged(true);
+}
+
+void KCategorizedView::setModel(QAbstractItemModel *model)
+{
+ d->lastSelection = QItemSelection();
+ d->forcedSelectionPosition = 0;
+ d->elementsInfo.clear();
+ d->elementsPosition.clear();
+ d->categoriesIndexes.clear();
+ d->categoriesPosition.clear();
+ d->categories.clear();
+ d->intersectedIndexes.clear();
+ d->modelIndexList.clear();
+ d->hovered = QModelIndex();
+ d->mouseButtonPressed = false;
+ d->rightMouseButtonPressed = false;
+
+ if (d->proxyModel)
+ {
+ QObject::disconnect(d->proxyModel,
+ SIGNAL(layoutChanged()),
+ this, SLOT(slotLayoutChanged()));
+
+ QObject::disconnect(d->proxyModel,
+ SIGNAL(rowsRemoved(QModelIndex,int,int)),
+ this, SLOT(rowsRemoved(QModelIndex,int,int)));
+ }
+
+ QListView::setModel(model);
+
+ d->proxyModel = dynamic_cast<KCategorizedSortFilterProxyModel*>(model);
+
+ if (d->proxyModel)
+ {
+ d->modelSortRole = d->proxyModel->sortRole();
+ d->modelSortColumn = d->proxyModel->sortColumn();
+ d->modelSortOrder = d->proxyModel->sortOrder();
+ d->modelLastRowCount = d->proxyModel->rowCount();
+ d->modelCategorized = d->proxyModel->isCategorizedModel();
+
+ QObject::connect(d->proxyModel,
+ SIGNAL(layoutChanged()),
+ this, SLOT(slotLayoutChanged()));
+
+ QObject::connect(d->proxyModel,
+ SIGNAL(rowsRemoved(QModelIndex,int,int)),
+ this, SLOT(rowsRemoved(QModelIndex,int,int)));
+
+ if (d->proxyModel->rowCount())
+ {
+ d->layoutChanged(true);
+ }
+ }
+ else
+ {
+ d->modelCategorized = false;
+ }
+}
+
+QRect KCategorizedView::visualRect(const QModelIndex &index) const
+{
+ if (!d->proxyModel || !d->categoryDrawer || !d->proxyModel->isCategorizedModel())
+ {
+ return QListView::visualRect(index);
+ }
+
+ if (!qobject_cast<const QSortFilterProxyModel*>(index.model()))
+ {
+ return d->visualRect(d->proxyModel->mapFromSource(index));
+ }
+
+ return d->visualRect(index);
+}
+
+void KCategorizedView::scrollTo (const QModelIndex &index )
+{
+ QRect rect = visualRect( index );
+ int v = verticalScrollBar()->value();
+ int header = categoryDrawer()->categoryHeight(QModelIndex(), viewOptions());
+
+ // upper edge of 1st icon in a group + current position of scrollbar
+ // scroll a bit more up, to show the cat. header, but not too much (over max)
+ int scroll = qMin( rect.top() + v - header, verticalScrollBar()->maximum() );
+ verticalScrollBar()->setValue( scroll );
+}
+
+KCategoryDrawer *KCategorizedView::categoryDrawer() const
+{
+ return d->categoryDrawer;
+}
+
+void KCategorizedView::setCategoryDrawer(KCategoryDrawer *categoryDrawer)
+{
+ d->lastSelection = QItemSelection();
+ d->forcedSelectionPosition = 0;
+ d->elementsInfo.clear();
+ d->elementsPosition.clear();
+ d->categoriesIndexes.clear();
+ d->categoriesPosition.clear();
+ d->categories.clear();
+ d->intersectedIndexes.clear();
+ d->modelIndexList.clear();
+ d->hovered = QModelIndex();
+ d->mouseButtonPressed = false;
+ d->rightMouseButtonPressed = false;
+
+ if (!categoryDrawer && d->proxyModel)
+ {
+ QObject::disconnect(d->proxyModel,
+ SIGNAL(layoutChanged()),
+ this, SLOT(slotLayoutChanged()));
+
+ QObject::disconnect(d->proxyModel,
+ SIGNAL(rowsRemoved(QModelIndex,int,int)),
+ this, SLOT(rowsRemoved(QModelIndex,int,int)));
+ }
+ else if (categoryDrawer && d->proxyModel)
+ {
+ QObject::connect(d->proxyModel,
+ SIGNAL(layoutChanged()),
+ this, SLOT(slotLayoutChanged()));
+
+ QObject::connect(d->proxyModel,
+ SIGNAL(rowsRemoved(QModelIndex,int,int)),
+ this, SLOT(rowsRemoved(QModelIndex,int,int)));
+ }
+
+ d->categoryDrawer = categoryDrawer;
+
+ if (categoryDrawer)
+ {
+ if (d->proxyModel)
+ {
+ if (d->proxyModel->rowCount())
+ {
+ d->layoutChanged(true);
+ }
+ }
+ }
+ else
+ {
+ updateGeometries();
+ }
+}
+
+
+
+void KCategorizedView::selectCategory( const QString cat )
+{
+ QRect previous = d->categoryVisualRect( d->selectedCategory );
+ d->selectedCategory = cat;
+ QRect current = d->categoryVisualRect( d->selectedCategory );
+
+ viewport()->update( previous );
+ viewport()->update( current );
+}
+
+QModelIndex KCategorizedView::indexAt(const QPoint &point) const
+{
+ if (!d->proxyModel || !d->categoryDrawer || !d->proxyModel->isCategorizedModel())
+ {
+ return QListView::indexAt(point);
+ }
+
+ QModelIndex index;
+
+ const QModelIndexList item = d->intersectionSet(QRect(point, point));
+
+ if (item.count() == 1)
+ {
+ index = item[0];
+ }
+
+ return index;
+}
+
+void KCategorizedView::reset()
+{
+ QListView::reset();
+
+ d->lastSelection = QItemSelection();
+ d->forcedSelectionPosition = 0;
+ d->elementsInfo.clear();
+ d->elementsPosition.clear();
+ d->categoriesIndexes.clear();
+ d->categoriesPosition.clear();
+ d->categories.clear();
+ d->intersectedIndexes.clear();
+ d->modelIndexList.clear();
+ d->hovered = QModelIndex();
+ d->biggestItemSize = QSize(0, 0);
+ d->mouseButtonPressed = false;
+ d->rightMouseButtonPressed = false;
+}
+
+void KCategorizedView::paintEvent(QPaintEvent *event)
+{
+ if (!d->proxyModel || !d->categoryDrawer || !d->proxyModel->isCategorizedModel())
+ {
+ QListView::paintEvent(event);
+ return;
+ }
+
+ bool alternatingRows = alternatingRowColors();
+
+ QStyleOptionViewItemV4 option = viewOptions();
+ option.widget = this;
+ if (wordWrap())
+ {
+ option.features |= QStyleOptionViewItemV4::WrapText;
+ }
+
+ QPainter painter(viewport());
+ QRect area = event->rect();
+ const bool focus = (hasFocus() || viewport()->hasFocus()) &&
+ currentIndex().isValid();
+ const QStyle::State state = option.state;
+ const bool enabled = (state & QStyle::State_Enabled) != 0;
+
+ painter.save();
+
+ QModelIndexList dirtyIndexes = d->intersectionSet(area);
+ bool alternate = false;
+ if (dirtyIndexes.count())
+ {
+ alternate = dirtyIndexes[0].row() % 2;
+ }
+ foreach (const QModelIndex &index, dirtyIndexes)
+ {
+ if (alternatingRows && alternate)
+ {
+ option.features |= QStyleOptionViewItemV4::Alternate;
+ alternate = false;
+ }
+ else if (alternatingRows)
+ {
+ option.features &= ~QStyleOptionViewItemV4::Alternate;
+ alternate = true;
+ }
+ option.state = state;
+ option.rect = visualRect(index);
+
+ if (selectionModel() && selectionModel()->isSelected(index))
+ {
+ option.state |= QStyle::State_Selected;
+ }
+
+ if (enabled)
+ {
+ QPalette::ColorGroup cg;
+ if ((d->proxyModel->flags(index) & Qt::ItemIsEnabled) == 0)
+ {
+ option.state &= ~QStyle::State_Enabled;
+ cg = QPalette::Disabled;
+ }
+ else
+ {
+ cg = QPalette::Normal;
+ }
+ option.palette.setCurrentColorGroup(cg);
+ }
+
+ if (focus && currentIndex() == index)
+ {
+ option.state |= QStyle::State_HasFocus;
+ if (this->state() == EditingState)
+ option.state |= QStyle::State_Editing;
+ }
+
+ if (index == d->hovered)
+ option.state |= QStyle::State_MouseOver;
+ else
+ option.state &= ~QStyle::State_MouseOver;
+
+ itemDelegate(index)->paint(&painter, option, index);
+ }
+
+ // Redraw categories
+ QStyleOptionViewItemV4 otherOption;
+ bool intersectedInThePast = false;
+ foreach (const QString &category, d->categories)
+ {
+ otherOption = option;
+ otherOption.rect = d->categoryVisualRect(category);
+ otherOption.state &= ~QStyle::State_MouseOver;
+
+ if (category == d->selectedCategory)
+ otherOption.state |= QStyle::State_Selected;
+ else
+ otherOption.state &= ~QStyle::State_Selected;
+
+ if (otherOption.rect.intersects(area))
+ {
+ intersectedInThePast = true;
+
+
+ QModelIndex indexToDraw = d->proxyModel->index(d->categoriesIndexes[category][0].row(), d->proxyModel->sortColumn());
+ d->drawNewCategory(indexToDraw,
+ d->proxyModel->sortRole(), otherOption, &painter);
+ }
+ else if (intersectedInThePast)
+ {
+ break; // the visible area has been finished, we don't need to keep asking, the rest won't intersect
+ // this is doable because we know that categories are correctly ordered on the list
+ }
+ }
+
+ if ((selectionMode() != SingleSelection) && (selectionMode() != NoSelection))
+ {
+ if (d->mouseButtonPressed && !d->isDragging)
+ {
+ QPoint start, end, initialPressPosition;
+
+ initialPressPosition = d->initialPressPosition;
+
+ initialPressPosition.setY(initialPressPosition.y() - verticalOffset());
+ initialPressPosition.setX(initialPressPosition.x() - horizontalOffset());
+
+ if (d->initialPressPosition.x() > d->mousePosition.x() ||
+ d->initialPressPosition.y() > d->mousePosition.y())
+ {
+ start = d->mousePosition;
+ end = initialPressPosition;
+ }
+ else
+ {
+ start = initialPressPosition;
+ end = d->mousePosition;
+ }
+
+ QStyleOptionRubberBand yetAnotherOption;
+ yetAnotherOption.initFrom(this);
+ yetAnotherOption.shape = QRubberBand::Rectangle;
+ yetAnotherOption.opaque = false;
+ yetAnotherOption.rect = QRect(start, end).intersected(viewport()->rect().adjusted(-16, -16, 16, 16));
+ painter.save();
+ style()->drawControl(QStyle::CE_RubberBand, &yetAnotherOption, &painter);
+ painter.restore();
+ }
+ }
+
+ if (d->isDragging && !d->dragLeftViewport)
+ {
+ painter.setOpacity(0.5);
+ d->drawDraggedItems(&painter);
+ }
+
+ painter.restore();
+}
+
+void KCategorizedView::resizeEvent(QResizeEvent *event)
+{
+ QListView::resizeEvent(event);
+
+ // Clear the items positions cache
+ d->elementsPosition.clear();
+ d->categoriesPosition.clear();
+ d->forcedSelectionPosition = 0;
+
+ if (!d->proxyModel || !d->categoryDrawer || !d->proxyModel->isCategorizedModel())
+ {
+ return;
+ }
+
+ d->updateScrollbars();
+}
+
+
+void KCategorizedView::mouseMoveEvent(QMouseEvent *event)
+{
+ QListView::mouseMoveEvent(event);
+
+ if (!d->proxyModel || !d->categoryDrawer || !d->proxyModel->isCategorizedModel())
+ {
+ return;
+ }
+
+ const QModelIndexList item = d->intersectionSet(QRect(event->pos(), event->pos()));
+
+ if (item.count() == 1)
+ {
+ d->hovered = item[0];
+ }
+ else
+ {
+ d->hovered = QModelIndex();
+ }
+
+ const QString previousHoveredCategory = d->hoveredCategory;
+
+ d->mousePosition = event->pos();
+ d->hoveredCategory.clear();
+
+ // Redraw categories
+ foreach (const QString &category, d->categories)
+ {
+ if (d->categoryVisualRect(category).intersects(QRect(event->pos(), event->pos())))
+ {
+ d->hoveredCategory = category;
+ viewport()->update(d->categoryVisualRect(category));
+ }
+ else if ((category == previousHoveredCategory) &&
+ (!d->categoryVisualRect(previousHoveredCategory).intersects(QRect(event->pos(), event->pos()))))
+ {
+ viewport()->update(d->categoryVisualRect(category));
+ }
+ }
+
+ QRect rect;
+ if (d->mouseButtonPressed && !d->isDragging)
+ {
+ QPoint start, end, initialPressPosition;
+
+ initialPressPosition = d->initialPressPosition;
+
+ initialPressPosition.setY(initialPressPosition.y() - verticalOffset());
+ initialPressPosition.setX(initialPressPosition.x() - horizontalOffset());
+
+ if (d->initialPressPosition.x() > d->mousePosition.x() ||
+ d->initialPressPosition.y() > d->mousePosition.y())
+ {
+ start = d->mousePosition;
+ end = initialPressPosition;
+ }
+ else
+ {
+ start = initialPressPosition;
+ end = d->mousePosition;
+ }
+
+ rect = QRect(start, end).adjusted(-16, -16, 16, 16);
+ rect = rect.united(QRect(start, end).adjusted(16, 16, -16, -16)).intersected(viewport()->rect());
+
+ viewport()->update(rect);
+ }
+ viewport()->update();
+}
+
+void KCategorizedView::mousePressEvent(QMouseEvent *event)
+{
+ d->dragLeftViewport = false;
+
+ QListView::mousePressEvent(event);
+ if (event->button() == Qt::LeftButton)
+ {
+ d->mouseButtonPressed = true;
+
+ d->initialPressPosition = event->pos();
+ d->initialPressPosition.setY(d->initialPressPosition.y() +
+ verticalOffset());
+ d->initialPressPosition.setX(d->initialPressPosition.x() +
+ horizontalOffset());
+
+ emit leftMouseClick( indexAt( event->pos()));
+ }
+ else if (event->button() == Qt::RightButton)
+ {
+ d->rightMouseButtonPressed = true;
+ }
+
+
+ if (selectionModel())
+ {
+ d->lastSelection = selectionModel()->selection();
+ }
+
+ viewport()->update(d->categoryVisualRect(d->hoveredCategory));
+}
+
+void KCategorizedView::mouseReleaseEvent(QMouseEvent *event)
+{
+ d->mouseButtonPressed = false;
+ d->rightMouseButtonPressed = false;
+
+ QListView::mouseReleaseEvent(event);
+
+ if (!d->proxyModel || !d->categoryDrawer || !d->proxyModel->isCategorizedModel())
+ {
+ return;
+ }
+
+ QPoint initialPressPosition = viewport()->mapFromGlobal(QCursor::pos());
+ initialPressPosition.setY(initialPressPosition.y() + verticalOffset());
+ initialPressPosition.setX(initialPressPosition.x() + horizontalOffset());
+
+ if (/*(selectionMode() != SingleSelection) && (selectionMode() != NoSelection) &&*/
+ (initialPressPosition == d->initialPressPosition))
+ {
+ selectionModel()->select( d->hovered, QItemSelectionModel::SelectCurrent);
+ }
+
+ QRect rect;
+ if (!d->isDragging)
+ {
+ QPoint start, end, initialPressPosition;
+
+ initialPressPosition = d->initialPressPosition;
+
+ initialPressPosition.setY(initialPressPosition.y() - verticalOffset());
+ initialPressPosition.setX(initialPressPosition.x() - horizontalOffset());
+
+ if (d->initialPressPosition.x() > d->mousePosition.x() ||
+ d->initialPressPosition.y() > d->mousePosition.y())
+ {
+ start = d->mousePosition;
+ end = initialPressPosition;
+ }
+ else
+ {
+ start = initialPressPosition;
+ end = d->mousePosition;
+ }
+
+ rect = QRect(start, end).adjusted(-16, -16, 16, 16);
+ rect = rect.united(QRect(start, end).adjusted(16, 16, -16, -16)).intersected(viewport()->rect());
+
+ viewport()->update(rect);
+ }
+
+ if (d->hovered.isValid())
+ viewport()->update(visualRect(d->hovered));
+ else if (!d->hoveredCategory.isEmpty())
+ viewport()->update(d->categoryVisualRect(d->hoveredCategory));
+}
+
+void KCategorizedView::leaveEvent(QEvent *event)
+{
+ d->hovered = QModelIndex();
+ d->hoveredCategory.clear();
+
+ QListView::leaveEvent(event);
+}
+
+void KCategorizedView::startDrag(Qt::DropActions supportedActions)
+{
+ // FIXME: QAbstractItemView does far better here since it sets the
+ // pixmap of selected icons to the dragging cursor, but it sets a non
+ // ARGB window so it is no transparent. Use QAbstractItemView when
+ // this is fixed on Qt.
+ // QAbstractItemView::startDrag(supportedActions);
+#if defined(DOLPHIN_DRAGANDDROP)
+ Q_UNUSED(supportedActions);
+#else
+ QListView::startDrag(supportedActions);
+#endif
+
+ d->isDragging = false;
+ d->mouseButtonPressed = false;
+ d->rightMouseButtonPressed = false;
+
+ viewport()->update(d->lastDraggedItemsRect);
+}
+
+void KCategorizedView::dragMoveEvent(QDragMoveEvent *event)
+{
+ d->mousePosition = event->pos();
+
+ if (d->mouseButtonPressed)
+ {
+ d->isDragging = true;
+ }
+ else
+ {
+ d->isDragging = false;
+ }
+
+ d->dragLeftViewport = false;
+
+#if defined(DOLPHIN_DRAGANDDROP)
+ QAbstractItemView::dragMoveEvent(event);
+#else
+ QListView::dragMoveEvent(event);
+#endif
+
+ if (!d->proxyModel || !d->categoryDrawer || !d->proxyModel->isCategorizedModel())
+ {
+ return;
+ }
+
+ d->hovered = indexAt(event->pos());
+
+#if !defined(DOLPHIN_DRAGANDDROP)
+ d->drawDraggedItems();
+#endif
+}
+
+void KCategorizedView::dragLeaveEvent(QDragLeaveEvent *event)
+{
+ d->dragLeftViewport = true;
+
+#if defined(DOLPHIN_DRAGANDDROP)
+ QAbstractItemView::dragLeaveEvent(event);
+#else
+ QListView::dragLeaveEvent(event);
+#endif
+}
+
+void KCategorizedView::dropEvent(QDropEvent *event)
+{
+#if defined(DOLPHIN_DRAGANDDROP)
+ QAbstractItemView::dropEvent(event);
+#else
+ QListView::dropEvent(event);
+#endif
+}
+
+QModelIndex KCategorizedView::moveCursor(CursorAction cursorAction,
+ Qt::KeyboardModifiers modifiers)
+{
+ if ((viewMode() != KCategorizedView::IconMode) ||
+ !d->proxyModel ||
+ !d->categoryDrawer ||
+ d->categories.isEmpty() ||
+ !d->proxyModel->isCategorizedModel())
+ {
+ return QListView::moveCursor(cursorAction, modifiers);
+ }
+
+ int viewportWidth = viewport()->width() - spacing();
+ int itemWidth;
+
+ if (gridSize().isEmpty())
+ {
+ itemWidth = d->biggestItemSize.width();
+ }
+ else
+ {
+ itemWidth = gridSize().width();
+ }
+
+ int itemWidthPlusSeparation = spacing() + itemWidth;
+ if (!itemWidthPlusSeparation)
+ itemWidthPlusSeparation++;
+ int elementsPerRow = viewportWidth / itemWidthPlusSeparation;
+ if (!elementsPerRow)
+ elementsPerRow++;
+
+ QModelIndex current = selectionModel() ? selectionModel()->currentIndex()
+ : QModelIndex();
+
+ if (!current.isValid())
+ {
+ if (cursorAction == MoveEnd)
+ {
+ current = model()->index(model()->rowCount() - 1, 0, QModelIndex());
+ d->forcedSelectionPosition = d->elementsInfo[current.row()].relativeOffsetToCategory % elementsPerRow;
+ }
+ else
+ {
+ current = model()->index(0, 0, QModelIndex());
+ d->forcedSelectionPosition = 0;
+ }
+
+ return current;
+ }
+
+ QString lastCategory = d->categories.first();
+ QString theCategory = d->categories.first();
+ QString afterCategory = d->categories.first();
+
+ bool hasToBreak = false;
+ foreach (const QString &category, d->categories)
+ {
+ if (hasToBreak)
+ {
+ afterCategory = category;
+
+ break;
+ }
+
+ if (category == d->elementsInfo[current.row()].category)
+ {
+ theCategory = category;
+
+ hasToBreak = true;
+ }
+
+ if (!hasToBreak)
+ {
+ lastCategory = category;
+ }
+ }
+
+ switch (cursorAction)
+ {
+ case QAbstractItemView::MoveUp: {
+ if (d->elementsInfo[current.row()].relativeOffsetToCategory >= elementsPerRow)
+ {
+ int indexToMove = current.row();
+ indexToMove -= qMin(((d->elementsInfo[current.row()].relativeOffsetToCategory) + d->forcedSelectionPosition), elementsPerRow - d->forcedSelectionPosition + (d->elementsInfo[current.row()].relativeOffsetToCategory % elementsPerRow));
+
+ return d->proxyModel->index(indexToMove, 0);
+ }
+ else
+ {
+ int lastCategoryLastRow = (d->categoriesIndexes[lastCategory].count() - 1) % elementsPerRow;
+ int indexToMove = current.row() - d->elementsInfo[current.row()].relativeOffsetToCategory;
+
+ if (d->forcedSelectionPosition >= lastCategoryLastRow)
+ {
+ indexToMove -= 1;
+ }
+ else
+ {
+ indexToMove -= qMin((lastCategoryLastRow - d->forcedSelectionPosition + 1), d->forcedSelectionPosition + elementsPerRow + 1);
+ }
+
+ return d->proxyModel->index(indexToMove, 0);
+ }
+ }
+
+ case QAbstractItemView::MoveDown: {
+ if (d->elementsInfo[current.row()].relativeOffsetToCategory < (d->categoriesIndexes[theCategory].count() - 1 - ((d->categoriesIndexes[theCategory].count() - 1) % elementsPerRow)))
+ {
+ int indexToMove = current.row();
+ indexToMove += qMin(elementsPerRow, d->categoriesIndexes[theCategory].count() - 1 - d->elementsInfo[current.row()].relativeOffsetToCategory);
+
+ return d->proxyModel->index(indexToMove, 0);
+ }
+ else
+ {
+ int afterCategoryLastRow = qMin(elementsPerRow, d->categoriesIndexes[afterCategory].count());
+ int indexToMove = current.row() + (d->categoriesIndexes[theCategory].count() - d->elementsInfo[current.row()].relativeOffsetToCategory);
+
+ if (d->forcedSelectionPosition >= afterCategoryLastRow)
+ {
+ indexToMove += afterCategoryLastRow - 1;
+ }
+ else
+ {
+ indexToMove += qMin(d->forcedSelectionPosition, elementsPerRow);
+ }
+
+ return d->proxyModel->index(indexToMove, 0);
+ }
+ }
+
+ case QAbstractItemView::MoveLeft:
+ if (layoutDirection() == Qt::RightToLeft)
+ {
+ if (!(d->elementsInfo[current.row() + 1].relativeOffsetToCategory % elementsPerRow))
+ return current;
+
+ d->forcedSelectionPosition = d->elementsInfo[current.row() + 1].relativeOffsetToCategory % elementsPerRow;
+
+#if 0 //follow qt view behavior. lateral movements won't change visual row
+ if (d->forcedSelectionPosition < 0)
+ d->forcedSelectionPosition = (d->categoriesIndexes[theCategory].count() - 1) % elementsPerRow;
+#endif
+
+ return d->proxyModel->index(current.row() + 1, 0);
+ }
+
+ if (!(d->elementsInfo[current.row()].relativeOffsetToCategory % elementsPerRow))
+ return current;
+
+ d->forcedSelectionPosition = d->elementsInfo[current.row() - 1].relativeOffsetToCategory % elementsPerRow;
+
+#if 0 //follow qt view behavior. lateral movements won't change visual row
+ if (d->forcedSelectionPosition < 0)
+ d->forcedSelectionPosition = (d->categoriesIndexes[theCategory].count() - 1) % elementsPerRow;
+#endif
+
+ return d->proxyModel->index(current.row() - 1, 0);
+
+ case QAbstractItemView::MoveRight:
+ if (layoutDirection() == Qt::RightToLeft)
+ {
+ if (!(d->elementsInfo[current.row()].relativeOffsetToCategory % elementsPerRow))
+ return current;
+
+ d->forcedSelectionPosition = d->elementsInfo[current.row() - 1].relativeOffsetToCategory % elementsPerRow;
+
+#if 0 //follow qt view behavior. lateral movements won't change visual row
+ if (d->forcedSelectionPosition < 0)
+ d->forcedSelectionPosition = (d->categoriesIndexes[theCategory].count() - 1) % elementsPerRow;
+#endif
+
+ return d->proxyModel->index(current.row() - 1, 0);
+ }
+
+ if (!(d->elementsInfo[current.row() + 1].relativeOffsetToCategory % elementsPerRow))
+ return current;
+
+ d->forcedSelectionPosition = d->elementsInfo[current.row() + 1].relativeOffsetToCategory % elementsPerRow;
+
+#if 0 //follow qt view behavior. lateral movements won't change visual row
+ if (d->forcedSelectionPosition < 0)
+ d->forcedSelectionPosition = (d->categoriesIndexes[theCategory].count() - 1) % elementsPerRow;
+#endif
+
+ return d->proxyModel->index(current.row() + 1, 0);
+
+ default:
+ break;
+ }
+
+ return QListView::moveCursor(cursorAction, modifiers);
+}
+
+void KCategorizedView::rowsInserted(const QModelIndex &parent,
+ int start,
+ int end)
+{
+ QListView::rowsInserted(parent, start, end);
+
+ if (!d->proxyModel || !d->categoryDrawer || !d->proxyModel->isCategorizedModel())
+ {
+ d->forcedSelectionPosition = 0;
+ d->elementsInfo.clear();
+ d->elementsPosition.clear();
+ d->categoriesIndexes.clear();
+ d->categoriesPosition.clear();
+ d->categories.clear();
+ d->intersectedIndexes.clear();
+ d->modelIndexList.clear();
+ d->hovered = QModelIndex();
+ d->biggestItemSize = QSize(0, 0);
+ d->mouseButtonPressed = false;
+ d->rightMouseButtonPressed = false;
+
+ return;
+ }
+
+ rowsInsertedArtifficial(parent, start, end);
+}
+
+void KCategorizedView::rowsInsertedArtifficial(const QModelIndex &parent,
+ int start,
+ int end)
+{
+ Q_UNUSED(parent);
+
+ d->forcedSelectionPosition = 0;
+ d->elementsInfo.clear();
+ d->elementsPosition.clear();
+ d->categoriesIndexes.clear();
+ d->categoriesPosition.clear();
+ d->categories.clear();
+ d->intersectedIndexes.clear();
+ d->modelIndexList.clear();
+ d->hovered = QModelIndex();
+ d->biggestItemSize = QSize(0, 0);
+ d->mouseButtonPressed = false;
+ d->rightMouseButtonPressed = false;
+
+ if (start > end || end < 0 || start < 0 || !d->proxyModel->rowCount())
+ {
+ return;
+ }
+
+ // Add all elements mapped to the source model and explore categories
+ QString prevCategory = d->proxyModel->data(d->proxyModel->index(0, d->proxyModel->sortColumn()), KCategorizedSortFilterProxyModel::CategoryDisplayRole).toString();
+ QString lastCategory = prevCategory;
+ QModelIndexList modelIndexList;
+ struct Private::ElementInfo elementInfo;
+ int offset = -1;
+ for (int k = 0; k < d->proxyModel->rowCount(); ++k)
+ {
+ QModelIndex index = d->proxyModel->index(k, d->proxyModel->sortColumn());
+ QModelIndex indexSize = d->proxyModel->index(k, 0);
+
+ d->biggestItemSize = QSize(qMax(sizeHintForIndex(indexSize).width(),
+ d->biggestItemSize.width()),
+ qMax(sizeHintForIndex(indexSize).height(),
+ d->biggestItemSize.height()));
+
+ d->modelIndexList << index;
+
+ lastCategory = d->proxyModel->data(index, KCategorizedSortFilterProxyModel::CategoryDisplayRole).toString();
+
+ elementInfo.category = lastCategory;
+
+ if (prevCategory != lastCategory)
+ {
+ offset = 0;
+ d->categoriesIndexes.insert(prevCategory, modelIndexList);
+ d->categories << prevCategory;
+ modelIndexList.clear();
+ }
+ else
+ {
+ offset++;
+ }
+
+ elementInfo.relativeOffsetToCategory = offset;
+
+ modelIndexList << index;
+ prevCategory = lastCategory;
+
+ d->elementsInfo.insert(index.row(), elementInfo);
+ }
+
+ d->categoriesIndexes.insert(prevCategory, modelIndexList);
+ d->categories << prevCategory;
+
+ d->updateScrollbars();
+
+ // FIXME: We need to safely save the last selection. This is on my TODO
+ // list (ereslibre).
+ selectionModel()->clear();
+}
+
+void KCategorizedView::rowsRemoved(const QModelIndex &parent,
+ int start,
+ int end)
+{
+ Q_UNUSED(parent);
+ Q_UNUSED(start);
+ Q_UNUSED(end);
+ if (d->proxyModel && d->categoryDrawer && d->proxyModel->isCategorizedModel())
+ {
+ // Force the view to update all elements
+ rowsInsertedArtifficial(QModelIndex(), 0, d->proxyModel->rowCount() - 1);
+ }
+}
+
+void KCategorizedView::updateGeometries()
+{
+ if (!d->proxyModel || !d->categoryDrawer || !d->proxyModel->isCategorizedModel())
+ {
+ QListView::updateGeometries();
+ return;
+ }
+
+ // Avoid QListView::updateGeometries(), since it will try to set another
+ // range to our scroll bars, what we don't want (ereslibre)
+ QAbstractItemView::updateGeometries();
+}
+
+void KCategorizedView::slotLayoutChanged()
+{
+ d->layoutChanged();
+}
+
+void KCategorizedView::currentChanged(const QModelIndex ¤t,
+ const QModelIndex &previous)
+{
+ // We need to update the forcedSelectionPosition property in order to correctly
+ // navigate after with keyboard using up & down keys
+
+ int viewportWidth = viewport()->width() - spacing();
+
+ int itemHeight;
+ int itemWidth;
+
+ if (gridSize().isEmpty())
+ {
+ itemHeight = d->biggestItemSize.height();
+ itemWidth = d->biggestItemSize.width();
+ }
+ else
+ {
+ itemHeight = gridSize().height();
+ itemWidth = gridSize().width();
+ }
+
+ int itemWidthPlusSeparation = spacing() + itemWidth;
+ if (!itemWidthPlusSeparation)
+ itemWidthPlusSeparation++;
+ int elementsPerRow = viewportWidth / itemWidthPlusSeparation;
+ if (!elementsPerRow)
+ elementsPerRow++;
+
+ if (d->mouseButtonPressed || d->rightMouseButtonPressed)
+ d->forcedSelectionPosition = d->elementsInfo[current.row()].relativeOffsetToCategory % elementsPerRow;
+
+ QListView::currentChanged(current, previous);
+}
+
+void KCategorizedView::dataChanged(const QModelIndex &topLeft,
+ const QModelIndex &bottomRight)
+{
+ if (topLeft == bottomRight)
+ {
+ d->cacheIndex(topLeft);
+ }
+ else
+ {
+ const int columnStart = topLeft.column();
+ const int columnEnd = bottomRight.column();
+ const int rowStart = topLeft.row();
+ const int rowEnd = bottomRight.row();
+
+ for (int row = rowStart; row <= rowEnd; ++row)
+ {
+ for (int column = columnStart; column <= columnEnd; ++column)
+ {
+ d->cacheIndex(d->proxyModel->index(row, column));
+ }
+ }
+ }
+
+ QListView::dataChanged(topLeft, bottomRight);
+ slotLayoutChanged();
+}
+
+#include "kcategorizedview.moc"
Added: branches/SuSE-Code-11-SP1-Branch/control-center/src/kcategorizedview.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/contr…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/control-center/src/kcategorizedview.h (added)
+++ branches/SuSE-Code-11-SP1-Branch/control-center/src/kcategorizedview.h Mon May 23 15:58:18 2011
@@ -0,0 +1,128 @@
+/**
+ * This file is part of the KDE project
+ * Copyright (C) 2007 Rafael Fernández López <ereslibre(a)kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#ifndef KCATEGORIZEDVIEW_H
+#define KCATEGORIZEDVIEW_H
+
+#include <QtGui/QListView>
+
+//#include <kdeui_export.h>
+#define KDEUI_EXPORT
+
+class KCategoryDrawer;
+
+/**
+ * @short Item view for listing items
+ *
+ * KCategorizedView allows you to use it as it were a QListView.
+ * Subclass KCategorizedSortFilterProxyModel to provide category information for items.
+ *
+ * @see KCategorizedSortFilterProxyModel
+ *
+ * @author Rafael Fernández López <ereslibre(a)kde.org>
+ */
+class KDEUI_EXPORT KCategorizedView
+ : public QListView
+{
+ Q_OBJECT
+
+public:
+ KCategorizedView(QWidget *parent = 0);
+
+ ~KCategorizedView();
+
+ virtual void setModel(QAbstractItemModel *model);
+
+ void setGridSize(const QSize &size);
+
+ virtual QRect visualRect(const QModelIndex &index) const;
+
+ void scrollTo (const QModelIndex &index );
+
+ KCategoryDrawer *categoryDrawer() const;
+
+ void setCategoryDrawer(KCategoryDrawer *categoryDrawer);
+
+ void selectCategory ( const QString cat );
+
+ virtual QModelIndex indexAt(const QPoint &point) const;
+
+public Q_SLOTS:
+ virtual void reset();
+
+protected:
+ virtual void paintEvent(QPaintEvent *event);
+
+ virtual void resizeEvent(QResizeEvent *event);
+
+ //virtual void setSelection(const QRect &rect,
+ // QItemSelectionModel::SelectionFlags flags);
+
+ virtual void mouseMoveEvent(QMouseEvent *event);
+
+ virtual void mousePressEvent(QMouseEvent *event);
+
+ virtual void mouseReleaseEvent(QMouseEvent *event);
+
+ virtual void leaveEvent(QEvent *event);
+
+ virtual void startDrag(Qt::DropActions supportedActions);
+
+ virtual void dragMoveEvent(QDragMoveEvent *event);
+
+ virtual void dragLeaveEvent(QDragLeaveEvent *event);
+
+ virtual void dropEvent(QDropEvent *event);
+
+ virtual QModelIndex moveCursor(CursorAction cursorAction,
+ Qt::KeyboardModifiers modifiers);
+
+protected Q_SLOTS:
+ virtual void rowsInserted(const QModelIndex &parent,
+ int start,
+ int end);
+
+ virtual void rowsInsertedArtifficial(const QModelIndex &parent,
+ int start,
+ int end);
+
+ virtual void rowsRemoved(const QModelIndex &parent,
+ int start,
+ int end);
+
+ virtual void updateGeometries();
+
+ virtual void slotLayoutChanged();
+
+ virtual void currentChanged(const QModelIndex ¤t,
+ const QModelIndex &previous);
+
+ virtual void dataChanged(const QModelIndex &topLeft,
+ const QModelIndex &bottomRight);
+
+signals:
+ void leftMouseClick( const QModelIndex &idx );
+
+private:
+ class Private;
+ Private *const d;
+};
+
+#endif // KCATEGORIZEDVIEW_H
Added: branches/SuSE-Code-11-SP1-Branch/control-center/src/kcategorizedview_p.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/contr…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/control-center/src/kcategorizedview_p.h (added)
+++ branches/SuSE-Code-11-SP1-Branch/control-center/src/kcategorizedview_p.h Mon May 23 15:58:18 2011
@@ -0,0 +1,165 @@
+/**
+ * This file is part of the KDE project
+ * Copyright (C) 2007 Rafael Fernández López <ereslibre(a)kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#ifndef KCATEGORIZEDVIEW_P_H
+#define KCATEGORIZEDVIEW_P_H
+
+class KCategorizedSortFilterProxyModel;
+class KCategoryDrawer;
+
+/**
+ * @internal
+ */
+class KCategorizedView::Private
+{
+public:
+ Private(KCategorizedView *listView);
+ ~Private();
+
+
+ // Methods
+
+ /**
+ * Returns the list of items that intersects with @p rect
+ */
+ const QModelIndexList &intersectionSet(const QRect &rect);
+
+ /**
+ * Gets the item rect in the viewport for @p index
+ */
+ QRect visualRectInViewport(const QModelIndex &index) const;
+
+ /**
+ * Returns the category rect in the viewport for @p category
+ */
+ QRect visualCategoryRectInViewport(const QString &category) const;
+
+ /**
+ * Caches and returns the rect that corresponds to @p index
+ */
+ const QRect &cacheIndex(const QModelIndex &index);
+
+ /**
+ * Caches and returns the rect that corresponds to @p category
+ */
+ const QRect &cacheCategory(const QString &category);
+
+ /**
+ * Returns the rect that corresponds to @p index
+ * @note If the rect is not cached, it becomes cached
+ */
+ const QRect &cachedRectIndex(const QModelIndex &index);
+
+ /**
+ * Returns the rect that corresponds to @p category
+ * @note If the rect is not cached, it becomes cached
+ */
+ const QRect &cachedRectCategory(const QString &category);
+
+ /**
+ * Returns the visual rect (taking in count x and y offsets) for @p index
+ * @note If the rect is not cached, it becomes cached
+ */
+ QRect visualRect(const QModelIndex &index);
+
+ /**
+ * Returns the visual rect (taking in count x and y offsets) for @p category
+ * @note If the rect is not cached, it becomes cached
+ */
+ QRect categoryVisualRect(const QString &category);
+
+ /**
+ * This method will draw a new category represented by index
+ * @param index on the rect specified by @p option.rect, with
+ * painter @p painter
+ */
+ void drawNewCategory(const QModelIndex &index,
+ int sortRole,
+ const QStyleOption &option,
+ QPainter *painter);
+
+ /**
+ * This method will update scrollbars ranges. Called when our model changes
+ * or when the view is resized
+ */
+ void updateScrollbars();
+
+ /**
+ * This method will draw dragged items in the painting operation
+ */
+ void drawDraggedItems(QPainter *painter);
+
+ /**
+ * This method will determine which rect needs to be updated because of a
+ * dragging operation
+ */
+ void drawDraggedItems();
+
+ void layoutChanged(bool forceItemReload = false);
+
+
+ // Attributes
+
+ struct ElementInfo
+ {
+ QString category;
+ int relativeOffsetToCategory;
+ };
+
+ // Basic data
+ KCategorizedView *listView;
+ KCategoryDrawer *categoryDrawer;
+ QSize biggestItemSize;
+
+ // Behavior data
+ bool mouseButtonPressed;
+ bool rightMouseButtonPressed;
+ bool isDragging;
+ bool dragLeftViewport;
+ QModelIndex hovered;
+ QString hoveredCategory;
+ QString selectedCategory;
+ QPoint initialPressPosition;
+ QPoint mousePosition;
+ int forcedSelectionPosition;
+
+ // Cache data
+ // We cannot merge some of them into structs because it would affect
+ // performance
+ QHash<int, struct ElementInfo> elementsInfo;
+ QHash<int, QRect> elementsPosition;
+ QHash<QString, QModelIndexList> categoriesIndexes;
+ QHash<QString, QRect> categoriesPosition;
+ QStringList categories;
+ QModelIndexList intersectedIndexes;
+ QRect lastDraggedItemsRect;
+ int modelSortRole;
+ int modelSortColumn;
+ int modelLastRowCount;
+ bool modelCategorized;
+ Qt::SortOrder modelSortOrder;
+ QItemSelection lastSelection;
+
+ // Attributes for speed reasons
+ KCategorizedSortFilterProxyModel *proxyModel;
+ QModelIndexList modelIndexList;
+};
+
+#endif // KCATEGORIZEDVIEW_P_H
Added: branches/SuSE-Code-11-SP1-Branch/control-center/src/kcategorydrawer.cpp
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/contr…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/control-center/src/kcategorydrawer.cpp (added)
+++ branches/SuSE-Code-11-SP1-Branch/control-center/src/kcategorydrawer.cpp Mon May 23 15:58:18 2011
@@ -0,0 +1,114 @@
+/**
+ * This file is part of the KDE project
+ * Copyright (C) 2007 Rafael Fernández López <ereslibre(a)kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#include "kcategorydrawer.h"
+
+#include <QPainter>
+#include <QStyleOption>
+#include <QApplication>
+#include <QDebug>
+
+#define HORIZONTAL_HINT 3
+
+KCategoryDrawer::KCategoryDrawer()
+{
+}
+
+KCategoryDrawer::~KCategoryDrawer()
+{
+}
+
+void KCategoryDrawer::drawCategory(const QModelIndex &index,
+ int /*sortRole*/,
+ const QStyleOption &option,
+ QPainter *painter) const
+{
+ const QString category = index.model()->data(index, KCategorizedSortFilterProxyModel::CategoryDisplayRole).toString();
+
+ QColor color;
+
+ painter->save();
+ painter->setRenderHint(QPainter::Antialiasing);
+
+ if (option.state & QStyle::State_Selected)
+ {
+ color = option.palette.color(QPalette::HighlightedText);
+ QColor bgcolor = option.palette.color(QPalette::Highlight);
+ painter->fillRect(option.rect, linearG( option, bgcolor ));
+ }
+ else
+ {
+ color = option.palette.color(QPalette::Text);
+ }
+
+
+ QStyleOptionViewItemV4 viewOptions;
+ viewOptions.rect = option.rect;
+ viewOptions.palette = option.palette;
+ viewOptions.direction = option.direction;
+ viewOptions.state = option.state;
+ viewOptions.viewItemPosition = QStyleOptionViewItemV4::OnlyOne;
+ QApplication::style()->drawPrimitive(QStyle::PE_PanelItemViewItem, &viewOptions, painter, 0);
+
+ QFont painterFont = painter->font();
+ painterFont.setWeight(QFont::Bold);
+ QFontMetrics metrics(painterFont);
+ painter->setFont(painterFont);
+
+
+ QRect lineRect(option.rect.left(),
+ option.rect.bottom() - 1,
+ option.rect.width(),
+ 1);
+
+
+ painter->fillRect(lineRect, linearG( option, color ));
+
+ painter->setPen(color);
+
+ QRect textRect(option.rect);
+ textRect.setLeft(textRect.left() + HORIZONTAL_HINT);
+ textRect.setRight(textRect.right() - HORIZONTAL_HINT);
+ painter->drawText(textRect, Qt::AlignVCenter | Qt::AlignLeft,
+ metrics.elidedText(category, Qt::ElideRight, option.rect.width()));
+
+ painter->restore();
+}
+
+int KCategoryDrawer::categoryHeight(const QModelIndex &index, const QStyleOption &option) const
+{
+ Q_UNUSED(index);
+
+ return option.fontMetrics.height() + 4 /* 3 separator; 1 gradient */;
+}
+
+QLinearGradient KCategoryDrawer::linearG ( const QStyleOption &option, const QColor col ) const
+{
+
+ QLinearGradient gradient = QLinearGradient(option.rect.topLeft(),
+ option.rect.bottomRight());
+
+ gradient.setColorAt(option.direction == Qt::LeftToRight ? 0
+ : 1, col);
+ gradient.setColorAt(option.direction == Qt::LeftToRight ? 1
+ : 0, Qt::transparent);
+
+ return gradient;
+}
Added: branches/SuSE-Code-11-SP1-Branch/control-center/src/kcategorydrawer.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/contr…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/control-center/src/kcategorydrawer.h (added)
+++ branches/SuSE-Code-11-SP1-Branch/control-center/src/kcategorydrawer.h Mon May 23 15:58:18 2011
@@ -0,0 +1,56 @@
+/**
+ * This file is part of the KDE project
+ * Copyright (C) 2007 Rafael Fernández López <ereslibre(a)kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#ifndef KCATEGORYDRAWER_H
+#define KCATEGORYDRAWER_H
+
+#include "kcategorizedsortfilterproxymodel.h"
+#define KDEUI_EXPORT
+
+class QPainter;
+class QLinearGradient;
+class QModelIndex;
+class QStyleOption;
+
+class KDEUI_EXPORT KCategoryDrawer
+{
+public:
+ KCategoryDrawer();
+
+ virtual ~KCategoryDrawer();
+
+ /**
+ * This method purpose is to draw a category represented by the given
+ * @param index with the given @param sortRole sorting role
+ *
+ * @note This method will be called one time per category, always with the
+ * first element in that category
+ */
+ virtual void drawCategory(const QModelIndex &index,
+ int sortRole,
+ const QStyleOption &option,
+ QPainter *painter) const;
+
+ virtual int categoryHeight(const QModelIndex &index, const QStyleOption &option) const;
+
+ QLinearGradient linearG( const QStyleOption &option, const QColor col ) const;
+};
+
+#endif // KCATEGORYDRAWER_H
Added: branches/SuSE-Code-11-SP1-Branch/control-center/src/kcmoduleinfo.cpp
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/contr…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/control-center/src/kcmoduleinfo.cpp (added)
+++ branches/SuSE-Code-11-SP1-Branch/control-center/src/kcmoduleinfo.cpp Mon May 23 15:58:18 2011
@@ -0,0 +1,215 @@
+/*
+ Copyright (c) 1999 Matthias Hoelzer-Kluepfel <hoelzer(a)kde.org>
+ Copyright (c) 2000 Matthias Elter <elter(a)kde.org>
+ Copyright (c) 2003 Daniel Molkentin <molkentin(a)kde.org>
+ Copyright (c) 2003,2006 Matthias Kretz <kretz(a)kde.org>
+
+ This file is part of the KDE project
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public
+ License version 2, as published by the Free Software Foundation.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public License
+ along with this library; see the file COPYING.LIB. If not, write to
+ the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ Boston, MA 02110-1301, USA.
+*/
+
+#include "kcmoduleinfo.h"
+
+#include <QtCore/QVariant>
+
+//#include <kdesktopfile.h>
+//#include <kdebug.h>
+//#include <kglobal.h>
+//#include <kstandarddirs.h>
+//#include <klocale.h>
+
+#include <iostream>
+
+class KCModuleInfo::Private
+{
+ public:
+ Private();
+// Private( KService::Ptr );
+
+ QStringList keywords;
+ QString name, icon, lib, handle, fileName, doc, comment;
+ bool allLoaded;
+ int weight;
+
+ //KService::Ptr service;
+
+ /**
+ * Reads the service entries specific for KCModule from the desktop file.
+ * The usual desktop entries are read in the Private ctor.
+ */
+ void loadAll();
+};
+
+//KCModuleInfo::Private::Private()
+//{
+//}
+
+//KCModuleInfo::Private::Private( KService::Ptr s )
+KCModuleInfo::Private::Private( )
+ : allLoaded( false )
+// , service( s )
+{
+// if ( !service )
+// {
+// kDebug(712) << "Could not find the service.";
+// return;
+// }
+
+ // set the modules simple attributes
+/* name = service->name();
+ comment = service->comment();
+ icon = service->icon();
+ fileName = service->entryPath();
+ lib = service->library();
+ keywords = service->keywords(); */
+
+ name = "name";
+ comment = "comment";
+ icon = "icon";
+ fileName = "fileName";
+ lib = "lib";
+ keywords = QStringList("keywords");
+
+
+}
+
+KCModuleInfo::KCModuleInfo()
+{
+ d = new Private;
+}
+
+KCModuleInfo::KCModuleInfo(const QString& desktopFile)
+{
+// d = new Private( KService::serviceByStorageId(desktopFile) );
+ d = new Private( );
+}
+
+//KCModuleInfo::KCModuleInfo( KService::Ptr moduleInfo )
+//{
+// d = new Private( moduleInfo );
+//}
+
+KCModuleInfo::KCModuleInfo( const KCModuleInfo &rhs )
+{
+ d = new Private;
+ ( *this ) = rhs;
+}
+
+KCModuleInfo &KCModuleInfo::operator=( const KCModuleInfo &rhs )
+{
+ *d = *(rhs.d);
+ return *this;
+}
+
+bool KCModuleInfo::operator==( const KCModuleInfo & rhs ) const
+{
+ return ( ( d->name == rhs.d->name ) && ( d->lib == rhs.d->lib ) && ( d->fileName == rhs.d->fileName ) );
+}
+
+bool KCModuleInfo::operator!=( const KCModuleInfo & rhs ) const
+{
+ return ! operator==( rhs );
+}
+
+KCModuleInfo::~KCModuleInfo()
+{
+ delete d;
+}
+
+void KCModuleInfo::Private::loadAll()
+{
+ allLoaded = true;
+
+ std::cout << "KCModuleInfo::Private::loadAll" << std::endl;
+
+// if( !service ) /* We have a bogus service. All get functions will return empty/zero values */
+ return;
+
+ // get the documentation path
+// doc = service->property( "X-DocPath", QVariant::String ).toString();
+// if (doc.isEmpty())
+// doc = service->property( "DocPath", QVariant::String ).toString();
+
+ // read weight
+// QVariant tmp = service->property( "X-KDE-Weight", QVariant::Int );
+// weight = tmp.isValid() ? tmp.toInt() : 100;
+
+ // factory handle
+// tmp = service->property("X-KDE-FactoryName", QVariant::String);
+// handle = tmp.isValid() ? tmp.toString() : lib;
+
+}
+
+QString KCModuleInfo::fileName() const
+{
+ return d->fileName;
+}
+
+QStringList KCModuleInfo::keywords() const
+{
+ return d->keywords;
+}
+
+QString KCModuleInfo::moduleName() const
+{
+ return d->name;
+}
+
+//KService::Ptr KCModuleInfo::service() const
+//{
+// return d->service;
+//}
+
+QString KCModuleInfo::comment() const
+{
+ return d->comment;
+}
+
+QString KCModuleInfo::icon() const
+{
+ return d->icon;
+}
+
+QString KCModuleInfo::library() const
+{
+ return d->lib;
+}
+
+QString KCModuleInfo::docPath() const
+{
+ if (!d->allLoaded)
+ d->loadAll();
+
+ return d->doc;
+}
+
+QString KCModuleInfo::handle() const
+{
+ if (!d->allLoaded)
+ d->loadAll();
+
+ return d->handle;
+}
+
+int KCModuleInfo::weight() const
+{
+ if (!d->allLoaded)
+ d->loadAll();
+
+ return d->weight;
+}
+
+// vim: ts=2 sw=2 et
Added: branches/SuSE-Code-11-SP1-Branch/control-center/src/kcmoduleinfo.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/contr…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/control-center/src/kcmoduleinfo.h (added)
+++ branches/SuSE-Code-11-SP1-Branch/control-center/src/kcmoduleinfo.h Mon May 23 15:58:18 2011
@@ -0,0 +1,166 @@
+/*
+ Copyright (c) 1999 Matthias Hoelzer-Kluepfel <hoelzer(a)kde.org>
+ Copyright (c) 2000 Matthias Elter <elter(a)kde.org>
+ Copyright (c) 2003 Daniel Molkentin <molkentin(a)kde.org>
+ Copyright (c) 2003,2006 Matthias Kretz <kretz(a)kde.org>
+
+ This file is part of the KDE project
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public
+ License version 2, as published by the Free Software Foundation.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public License
+ along with this library; see the file COPYING.LIB. If not, write to
+ the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ Boston, MA 02110-1301, USA.
+*/
+
+#ifndef KCMODULEINFO_H
+#define KCMODULEINFO_H
+
+//#include <kutils_export.h>
+//#include <kservice.h>
+
+#include <QString>
+#include <QStringList>
+
+class QString;
+class QStringList;
+
+/**
+ * A class that provides information about a KCModule
+ *
+ * KCModuleInfo provides various technical information, such as icon, library
+ * etc. about a KCModule.n
+ * @note Any values set with the set* functions is not
+ * written back with KCModuleInfo it only reads value from the desktop file.
+ *
+ * @internal
+ * @author Matthias Hoelzer-Kluepfel <mhk(a)kde.org>
+ * @author Matthias Elter <elter(a)kde.org>
+ * @author Daniel Molkentin <molkentin(a)kde.org>
+ *
+ */
+class KCModuleInfo // krazy:exclude=dpointer (implicitly shared)
+{
+
+public:
+
+ /**
+ * Constructs a KCModuleInfo.
+ * @note a KCModuleInfo object will have to be manually deleted, it is not
+ * done automatically for you.
+ * @param desktopFile the desktop file representing the module, or
+ * the name of the module.
+ */
+ KCModuleInfo(const QString& desktopFile);
+
+ /**
+ * Same as above but takes a KService::Ptr as argument.
+ *
+ * @note @p moduleInfo must be a valid pointer.
+ *
+ * @param moduleInfo specifies the module
+ */
+// KCModuleInfo( KService::Ptr moduleInfo );
+
+
+ /**
+ * Same as above but takes a KCModuleInfo as argument.
+ *
+ * @param rhs specifies the module
+ */
+ KCModuleInfo( const KCModuleInfo &rhs );
+
+ /**
+ * Same as above but creates an empty KCModuleInfo.
+ * You should not normally call this.
+ */
+ KCModuleInfo();
+
+ /**
+ * Assignment operator
+ */
+ KCModuleInfo &operator=( const KCModuleInfo &rhs );
+
+ /**
+ * Returns true if @p rhs describes the same KCModule as this object.
+ */
+ bool operator==( const KCModuleInfo &rhs ) const;
+
+ /**
+ * @return true if @p rhs is not equal itself
+ */
+ bool operator!=( const KCModuleInfo &rhs ) const;
+
+ /**
+ * Default destructor.
+ */
+ ~KCModuleInfo();
+
+ /**
+ * @return the filename of the .desktop file that describes the KCM
+ */
+ QString fileName() const;
+
+ /**
+ * @return the keywords associated with this KCM.
+ */
+ QStringList keywords() const;
+
+ /**
+ * @return the module\'s (translated) name
+ */
+ QString moduleName() const;
+
+ /**
+ * @return a KSharedPtr to KService created from the modules .desktop file
+ */
+// KService::Ptr service() const;
+
+ /**
+ * @return the module's (translated) comment field
+ */
+ QString comment() const;
+
+ /**
+ * @return the module's icon name
+ */
+ QString icon() const;
+
+ /**
+ * @return the path of the module's documentation
+ */
+ QString docPath() const;
+
+ /**
+ * @return the library name
+ */
+ QString library() const;
+
+ /**
+ * @return a handle (the contents of the X-KDE-FactoryName field if it exists,
+ * else the same as the library name)
+ */
+ QString handle() const;
+
+ /**
+ * @return the weight of the module which determines the order of the pages in
+ * the KCMultiDialog. It's set by the X-KDE-Weight field.
+ */
+ int weight() const;
+
+private:
+ class Private;
+ Private * d;
+};
+
+#endif // KCMODULEINFO_H
+
+// vim: ts=2 sw=2 et
Added: branches/SuSE-Code-11-SP1-Branch/control-center/src/kcmodulemodel.cpp
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/contr…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/control-center/src/kcmodulemodel.cpp (added)
+++ branches/SuSE-Code-11-SP1-Branch/control-center/src/kcmodulemodel.cpp Mon May 23 15:58:18 2011
@@ -0,0 +1,245 @@
+/* This file is part of the KDE project
+ Copyright 2007 Will Stephenson <wstephenson(a)kde.org>
+
+ This program is free software; you can redistribute it and/or
+ modify it under the terms of the GNU General Public License as
+ published by the Free Software Foundation; either version 2 of
+ the License or (at your option) version 3 or any later version
+ accepted by the membership of KDE e.V. (or its successor approved
+ by the membership of KDE e.V.), which shall act as a proxy
+ defined in Section 14 of version 3 of the license.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#include "kcmodulemodel.h"
+
+#include <QHash>
+#include <QList>
+#include <QStringList>
+
+#include "kcategorizedsortfilterproxymodel.h"
+#include "menuitem.h"
+#include <iostream>
+
+
+Q_DECLARE_METATYPE(MenuItem *)
+
+SystemSettingsProxyModel::SystemSettingsProxyModel( QObject * parent )
+ : KCategorizedSortFilterProxyModel( parent )
+{
+
+}
+
+SystemSettingsProxyModel::~SystemSettingsProxyModel()
+{}
+
+bool SystemSettingsProxyModel::subSortLessThan(const QModelIndex &left, const QModelIndex &right) const
+{
+ QVariant leftWeight = left.data( KCModuleModel::WeightRole );
+ QVariant rightWeight = right.data( KCModuleModel::WeightRole );
+
+ if ( !( leftWeight.isValid() && rightWeight.isValid() ) ) {
+ return KCategorizedSortFilterProxyModel::subSortLessThan( left, right );
+ } else {
+ if ( leftWeight.toInt() == rightWeight.toInt() ) {
+ return left.data().toString() < right.data().toString();
+ } else {
+ return leftWeight.toInt() < rightWeight.toInt();
+ }
+ }
+}
+
+
+bool SystemSettingsProxyModel::filterAcceptsRow( int source_row, const QModelIndex & source_parent ) const
+{
+
+std::cout << "SystemSettingsProxyModel::filterAcceptsRow" << std::endl;
+
+ QModelIndex index = sourceModel()->index( source_row, 0, source_parent );
+ MenuItem * mItem = index.data( Qt::UserRole ).value<MenuItem*>();
+ // accept only systemsettings categories that have children
+// if ( mItem->children.isEmpty() && mItem->service->serviceTypes().contains("SystemSettingsCategory" ) ) {
+// return false;
+// } else {
+ return KCategorizedSortFilterProxyModel::filterAcceptsRow( source_row, source_parent );
+// }
+}
+
+/*int weightOfService( const KService::Ptr service )
+{
+ QVariant tmp = service->property( "X-KDE-Weight", QVariant::Int );
+ int weight = tmp.isValid() ? tmp.toInt() : 100;
+ return weight;
+}
+*/
+class KCModuleModelPrivate {
+public:
+ KCModuleModelPrivate(){
+ }
+
+ MenuItem * rootItem;
+};
+
+const int KCModuleModel::UserFilterRole = 0x015D1AE6;
+const int KCModuleModel::WeightRole = 0x03A8CC00;
+
+KCModuleModel::KCModuleModel( MenuItem * menuRoot, QObject * parent )
+ : QAbstractItemModel( parent ), d( new KCModuleModelPrivate )
+{
+ d->rootItem = menuRoot;
+}
+
+KCModuleModel::~KCModuleModel()
+{
+}
+
+int KCModuleModel::rowCount( const QModelIndex & index ) const
+{
+ int count = 0;
+ MenuItem * mi;
+ if ( index.isValid() ) {
+ mi = static_cast<MenuItem *>( index.internalPointer() );
+ } else {
+ mi = d->rootItem;
+ }
+ if ( mi ) {
+ foreach ( MenuItem * i, mi->children ) {
+ count += i->children.count();
+ }
+ }
+ return count;
+}
+
+int KCModuleModel::columnCount( const QModelIndex & /*index*/ ) const
+{
+ return 2; // name and comment
+}
+
+QModelIndex KCModuleModel::index( int row, int column, const QModelIndex & parent ) const
+{
+ if ( !hasIndex( row, column, parent ) ) {
+ return QModelIndex();
+ }
+ MenuItem * parentItem;
+ if ( !parent.isValid() ) {
+ parentItem = d->rootItem;
+ } else {
+ parentItem = static_cast<MenuItem*>( parent.internalPointer() );
+ }
+ MenuItem * foundItem = parentItem->grandChildAt( row );
+ if ( foundItem ) {
+ QModelIndex index = createIndex( row, column, (void*)foundItem );
+ return index;
+ }
+ return QModelIndex();
+}
+
+
+QModelIndex KCModuleModel::parent( const QModelIndex & index ) const
+{
+ if ( !index.isValid() ) {
+ return QModelIndex();
+ }
+
+ MenuItem * parentItem = static_cast<MenuItem*>( index.internalPointer() )->parent;
+ if ( parentItem == d->rootItem ) {
+ return QModelIndex();
+ } else {
+ return createIndex( parentItem->parent->children.indexOf( parentItem ), 0, parentItem );
+ }
+}
+
+QVariant KCModuleModel::data(const QModelIndex &index, int role) const
+{
+
+ std::cout << "KCModuleModel::data" << std::endl;
+
+///TG//////////
+
+ return(QString("data"));
+
+///TG//////////
+
+/*
+
+
+ MenuItem * mi = 0;
+ QVariant theData;
+ if ( !index.isValid() ) {
+ return QVariant();
+ }
+ mi = static_cast<MenuItem *>( index.internalPointer() );
+ QStringList searchKeyWords;
+ switch ( role ) {
+ case Qt::DisplayRole:
+ switch ( index.column() ) {
+ case 0:
+ theData.setValue( mi->service->name());
+
+ break;
+ case 1:
+ // theData.setValue( mi->service->comment());
+ break;
+ default:
+ break;
+ }
+ break;
+ case Qt::DecorationRole:
+ if ( index.column() == 0 )
+ // theData = QVariant( KIcon( mi->service->icon() ) );
+ break;
+ case KCategorizedSortFilterProxyModel::CategorySortRole:
+ if ( mi->parent )
+// theData.setValue( QString("%1%2").arg( QString::number( weightOfService( mi->parent->service) ), 5, '0' ).arg( mi->parent->service->name() ) );
+ break;
+ case KCategorizedSortFilterProxyModel::CategoryDisplayRole:
+ if ( mi->parent )
+// theData.setValue( mi->parent->service->name());
+ break;
+ case Qt::UserRole:
+ theData.setValue( mi );
+ break;
+ case UserFilterRole:
+ foreach ( MenuItem * child, mi->children ) {
+// searchKeyWords << child->item.keywords() << child->service->name();
+ }
+// searchKeyWords << mi->item.keywords() << mi->service->name();
+// theData.setValue( searchKeyWords.join( QString() ) );
+ break;
+ case WeightRole:
+// theData.setValue( weightOfService( mi->service ) );
+ break;
+ default:
+ break;
+ }
+
+ theData.setValue(QString("Test"));
+
+ return theData;
+
+*/
+
+
+}
+
+Qt::ItemFlags KCModuleModel::flags(const QModelIndex &index) const
+{
+ if (!index.isValid())
+ return 0;
+
+ return Qt::ItemIsEnabled | Qt::ItemIsSelectable;
+}
+
+QVariant KCModuleModel::headerData(int section, Qt::Orientation orientation, int role ) const
+{
+ return QAbstractItemModel::headerData( section, orientation, role );
+}
+
+#include "kcmodulemodel.moc"
Added: branches/SuSE-Code-11-SP1-Branch/control-center/src/kcmodulemodel.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/contr…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/control-center/src/kcmodulemodel.h (added)
+++ branches/SuSE-Code-11-SP1-Branch/control-center/src/kcmodulemodel.h Mon May 23 15:58:18 2011
@@ -0,0 +1,66 @@
+/* This file is part of the KDE project
+ Copyright 2007 Will Stephenson <wstephenson(a)kde.org>
+
+ This program is free software; you can redistribute it and/or
+ modify it under the terms of the GNU General Public License as
+ published by the Free Software Foundation; either version 2 of
+ the License or (at your option) version 3 or any later version
+ accepted by the membership of KDE e.V. (or its successor approved
+ by the membership of KDE e.V.), which shall act as a proxy
+ defined in Section 14 of version 3 of the license.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+#ifndef KCMODULEMODEL_H
+#define KCMODULEMODEL_H
+
+#include <QAbstractItemModel>
+#include "kcategorizedsortfilterproxymodel.h"
+
+class MenuItem;
+class KCModuleModelPrivate;
+
+class SystemSettingsProxyModel : public KCategorizedSortFilterProxyModel
+{
+public:
+ SystemSettingsProxyModel(QObject *parent = 0);
+ virtual ~SystemSettingsProxyModel();
+ virtual bool subSortLessThan(const QModelIndex &left, const QModelIndex &right) const;
+ virtual bool filterAcceptsRow( int source_column, const QModelIndex & source_parent ) const;
+};
+
+class KCModuleModel : public QAbstractItemModel
+{
+Q_OBJECT
+public:
+ static const int UserFilterRole, WeightRole;
+ KCModuleModel( MenuItem * menuRoot, QObject * parent = 0 );
+ ~KCModuleModel();
+ // setup method
+ // QAbstractItemModel reimplementations
+ QModelIndex index( int row, int column, const QModelIndex & parent = QModelIndex() ) const;
+ QModelIndex parent( const QModelIndex & index ) const;
+ int rowCount( const QModelIndex & index ) const;
+ int columnCount( const QModelIndex & index ) const;
+
+ QVariant data(const QModelIndex &index, int role) const;
+
+ Qt::ItemFlags flags(const QModelIndex &index) const;
+ QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const;
+private:
+ KCModuleModelPrivate * d;
+};
+
+class KCModuleSortFilterProxyModel : public KCategorizedSortFilterProxyModel
+{
+public:
+protected:
+};
+
+#endif
Added: branches/SuSE-Code-11-SP1-Branch/control-center/src/kicongrouppage.cpp
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/contr…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/control-center/src/kicongrouppage.cpp (added)
+++ branches/SuSE-Code-11-SP1-Branch/control-center/src/kicongrouppage.cpp Mon May 23 15:58:18 2011
@@ -0,0 +1,136 @@
+/*
+ kicongrouppage.cpp
+
+ Copyright (c) 2007 Michael D. Stemle, Jr. <manchicken(a)notsosoft.net>
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public
+ License as published by the Free Software Foundation; either
+ version 2 of the License, or (at your option) any later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public License
+ along with this library; see the file COPYING.LIB. If not, write to
+ the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ Boston, MA 02110-1301, USA.
+
+*/
+
+#include <QtAlgorithms>
+#include <QStyle>
+#include <iostream>
+
+
+#include "kicongrouppage.h"
+
+/*********** KIconGroupPage **************/
+KIconGroupPage::KIconGroupPage(QWidget* parent) : QFrame(parent) {
+ render();
+}
+
+KIconGroupPage::~KIconGroupPage() {
+ // Delete the rows...
+ qDeleteAll(m_rows.values().begin(), m_rows.values().end());
+ m_rows.clear();
+}
+
+const KIconGroupRow* KIconGroupPage::appendGroup(QString name) {
+ KIconGroupRow* group = new KIconGroupRow(name, parentWidget());
+
+ m_rows.insert(name, group);
+
+ render();
+
+ return group;
+}
+
+const KIconGroupItem* KIconGroupPage::appendIconToGroup(const QString& group,
+ const QIcon& icon,
+ const QString& label) {
+ if (!m_rows.contains(group)) {
+ appendGroup(group);
+ }
+
+ return m_rows[group]->appendIcon(icon, label);
+}
+
+void KIconGroupPage::render() {
+ m_layout = new QBoxLayout(QBoxLayout::TopToBottom, parentWidget());
+}
+
+
+/*********** KIconGroupRow **************/
+KIconGroupRow::KIconGroupRow(QWidget* parent) : QBoxLayout(QBoxLayout::LeftToRight, parent) {
+ render();
+}
+
+KIconGroupRow::KIconGroupRow(QString& name, QWidget* parent) : QBoxLayout(QBoxLayout::LeftToRight, parent) {
+ setGroupName(name);
+ render();
+}
+
+KIconGroupRow::~KIconGroupRow() {
+ // Let's delete our icons
+ qDeleteAll(m_icons.begin(), m_icons.end());
+ m_icons.clear();
+}
+
+const KIconGroupItem* KIconGroupRow::appendIcon( const QIcon& icon, const QString& label ) {
+ KIconGroupItem* item = new KIconGroupItem(parentWidget(),icon,label);
+ item->setParent(parentWidget());
+
+ m_icons.append(item);
+
+ return item;
+}
+
+void KIconGroupRow::render() {
+}
+
+
+/*********** KIconGroupItem **************/
+KIconGroupItem::KIconGroupItem(QWidget* parent,
+ const QIcon& icon,
+ const QString& label) : QLabel(parent) {
+ m_parent = parent;
+ m_icon = icon;
+ m_text = label; // Lets keep our own copy...
+
+ render();
+}
+
+void KIconGroupItem::render() {
+ QStyle *stl = 0;
+
+ // If there's no parent, we've got no style, can't draw an icon.
+ if (!m_parent) {
+ return;
+ }
+
+ setPixmap(static_cast<const QPixmap&>(m_icon.pixmap(m_parent->style()->pixelMetric(QStyle::PM_IconViewIconSize))));
+ setText(m_text);
+}
+
+void KIconGroupItem::setParent(QWidget* parent) {
+ m_parent = parent;
+
+ render();
+}
+
+void KIconGroupItem::setIcon(const QIcon& icon) {
+ m_icon = icon;
+
+ render();
+}
+
+void KIconGroupItem::setLabel(const QString& label) {
+ m_text = label;
+
+ render();
+}
+
+#include "kicongrouppage.moc"
Added: branches/SuSE-Code-11-SP1-Branch/control-center/src/kicongrouppage.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/contr…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/control-center/src/kicongrouppage.h (added)
+++ branches/SuSE-Code-11-SP1-Branch/control-center/src/kicongrouppage.h Mon May 23 15:58:18 2011
@@ -0,0 +1,258 @@
+/*
+ kicongrouppage.h
+
+ Copyright (c) 2007 Michael D. Stemle, Jr. <manchicken(a)notsosoft.net>
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public
+ License as published by the Free Software Foundation; either
+ version 2 of the License, or (at your option) any later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public License
+ along with this library; see the file COPYING.LIB. If not, write to
+ the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ Boston, MA 02110-1301, USA.
+
+*/
+
+#ifndef KICONGROUPPAGE_H
+
+#define KICONGROUPPAGE_H
+
+#include <QObject>
+#include <QList>
+#include <QMap>
+#include <QBoxLayout>
+#include <QIcon>
+#include <QLabel>
+#include <kicon.h>
+
+class KIconGroupPage;
+class KIconGroupRow;
+class KIconGroupItem;
+
+/* DESIGN
+ VBox contains two rows: title and HBOX (maybe a third for a line?
+ HBOX contains columns of VBOXes
+ Those VBoxes contain two rows: icon and title
+
+ +---------------Box-----------------+
+ | |
+ | +-------------Box---------------+ |
+ | | | |
+ | | +-----------Box-------------+ | |
+ | | | | | |
+ | | | +--QLabel--+ +--QLabel--+ | | |
+ | | | | | | | | | |
+ | | | | ICON | | ICON | | | |
+ | | | | LABEL | | LABEL | | | |
+ | | | | | | | | | |
+ | | | +----------+ +----------+ | | |
+ | | | | | |
+ | | +---------------------------+ | |
+ | | | |
+ | +-------------------------------+ |
+ | |
+ +-----------------------------------+
+
+
+ */
+
+
+/**
+ * A page of group icons
+ **/
+class KIconGroupPage : public QFrame {
+ Q_OBJECT;
+
+ /**
+ * Property for the page name
+ **/
+ Q_PROPERTY(QString m_pageName READ pageName WRITE setPageName);
+
+ public:
+
+ /**
+ * Constructor for KIconGroupPage
+ *
+ * @param parent The parent widget for the page..
+ **/
+ explicit KIconGroupPage(QWidget* parent = 0);
+
+ ~KIconGroupPage();
+
+ /**
+ * Append a group to the page
+ *
+ * @param title The title of the group
+ * @returns A constant pointer to the group that was added.
+ **/
+ void appendGroup(QString name);
+
+ /**
+ * Append an icon to a group
+ *
+ * @param group The group name to append the icon to
+ * @param icon The icon to use
+ * @param label The label to use with the icon
+ * @returns A constant pointer to the item that was added.
+ **/
+ const KIconGroupItem* appendIconToGroup(const QString& name,
+ const QIcon& icon,
+ const QString& label);
+
+ /**
+ * Set the page name
+ *
+ * @param name The name to assign.
+ **/
+ void setPageName(QString name) { m_pageName = name; };
+
+ /**
+ * Get the page name
+ *
+ * @return Returns the page name
+ **/
+ QString pageName() const { return m_pageName; };
+
+ private:
+ void render();
+
+ // Internal values
+ QString m_pageName;
+ QMap<QString, KIconGroupRow*> m_rows;
+ QBoxLayout* m_layout;
+};
+
+
+/**
+ * The row of icon groups
+ **/
+class KIconGroupRow : public QBoxLayout {
+ Q_OBJECT;
+
+ /**
+ * Property for the icon group name
+ **/
+ Q_PROPERTY(QString m_groupName READ groupName WRITE setGroupName);
+
+ public:
+
+ /**
+ * Constructor for KIconGroupRow
+ *
+ * @param parent The parent to stick the KIconGroupRow widget into.
+ **/
+ explicit KIconGroupRow(QWidget* parent = 0);
+
+ /**
+ * Constructor for KIconGroupRow
+ *
+ * @param parent The parent to stick the KIconGroupRow widget into.
+ * @param name The name for the icon group row.
+ **/
+ explicit KIconGroupRow(QString& name, QWidget* parent = 0);
+
+ /**
+ * Deconstructor
+ **/
+ ~KIconGroupRow();
+
+ /**
+ * Append an icon
+ *
+ * @param icon The icon to add
+ * @param label The label to add
+ * @returns A constant pointer to the item that was just added.
+ **/
+ const KIconGroupItem* appendIcon( const QIcon& icon, const QString& label );
+
+ /**
+ * Set the group name
+ *
+ * @param name The name to assign
+ **/
+ void setGroupName(QString name) { m_groupName = name; };
+
+ /**
+ * Get the group name
+ *
+ * @return The group name.
+ **/
+ QString groupName() const { return m_groupName; };
+
+ private:
+ void render();
+
+ QString m_groupName;
+ QList<KIconGroupItem*> m_icons;
+};
+
+
+/**
+ * KIconGroupItem
+ *
+ * @notes This is the low-level icon class for the icon groups.
+ **/
+class KIconGroupItem : public QLabel {
+ Q_OBJECT;
+
+ public:
+
+ /**
+ * A single icon in the group.
+ * @param parent The parent widget
+ * @param icon The icon to display
+ * @param label The label to display for the icon.
+ **/
+ explicit KIconGroupItem(QWidget* parent, const QIcon& icon, const QString& label);
+
+ /**
+ * Set the parent widget
+ *
+ * @param parent The parent widget to set
+ **/
+ void setParent(QWidget* parent);
+
+ /**
+ * Set the icon
+ *
+ * @param icon The icon to add to the group item
+ **/
+ void setIcon(const QIcon& icon);
+
+ /**
+ * Get the icon
+ *
+ * @return Returns the currently set icon object
+ **/
+ const QIcon& icon() { return m_icon; };
+
+ /**
+ * Set the label
+ *
+ * @param label The label to set
+ **/
+ void setLabel(const QString& label);
+
+ /**
+ * Fetch the label
+ **/
+ const QString& label() { return m_text; };
+
+ protected:
+ void render();
+
+ private:
+ Q_DISABLE_COPY(KIconGroupItem);
+ QWidget* m_parent;
+ QIcon m_icon;
+ QString m_text;
+};
+
+#endif // KICONGROUPPAGE_H
Added: branches/SuSE-Code-11-SP1-Branch/control-center/src/listview.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/contr…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/control-center/src/listview.h (added)
+++ branches/SuSE-Code-11-SP1-Branch/control-center/src/listview.h Mon May 23 15:58:18 2011
@@ -0,0 +1,13 @@
+#include <QtGui>
+
+class ListView : public QListView
+{
+public:
+ ListView() : QListView() { mySize = QSize(42,42); }
+
+ QSize sizeHint() const { return mySize; }
+ void setSizeHint( QSize s ) { mySize = s; }
+
+private:
+ QSize mySize;
+};
Modified: branches/SuSE-Code-11-SP1-Branch/control-center/src/main.cpp
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/contr…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/control-center/src/main.cpp (original)
+++ branches/SuSE-Code-11-SP1-Branch/control-center/src/main.cpp Mon May 23 15:58:18 2011
@@ -1,30 +1,7 @@
-/***************************************************************************
- main.cpp - description
- -------------------
- begin : Mit Okt 18 14:21:09 CEST 2000
- copyright : (C) 2000 by SuSE GmbH
- author : lnussel(a)suse.de
- ***************************************************************************/
-
-/*
- Textdomain "control-center"
-*/
-
-#include <qapplication.h>
-#include <qtimer.h>
-#include <qfont.h>
-#include <qstring.h>
-
-#include <unistd.h>
-
-// for MAXHOSTNAMELEN
-#include <rpc/types.h>
-
-// exit
-#include <stdlib.h>
-
-// strcmp
-#include <string.h>
+#include <QApplication>
+#include <QDesktopWidget>
+#include <QRect>
+#include <QTimer>
#include <iostream>
@@ -32,13 +9,8 @@
using std::cerr;
using std::endl;
-#include "myintl.h"
-#include "y2controlcenter.h"
-#include "y2cc_config.h"
-
-
-//global class with config options
-Config config;
+#include "main_window.h"
+#include "i18n.h"
void printhelpandexit()
{
@@ -48,21 +20,19 @@
<< "\nOPTIONS:"
<< "\n"
<< "\n --help -h this message"
- << "\n --root -r also show \"root only\" modules"
<< "\n --fullscreen use full screen"
<< "\n --noborder no window manager border for main window"
<< endl;
exit (0);
}
-int main( int argc, char *argv[] )
+int main(int argc, char **argv)
{
- // cerr << time(0) << " main()" << endl;
- config.textdomain = "control-center";
-
- set_textdomain (config.textdomain);
+ QApplication app(argc, argv);
+ set_textdomain("control-center");
- QApplication app( argc, argv );
+ bool fullscreen = false;
+ bool noborder = false;
for ( int i=0 ;i < argc ;i++ )
{
@@ -73,51 +43,35 @@
if ( opt.startsWith( "--" ) )
opt.remove(0, 1);
- if ( opt == "-h" || opt == "-help" ) printhelpandexit();
- else if ( opt == "-r" || opt == "-root" ) config.isroot = true;
-
- else if ( opt == "-fullscreen" ) config.fullscreen = true;
- else if ( opt == "-noborder" ) config.noBorder = true;
+ if ( opt == "-h" || opt == "-help" )
+ printhelpandexit();
+ else if ( opt == "-fullscreen" )
+ fullscreen = true;
+ else if ( opt == "-noborder" )
+ noborder = true;
}
+
+ Qt::WFlags wflags = Qt::Window;
- // cout << (config.isroot.value()==true?"true":"false") << endl;
-
- Qt::WFlags wflags = Qt::WType_TopLevel;
+ if ( noborder )
+ wflags |= Qt::FramelessWindowHint;
- if ( config.noBorder )
- wflags |= Qt::WStyle_Customize | Qt::WStyle_NoBorder;
+ MainWindow mainWin ( wflags );
- Y2ControlCenter y2cc( wflags );
+ mainWin.setFullScreen ( fullscreen );
+ mainWin.setNoBorder( noborder );
- if ( config.fullscreen )
+ if ( fullscreen )
{
QRect available = app.desktop()->availableGeometry();
- y2cc.resize( available.width(), available.height() );
- y2cc.move( available.topLeft() );
+ mainWin.resize( available.width(), available.height() );
+ mainWin.move( available.topLeft() );
}
- else
- y2cc.resize( 680, 420 );
- app.setMainWidget( &y2cc );
-
-
- QString title = _("YaST2 Control Center");
- char hostname[ MAXHOSTNAMELEN+1 ];
- if ( gethostname( hostname, sizeof( hostname )-1 ) == 0 )
- {
- hostname[ sizeof( hostname ) -1 ] = '\0'; // make sure it's terminated
-
- if ( strlen( hostname ) > 0 && strcmp( hostname, "(none)" ) != 0 )
- {
- title += " @ ";
- title += hostname;
- }
- }
- y2cc.setCaption( title );
- y2cc.show();
-
- QTimer::singleShot( 0, &y2cc, SLOT( configure() ) );
+ mainWin.show();
+ QTimer::singleShot(60, &mainWin, SLOT( initialMsg() ));
+
return app.exec();
-}
+}
Added: branches/SuSE-Code-11-SP1-Branch/control-center/src/main_window.cpp
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/contr…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/control-center/src/main_window.cpp (added)
+++ branches/SuSE-Code-11-SP1-Branch/control-center/src/main_window.cpp Mon May 23 15:58:18 2011
@@ -0,0 +1,420 @@
+/*---------------------------------------------------------------------\
+| |
+| __ __ _____ _____ |
+| \ \ / / / ___|_ _| |
+| \ V /__ _\ `--. | | |
+| \ // _` |`--. \ | | |
+| | | (_| /\__/ / | | |
+| \_/\__,_\____/ \_/ |
+| |
+\---------------------------------------------------------------------*/
+
+#include "main_window.h"
+#include "i18n.h"
+
+#include <unistd.h>
+#include <rpc/types.h>
+#include <stdlib.h>
+#include <time.h>
+
+#include <QApplication>
+#include <QLayout>
+#include <QLabel>
+#include <QToolBar>
+#include <QLineEdit>
+#include <QDockWidget>
+#include <QListView>
+#include <QDebug>
+#include <QQueue>
+#include <QSettings>
+#include <QStatusBar>
+#include <QTimer>
+#include <QMessageBox>
+
+#include "kcategorizedsortfilterproxymodel.h"
+#include "kcategorizedview.h"
+#include "kcategorydrawer.h"
+#include "yqmodulesproxymodel.h"
+
+#include "yqmodulesmodel.h"
+#include "yqmodulegroupsmodel.h"
+#include "listview.h"
+
+//#include "moduleiconitem.h"
+#define ORG_NAME "YaST2"
+#define APP_NAME "y2controlcenter-qt"
+#define USED_QUEUE_SIZE 5
+
+#define GROUPSIZE QSize(200,350)
+
+
+/*
+ Textdomain "control-center"
+*/
+
+class MainWindow::Private
+{
+public:
+ Private()
+ : modmodel(0L)
+ , groupview(0L)
+ , modview(0L)
+ , kcsfpm(0L)
+ , gcsfpm(0L)
+ , lastCallTime(0)
+ , minwait(5)
+ {
+ }
+ ~Private()
+ {
+ }
+
+ YQModulesModel *modmodel;
+ ListView *groupview;
+ KCategorizedView * modview;
+ // category proxy model
+ KCategorizedSortFilterProxyModel * kcsfpm;
+ QSortFilterProxyModel *gcsfpm;
+
+ QLineEdit *searchField;
+
+ QQueue <QString> recentlyUsed;
+
+ QModelIndex lastCalledIndex;
+ time_t lastCallTime;
+ time_t minwait;
+
+ bool noBorder;
+ bool fullScreen;
+
+};
+
+MainWindow::MainWindow( Qt::WindowFlags wflags )
+ : QMainWindow( 0, wflags )
+ , d(new Private)
+{
+ qDebug();
+
+ // Central widget
+ QWidget *centralWidget = new QWidget(this);
+ setCentralWidget(centralWidget);
+ QHBoxLayout *layout = new QHBoxLayout;
+ centralWidget->setLayout(layout);
+
+ // setup central widget
+ d->modview = new KCategorizedView( this );
+ KCategoryDrawer * drawer = new KCategoryDrawer;
+
+ layout->addWidget(d->modview);
+
+ d->modview->setSelectionMode(QAbstractItemView::SingleSelection);
+// tv->setSpacing(KDialog::spacingHint());
+ d->modview->setCategoryDrawer( drawer );
+ d->modview->setViewMode( QListView::IconMode );
+ d->modview->setItemDelegate( new ModuleIconItemDelegate( this , d->modview->style() ) );
+ d->modview->setMouseTracking( true );
+ d->modview->viewport()->setAttribute( Qt::WA_Hover );
+
+ // init the models
+ d->modmodel = new YQModulesModel(this);
+ d->kcsfpm = new YQModulesProxyModel( this );
+ d->kcsfpm->setCategorizedModel( true );
+ d->kcsfpm->setSourceModel( d->modmodel) ;
+
+ //kcsfpm->setFilterRole( KCModuleModel::UserFilterRole );
+ //kcsfpm->setFilterCaseSensitivity( Qt::CaseInsensitive );
+ d->kcsfpm->sort( 0 );
+ d->modview->setModel( d->kcsfpm );
+
+ // Setup Dock Widget with groups and search field
+ QDockWidget *groupdock = new QDockWidget(this);
+ groupdock->setFeatures(QDockWidget::DockWidgetMovable | QDockWidget::DockWidgetFloatable);
+ QWidget *leftPanel = new QWidget( this );
+ QVBoxLayout *leftPanelLayout = new QVBoxLayout( leftPanel );
+
+ QHBoxLayout *searchLayout = new QHBoxLayout();
+ QLabel *searchLabel = new QLabel();
+ d->searchField = new QLineEdit();
+ searchLabel->setText( _("&Search") );
+ searchLabel->setBuddy( d->searchField );
+ searchLayout->addWidget(searchLabel);
+ searchLayout->addWidget(d->searchField);
+
+ leftPanelLayout->addLayout( searchLayout );
+
+ d->gcsfpm = new QSortFilterProxyModel( this );
+ d->gcsfpm->setSourceModel( d->modmodel->groupsModel() );
+ d->gcsfpm->setFilterKeyColumn( 2 );
+ d->gcsfpm->setFilterRole( Qt::UserRole );
+
+ d->groupview = new ListView( );
+
+ d->groupview->setModel(d->gcsfpm);
+ d->groupview->setIconSize( QSize(32,32) );
+ d->groupview->setSizeHint( readGroupViewSize() );
+
+ //now pre-select something
+ d->groupview->setSelectionMode( QAbstractItemView::SingleSelection );
+ QModelIndex selection = d->groupview->model()->index(0,0);
+ d->groupview->setCurrentIndex( selection );
+ d->modview->selectCategory( d->modmodel->groupsModel()->data(selection).toString() );
+
+ leftPanelLayout->addWidget( d->groupview );
+
+ groupdock->setWidget( leftPanel );
+
+ addDockWidget(Qt::LeftDockWidgetArea, groupdock);
+
+ readSettings();
+
+ initActions();
+ addAction( shutdown );
+ addAction( saveLogs );
+ //d->modview->addAction( addToF );
+ //d->modview->setContextMenuPolicy( Qt::ActionsContextMenu );
+
+ logSaver = new YQSaveLogs();
+
+ setWinTitle();
+ statusBar()->showMessage( _("Ready") );
+
+ connect( d->groupview, SIGNAL( pressed( const QModelIndex & ) ),
+ SLOT( slotGroupPressed( const QModelIndex & ) ) );
+
+ connect( d->modview, SIGNAL( leftMouseClick ( const QModelIndex &) ),
+ SLOT( slotLaunchModule( const QModelIndex & ) ) );
+
+ connect( d->modview, SIGNAL( activated( const QModelIndex & ) ),
+ SLOT( slotLaunchModule( const QModelIndex & ) ) );
+
+ connect( d->searchField, SIGNAL( textChanged( const QString &)),
+ SLOT( slotFilterChanged() ));
+
+ connect( shutdown, SIGNAL( activated()), qApp, SLOT( quit()));
+
+ connect( saveLogs, SIGNAL( activated()), logSaver, SLOT( save() ));
+
+ connect( logSaver, SIGNAL( statusMsg( const QString &)), statusBar(),
+ SLOT( showMessage( const QString &) ));
+
+
+// d->groupview->setSizeHint(500,500);
+}
+
+void MainWindow::setFullScreen( bool fs )
+{
+ d->fullScreen = fs;
+}
+
+void MainWindow::setNoBorder( bool nb )
+{
+ d->noBorder = nb ;
+}
+
+void MainWindow::initActions()
+{
+ //addToF = new QAction( "Add to Favourites", this );
+ shutdown = new QAction( this );
+ shutdown->setShortcut( Qt::CTRL + Qt::Key_Q );
+
+ saveLogs = new QAction( this );
+ saveLogs->setShortcut( Qt::SHIFT + Qt::Key_F8);
+}
+
+void MainWindow::slotGroupPressed( const QModelIndex &index )
+{
+ qDebug() << "Group Click";
+ // scroll to the category in the main view
+ QModelIndex modidx = d->modmodel->firstModuleInGroup(index);
+ qDebug() << "Scroll to :" << d->modmodel->groupsModel()->data(index).toString();
+ qDebug() << " 1st item :" << d->modmodel->data(modidx).toString();
+ if ( modidx.isValid() )
+ {
+ d->modview->selectCategory( d->modmodel->groupsModel()->data(index).toString() );
+ d->modview->scrollTo(d->kcsfpm->mapFromSource(modidx));
+ }
+}
+
+void MainWindow::slotModulePressed( const QModelIndex &index )
+{
+ // map the categorized index to the modules model index
+ QModelIndex srcidx = d->kcsfpm->mapToSource(index);
+ if ( ! srcidx.isValid() )
+ return;
+
+ qDebug() << "Module Click:" << d->modmodel->data(srcidx).toString();
+ qDebug() << "-> " << srcidx.row() << " : " << d->modmodel->propertyValue(srcidx, "GenericName").toString();
+}
+
+void MainWindow::slotLaunchModule( const QModelIndex &index)
+{
+ if ( index == d->lastCalledIndex )
+ {
+ time_t now = time( NULL );
+
+ // ignore accidential double clicks
+
+ if ( now >= d->lastCallTime && // make sure we not going backward in time
+ // (system time or time zone changed by
+ // some YaST2 module - see bug #71816)
+ now - d->lastCallTime < d->minwait ) // elapsed time too short?
+ {
+ qDebug() << "Ignoring 2nd click, clicking too fast" ;
+ return; // ignore this click
+ }
+ }
+
+ d->lastCallTime = time( NULL );
+ d->lastCalledIndex = index;
+
+ QModelIndex i1 = d->modmodel->index( d->kcsfpm->mapToSource( index ).row(), YQDesktopFilesModel::Call );
+ QModelIndex i2 = d->modmodel->index( d->kcsfpm->mapToSource( index ).row(), YQDesktopFilesModel::Argument );
+ QModelIndex i3 = d->modmodel->index( d->kcsfpm->mapToSource( index ).row(), YQDesktopFilesModel::Name );
+
+ if ( !i1.isValid() || !i2.isValid())
+ return;
+
+ QString client = d->modmodel->data( i1, Qt::UserRole ).toString();
+ QString argument = d->modmodel->data( i2, Qt::UserRole ).toString();
+ QString name = d->modmodel->data( i3, Qt::UserRole ).toString();
+
+ QString cmd = QString("/sbin/yast2 ");
+ cmd += client;
+
+ if ( d->noBorder )
+ cmd += " --noborder ";
+ if ( d->fullScreen )
+ cmd += " --fullscreen ";
+
+ if (!argument.isEmpty() )
+ {
+ cmd +=" '";
+ cmd += argument;
+ cmd +="'";
+ }
+ cmd += " &";
+
+ //FIXME: use something more intelligent (unique) to remember used modules, names suck
+ d->recentlyUsed.enqueue( name );
+ if( d->recentlyUsed.size() == USED_QUEUE_SIZE )
+ {
+ d->recentlyUsed.dequeue();
+ }
+
+ QApplication::setOverrideCursor(Qt::WaitCursor);
+
+ qDebug() << "Run command: " << cmd.toAscii();
+ //Translators: module name comes here (%1) e.g. HTTP server, Scanner,...
+ QString msg = _("Starting configuration module \"%1\"...").arg( name );
+ statusBar()->showMessage( msg, 2000 );
+
+ system( cmd.toAscii() );
+
+ QTimer::singleShot( 3*1000, this, SLOT( slotRestoreCursor() ) );
+}
+
+void MainWindow::slotFilterChanged()
+{
+ QString stext = d->searchField->text();
+ d->kcsfpm->customFilterFunction( stext );
+
+ QString gr_filter = d->kcsfpm->matchingGroupFilterRegexp();
+ d->gcsfpm->setFilterRegExp ( gr_filter );
+}
+
+void MainWindow::initialMsg()
+{
+ if ( !d->modmodel->isRoot() )
+ QMessageBox::information(this, _("YaST Control Center"),
+ _("YaST Control Center is not running as root.\n"
+ "You will only see modules which do not require root privileges."));
+}
+
+void MainWindow::slotRestoreCursor()
+{
+ QApplication::restoreOverrideCursor();
+}
+
+void MainWindow::readSettings()
+{
+ QSettings settings(ORG_NAME, APP_NAME);
+
+ settings.beginGroup("MainWindow");
+ resize(settings.value("Size", QSize(680,420)).toSize());
+ move(settings.value("Position", QPoint(200,200)).toPoint());
+ settings.endGroup();
+
+ settings.beginGroup("PersonalItems");
+ QString used = settings.value("RecentlyUsed").toString();
+ QStringList used_list = used.split(",", QString::SkipEmptyParts);
+ foreach( QString f, used_list )
+ {
+ d->recentlyUsed.enqueue( f );
+ }
+ settings.endGroup();
+
+}
+
+QSize MainWindow::readGroupViewSize()
+{
+ QSettings settings(ORG_NAME, APP_NAME);
+ QSize size;
+
+ settings.beginGroup("GroupView");
+ size = settings.value("Size", GROUPSIZE).toSize();
+ settings.endGroup();
+
+ return size;
+}
+
+
+void MainWindow::writeSettings()
+{
+ QSettings settings(ORG_NAME, APP_NAME);
+
+ settings.beginGroup("MainWindow");
+ settings.setValue("Size", size());
+ settings.setValue("Position", pos());
+ settings.endGroup();
+
+ settings.beginGroup( "PersonalItems" );
+ QStringList used_list( d->recentlyUsed );
+ settings.setValue( "RecentlyUsed", used_list.join(",") );
+ settings.endGroup();
+
+ settings.beginGroup("GroupView");
+ settings.setValue("Size", d->groupview->size());
+ settings.endGroup();
+
+}
+
+void MainWindow::setWinTitle()
+{
+ QString title = _("YaST Control Center");
+ char hostname[ MAXHOSTNAMELEN+1 ];
+ if ( gethostname( hostname, sizeof( hostname )-1 ) == 0 )
+ {
+ hostname[ sizeof( hostname ) -1 ] = '\0'; // make sure it's terminated
+
+ if ( strlen( hostname ) > 0 && strcmp( hostname, "(none)" ) != 0 )
+ {
+ title += " @ ";
+ title += hostname;
+ }
+ }
+ setWindowTitle( title );
+}
+
+void MainWindow::closeEvent (QCloseEvent *event)
+{
+ writeSettings();
+ event->accept();
+}
+
+MainWindow::~MainWindow()
+{
+ delete d;
+ delete logSaver;
+}
+
+#include "main_window.moc"
Added: branches/SuSE-Code-11-SP1-Branch/control-center/src/main_window.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/contr…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/control-center/src/main_window.h (added)
+++ branches/SuSE-Code-11-SP1-Branch/control-center/src/main_window.h Mon May 23 15:58:18 2011
@@ -0,0 +1,71 @@
+/*---------------------------------------------------------------------\
+| |
+| __ __ _____ _____ |
+| \ \ / / / ___|_ _| |
+| \ V /__ _\ `--. | | |
+| \ // _` |`--. \ | | |
+| | | (_| /\__/ / | | |
+| \_/\__,_\____/ \_/ |
+| |
+\---------------------------------------------------------------------*/
+
+#ifndef MAINWINDOW_H
+#define MAINWINDOW_H
+
+#include "kcategorizedview.h"
+#include "kcategorydrawer.h"
+#include "moduleiconitem.h"
+#include "yqsavelogs.h"
+
+
+#include <QMainWindow>
+#include <QAction>
+#include <QCloseEvent>
+
+/**
+ * Main window of the control center
+ *
+ * @author Thomas Goettlicher <tgoettlicher(a)suse.de>
+ */
+class MainWindow : public QMainWindow
+{
+Q_OBJECT
+
+public:
+ MainWindow( Qt::WindowFlags wflags = Qt::Window );
+ ~MainWindow();
+
+ void setFullScreen( bool fs);
+ void setNoBorder( bool nb );
+
+protected slots:
+ void slotGroupPressed( const QModelIndex &index );
+ void slotModulePressed( const QModelIndex &index );
+ void slotLaunchModule( const QModelIndex &index );
+ void slotFilterChanged();
+ void initialMsg();
+ void slotRestoreCursor();
+
+protected:
+ void initActions();
+ void closeEvent( QCloseEvent *event);
+private:
+ class Private;
+ Private *const d;
+
+ QAction *addToF;
+ QAction *shutdown;
+ QAction *saveLogs;
+
+ YQSaveLogs *logSaver;
+
+ void writeSettings();
+ void readSettings();
+ void setWinTitle();
+ QSize readGroupViewSize();
+
+ QDockWidget *groupdock;
+
+};
+
+#endif
Added: branches/SuSE-Code-11-SP1-Branch/control-center/src/menuitem.cpp
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/contr…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/control-center/src/menuitem.cpp (added)
+++ branches/SuSE-Code-11-SP1-Branch/control-center/src/menuitem.cpp Mon May 23 15:58:18 2011
@@ -0,0 +1,61 @@
+/* This file is part of the KDE project
+ Copyright 2007 Will Stephenson <wstephenson(a)kde.org>
+
+ This program is free software; you can redistribute it and/or
+ modify it under the terms of the GNU General Public License as
+ published by the Free Software Foundation; either version 2 of
+ the License or (at your option) version 3 or any later version
+ accepted by the membership of KDE e.V. (or its successor approved
+ by the membership of KDE e.V.), which shall act as a proxy
+ defined in Section 14 of version 3 of the license.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#include "menuitem.h"
+#include <iostream>
+
+
+MenuItem::MenuItem( bool isMenu, MenuItem * itsParent )
+ : parent( itsParent ),
+ menu( isMenu ),
+ name( QString() ),
+ caption( QString() )
+
+{
+ if ( parent ) {
+ std::cout << "parent->children.append" << std::endl;
+ parent->children.append( this );
+ }
+}
+
+MenuItem::~MenuItem()
+{
+ qDeleteAll( children );
+}
+
+MenuItem * MenuItem::grandChildAt( int index )
+{
+ int count = 0;
+ MenuItem * foundItem = 0;
+ foreach ( MenuItem * child, children ) {
+ foreach ( MenuItem * grandChild, child->children ) {
+ if ( count == index ) {
+ foundItem = grandChild;
+ break;
+ }
+ count++;
+ }
+ if ( foundItem ) {
+ break;
+ }
+ }
+ return foundItem;
+}
+
Added: branches/SuSE-Code-11-SP1-Branch/control-center/src/menuitem.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/contr…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/control-center/src/menuitem.h (added)
+++ branches/SuSE-Code-11-SP1-Branch/control-center/src/menuitem.h Mon May 23 15:58:18 2011
@@ -0,0 +1,41 @@
+/* This file is part of the KDE project
+ Copyright 2007 Will Stephenson <wstephenson(a)kde.org>
+
+ This program is free software; you can redistribute it and/or
+ modify it under the terms of the GNU General Public License as
+ published by the Free Software Foundation; either version 2 of
+ the License or (at your option) version 3 or any later version
+ accepted by the membership of KDE e.V. (or its successor approved
+ by the membership of KDE e.V.), which shall act as a proxy
+ defined in Section 14 of version 3 of the license.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+#ifndef KCMENUITEM_H
+#define KCMENUITEM_H
+
+#include <QList>
+#include <QString>
+
+/**
+ * A menu consists of menu items. An item is either another menu or a module.
+ */
+class MenuItem {
+public:
+ MenuItem( bool isMenu, MenuItem * parent );
+ ~MenuItem();
+ MenuItem * grandChildAt( int index );
+ MenuItem * parent;
+ QList< MenuItem * > children;
+ bool menu;
+ QString name;
+ QString caption;
+};
+
+#endif
Added: branches/SuSE-Code-11-SP1-Branch/control-center/src/models_test.cpp
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/contr…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/control-center/src/models_test.cpp (added)
+++ branches/SuSE-Code-11-SP1-Branch/control-center/src/models_test.cpp Mon May 23 15:58:18 2011
@@ -0,0 +1,35 @@
+#include <QApplication>
+#include <QListView>
+
+#include "yqdesktopfilesmodel.h"
+#include "yqmodulesmodel.h"
+
+int main(int argc, char *argv[])
+{
+ QApplication app(argc, argv);
+ QListView window;
+ YQDesktopFilesModel model(&window);
+ model.addIconPath("/usr/share/YaST2/theme/current/icons/32x32/apps");
+ model.addDesktopFilesPath("/usr/share/applications/YaST2/groups");
+
+ window.setModel(&model);
+ window.show();
+
+ //QListView window2;
+ //YQDesktopFilesModel model2("/usr/share/applications/YaST2", &window2);
+ //model2.addIconPath("/usr/share/YaST2/theme/current/icons/32x32/apps");
+ //model2.addIconPath("/usr/share/icons/hicolor/32x32/apps");
+
+ //window2.setModel(&model2);
+ //window2.show();
+
+ QListView window3;
+ YQModulesModel model3(&window3);
+
+ window3.setModel(&model3);
+ window3.show();
+
+
+ return app.exec();
+}
+
Added: branches/SuSE-Code-11-SP1-Branch/control-center/src/moduleiconitem.cpp
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/contr…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/control-center/src/moduleiconitem.cpp (added)
+++ branches/SuSE-Code-11-SP1-Branch/control-center/src/moduleiconitem.cpp Mon May 23 15:58:18 2011
@@ -0,0 +1,135 @@
+/**
+ * This file is part of the System Settings package
+ * Copyright (C) 2005 Benjamin C Meyer
+* <ben+systempreferences at meyerhome dot net>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#include "moduleiconitem.h"
+#include "kcmoduleinfo.h"
+
+#include <climits>
+
+#include <qapplication.h>
+#include <qpainter.h>
+#include <iostream>
+
+#include <QDebug>
+
+
+#define IMAGE_SIZE 32
+#define ICON_WIDTH 100
+
+ModuleIconItemDelegate::ModuleIconItemDelegate(QObject *parent, const QStyle *style) :
+ QItemDelegate(parent)
+ , lviewstyle( style )
+{
+}
+
+void ModuleIconItemDelegate::paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const
+{
+ painter->save();
+ painter->setRenderHints(QPainter::Antialiasing | QPainter::TextAntialiasing);
+
+ QStyle *style;
+ bool selected = option.state & QStyle::State_Selected || option.state & QStyle::State_HasFocus;
+ bool mouseover = option.state & QStyle::State_MouseOver;
+ const QSize &decorationSize = option.decorationSize;
+
+ if (const QStyleOptionViewItemV3 *v3 = qstyleoption_cast<const QStyleOptionViewItemV3 *>(&option)) {
+ style = v3->widget->style();
+ if (!v3->widget->hasFocus()) selected = false;
+ } else {
+ style = QApplication::style();
+ }
+
+ QFont f = painter->font();
+ if (selected || mouseover)
+ {
+ if (selected)
+ {
+ painter->fillPath(roundedRectangle(option.rect, 10), option.palette.brush(QPalette::Highlight));
+ painter->setPen(option.palette.color(QPalette::HighlightedText));
+ }
+ else
+ {
+ QColor hover = option.palette.color(QPalette::Highlight);
+ hover.setAlpha(88);
+ painter->fillPath(roundedRectangle(option.rect, 10), hover);
+ painter->setPen( option.palette.color( QPalette::WindowText ) );
+ }
+ QFont newFont = option.font;
+ newFont.setPointSize( option.font.pointSize() - 2);
+ QFontMetrics newFm = QFontMetrics( newFont );
+
+ QString descr = newFm.elidedText( index.data( YQModulesModel::GenericNameRole ).toString(), Qt::ElideRight, option.rect.width() );
+ QRect tr = option.rect;
+ tr.setTop( tr.top() + decorationSize.height() + 2*style->pixelMetric( QStyle::PM_FocusFrameVMargin) );
+ tr.setLeft( tr.left() + 2*style->pixelMetric( QStyle::PM_FocusFrameHMargin ));
+
+ painter->setFont( newFont);
+ painter->drawText( tr, Qt::AlignLeft | Qt::TextSingleLine, descr );
+
+ }
+ painter->setFont( f );
+
+ QIcon::Mode iconMode = QIcon::Normal;
+ if (selected) iconMode = QIcon::Selected;
+ const QPixmap &pixmap = qvariant_cast<QIcon>(index.data(Qt::DecorationRole)).pixmap(option.decorationSize, iconMode);
+ int iconX = option.rect.left() + style->pixelMetric( QStyle::PM_FocusFrameHMargin );
+ int iconY = option.rect.top() + style->pixelMetric( QStyle::PM_FocusFrameVMargin );
+ painter->drawPixmap(iconX, iconY, decorationSize.width(), decorationSize.height(), pixmap);
+
+ QRect textRectangle = option.rect;
+ textRectangle.setLeft (textRectangle.left() + decorationSize.width() + 2*style->pixelMetric(QStyle::PM_FocusFrameHMargin));
+ textRectangle.setHeight( decorationSize.height() + 2*style->pixelMetric(QStyle::PM_FocusFrameVMargin));
+ painter->drawText(textRectangle, Qt::AlignLeft | Qt::AlignVCenter | Qt::TextWordWrap, index.data(Qt::DisplayRole).toString());
+ painter->restore();
+}
+
+QSize ModuleIconItemDelegate::sizeHint ( const QStyleOptionViewItem & option, const QModelIndex & index ) const
+{
+ QString text = index.data( Qt::DisplayRole).toString();
+ QVariant v = index.data(Qt::FontRole);
+ QFont f = qvariant_cast<QFont>(v);
+ QFontMetrics fm( f );
+
+ QSize s = QItemDelegate::sizeHint( option, index );
+ int w = 2*lviewstyle->pixelMetric( QStyle::PM_FocusFrameHMargin ) + 2*lviewstyle->pixelMetric( QStyle::PM_ListViewIconSize ) + 8 + fm.boundingRect( text ).width();
+
+ return QSize( w, s.height());
+}
+
+// Method taken from KFileItemDelegate. Check whether it has been moved to
+// kdefx/kdrawutil.cpp as the comment says on Fredrik's code. If so, remove
+// this code (duplication), and use the library one.
+QPainterPath ModuleIconItemDelegate::roundedRectangle(const QRectF &rect, qreal radius) const
+{
+ QPainterPath path(QPointF(rect.left(), rect.top() + radius));
+ path.quadTo(rect.left(), rect.top(), rect.left() + radius, rect.top()); // Top left corner
+ path.lineTo(rect.right() - radius, rect.top()); // Top side
+ path.quadTo(rect.right(), rect.top(), rect.right(), rect.top() + radius); // Top right corner
+ path.lineTo(rect.right(), rect.bottom() - radius); // Right side
+ path.quadTo(rect.right(), rect.bottom(), rect.right() - radius, rect.bottom()); // Bottom right corner
+ path.lineTo(rect.left() + radius, rect.bottom()); // Bottom side
+ path.quadTo(rect.left(), rect.bottom(), rect.left(), rect.bottom() - radius); // Bottom left corner
+ path.closeSubpath();
+
+ return path;
+}
+
+
Added: branches/SuSE-Code-11-SP1-Branch/control-center/src/moduleiconitem.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/contr…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/control-center/src/moduleiconitem.h (added)
+++ branches/SuSE-Code-11-SP1-Branch/control-center/src/moduleiconitem.h Mon May 23 15:58:18 2011
@@ -0,0 +1,79 @@
+/**
+ * This file is part of the System Settings package
+ * Copyright (C) 2005 Benjamin C Meyer
+ * <ben+systempreferences at meyerhome dot net>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#ifndef MODULEICONITEM_H
+#define MODULEICONITEM_H
+
+#include <QItemDelegate>
+#include <QListWidgetItem>
+#include <QList>
+#include <QPainterPath>
+#include <QRectF>
+
+#include "yqmodulesmodel.h"
+
+class KCModuleInfo;
+
+class ModuleIconItemDelegate : public QItemDelegate
+{
+ public:
+ ModuleIconItemDelegate(QObject *parent, const QStyle *style);
+
+ void paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const;
+ virtual QSize sizeHint ( const QStyleOptionViewItem & option, const QModelIndex & index ) const;
+
+ private:
+ const QStyle *lviewstyle;
+
+ // Method taken from KFileItemDelegate. Check whether it has been moved to
+ // kdefx/kdrawutil.cpp as the comment says on Fredrik's code. If so, remove
+ // this code (duplication), and use the library one.
+ QPainterPath roundedRectangle(const QRectF &rect, qreal radius) const;
+};
+
+/**
+ * Stores information about what modules goes with this item.
+ * Also provides means of loading the enabled/disabled image (see kcmsearch).
+ */
+class ModuleIconItem : public QListWidgetItem
+{
+
+public:
+ ModuleIconItem( QListWidget *parent, const KCModuleInfo& module );
+
+ ModuleIconItem( QListWidget *parent, const QString &text, const QString &imageName );
+
+ /**
+ * Update the icon to either be enabled or not.
+ */
+ void loadIcon( bool enabled = true );
+
+ // The modules that go with this item
+ QList<KCModuleInfo> modules;
+
+private:
+ void setSize();
+
+ QString imageName;
+};
+
+#endif // MODULEICONITEM_H
+
Added: branches/SuSE-Code-11-SP1-Branch/control-center/src/yccmoduleinfoprovider.cpp
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/contr…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/control-center/src/yccmoduleinfoprovider.cpp (added)
+++ branches/SuSE-Code-11-SP1-Branch/control-center/src/yccmoduleinfoprovider.cpp Mon May 23 15:58:18 2011
@@ -0,0 +1,84 @@
+
+#include <QTemporaryFile>
+#include <QProcess>
+#include <QDebug>
+
+#include "yccmoduleinfoprovider.h"
+
+YCCModuleInfoProvider::YCCModuleInfoProvider()
+{
+}
+
+YCCModuleInfoProvider::~YCCModuleInfoProvider()
+{
+}
+
+//if defined $X-SuSE-YaST-AutoInst && $X-SuSE-YaST-AutoInst != none
+// X-SuSE-YaST-AutoInst=all
+QString YCCModuleInfoProvider::provideInfo( const YQModulesModel *model, const QModelIndex &module ) const
+{
+///sbin/yast2 get_status foo_auto /tmp/status
+ QString ret;
+
+ QString autoinst = model->propertyValue( module, "X-SuSE-YaST-AutoInst" ).toString();
+ if ( ! autoinst.isEmpty() && ( autoinst != "none" ) )
+ {
+ //QTemporaryFile file;
+
+ //if ( ! file.open() )
+ //{
+ // qDebug() << "Can't create temporary file";
+ // return QString();
+ //}
+
+ QStringList arguments;
+ QString modcall = model->propertyValue( module, "X-SuSE-YaST-Call" ).toString();
+ if ( ! modcall.isEmpty() )
+ {
+ QProcess yast2;
+ QString autoinstclient = model->propertyValue( module, "X-SuSE-YaST-AutoInstClient" ).toString();
+ if ( autoinstclient.isEmpty() )
+ {
+ autoinstclient = modcall + "_auto";
+ }
+
+ QStringList args;
+ //args << (autoinstclient) << file.fileName();
+ args << "get_status" << (autoinstclient) << "/tmp/ycc_status";
+ qDebug() << "Executing yast2 " << args;
+
+ yast2.start("/sbin/yast2", args );
+
+ if ( ! yast2.waitForFinished() )
+ {
+ qDebug() << "bad yast2 exit";
+ return QString();
+ }
+
+ //QFile data(file.fileName());
+ QFile data("/tmp/ycc_status");
+ if ( data.open( QIODevice::ReadOnly ) )
+ {
+ QTextStream in(&data);
+ while (!in.atEnd())
+ {
+ QString line = in.readLine();
+ ret += line;
+ }
+ }
+ else
+ qDebug() << "can't read from temporary file" << ret;
+ }
+ else
+ {
+ qDebug() << "no info to call";
+ }
+
+ }
+ else
+ {
+ qDebug() << "no info to call";
+ }
+ return ret;
+}
+
Added: branches/SuSE-Code-11-SP1-Branch/control-center/src/yccmoduleinfoprovider.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/contr…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/control-center/src/yccmoduleinfoprovider.h (added)
+++ branches/SuSE-Code-11-SP1-Branch/control-center/src/yccmoduleinfoprovider.h Mon May 23 15:58:18 2011
@@ -0,0 +1,18 @@
+
+#ifndef YCCModuleInfoProvider_H
+#define YCCModuleInfoProvider_H
+
+#include "yqmodulesmodel.h"
+
+class YCCModuleInfoProvider
+{
+public:
+ YCCModuleInfoProvider();
+ ~YCCModuleInfoProvider();
+
+ QString provideInfo( const YQModulesModel *model, const QModelIndex &module ) const;
+
+private:
+};
+
+#endif
Added: branches/SuSE-Code-11-SP1-Branch/control-center/src/yqdesktopfilesmodel.cpp
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/contr…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/control-center/src/yqdesktopfilesmodel.cpp (added)
+++ branches/SuSE-Code-11-SP1-Branch/control-center/src/yqdesktopfilesmodel.cpp Mon May 23 15:58:18 2011
@@ -0,0 +1,377 @@
+/*---------------------------------------------------------------------\
+| |
+| __ __ _____ _____ |
+| \ \ / / / ___|_ _| |
+| \ V /__ _\ `--. | | |
+| \ // _` |`--. \ | | |
+| | | (_| /\__/ / | | |
+| \_/\__,_\____/ \_/ |
+| |
+\---------------------------------------------------------------------*/
+
+#include <QSettings>
+#include <QDir>
+#include <QIcon>
+#include <QMap>
+#include <libintl.h>
+
+#include "yqdesktopfilesmodel.h"
+
+#define DESKTOP_TRANSLATIONS "desktop_translations"
+
+YQDesktopFilesModel::YQDesktopFilesModel( QObject * parent )
+ : QAbstractItemModel(parent)
+ , d(new Private)
+{
+ connect(&d->watcher, SIGNAL(directoryChanged(const QString &)),
+ SLOT(slotDesktopFilesDirectoryChanged( const QString & ) ) );
+
+ bindtextdomain( DESKTOP_TRANSLATIONS, DESKTOP_TRANSLATIONS_DIR );
+ bind_textdomain_codeset( DESKTOP_TRANSLATIONS, "utf8" );
+
+}
+
+YQDesktopFilesModel::~YQDesktopFilesModel()
+{
+ delete d;
+}
+
+QModelIndex YQDesktopFilesModel::indexForValue( const QString &key, const QVariant &value ) const
+{
+ PropertyMapCacheIterator it(d->cache);
+ //qDebug() << "cache has "<< cache.size() << " entries";
+
+ while ( it.hasNext() )
+ {
+ it.next();
+ // filename is the key of the iterator
+ //QString filename = it.key();
+ PropertyMap data(it.value());
+ if ( data.contains(key) && ( data.value(key) == value ) )
+ {
+ // we found a match, lets figure out the position of
+ // the file in the list
+ int pos = d->desktop_files.indexOf(it.key());
+ if ( pos != -1 )
+ return index(pos, 0);
+ }
+ }
+
+// qWarning() << "No index for key: " << key << " value: " << value.toString();
+ return QModelIndex();
+}
+
+void YQDesktopFilesModel::addDesktopFilesPath( const QString &dir )
+{
+ d->desktop_dirs << dir;
+ d->watcher.addPath(dir);
+ readDesktopFilesDirectories();
+ readDesktopFiles();
+}
+
+void YQDesktopFilesModel::addIconPath( const QString &dir )
+{
+ d->icon_dirs << dir;
+}
+
+void YQDesktopFilesModel::slotDesktopFilesDirectoryChanged( const QString &path )
+{
+ //emit dataChanged();
+ //reset();
+}
+
+/**
+ * read a YaST group .desktop file
+ */
+PropertyMap YQDesktopFilesModel::readDesktopFile( const QString &filename )
+{
+ // desktop file data
+ PropertyMap data;
+
+ QSettings desktopFile( filename, QSettings::IniFormat );
+
+ // check if parsing was correct
+ if ( desktopFile.status() != QSettings::NoError )
+ {
+ qWarning() << "Error reading desktop file " << filename;
+ return data;
+ }
+
+ desktopFile.beginGroup( "Desktop Entry" );
+
+ QStringList keys(desktopFile.allKeys());
+ QStringListIterator keyit(keys);
+ while (keyit.hasNext())
+ {
+ QString key(keyit.next());
+ data.insert(key, desktopFile.value(key));
+ }
+
+ qDebug() << filename << " read with " << data.size() << " keys";
+
+ return data;
+}
+
+void YQDesktopFilesModel::readDesktopFiles()
+{
+ //local copy
+ QStringList desktop_files = d->desktop_files;
+ d->cache.clear();
+
+ QStringListIterator it(desktop_files);
+
+ int count = 0;
+ int success = 0;
+
+ while ( it.hasNext() )
+ {
+ QString filename = it.next();
+ // first lookup in cache
+ PropertyMap data;
+
+ data = readDesktopFile(filename);
+ if ( ! data.empty() )
+ {
+ d->cache.insert(filename, data);
+ qDebug() << filename << " has index " << count;
+ success++;
+ }
+ // readDesktopFiles returned empty map - skip those
+ else
+ {
+ qDebug() << "Skipping " << filename << ", read returned no reasonable data";
+ d->desktop_files.removeAll( filename );
+ }
+ count++;
+ }
+ qDebug() << success << " desktop files read";
+}
+
+void YQDesktopFilesModel::readDesktopFilesDirectories()
+{
+ //d->desktop_dirs.clear();
+ d->desktop_files.clear();
+
+ QStringListIterator dirs(d->desktop_dirs);
+
+ while ( dirs.hasNext() )
+ {
+ // read group desktop files
+ QDir dir( dirs.next() + "/", "*.desktop" );
+
+ if ( ! dir.exists() )
+ {
+ qWarning() << "Directory " << dir.absolutePath() << " does not exist";
+ }
+ else
+ {
+ QStringListIterator desktop_files(dir.entryList());
+ while ( desktop_files.hasNext() )
+ {
+ QString desktop_file = desktop_files.next();
+ d->desktop_files << ( dir.absolutePath() + "/" + desktop_file );
+ }
+
+ }
+ qDebug() << d->desktop_files.size() << " desktop files in total";
+ }
+}
+
+int YQDesktopFilesModel::columnCount( const QModelIndex & parent ) const
+{
+ return 1;
+}
+
+int YQDesktopFilesModel::rowCount( const QModelIndex & parent ) const
+{
+ return d->desktop_files.size();
+}
+
+bool YQDesktopFilesModel::removeRow(int row )
+{
+
+ QString key = d->desktop_files.value( row );
+ qDebug() << "removing empty " << key;
+ d->desktop_files.removeAt( row );
+
+ d->cache.remove( key );
+
+ return true;
+
+}
+
+QModelIndex YQDesktopFilesModel::index( int row, int column, const QModelIndex & parent ) const
+{
+ return createIndex(row, column);
+}
+
+QVariant YQDesktopFilesModel::propertyValue( const QModelIndex &index, const QString &key ) const
+{
+ // first lookup in cache
+ if ( index.row() > d->desktop_files.size() - 1 )
+ return QVariant();
+
+ // get file at position
+ QString filename = d->desktop_files.at(index.row());
+
+ PropertyMap data;
+ if ( d->cache.contains(filename) )
+ {
+ data = d->cache.value(filename);
+ if ( data.contains(key) )
+ return data.value(key);
+ }
+ return QVariant();
+}
+
+QVariant YQDesktopFilesModel::translatedPropertyValue( const QModelIndex &index, const QString &key ) const
+{
+ QString fname = d->desktop_files.value( index.row() );
+ QFileInfo fi(fname);
+ QVariant value = propertyValue(index, key);
+ QString valueAsString = "";
+
+ // We can get QString, as well as QStringList if the .desktop key is csv
+ // (Qt's being too smart here and converts csv automatically to QStringList
+ // unless it's quoted). I'm not really happy about this solution, would be
+ // better to enforce quoting csv, but .desktop standard does not enforce
+ // quoting either (bnc#550085)
+ switch( value.type())
+ {
+ case QVariant::String: {
+ valueAsString = value.toString();
+ break;
+ }
+ case QVariant::StringList: {
+ valueAsString = value.toStringList().join(", ");
+ break;
+ }
+ default:
+ break;
+ }
+
+
+ QString msgid = QString( "%1(%2)" ).arg( key, fi.fileName() );
+ msgid += ": ";
+ msgid += valueAsString;
+
+ QString msgstr = QString::fromUtf8( dgettext ( DESKTOP_TRANSLATIONS, msgid.toAscii()) );
+
+ if( msgid == msgstr)
+ return valueAsString;
+ else
+ return msgstr;
+
+}
+
+QVariant YQDesktopFilesModel::findIcon( QString &icon ) const
+{
+ QRegExp extension( "\\.(png|jpg)$", Qt::CaseInsensitive );
+ if ( icon.indexOf( extension ) < 0 ) // no .png or .jpg extension?
+ icon += ".png"; // assume .png
+ QStringListIterator it(d->icon_dirs);
+ while (it.hasNext())
+ {
+ QString icondir(it.next());
+ if ( QFile::exists(icondir + "/" + icon) )
+ {
+ return QIcon(icondir + "/" + icon);
+ }
+ }
+ return QVariant();
+
+}
+
+void YQDesktopFilesModel::sort( int, Qt::SortOrder order )
+{
+ emit layoutAboutToBeChanged();
+ if (order == Qt::AscendingOrder)
+ qSort(d->desktop_files.begin(), d->desktop_files.end(), qLess<QString>());
+ else
+ qSort(d->desktop_files.begin(), d->desktop_files.end(), qGreater<QString>());
+ emit layoutChanged();
+ return;
+}
+
+QVariant YQDesktopFilesModel::data( const QModelIndex &index, int role ) const
+{
+ QStringListIterator it(d->desktop_files);
+
+ // check the role and column
+ if ( role == Qt::DisplayRole )
+ {
+ return translatedPropertyValue( index, "Name");
+ }
+ else if ( role == Qt::DecorationRole )
+ {
+ QString icon = propertyValue( index, "Icon" ).toString();
+ return findIcon( icon );
+ }
+ else if ( role == Qt::UserRole )
+ {
+
+ // user role has app specific data
+ switch ( index.column() )
+ {
+ case Name:
+ return propertyValue( index, "Name" );
+ case GenericName:
+ return propertyValue ( index, "GenericName" );
+ case Group:
+ return propertyValue( index, "X-SuSE-YaST-Group" );
+ case Icon:
+ return propertyValue( index, "Icon" );
+ case SortKey:
+ return propertyValue( index, "X-SuSE-YaST-SortKey" );
+ case Call:
+ return propertyValue ( index, "X-SuSE-YaST-Call" );
+ case Argument:
+ return propertyValue ( index, "X-SuSE-YaST-Argument" );
+ default:
+ return QVariant();
+ }
+ }
+ else
+ {
+ return QVariant();
+ }
+ return QVariant();
+}
+
+QModelIndex YQDesktopFilesModel::parent( const QModelIndex & index ) const
+{
+ return QModelIndex();
+}
+
+void YQDesktopFilesModel::addDesktopFile( QString &fname )
+{
+ d->desktop_files.push_front( fname );
+}
+
+void YQDesktopFilesModel::addDesktopFiles( QStringList &flist )
+{
+ QStringListIterator it( flist );
+ while (it.hasNext())
+ {
+ QString one_string(it.next());
+ addDesktopFile( one_string);
+ }
+}
+
+void YQDesktopFilesModel::addPropertyToDesktopFile( QString &fname, const QString &key, QString &value)
+{
+ if (d->cache.find( fname ) != d->cache.end())
+ {
+ d->cache[ fname ].insert( key, value );
+ }
+ else
+ {
+ PropertyMap pm;
+ pm[key] = value;
+
+ d->cache[ fname ] = pm;
+ }
+}
+
+
+#include "yqdesktopfilesmodel.moc"
Added: branches/SuSE-Code-11-SP1-Branch/control-center/src/yqdesktopfilesmodel.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/contr…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/control-center/src/yqdesktopfilesmodel.h (added)
+++ branches/SuSE-Code-11-SP1-Branch/control-center/src/yqdesktopfilesmodel.h Mon May 23 15:58:18 2011
@@ -0,0 +1,131 @@
+/*---------------------------------------------------------------------\
+| |
+| __ __ _____ _____ |
+| \ \ / / / ___|_ _| |
+| \ V /__ _\ `--. | | |
+| \ // _` |`--. \ | | |
+| | | (_| /\__/ / | | |
+| \_/\__,_\____/ \_/ |
+| |
+\---------------------------------------------------------------------*/
+
+#ifndef YQDESKTOPFILESMODEL_H
+#define YQDESKTOPFILESMODEL_H
+
+#include <QAbstractItemModel>
+#include <QDebug>
+#include <QStringList>
+#include <QFileSystemWatcher>
+
+/**
+ * this class represents a directory with .desktop files
+ * Each row is a desktop file, and each column, its
+ * attributes.
+ *
+ * @author Duncan Mac-Vicar P. <dmacvicar(a)suse.de>
+ */
+
+typedef QMap<QString, QVariant> PropertyMap;
+typedef QMapIterator<QString, QVariant> PropertyMapIterator;
+// desktop file -> properties
+typedef QMap<QString, PropertyMap > PropertyMapCache;
+typedef QMapIterator<QString, PropertyMap> PropertyMapCacheIterator;
+
+class cmp;
+
+class YQDesktopFilesModel : public QAbstractItemModel
+{
+Q_OBJECT
+
+public:
+ enum Columns
+ {
+ Name,
+ GenericName,
+ Group,
+ Icon,
+ SortKey,
+ ColumnCount,
+ Call,
+ Argument,
+ };
+
+ YQDesktopFilesModel( QObject * parent = 0 );
+ ~YQDesktopFilesModel();
+
+ /**
+ * Add a directory where Desktop files will be searched
+ */
+ void addDesktopFilesPath( const QString & dir );
+
+ /**
+ * Add a directory where to look for icons
+ */
+ void addIconPath( const QString &dir );
+
+ // reimplemented methods from QAbstractItemModel
+
+ virtual int columnCount( const QModelIndex & parent ) const;
+ virtual int rowCount( const QModelIndex & parent ) const;
+ virtual bool removeRow ( int row );
+
+ virtual QModelIndex index( int row, int column, const QModelIndex & parent = QModelIndex() ) const;
+
+ /**
+ * returns the index of the first item for which the key has
+ * the provided value
+ */
+ QModelIndex indexForValue( const QString &key, const QVariant &value ) const;
+
+ /**
+ * returns the desktop file property for the given key
+ */
+ QVariant propertyValue( const QModelIndex &index, const QString &key ) const;
+ QVariant translatedPropertyValue( const QModelIndex &index, const QString &key ) const;
+ QVariant findIcon ( QString &icon ) const;
+
+ virtual QVariant data( const QModelIndex &index, int role = Qt::DisplayRole ) const;
+
+ virtual void sort( int column, Qt::SortOrder order = Qt::AscendingOrder );
+
+ virtual QModelIndex parent( const QModelIndex & index ) const;
+
+ void addDesktopFile( QString &fname);
+ void addDesktopFiles( QStringList &flist);
+ void addPropertyToDesktopFile( QString &fname, const QString &key, QString &value );
+
+protected:
+ void readDesktopFilesDirectories();
+ void readDesktopFiles();
+ virtual PropertyMap readDesktopFile( const QString &path );
+
+ class Private {
+ public:
+
+ Private() {}
+
+ ~Private() { /*qWarning() << "Destroy!";*/ }
+
+ // directories to read
+ QStringList desktop_dirs;
+
+ QStringList icon_dirs;
+
+ // list of .desktop files read from disk
+ QStringList desktop_files;
+
+ // already read data
+ // row -> ( key -> data )
+ PropertyMapCache cache;
+
+ QFileSystemWatcher watcher;
+ };
+
+ Private *const d;
+
+protected slots:
+ void slotDesktopFilesDirectoryChanged( const QString &path );
+
+};
+
+#endif
Added: branches/SuSE-Code-11-SP1-Branch/control-center/src/yqmodulegroupsmodel.cpp
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/contr…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/control-center/src/yqmodulegroupsmodel.cpp (added)
+++ branches/SuSE-Code-11-SP1-Branch/control-center/src/yqmodulegroupsmodel.cpp Mon May 23 15:58:18 2011
@@ -0,0 +1,162 @@
+/*---------------------------------------------------------------------\
+| |
+| __ __ _____ _____ |
+| \ \ / / / ___|_ _| |
+| \ V /__ _\ `--. | | |
+| \ // _` |`--. \ | | |
+| | | (_| /\__/ / | | |
+| \_/\__,_\____/ \_/ |
+| |
+\---------------------------------------------------------------------*/
+
+#include <QDebug>
+#include <QFont>
+#include <QFontMetrics>
+#include <QSettings>
+#include <QDir>
+#include <QIcon>
+#include <QHash>
+
+#include "yqmodulegroupsmodel.h"
+
+#define DEFAULT_GROUP_ICON "yast-default-group.png"
+
+bool paircmp( QPair<int, QString> p1, QPair<int, QString> p2)
+{
+ if ( p1.first != p2.first )
+ return p1.first < p2.first ;
+ else
+ return p1.second < p2.second;
+};
+
+YQModuleGroupsModel::YQModuleGroupsModel( QObject * parent )
+ : YQDesktopFilesModel(parent)
+{
+
+ QString default_dir( GROUPS_DESKTOP_DIR );
+ QString alt_dir = QString( getenv( "YAST2_DESKTOP_DIR") );
+
+ addDesktopFilesPath( alt_dir.isEmpty() ? default_dir : alt_dir + "/groups/");
+ addIconPath( ICON_DIR );
+ addIconPath( FALLBACK_ICON_DIR );
+ reindex();
+ //addPersonalStuff();
+}
+
+YQModuleGroupsModel::~YQModuleGroupsModel()
+{
+}
+
+QModelIndex YQModuleGroupsModel::indexForGroupId( const QString &groupid ) const
+{
+ return indexForValue( "X-SuSE-YaST-Group", groupid );
+}
+
+QString YQModuleGroupsModel::groupId( const QModelIndex &idx ) const
+{
+ QModelIndex grpid = index( idx.row(), Group);
+ // retrieve the groupid
+ QString groupid = data( grpid, Qt::UserRole ).toString();
+ return groupid;
+}
+
+QVariant YQModuleGroupsModel::valueFromFile ( QString &fname, int key )
+{
+ int pos = d->desktop_files.indexOf( fname );
+
+ if ( pos == -1 )
+ return QVariant();
+
+ QModelIndex idx = index( pos, key );
+ return data( idx, Qt::UserRole);
+
+}
+
+void YQModuleGroupsModel::addPersonalStuff()
+{
+ QList < QPair <QString, QString> > fake;
+
+ fake << QPair<QString, QString> ( "Personal.desktop", "Personal")
+ << QPair<QString, QString> ( "Favourites.desktop", "Favourites")
+ << QPair<QString, QString> ( "Recent.desktop", "Recently Used")
+ << QPair<QString, QString> ( "Modules.desktop", "Modules");
+
+ QPair <QString, QString> p;
+
+ foreach( p, fake )
+ {
+ addDesktopFile( p.first );
+ addPropertyToDesktopFile( p.first, "Name", p.second );
+ addPropertyToDesktopFile( p.first, "X-SuSE-YaST-Group", p.second );
+ }
+
+ typeMap["Personal"] = Headline;
+ typeMap["Modules"] = Headline;
+ typeMap["Favourites"] = Special;
+ typeMap["Recently Used"] = Special;
+
+}
+
+void YQModuleGroupsModel::reindex()
+{
+ // pairs, because sort keys don't have to be unique :(
+ QList< QPair< int, QString> > sortKeys;
+ QMap < QString, QString > groupNames;
+
+ QStringListIterator it( d->desktop_files );
+
+ while (it.hasNext())
+ {
+ QString dfile(it.next());
+ int sortKey = valueFromFile( dfile, YQDesktopFilesModel::SortKey).toInt();
+ QString name = valueFromFile( dfile, YQDesktopFilesModel::Name).toString();
+ sortKeys.append( qMakePair( sortKey, name) );
+ groupNames.insert( name, dfile );
+ }
+
+ qSort(sortKeys.begin(), sortKeys.end(), paircmp);
+
+ d->desktop_files.clear();
+ QPair<int,QString> p;
+ foreach( p, sortKeys )
+ {
+ d->desktop_files << groupNames[p.second];
+ }
+
+}
+
+QVariant YQModuleGroupsModel::data( const QModelIndex &index, int role ) const
+{
+ if (role == Qt::FontRole )
+ {
+ QString name = propertyValue( index, "Name" ).toString();
+ QFont f;
+
+ if( typeMap[name] == Headline)
+ {
+ f.setBold(true);
+ QFontMetrics fm(f);
+ f.setPixelSize( (int) (fm.height() * 1.05) );
+ QVariant myData = QVariant(f);
+ return myData;
+ }
+ else
+ return QVariant();
+ }
+ else if ( role == Qt::DecorationRole )
+ {
+ QVariant icon = YQDesktopFilesModel::data( index, role );
+ QString fallback_icon = "yast-default-group";
+
+ if ( icon.isValid() )
+ return icon;
+ else
+ {
+ return findIcon( fallback_icon );
+ }
+ }
+ else
+ return YQDesktopFilesModel::data(index, role);
+}
+
+#include "yqmodulegroupsmodel.moc"
Added: branches/SuSE-Code-11-SP1-Branch/control-center/src/yqmodulegroupsmodel.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/contr…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/control-center/src/yqmodulegroupsmodel.h (added)
+++ branches/SuSE-Code-11-SP1-Branch/control-center/src/yqmodulegroupsmodel.h Mon May 23 15:58:18 2011
@@ -0,0 +1,64 @@
+/*---------------------------------------------------------------------\
+| |
+| __ __ _____ _____ |
+| \ \ / / / ___|_ _| |
+| \ V /__ _\ `--. | | |
+| \ // _` |`--. \ | | |
+| | | (_| /\__/ / | | |
+| \_/\__,_\____/ \_/ |
+| |
+\---------------------------------------------------------------------*/
+
+#ifndef YQMODULEGROUPSMODEL_H
+#define YQMODULEGROUPSMODEL_H
+
+#include <QStringList>
+#include "yqdesktopfilesmodel.h"
+
+/**
+ * this class represents YaST module groups
+ * so they can be used in any GUI item
+ *
+ * @author Duncan Mac-Vicar P. <dmacvicar(a)suse.de>
+ */
+
+class YQModuleGroupsModel : public YQDesktopFilesModel
+{
+Q_OBJECT
+public:
+
+ enum Type
+ {
+ Regular,
+ Headline,
+ Special
+ };
+
+ YQModuleGroupsModel( QObject * parent = 0 );
+ ~YQModuleGroupsModel();
+
+ virtual QVariant data( const QModelIndex &index, int role = Qt::DisplayRole ) const;
+
+ /**
+ * Returns the model index from an id (like "Virtualization")
+ *
+ * Useful if you need to get data, and you don't know the index but only
+ * the group id, which you may had obtain in the modules model for example.
+ */
+ QModelIndex indexForGroupId( const QString &groupid ) const;
+
+ QVariant valueFromFile( QString &fname, int key );
+
+ /**
+ * Returns the group id for a given group
+ */
+ QString groupId( const QModelIndex &idx ) const;
+
+private:
+ QMap <QString, Type> typeMap;
+
+ void reindex();
+ void addPersonalStuff();
+};
+
+#endif
Added: branches/SuSE-Code-11-SP1-Branch/control-center/src/yqmodulesmodel.cpp
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/contr…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/control-center/src/yqmodulesmodel.cpp (added)
+++ branches/SuSE-Code-11-SP1-Branch/control-center/src/yqmodulesmodel.cpp Mon May 23 15:58:18 2011
@@ -0,0 +1,234 @@
+/*---------------------------------------------------------------------\
+| |
+| __ __ _____ _____ |
+| \ \ / / / ___|_ _| |
+| \ V /__ _\ `--. | | |
+| \ // _` |`--. \ | | |
+| | | (_| /\__/ / | | |
+| \_/\__,_\____/ \_/ |
+| |
+\---------------------------------------------------------------------*/
+
+#include <QDebug>
+#include <QSettings>
+
+#include "yqmodulesmodel.h"
+#include "yqmodulesproxymodel.h"
+
+#include "yqmodulegroupsmodel.h"
+#include "yccmoduleinfoprovider.h"
+
+#include <unistd.h>
+#include <sys/types.h>
+
+class YQModulesModel::Private
+{
+public:
+ Private()
+ : groupsModel(new YQModuleGroupsModel)
+ {
+ userIsRoot = ( getuid() == 0 );
+ }
+
+ ~Private()
+ {
+ delete groupsModel;
+ }
+
+ YQModuleGroupsModel *groupsModel;
+ QMap<QModelIndex, QModelIndex> groupCache;
+ QMap<QString, QString> groupStringCache;
+ YCCModuleInfoProvider infoProvider;
+
+ bool userIsRoot;
+
+};
+
+
+
+YQModulesModel::YQModulesModel( QObject * parent )
+ : YQDesktopFilesModel(parent)
+ , priv(new Private)
+{
+ QString default_dir( MODULES_DESKTOP_DIR );
+ QString alt_dir = QString( getenv( "YAST2_DESKTOP_DIR") );
+
+ addDesktopFilesPath( alt_dir.isEmpty() ? default_dir : alt_dir );
+ addIconPath( ICON_DIR );
+ addIconPath( FALLBACK_ICON_DIR );
+ removeEmptyGroups();
+}
+
+YQModulesModel::~YQModulesModel()
+{
+}
+
+YQModuleGroupsModel * YQModulesModel::groupsModel() const
+{
+ return priv->groupsModel;
+}
+
+PropertyMap YQModulesModel::readDesktopFile( const QString &path )
+{
+ PropertyMap data;
+ const QString rootOnly = "X-SuSE-YaST-RootOnly";
+ const QString group = "X-SuSE-YaST-Group";
+ const QString name = "Name";
+
+ QSettings desktopFile( path, QSettings::IniFormat );
+
+ // check if parsing was correct
+ if ( desktopFile.status() != QSettings::NoError )
+ {
+ qWarning() << "Error reading desktop file " << path;
+ return data;
+ }
+
+ desktopFile.beginGroup( "Desktop Entry" );
+
+ QStringList keys(desktopFile.allKeys());
+ QStringListIterator keyit(keys);
+
+ // X-SuSE-YaST-RootOnly = true
+ // do not show those to normal user
+ if ( !priv->userIsRoot && keys.contains( rootOnly ) &&
+ desktopFile.value(rootOnly).toBool() )
+ return data;
+
+ QString oneGroup;
+ QString oneName;
+ while (keyit.hasNext())
+ {
+ QString key(keyit.next());
+ data.insert(key, desktopFile.value(key));
+
+ // cache <groupname : modname> pairs to quickly look up
+ // what's the first module in the group
+ oneGroup = desktopFile.value(group).toString();
+ oneName = desktopFile.value(name).toString();
+
+ if ( priv->groupStringCache.find(oneGroup) != priv->groupStringCache.end() )
+ {
+ if ( oneName < priv->groupStringCache[oneGroup])
+ priv->groupStringCache[oneGroup] = oneName;
+ }
+ else
+ priv->groupStringCache.insert(oneGroup, oneName);
+ }
+
+ qDebug() << path << " read with " << data.size() << " keys";
+
+ return data;
+
+}
+
+QModelIndex YQModulesModel::firstModuleInGroup( const QModelIndex &index ) const
+{
+ // what is the name of that group?
+ QString grpid = groupsModel()->groupId(index);
+
+ if ( grpid.isEmpty() )
+ return QModelIndex();
+
+ qDebug() << "Look up 1st module in group " << grpid;
+
+ QString firstMod = priv->groupStringCache[grpid];
+ return indexForValue("Name", firstMod );
+}
+
+Qt::ItemFlags YQModulesModel::flags ( const QModelIndex & index ) const
+{
+ //qDebug() << "requesting flags for module";
+ return Qt::ItemIsEnabled;
+}
+
+QModelIndex YQModulesModel::groupForModule( const QModelIndex &idx) const
+{
+ if ( priv->groupCache.contains(idx) )
+ return priv->groupCache[idx];
+
+ // create an index for the module group's string id
+ QModelIndex modgrpid = index( idx.row(), Group);
+ // retrieve the groupid
+ QString groupid = data( modgrpid, Qt::UserRole ).toString();
+
+ QModelIndex groupindex = groupsModel()->indexForGroupId( groupid );
+
+ priv->groupCache[idx] = groupindex;
+
+ return groupindex;
+}
+
+QVariant YQModulesModel::data( const QModelIndex &index, int role ) const
+{
+ // this 2 roles are required if the model is expected to work
+ // with the categorized view
+ if ( role == KCategorizedSortFilterProxyModel::CategoryDisplayRole )
+ {
+ return groupsModel()->data( groupForModule(index) );
+ }
+ else if ( role == KCategorizedSortFilterProxyModel::CategorySortRole )
+ {
+ QModelIndex grp_idx = groupForModule( index );
+ QModelIndex idx = createIndex( grp_idx.row(), YQDesktopFilesModel::SortKey );
+
+ return groupsModel()->data( idx, Qt::UserRole);
+ }
+ else if ( role == KCategorizedSortFilterProxyModel::KeywordsRole )
+ {
+ //FIXME: use translatedPropertyValue
+ return propertyValue( index, "X-SuSE-YaST-Keywords" );
+ }
+ else if ( role == GenericNameRole )
+ {
+ //QString tooltip = d->infoProvider.provideInfo( this, index );
+ QString tooltip = translatedPropertyValue(index, "GenericName").toString();
+ return tooltip;
+ }
+ else if ( role == Qt::DecorationRole )
+ {
+ QVariant icon = YQDesktopFilesModel::data( index, role );
+
+ if ( icon.isValid() )
+ return icon;
+ else
+ {
+ return groupsModel()->data( groupForModule( index ), role );
+ }
+ }
+ else // otherwise just use the parent class
+ {
+ return YQDesktopFilesModel::data(index, role);
+ }
+}
+
+bool YQModulesModel::isRoot()
+{
+ return priv->userIsRoot;
+}
+
+void YQModulesModel::removeEmptyGroups()
+{
+ QStringList groups;
+ for (int i = 0; i < groupsModel()->rowCount( QModelIndex() ); i++)
+ {
+ QModelIndex idx = createIndex( i, 0 );
+ groups << groupsModel()->groupId( idx );
+ }
+
+ QStringListIterator git(groups);
+ while (git.hasNext())
+ {
+ QModelIndex groupidx = groupsModel()->indexForGroupId( git.next() );
+ QModelIndex modidx = firstModuleInGroup( groupidx );
+
+ if (!modidx.isValid())
+ {
+ groupsModel()->removeRow( groupidx.row() );
+ qDebug() << "Empty group " << groupsModel()->data( groupidx ).toString();
+ }
+ }
+
+}
+
+#include "yqmodulesmodel.moc"
Added: branches/SuSE-Code-11-SP1-Branch/control-center/src/yqmodulesmodel.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/contr…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/control-center/src/yqmodulesmodel.h (added)
+++ branches/SuSE-Code-11-SP1-Branch/control-center/src/yqmodulesmodel.h Mon May 23 15:58:18 2011
@@ -0,0 +1,78 @@
+/*---------------------------------------------------------------------\
+| |
+| __ __ _____ _____ |
+| \ \ / / / ___|_ _| |
+| \ V /__ _\ `--. | | |
+| \ // _` |`--. \ | | |
+| | | (_| /\__/ / | | |
+| \_/\__,_\____/ \_/ |
+| |
+\---------------------------------------------------------------------*/
+
+#ifndef YQMODULESMODEL_H
+#define YQMODULESMODEL_H
+
+#include <QStringList>
+#include "yqdesktopfilesmodel.h"
+
+class YQModuleGroupsModel;
+
+/**
+ * this class represents YaST module groups
+ * so they can be used in any GUI item
+ *
+ * @author Duncan Mac-Vicar P. <dmacvicar(a)suse.de>
+ */
+class YQModulesModel : public YQDesktopFilesModel
+{
+Q_OBJECT
+public:
+
+ enum UserRoleData
+ {
+ GenericNameRole = 0x1BA81D0E
+ };
+
+ YQModulesModel( QObject * parent = 0 );
+ ~YQModulesModel();
+
+ virtual PropertyMap readDesktopFile( const QString &path );
+
+ /**
+ * reimplemented from YQDesktopFilesModel
+ */
+ virtual QVariant data( const QModelIndex &index, int role = Qt::DisplayRole ) const;
+
+ /**
+ * reimplement flags to make items non selectable and enabled
+ * depending if they are installed
+ */
+ virtual Qt::ItemFlags flags ( const QModelIndex & index ) const;
+
+ /**
+ * group index for a given model
+ */
+ QModelIndex groupForModule( const QModelIndex &index) const;
+
+ /**
+ * returns the group name for item with index
+ */
+ //QString groupNameForIndex( const QModelIndex &index ) const;
+
+ QModelIndex firstModuleInGroup( const QModelIndex &index ) const;
+
+ /**
+ * the groups model this modules model is using
+ */
+ YQModuleGroupsModel * groupsModel() const;
+
+ bool isRoot();
+
+private:
+ class Private;
+ Private *const priv;
+
+ void removeEmptyGroups();
+};
+
+#endif
Added: branches/SuSE-Code-11-SP1-Branch/control-center/src/yqmodulesproxymodel.cpp
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/contr…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/control-center/src/yqmodulesproxymodel.cpp (added)
+++ branches/SuSE-Code-11-SP1-Branch/control-center/src/yqmodulesproxymodel.cpp Mon May 23 15:58:18 2011
@@ -0,0 +1,34 @@
+
+#include "yqmodulesproxymodel.h"
+
+YQModulesProxyModel::YQModulesProxyModel( QObject * parent )
+ : KCategorizedSortFilterProxyModel(parent)
+{
+}
+
+YQModulesProxyModel::~YQModulesProxyModel()
+{
+}
+
+bool YQModulesProxyModel::subSortLessThan(const QModelIndex &left, const QModelIndex &right) const
+{
+ return KCategorizedSortFilterProxyModel::subSortLessThan(left, right);
+}
+
+int YQModulesProxyModel::compareCategories(const QModelIndex &left, const QModelIndex &right) const
+{
+ return KCategorizedSortFilterProxyModel::compareCategories(left, right);
+}
+
+
+
+// QVariant YQModulesProxyModel::data( const QModelIndex &index, int role ) const
+// {
+// if ( role == CategoryDisplayRole )
+// {
+// }
+
+// return YQDesktopFilesModel::data(index, role);
+// }
+
+#include "yqmodulesproxymodel.moc"
Added: branches/SuSE-Code-11-SP1-Branch/control-center/src/yqmodulesproxymodel.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/contr…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/control-center/src/yqmodulesproxymodel.h (added)
+++ branches/SuSE-Code-11-SP1-Branch/control-center/src/yqmodulesproxymodel.h Mon May 23 15:58:18 2011
@@ -0,0 +1,55 @@
+/*---------------------------------------------------------------------\
+| |
+| __ __ _____ _____ |
+| \ \ / / / ___|_ _| |
+| \ V /__ _\ `--. | | |
+| \ // _` |`--. \ | | |
+| | | (_| /\__/ / | | |
+| \_/\__,_\____/ \_/ |
+| |
+\---------------------------------------------------------------------*/
+
+#ifndef YQMODULESPROXYMODEL_H
+#define YQMODULESPROXYMODEL_H
+
+#include <QStringList>
+#include "kcategorizedsortfilterproxymodel.h"
+
+/**
+ * Proxy Model to sort by categories
+ *
+ * @author Duncan Mac-Vicar P. <dmacvicar(a)suse.de>
+ */
+class YQModulesProxyModel : public KCategorizedSortFilterProxyModel
+{
+Q_OBJECT
+public:
+
+ YQModulesProxyModel( QObject * parent = 0 );
+ ~YQModulesProxyModel();
+
+ /**
+ * This method has a similar purpose as lessThan() has on QSortFilterProxyModel.
+ * It is used for sorting items that are in the same category.
+ *
+ * @return Returns true if the item @p left is less than the item @p right when sorting.
+ */
+ virtual bool subSortLessThan(const QModelIndex &left, const QModelIndex &right) const;
+
+ /**
+ * This method compares the category of the @p left index with the category
+ * of the @p right index.
+ *
+ * Internally and if not reimplemented, this method will ask for @p left and
+ * @p right models for role CategorySortRole. In order to correctly sort
+ * categories, the data() metod of the model should return a qlonglong (or numeric) value, or
+ * a QString object. QString objects will be sorted with QString::localeAwareCompare if
+ * sortCategoriesByNaturalComparison() is true.
+ *
+ */
+ virtual int compareCategories(const QModelIndex &left, const QModelIndex &right) const;
+
+ //virtual QVariant data( const QModelIndex &index, int role = Qt::DisplayRole ) const;
+};
+
+#endif
Added: branches/SuSE-Code-11-SP1-Branch/control-center/src/yqsavelogs.cpp
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/contr…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/control-center/src/yqsavelogs.cpp (added)
+++ branches/SuSE-Code-11-SP1-Branch/control-center/src/yqsavelogs.cpp Mon May 23 15:58:18 2011
@@ -0,0 +1,178 @@
+/***************************************************************************
+ yqsavelogs.cpp - Save YaST Logs
+ author : tgoettlicher(a)suse.de
+ ***************************************************************************/
+
+/*
+ Textdomain "control-center"
+*/
+
+#include "yqsavelogs.h"
+
+#include <QFileDialog>
+#include <QMessageBox>
+
+
+YQSaveLogs::YQSaveLogs()
+{
+ lock = false;
+ proc = 0;
+}
+
+YQSaveLogs::~YQSaveLogs()
+{
+}
+
+void YQSaveLogs::save()
+{
+
+ if (lock)
+ {
+ QMessageBox::warning( 0, // parent
+ "Warning", // caption
+ QString("Logs are written at the moment. Please try again later."),
+ QMessageBox::Ok | QMessageBox::Default, // button0
+ QMessageBox::NoButton, // button1
+ QMessageBox::NoButton ); // button2
+ return;
+ }
+
+ SaveLogs();
+
+}
+
+
+void YQSaveLogs::saveProcessExited( int exitCode, QProcess::ExitStatus exitStatus )
+{
+ if ( exitStatus == QProcess::NormalExit )
+ {
+ emit statusMsg( _("Log files written successfully.") );
+ }
+ else
+ {
+ emit statusMsg( _("Couldn't save y2logs.") );
+ QMessageBox::warning( 0, // parent
+ "Error", // caption
+ QString( "Couldn't save y2logs - "
+ "exit code %1").arg( exitStatus ),
+ QMessageBox::Ok | QMessageBox::Default, // button0
+ QMessageBox::NoButton, // button1
+ QMessageBox::NoButton ); // button2
+ }
+
+
+ delete proc;
+
+ lock=false;
+
+}
+
+
+void YQSaveLogs::SaveLogs()
+{
+ QString fileName = askForSaveFileName( "/tmp/y2logs.tgz", // startWith
+ "*.tgz *.tar.gz", // filter
+ "Save y2logs to..." ); // headline
+
+ if ( ! fileName.isEmpty() )
+ {
+ QString saveLogsCommand = "/sbin/save_y2logs";
+ QStringList args = QStringList() << fileName;
+
+ if ( access( saveLogsCommand.toAscii(), X_OK ) == 0 )
+ {
+ lock = true;
+
+ proc = new QProcess( this );
+
+ connect ( proc, SIGNAL(finished( int, QProcess::ExitStatus )), this,
+ SLOT(saveProcessExited( int, QProcess::ExitStatus )));
+
+ proc->start( saveLogsCommand, args );
+ int result = proc->exitCode();
+
+ if ( result != 0 )
+ {
+ // unable to start command (errors while running command are handled by saveProcessExited)
+
+ QMessageBox::warning( 0, // parent
+ "Error", // caption
+ QString( "Couldn't save y2logs to %1 - "
+ "exit code %2" ).arg( fileName ).arg( result ),
+ QMessageBox::Ok | QMessageBox::Default, // button0
+ QMessageBox::NoButton, // button1
+ QMessageBox::NoButton ); // button2
+
+ delete proc;
+
+ lock = false;
+ }
+ else
+ {
+ emit statusMsg( _("Writing log files ...") );
+ }
+ }
+ else
+ {
+ QMessageBox::warning( 0, // parent
+ "Error", // caption
+ QString( "Couldn't save y2logs to %1:\n"
+ "Command %2 not found" ).arg( fileName ).arg( saveLogsCommand ),
+ QMessageBox::Ok | QMessageBox::Default, // button0
+ QMessageBox::NoButton, // button1
+ QMessageBox::NoButton ); // button2
+ }
+ }
+}
+
+QString YQSaveLogs::askForSaveFileName( const QString & startWith,
+ const QString & filter,
+ const QString & headline )
+{
+ QString file_name;
+ bool try_again = false;
+
+ do
+ {
+ // Leave the mouse cursor alone - this function might be called from
+ // some other widget, not only from AskForSaveFileName().
+
+ file_name = QFileDialog::getSaveFileName( 0, // parent
+ headline, // caption
+ startWith, // initial dir
+ filter );
+
+ if ( file_name.isEmpty() ) // this includes file_name.isNull()
+ return QString::null;
+
+
+ if ( access( file_name.toAscii(), F_OK ) == 0 ) // file exists?
+ {
+ QString msg;
+
+ if ( access( file_name.toAscii(), W_OK ) == 0 )
+ {
+ // Confirm if the user wishes to overwrite an existing file
+ msg = ( _( "%1 exists! Really overwrite?" ) ).arg( file_name );
+ }
+ else
+ {
+ // Confirm if the user wishes to overwrite a write-protected file %1
+ msg = ( _( "%1 exists and is write-protected!\nReally overwrite?" ) ).arg( file_name );
+ }
+
+ int button_no = QMessageBox::information( 0,
+ // Window title for confirmation dialog
+ _( "Confirm" ),
+ msg,
+ _( "C&ontinue" ),
+ _( "&Cancel" ) );
+ try_again = ( button_no != 0 );
+ }
+
+ } while ( try_again );
+
+ return file_name;
+}
+
+#include <yqsavelogs.moc>
Added: branches/SuSE-Code-11-SP1-Branch/control-center/src/yqsavelogs.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/contr…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/control-center/src/yqsavelogs.h (added)
+++ branches/SuSE-Code-11-SP1-Branch/control-center/src/yqsavelogs.h Mon May 23 15:58:18 2011
@@ -0,0 +1,51 @@
+/***************************************************************************
+ yqsavelogs.h - Save YaST Logs
+ author : tgoettlicher(a)suse.de
+ ***************************************************************************/
+
+#ifndef YQSAVELOGS_H
+#define YQSAVELOGS_H
+
+// include files for QT
+#include <QString>
+#include <QProcess>
+
+
+// application specific includes
+#include "i18n.h"
+
+/**
+ * This Class asks for a filename and saves YaST logfies
+ */
+class YQSaveLogs : public QObject
+{
+ Q_OBJECT
+
+public:
+
+ YQSaveLogs();
+ ~YQSaveLogs();
+
+public slots:
+ void saveProcessExited( int exitCode, QProcess::ExitStatus exitStatus );
+ void save();
+
+
+protected:
+
+signals:
+ void statusMsg( const QString& msg );
+
+private:
+
+ bool lock;
+ QProcess * proc;
+
+ void SaveLogs();
+ QString askForSaveFileName( const QString & startWith,
+ const QString & filter,
+ const QString & headline );
+
+};
+#endif
+
--
To unsubscribe, e-mail: yast-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: yast-commit+help(a)opensuse.org
1
0
[yast-commit] r64087 - in /branches/SuSE-Code-11-SP1-Branch/libyui: ./ package/ src/
by tgoettlicher@svn2.opensuse.org 23 May '11
by tgoettlicher@svn2.opensuse.org 23 May '11
23 May '11
Author: tgoettlicher
Date: Mon May 23 15:44:12 2011
New Revision: 64087
URL: http://svn.opensuse.org/viewcvs/yast?rev=64087&view=rev
Log:
backported trunk to sp2
Modified:
branches/SuSE-Code-11-SP1-Branch/libyui/VERSION
branches/SuSE-Code-11-SP1-Branch/libyui/package/yast2-libyui.changes
branches/SuSE-Code-11-SP1-Branch/libyui/src/FSize.cc
branches/SuSE-Code-11-SP1-Branch/libyui/src/FSize.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/ImplPtr.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/Makefile.am
branches/SuSE-Code-11-SP1-Branch/libyui/src/TreeItem.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YAlignment.cc
branches/SuSE-Code-11-SP1-Branch/libyui/src/YAlignment.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YApplication.cc
branches/SuSE-Code-11-SP1-Branch/libyui/src/YApplication.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YBarGraph.cc
branches/SuSE-Code-11-SP1-Branch/libyui/src/YBarGraph.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YBothDim.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YBuiltinCaller.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YBusyIndicator.cc
branches/SuSE-Code-11-SP1-Branch/libyui/src/YBusyIndicator.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YButtonBox.cc
branches/SuSE-Code-11-SP1-Branch/libyui/src/YButtonBox.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YCheckBox.cc
branches/SuSE-Code-11-SP1-Branch/libyui/src/YCheckBox.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YCheckBoxFrame.cc
branches/SuSE-Code-11-SP1-Branch/libyui/src/YCheckBoxFrame.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YChildrenManager.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YColor.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YComboBox.cc
branches/SuSE-Code-11-SP1-Branch/libyui/src/YComboBox.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YCommandLine.cc
branches/SuSE-Code-11-SP1-Branch/libyui/src/YCommandLine.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YContextMenu.cc
branches/SuSE-Code-11-SP1-Branch/libyui/src/YContextMenu.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YDateField.cc
branches/SuSE-Code-11-SP1-Branch/libyui/src/YDateField.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YDialog.cc
branches/SuSE-Code-11-SP1-Branch/libyui/src/YDialog.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YDialogSpy.cc
branches/SuSE-Code-11-SP1-Branch/libyui/src/YDialogSpy.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YDownloadProgress.cc
branches/SuSE-Code-11-SP1-Branch/libyui/src/YDownloadProgress.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YDumbTab.cc
branches/SuSE-Code-11-SP1-Branch/libyui/src/YDumbTab.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YEmpty.cc
branches/SuSE-Code-11-SP1-Branch/libyui/src/YEmpty.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YEnvVar.cc
branches/SuSE-Code-11-SP1-Branch/libyui/src/YEnvVar.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YEvent.cc
branches/SuSE-Code-11-SP1-Branch/libyui/src/YEvent.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YEventFilter.cc
branches/SuSE-Code-11-SP1-Branch/libyui/src/YEventFilter.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YFrame.cc
branches/SuSE-Code-11-SP1-Branch/libyui/src/YFrame.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YGraph.cc
branches/SuSE-Code-11-SP1-Branch/libyui/src/YGraph.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YGraphPlugin.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YIconLoader.cc
branches/SuSE-Code-11-SP1-Branch/libyui/src/YIconLoader.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YImage.cc
branches/SuSE-Code-11-SP1-Branch/libyui/src/YImage.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YInputField.cc
branches/SuSE-Code-11-SP1-Branch/libyui/src/YInputField.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YIntField.cc
branches/SuSE-Code-11-SP1-Branch/libyui/src/YIntField.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YItem.cc
branches/SuSE-Code-11-SP1-Branch/libyui/src/YItem.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YLabel.cc
branches/SuSE-Code-11-SP1-Branch/libyui/src/YLabel.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YLayoutBox.cc
branches/SuSE-Code-11-SP1-Branch/libyui/src/YLayoutBox.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YLogView.cc
branches/SuSE-Code-11-SP1-Branch/libyui/src/YLogView.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YMacro.cc
branches/SuSE-Code-11-SP1-Branch/libyui/src/YMacro.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YMacroPlayer.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YMacroRecorder.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YMenuButton.cc
branches/SuSE-Code-11-SP1-Branch/libyui/src/YMenuButton.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YMenuItem.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YMultiLineEdit.cc
branches/SuSE-Code-11-SP1-Branch/libyui/src/YMultiLineEdit.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YMultiProgressMeter.cc
branches/SuSE-Code-11-SP1-Branch/libyui/src/YMultiProgressMeter.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YMultiSelectionBox.cc
branches/SuSE-Code-11-SP1-Branch/libyui/src/YMultiSelectionBox.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YOptionalWidgetFactory.cc
branches/SuSE-Code-11-SP1-Branch/libyui/src/YOptionalWidgetFactory.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YPackageSelector.cc
branches/SuSE-Code-11-SP1-Branch/libyui/src/YPackageSelector.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YPackageSelectorPlugin.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YPartitionSplitter.cc
branches/SuSE-Code-11-SP1-Branch/libyui/src/YPartitionSplitter.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YProgressBar.cc
branches/SuSE-Code-11-SP1-Branch/libyui/src/YProgressBar.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YProperty.cc
branches/SuSE-Code-11-SP1-Branch/libyui/src/YProperty.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YPushButton.cc
branches/SuSE-Code-11-SP1-Branch/libyui/src/YPushButton.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YRadioButton.cc
branches/SuSE-Code-11-SP1-Branch/libyui/src/YRadioButton.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YRadioButtonGroup.cc
branches/SuSE-Code-11-SP1-Branch/libyui/src/YRadioButtonGroup.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YReplacePoint.cc
branches/SuSE-Code-11-SP1-Branch/libyui/src/YReplacePoint.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YRichText.cc
branches/SuSE-Code-11-SP1-Branch/libyui/src/YRichText.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YRpmGroupsTree.cc
branches/SuSE-Code-11-SP1-Branch/libyui/src/YRpmGroupsTree.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YSelectionBox.cc
branches/SuSE-Code-11-SP1-Branch/libyui/src/YSelectionBox.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YSelectionWidget.cc
branches/SuSE-Code-11-SP1-Branch/libyui/src/YSelectionWidget.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YShortcut.cc
branches/SuSE-Code-11-SP1-Branch/libyui/src/YShortcut.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YShortcutManager.cc
branches/SuSE-Code-11-SP1-Branch/libyui/src/YShortcutManager.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YSimpleEventHandler.cc
branches/SuSE-Code-11-SP1-Branch/libyui/src/YSimpleEventHandler.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YSimpleInputField.cc
branches/SuSE-Code-11-SP1-Branch/libyui/src/YSimpleInputField.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YSingleChildContainerWidget.cc
branches/SuSE-Code-11-SP1-Branch/libyui/src/YSingleChildContainerWidget.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YSlider.cc
branches/SuSE-Code-11-SP1-Branch/libyui/src/YSlider.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YSpacing.cc
branches/SuSE-Code-11-SP1-Branch/libyui/src/YSpacing.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YSquash.cc
branches/SuSE-Code-11-SP1-Branch/libyui/src/YSquash.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YStringTree.cc
branches/SuSE-Code-11-SP1-Branch/libyui/src/YStringTree.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YTable.cc
branches/SuSE-Code-11-SP1-Branch/libyui/src/YTable.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YTableHeader.cc
branches/SuSE-Code-11-SP1-Branch/libyui/src/YTableHeader.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YTableItem.cc
branches/SuSE-Code-11-SP1-Branch/libyui/src/YTableItem.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YTimeField.cc
branches/SuSE-Code-11-SP1-Branch/libyui/src/YTimeField.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YTimezoneSelector.cc
branches/SuSE-Code-11-SP1-Branch/libyui/src/YTimezoneSelector.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YTransText.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YTree.cc
branches/SuSE-Code-11-SP1-Branch/libyui/src/YTree.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YTreeItem.cc
branches/SuSE-Code-11-SP1-Branch/libyui/src/YTreeItem.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YTypes.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YUI.cc
branches/SuSE-Code-11-SP1-Branch/libyui/src/YUI.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YUIException.cc
branches/SuSE-Code-11-SP1-Branch/libyui/src/YUIException.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YUILoader.cc
branches/SuSE-Code-11-SP1-Branch/libyui/src/YUILoader.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YUILog.cc
branches/SuSE-Code-11-SP1-Branch/libyui/src/YUILog.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YUIPlugin.cc
branches/SuSE-Code-11-SP1-Branch/libyui/src/YUIPlugin.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YUISymbols.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YWidget.cc
branches/SuSE-Code-11-SP1-Branch/libyui/src/YWidget.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YWidgetFactory.cc
branches/SuSE-Code-11-SP1-Branch/libyui/src/YWidgetFactory.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YWidgetID.cc
branches/SuSE-Code-11-SP1-Branch/libyui/src/YWidgetID.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YWidget_OptimizeChanges.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YWizard.cc
branches/SuSE-Code-11-SP1-Branch/libyui/src/YWizard.h
branches/SuSE-Code-11-SP1-Branch/libyui/yast2-libyui.spec.in
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/VERSION
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/VERSION (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/VERSION Mon May 23 15:44:12 2011
@@ -1 +1 @@
-2.18.8
+2.21.1
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/package/yast2-libyui.changes
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/package/yast2-libyui.changes (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/package/yast2-libyui.changes Mon May 23 15:44:12 2011
@@ -1,4 +1,57 @@
-------------------------------------------------------------------
+Tue Apr 19 12:09:27 CEST 2011 - tgoettlicher(a)suse.de
+
+- Don't allow recursive selection for non-multiselection widgets
+- V 2.21.1
+
+-------------------------------------------------------------------
+Fri Apr 15 16:14:13 CEST 2011 - tgoettlicher(a)suse.de
+
+- Added support for recursive selection in tree widgets
+- V 2.20.3
+
+-------------------------------------------------------------------
+Fri Feb 11 11:41:53 CET 2011 - tgoettlicher(a)suse.de
+
+- Fixed segfault for currentItem on tree widget
+- V 2.20.2
+
+-------------------------------------------------------------------
+Tue Feb 8 12:16:30 CET 2011 - tgoettlicher(a)suse.de
+
+- Added support for currentItem to tree widget
+- V 2.20.1
+
+-------------------------------------------------------------------
+Thu Feb 3 15:05:30 CET 2011 - tgoettlicher(a)suse.de
+
+- V 2.20.0
+
+-------------------------------------------------------------------
+Mon Dec 20 16:44:56 CET 2010 - tgoettlicher(a)suse.de
+
+- Added support for check boxes in tree widgets
+- V 2.19.2
+
+-------------------------------------------------------------------
+Fri Apr 9 17:29:14 CEST 2010 - tgoettlicher(a)suse.de
+
+- Fixed endless loop in layout algorithm (bnc #558699)
+- V 2.19.1
+
+-------------------------------------------------------------------
+Tue Mar 2 12:38:32 UTC 2010 - coolo(a)novell.com
+
+- Fixing undefined behaviour that triggers a crash with
+ gcc 4.5 (bnc#582088)
+- V 2.19.0
+
+-------------------------------------------------------------------
+Tue Feb 9 17:32:06 CET 2010 - tgoettlicher(a)suse.de
+
+- added license headers
+
+-------------------------------------------------------------------
Tue Jul 28 17:22:58 CEST 2009 - kmachalkova(a)suse.cz
- Search for icons in several possible directories (using
@@ -269,3 +322,4 @@
- Package split off from yast2-core
- V 2.16.37
+-------------------------------------------------------------------
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/FSize.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/FSize.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/FSize.cc Mon May 23 15:44:12 2011
@@ -1,3 +1,25 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/FSize.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/FSize.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/FSize.h Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/ImplPtr.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/ImplPtr.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/ImplPtr.h Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/Makefile.am
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/Makefile.am (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/Makefile.am Mon May 23 15:44:12 2011
@@ -14,7 +14,7 @@
lib_LTLIBRARIES = libyui.la
-libyui_la_LDFLAGS = -version-info 3:0:0 -Wl,--no-undefined
+libyui_la_LDFLAGS = -version-info 4:0:0 -Wl,--no-undefined
libyui_la_LIBADD = -lpthread -ldl
libyui_la_SOURCES = \
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/TreeItem.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/TreeItem.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/TreeItem.h Mon May 23 15:44:12 2011
@@ -1,3 +1,25 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YAlignment.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YAlignment.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YAlignment.cc Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
@@ -233,8 +254,8 @@
YBothDim<int> newChildSize;
YBothDim<int> newChildPos;
-
- for ( YUIDimension dim = YD_HORIZ; dim <= YD_VERT; dim = (YUIDimension) (dim+1) )
+ YUIDimension dim = YD_HORIZ;
+ while ( true ) // only toggle
{
int childPreferredSize = firstChild()->preferredSize( dim );
int preferredSize = childPreferredSize + totalMargin[ dim ];
@@ -296,6 +317,12 @@
}
newChildPos[ dim ] += offset[ dim ];
+
+ // we need to get out of this loop after the second run
+ if (dim == YD_HORIZ)
+ dim = YD_VERT;
+ else
+ break;
}
firstChild()->setSize( newChildSize.hor, newChildSize.vert );
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YAlignment.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YAlignment.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YAlignment.h Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YApplication.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YApplication.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YApplication.cc Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YApplication.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YApplication.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YApplication.h Mon May 23 15:44:12 2011
@@ -1,3 +1,25 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YBarGraph.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YBarGraph.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YBarGraph.cc Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YBarGraph.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YBarGraph.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YBarGraph.h Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YBothDim.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YBothDim.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YBothDim.h Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YBuiltinCaller.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YBuiltinCaller.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YBuiltinCaller.h Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YBusyIndicator.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YBusyIndicator.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YBusyIndicator.cc Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YBusyIndicator.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YBusyIndicator.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YBusyIndicator.h Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YButtonBox.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YButtonBox.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YButtonBox.cc Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YButtonBox.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YButtonBox.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YButtonBox.h Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YCheckBox.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YCheckBox.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YCheckBox.cc Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YCheckBox.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YCheckBox.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YCheckBox.h Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YCheckBoxFrame.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YCheckBoxFrame.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YCheckBoxFrame.cc Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YCheckBoxFrame.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YCheckBoxFrame.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YCheckBoxFrame.h Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YChildrenManager.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YChildrenManager.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YChildrenManager.h Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YColor.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YColor.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YColor.h Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YComboBox.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YComboBox.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YComboBox.cc Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YComboBox.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YComboBox.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YComboBox.h Mon May 23 15:44:12 2011
@@ -1,3 +1,23 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YCommandLine.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YCommandLine.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YCommandLine.cc Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YCommandLine.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YCommandLine.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YCommandLine.h Mon May 23 15:44:12 2011
@@ -1,3 +1,23 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YContextMenu.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YContextMenu.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YContextMenu.cc Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YContextMenu.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YContextMenu.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YContextMenu.h Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YDateField.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YDateField.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YDateField.cc Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YDateField.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YDateField.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YDateField.h Mon May 23 15:44:12 2011
@@ -1,3 +1,23 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YDialog.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YDialog.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YDialog.cc Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YDialog.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YDialog.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YDialog.h Mon May 23 15:44:12 2011
@@ -1,3 +1,23 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YDialogSpy.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YDialogSpy.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YDialogSpy.cc Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
@@ -134,7 +155,7 @@
YAlignment * minSize = fac->createMinSize( vbox, TREE_WIDTH, TREE_HEIGHT );
minSize->setWeight( YD_VERT, TREE_VWEIGHT );
- priv->widgetTree = fac->createTree( minSize, "Widget &Tree" );
+ priv->widgetTree = fac->createTree( minSize, "Widget &Tree", false );
priv->widgetTree->setNotify( true );
YWidgetTreeItem * rootItem = new YWidgetTreeItem( targetDialog, true );
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YDialogSpy.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YDialogSpy.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YDialogSpy.h Mon May 23 15:44:12 2011
@@ -1,3 +1,23 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YDownloadProgress.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YDownloadProgress.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YDownloadProgress.cc Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YDownloadProgress.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YDownloadProgress.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YDownloadProgress.h Mon May 23 15:44:12 2011
@@ -1,3 +1,23 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YDumbTab.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YDumbTab.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YDumbTab.cc Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YDumbTab.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YDumbTab.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YDumbTab.h Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YEmpty.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YEmpty.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YEmpty.cc Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YEmpty.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YEmpty.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YEmpty.h Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YEnvVar.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YEnvVar.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YEnvVar.cc Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YEnvVar.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YEnvVar.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YEnvVar.h Mon May 23 15:44:12 2011
@@ -1,3 +1,23 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YEvent.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YEvent.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YEvent.cc Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YEvent.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YEvent.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YEvent.h Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YEventFilter.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YEventFilter.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YEventFilter.cc Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YEventFilter.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YEventFilter.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YEventFilter.h Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YFrame.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YFrame.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YFrame.cc Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YFrame.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YFrame.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YFrame.h Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YGraph.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YGraph.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YGraph.cc Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YGraph.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YGraph.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YGraph.h Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YGraphPlugin.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YGraphPlugin.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YGraphPlugin.h Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YIconLoader.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YIconLoader.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YIconLoader.cc Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
#define YUILogComponent "ui"
#include "YUILog.h"
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YIconLoader.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YIconLoader.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YIconLoader.h Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
#ifndef YIconLoader_H
#define YIconLoader_H
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YImage.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YImage.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YImage.cc Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YImage.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YImage.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YImage.h Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YInputField.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YInputField.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YInputField.cc Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YInputField.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YInputField.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YInputField.h Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YIntField.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YIntField.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YIntField.cc Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YIntField.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YIntField.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YIntField.h Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YItem.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YItem.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YItem.cc Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YItem.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YItem.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YItem.h Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YLabel.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YLabel.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YLabel.cc Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YLabel.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YLabel.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YLabel.h Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YLayoutBox.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YLayoutBox.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YLayoutBox.cc Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
@@ -602,6 +623,8 @@
// Distribute loss
+ int oldTooSmall = tooSmall;
+ int oldLoserCount = loserCount;
while ( tooSmall > 0 && loserCount > 0 )
{
if ( debugLayout() )
@@ -654,6 +677,16 @@
<< endl;
}
}
+
+ if ( oldTooSmall == tooSmall &&
+ oldLoserCount == loserCount )
+ {
+ yuiWarning() << "Preventing endless loop while layout space distribution. Break." << endl;
+ break;
+ }
+
+ oldTooSmall = tooSmall;
+ oldLoserCount = loserCount;
}
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YLayoutBox.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YLayoutBox.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YLayoutBox.h Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YLogView.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YLogView.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YLogView.cc Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YLogView.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YLogView.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YLogView.h Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YMacro.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YMacro.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YMacro.cc Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YMacro.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YMacro.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YMacro.h Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YMacroPlayer.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YMacroPlayer.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YMacroPlayer.h Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YMacroRecorder.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YMacroRecorder.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YMacroRecorder.h Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YMenuButton.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YMenuButton.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YMenuButton.cc Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YMenuButton.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YMenuButton.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YMenuButton.h Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YMenuItem.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YMenuItem.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YMenuItem.h Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YMultiLineEdit.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YMultiLineEdit.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YMultiLineEdit.cc Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YMultiLineEdit.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YMultiLineEdit.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YMultiLineEdit.h Mon May 23 15:44:12 2011
@@ -1,3 +1,23 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YMultiProgressMeter.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YMultiProgressMeter.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YMultiProgressMeter.cc Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YMultiProgressMeter.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YMultiProgressMeter.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YMultiProgressMeter.h Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YMultiSelectionBox.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YMultiSelectionBox.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YMultiSelectionBox.cc Mon May 23 15:44:12 2011
@@ -1,3 +1,25 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YMultiSelectionBox.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YMultiSelectionBox.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YMultiSelectionBox.h Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YOptionalWidgetFactory.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YOptionalWidgetFactory.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YOptionalWidgetFactory.cc Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YOptionalWidgetFactory.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YOptionalWidgetFactory.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YOptionalWidgetFactory.h Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YPackageSelector.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YPackageSelector.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YPackageSelector.cc Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YPackageSelector.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YPackageSelector.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YPackageSelector.h Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YPackageSelectorPlugin.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YPackageSelectorPlugin.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YPackageSelectorPlugin.h Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YPartitionSplitter.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YPartitionSplitter.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YPartitionSplitter.cc Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YPartitionSplitter.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YPartitionSplitter.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YPartitionSplitter.h Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YProgressBar.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YProgressBar.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YProgressBar.cc Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YProgressBar.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YProgressBar.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YProgressBar.h Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YProperty.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YProperty.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YProperty.cc Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YProperty.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YProperty.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YProperty.h Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YPushButton.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YPushButton.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YPushButton.cc Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YPushButton.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YPushButton.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YPushButton.h Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YRadioButton.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YRadioButton.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YRadioButton.cc Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YRadioButton.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YRadioButton.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YRadioButton.h Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YRadioButtonGroup.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YRadioButtonGroup.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YRadioButtonGroup.cc Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YRadioButtonGroup.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YRadioButtonGroup.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YRadioButtonGroup.h Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YReplacePoint.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YReplacePoint.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YReplacePoint.cc Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YReplacePoint.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YReplacePoint.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YReplacePoint.h Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YRichText.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YRichText.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YRichText.cc Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YRichText.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YRichText.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YRichText.h Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YRpmGroupsTree.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YRpmGroupsTree.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YRpmGroupsTree.cc Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YRpmGroupsTree.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YRpmGroupsTree.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YRpmGroupsTree.h Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YSelectionBox.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YSelectionBox.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YSelectionBox.cc Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YSelectionBox.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YSelectionBox.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YSelectionBox.h Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YSelectionWidget.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YSelectionWidget.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YSelectionWidget.cc Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
@@ -29,13 +50,16 @@
struct YSelectionWidgetPrivate
{
YSelectionWidgetPrivate( const string & label,
- bool enforceSingleSelection )
+ bool enforceSingleSelection,
+ bool recursiveSelection )
: label( label )
, enforceSingleSelection( enforceSingleSelection )
+ , recursiveSelection ( recursiveSelection )
{}
string label;
bool enforceSingleSelection;
+ bool recursiveSelection;
string iconBasePath;
YItemCollection itemCollection;
};
@@ -45,11 +69,16 @@
YSelectionWidget::YSelectionWidget( YWidget * parent,
const string & label,
- bool enforceSingleSelection )
+ bool enforceSingleSelection ,
+ bool recursiveSelection )
: YWidget( parent )
- , priv( new YSelectionWidgetPrivate( label, enforceSingleSelection ) )
+ , priv( new YSelectionWidgetPrivate( label, enforceSingleSelection, recursiveSelection ) )
{
YUI_CHECK_NEW( priv );
+
+ if ( enforceSingleSelection && recursiveSelection )
+ YUI_THROW( YUIException( "recursiveSelection is only available for multiSelection Widgets."));
+
}
@@ -95,6 +124,12 @@
return priv->enforceSingleSelection;
}
+bool YSelectionWidget::recursiveSelection() const
+{
+ return priv->recursiveSelection;
+}
+
+
void YSelectionWidget::setEnforceSingleSelection( bool enforceSingleSelection )
{
@@ -382,6 +417,17 @@
oldSelectedItem->setSelected( false );
}
+
+ if ( recursiveSelection() && item->hasChildren() )
+ {
+ for ( YItemIterator it = item->childrenBegin(); it != item->childrenEnd(); ++it )
+ {
+ YItem * item = *it;
+ selectItem(item, selected );
+ item->setSelected( selected );
+ }
+ }
+
item->setSelected( selected );
}
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YSelectionWidget.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YSelectionWidget.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YSelectionWidget.h Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
@@ -48,7 +69,8 @@
**/
YSelectionWidget( YWidget * parent,
const string & label,
- bool enforceSingleSelection );
+ bool enforceSingleSelection,
+ bool recurisveSelection = false );
public:
/**
@@ -280,6 +302,11 @@
bool enforceSingleSelection() const;
/**
+ * Return 'true' if this base class should select children recursively.
+ **/
+ bool recursiveSelection() const;
+
+ /**
* Recursively try to find the first selected item between iterators
* 'begin' and 'end'. Return that item or 0 if there is none.
**/
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YShortcut.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YShortcut.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YShortcut.cc Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YShortcut.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YShortcut.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YShortcut.h Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YShortcutManager.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YShortcutManager.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YShortcutManager.cc Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YShortcutManager.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YShortcutManager.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YShortcutManager.h Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YSimpleEventHandler.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YSimpleEventHandler.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YSimpleEventHandler.cc Mon May 23 15:44:12 2011
@@ -1,3 +1,25 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YSimpleEventHandler.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YSimpleEventHandler.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YSimpleEventHandler.h Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YSimpleInputField.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YSimpleInputField.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YSimpleInputField.cc Mon May 23 15:44:12 2011
@@ -1,3 +1,25 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YSimpleInputField.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YSimpleInputField.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YSimpleInputField.h Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YSingleChildContainerWidget.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YSingleChildContainerWidget.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YSingleChildContainerWidget.cc Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YSingleChildContainerWidget.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YSingleChildContainerWidget.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YSingleChildContainerWidget.h Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YSlider.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YSlider.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YSlider.cc Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YSlider.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YSlider.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YSlider.h Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YSpacing.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YSpacing.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YSpacing.cc Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YSpacing.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YSpacing.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YSpacing.h Mon May 23 15:44:12 2011
@@ -1,3 +1,25 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YSquash.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YSquash.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YSquash.cc Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YSquash.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YSquash.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YSquash.h Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YStringTree.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YStringTree.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YStringTree.cc Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YStringTree.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YStringTree.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YStringTree.h Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YTable.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YTable.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YTable.cc Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YTable.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YTable.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YTable.h Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YTableHeader.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YTableHeader.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YTableHeader.cc Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YTableHeader.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YTableHeader.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YTableHeader.h Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YTableItem.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YTableItem.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YTableItem.cc Mon May 23 15:44:12 2011
@@ -1,3 +1,25 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YTableItem.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YTableItem.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YTableItem.h Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YTimeField.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YTimeField.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YTimeField.cc Mon May 23 15:44:12 2011
@@ -1,3 +1,25 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YTimeField.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YTimeField.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YTimeField.h Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YTimezoneSelector.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YTimezoneSelector.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YTimezoneSelector.cc Mon May 23 15:44:12 2011
@@ -1,3 +1,25 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YTimezoneSelector.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YTimezoneSelector.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YTimezoneSelector.h Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YTransText.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YTransText.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YTransText.h Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YTree.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YTree.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YTree.cc Mon May 23 15:44:12 2011
@@ -1,3 +1,25 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
@@ -35,11 +57,10 @@
};
-
-
-YTree::YTree( YWidget * parent, const string & label )
+YTree::YTree( YWidget * parent, const string & label, bool multiSelection, bool recursiveSelection )
: YSelectionWidget( parent, label,
- true ) // enforceSingleSelection
+ ! multiSelection,
+ recursiveSelection )
, priv( new YTreePrivate() )
{
YUI_CHECK_NEW( priv );
@@ -95,6 +116,7 @@
* @property map<ItemID> OpenItems Map of IDs of all open items - can only be queried, not set
* @property string Label Caption above the tree
* @property string IconPath Base path for icons
+ * @property bool MultiSelection Flag: User can select multiple items (read-only)
*/
propSet.add( YProperty( YUIProperty_Value, YOtherProperty ) );
propSet.add( YProperty( YUIProperty_CurrentItem, YOtherProperty ) );
@@ -103,7 +125,10 @@
propSet.add( YProperty( YUIProperty_OpenItems, YOtherProperty ) );
propSet.add( YProperty( YUIProperty_Label, YStringProperty ) );
propSet.add( YProperty( YUIProperty_IconPath, YStringProperty ) );
+ propSet.add( YProperty( YUIProperty_SelectedItems, YOtherProperty ) );
+ propSet.add( YProperty( YUIProperty_MultiSelection, YBoolProperty, true ) ); // read-only
propSet.add( YWidget::propertySet() );
+
}
return propSet;
@@ -120,8 +145,10 @@
else if ( propertyName == YUIProperty_CurrentBranch ) return false; // Needs special handling
else if ( propertyName == YUIProperty_Items ) return false; // Needs special handling
else if ( propertyName == YUIProperty_OpenItems ) return false; // Needs special handling
+ else if ( propertyName == YUIProperty_SelectedItems ) return false; // Needs special handling
else if ( propertyName == YUIProperty_Label ) setLabel( val.stringVal() );
else if ( propertyName == YUIProperty_IconPath ) setIconBasePath( val.stringVal() );
+
else
{
return YWidget::setProperty( propertyName, val );
@@ -143,9 +170,16 @@
else if ( propertyName == YUIProperty_OpenItems ) return YPropertyValue( YOtherProperty );
else if ( propertyName == YUIProperty_Label ) return YPropertyValue( label() );
else if ( propertyName == YUIProperty_IconPath ) return YPropertyValue( iconBasePath() );
+ else if ( propertyName == YUIProperty_SelectedItems ) return YPropertyValue( YOtherProperty );
else
{
return YWidget::getProperty( propertyName );
}
}
+bool
+YTree::hasMultiSelection() const
+{
+ return ! YSelectionWidget::enforceSingleSelection();
+}
+
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YTree.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YTree.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YTree.h Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
@@ -41,14 +62,19 @@
* (*) Not all UIs (in particular not text-based UIs) support displaying icons,
* so an icon should never be an exclusive means to display any kind of
* information.
+
+ * 'multiSelection' indicates whether or not the user can select multiple
+ * items at the same time. This can only be set in the constructor.
**/
+
+
class YTree : public YSelectionWidget
{
protected:
/**
* Constructor.
**/
- YTree( YWidget * parent, const string & label );
+ YTree( YWidget * parent, const string & label, bool multiSelection, bool recursiveSelection);
public:
/**
@@ -144,6 +170,24 @@
**/
const char * userInputProperty() { return YUIProperty_CurrentItem; }
+
+ /**
+ * Return 'true' if the user can select multiple items at the same time
+ **/
+ bool hasMultiSelection() const;
+
+ /**
+ * Return the the item that currently has the keyboard focus
+ * or 0 if no item currently has the keyboard focus.
+ *
+ * Notice that for a MultiSelectionBox the current item is not necessarily
+ * selected, i.e., its check box may or may not be checked.
+ *
+ * Derived classes are required to implement this function.
+ **/
+ virtual YTreeItem * currentItem() = 0;
+
+
private:
ImplPtr<YTreePrivate> priv;
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YTreeItem.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YTreeItem.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YTreeItem.cc Mon May 23 15:44:12 2011
@@ -1,3 +1,25 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YTreeItem.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YTreeItem.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YTreeItem.h Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
@@ -96,7 +117,7 @@
* automatically add themselves to their parent, so applications will
* normally not have to call this function.
**/
- virtual void addChild( YItem * child );
+ virtual void addChild( YItem * item_disown );
/**
* Delete all child items.
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YTypes.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YTypes.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YTypes.h Mon May 23 15:44:12 2011
@@ -1,3 +1,25 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YUI.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YUI.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YUI.cc Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YUI.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YUI.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YUI.h Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YUIException.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YUIException.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YUIException.cc Mon May 23 15:44:12 2011
@@ -1,3 +1,25 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YUIException.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YUIException.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YUIException.h Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YUILoader.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YUILoader.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YUILoader.cc Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
@@ -17,8 +38,10 @@
/-*/
#include <stdlib.h> // getenv()
-#include <unistd.h> // isatty()
+#include <unistd.h> // isatty()a
+#include <sys/stat.h>
+#include "YCommandLine.h"
#include "YUILoader.h"
#include "YUIPlugin.h"
#include "YUIException.h"
@@ -28,25 +51,38 @@
{
const char * envDisplay = getenv( "DISPLAY" );
- if ( envDisplay )
+ YCommandLine cmdline;
+
+ bool wantNcurses = cmdline.find("--ncurses") != -1;
+ bool wantQt = cmdline.find("--qt") != -1;
+ bool wantGtk = cmdline.find("--gtk") != -1;
+
+ bool haveQt = pluginExists( YUIPlugin_Qt );
+ bool haveGtk = pluginExists( YUIPlugin_Gtk );
+
+ if ( envDisplay && !wantNcurses )
{
- //
- // Qt UI
- //
-
+ string wantedGUI;
+
+ if ( haveQt && !wantGtk)
+ wantedGUI = YUIPlugin_Qt;
+ else if ( haveGtk && !wantQt )
+ wantedGUI = YUIPlugin_Gtk;
+
try
{
- loadPlugin( YUIPlugin_Qt, withThreads );
+ loadPlugin( wantedGUI, withThreads );
return;
}
catch ( YUIException & ex)
{
YUI_CAUGHT( ex );
}
+
}
if ( isatty( STDOUT_FILENO ) )
- {
+ {
//
// NCurses UI
//
@@ -88,3 +124,17 @@
YUI_THROW( YUIPluginException( name ) );
}
+
+bool YUILoader::pluginExists( const string & pluginBaseName )
+{
+ struct stat fileinfo;
+ string fullPath;
+
+ fullPath.append( PLUGINDIR "/" ); // from -DPLUGINDIR in Makefile.am
+ fullPath.append( PLUGIN_PREFIX );
+ fullPath.append( pluginBaseName );
+ fullPath.append( PLUGIN_SUFFIX );
+
+ return stat( fullPath.c_str(), &fileinfo) == 0;
+
+}
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YUILoader.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YUILoader.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YUILoader.h Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
@@ -53,6 +74,8 @@
**/
static void loadPlugin( const string & name, bool withThreads = false );
+ static bool pluginExists( const string & pluginBaseName );
+
private:
YUILoader() {}
~YUILoader() {}
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YUILog.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YUILog.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YUILog.cc Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YUILog.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YUILog.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YUILog.h Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YUIPlugin.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YUIPlugin.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YUIPlugin.cc Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
@@ -24,11 +45,6 @@
#include "YUIPlugin.h"
-
-#define PLUGIN_PREFIX "libpy2"
-#define PLUGIN_SUFFIX ".so.2"
-
-
using std::string;
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YUIPlugin.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YUIPlugin.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YUIPlugin.h Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
@@ -20,6 +41,9 @@
#ifndef YUIPlugin_h
#define YUIPlugin_h
+#define PLUGIN_PREFIX "libpy2"
+#define PLUGIN_SUFFIX ".so.2"
+
#include <string>
using std::string;
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YUISymbols.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YUISymbols.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YUISymbols.h Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
@@ -244,6 +265,7 @@
#define YUIOpt_youMode "youMode"
#define YUIOpt_zeroHeight "zeroHeight"
#define YUIOpt_zeroWidth "zeroWidth"
+#define YUIOpt_recursiveSelection "recursiveSelection"
#define YUIOpt_key_F1 "key_F1"
#define YUIOpt_key_F2 "key_F2"
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YWidget.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YWidget.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YWidget.cc Mon May 23 15:44:12 2011
@@ -1,3 +1,25 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YWidget.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YWidget.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YWidget.h Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YWidgetFactory.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YWidgetFactory.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YWidgetFactory.cc Mon May 23 15:44:12 2011
@@ -1,3 +1,25 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YWidgetFactory.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YWidgetFactory.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YWidgetFactory.h Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
@@ -101,7 +122,7 @@
virtual YRadioButton * createRadioButton ( YWidget * parent, const string & label, bool isChecked = false ) = 0;
virtual YComboBox * createComboBox ( YWidget * parent, const string & label, bool editable = false ) = 0;
virtual YSelectionBox * createSelectionBox ( YWidget * parent, const string & label ) = 0;
- virtual YTree * createTree ( YWidget * parent, const string & label ) = 0;
+ virtual YTree * createTree ( YWidget * parent, const string & label, bool multiselection = false, bool recursiveselection = false ) = 0;
virtual YTable * createTable ( YWidget * parent, YTableHeader * header_disown, bool multiSelection = false ) = 0;
virtual YProgressBar * createProgressBar ( YWidget * parent, const string & label, int maxValue = 100 ) = 0;
virtual YRichText * createRichText ( YWidget * parent, const string & text = string(), bool plainTextMode = false ) = 0;
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YWidgetID.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YWidgetID.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YWidgetID.cc Mon May 23 15:44:12 2011
@@ -1,3 +1,25 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YWidgetID.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YWidgetID.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YWidgetID.h Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YWidget_OptimizeChanges.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YWidget_OptimizeChanges.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YWidget_OptimizeChanges.h Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YWizard.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YWizard.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YWizard.cc Mon May 23 15:44:12 2011
@@ -1,3 +1,25 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YWizard.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YWizard.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YWizard.h Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/yast2-libyui.spec.in
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/yast2-libyui.spec.in (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/yast2-libyui.spec.in Mon May 23 15:44:12 2011
@@ -19,7 +19,7 @@
BuildRequires: boost-devel
Summary: YaST2 - User Interface Engine
-Provides: %{_libdir}/libyui.so.3.0.0
+Provides: %{_libdir}/libyui.so.4.0.0
%description
This is the YaST2 user interface engine that provides the abstraction
--
To unsubscribe, e-mail: yast-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: yast-commit+help(a)opensuse.org
1
0
[yast-commit] r64086 - in /branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings: ./ examples/ package/ src/
by tgoettlicher@svn2.opensuse.org 23 May '11
by tgoettlicher@svn2.opensuse.org 23 May '11
23 May '11
Author: tgoettlicher
Date: Mon May 23 15:18:39 2011
New Revision: 64086
URL: http://svn.opensuse.org/viewcvs/yast?rev=64086&view=rev
Log:
backported from trunk to sp2
Added:
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/COPYING
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/ContextMenu.ycp
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/Graph1.ycp
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/Graph2.ycp
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/IntField3.ycp
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/LICENSE.mp3.txt
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/Makefile
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/Makefile.in
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/MultiLineEdit4.ycp
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/MultiSelectionBox4.ycp
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/RichText-license.ycp
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/Tree-Checkbox.ycp
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/Tree-Checkbox2.ycp
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/Tree-Checkbox3.ycp
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/Tree-Checkbox4.ycp
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/Tree-recursive-large.ycp
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/flash-player-license.txt
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/graph1.gv
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/graph2.gv
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/graph3.gv
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/html-text-dos.txt
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/html-text-unix.txt
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/license-dos.txt.orig
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/license-long-dos.txt
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/license-long.txt
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/license.txt.orig
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/t.ycp
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/y2signal.log
Modified:
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/VERSION
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/RichText3.ycp
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/package/yast2-ycp-ui-bindings.changes
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPBuiltinCaller.cc
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPBuiltinCaller.h
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPDialogParser.cc
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPDialogParser.h
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPErrorDialog.cc
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPErrorDialog.h
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPEvent.cc
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPEvent.h
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPItem.h
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPItemParser.cc
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPItemParser.h
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPItemWriter.cc
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPItemWriter.h
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPMacroPlayer.cc
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPMacroPlayer.h
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPMacroRecorder.cc
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPMacroRecorder.h
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPMenuItem.h
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPMenuItemParser.cc
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPMenuItemParser.h
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPMenuItemWriter.cc
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPMenuItemWriter.h
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPPropertyHandler.cc
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPPropertyHandler.h
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPTableItem.h
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPTableItemParser.cc
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPTableItemParser.h
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPTableItemWriter.cc
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPTableItemWriter.h
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPTreeItem.h
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPTreeItemParser.cc
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPTreeItemParser.h
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPTreeItemWriter.cc
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPTreeItemWriter.h
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPValueWidgetID.cc
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPValueWidgetID.h
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPWizardCommandParser.cc
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPWizardCommandParser.h
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCP_UI.cc
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCP_UI.h
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCP_UI_Exception.h
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCP_util.cc
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCP_util.h
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YUIComponent.cc
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YUIComponent.h
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YUIComponentCreator.cc
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YUIComponentCreator.h
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YUINamespace.cc
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YUINamespace.h
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YWidgetOpt.h
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/yast2-ycp-ui-bindings.spec.in
Added: branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/COPYING
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/ycp-u…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/COPYING (added)
+++ branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/COPYING Mon May 23 15:18:39 2011
@@ -0,0 +1,340 @@
+ GNU GENERAL PUBLIC LICENSE
+ Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+ 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users. This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it. (Some other Free Software Foundation software is covered by
+the GNU Library General Public License instead.) You can apply it to
+your programs, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+ To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have. You must make sure that they, too, receive or can get the
+source code. And you must show them these terms so they know their
+rights.
+
+ We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+ Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software. If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+ Finally, any free program is threatened constantly by software
+patents. We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary. To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ GNU GENERAL PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License. The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language. (Hereinafter, translation is included without limitation in
+the term "modification".) Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+ 1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+ 2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+ a) You must cause the modified files to carry prominent notices
+ stating that you changed the files and the date of any change.
+
+ b) You must cause any work that you distribute or publish, that in
+ whole or in part contains or is derived from the Program or any
+ part thereof, to be licensed as a whole at no charge to all third
+ parties under the terms of this License.
+
+ c) If the modified program normally reads commands interactively
+ when run, you must cause it, when started running for such
+ interactive use in the most ordinary way, to print or display an
+ announcement including an appropriate copyright notice and a
+ notice that there is no warranty (or else, saying that you provide
+ a warranty) and that users may redistribute the program under
+ these conditions, and telling the user how to view a copy of this
+ License. (Exception: if the Program itself is interactive but
+ does not normally print such an announcement, your work based on
+ the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+ 3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+ a) Accompany it with the complete corresponding machine-readable
+ source code, which must be distributed under the terms of Sections
+ 1 and 2 above on a medium customarily used for software interchange; or,
+
+ b) Accompany it with a written offer, valid for at least three
+ years, to give any third party, for a charge no more than your
+ cost of physically performing source distribution, a complete
+ machine-readable copy of the corresponding source code, to be
+ distributed under the terms of Sections 1 and 2 above on a medium
+ customarily used for software interchange; or,
+
+ c) Accompany it with the information you received as to the offer
+ to distribute corresponding source code. (This alternative is
+ allowed only for noncommercial distribution and only if you
+ received the program in object code or executable form with such
+ an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it. For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable. However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+ 4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License. Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+ 5. You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Program or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+ 6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+ 7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all. For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+ 8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded. In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+ 9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation. If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+ 10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission. For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this. Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+ NO WARRANTY
+
+ 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+ 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Programs
+
+ If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+ To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+ <one line to give the program's name and a brief idea of what it does.>
+ Copyright (C) <year> <name of author>
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+ Gnomovision version 69, Copyright (C) year name of author
+ Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+ This is free software, and you are welcome to redistribute it
+ under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary. Here is a sample; alter the names:
+
+ Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+ `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+ <signature of Ty Coon>, 1 April 1989
+ Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs. If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library. If this is what you want to do, use the GNU Library General
+Public License instead of this License.
Modified: branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/VERSION
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/ycp-u…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/VERSION (original)
+++ branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/VERSION Mon May 23 15:18:39 2011
@@ -1 +1 @@
-2.18.5
+2.21.1
Added: branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/ContextMenu.ycp
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/ycp-u…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/ContextMenu.ycp (added)
+++ branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/ContextMenu.ycp Mon May 23 15:18:39 2011
@@ -0,0 +1,85 @@
+{
+ string formatEvent( map<string, any> event )
+ {
+ string html = "<h3>Event:</h3><p>";
+ y2milestone ("formatEvent(%1)", event);
+ foreach (string key, any value, event, ``{
+ html = html + "<font color=blue>" + key + "</font>: " + tostring (value) + "<br>";
+ });
+ html = html + "</p>";
+ return html;
+ };
+
+
+ string event_display = "<i>No event yet - click something (or wait for timeout)</i>";
+
+
+ if ( ! UI::HasSpecialWidget(`Slider) )
+ {
+ UI::OpenDialog(
+ `VBox(
+ `Label("ContextMenu not supported!"),
+ `PushButton(`opt(`default), "&Oops!")
+ )
+ );
+ UI::UserInput();
+ UI::CloseDialog();
+ return;
+ }
+
+
+
+
+
+ UI::OpenDialog(
+ `VBox(
+ `SelectionBox( `id(`sport), `opt(`notify,`immediate, `notifyContextMenu),
+ "Select your sport:",
+ [
+ "Swimming",
+ "Cycling",
+ "Running"
+ ] ),
+ `RichText(`id(`event_display), event_display ),
+ `PushButton(`id(`close), "&OK")
+ ) );
+
+ //
+ // Event loop
+ //
+
+ map <string, any> event = $[];
+
+
+ repeat
+ {
+ event = UI::WaitForEvent( 100000 );
+ if ( event != nil )
+ {
+ UI::ChangeWidget(`event_display, `Value, formatEvent( event ) );
+ }
+
+ if ( event != nil && event["EventReason"]:"" == "ContextMenuActivated" )
+ {
+/* UI::OpenContextMenu( `menu(
+ [ `item(`id(`folder), "&Folder"),
+ `item(`id(`text), "&Text File" ),
+ `item(`id(`image), "&Image" )
+ ])); */
+
+
+UI::OpenContextMenu( `menu(
+ [ `item(`id(`instruct), "Instruc&tions" ),
+ `menu( "&Execute",
+ [ `item(`id(`training),
+ "&Training" ),
+ `item(`id(`race),
+ "&Race" ) ]) ] ));
+
+
+ }
+ } until ( event["ID"]:nil == `close );
+
+
+ UI::CloseDialog();
+}
Added: branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/Graph1.ycp
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/ycp-u…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/Graph1.ycp (added)
+++ branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/Graph1.ycp Mon May 23 15:18:39 2011
@@ -0,0 +1,33 @@
+// Graph1.ycp
+{
+ if (!UI::HasSpecialWidget(`Graph))
+ {
+ UI::OpenDialog(
+ `VBox(
+ `Label("Error: This UI doesn't support the Graph widget!"),
+ `PushButton(`opt(`default), "&OK")
+ )
+ );
+ UI::UserInput();
+ UI::CloseDialog();
+ return;
+ }
+
+ UI::OpenDialog(
+ `VBox(
+ `HSpacing(60),
+ `Graph(`id(`graph), "graph1.gv", "dot"),
+ `PushButton(`id(`close), `opt(`default), "&Close")
+ )
+ );
+
+ while (true)
+ {
+ symbol widget = (symbol) UI::UserInput();
+
+ if (widget == `close || widget == `cancel)
+ break;
+ }
+
+ UI::CloseDialog();
+}
Added: branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/Graph2.ycp
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/ycp-u…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/Graph2.ycp (added)
+++ branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/Graph2.ycp Mon May 23 15:18:39 2011
@@ -0,0 +1,53 @@
+// Graph2.ycp
+{
+ if (!UI::HasSpecialWidget(`Graph))
+ {
+ UI::OpenDialog(
+ `VBox(
+ `Label("Error: This UI doesn't support the Graph widget!"),
+ `PushButton(`opt(`default), "&OK")
+ )
+ );
+ UI::UserInput();
+ UI::CloseDialog();
+ return;
+ }
+
+ UI::OpenDialog(
+ `VBox(
+ `HSpacing(60),
+ `Graph(`id(`graph), "graph1.gv", "dot"),
+ `HBox(
+ `PushButton(`id(`load1), `opt(`default), "Load 1"),
+ `PushButton(`id(`load2), `opt(`default), "Load 2"),
+ `PushButton(`id(`load3), `opt(`default), "Load 3"),
+ `PushButton(`id(`close), `opt(`default), "&Close")
+ )
+ )
+ );
+
+ while (true)
+ {
+ symbol widget = (symbol) UI::UserInput();
+
+ switch (widget)
+ {
+ case `load1:
+ UI::ChangeWidget(`id(`graph), `Filename, "graph1.gv");
+ break;
+
+ case `load2:
+ UI::ChangeWidget(`id(`graph), `Filename, "graph2.gv");
+ break;
+
+ case `load3:
+ UI::ChangeWidget(`id(`graph), `Filename, "graph3.gv");
+ break;
+ }
+
+ if (widget == `close || widget == `cancel)
+ break;
+ }
+
+ UI::CloseDialog();
+}
Added: branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/IntField3.ycp
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/ycp-u…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/IntField3.ycp (added)
+++ branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/IntField3.ycp Mon May 23 15:18:39 2011
@@ -0,0 +1,14 @@
+{
+ // `IntField in combination with `HWeight
+ // (test case for ncurses bug #488757)
+ UI::OpenDialog(
+ `HBox(
+ `HWeight(1,
+ `IntField( "short", 0, 10000, 50)),
+ `HWeight(1,
+ `PushButton(`opt(`default), "long label"))
+ )
+ );
+ UI::UserInput();
+ UI::CloseDialog();
+}
Added: branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/LICENSE.mp3.txt
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/ycp-u…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/LICENSE.mp3.txt (added)
+++ branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/LICENSE.mp3.txt Mon May 23 15:18:39 2011
@@ -0,0 +1,175 @@
+FLUENDO MP3 PLUG-IN FOR GSTREAMER COMMERCIAL LICENSE
+AGREEMENT BY FLUENDO, S.A. (âFLUENDOâ)
+
+IMPORTANT â READ CAREFULLY
+THE FOLLOWING LICENSE AGREEMENT AS AMENDED FROM TIME TO TIME AND
+AVAILABLE WITH THIS PACKAGE (THE âLICENSE AGREEMENTâ)GOVERNS THE
+DOWNLOADING, INSTALLATION AND/OR USE OF FLUENDOâS PROPRIETARY SOFTWARE
+âMP3 PLUG-IN FOR GSTREAMERâ, INCLUDING ANY COMPONENTS,
+COPIES, UPDATES,ENHANCEMENTS, UPGRADES OR SUBSEQUENT VERSIONS THEREOF
+THAT MAY BE RELEASED BY FLUENDO (COLLECTIVELY, THE âSOFTWAREâ) AND ANY
+ACCOMPANYING MANUALS, HELP FILES AND DOCUMENTATION (THE "DOCUMENTATION").
+PLEASE READ THE TERMS AND CONDITIONS OF THIS LICENSE AGREEMENT AS BY
+DOWNLOADING, USING AND/OR INSTALLING THE SOFTWARE YOU (THE âLICENSEEâ)
+CONSENT AND AGREE TO BE BOUND BY ALL OF THE TERMS AND CONDITIONS OF THIS
+LICENSE AGREEMENT. YOU MAY DOWNLOAD, INSTALL AND/OR USE THE SOFTWARE
+SUBJECT TO THOSE TERMS AND CONDITIONS AND TO ANY APPLICABLE LAW, BEING
+SOLELY LIABLE FOR ANY BREACH THEREOF. IF YOU DO NOT AGREE TO THIS
+LICENSE AGREEMENT, FLUENDO DOES NOT GRANT ANY LICENSE TO YOU FOR THE
+SOFTWARE AND YOU MAY NOT DOWNLOAD, INSTALL OR USE THE SOFTWARE.
+
+GRANT OF LICENSE AND RESTRICTIONS
+1. Subject to the Licenseeâs acceptance and continued compliance with
+ this License Agreement, Fluendo hereby grants the
+ Licensee a non-exclusive, non-transferable limited license to install,
+ use or otherwise benefit from the functionality of the Software in the
+ manner and for the purposes described in the Documentation, on a per
+ computer basis.
+
+2. Except as expressly authorized by Fluendo in writing, it is forbidden to:
+ (i) decompile, reverse engineer, disassemble or decode the Software
+ or any copy, adaptation, transcription or merged portion of the
+ Software;
+ (ii) attempt to ascertain the source code of the Software or any of its
+ components by any means, nor modify, adapt, translate or create
+ derivative works based on the Software;
+ (iii) tamper or interfere with the functionality, delivery or operation
+ of the Software while using or installing it;
+ (iv) sell, resell, rent, lease, distribute, transfer, assign, sublicense
+ or otherwise deal with the Software, its components, the Documentation
+ or any of the rights granted under this License Agreement;
+ (v) duplicate, reproduce or copy (except for reasonable backup purposes)
+ the Software or the Documentation; or
+ (vi) export or re-export the Software, directly or indirectly, into any
+ country prohibited by law.
+
+3. It is prohibited to modify, remove, suppress, or in any other way make
+ inconspicuous the copyright, digital fingerprints, watermarks,
+ identification labels, legal notices contained within the Software or
+ other technical protection devices or data identifying Fluendoâs or its
+ licensors rights in the Software, its files or its components.
+
+4. No right is granted herein to any third party to use the Software, to
+ the Licensee to use the Software for any third party, or to the Licensee
+ to utilize the Software for any purpose whatsoever not described herein.
+
+OWNERSHIP
+5. Save for the right to use the Software and the Documentation
+ expressly provided for in this License Agreement, the Licensee agrees
+ and acknowledges that all title to and rights in the Software, its
+ components, structure, databases, source code or design, and in the
+ Documentation, including without limitation all copyright trademarks,
+ trade secrets, patents, and all other intellectual or industrial
+ property rights and other confidential or proprietary information
+ contained therein remain the property of Fluendo or its licensors.
+
+LIABILITY
+6. TO THE MAXIMUM EXTENT PERMITTED BY LAW, AND PROVIDED THAT LIABILITY
+ SHALL NOT BE EXCLUDED OR LIMITED IN RESPECT OF MALICIOUS INTENT OR GROSS
+ NEGLIGENCE, FLUENDO HEREBY EXCLUDES ALL LIABILITY IN RESPECT OF:
+
+a) ANY LOSS, DAMAGES, CLAIMS OR COSTS WHATSOEVER INCLUDING ANY
+ CONSEQUENTIAL, INDIRECT OR INCIDENTAL DAMAGES, ANY LOST PROFITS OR LOST
+ SAVINGS, ANY DAMAGES RESULTING FROM BUSINESS INTERRUPTION, OR CLAIMS BY
+ A THIRD PARTY, EVEN IF A FLUENDO REPRESENTATIVE HAS BEEN ADVISED OF THE
+ POSSIBILITY OF SUCH LOSS, DAMAGES, CLAIMS OR COSTS.
+b) DAMAGES, CLAIMS OR LIABILITIES ARISING OUT OF ANY OF THE FOLLOWING:
+ (i) THE CONTENT (INCLUDING WITHOUT LIMITATION ITS NATURE OR ANY
+ INTELLECTUAL PROPERTY RIGHTS THEREIN) AND/OR ANY OTHER DATA, IMAGES,
+ VIDEOS OR SOUNDS WHATSOEVER THAT THE LICENSEE MAY ACCESS OR TRANSMIT
+ USING THE SOFTWARE;
+ (ii) LIABILITY TO ANY EMPLOYER, PRINCIPAL, CLIENT, LESSOR OR PROVIDER OF
+ COMPUTER EQUIPMENT OR FACILITIES, ARISING OUT OF THE INSTALLATION OF OR
+ USE OF THE SOFTWARE;
+ (iii) ANY CHARGES WHICH THE LICENSEE MAY INCUR TO ANY TELECOMMUNICATIONS
+ SERVICE OR NETWORK.
+
+7. FLUENDO EXPRESSLY EXCLUDES ALL LIABILITY IN CONNECTION WITH ANY THIRD
+ PARTY APPLICATIONS OR THIRD PARTY COMPONENTS THAT MAY BE INCLUDED WITHIN
+ THE SOFTWARE, OR YOUR USE THEREOF.
+
+8. TO THE MAXIMUM EXTENT PERMITTED BY LAW, FLUENDOâS AGGREGATE LIABILITY
+ AND THAT OF ITS AFFILIATES AND SUPPLIERS UNDER OR IN CONNECTION WITH
+ THIS LICENSE AGREEMENT WILL BE LIMITED IN ANY CASE TO THE AMOUNT PAID
+ FOR THE SOFTWARE, IF ANY, OR, IF HIGHER, TO THE MINIMUM AMOUNT
+ STIPULATED BY A COMPULSORY LAW.
+
+INDEMNITY
+9. BY DOWNLOADING, INSTALLING, USING OR UNINSTALLING THE SOFTWARE, THE
+ LICENSEE HEREBY AGREES TO, AT ITS OWN EXPENSE, INDEMNIFY, DEFEND AND
+ HOLD HARMLESS FLUENDO, ITS PARENTS, SUBSIDIARIES AND AFFILIATES, ITS
+ BUSINESS PARTNERS, AND ITS AND THEIR RESPECTIVE DIRECTORS, OFFICERS,
+ EMPLOYEES AND AGENTS FROM AND AGAINST ANY AND ALL LOSSES, DAMAGES,
+ INJURIES, CAUSES OF ACTION, CLAIMS, DEMANDS AND EXPENSES, INCLUDING
+ LEGAL FEES AND EXPENSES, OF WHATEVER KIND OR NATURE ARISING OUT OF,
+ RELATING TO OR RESULTING FROM ANY CLAIM ARISING FROM OR RELATING TO (I)
+ ANY BREACH BY THE LICENSEE OF THIS LICENSE AGREEMENT; OR (II) THE
+ LICENSEEâS DOWNLOAD, INSTALLATION, USE OR UNINSTALLATION OF THE
+ SOFTWARE.
+
+TERMINATION
+10. This grant of license begins upon acceptance by the Licensee, either
+ expressly or through use or possession of the Software, and shall
+ continue until terminated as provided in this License Agreement.
+
+11. The Licensee may terminate this License Agreement at any time by
+ uninstalling the Software and destroying all copies of the Software.
+ Upon any termination, the Licensee agrees to uninstall the Software and
+ return or destroy all copies of the Software, the Documentation, and all
+ other associated materials.
+
+12. The Licenseeâs failure to comply with any of the terms and conditions
+ of this License Agreement terminates the Licenseeâs right to use the
+ Software and/or the Documentation, and the Licensee will not receive a
+ refund.
+
+CONFIDENTIALITY
+13. The Software, the Documentation, the terms of this License Agreement
+ and any other related material or data disclosed by Fluendo to the
+ Licensee will be confidential (âConfidential Informationâ) and the
+ Licensee will not disclose such Confidential Information in any form to
+ any third party without the express written consent of Fluendo, except
+ to the extent that such information: (a) is previously known to the
+ Licensee; (b) becomes publicly known or independently generated through
+ no breach of this obligation; (c) is acquired by the Licensee from a
+ third party which was not under an obligation to Fluendo not to disclose
+ such information; or (d) is required to be disclosed by a court or
+ regulatory or legislative order or provision.
+
+14. The Licensee will keep the Software and the Documentation in
+ confidence in perpetuity, will take all measures necessary to protect
+ and maintain the confidential and proprietary character of the Software
+ and the Documentation, and will indemnify Fluendo from all losses and
+ damages resulting from unauthorized or improper disclosure,
+ dissemination or use of the Software or the Documentation, as a result,
+ in whole or in part, of the Licenseeâs action or inaction.
+
+GENERAL
+15. This License Agreement contains the entire agreement between the
+ Licensee and Fluendo with respect to the subject matter hereof and
+ supersedes all prior agreements, negotiations, representations of any
+ kind and proposals, written and oral, relating to its subject matter.
+
+16. If any provision of this License Agreement is declared by a court of
+ competent jurisdiction to be invalid, illegal or unenforceable, such
+ provision shall be severed from this License Agreement and the other
+ provisions shall remain in full force and effect.
+
+17. All notices given by either party to the other pursuant to this
+ License Agreement shall be in writing and delivered at its principal
+ place of business by fax or delivery service (in either case with
+ acknowledgement of receipt).
+
+18. The waiver or failure of Fluendo to exercise in any respect any
+ rights provided for in this License Agreement shall not be deemed a
+ waiver of any actual or further right under this License Agreement.
+
+19. This License Agreement shall be governed by and construed in
+ accordance with the laws of Spain, and the parties submit to the
+ exclusive jurisdiction of the Courts and Tribunals of Barcelona in
+ connection with all matters arising under this License Agreement.
+
+FLUENDO, S.A.
+C.I.F.: A-64001217
+World Trade Center Edificio Norte, 2 pl.
+08039 Barcelona
Added: branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/Makefile
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/ycp-u…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/Makefile (added)
+++ branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/Makefile Mon May 23 15:18:39 2011
@@ -0,0 +1,664 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# examples/Makefile. Generated from Makefile.in by configure.
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
+# Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+
+
+# Makefile.am for core/libyui/doc/examples
+
+
+pkgdatadir = $(datadir)/yast2-ycp-ui-bindings
+pkgincludedir = $(includedir)/yast2-ycp-ui-bindings
+pkglibdir = $(libdir)/yast2-ycp-ui-bindings
+pkglibexecdir = $(libexecdir)/yast2-ycp-ui-bindings
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = x86_64-suse-linux-gnu
+host_triplet = x86_64-suse-linux-gnu
+target_triplet = x86_64-suse-linux-gnu
+subdir = examples
+DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/libtool.m4 \
+ $(top_srcdir)/ltoptions.m4 $(top_srcdir)/ltsugar.m4 \
+ $(top_srcdir)/ltversion.m4 $(top_srcdir)/lt~obsolete.m4 \
+ $(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+AM_V_GEN = $(am__v_GEN_$(V))
+am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+am__v_GEN_0 = @echo " GEN " $@;
+AM_V_at = $(am__v_at_$(V))
+am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+am__v_at_0 = @
+SOURCES =
+DIST_SOURCES =
+RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
+ html-recursive info-recursive install-data-recursive \
+ install-dvi-recursive install-exec-recursive \
+ install-html-recursive install-info-recursive \
+ install-pdf-recursive install-ps-recursive install-recursive \
+ installcheck-recursive installdirs-recursive pdf-recursive \
+ ps-recursive uninstall-recursive
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+ if (++n[$$2] == $(am__install_max)) \
+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+ END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__installdirs = "$(DESTDIR)$(examplesdir)"
+DATA = $(examples_DATA)
+RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
+ distclean-recursive maintainer-clean-recursive
+AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
+ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
+ distdir
+ETAGS = etags
+CTAGS = ctags
+DIST_SUBDIRS = $(SUBDIRS)
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+am__relativize = \
+ dir0=`pwd`; \
+ sed_first='s,^\([^/]*\)/.*$$,\1,'; \
+ sed_rest='s,^[^/]*/*,,'; \
+ sed_last='s,^.*/\([^/]*\)$$,\1,'; \
+ sed_butlast='s,/*[^/]*$$,,'; \
+ while test -n "$$dir1"; do \
+ first=`echo "$$dir1" | sed -e "$$sed_first"`; \
+ if test "$$first" != "."; then \
+ if test "$$first" = ".."; then \
+ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
+ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
+ else \
+ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
+ if test "$$first2" = "$$first"; then \
+ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
+ else \
+ dir2="../$$dir2"; \
+ fi; \
+ dir0="$$dir0"/"$$first"; \
+ fi; \
+ fi; \
+ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
+ done; \
+ reldir="$$dir2"
+ACLOCAL = ${SHELL} /data/yast_trunk/ycp-ui-bindings/missing --run aclocal-1.11
+AGENT_LIBADD = -L$(libdir) -lscr
+ALLOCA =
+AMTAR = ${SHELL} /data/yast_trunk/ycp-ui-bindings/missing --run tar
+AM_DEFAULT_VERBOSITY = 0
+AR = ar
+AUTOCONF = ${SHELL} /data/yast_trunk/ycp-ui-bindings/missing --run autoconf
+AUTOHEADER = ${SHELL} /data/yast_trunk/ycp-ui-bindings/missing --run autoheader
+AUTOMAKE = ${SHELL} /data/yast_trunk/ycp-ui-bindings/missing --run automake-1.11
+AWK = gawk
+CAT_ENTRY_END = -->
+CAT_ENTRY_START = <!--
+CC = gcc
+CCDEPMODE = depmode=gcc3
+CFLAGS = -g -O2 -std=gnu++0x -DHAVE_CXX0X -Wall -Wformat=2 -Wmissing-prototypes
+CPP = gcc -E
+CPPFLAGS =
+CXX = g++
+CXXCPP = g++ -E
+CXXDEPMODE = depmode=gcc3
+CXXFLAGS = -g -O2 -std=gnu++0x -DHAVE_CXX0X -Wall -Wformat=2
+CYGPATH_W = echo
+DEFS = -DHAVE_CONFIG_H
+DEPDIR = .deps
+DOCBOOK_ROOT = /usr/share/xml/docbook/stylesheet/nwalsh/current
+DSYMUTIL =
+DUMPBIN =
+ECHO_C =
+ECHO_N = -n
+ECHO_T =
+EGREP = /usr/bin/grep -E
+EXEEXT =
+FGREP = /usr/bin/grep -F
+GREP = /usr/bin/grep
+INSTALL = /usr/bin/install -c -p
+INSTALL_DATA = ${INSTALL} -m 644
+INSTALL_PROGRAM = ${INSTALL}
+INSTALL_SCRIPT = ${INSTALL}
+INSTALL_STRIP_PROGRAM = $(install_sh) -c -s
+LD = /usr/x86_64-suse-linux/bin/ld -m elf_x86_64
+LDFLAGS =
+LIBOBJS =
+LIBS =
+LIBTOOL = $(SHELL) $(top_builddir)/libtool
+LIPO =
+LN_S = ln -s
+LTLIBOBJS =
+MAINTAINER = Thomas Goettlicher <tgoettlicher(a)suse.de>
+MAKEINFO = ${SHELL} /data/yast_trunk/ycp-ui-bindings/missing --run makeinfo
+MKDIR_P = /bin/mkdir -p
+NM = /usr/bin/nm -B
+NMEDIT =
+OBJDUMP = objdump
+OBJEXT = o
+OTOOL =
+OTOOL64 =
+PACKAGE = yast2-ycp-ui-bindings
+PACKAGE_BUGREPORT = http://bugs.opensuse.org/
+PACKAGE_NAME = yast2-ycp-ui-bindings
+PACKAGE_STRING = yast2-ycp-ui-bindings 2.21.1
+PACKAGE_TARNAME = yast2-ycp-ui-bindings
+PACKAGE_URL =
+PACKAGE_VERSION = 2.21.1
+PATH_SEPARATOR = :
+PKG_CONFIG = /usr/bin/pkg-config
+PKG_CONFIG_PATH =
+RANLIB = ranlib
+RPMNAME = yast2-ycp-ui-bindings
+SED = /usr/bin/sed
+SET_MAKE =
+SHELL = /bin/sh
+STRIP = strip
+STYLESHEET_CSS = /usr/share/YaST2/data/docbook/css/yast2docs.css
+STYLESHEET_HTML = /usr/share/YaST2/data/docbook/stylesheets/customize-html.xsl
+STYLESHEET_PDF = /usr/share/YaST2/data/docbook/stylesheets/customize-fo.xsl
+STYLESHEET_YCPDOC = /usr/share/YaST2/data/docbook/stylesheets/ycpdoc.xsl
+STYLESHEET_YDOC = /usr/share/YaST2/data/docbook/stylesheets/ydoc.xsl
+VERSION = 2.21.1
+XGETTEXT = /usr/bin/xgettext
+XML_CATALOG = /etc/xml/catalog
+XSLTPROC = /usr/bin/xsltproc
+XSLTPROC_FLAGS = --nonet
+Y2CORE_CFLAGS = -std=gnu++0x -DHAVE_CXX0X
+Y2CORE_LIBS =
+Y2DEVTOOLS_PREFIX = /usr
+YDOXYGEN = /usr/lib/YaST2/bin/ydoxygen
+abs_builddir = /data/yast_trunk/ycp-ui-bindings/examples
+abs_srcdir = /data/yast_trunk/ycp-ui-bindings/examples
+abs_top_builddir = /data/yast_trunk/ycp-ui-bindings
+abs_top_srcdir = /data/yast_trunk/ycp-ui-bindings
+ac_ct_CC = gcc
+ac_ct_CXX = g++
+ac_ct_DUMPBIN =
+agentdir = ${prefix}/lib/YaST2/servers_non_y2
+am__include = include
+am__leading_dot = .
+am__quote =
+am__tar = tar --format=ustar -chf - "$$tardir"
+am__untar = tar -xf -
+bindir = ${exec_prefix}/bin
+build = x86_64-suse-linux-gnu
+build_alias =
+build_cpu = x86_64
+build_os = linux-gnu
+build_vendor = suse
+builddir = .
+clientdir = ${prefix}/share/YaST2/clients
+datadir = ${datarootdir}
+datarootdir = ${prefix}/share
+desktopdir = ${prefix}/share/applications/YaST2
+docdir = ${prefix}/share/doc/packages/yast2-ycp-ui-bindings
+dvidir = ${docdir}
+exec_prefix = ${prefix}
+execcompdir = ${prefix}/lib/YaST2
+fillupdir = /var/adm/fillup-templates
+host = x86_64-suse-linux-gnu
+host_alias =
+host_cpu = x86_64
+host_os = linux-gnu
+host_vendor = suse
+htmldir = ${docdir}
+imagedir = ${prefix}/share/YaST2/images
+includedir = ${prefix}/include/YaST2
+infodir = ${datarootdir}/info
+install_sh = ${SHELL} /data/yast_trunk/ycp-ui-bindings/install-sh
+libdir = /usr/lib64
+libexecdir = ${exec_prefix}/libexec
+localedir = ${prefix}/share/YaST2/locale
+localstatedir = ${prefix}/var
+lt_ECHO = echo
+mandir = ${prefix}/share/man
+mkdir_p = /bin/mkdir -p
+moduledir = ${prefix}/share/YaST2/modules
+oldincludedir = /usr/include
+pdfdir = ${docdir}
+pkgconfigdatadir = ${datadir}/pkgconfig
+pkgconfigdir = ${libdir}/pkgconfig
+plugindir = ${libdir}/YaST2/plugin
+potdir = ${docdir}/pot
+prefix = /usr
+program_transform_name = s,x,x,
+psdir = ${docdir}
+sbindir = ${exec_prefix}/sbin
+schemadir = ${prefix}/share/YaST2/schema
+scrconfdir = ${prefix}/share/YaST2/scrconf
+sharedstatedir = ${prefix}/com
+srcdir = .
+sysconfdir = ${prefix}/etc
+target = x86_64-suse-linux-gnu
+target_alias =
+target_cpu = x86_64
+target_os = linux-gnu
+target_vendor = suse
+themedir = ${prefix}/share/YaST2/theme
+top_build_prefix = ../
+top_builddir = ..
+top_srcdir = ..
+yast2dir = ${prefix}/share/YaST2
+ybindir = ${prefix}/lib/YaST2/bin
+ydatadir = ${prefix}/share/YaST2/data
+yncludedir = ${prefix}/share/YaST2/include
+ystartupdir = ${prefix}/lib/YaST2
+examplesdir = $(docdir)/examples
+SUBDIRS = screenshots
+examples_DATA = $(wildcard *.ycp)
+EXTRA_DIST = $(examples_DATA)
+all: all-recursive
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu examples/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu examples/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+install-examplesDATA: $(examples_DATA)
+ @$(NORMAL_INSTALL)
+ test -z "$(examplesdir)" || $(MKDIR_P) "$(DESTDIR)$(examplesdir)"
+ @list='$(examples_DATA)'; test -n "$(examplesdir)" || list=; \
+ for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(examplesdir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(examplesdir)" || exit $$?; \
+ done
+
+uninstall-examplesDATA:
+ @$(NORMAL_UNINSTALL)
+ @list='$(examples_DATA)'; test -n "$(examplesdir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ test -n "$$files" || exit 0; \
+ echo " ( cd '$(DESTDIR)$(examplesdir)' && rm -f" $$files ")"; \
+ cd "$(DESTDIR)$(examplesdir)" && rm -f $$files
+
+# This directory's subdirectories are mostly independent; you can cd
+# into them and run `make' without going through this Makefile.
+# To change the values of `make' variables: instead of editing Makefiles,
+# (1) if the variable is set in `config.status', edit `config.status'
+# (which will cause the Makefiles to be regenerated when you run `make');
+# (2) otherwise, pass the desired values on the `make' command line.
+$(RECURSIVE_TARGETS):
+ @fail= failcom='exit 1'; \
+ for f in x $$MAKEFLAGS; do \
+ case $$f in \
+ *=* | --[!k]*);; \
+ *k*) failcom='fail=yes';; \
+ esac; \
+ done; \
+ dot_seen=no; \
+ target=`echo $@ | sed s/-recursive//`; \
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ echo "Making $$target in $$subdir"; \
+ if test "$$subdir" = "."; then \
+ dot_seen=yes; \
+ local_target="$$target-am"; \
+ else \
+ local_target="$$target"; \
+ fi; \
+ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ || eval $$failcom; \
+ done; \
+ if test "$$dot_seen" = "no"; then \
+ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
+ fi; test -z "$$fail"
+
+$(RECURSIVE_CLEAN_TARGETS):
+ @fail= failcom='exit 1'; \
+ for f in x $$MAKEFLAGS; do \
+ case $$f in \
+ *=* | --[!k]*);; \
+ *k*) failcom='fail=yes';; \
+ esac; \
+ done; \
+ dot_seen=no; \
+ case "$@" in \
+ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+ *) list='$(SUBDIRS)' ;; \
+ esac; \
+ rev=''; for subdir in $$list; do \
+ if test "$$subdir" = "."; then :; else \
+ rev="$$subdir $$rev"; \
+ fi; \
+ done; \
+ rev="$$rev ."; \
+ target=`echo $@ | sed s/-recursive//`; \
+ for subdir in $$rev; do \
+ echo "Making $$target in $$subdir"; \
+ if test "$$subdir" = "."; then \
+ local_target="$$target-am"; \
+ else \
+ local_target="$$target"; \
+ fi; \
+ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ || eval $$failcom; \
+ done && test -z "$$fail"
+tags-recursive:
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
+ done
+ctags-recursive:
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
+ done
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ mkid -fID $$unique
+tags: TAGS
+
+TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ set x; \
+ here=`pwd`; \
+ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
+ include_option=--etags-include; \
+ empty_fix=.; \
+ else \
+ include_option=--include; \
+ empty_fix=; \
+ fi; \
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
+ test ! -f $$subdir/TAGS || \
+ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
+ fi; \
+ done; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
+ fi
+ctags: CTAGS
+CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ test -z "$(CTAGS_ARGS)$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+ @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
+ test -d "$(distdir)/$$subdir" \
+ || $(MKDIR_P) "$(distdir)/$$subdir" \
+ || exit 1; \
+ fi; \
+ done
+ @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
+ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
+ $(am__relativize); \
+ new_distdir=$$reldir; \
+ dir1=$$subdir; dir2="$(top_distdir)"; \
+ $(am__relativize); \
+ new_top_distdir=$$reldir; \
+ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
+ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
+ ($(am__cd) $$subdir && \
+ $(MAKE) $(AM_MAKEFLAGS) \
+ top_distdir="$$new_top_distdir" \
+ distdir="$$new_distdir" \
+ am__remove_distdir=: \
+ am__skip_length_check=: \
+ am__skip_mode_fix=: \
+ distdir) \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-recursive
+all-am: Makefile $(DATA)
+installdirs: installdirs-recursive
+installdirs-am:
+ for dir in "$(DESTDIR)$(examplesdir)"; do \
+ test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+ done
+install: install-recursive
+install-exec: install-exec-recursive
+install-data: install-data-recursive
+uninstall: uninstall-recursive
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-recursive
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-recursive
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-recursive
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-tags
+
+dvi: dvi-recursive
+
+dvi-am:
+
+html: html-recursive
+
+html-am:
+
+info: info-recursive
+
+info-am:
+
+install-data-am: install-examplesDATA
+
+install-dvi: install-dvi-recursive
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-recursive
+
+install-html-am:
+
+install-info: install-info-recursive
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-recursive
+
+install-pdf-am:
+
+install-ps: install-ps-recursive
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-recursive
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-recursive
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-recursive
+
+pdf-am:
+
+ps: ps-recursive
+
+ps-am:
+
+uninstall-am: uninstall-examplesDATA
+
+.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \
+ install-am install-strip tags-recursive
+
+.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
+ all all-am check check-am clean clean-generic clean-libtool \
+ ctags ctags-recursive distclean distclean-generic \
+ distclean-libtool distclean-tags distdir dvi dvi-am html \
+ html-am info info-am install install-am install-data \
+ install-data-am install-dvi install-dvi-am \
+ install-examplesDATA install-exec install-exec-am install-html \
+ install-html-am install-info install-info-am install-man \
+ install-pdf install-pdf-am install-ps install-ps-am \
+ install-strip installcheck installcheck-am installdirs \
+ installdirs-am maintainer-clean maintainer-clean-generic \
+ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
+ ps ps-am tags tags-recursive uninstall uninstall-am \
+ uninstall-examplesDATA
+
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
Added: branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/Makefile.in
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/ycp-u…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/Makefile.in (added)
+++ branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/Makefile.in Mon May 23 15:18:39 2011
@@ -0,0 +1,664 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
+# Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+# Makefile.am for core/libyui/doc/examples
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+target_triplet = @target@
+subdir = examples
+DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/libtool.m4 \
+ $(top_srcdir)/ltoptions.m4 $(top_srcdir)/ltsugar.m4 \
+ $(top_srcdir)/ltversion.m4 $(top_srcdir)/lt~obsolete.m4 \
+ $(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+AM_V_GEN = $(am__v_GEN_$(V))
+am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+am__v_GEN_0 = @echo " GEN " $@;
+AM_V_at = $(am__v_at_$(V))
+am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+am__v_at_0 = @
+SOURCES =
+DIST_SOURCES =
+RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
+ html-recursive info-recursive install-data-recursive \
+ install-dvi-recursive install-exec-recursive \
+ install-html-recursive install-info-recursive \
+ install-pdf-recursive install-ps-recursive install-recursive \
+ installcheck-recursive installdirs-recursive pdf-recursive \
+ ps-recursive uninstall-recursive
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+ if (++n[$$2] == $(am__install_max)) \
+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+ END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__installdirs = "$(DESTDIR)$(examplesdir)"
+DATA = $(examples_DATA)
+RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
+ distclean-recursive maintainer-clean-recursive
+AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
+ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
+ distdir
+ETAGS = etags
+CTAGS = ctags
+DIST_SUBDIRS = $(SUBDIRS)
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+am__relativize = \
+ dir0=`pwd`; \
+ sed_first='s,^\([^/]*\)/.*$$,\1,'; \
+ sed_rest='s,^[^/]*/*,,'; \
+ sed_last='s,^.*/\([^/]*\)$$,\1,'; \
+ sed_butlast='s,/*[^/]*$$,,'; \
+ while test -n "$$dir1"; do \
+ first=`echo "$$dir1" | sed -e "$$sed_first"`; \
+ if test "$$first" != "."; then \
+ if test "$$first" = ".."; then \
+ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
+ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
+ else \
+ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
+ if test "$$first2" = "$$first"; then \
+ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
+ else \
+ dir2="../$$dir2"; \
+ fi; \
+ dir0="$$dir0"/"$$first"; \
+ fi; \
+ fi; \
+ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
+ done; \
+ reldir="$$dir2"
+ACLOCAL = @ACLOCAL@
+AGENT_LIBADD = @AGENT_LIBADD@
+ALLOCA = @ALLOCA@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CAT_ENTRY_END = @CAT_ENTRY_END@
+CAT_ENTRY_START = @CAT_ENTRY_START@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DOCBOOK_ROOT = @DOCBOOK_ROOT@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+GREP = @GREP@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAINTAINER = @MAINTAINER@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
+RANLIB = @RANLIB@
+RPMNAME = @RPMNAME@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+STYLESHEET_CSS = @STYLESHEET_CSS@
+STYLESHEET_HTML = @STYLESHEET_HTML@
+STYLESHEET_PDF = @STYLESHEET_PDF@
+STYLESHEET_YCPDOC = @STYLESHEET_YCPDOC@
+STYLESHEET_YDOC = @STYLESHEET_YDOC@
+VERSION = @VERSION@
+XGETTEXT = @XGETTEXT@
+XML_CATALOG = @XML_CATALOG@
+XSLTPROC = @XSLTPROC@
+XSLTPROC_FLAGS = @XSLTPROC_FLAGS@
+Y2CORE_CFLAGS = @Y2CORE_CFLAGS@
+Y2CORE_LIBS = @Y2CORE_LIBS@
+Y2DEVTOOLS_PREFIX = @Y2DEVTOOLS_PREFIX@
+YDOXYGEN = @YDOXYGEN@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+agentdir = @agentdir@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+clientdir = @clientdir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+desktopdir = @desktopdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+execcompdir = @execcompdir@
+fillupdir = @fillupdir@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+imagedir = @imagedir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+lt_ECHO = @lt_ECHO@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+moduledir = @moduledir@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+pkgconfigdatadir = @pkgconfigdatadir@
+pkgconfigdir = @pkgconfigdir@
+plugindir = @plugindir@
+potdir = @potdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+schemadir = @schemadir@
+scrconfdir = @scrconfdir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target = @target@
+target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
+themedir = @themedir@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+yast2dir = @yast2dir@
+ybindir = @ybindir@
+ydatadir = @ydatadir@
+yncludedir = @yncludedir@
+ystartupdir = @ystartupdir@
+examplesdir = $(docdir)/examples
+SUBDIRS = screenshots
+examples_DATA = $(wildcard *.ycp)
+EXTRA_DIST = $(examples_DATA)
+all: all-recursive
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu examples/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu examples/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+install-examplesDATA: $(examples_DATA)
+ @$(NORMAL_INSTALL)
+ test -z "$(examplesdir)" || $(MKDIR_P) "$(DESTDIR)$(examplesdir)"
+ @list='$(examples_DATA)'; test -n "$(examplesdir)" || list=; \
+ for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(examplesdir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(examplesdir)" || exit $$?; \
+ done
+
+uninstall-examplesDATA:
+ @$(NORMAL_UNINSTALL)
+ @list='$(examples_DATA)'; test -n "$(examplesdir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ test -n "$$files" || exit 0; \
+ echo " ( cd '$(DESTDIR)$(examplesdir)' && rm -f" $$files ")"; \
+ cd "$(DESTDIR)$(examplesdir)" && rm -f $$files
+
+# This directory's subdirectories are mostly independent; you can cd
+# into them and run `make' without going through this Makefile.
+# To change the values of `make' variables: instead of editing Makefiles,
+# (1) if the variable is set in `config.status', edit `config.status'
+# (which will cause the Makefiles to be regenerated when you run `make');
+# (2) otherwise, pass the desired values on the `make' command line.
+$(RECURSIVE_TARGETS):
+ @fail= failcom='exit 1'; \
+ for f in x $$MAKEFLAGS; do \
+ case $$f in \
+ *=* | --[!k]*);; \
+ *k*) failcom='fail=yes';; \
+ esac; \
+ done; \
+ dot_seen=no; \
+ target=`echo $@ | sed s/-recursive//`; \
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ echo "Making $$target in $$subdir"; \
+ if test "$$subdir" = "."; then \
+ dot_seen=yes; \
+ local_target="$$target-am"; \
+ else \
+ local_target="$$target"; \
+ fi; \
+ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ || eval $$failcom; \
+ done; \
+ if test "$$dot_seen" = "no"; then \
+ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
+ fi; test -z "$$fail"
+
+$(RECURSIVE_CLEAN_TARGETS):
+ @fail= failcom='exit 1'; \
+ for f in x $$MAKEFLAGS; do \
+ case $$f in \
+ *=* | --[!k]*);; \
+ *k*) failcom='fail=yes';; \
+ esac; \
+ done; \
+ dot_seen=no; \
+ case "$@" in \
+ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+ *) list='$(SUBDIRS)' ;; \
+ esac; \
+ rev=''; for subdir in $$list; do \
+ if test "$$subdir" = "."; then :; else \
+ rev="$$subdir $$rev"; \
+ fi; \
+ done; \
+ rev="$$rev ."; \
+ target=`echo $@ | sed s/-recursive//`; \
+ for subdir in $$rev; do \
+ echo "Making $$target in $$subdir"; \
+ if test "$$subdir" = "."; then \
+ local_target="$$target-am"; \
+ else \
+ local_target="$$target"; \
+ fi; \
+ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ || eval $$failcom; \
+ done && test -z "$$fail"
+tags-recursive:
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
+ done
+ctags-recursive:
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
+ done
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ mkid -fID $$unique
+tags: TAGS
+
+TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ set x; \
+ here=`pwd`; \
+ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
+ include_option=--etags-include; \
+ empty_fix=.; \
+ else \
+ include_option=--include; \
+ empty_fix=; \
+ fi; \
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
+ test ! -f $$subdir/TAGS || \
+ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
+ fi; \
+ done; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
+ fi
+ctags: CTAGS
+CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ test -z "$(CTAGS_ARGS)$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+ @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
+ test -d "$(distdir)/$$subdir" \
+ || $(MKDIR_P) "$(distdir)/$$subdir" \
+ || exit 1; \
+ fi; \
+ done
+ @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
+ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
+ $(am__relativize); \
+ new_distdir=$$reldir; \
+ dir1=$$subdir; dir2="$(top_distdir)"; \
+ $(am__relativize); \
+ new_top_distdir=$$reldir; \
+ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
+ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
+ ($(am__cd) $$subdir && \
+ $(MAKE) $(AM_MAKEFLAGS) \
+ top_distdir="$$new_top_distdir" \
+ distdir="$$new_distdir" \
+ am__remove_distdir=: \
+ am__skip_length_check=: \
+ am__skip_mode_fix=: \
+ distdir) \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-recursive
+all-am: Makefile $(DATA)
+installdirs: installdirs-recursive
+installdirs-am:
+ for dir in "$(DESTDIR)$(examplesdir)"; do \
+ test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+ done
+install: install-recursive
+install-exec: install-exec-recursive
+install-data: install-data-recursive
+uninstall: uninstall-recursive
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-recursive
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-recursive
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-recursive
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-tags
+
+dvi: dvi-recursive
+
+dvi-am:
+
+html: html-recursive
+
+html-am:
+
+info: info-recursive
+
+info-am:
+
+install-data-am: install-examplesDATA
+
+install-dvi: install-dvi-recursive
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-recursive
+
+install-html-am:
+
+install-info: install-info-recursive
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-recursive
+
+install-pdf-am:
+
+install-ps: install-ps-recursive
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-recursive
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-recursive
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-recursive
+
+pdf-am:
+
+ps: ps-recursive
+
+ps-am:
+
+uninstall-am: uninstall-examplesDATA
+
+.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \
+ install-am install-strip tags-recursive
+
+.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
+ all all-am check check-am clean clean-generic clean-libtool \
+ ctags ctags-recursive distclean distclean-generic \
+ distclean-libtool distclean-tags distdir dvi dvi-am html \
+ html-am info info-am install install-am install-data \
+ install-data-am install-dvi install-dvi-am \
+ install-examplesDATA install-exec install-exec-am install-html \
+ install-html-am install-info install-info-am install-man \
+ install-pdf install-pdf-am install-ps install-ps-am \
+ install-strip installcheck installcheck-am installdirs \
+ installdirs-am maintainer-clean maintainer-clean-generic \
+ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
+ ps ps-am tags tags-recursive uninstall uninstall-am \
+ uninstall-examplesDATA
+
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
Added: branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/MultiLineEdit4.ycp
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/ycp-u…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/MultiLineEdit4.ycp (added)
+++ branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/MultiLineEdit4.ycp Mon May 23 15:18:39 2011
@@ -0,0 +1,62 @@
+// Build dialog with MuliLineEdit widget,
+// a character counter for the MuliLineEdit's contents as they are typed
+// and an OK button.
+{
+ UI::OpenDialog(
+ `VBox(
+ `MultiLineEdit(`id(`problem),
+ `opt(`notify), // make UI::UserInput() return on every keystroke
+ "Problem &description:" ),
+ `HBox(
+ `Label("Number of characters entered:"),
+ `Label(`id(`char_count), "0 ")
+ ),
+ `PushButton(`id(`ok), "&OK")
+ )
+ );
+
+ UI::ChangeWidget(`id(`problem), `Value,
+ "My first input is already\nhere" );
+
+ any ret = nil;
+
+ do
+ {
+ // Wait for user input.
+ //
+ // Since the MultiLineEdit is in "notify" mode, it, too, will cause
+ // UI::UserInput() to return upon any single character entered.
+ ret = UI::UserInput();
+
+ if ( ret == `problem ) // User typed some text
+ {
+ // Set the `char_count label to the number of characters entered
+ // into the MultiLineEdit widget.
+
+ UI::ChangeWidget(`id(`char_count), `Value,
+ sformat( "%1", size( (string) UI::QueryWidget(`id(`problem), `Value) ) ) );
+ }
+ } while ( ret != `ok );
+
+ // Get the input from the MultiLineEdit.
+ //
+ // Notice: The return value of UI::UserInput() does NOT return this value!
+ // Rather, it returns the ID of the widget (normally the PushButton)
+ // that caused UI::UserInput() to return.
+ string input = (string) UI::QueryWidget(`id(`problem), `Value);
+
+ // Close the dialog.
+ // Remember to read values from the dialog's widgets BEFORE closing it!
+ UI::CloseDialog();
+
+ // Pop up a new dialog to echo the input.
+ UI::OpenDialog(
+ `VBox(
+ `Label("You entered:"),
+ `Label(input),
+ `PushButton("&OK")
+ )
+ );
+ UI::UserInput();
+ UI::CloseDialog();
+}
Added: branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/MultiSelectionBox4.ycp
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/ycp-u…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/MultiSelectionBox4.ycp (added)
+++ branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/MultiSelectionBox4.ycp Mon May 23 15:18:39 2011
@@ -0,0 +1,47 @@
+{
+ import "Label";
+
+ list items = [
+ `item (`id ("a"), "a"),
+ `item (`id ("x"), "x"),
+ `item (`id ("y"), "y"),
+ `item (`id ("z"), "z")
+ ];
+
+ term contents = `HBox (`VSpacing (20), `VBox (`HSpacing(70),
+ `VSpacing (0.2),
+ `MultiSelectionBox (`id(`multisel), `opt(`notify), "Multiselection", items),
+ `HBox (
+ `PushButton (`id (`ok), `opt (`default), Label::OKButton()),
+ `PushButton(`id (`cancel), `opt (`key_F9), Label::CancelButton())
+ ),
+ `VSpacing (0.2)
+ ));
+
+ UI::OpenDialog (`opt (`decorated), contents);
+ UI::ChangeWidget (`multisel, `CurrentItem, nil);
+
+ UI::ChangeWidget(`multisel, `SelectedItems, ["a", "x" ] );
+ UI::ChangeWidget(`multisel, `SelectedItems, ["y", "z" ] );
+
+ list selected_items = (list) UI::QueryWidget( `id(`multisel), `SelectedItems );
+ y2milestone( "Selected items: %1", selected_items );
+ y2milestone( "Current item: %1", (string) UI::QueryWidget (`id(`multisel),`CurrentItem));
+ while (true)
+ {
+ map event = UI::WaitForEvent ();
+ any ret = event["ID"]:nil;
+ if (ret == `multisel)
+ {
+ string current = (string) UI::QueryWidget (`id(`multisel),`CurrentItem);
+ y2internal ("current: %1", current);
+ }
+
+ if (ret == `ok || ret == `cancel)
+ break;
+ }
+ string current = (string) UI::QueryWidget (`id(`multisel),`CurrentItem);
+ y2internal ("current before leaving: %1", current );
+ UI::CloseDialog ();
+}
+
Added: branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/RichText-license.ycp
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/ycp-u…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/RichText-license.ycp (added)
+++ branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/RichText-license.ycp Mon May 23 15:18:39 2011
@@ -0,0 +1,50 @@
+// Example for a RichText widget
+{
+ import "String";
+
+ UI::OpenDialog( `opt(`defaultsize),
+ `VBox(
+ `Label( "HTML text or text in <pre>...</pre> tags" ),
+ `RichText (`id(`text), "" ),
+ `Label( "Plain text (`opt(`plainText))" ),
+ `RichText (`id(`plaintext), `opt(`plainText), "" ),
+ `HBox(
+ `PushButton( `id(`load), "&Load File" ),
+ `PushButton( `id(`close), "&Close" )
+ )
+ )
+ );
+ any button = nil;
+ string name = "";
+ string text = "";
+
+ repeat
+ {
+ button = UI::UserInput();
+
+ if ( button == `load )
+ {
+ name = UI::AskForExistingFile( ".", "*.txt *orig", "Select text file" );
+ string text = (string) SCR::Read(.target.string, name );
+
+ if ( text == nil)
+ {
+ text = "";
+ }
+
+ if ( regexpmatch( text, "</.*>" ) )
+ // HTML text (or RichText)
+ UI::ChangeWidget( `id(`text), `Value,
+ text );
+ else
+ // plain text
+ UI::ChangeWidget( `id(`text), `Value,
+ "<pre>" + String::EscapeTags(text) + "</pre>");
+
+ UI::ChangeWidget( `id(`plaintext), `Value, text);
+ }
+ }
+ until ( button == `close );
+
+ UI::CloseDialog();
+}
Modified: branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/RichText3.ycp
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/ycp-u…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/RichText3.ycp (original)
+++ branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/RichText3.ycp Mon May 23 15:18:39 2011
@@ -7,27 +7,24 @@
+ "<p>It's very much like <i>HTML</i>, but not quite as powerful.</p>"
+ "<p>Text in <b>pre</b> tags preserves newlines and spaces.</p>"
+ "<pre>"
- + "\n"
+ " host ip adress host ip adress\n"
+ " sturm 10.10.0.159 sturm 10.10.0.159\n\n"
+ "Lines are not wrapped; in text mode HTML tags are <b>not</b> removed if the pre tag is used, "
+ "but entities like product: &product; are filtered and shown correctly.\n"
- + "\n"
+ "</pre>"
+ "<p>After <b>/pre</b> the text is <i>HTML</i> text like before.</p>"
+ "<p>Much much more text .............. continous"
+ " much much more text .... follows "
+ " much much more text .................</p>"
- + "<p>"
- + "<pre>another pre t t </pre>"
- + "and much more text after pre is closed, now <b>HTML</b> text "
+ + "<pre><small>another pre t t </small></pre>"
+ + "<p>and more text after pre is closed, now <b>HTML</b> text "
+ "</p>"
- + "<pre>"
+ + "<pre>Another text in pre preserving spaces and newlines\n"
+ " host ip adress host ip adress\n"
+ " sturm 10.10.0.159 sturm 10.10.0.159\n"
+ "Lines are not wrapped; in text mode HTML tags are <b>not</b> removed if the pre tag is used.\n"
+ "</pre>"
- + "<p>and even much more text but now not wrapped at old place but with new layout of the pad widget which is underlying the richtext widget</p>"
+ + "<p>And after closing pre tag much more text - <b>long</b> long long long long lines are now wrapped again, this is a very very very very long long long long long long line <i>Even</i> longer and longer</p>"
+ "<p><pre>And another short pre</pre></p>"
),
`PushButton(`opt(`default), "&OK")
Added: branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/Tree-Checkbox.ycp
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/ycp-u…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/Tree-Checkbox.ycp (added)
+++ branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/Tree-Checkbox.ycp Mon May 23 15:18:39 2011
@@ -0,0 +1,34 @@
+// Tree with icons
+{
+ UI::OpenDialog(
+ `VBox(
+ `Heading( "YaST2 Mini Control Center" ),
+ `Tree(`id(`mod), `opt(`multiSelection ),
+ "Modules",
+ [
+ `item(`id( "country" ), `icon( "yast-yast-language.png" ), "Localization", true,
+ [
+ `item(`id( "keyboard" ), `icon( "yast-keyboard.png" ), "Keyboard" ),
+ `item(`id( "timezone" ), `icon( "yast-timezone.png" ), "Time zone" )
+ ]
+ ),
+ `item(`id( "mouse" ), `icon( "yast-mouse.png" ), "Mouse" ),
+ `item(`id( "lan" ), `icon( "yast-lan.png" ), "Network" ),
+ `item(`id( `xmas ), `icon( "yast-software.png" ), "Merry X-Mas" ),
+ `item(`id( `newyear ), `icon( "yast-software.png" ), "Happy New Year" )
+ ] ),
+ `PushButton(`id(`ok), `opt(`default), "&OK")
+ )
+ );
+
+ UI::ChangeWidget(`mod, `SelectedItems, [`xmas, `newyear ] );
+
+ any id = nil;
+
+ repeat
+ {
+ id = UI::TimeoutUserInput(300);
+ list selected_items = (list) UI::QueryWidget( `id(`mod), `SelectedItems );
+ y2warning( "Selected items: %1", selected_items );
+ } until (id == `ok);
+}
Added: branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/Tree-Checkbox2.ycp
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/ycp-u…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/Tree-Checkbox2.ycp (added)
+++ branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/Tree-Checkbox2.ycp Mon May 23 15:18:39 2011
@@ -0,0 +1,38 @@
+// Tree with icons
+{
+ UI::OpenDialog(
+ `VBox(
+ `Heading( "YaST2 Mini Control Center" ),
+ `Tree(`id(`mod), `opt(`notify, `multiSelection, `immediate ),
+ "Modules",
+ [
+ `item(`id( "country" ), `icon( "yast-yast-language.png" ), "Localization", false,
+ [
+ `item(`id( "keyboard" ), `icon( "yast-keyboard.png" ), "Keyboard" ),
+ `item(`id( "timezone" ), `icon( "yast-timezone.png" ), "Time zone" )
+ ]
+ ),
+ `item(`id( "mouse" ), `icon( "yast-mouse.png" ), "Mouse" ),
+ `item(`id( "lan" ), `icon( "yast-lan.png" ), "Network" ),
+ `item(`id( "xmas" ), `icon( "yast-software.png" ), "Merry X-Mas" ),
+ `item(`id( "newyear" ), `icon( "yast-software.png" ), "Happy New Year" )
+ ] ),
+ `HBox(`PushButton(`id(`ok), `opt(`default), "&OK"),
+ `PushButton(`id(`deselect), "&Log selected" )
+ )
+ )
+ );
+
+ UI::ChangeWidget(`mod, `SelectedItems, ["keyboard", "xmas", "newyear" ] );
+ any id = nil;
+ string current = (string) UI::QueryWidget( `id(`mod), `CurrentItem );
+ y2milestone( "Current item: %1", current );
+ repeat
+ {
+ id = UI::UserInput();
+ list selected_items = (list) UI::QueryWidget( `id(`mod), `SelectedItems );
+ y2milestone( "Selected items: %1", selected_items );
+ current = (string) UI::QueryWidget( `id(`mod), `CurrentItem );
+ y2milestone( "Current item: %1", current );
+ } until (id == `ok);
+}
Added: branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/Tree-Checkbox3.ycp
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/ycp-u…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/Tree-Checkbox3.ycp (added)
+++ branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/Tree-Checkbox3.ycp Mon May 23 15:18:39 2011
@@ -0,0 +1,44 @@
+{
+ import "Label";
+
+ list items = [
+ `item (`id ("a"), "a", false, []),
+ `item (`id ("x"), "x", true, [
+ `item (`id ("y"), "y", false, []),
+ `item (`id ("z"), "z", false, []),
+ ]),
+ ];
+
+ term contents = `HBox (`VSpacing (20), `VBox (`HSpacing(70),
+ `VSpacing (0.2),
+ //`Tree (`id(`tree), `opt(`notify, `immediate, `multiSelection), "tree", items),
+ `Tree (`id(`tree), `opt(`notify, `multiSelection), "tree", items),
+ //`Tree (`id(`tree), `opt(`notify), "tree", items),
+ `HBox (
+ `PushButton (`id (`ok), `opt (`default), Label::OKButton()),
+ `PushButton(`id (`cancel), `opt (`key_F9), Label::CancelButton())
+ ),
+ `VSpacing (0.2)
+ ));
+
+ UI::OpenDialog (`opt (`decorated), contents);
+ UI::ChangeWidget (`tree, `CurrentItem, nil);
+ while (true)
+ {
+ map event = UI::WaitForEvent ();
+ any ret = event["ID"]:nil;
+ if (ret == `tree)
+ {
+ string current = (string) UI::QueryWidget (`id(`tree),`CurrentItem);
+ y2internal ("current: %1", current);
+ }
+
+ if (ret == `ok || ret == `cancel)
+ break;
+ }
+ string current = (string) UI::QueryWidget (`id(`tree),`CurrentItem);
+ y2internal ("current before leaving: %1", current);
+
+ UI::CloseDialog ();
+}
+
Added: branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/Tree-Checkbox4.ycp
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/ycp-u…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/Tree-Checkbox4.ycp (added)
+++ branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/Tree-Checkbox4.ycp Mon May 23 15:18:39 2011
@@ -0,0 +1,84 @@
+// Tree with recursive multi selection
+{
+
+ string formatEvent( map<string, any> event )
+ {
+ string html = "Event:";
+ foreach (string key, any value, event, ``{
+ html = html + " " + key + ": " + tostring (value) + "";
+ });
+
+ return html;
+ };
+
+
+
+ UI::OpenDialog(
+ `VBox(
+ `Heading( "YaST2 Mini Control Center" ),
+ `Tree(`id(`mod), `opt(`multiSelection, `notify, `immediate, `recursiveSelection),
+ "Modules",
+ [
+
+ `item(`id( "unselected" ), "Unseleted" ),
+ `item(`id( "country" ), "Localization", true,
+ [
+ `item(`id( "keyboard" ), "Keyboard" ),
+ `item(`id( "timezone" ), "Time zone", true,
+ [ `item(`id( `europe ), "Europe" ),
+ `item(`id( `asia ), "Asia" )
+ ] )
+ ]
+ ),
+ `item(`id( `mouse ), "Mouse" ),
+ `item(`id( `lan ), "Network" ),
+ `item(`id( `xmas ), "Merry X-Mas" ),
+ `item(`id( `newyear ), "Happy New Year" )
+ ] ),
+ `PushButton(`id(`ok), `opt(`default), "&OK")
+ )
+ );
+
+ UI::ChangeWidget(`mod, `SelectedItems, [`lan, `mouse ] );
+ UI::ChangeWidget(`mod, `SelectedItems, [`xmas, `newyear ] );
+
+ list selected_items = (list) UI::QueryWidget( `id(`mod), `SelectedItems );
+ y2warning( "Selected items: %1", selected_items );
+
+
+ any id = nil;
+
+ map <string, any> event = $[];
+
+
+ repeat
+ {
+ event = UI::WaitForEvent( 1000 * 100 );
+
+ if( event["EventReason"]:nil == "SelectionChanged" )
+ {
+ y2error( "Selection Changed Event" );
+ }
+
+ if( event["EventReason"]:nil == "ValueChanged" )
+ {
+ y2error( "Value Changed Event" );
+ }
+
+ if ( event["EventType"]:nil == "TimeoutEvent" )
+ {
+
+ y2error( "Timeout Event" );
+ }
+
+ if ( event != nil )
+ {
+ y2error( formatEvent( event ) );
+ }
+
+ id = event["ID"]:nil ;
+ y2milestone("Selected items: %1", (list)UI::QueryWidget(`id(`mod), `SelectedItems ));
+
+ } until (id == `ok);
+}
+
Added: branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/Tree-recursive-large.ycp
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/ycp-u…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/Tree-recursive-large.ycp (added)
+++ branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/Tree-recursive-large.ycp Mon May 23 15:18:39 2011
@@ -0,0 +1,10050 @@
+// Tree with icons
+{
+ UI::OpenDialog(
+ `VBox(
+ `Heading( "TreeWidget Example" ),
+ `Tree(`id(`mod), `opt(`notify, `multiSelection, `immediate, `recursiveSelection ),
+ "Modules",
+ [
+ `item(`id( "dog" ), `icon( "yast-yast-language.png" ), "dog", false,
+ [
+ `item(`id( "cat" ), `icon( "yast-keyboard.png" ), "cat" ),
+ `item(`id( "mouse" ), `icon( "yast-timezone.png" ), "mouse" , false,
+ [
+ `item(`id( "bird" ), `icon( "yast-keyboard.png" ), "bird" ),
+ `item(`id( "donkey" ), `icon( "yast-timezone.png" ), "donkey" ),
+ `item(`id( "bee" ), `icon( "yast-timezone.png" ), "bee" , false,
+ [
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+
+ `item(`id( "goat" ), `icon( "yast-timezone.png" ), "goat" )
+ ]
+ )
+ ]
+ )]),
+ `item(`id( "mouse" ), `icon( "yast-mouse.png" ), "Mouse" ),
+ `item(`id( "spider" ), `icon( "yast-lan.png" ), "spider" ),
+ `item(`id( "worm" ), `icon( "yast-software.png" ), "worm" ),
+ `item(`id( "fish" ), `icon( "yast-software.png" ), "fish" )
+ ] ) ,
+ `HBox(`PushButton(`id(`ok), `opt(`default), "&OK"),
+ `PushButton(`id(`deselect), "&Log selected" )
+ )
+ )
+ );
+
+// UI::ChangeWidget(`mod, `SelectedItems, ["hund"] );
+// UI::ChangeWidget(`mod, `SelectedItems, [] );
+ any id = nil;
+ string current = (string) UI::QueryWidget( `id(`mod), `CurrentItem );
+ y2milestone( "Current item: %1", current );
+ repeat
+ {
+ id = UI::UserInput();
+ list selected_items = (list) UI::QueryWidget( `id(`mod), `SelectedItems );
+ y2milestone( "Selected items: %1", selected_items );
+ current = (string) UI::QueryWidget( `id(`mod), `CurrentItem );
+ y2milestone( "Current item: %1", current );
+ } until (id == `ok);
+}
Added: branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/flash-player-license.txt
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/ycp-u…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/flash-player-license.txt (added)
+++ branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/flash-player-license.txt Mon May 23 15:18:39 2011
@@ -0,0 +1,80 @@
+<pre width="72"><small><tt>ADOBE® SOFTWARE LICENSE AGREEMENT
+
+NOTICE TO USER: PLEASE READ THIS CONTRACT CAREFULLY. BY USING, COPYING OR DISTRIBUTING ALL OR ANY PORTION OF THE ADOBE SOFTWARE ("SOFTWARE") YOU ACCEPT ALL THE TERMS AND CONDITIONS OF THIS AGREEMENT, INCLUDING, IN PARTICULAR THE LIMITATIONS ON: USE CONTAINED IN SECTION 2; TRANSFERABILITY IN SECTION 4; WARRANTY IN SECTION 7; AND LIABILITY IN SECTION 8. YOU AGREE THAT THIS AGREEMENT IS ENFORCEABLE LIKE ANY WRITTEN NEGOTIATED AGREEMENT SIGNED BY YOU. THIS AGREEMENT IS ENFORCEABLE AGAINST YOU AND ANY LEGAL ENTITY THAT OBTAINED THE SOFTWARE AND ON WHOSE BEHALF IT IS USED. IF YOU DO NOT AGREE, DO NOT USE THIS SOFTWARE.
+
+Adobe and its suppliers own all intellectual property in the Software. Adobe permits you to Use the Software only in accordance with the terms of this Agreement. Use of some third party materials included in the Software may be subject to other terms and conditions typically found in a separate license agreement, a "Read Me" file located near such materials or in the "Third Party Software Notices and/or Additional Terms and Conditions" found at www.adobe.com/go/thirdparty/
+
+1. Definitions. "Software" means (a) all of the contents of the files (provided either by electronic download, on physical media or any other method of distribution), disk(s), CD-ROM(s) or other media with which this Agreement is provided, including but not limited to (i) Adobe or third party computer information or software, including the Adobe Reader® ("Adobe Reader"), Adobe Flash® Player, Shockwave® Player and Authorware® Player (collectively, the Flash, Shockwave and Authorware players, are the "Web Players"); (ii) related explanatory written materials or files ("Documentation"); and (iii) fonts; and (b) upgrades, modified versions, updates, additions, and copies of the Software, if any, licensed to you by Adobe (collectively, "Updates"). "Use" or "Using" means to access, install, download, copy, or otherwise benefit from using the functionality of the Software in accordance with the Docume
ntation. "Permitted Number" means one (1) unless otherwise indicated under a valid license (e.g., volume license) granted by Adobe. "Computer" means an electronic device that accepts information in digital or similar form and manipulates it for a specific result based on a sequence of instructions. "Adobe" means Adobe Systems Incorporated, a Delaware corporation, 345 Park Avenue, San Jose, California 95110, if subsection 9(a) of this Agreement applies; otherwise it means Adobe Systems Software Ireland Limited, Unit 3100, Lake Drive, City West Campus, Saggart D24, Republic of Ireland, a company organized under the laws of Ireland and an affiliate and licensee of Adobe Systems Incorporated.
+2. Software License. If you obtained the Software from Adobe or one of its authorized licensees, and subject to your compliance with the terms of this agreement (this "Agreement"), including the restrictions in Setion 3, Adobe grants to you a non-exclusive license to Use the Software for the purposes described in the Documentation as follows.
+
+2.1 General Use. You may install and Use a copy of the Software on your compatible Computer, up to the Permitted Number of computers. The Software may not be shared, installed or used concurrently on different computers. See Section 3 for important restrictions on the Use of Adobe Reader and Web Players.
+
+2.2 Server Use and Distribution.
+
+2.2.1 You may install one copy of the Adobe Reader on a computer file server within your internal network for the sole and exclusive purpose of (a) using the Software (from an unlimited number of client computers on your internal network) via (i) the Network File System (NFS) for UNIX versions of the Software or (ii) Windows Terminal Services and (b) allowing for printing within your internal network. Unless otherwise expressly permitted hereunder, no other server or network use of the Software is permitted, including but not limited to use of the Software (i) either directly or through commands, data or instructions from or to another computer or (ii) for internal network, internet or web hosting services.
+
+2.2.2 For information on how to distribute the Software on tangible media or through an internal network please refer to the sections entitled "How to Distribute Adobe Reader" at http://www.adobe.com/products/acrobat/distribute.html; or "Distribute Macromedia Web Players" at http://www.adobe.com/licensing.
+
+2.3 Backup Copy. You may make one backup copy of the Software, provided your backup copy is not installed or used on any Computer. You may not transfer the rights to a backup copy unless you transfer all rights in the Software as provided under Section 4.
+
+2.4 Portable or Home Computer Use. If and only if the Software is Adobe Reader, in addition to the single copy permitted under Sections 2.1 and 2.2, the primary user of the Computer on which the Software is installed may make a second copy of the Software for his or her exclusive Use on either a portable Computer or a Computer located at his or her home, provided the Software on the portable or home Computer is not used at the same time as the Software on the primary computer.
+
+2.5 No Modification.
+
+2.5.1 You may not modify, adapt, translate or create derivative works based upon the Software. You may not reverse engineer, decompile, disassemble or otherwise attempt to discover the source code of the Software except to the extent you may be expressly permitted to decompile under applicable law, it is essential to do so in order to achieve operability of the Software with another software program, and you have first requested Adobe to provide the information necessary to achieve such operability and Adobe has not made such information available. Adobe has the right to impose reasonable conditions and to request a reasonable fee before providing such information. Any such information supplied by Adobe and any information obtained by you by such permitted decompilation may only be used by you for the purpose described herein and may not be disclosed to any third party or used to create any software which is substantially similar to the expression of the Software. Requests
for information should be directed to the Adobe Customer Support Department.
+
+2.5.2 As an exception to the above, you may customize or extend the functionality of the installer for the Adobe Reader as specifically allowed by instructions found at http://www.adobe.com/support/main.html or http://partners.adobe.com (e.g., installation of additional plug-in and help files). You may not otherwise alter or modify the Software or create a new installer for the Software. The Adobe Reader is licensed and distributed by Adobe for viewing, distributing and sharing PDF files.
+
+2.6 Third Party Website Access. The Software may allow you to access third party websites ("Third Party Sites"). Your access to and use of any Third Party Sites, including any goods, services or information made available from such sites, is governed by the terms and conditions found at each Third Party Site, if any. Third Party Sites are not owned or operated by Adobe. YOUR USE OF THIRD PARTY SITES IS AT YOUR OWN RISK. ADOBE MAKES NO WARRANTIES, CONDITIONS, INDEMNITIES, REPRESENTATIONS OR TERMS, EXPRESS OR IMPLIED, WHETHER BY STATUTE, COMMON LAW, CUSTOM, USAGE OR OTHERWISE AS TO ANY OTHER MATTERS, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT OF THIRD PARTY RIGHTS, TITLE, INTEGRATION, ACCURACY, SECURITY, AVAILABILITY, SATISFACTORY QUALITY, MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE WITH RESPECT TO THE THIRD PARTY SITES.
+
+2.7 Certified Documents.
+
+2.7.1 Certified Documents and CD Services. The Software may allow you to validate Certified Documents. A "Certified Document" or "CD" is a PDF file that has been digitally signed using (a) a certificate and (b) a "private" encryption key that corresponds to the "public" key in the certificate. Validation of a CD requires CD Services from the CD Service Provider that issued the certificate. "CD Service Provider" is an independent third party service vendor listed at http://www.adobe.com/security/partners_cds.html. "CD Services" are services provided by CD Service Providers, including without limitation (i) certificates issued by such CD Service Provider for use with the Software's CD feature set, (ii) services related to issuance of certificates, and (iii) other services related to certificates, including without limitation verification services.
+
+2.7.2 CD Service Providers. Although the Software may provide validation features, Adobe does not supply the necessary CD Services required to use these features. Purchasing, availability and responsibility for the CD Services are between you and the CD Service Provider. Before you rely upon any CD, any digital signature applied thereto, and/or any related CD Services, you must first review and agree to the applicable Issuer Statement and this Agreement. "Issuer Statement" means the terms and conditions under which each CD Service Provider offers CD Services (see the links on http://www.adobe.com/security/partners_cds.html), including for example any subscriber agreements, relying party agreements, certificate policies and practice statements, and Section 2.7 of this Agreement. By validating a CD using CD Services, you acknowledge and agree that (a) the certificate used to digitally sign a CD may be revoked at the time of verification, making the digital signature
on the CD appear valid when in fact it is not, (b) the security or integrity of a CD may be compromised due to an act or omission by the signer of the CD, the applicable CD Service Provider, or any other third party and (c) you must read, understand, and be bound by the applicable Issuer Statement.
+
+2.7.3 Warranty Disclaimer. CD Service Providers offer CD Services solely in accordance with the applicable Issuer Statement. ACCESS TO THE CD SERVICES THROUGH THE USE OF THE SOFTWARE IS MADE AVAILABLE ON AN ÂAS ISÂ BASIS ONLY AND WITHOUT ANY WARRANTY OR INDEMNITY OF ANY KIND (EXCEPT AS SUPPLIED BY A CD SERVICES PROVIDER IN ITS ISSUER STATEMENT). ADOBE AND EACH CD SERVICE PROVIDER (EXCEPT AS EXPRESSLY PROVIDED IN ITS ISSUER STATEMENT) MAKE NO WARRANTIES, CONDITIONS, INDEMNITIES, REPRESENTATIONS OR TERMS, EXPRESS OR IMPLIED, WHETHER BY STATUTE, COMMON LAW, CUSTOM, USAGE OR OTHERWISE AS TO ANY OTHER MATTERS, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT OF THIRD PARTY RIGHTS, TITLE, INTEGRATION, ACCURACY, SECURITY, AVAILABILITY, SATISFACTORY QUALITY, MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE WITH RESPECT TO THE CD SERVICES.
+
+2.7.4 Indemnity. You agree to hold Adobe and any applicable CD Service Provider (except as expressly provided in its Issuer Statement) harmless from any and all liabilities, losses, actions, damages, or claims (including all reasonable expenses, costs, and attorneys fees) arising out of or relating to any use of, or reliance on, any CD Service, including, without limitation (a) reliance on an expired or revoked certificate, (b) improper verification of a certificate, (c) use of a certificate other than as permitted by any applicable Issuer Statement, this Agreement or applicable law; (d) failure to exercise reasonable judgment under the circumstances in relying on the CD Services or (e) failure to perform any of the obligations as required in an applicable Issuer Statement.
+
+2.7.5 Limit of Liability. UNDER NO CIRCUMSTANCES WILL ADOBE OR ANY CD SERVICE PROVIDER (EXCEPT AS EXPRESSLY SET FORTH IN ITS ISSUER STATEMENT) BE LIABLE TO YOU, OR ANY OTHER PERSON OR ENTITY, FOR ANY LOSS OF USE, REVENUE OR PROFIT, LOST OR DAMAGED DATA, OR OTHER COMMERCIAL OR ECONOMIC LOSS OR FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, STATUTORY, PUNITIVE, EXEMPLARY OR CONSEQUENTIAL DAMAGES WHATSOEVER RELATED TO YOUR USE OR RELIANCE UPON CD SERVICES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES OR IF SUCH DAMAGES ARE FORESEEABLE. THIS LIMITATION SHALL APPLY EVEN IN THE EVENT OF A FUNDAMENTAL OR MATERIAL BREACH OR A BREACH OF THE FUNDAMENTAL OR MATERIALTERMS OF THIS AGREEMENT.
+
+2.7.6 Third Party Beneficiaries. You agree that any CD Service Provider you utilize shall be a third party beneficiary with respect to this Section 2.7 of this Agreement, and that such CD Service Provider shall have the right to enforce such provisions in its own name as if the CD Service Provider were Adobe.
+3. Restrictions.
+
+3.1 Web Player Prohibited Devices. You may not Use any Web Player on any non-PC device or with any embedded or device version of any operating system. For the avoidance of doubt, and by example only, you may not use a Web Player on any (a) mobile devices, set top boxes (STB), handhelds, phones, web pads, tablets and Tablet PCs that are not running Windows XP Tablet PC Edition, game consoles, TVs, DVD players, media centers (excluding Windows XP Media Center Edition and its successors), electronic billboards or other digital signage, internet appliances or other internet-connected devices, PDAs, medical devices, ATMs, telematic devices, gaming machines, home automation systems, kiosks, remote control devices, or any other consumer electronics device, (b) operator-based mobile, cable, satellite, or television systems or (c) other closed system devices.
+
+3.2 Notices. You shall not copy the Software except as set forth in Section 2. Any copy of the Software that you make must contain the same copyright and other proprietary notices that appear on or in the Software.
+
+3.3 Document Features. The Software may contain features and functionality (the "Document Features") that appear disabled or "grayed out." These Document Features will only activate when opening a PDF document that was created using corresponding enabling technology available only from Adobe ("Keys"). You agree not to access, or attempt to access, disabled Document Features or otherwise circumvent the permissions that control activation of such Document Features. You may only use the Document Features with PDF documents that have been enabled using Keys obtained under a valid license from Adobe. No other use is permitted.
+
+3.4 Adobe Reader Restrictions. You are not authorized to integrate or use the Adobe Reader with any other software, plug-in or enhancement that uses or relies upon the the Adobe Reader when converting or transforming PDF files into other file formats (e.g., a PDF file into a TIFF, JPEG, or SVG file). You are not authorized to integrate or use the Adobe Reader with any plug-in software not developed in accordance with the Adobe Integration Key License Agreement. Further, you are not permitted to integrate or use the Adobe Reader with other software, or access PDF files that contain instructions (e.g., JavaScript), in order to (a) save data locally (on the same Computer), (b) create a file that contains data (e.g., an XML or comments file) or (c) save modifications to a PDF file, except when such saving or creation is allowed through the use of Document Feature(s) enabled by Adobe.
+4. Transfer. You may not rent, lease, sublicense, assign or transfer your rights in the Software, or authorize all or any portion of the Software to be copied onto another user's Computer except as may be expressly permitted herein. You may, however, transfer all your rights to Use the Software to another person or legal entity provided that: (a) you also transfer (i) this Agreement, and (ii) the Software and all other software or hardware bundled or pre-installed with the Software, including all copies, Updates and prior versions, to such person or entity, (b) you retain no copies, including backups and copies stored on a Computer, and (c) the receiving party accepts the terms and conditions of this Agreement and any other terms and conditions upon which you legally purchased a license to the Software. Notwithstanding the foregoing, you may not transfer education, pre-release, or not for resale copies of the Software.
+5. Intellectual Property Ownership, Copyright Protection. The Software and any authorized copies that you make are the intellectual property of and are owned by Adobe Systems Incorporated and its suppliers. The structure, organization and code of the Software are the valuable trade secrets and confidential information of Adobe Systems Incorporated and its suppliers. The Software is protected by law, including without limitation the copyright laws of the United States and other countries, and by international treaty provisions. Except as expressly stated herein, this Agreement does not grant you any intellectual property rights in the Software and all rights not expressly granted are reserved by Adobe and its suppliers.
+6. Updates. If the Software is an Update to a previous version of the Software, you must possess a valid license to such previous version in order to Use such Update. All Updates are provided to you on a license exchange basis. You agree that by Using an Update you voluntarily terminate your right to use any previous version of the Software. As an exception, you may continue to Use previous versions of the Software on your Computer after you Use the Update but only to assist you in the transition to the Update, provided that: (a) the Update and the previous versions are installed on the same computer; (b) the previous versions or copies thereof are not transferred to another party or Computer unless all copies of the Update are also transferred to such party or Computer; and (c) you acknowledge that any obligation Adobe may have to support the previous versions of the Software may be ended upon availability of the Update.
+7. NO WARRANTY. The Software is being delivered to you "AS IS" and Adobe makes no warranty as to its use or performance. Adobe provides no technical support, warranties or remedies for the Software. ADOBE AND ITS SUPPLIERS DO NOT AND CANNOT WARRANT THE PERFORMANCE OR RESULTS YOU MAY OBTAIN BY USING THE SOFTWARE. EXCEPT FOR ANY WARRANTY, CONDITION, REPRESENTATION OR TERM TO THE EXTENT TO WHICH THE SAME CANNOT OR MAY NOT BE EXCLUDED OR LIMITED BY LAW APPLICABLE TO YOU IN YOUR JURISDICTION, ADOBE AND ITS SUPPLIERS MAKE NO WARRANTIES CONDITIONS, REPRESENTATIONS, OR TERMS (EXPRESS OR IMPLIED WHETHER BY STATUTE, COMMON LAW, CUSTOM, USAGE OR OTHERWISE) AS TO ANY MATTER INCLUDING WITHOUT LIMITATION NONINFRINGEMENT OF THIRD PARTY RIGHTS, MERCHANTABILITY, INTEGRATION, SATISFACTORY QUALITY, OR FITNESS FOR ANY PARTICULAR PURPOSE. The provisions of Section 7 and Section 8 shall survive the termination of this Agreement, howsoever caused, but this shall not imply or create any c
ontinued right to Use the Software after termination of this Agreement.
+8. LIMITATION OF LIABILITY. IN NO EVENT WILL ADOBE OR ITS SUPPLIERS BE LIABLE TO YOU FOR ANY DAMAGES, CLAIMS OR COSTS WHATSOEVER OR ANY CONSEQUENTIAL, INDIRECT, INCIDENTAL DAMAGES, OR ANY LOST PROFITS OR LOST SAVINGS, EVEN IF AN ADOBE REPRESENTATIVE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH LOSS, DAMAGES, CLAIMS OR COSTS OR FOR ANY CLAIM BY ANY THIRD PARTY. THE FOREGOING LIMITATIONS AND EXCLUSIONS APPLY TO THE EXTENT PERMITTED BY APPLICABLE LAW IN YOUR JURISDICTION. ADOBE'S AGGREGATE LIABILITY AND THAT OF ITS SUPPLIERS UNDER OR IN CONNECTION WITH THIS AGREEMENT SHALL BE LIMITED TO THE AMOUNT PAID FOR THE SOFTWARE, IF ANY. Nothing contained in this Agreement limits Adobe's liability to you in the event of death or personal injury resulting from Adobe's negligence or for the tort of deceit (fraud). Adobe is acting on behalf of its suppliers for the purpose of disclaiming, excluding and/or limiting obligations, warranties and liability as provided in this Agreemen
t, but in no other respects and for no other purpose. For further information, please see the jurisdiction specific information at the end of this Agreement, if any, or contact Adobe's Customer Support Department.
+9. Export Rules. You agree that the Software will not be shipped, transferred or exported into any country or used in any manner prohibited by the United States Export Administration Act or any other export laws, restrictions or regulations (collectively the "Export Laws"). In addition, if the Software is identified as export controlled items under the Export Laws, you represent and warrant that you are not a citizen, or otherwise located within, an embargoed nation (including without limitation Iran, Syria, Sudan, Libya, Cuba, and North Korea) and that you are not otherwise prohibited under the Export Laws from receiving the Software. All rights to Use the Software are granted on condition that such rights are forfeited if you fail to comply with the terms of this Agreement.
+10. Governing Law. This Agreement will be governed by and construed in accordance with the substantive laws in force: (a) in the State of California, if a license to the Software is obtained when you are in the United States, Canada, or Mexico; or (b) in Japan, if a license to the Software is obtained when you are in Japan, China, Korea, or other Southeast Asian country where all official languages are written in either an ideographic script (e.g., hanzi, kanji, or hanja), and/or other script based upon or similar in structure to an ideographic script, such as hangul or kana; or (c) England, if a license to the Software is purchased when you are in any other jurisdiction not described above. The respective courts of Santa Clara County, California when California law applies, Tokyo District Court in Japan, when Japanese law applies, and the competent courts of England, when the law of England applies, shall each have non-exclusive jurisdiction over all disputes relating to th
is Agreement. This Agreement will not be governed by the conflict of law rules of any jurisdiction or the United Nations Convention on Contracts for the International Sale of Goods, the application of which is expressly excluded.
+11. General Provisions. If any part of this Agreement is found void and unenforceable, it will not affect the validity of the balance of this Agreement, which shall remain valid and enforceable according to its terms. This Agreement shall not prejudice the statutory rights of any party dealing as a consumer. This Agreement may only be modified by a writing signed by an authorized officer of Adobe. Updates may be licensed to you by Adobe with additional or different terms. This is the entire agreement between Adobe and you relating to the Software and it supersedes any prior representations, discussions, undertakings, communications or advertising relating to the Software.
+12. Notice to U.S. Government End Users. The Software and Documentation are "Commercial Items," as that term is defined at 48 C.F.R. §2.101, consisting of "Commercial Computer Software" and "Commercial Computer Software Documentation," as such terms are used in 48 C.F.R. §12.212 or 48 C.F.R. §227.7202, as applicable. Consistent with 48 C.F.R. §12.212 or 48 C.F.R. §§227.7202-1 through 227.7202-4, as applicable, the Commercial Computer Software and Commercial Computer Software Documentation are being licensed to U.S. Government end users (a) only as Commercial Items and (b) with only those rights as are granted to all other end users pursuant to the terms and conditions herein. Unpublished-rights reserved under the copyright laws of the United States. Adobe Systems Incorporated, 345 Park Avenue, San Jose, CA 95110-2704, USA. For U.S. Government End Users, Adobe agrees to comply with all applicable equal opportunity laws including
, if appropriate, the provisions of Executive Order 11246, as amended, Section 402 of the Vietnam Era Veterans Readjustment Assistance Act of 1974 (38 USC 4212), and Section 503 of the Rehabilitation Act of 1973, as amended, and the regulations at 41 CFR Parts 60-1 through 60-60, 60-250, and 60-741. The affirmative action clause and regulations contained in the preceding sentence shall be incorporated by reference in this Agreement.
+13. Compliance with Licenses. If you are a business or organization, you agree that upon request from Adobe or Adobe's authorized representative, you will within thirty (30) days fully document and certify that use of any and all Software at the time of the request is in conformity with your valid licenses from Adobe.
+14. Specific Provisions and Exceptions.
+
+14.1 Limited Warranty for Users Residing in Germany or Austria. If you obtained the Software in Germany or Austria, and you usually reside in such country, then Section 7 does not apply, instead, Adobe warrants that the Software provides the functionalities set forth in the Documentation (the "agreed upon functionalities") for the limited warranty period following receipt of the Software when used on the recommended hardware configuration. As used in this Section, "limited warranty period" means one (1) year if you are a business user and two (2) years if you are not a business user. Non-substantial variation from the agreed upon functionalities shall not be considered and does not establish any warranty rights. THIS LIMITED WARRANTY DOES NOT APPLY TO SOFTWARE PROVIDED TO YOU FREE OF CHARGE, FOR EXAMPLE, UPDATES, PRE-RELEASE, TRYOUT, PRODUCT SAMPLER, NOT FOR RESALE (NFR) COPIES OF SOFTWARE, OR SOFTWARE THAT HAS BEEN ALTERED BY YOU, TO THE EXTENT SUCH ALT
ERATIONS CAUSED A DEFECT. To make a warranty claim, during the limited warranty period you must return, at our expense, the Software and proof of purchase to the location where you obtained it. If the functionalities of the Software vary substantially from the agreed upon functionalities, Adobe is entitled -- by way of re-performance and at its own discretion -- to repair or replace the Software. If this fails, you are entitled to a reduction of the purchase price (reduction) or to cancel the purchase agreement (rescission). For further warranty information, please contact Adobe's Customer Support Department
+
+14.2 Limitation of Liability for Users Residing in Germany and Austria.
+
+14.2.1 If you obtained the Software in Germany or Austria, and you usually reside in such country, then Section 8 does not apply, Instead, subject to the provisions in Section 14.2.2, Adobe's statutory liability for damages shall be limited as follows: (i) Adobe shall be liable only up to the amount of damages as typically foreseeable at the time of entering into the purchase agreement in respect of damages caused by a slightly negligent breach of a material contractual obligation and (ii) Adobe shall not be liable for damages caused by a slightly negligent breach of a non-material contractual obligation.
+
+14.2.2 The aforesaid limitation of liability shall not apply to any mandatory statutory liability, in particular, to liability under the German Product Liability Act, liability for assuming a specific guarantee or liability for culpably caused personal injuries.
+
+14.2.3 You are required to take all reasonable measures to avoid and reduce damages, in particular to make back-up copies of the Software and your computer data subject to the provisions of this Agreement.
+
+14.3 Pre-release Product Additional Terms. If the product you have received with this license is pre-commercial release or beta Software ("Pre-release Software"), then the following Section applies. To the extent that any provision in this Section is in conflict with any other term or condition in this Agreement, this Section shall supercede such other term(s) and condition(s) with respect to the Pre-release Software, but only to the extent necessary to resolve the conflict. You acknowledge that the Software is a pre-release version, does not represent final product from Adobe, and may contain bugs, errors and other problems that could cause system or other failures and data loss. Consequently, the Pre-release Software is provided to you "AS-IS", and Adobe disclaims any warranty or liability obligations to you of any kind. WHERE LIABILITY CANNOT BE EXCLUDED FOR PRE-RELEASE SOFTWARE, BUT IT MAY BE LIMITED, ADOBE'S LIABILITY AND THAT OF ITS SUPPLIERS S
HALL BE LIMITED TO THE SUM OF FIFTY DOLLARS (U.S. $50) IN TOTAL. You acknowledge that Adobe has not promised or guaranteed to you that Pre-release Software will be announced or made available to anyone in the future, Adobe has no express or implied obligation to you to announce or introduce the Pre-release Software and that Adobe may not introduce a product similar to or compatible with the Pre-release Software. Accordingly, you acknowledge that any research or development that you perform regarding the Pre-release Software or any product associated with the Pre-release Software is done entirely at your own risk. During the term of this Agreement, if requested by Adobe, you will provide feedback to Adobe regarding testing and use of the Pre-release Software, including error or bug reports. If you have been provided the Pre-release Software pursuant to a separate written agreement, such as the Adobe Systems Incorporated Serial Agreement for Unreleased Products, your use of th
e Software is also governed by such agreement. You agree that you may not and certify that you will not sublicense, lease, loan, rent, assign or transfer the Pre-release Software. Upon receipt of a later unreleased version of the Pre-release Software or release by Adobe of a publicly released commercial version of the Software, whether as a stand-alone product or as part of a larger product, you agree to return or destroy all earlier Pre-release Software received from Adobe and to abide by the terms of the license agreement for any such later versions of the Pre-release Software. Notwithstanding anything in this Section to the contrary, if you are located outside the United States of America, you agree that you will return or destroy all unreleased versions of the Pre-release Software within thirty (30) days of the completion of your testing of the Software when such date is earlier than the date for Adobe's first commercial shipment of the publicly released (commercial)
Software.
+
+14.4 Settings Manager. Use of the Web Players, specifically the Flash Player, will enable the Software to store certain user settings as a local shared object on a your Computer. These settings are not associated with you, but allow you to configure certain settings within the Flash Player. You can find more information on local shared objects at http://www.adobe.com/software/flashplayer/security/ and more information on the Settings Manager at www.adobe.com/go/settingsmanager.
+
+If you have any questions regarding this Agreement or if you wish to request any information from Adobe please use the address and contact information included with this product or via the web at www.adobe.com to contact the Adobe office serving your jurisdiction
+
+Adobe, Authorware, Flash, Reader, and Shockwave are either registered trademarks or trademarks of Adobe Systems Incorporated in the United States and/or other countries.</tt></small></pre><p></p>
Added: branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/graph1.gv
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/ycp-u…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/graph1.gv (added)
+++ branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/graph1.gv Mon May 23 15:18:39 2011
@@ -0,0 +1,14 @@
+digraph G
+{
+ node [style="filled", fontname="Helvetica"];
+
+ A;
+ B;
+ C;
+ D;
+
+ A -> C;
+ A -> D;
+ B -> C;
+ B -> D;
+}
Added: branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/graph2.gv
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/ycp-u…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/graph2.gv (added)
+++ branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/graph2.gv Mon May 23 15:18:39 2011
@@ -0,0 +1,14 @@
+digraph G
+{
+ node [style="filled", fillcolor="yellow", fontname="Helvetica"];
+
+ A;
+ B;
+ C;
+ D;
+
+ A -> C;
+ A -> D;
+ B -> C;
+ B -> D;
+}
Added: branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/graph3.gv
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/ycp-u…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/graph3.gv (added)
+++ branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/graph3.gv Mon May 23 15:18:39 2011
@@ -0,0 +1,19 @@
+digraph G
+{
+ node [style="filled", fillcolor="green", fontname="Helvetica"];
+
+ A;
+ B;
+ C;
+ D;
+ E;
+ F;
+
+ A -> C;
+ A -> D;
+ B -> C;
+ B -> D;
+
+ E -> F;
+ F -> E;
+}
Added: branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/html-text-dos.txt
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/ycp-u…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/html-text-dos.txt (added)
+++ branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/html-text-dos.txt Mon May 23 15:18:39 2011
@@ -0,0 +1,16 @@
+<h3>RichText example</h3>
+<p>This is a <i>RichText</i> widget.</p>
+<p>It's very much like <i>HTML</i>, but not quite as powerful.</p>
+<p><b>bold</b> and <i>italic</i> you can rely on.</p>
+<p>
+<font color=blue>colored </font>
+<font color=red> text </font>
+<font color=green> might </font>
+<font color=magenta> or </font>
+</p>
+<p>The product name is automatically replaced by the UI.
+Use the special macro <b>&product;</b> for that.
+</p>
+<p>
+The current product name is <b>&product;</b>.
+</p>
Added: branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/html-text-unix.txt
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/ycp-u…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/html-text-unix.txt (added)
+++ branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/html-text-unix.txt Mon May 23 15:18:39 2011
@@ -0,0 +1,16 @@
+<h3>RichText example</h3>
+<p>This is a <i>RichText</i> widget.</p>
+<p>It's very much like <i>HTML</i>, but not quite as powerful.</p>
+<p><b>bold</b> and <i>italic</i> you can rely on.</p>
+<p>
+<font color=blue>colored </font>
+<font color=red> text </font>
+<font color=green> might </font>
+<font color=magenta> or </font>
+</p>
+<p>The product name is automatically replaced by the UI.
+Use the special macro <b>&product;</b> for that.
+</p>
+<p>
+The current product name is <b>&product;</b>.
+</p>
Added: branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/license-dos.txt.orig
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/ycp-u…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/license-dos.txt.orig (added)
+++ branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/license-dos.txt.orig Mon May 23 15:18:39 2011
@@ -0,0 +1,276 @@
+SUSE(r) Linux Enterprise Server 11
+Novell(r) Software License Agreement
+
+PLEASE READ THIS AGREEMENT CAREFULLY. BY INSTALLING OR OTHERWISE
+USING THE SOFTWARE (INCLUDING ITS COMPONENTS), YOU AGREE TO THE TERMS
+OF THIS AGREEMENT. IF YOU DO NOT AGREE WITH THESE TERMS, DO NOT
+DOWNLOAD, INSTALL OR USE THE SOFTWARE.
+
+RIGHTS AND LICENSES
+
+This Novell Software License Agreement ("Agreement") is a legal
+agreement between You (an entity or a person) and Novell, Inc.
+("Novell"). The software product identified in the title of this
+Agreement, any media and accompanying documentation (collectively the
+"Software") is protected by the copyright laws and treaties of the
+United States ("U.S.") and other countries and is subject to the
+terms of this Agreement. Any update or support release to the
+Software that You may download or receive that is not accompanied by
+a license agreement expressly superseding this Agreement is Software
+and governed by this Agreement. If the Software is an update or
+support release, then You must have validly licensed the version and
+quantity of the Software being updated or supported in order to
+install or use the update or support release.
+
+The Software is a modular operating system comprised of numerous
+components that may be accompanied by separate license terms. The
+Software is a collective work of Novell; although Novell does not own
+the copyright to every component of the Software, Novell owns the
+collective work copyright for the Software.
+
+Most of the components are open source packages, developed
+independently, and accompanied by separate license terms. Your
+license rights with respect to individual components accompanied by
+separate license terms are defined by those terms; nothing in this
+agreement shall restrict, limit, or otherwise affect any rights or
+obligations You may have, or conditions to which You may be subject,
+under such license terms; however, if You distribute copies of any
+component independent of the Software, You must remove all Novell
+trademarks, trade dress, and logos from each copy.
+
+You may make and use unlimited copies of the Software within your
+Organization. You may make and distribute unlimited modified copies
+outside Your organization provided You remove all Novell trademarks,
+trade dress, and logos from each modified copy of the Software. The
+term "Organization" means a legal entity, excluding subsidiaries and
+affiliates with a separate existence for tax purposes or for legal
+personality purposes. An example of an Organization in the private
+sector would be a corporation, partnership, or trust, excluding any
+subsidiaries or affiliates of the organization with a separate tax
+identification number or company registration number. In the public
+sector, an example of Organization would be a specific government
+body or local government authority.
+
+
+
+OTHER LICENSE TERMS AND RESTRICTIONS
+
+The Software is protected by the copyright laws and treaties of the
+United States ("U.S.") and other countries and is subject to the
+terms of this Agreement. The Software is licensed to You, not sold.
+
+The Software may be bundled with other software programs ("Bundled
+Programs"). Your license rights with respect to Bundled Programs
+accompanied by separate license terms are defined by those terms;
+nothing in this Agreement shall restrict, limit, or otherwise affect
+any rights or obligations You may have, or conditions to which You
+may be subject, under such license terms.
+
+Novell reserves all rights not expressly granted to You. You may not:
+(1) reverse engineer, decompile, or disassemble the Software except
+and only to the extent it is expressly permitted by applicable law;
+or (2) transfer the Software or Your license rights under this
+Agreement, in whole or in part.
+
+MAINTENANCE AND SUPPORT
+
+Novell has no obligation to provide support or maintenance unless You
+purchase an offering that expressly includes support or maintenance
+services. If You make such a purchase and no separate agreement
+specifically applies to the support or maintenance services, then the
+terms of this Agreement will govern the provision of such support or
+maintenance services ("Services"). For more information on Novell's
+current support offerings, see http://www.novell.com/support.
+
+OWNERSHIP RIGHTS
+
+No title to or ownership of the Software is transferred to You.
+Novell and/or its licensors retain all right, title and interest in
+and to all intellectual property rights in the Software and Services,
+including any adaptations or copies thereof. Any materials You
+receive as part of the Services that are not accompanied by terms
+expressly superseding this Agreement are Software and governed by
+this Agreement. You acquire only a conditional license to use the
+Software.
+
+LIMITED WARRANTY
+
+For ninety (90) days from Your date of purchase, Novell warrants that
+(1) any media on which the Software is delivered is free from
+physical defects; and (2) the Software will substantially conform to
+the documentation accompanying the Software. If the defective items
+are returned to Novell or if You report the nonconformity to Novell
+within ninety (90) days from the date of purchase, Novell will at its
+sole discretion either resolve the nonconformity or refund the
+license fees You paid for the Software. Any unauthorized use or
+modification of the Software voids this warranty. THE FOREGOING
+WARRANTY IS YOUR SOLE AND EXCLUSIVE REMEDY AND IS IN LIEU OF ALL
+OTHER WARRANTIES, EXPRESS OR IMPLIED. (The foregoing warranty does
+not apply to Software provided free of charge. SUCH SOFTWARE IS
+PROVIDED "AS IS" WITHOUT ANY WARRANTIES OF ANY KIND.)
+
+Services. Novell warrants that any Services purchased will be
+supplied in a professional manner in accordance with generally
+accepted industry standards. This warranty will be effective for
+ninety (90) days following delivery of the Services. Upon any breach
+of this warranty, Novell's only obligation is to either correct the
+Services so that they comply with this warranty or at its option
+refund the amount You paid to Novell for the portion of the Services
+that fail to comply with this warranty. As files may be altered or
+damaged in the course of Novell providing technical services, You
+agree to take appropriate measures to isolate and back up Your
+systems.
+
+THE SOFTWARE IS NOT DESIGNED, MANUFACTURED OR INTENDED FOR USE OR
+DISTRIBUTION WITH ON-LINE CONTROL EQUIPMENT IN HAZARDOUS ENVIRONMENTS
+REQUIRING FAIL-SAFE PERFORMANCE, SUCH AS IN THE OPERATION OF NUCLEAR
+FACILITIES, AIRCRAFT NAVIGATION, COMMUNICATION, OR CONTROL SYSTEMS,
+DIRECT LIFE SUPPORT MACHINES, WEAPONS SYSTEMS, OR OTHER USES IN WHICH
+FAILURE OF THE SOFTWARE COULD LEAD DIRECTLY TO DEATH, PERSONAL
+INJURY, OR SEVERE PHYSICAL OR ENVIRONMENTAL DAMAGE.
+
+THE SOFTWARE IS ONLY COMPATIBLE WITH CERTAIN COMPUTERS AND OPERATING
+SYSTEMS. THE SOFTWARE IS NOT WARRANTED FOR NON-COMPATIBLE SYSTEMS.
+Call Novell or Your reseller for information about compatibility.
+
+Non-Novell Products. The Software may include or be bundled with
+hardware or other software programs or services licensed or sold by a
+entity other than Novell. NOVELL DOES NOT WARRANT NON-NOVELL PRODUCTS
+OR SERVICES. ANY SUCH PRODUCTS OR SERVICES ARE PROVIDED ON AN "AS
+IS" BASIS. WARRANTY SERVICE IF ANY FOR NON-NOVELL PRODUCTS IS
+PROVIDED BY THE PRODUCT LICENSOR IN ACCORDANCE WITH THE APPLICABLE
+LICENSOR WARRANTY.
+
+EXCEPT AS OTHERWISE RESTRICTED BY LAW, NOVELL DISCLAIMS AND EXCLUDES
+ANY AND ALL IMPLIED WARRANTIES INCLUDING ANY WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE, OR
+NON-INFRINGEMENT. NOVELL MAKES NO WARRANTY, REPRESENTATION OR PROMISE
+NOT EXPRESSLY SET FORTH IN THIS LIMITED WARRANTY. NOVELL DOES NOT
+WARRANT THAT THE SOFTWARE OR SERVICES WILL SATISFY YOUR REQUIREMENTS
+OR THAT THE OPERATION OF THE SOFTWARE OR SERVCIES WILL BE
+UNINTERRUPTED. Some jurisdictions do not allow certain disclaimers
+and limitations of warranties, so portions of the above limitations
+may not apply to You. This limited warranty gives You specific rights
+and You may also have other rights which vary by state or
+jurisdiction.
+
+LIMITATION OF LIABILITY
+
+(a) Consequential Losses. NEITHER NOVELL NOR ANY OF ITS LICENSORS,
+SUBSIDIARIES, OR EMPLOYEES WILL IN ANY CASE BE LIABLE FOR ANY
+SPECIAL, INCIDENTAL, CONSEQUENTIAL, INDIRECT, TORT, ECONOMIC OR
+PUNITIVE DAMAGES ARISING OUT OF THE USE OF OR INABILITY TO USE THE
+SOFTWARE OR SERVICES, INCLUDING WITHOUT LIMITATION LOSS OF PROFITS,
+BUSINESS OR DATA, EVEN IF ADVISED OF THE POSSIBILITY OF THOSE
+DAMAGES.
+(b) Direct Damages. IN NO EVENT WILL NOVELL'S AGGREGATE LIABILITY FOR
+DIRECT DAMAGES TO PROPERTY OR PERSON (WHETHER IN ONE INSTANCE OR A
+SERIES OF INSTANCES) EXCEED 1.25 TIMES THE AMOUNT PAID BY YOU FOR THE
+SOFTWARE OR SERVICES OUT OF WHICH SUCH CLAIM AROSE [OR $50 (U.S.) IF
+YOU RECEIVED THE SOFTWARE FREE OF CHARGE]. The above exclusions and
+limitations will not apply to claims relating to death or personal
+injury. In those jurisdictions that do not allow the exclusion or
+limitation of damages, Novell's liability shall be limited or
+excluded to the maximum extent allowed within those jurisdictions.
+
+GENERAL TERMS
+
+Term. This Agreement becomes effective on the date You legally
+acquire the Software and will automatically terminate if You breach
+any of its terms.
+Benchmark Testing. This benchmark testing restriction applies to You
+if You are a software developer or licensor or if You are performing
+testing on the Software at the direction of or on behalf of a
+software developer or licensor. You may not, without Novell's prior
+written consent not to be unreasonably withheld, publish or disclose
+to any third party the results of any benchmark test of the Software.
+If You are a licensor of products that are functionally similar to or
+compete with the Software ("Similar Products"), or are acting on
+behalf of such a licensor, and You publish or disclose benchmark
+information on the Software in violation of this restriction, then
+notwithstanding anything to the contrary in the Similar Product's end
+user license agreement, and in addition to any other remedies Novell
+may have, Novell shall have the right to perform benchmark testing on
+Similar Products and to disclose and publish that benchmark
+information and You hereby represent that You have authority to grant
+such right to Novell.
+
+Open Source. Nothing in this Agreement shall restrict, limit or
+otherwise affect any rights or obligations You may have, or
+conditions to which You may be subject, under any applicable open
+sources licenses to any open source code contained in the Software.
+
+Transfer. This Agreement may not be transferred or assigned without
+the prior written approval of Novell.
+
+Law and Jurisdiction. This Agreement is governed by the laws of the
+State of Utah, U.S. Any action at law relating to this Agreement may
+only be brought before the courts of competent jurisdiction of the
+State of Utah. If, however, Your country of principal residence is a
+member state of the European Union or the European Free Trade
+Association, this Agreement is governed by the laws of that country,
+and any action at law may only be brought before a court of competent
+jurisdiction of that country.
+
+Entire Agreement. This Agreement sets forth the entire understanding
+and agreement between You and Novell and may be amended or modified
+only by a written agreement agreed to by You and an authorized
+representative of Novell. NO LICENSOR, DISTRIBUTOR, DEALER,
+RETAILER, RESELLER, SALES PERSON, OR EMPLOYEE IS AUTHORIZED TO MODIFY
+THIS AGREEMENT OR TO MAKE ANY REPRESENTATION OR PROMISE THAT IS
+DIFFERENT FROM, OR IN ADDITION TO, THE TERMS OF THIS AGREEMENT.
+
+Waiver. No waiver of any right under this Agreement will be
+effective unless in writing, signed by a duly authorized
+representative of the party to be bound. No waiver of any past or
+present right arising from any breach or failure to perform will be
+deemed to be a waiver of any future right arising under this
+Agreement.
+
+Severability. If any provision in this Agreement is invalid or
+unenforceable, that provision will be construed, limited, modified
+or, if necessary, severed, to the extent necessary, to eliminate its
+invalidity or unenforceability, and the other provisions of this
+Agreement will remain unaffected.
+
+Export Compliance. Any products or technical information provided
+under this Agreement may be subject to U.S. export controls and the
+trade laws of other countries. The parties agree to comply with all
+export control regulations and to obtain any required licenses or
+classification to export, re-export or import deliverables. The
+parties agree not to export or re-export to entities on the current
+U.S. export exclusion lists or to any embargoed or terrorist
+countries as specified in the U.S. export laws. The parties will not
+use deliverables for prohibited nuclear, missile, or chemical
+biological weaponry end uses. Please consult the Bureau of Industry
+and Security web page www.bis.doc.gov before exporting Novell
+products from the U.S. Please refer to
+http://www.novell.com/company/legal/ for more information on
+exporting Novell software. Upon request, Novell will provide You
+specific information regarding applicable restrictions. However,
+Novell assumes no responsibility for Your failure to obtain any
+necessary export approvals.
+
+U.S. Government Restricted Rights. Use, duplication, or disclosure
+by the U.S. Government is subject to the restrictions in FAR
+52.227-14 (June 1987) Alternate III (June 1987), FAR 52.227-19 (June
+1987), or DFARS 252.227-7013(b)(3) (Nov 1995), or applicable
+successor clauses.
+
+Contractor/ Manufacturer is Novell, Inc., 1800 South Novell Place,
+Provo, Utah 84606.
+
+Other. The application of the United Nations Convention of Contracts
+for the International Sale of Goods is expressly excluded.
+
+(c)1993, 2000-2009 Novell, Inc. All Rights Reserved.
+(022309)
+
+Novell and SUSE LINUX are registered trademarks of Novell, Inc. in
+the United States and other countries.
+
+All third party trademarks are property of their respective owners.
+
+
+
+
Added: branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/license-long-dos.txt
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/ycp-u…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/license-long-dos.txt (added)
+++ branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/license-long-dos.txt Mon May 23 15:18:39 2011
@@ -0,0 +1,276 @@
+SUSE(r) Linux Enterprise Server 11
+Novell(r) Software License Agreement
+
+PLEASE READ THIS AGREEMENT CAREFULLY. BY INSTALLING OR OTHERWISE
+USING THE SOFTWARE (INCLUDING ITS COMPONENTS), YOU AGREE TO THE TERMS
+OF THIS AGREEMENT. IF YOU DO NOT AGREE WITH THESE TERMS, DO NOT
+DOWNLOAD, INSTALL OR USE THE SOFTWARE.
+
+RIGHTS AND LICENSES
+
+This Novell Software License Agreement ("Agreement") is a legal
+agreement between You (an entity or a person) and Novell, Inc.
+("Novell"). The software product identified in the title of this
+Agreement, any media and accompanying documentation (collectively the
+"Software") is protected by the copyright laws and treaties of the
+United States ("U.S.") and other countries and is subject to the
+terms of this Agreement. Any update or support release to the
+Software that You may download or receive that is not accompanied by
+a license agreement expressly superseding this Agreement is Software
+and governed by this Agreement. If the Software is an update or
+support release, then You must have validly licensed the version and
+quantity of the Software being updated or supported in order to
+install or use the update or support release.
+
+The Software is a modular operating system comprised of numerous
+components that may be accompanied by separate license terms. The
+Software is a collective work of Novell; although Novell does not own
+the copyright to every component of the Software, Novell owns the
+collective work copyright for the Software.
+
+Most of the components are open source packages, developed
+independently, and accompanied by separate license terms. Your
+license rights with respect to individual components accompanied by
+separate license terms are defined by those terms; nothing in this
+agreement shall restrict, limit, or otherwise affect any rights or
+obligations You may have, or conditions to which You may be subject,
+under such license terms; however, if You distribute copies of any
+component independent of the Software, You must remove all Novell
+trademarks, trade dress, and logos from each copy.
+
+You may make and use unlimited copies of the Software within your
+Organization. You may make and distribute unlimited modified copies
+outside Your organization provided You remove all Novell trademarks,
+trade dress, and logos from each modified copy of the Software. The
+term "Organization" means a legal entity, excluding subsidiaries and
+affiliates with a separate existence for tax purposes or for legal
+personality purposes. An example of an Organization in the private
+sector would be a corporation, partnership, or trust, excluding any
+subsidiaries or affiliates of the organization with a separate tax
+identification number or company registration number. In the public
+sector, an example of Organization would be a specific government
+body or local government authority.
+
+
+
+OTHER LICENSE TERMS AND RESTRICTIONS
+
+The Software is protected by the copyright laws and treaties of the
+United States ("U.S.") and other countries and is subject to the
+terms of this Agreement. The Software is licensed to You, not sold.
+
+The Software may be bundled with other software programs ("Bundled
+Programs"). Your license rights with respect to Bundled Programs
+accompanied by separate license terms are defined by those terms;
+nothing in this Agreement shall restrict, limit, or otherwise affect
+any rights or obligations You may have, or conditions to which You
+may be subject, under such license terms.
+
+Novell reserves all rights not expressly granted to You. You may not:
+(1) reverse engineer, decompile, or disassemble the Software except
+and only to the extent it is expressly permitted by applicable law;
+or (2) transfer the Software or Your license rights under this
+Agreement, in whole or in part.
+
+MAINTENANCE AND SUPPORT
+
+Novell has no obligation to provide support or maintenance unless You
+purchase an offering that expressly includes support or maintenance
+services. If You make such a purchase and no separate agreement
+specifically applies to the support or maintenance services, then the
+terms of this Agreement will govern the provision of such support or
+maintenance services ("Services"). For more information on Novell's
+current support offerings, see http://www.novell.com/support.
+
+OWNERSHIP RIGHTS
+
+No title to or ownership of the Software is transferred to You.
+Novell and/or its licensors retain all right, title and interest in
+and to all intellectual property rights in the Software and Services,
+including any adaptations or copies thereof. Any materials You
+receive as part of the Services that are not accompanied by terms
+expressly superseding this Agreement are Software and governed by
+this Agreement. You acquire only a conditional license to use the
+Software.
+
+LIMITED WARRANTY
+
+For ninety (90) days from Your date of purchase, Novell warrants that
+(1) any media on which the Software is delivered is free from
+physical defects; and (2) the Software will substantially conform to
+the documentation accompanying the Software. If the defective items
+are returned to Novell or if You report the nonconformity to Novell
+within ninety (90) days from the date of purchase, Novell will at its
+sole discretion either resolve the nonconformity or refund the
+license fees You paid for the Software. Any unauthorized use or
+modification of the Software voids this warranty. THE FOREGOING
+WARRANTY IS YOUR SOLE AND EXCLUSIVE REMEDY AND IS IN LIEU OF ALL
+OTHER WARRANTIES, EXPRESS OR IMPLIED. (The foregoing warranty does
+not apply to Software provided free of charge. SUCH SOFTWARE IS
+PROVIDED "AS IS" WITHOUT ANY WARRANTIES OF ANY KIND.)
+
+Services. Novell warrants that any Services purchased will be
+supplied in a professional manner in accordance with generally
+accepted industry standards. This warranty will be effective for
+ninety (90) days following delivery of the Services. Upon any breach
+of this warranty, Novell's only obligation is to either correct the
+Services so that they comply with this warranty or at its option
+refund the amount You paid to Novell for the portion of the Services
+that fail to comply with this warranty. As files may be altered or
+damaged in the course of Novell providing technical services, You
+agree to take appropriate measures to isolate and back up Your
+systems.
+
+THE SOFTWARE IS NOT DESIGNED, MANUFACTURED OR INTENDED FOR USE OR
+DISTRIBUTION WITH ON-LINE CONTROL EQUIPMENT IN HAZARDOUS ENVIRONMENTS
+REQUIRING FAIL-SAFE PERFORMANCE, SUCH AS IN THE OPERATION OF NUCLEAR
+FACILITIES, AIRCRAFT NAVIGATION, COMMUNICATION, OR CONTROL SYSTEMS,
+DIRECT LIFE SUPPORT MACHINES, WEAPONS SYSTEMS, OR OTHER USES IN WHICH
+FAILURE OF THE SOFTWARE COULD LEAD DIRECTLY TO DEATH, PERSONAL
+INJURY, OR SEVERE PHYSICAL OR ENVIRONMENTAL DAMAGE.
+
+THE SOFTWARE IS ONLY COMPATIBLE WITH CERTAIN COMPUTERS AND OPERATING
+SYSTEMS. THE SOFTWARE IS NOT WARRANTED FOR NON-COMPATIBLE SYSTEMS.
+Call Novell or Your reseller for information about compatibility.
+
+Non-Novell Products. The Software may include or be bundled with
+hardware or other software programs or services licensed or sold by a
+entity other than Novell. NOVELL DOES NOT WARRANT NON-NOVELL PRODUCTS
+OR SERVICES. ANY SUCH PRODUCTS OR SERVICES ARE PROVIDED ON AN "AS
+IS" BASIS. WARRANTY SERVICE IF ANY FOR NON-NOVELL PRODUCTS IS
+PROVIDED BY THE PRODUCT LICENSOR IN ACCORDANCE WITH THE APPLICABLE
+LICENSOR WARRANTY.
+
+EXCEPT AS OTHERWISE RESTRICTED BY LAW, NOVELL DISCLAIMS AND EXCLUDES
+ANY AND ALL IMPLIED WARRANTIES INCLUDING ANY WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE, OR
+NON-INFRINGEMENT. NOVELL MAKES NO WARRANTY, REPRESENTATION OR PROMISE
+NOT EXPRESSLY SET FORTH IN THIS LIMITED WARRANTY. NOVELL DOES NOT
+WARRANT THAT THE SOFTWARE OR SERVICES WILL SATISFY YOUR REQUIREMENTS
+OR THAT THE OPERATION OF THE SOFTWARE OR SERVCIES WILL BE
+UNINTERRUPTED. Some jurisdictions do not allow certain disclaimers
+and limitations of warranties, so portions of the above limitations
+may not apply to You. This limited warranty gives You specific rights
+and You may also have other rights which vary by state or
+jurisdiction.
+
+LIMITATION OF LIABILITY
+
+(a) Consequential Losses. NEITHER NOVELL NOR ANY OF ITS LICENSORS,
+SUBSIDIARIES, OR EMPLOYEES WILL IN ANY CASE BE LIABLE FOR ANY
+SPECIAL, INCIDENTAL, CONSEQUENTIAL, INDIRECT, TORT, ECONOMIC OR
+PUNITIVE DAMAGES ARISING OUT OF THE USE OF OR INABILITY TO USE THE
+SOFTWARE OR SERVICES, INCLUDING WITHOUT LIMITATION LOSS OF PROFITS,
+BUSINESS OR DATA, EVEN IF ADVISED OF THE POSSIBILITY OF THOSE
+DAMAGES.
+(b) Direct Damages. IN NO EVENT WILL NOVELL'S AGGREGATE LIABILITY FOR
+DIRECT DAMAGES TO PROPERTY OR PERSON (WHETHER IN ONE INSTANCE OR A
+SERIES OF INSTANCES) EXCEED 1.25 TIMES THE AMOUNT PAID BY YOU FOR THE
+SOFTWARE OR SERVICES OUT OF WHICH SUCH CLAIM AROSE [OR $50 (U.S.) IF
+YOU RECEIVED THE SOFTWARE FREE OF CHARGE]. The above exclusions and
+limitations will not apply to claims relating to death or personal
+injury. In those jurisdictions that do not allow the exclusion or
+limitation of damages, Novell's liability shall be limited or
+excluded to the maximum extent allowed within those jurisdictions.
+
+GENERAL TERMS
+
+Term. This Agreement becomes effective on the date You legally
+acquire the Software and will automatically terminate if You breach
+any of its terms.
+Benchmark Testing. This benchmark testing restriction applies to You
+if You are a software developer or licensor or if You are performing
+testing on the Software at the direction of or on behalf of a
+software developer or licensor. You may not, without Novell's prior
+written consent not to be unreasonably withheld, publish or disclose
+to any third party the results of any benchmark test of the Software.
+If You are a licensor of products that are functionally similar to or
+compete with the Software ("Similar Products"), or are acting on
+behalf of such a licensor, and You publish or disclose benchmark
+information on the Software in violation of this restriction, then
+notwithstanding anything to the contrary in the Similar Product's end
+user license agreement, and in addition to any other remedies Novell
+may have, Novell shall have the right to perform benchmark testing on
+Similar Products and to disclose and publish that benchmark
+information and You hereby represent that You have authority to grant
+such right to Novell.
+
+Open Source. Nothing in this Agreement shall restrict, limit or
+otherwise affect any rights or obligations You may have, or
+conditions to which You may be subject, under any applicable open
+sources licenses to any open source code contained in the Software.
+
+Transfer. This Agreement may not be transferred or assigned without
+the prior written approval of Novell.
+
+Law and Jurisdiction. This Agreement is governed by the laws of the
+State of Utah, U.S. Any action at law relating to this Agreement may
+only be brought before the courts of competent jurisdiction of the
+State of Utah. If, however, Your country of principal residence is a
+member state of the European Union or the European Free Trade
+Association, this Agreement is governed by the laws of that country,
+and any action at law may only be brought before a court of competent
+jurisdiction of that country.
+
+Entire Agreement. This Agreement sets forth the entire understanding
+and agreement between You and Novell and may be amended or modified
+only by a written agreement agreed to by You and an authorized
+representative of Novell. NO LICENSOR, DISTRIBUTOR, DEALER,
+RETAILER, RESELLER, SALES PERSON, OR EMPLOYEE IS AUTHORIZED TO MODIFY
+THIS AGREEMENT OR TO MAKE ANY REPRESENTATION OR PROMISE THAT IS
+DIFFERENT FROM, OR IN ADDITION TO, THE TERMS OF THIS AGREEMENT.
+
+Waiver. No waiver of any right under this Agreement will be
+effective unless in writing, signed by a duly authorized
+representative of the party to be bound. No waiver of any past or
+present right arising from any breach or failure to perform will be
+deemed to be a waiver of any future right arising under this
+Agreement.
+
+Severability. If any provision in this Agreement is invalid or
+unenforceable, that provision will be construed, limited, modified
+or, if necessary, severed, to the extent necessary, to eliminate its
+invalidity or unenforceability, and the other provisions of this
+Agreement will remain unaffected.
+
+Export Compliance. Any products or technical information provided
+under this Agreement may be subject to U.S. export controls and the
+trade laws of other countries. The parties agree to comply with all
+export control regulations and to obtain any required licenses or
+classification to export, re-export or import deliverables. The
+parties agree not to export or re-export to entities on the current
+U.S. export exclusion lists or to any embargoed or terrorist
+countries as specified in the U.S. export laws. The parties will not
+use deliverables for prohibited nuclear, missile, or chemical
+biological weaponry end uses. Please consult the Bureau of Industry
+and Security web page www.bis.doc.gov before exporting Novell
+products from the U.S. Please refer to
+http://www.novell.com/company/legal/ for more information on
+exporting Novell software. Upon request, Novell will provide You
+specific information regarding applicable restrictions. However,
+Novell assumes no responsibility for Your failure to obtain any
+necessary export approvals.
+
+U.S. Government Restricted Rights. Use, duplication, or disclosure
+by the U.S. Government is subject to the restrictions in FAR
+52.227-14 (June 1987) Alternate III (June 1987), FAR 52.227-19 (June
+1987), or DFARS 252.227-7013(b)(3) (Nov 1995), or applicable
+successor clauses.
+
+Contractor/ Manufacturer is Novell, Inc., 1800 South Novell Place,
+Provo, Utah 84606.
+
+Other. The application of the United Nations Convention of Contracts
+for the International Sale of Goods is expressly excluded.
+
+(c)1993, 2000-2009 Novell, Inc. All Rights Reserved.
+(022309)
+
+Novell and SUSE LINUX are registered trademarks of Novell, Inc. in
+the United States and other countries.
+
+All third party trademarks are property of their respective owners.
+
+
+
+
Added: branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/license-long.txt
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/ycp-u…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/license-long.txt (added)
+++ branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/license-long.txt Mon May 23 15:18:39 2011
@@ -0,0 +1,276 @@
+SUSE(r) Linux Enterprise Server 11
+Novell(r) Software License Agreement
+
+PLEASE READ THIS AGREEMENT CAREFULLY. BY INSTALLING OR OTHERWISE
+USING THE SOFTWARE (INCLUDING ITS COMPONENTS), YOU AGREE TO THE TERMS
+OF THIS AGREEMENT. IF YOU DO NOT AGREE WITH THESE TERMS, DO NOT
+DOWNLOAD, INSTALL OR USE THE SOFTWARE.
+
+RIGHTS AND LICENSES
+
+This Novell Software License Agreement ("Agreement") is a legal
+agreement between You (an entity or a person) and Novell, Inc.
+("Novell"). The software product identified in the title of this
+Agreement, any media and accompanying documentation (collectively the
+"Software") is protected by the copyright laws and treaties of the
+United States ("U.S.") and other countries and is subject to the
+terms of this Agreement. Any update or support release to the
+Software that You may download or receive that is not accompanied by
+a license agreement expressly superseding this Agreement is Software
+and governed by this Agreement. If the Software is an update or
+support release, then You must have validly licensed the version and
+quantity of the Software being updated or supported in order to
+install or use the update or support release.
+
+The Software is a modular operating system comprised of numerous
+components that may be accompanied by separate license terms. The
+Software is a collective work of Novell; although Novell does not own
+the copyright to every component of the Software, Novell owns the
+collective work copyright for the Software.
+
+Most of the components are open source packages, developed
+independently, and accompanied by separate license terms. Your
+license rights with respect to individual components accompanied by
+separate license terms are defined by those terms; nothing in this
+agreement shall restrict, limit, or otherwise affect any rights or
+obligations You may have, or conditions to which You may be subject,
+under such license terms; however, if You distribute copies of any
+component independent of the Software, You must remove all Novell
+trademarks, trade dress, and logos from each copy.
+
+You may make and use unlimited copies of the Software within your
+Organization. You may make and distribute unlimited modified copies
+outside Your organization provided You remove all Novell trademarks,
+trade dress, and logos from each modified copy of the Software. The
+term "Organization" means a legal entity, excluding subsidiaries and
+affiliates with a separate existence for tax purposes or for legal
+personality purposes. An example of an Organization in the private
+sector would be a corporation, partnership, or trust, excluding any
+subsidiaries or affiliates of the organization with a separate tax
+identification number or company registration number. In the public
+sector, an example of Organization would be a specific government
+body or local government authority.
+
+
+
+OTHER LICENSE TERMS AND RESTRICTIONS
+
+The Software is protected by the copyright laws and treaties of the
+United States ("U.S.") and other countries and is subject to the
+terms of this Agreement. The Software is licensed to You, not sold.
+
+The Software may be bundled with other software programs ("Bundled
+Programs"). Your license rights with respect to Bundled Programs
+accompanied by separate license terms are defined by those terms;
+nothing in this Agreement shall restrict, limit, or otherwise affect
+any rights or obligations You may have, or conditions to which You
+may be subject, under such license terms.
+
+Novell reserves all rights not expressly granted to You. You may not:
+(1) reverse engineer, decompile, or disassemble the Software except
+and only to the extent it is expressly permitted by applicable law;
+or (2) transfer the Software or Your license rights under this
+Agreement, in whole or in part.
+
+MAINTENANCE AND SUPPORT
+
+Novell has no obligation to provide support or maintenance unless You
+purchase an offering that expressly includes support or maintenance
+services. If You make such a purchase and no separate agreement
+specifically applies to the support or maintenance services, then the
+terms of this Agreement will govern the provision of such support or
+maintenance services ("Services"). For more information on Novell's
+current support offerings, see http://www.novell.com/support.
+
+OWNERSHIP RIGHTS
+
+No title to or ownership of the Software is transferred to You.
+Novell and/or its licensors retain all right, title and interest in
+and to all intellectual property rights in the Software and Services,
+including any adaptations or copies thereof. Any materials You
+receive as part of the Services that are not accompanied by terms
+expressly superseding this Agreement are Software and governed by
+this Agreement. You acquire only a conditional license to use the
+Software.
+
+LIMITED WARRANTY
+
+For ninety (90) days from Your date of purchase, Novell warrants that
+(1) any media on which the Software is delivered is free from
+physical defects; and (2) the Software will substantially conform to
+the documentation accompanying the Software. If the defective items
+are returned to Novell or if You report the nonconformity to Novell
+within ninety (90) days from the date of purchase, Novell will at its
+sole discretion either resolve the nonconformity or refund the
+license fees You paid for the Software. Any unauthorized use or
+modification of the Software voids this warranty. THE FOREGOING
+WARRANTY IS YOUR SOLE AND EXCLUSIVE REMEDY AND IS IN LIEU OF ALL
+OTHER WARRANTIES, EXPRESS OR IMPLIED. (The foregoing warranty does
+not apply to Software provided free of charge. SUCH SOFTWARE IS
+PROVIDED "AS IS" WITHOUT ANY WARRANTIES OF ANY KIND.)
+
+Services. Novell warrants that any Services purchased will be
+supplied in a professional manner in accordance with generally
+accepted industry standards. This warranty will be effective for
+ninety (90) days following delivery of the Services. Upon any breach
+of this warranty, Novell's only obligation is to either correct the
+Services so that they comply with this warranty or at its option
+refund the amount You paid to Novell for the portion of the Services
+that fail to comply with this warranty. As files may be altered or
+damaged in the course of Novell providing technical services, You
+agree to take appropriate measures to isolate and back up Your
+systems.
+
+THE SOFTWARE IS NOT DESIGNED, MANUFACTURED OR INTENDED FOR USE OR
+DISTRIBUTION WITH ON-LINE CONTROL EQUIPMENT IN HAZARDOUS ENVIRONMENTS
+REQUIRING FAIL-SAFE PERFORMANCE, SUCH AS IN THE OPERATION OF NUCLEAR
+FACILITIES, AIRCRAFT NAVIGATION, COMMUNICATION, OR CONTROL SYSTEMS,
+DIRECT LIFE SUPPORT MACHINES, WEAPONS SYSTEMS, OR OTHER USES IN WHICH
+FAILURE OF THE SOFTWARE COULD LEAD DIRECTLY TO DEATH, PERSONAL
+INJURY, OR SEVERE PHYSICAL OR ENVIRONMENTAL DAMAGE.
+
+THE SOFTWARE IS ONLY COMPATIBLE WITH CERTAIN COMPUTERS AND OPERATING
+SYSTEMS. THE SOFTWARE IS NOT WARRANTED FOR NON-COMPATIBLE SYSTEMS.
+Call Novell or Your reseller for information about compatibility.
+
+Non-Novell Products. The Software may include or be bundled with
+hardware or other software programs or services licensed or sold by a
+entity other than Novell. NOVELL DOES NOT WARRANT NON-NOVELL PRODUCTS
+OR SERVICES. ANY SUCH PRODUCTS OR SERVICES ARE PROVIDED ON AN "AS
+IS" BASIS. WARRANTY SERVICE IF ANY FOR NON-NOVELL PRODUCTS IS
+PROVIDED BY THE PRODUCT LICENSOR IN ACCORDANCE WITH THE APPLICABLE
+LICENSOR WARRANTY.
+
+EXCEPT AS OTHERWISE RESTRICTED BY LAW, NOVELL DISCLAIMS AND EXCLUDES
+ANY AND ALL IMPLIED WARRANTIES INCLUDING ANY WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE, OR
+NON-INFRINGEMENT. NOVELL MAKES NO WARRANTY, REPRESENTATION OR PROMISE
+NOT EXPRESSLY SET FORTH IN THIS LIMITED WARRANTY. NOVELL DOES NOT
+WARRANT THAT THE SOFTWARE OR SERVICES WILL SATISFY YOUR REQUIREMENTS
+OR THAT THE OPERATION OF THE SOFTWARE OR SERVCIES WILL BE
+UNINTERRUPTED. Some jurisdictions do not allow certain disclaimers
+and limitations of warranties, so portions of the above limitations
+may not apply to You. This limited warranty gives You specific rights
+and You may also have other rights which vary by state or
+jurisdiction.
+
+LIMITATION OF LIABILITY
+
+(a) Consequential Losses. NEITHER NOVELL NOR ANY OF ITS LICENSORS,
+SUBSIDIARIES, OR EMPLOYEES WILL IN ANY CASE BE LIABLE FOR ANY
+SPECIAL, INCIDENTAL, CONSEQUENTIAL, INDIRECT, TORT, ECONOMIC OR
+PUNITIVE DAMAGES ARISING OUT OF THE USE OF OR INABILITY TO USE THE
+SOFTWARE OR SERVICES, INCLUDING WITHOUT LIMITATION LOSS OF PROFITS,
+BUSINESS OR DATA, EVEN IF ADVISED OF THE POSSIBILITY OF THOSE
+DAMAGES.
+(b) Direct Damages. IN NO EVENT WILL NOVELL'S AGGREGATE LIABILITY FOR
+DIRECT DAMAGES TO PROPERTY OR PERSON (WHETHER IN ONE INSTANCE OR A
+SERIES OF INSTANCES) EXCEED 1.25 TIMES THE AMOUNT PAID BY YOU FOR THE
+SOFTWARE OR SERVICES OUT OF WHICH SUCH CLAIM AROSE [OR $50 (U.S.) IF
+YOU RECEIVED THE SOFTWARE FREE OF CHARGE]. The above exclusions and
+limitations will not apply to claims relating to death or personal
+injury. In those jurisdictions that do not allow the exclusion or
+limitation of damages, Novell's liability shall be limited or
+excluded to the maximum extent allowed within those jurisdictions.
+
+GENERAL TERMS
+
+Term. This Agreement becomes effective on the date You legally
+acquire the Software and will automatically terminate if You breach
+any of its terms.
+Benchmark Testing. This benchmark testing restriction applies to You
+if You are a software developer or licensor or if You are performing
+testing on the Software at the direction of or on behalf of a
+software developer or licensor. You may not, without Novell's prior
+written consent not to be unreasonably withheld, publish or disclose
+to any third party the results of any benchmark test of the Software.
+If You are a licensor of products that are functionally similar to or
+compete with the Software ("Similar Products"), or are acting on
+behalf of such a licensor, and You publish or disclose benchmark
+information on the Software in violation of this restriction, then
+notwithstanding anything to the contrary in the Similar Product's end
+user license agreement, and in addition to any other remedies Novell
+may have, Novell shall have the right to perform benchmark testing on
+Similar Products and to disclose and publish that benchmark
+information and You hereby represent that You have authority to grant
+such right to Novell.
+
+Open Source. Nothing in this Agreement shall restrict, limit or
+otherwise affect any rights or obligations You may have, or
+conditions to which You may be subject, under any applicable open
+sources licenses to any open source code contained in the Software.
+
+Transfer. This Agreement may not be transferred or assigned without
+the prior written approval of Novell.
+
+Law and Jurisdiction. This Agreement is governed by the laws of the
+State of Utah, U.S. Any action at law relating to this Agreement may
+only be brought before the courts of competent jurisdiction of the
+State of Utah. If, however, Your country of principal residence is a
+member state of the European Union or the European Free Trade
+Association, this Agreement is governed by the laws of that country,
+and any action at law may only be brought before a court of competent
+jurisdiction of that country.
+
+Entire Agreement. This Agreement sets forth the entire understanding
+and agreement between You and Novell and may be amended or modified
+only by a written agreement agreed to by You and an authorized
+representative of Novell. NO LICENSOR, DISTRIBUTOR, DEALER,
+RETAILER, RESELLER, SALES PERSON, OR EMPLOYEE IS AUTHORIZED TO MODIFY
+THIS AGREEMENT OR TO MAKE ANY REPRESENTATION OR PROMISE THAT IS
+DIFFERENT FROM, OR IN ADDITION TO, THE TERMS OF THIS AGREEMENT.
+
+Waiver. No waiver of any right under this Agreement will be
+effective unless in writing, signed by a duly authorized
+representative of the party to be bound. No waiver of any past or
+present right arising from any breach or failure to perform will be
+deemed to be a waiver of any future right arising under this
+Agreement.
+
+Severability. If any provision in this Agreement is invalid or
+unenforceable, that provision will be construed, limited, modified
+or, if necessary, severed, to the extent necessary, to eliminate its
+invalidity or unenforceability, and the other provisions of this
+Agreement will remain unaffected.
+
+Export Compliance. Any products or technical information provided
+under this Agreement may be subject to U.S. export controls and the
+trade laws of other countries. The parties agree to comply with all
+export control regulations and to obtain any required licenses or
+classification to export, re-export or import deliverables. The
+parties agree not to export or re-export to entities on the current
+U.S. export exclusion lists or to any embargoed or terrorist
+countries as specified in the U.S. export laws. The parties will not
+use deliverables for prohibited nuclear, missile, or chemical
+biological weaponry end uses. Please consult the Bureau of Industry
+and Security web page www.bis.doc.gov before exporting Novell
+products from the U.S. Please refer to
+http://www.novell.com/company/legal/ for more information on
+exporting Novell software. Upon request, Novell will provide You
+specific information regarding applicable restrictions. However,
+Novell assumes no responsibility for Your failure to obtain any
+necessary export approvals.
+
+U.S. Government Restricted Rights. Use, duplication, or disclosure
+by the U.S. Government is subject to the restrictions in FAR
+52.227-14 (June 1987) Alternate III (June 1987), FAR 52.227-19 (June
+1987), or DFARS 252.227-7013(b)(3) (Nov 1995), or applicable
+successor clauses.
+
+Contractor/ Manufacturer is Novell, Inc., 1800 South Novell Place,
+Provo, Utah 84606.
+
+Other. The application of the United Nations Convention of Contracts
+for the International Sale of Goods is expressly excluded.
+
+(c)1993, 2000-2009 Novell, Inc. All Rights Reserved.
+(022309)
+
+Novell and SUSE LINUX are registered trademarks of Novell, Inc. in
+the United States and other countries.
+
+All third party trademarks are property of their respective owners.
+
+
+
+
Added: branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/license.txt.orig
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/ycp-u…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/license.txt.orig (added)
+++ branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/license.txt.orig Mon May 23 15:18:39 2011
@@ -0,0 +1,276 @@
+SUSE(r) Linux Enterprise Server 11
+Novell(r) Software License Agreement
+
+PLEASE READ THIS AGREEMENT CAREFULLY. BY INSTALLING OR OTHERWISE
+USING THE SOFTWARE (INCLUDING ITS COMPONENTS), YOU AGREE TO THE TERMS
+OF THIS AGREEMENT. IF YOU DO NOT AGREE WITH THESE TERMS, DO NOT
+DOWNLOAD, INSTALL OR USE THE SOFTWARE.
+
+RIGHTS AND LICENSES
+
+This Novell Software License Agreement ("Agreement") is a legal
+agreement between You (an entity or a person) and Novell, Inc.
+("Novell"). The software product identified in the title of this
+Agreement, any media and accompanying documentation (collectively the
+"Software") is protected by the copyright laws and treaties of the
+United States ("U.S.") and other countries and is subject to the
+terms of this Agreement. Any update or support release to the
+Software that You may download or receive that is not accompanied by
+a license agreement expressly superseding this Agreement is Software
+and governed by this Agreement. If the Software is an update or
+support release, then You must have validly licensed the version and
+quantity of the Software being updated or supported in order to
+install or use the update or support release.
+
+The Software is a modular operating system comprised of numerous
+components that may be accompanied by separate license terms. The
+Software is a collective work of Novell; although Novell does not own
+the copyright to every component of the Software, Novell owns the
+collective work copyright for the Software.
+
+Most of the components are open source packages, developed
+independently, and accompanied by separate license terms. Your
+license rights with respect to individual components accompanied by
+separate license terms are defined by those terms; nothing in this
+agreement shall restrict, limit, or otherwise affect any rights or
+obligations You may have, or conditions to which You may be subject,
+under such license terms; however, if You distribute copies of any
+component independent of the Software, You must remove all Novell
+trademarks, trade dress, and logos from each copy.
+
+You may make and use unlimited copies of the Software within your
+Organization. You may make and distribute unlimited modified copies
+outside Your organization provided You remove all Novell trademarks,
+trade dress, and logos from each modified copy of the Software. The
+term "Organization" means a legal entity, excluding subsidiaries and
+affiliates with a separate existence for tax purposes or for legal
+personality purposes. An example of an Organization in the private
+sector would be a corporation, partnership, or trust, excluding any
+subsidiaries or affiliates of the organization with a separate tax
+identification number or company registration number. In the public
+sector, an example of Organization would be a specific government
+body or local government authority.
+
+
+
+OTHER LICENSE TERMS AND RESTRICTIONS
+
+The Software is protected by the copyright laws and treaties of the
+United States ("U.S.") and other countries and is subject to the
+terms of this Agreement. The Software is licensed to You, not sold.
+
+The Software may be bundled with other software programs ("Bundled
+Programs"). Your license rights with respect to Bundled Programs
+accompanied by separate license terms are defined by those terms;
+nothing in this Agreement shall restrict, limit, or otherwise affect
+any rights or obligations You may have, or conditions to which You
+may be subject, under such license terms.
+
+Novell reserves all rights not expressly granted to You. You may not:
+(1) reverse engineer, decompile, or disassemble the Software except
+and only to the extent it is expressly permitted by applicable law;
+or (2) transfer the Software or Your license rights under this
+Agreement, in whole or in part.
+
+MAINTENANCE AND SUPPORT
+
+Novell has no obligation to provide support or maintenance unless You
+purchase an offering that expressly includes support or maintenance
+services. If You make such a purchase and no separate agreement
+specifically applies to the support or maintenance services, then the
+terms of this Agreement will govern the provision of such support or
+maintenance services ("Services"). For more information on Novell's
+current support offerings, see http://www.novell.com/support.
+
+OWNERSHIP RIGHTS
+
+No title to or ownership of the Software is transferred to You.
+Novell and/or its licensors retain all right, title and interest in
+and to all intellectual property rights in the Software and Services,
+including any adaptations or copies thereof. Any materials You
+receive as part of the Services that are not accompanied by terms
+expressly superseding this Agreement are Software and governed by
+this Agreement. You acquire only a conditional license to use the
+Software.
+
+LIMITED WARRANTY
+
+For ninety (90) days from Your date of purchase, Novell warrants that
+(1) any media on which the Software is delivered is free from
+physical defects; and (2) the Software will substantially conform to
+the documentation accompanying the Software. If the defective items
+are returned to Novell or if You report the nonconformity to Novell
+within ninety (90) days from the date of purchase, Novell will at its
+sole discretion either resolve the nonconformity or refund the
+license fees You paid for the Software. Any unauthorized use or
+modification of the Software voids this warranty. THE FOREGOING
+WARRANTY IS YOUR SOLE AND EXCLUSIVE REMEDY AND IS IN LIEU OF ALL
+OTHER WARRANTIES, EXPRESS OR IMPLIED. (The foregoing warranty does
+not apply to Software provided free of charge. SUCH SOFTWARE IS
+PROVIDED "AS IS" WITHOUT ANY WARRANTIES OF ANY KIND.)
+
+Services. Novell warrants that any Services purchased will be
+supplied in a professional manner in accordance with generally
+accepted industry standards. This warranty will be effective for
+ninety (90) days following delivery of the Services. Upon any breach
+of this warranty, Novell's only obligation is to either correct the
+Services so that they comply with this warranty or at its option
+refund the amount You paid to Novell for the portion of the Services
+that fail to comply with this warranty. As files may be altered or
+damaged in the course of Novell providing technical services, You
+agree to take appropriate measures to isolate and back up Your
+systems.
+
+THE SOFTWARE IS NOT DESIGNED, MANUFACTURED OR INTENDED FOR USE OR
+DISTRIBUTION WITH ON-LINE CONTROL EQUIPMENT IN HAZARDOUS ENVIRONMENTS
+REQUIRING FAIL-SAFE PERFORMANCE, SUCH AS IN THE OPERATION OF NUCLEAR
+FACILITIES, AIRCRAFT NAVIGATION, COMMUNICATION, OR CONTROL SYSTEMS,
+DIRECT LIFE SUPPORT MACHINES, WEAPONS SYSTEMS, OR OTHER USES IN WHICH
+FAILURE OF THE SOFTWARE COULD LEAD DIRECTLY TO DEATH, PERSONAL
+INJURY, OR SEVERE PHYSICAL OR ENVIRONMENTAL DAMAGE.
+
+THE SOFTWARE IS ONLY COMPATIBLE WITH CERTAIN COMPUTERS AND OPERATING
+SYSTEMS. THE SOFTWARE IS NOT WARRANTED FOR NON-COMPATIBLE SYSTEMS.
+Call Novell or Your reseller for information about compatibility.
+
+Non-Novell Products. The Software may include or be bundled with
+hardware or other software programs or services licensed or sold by a
+entity other than Novell. NOVELL DOES NOT WARRANT NON-NOVELL PRODUCTS
+OR SERVICES. ANY SUCH PRODUCTS OR SERVICES ARE PROVIDED ON AN "AS
+IS" BASIS. WARRANTY SERVICE IF ANY FOR NON-NOVELL PRODUCTS IS
+PROVIDED BY THE PRODUCT LICENSOR IN ACCORDANCE WITH THE APPLICABLE
+LICENSOR WARRANTY.
+
+EXCEPT AS OTHERWISE RESTRICTED BY LAW, NOVELL DISCLAIMS AND EXCLUDES
+ANY AND ALL IMPLIED WARRANTIES INCLUDING ANY WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE, OR
+NON-INFRINGEMENT. NOVELL MAKES NO WARRANTY, REPRESENTATION OR PROMISE
+NOT EXPRESSLY SET FORTH IN THIS LIMITED WARRANTY. NOVELL DOES NOT
+WARRANT THAT THE SOFTWARE OR SERVICES WILL SATISFY YOUR REQUIREMENTS
+OR THAT THE OPERATION OF THE SOFTWARE OR SERVCIES WILL BE
+UNINTERRUPTED. Some jurisdictions do not allow certain disclaimers
+and limitations of warranties, so portions of the above limitations
+may not apply to You. This limited warranty gives You specific rights
+and You may also have other rights which vary by state or
+jurisdiction.
+
+LIMITATION OF LIABILITY
+
+(a) Consequential Losses. NEITHER NOVELL NOR ANY OF ITS LICENSORS,
+SUBSIDIARIES, OR EMPLOYEES WILL IN ANY CASE BE LIABLE FOR ANY
+SPECIAL, INCIDENTAL, CONSEQUENTIAL, INDIRECT, TORT, ECONOMIC OR
+PUNITIVE DAMAGES ARISING OUT OF THE USE OF OR INABILITY TO USE THE
+SOFTWARE OR SERVICES, INCLUDING WITHOUT LIMITATION LOSS OF PROFITS,
+BUSINESS OR DATA, EVEN IF ADVISED OF THE POSSIBILITY OF THOSE
+DAMAGES.
+(b) Direct Damages. IN NO EVENT WILL NOVELL'S AGGREGATE LIABILITY FOR
+DIRECT DAMAGES TO PROPERTY OR PERSON (WHETHER IN ONE INSTANCE OR A
+SERIES OF INSTANCES) EXCEED 1.25 TIMES THE AMOUNT PAID BY YOU FOR THE
+SOFTWARE OR SERVICES OUT OF WHICH SUCH CLAIM AROSE [OR $50 (U.S.) IF
+YOU RECEIVED THE SOFTWARE FREE OF CHARGE]. The above exclusions and
+limitations will not apply to claims relating to death or personal
+injury. In those jurisdictions that do not allow the exclusion or
+limitation of damages, Novell's liability shall be limited or
+excluded to the maximum extent allowed within those jurisdictions.
+
+GENERAL TERMS
+
+Term. This Agreement becomes effective on the date You legally
+acquire the Software and will automatically terminate if You breach
+any of its terms.
+Benchmark Testing. This benchmark testing restriction applies to You
+if You are a software developer or licensor or if You are performing
+testing on the Software at the direction of or on behalf of a
+software developer or licensor. You may not, without Novell's prior
+written consent not to be unreasonably withheld, publish or disclose
+to any third party the results of any benchmark test of the Software.
+If You are a licensor of products that are functionally similar to or
+compete with the Software ("Similar Products"), or are acting on
+behalf of such a licensor, and You publish or disclose benchmark
+information on the Software in violation of this restriction, then
+notwithstanding anything to the contrary in the Similar Product's end
+user license agreement, and in addition to any other remedies Novell
+may have, Novell shall have the right to perform benchmark testing on
+Similar Products and to disclose and publish that benchmark
+information and You hereby represent that You have authority to grant
+such right to Novell.
+
+Open Source. Nothing in this Agreement shall restrict, limit or
+otherwise affect any rights or obligations You may have, or
+conditions to which You may be subject, under any applicable open
+sources licenses to any open source code contained in the Software.
+
+Transfer. This Agreement may not be transferred or assigned without
+the prior written approval of Novell.
+
+Law and Jurisdiction. This Agreement is governed by the laws of the
+State of Utah, U.S. Any action at law relating to this Agreement may
+only be brought before the courts of competent jurisdiction of the
+State of Utah. If, however, Your country of principal residence is a
+member state of the European Union or the European Free Trade
+Association, this Agreement is governed by the laws of that country,
+and any action at law may only be brought before a court of competent
+jurisdiction of that country.
+
+Entire Agreement. This Agreement sets forth the entire understanding
+and agreement between You and Novell and may be amended or modified
+only by a written agreement agreed to by You and an authorized
+representative of Novell. NO LICENSOR, DISTRIBUTOR, DEALER,
+RETAILER, RESELLER, SALES PERSON, OR EMPLOYEE IS AUTHORIZED TO MODIFY
+THIS AGREEMENT OR TO MAKE ANY REPRESENTATION OR PROMISE THAT IS
+DIFFERENT FROM, OR IN ADDITION TO, THE TERMS OF THIS AGREEMENT.
+
+Waiver. No waiver of any right under this Agreement will be
+effective unless in writing, signed by a duly authorized
+representative of the party to be bound. No waiver of any past or
+present right arising from any breach or failure to perform will be
+deemed to be a waiver of any future right arising under this
+Agreement.
+
+Severability. If any provision in this Agreement is invalid or
+unenforceable, that provision will be construed, limited, modified
+or, if necessary, severed, to the extent necessary, to eliminate its
+invalidity or unenforceability, and the other provisions of this
+Agreement will remain unaffected.
+
+Export Compliance. Any products or technical information provided
+under this Agreement may be subject to U.S. export controls and the
+trade laws of other countries. The parties agree to comply with all
+export control regulations and to obtain any required licenses or
+classification to export, re-export or import deliverables. The
+parties agree not to export or re-export to entities on the current
+U.S. export exclusion lists or to any embargoed or terrorist
+countries as specified in the U.S. export laws. The parties will not
+use deliverables for prohibited nuclear, missile, or chemical
+biological weaponry end uses. Please consult the Bureau of Industry
+and Security web page www.bis.doc.gov before exporting Novell
+products from the U.S. Please refer to
+http://www.novell.com/company/legal/ for more information on
+exporting Novell software. Upon request, Novell will provide You
+specific information regarding applicable restrictions. However,
+Novell assumes no responsibility for Your failure to obtain any
+necessary export approvals.
+
+U.S. Government Restricted Rights. Use, duplication, or disclosure
+by the U.S. Government is subject to the restrictions in FAR
+52.227-14 (June 1987) Alternate III (June 1987), FAR 52.227-19 (June
+1987), or DFARS 252.227-7013(b)(3) (Nov 1995), or applicable
+successor clauses.
+
+Contractor/ Manufacturer is Novell, Inc., 1800 South Novell Place,
+Provo, Utah 84606.
+
+Other. The application of the United Nations Convention of Contracts
+for the International Sale of Goods is expressly excluded.
+
+(c)1993, 2000-2009 Novell, Inc. All Rights Reserved.
+(022309)
+
+Novell and SUSE LINUX are registered trademarks of Novell, Inc. in
+the United States and other countries.
+
+All third party trademarks are property of their respective owners.
+
+
+
+
Added: branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/t.ycp
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/ycp-u…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/t.ycp (added)
+++ branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/t.ycp Mon May 23 15:18:39 2011
@@ -0,0 +1,44 @@
+{
+ import "Label";
+
+ list items = [
+ `item (`id ("a"), "a", false, []),
+ `item (`id ("x"), "x", true, [
+ `item (`id ("y"), "y", false, []),
+ `item (`id ("z"), "z", false, []),
+ ]),
+ ];
+ term contents = `HBox (`VSpacing (20), `VBox (`HSpacing(70),
+ `VSpacing (0.2),
+ `ReplacePoint (`id (`reptree), `Tree (`id(`tree), `opt(`notify, `multiSelection), "tree", items)),
+ `HBox (
+ `PushButton (`id (`ok), `opt (`default), Label::OKButton()),
+ `PushButton(`id (`cancel), `opt (`key_F9), Label::CancelButton())
+ ),
+ `VSpacing (0.2)
+ ));
+
+ UI::OpenDialog (`opt (`decorated), contents);
+ UI::ChangeWidget (`tree, `CurrentItem, nil);
+
+ string current = (string) UI::QueryWidget (`id(`tree),`CurrentItem);
+ y2internal ("current: %1", current);
+
+ while (true)
+ {
+ map event = UI::WaitForEvent ();
+ any ret = event["ID"]:nil;
+ y2milestone ("ev %1", event);
+
+ if (ret == `tree)
+ {
+ current = (string) UI::QueryWidget (`id(`tree),`CurrentItem);
+ y2internal ("current: %1", current);
+ }
+
+ if (ret == `ok || ret == `cancel)
+ break;
+ }
+ UI::CloseDialog ();
+}
+
Added: branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/y2signal.log
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/ycp-u…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/y2signal.log (added)
+++ branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/y2signal.log Mon May 23 15:18:39 2011
@@ -0,0 +1,166 @@
+=== 2011-02-09 15:59:40 +0100 ===
+YaST got signal 11 at YCP file /data/yast_trunk/ycp-ui-bindings/examples/Tree-Checkbox3.ycp:39
+Liberating suppressed debugging messages:
+End of suppressed debugging messages
+Backtrace: (use c++filt to demangle)
+/usr/lib64/liby2.so.2(_Z20signal_log_backtracev+0x1e)[0x7fbca0b8fd6e]
+/usr/lib64/liby2.so.2(_Z14signal_handleri+0x157)[0x7fbca0b8ff77]
+/lib64/libc.so.6(+0x32a60)[0x7fbc9ec92a60]
+/usr/lib64/libstdc++.so.6(_ZNSsC1ERKSs+0x8)[0x7fbc9f4cf228]
+/usr/lib64/YaST2/plugin/libpy2UI.so.2(_ZN18YCPPropertyHandler21tryGetTreeCurrentItemEP7YWidget+0x108)[0x7fbc9cbfe298]
+/usr/lib64/YaST2/plugin/libpy2UI.so.2(_ZN18YCPPropertyHandler18getComplexPropertyEP7YWidgetRKSs+0x22f)[0x7fbc9cc06f4f]
+/usr/lib64/YaST2/plugin/libpy2UI.so.2(_ZN6YCP_UI11QueryWidgetERK8YCPValueS2_+0x92a)[0x7fbc9cbbefea]
+/usr/lib64/YaST2/plugin/libpy2UI.so.2(_ZN12YUINamespace11QueryWidgetERK7YCPTermRK9YCPSymbol+0x29)[0x7fbc9cba3229]
+/usr/lib64/YaST2/plugin/libpy2UI.so.2(_ZN11YUIFunction16evaluateCall_intEv+0x3e2c)[0x7fbc9cba849c]
+/usr/lib64/YaST2/plugin/libpy2UI.so.2(_ZN16YCPBuiltinCaller4callEv+0x22)[0x7fbc9cbc2782]
+/usr/lib64/libyui.so.3(_ZN3YUI16uiThreadMainLoopEv+0x41)[0x7fbc9c912781]
+/usr/lib64/libyui.so.3(_Z15start_ui_threadPv+0xe)[0x7fbc9c9128de]
+/lib64/libpthread.so.0(+0x6a4f)[0x7fbc9fe90a4f]
+/lib64/libc.so.6(clone+0x6d)[0x7fbc9ed3082d]
+=== 2011-02-11 14:22:24 +0100 ===
+YaST got signal 2 at YCP file /data/yast_trunk/ycp-ui-bindings/examples/Tree-Checkbox2.ycp:31
+Liberating suppressed debugging messages:
+End of suppressed debugging messages
+Backtrace: (use c++filt to demangle)
+/usr/lib64/liby2.so.2(_Z20signal_log_backtracev+0x1e)[0x7f9433691d6e]
+/usr/lib64/liby2.so.2(_Z14signal_handleri+0x157)[0x7f9433691f77]
+/lib64/libc.so.6(+0x32a60)[0x7f9431794a60]
+/lib64/libpthread.so.0(read+0x2b)[0x7f943299a38b]
+/usr/lib64/libyui.so.3(_ZN3YUI15waitForUIThreadEv+0x2a)[0x7f942f41448a]
+/usr/lib64/YaST2/plugin/libpy2UI.so.2(_ZN11YUIFunction12evaluateCallEv+0xc0)[0x7f942f6aea90]
+/usr/lib64/libycp.so.3(_ZN10YEFunction8evaluateEb+0x2df)[0x7f94339184af]
+/usr/lib64/libycp.so.3(_ZN8YSAssign8evaluateEb+0x44)[0x7f943392c0b4]
+/usr/lib64/libycp.so.3(_ZN6YBlock8evaluateEb+0x1d2)[0x7f943393e2d2]
+/usr/lib64/libycp.so.3(_ZN8YSRepeat8evaluateEb+0xc3)[0x7f943392cca3]
+/usr/lib64/libycp.so.3(_ZN6YBlock8evaluateEb+0x1d2)[0x7f943393e2d2]
+/usr/lib64/libycp.so.3(_ZNK10YCPCodeRep8evaluateEb+0xfa)[0x7f943390eb0a]
+/usr/lib64/YaST2/plugin/libpy2wfm.so.2(_ZN14Y2WFMComponent12doActualWorkERK7YCPListP11Y2Component+0x5d3)[0x7f9433df68d3]
+/usr/lib64/liby2.so.2(main+0x101d)[0x7f9433693d4d]
+/lib64/libc.so.6(__libc_start_main+0xfd)[0x7f9431780b7d]
+/usr/lib/YaST2/bin/y2base[0x400679]
+=== 2011-02-11 14:51:09 +0100 ===
+YaST got signal 2 at YCP file /data/yast_trunk/ycp-ui-bindings/examples/Tree-Checkbox2.ycp:31
+Liberating suppressed debugging messages:
+End of suppressed debugging messages
+Backtrace: (use c++filt to demangle)
+/usr/lib64/liby2.so.2(_Z20signal_log_backtracev+0x1e)[0x7fb1f7dd7d6e]
+/usr/lib64/liby2.so.2(_Z14signal_handleri+0x157)[0x7fb1f7dd7f77]
+/lib64/libc.so.6(+0x32a60)[0x7fb1f5edaa60]
+/lib64/libpthread.so.0(read+0x2b)[0x7fb1f70e038b]
+/usr/lib64/libyui.so.3(_ZN3YUI15waitForUIThreadEv+0x2a)[0x7fb1f3b5a48a]
+/usr/lib64/YaST2/plugin/libpy2UI.so.2(_ZN11YUIFunction12evaluateCallEv+0xc0)[0x7fb1f3df4a90]
+/usr/lib64/libycp.so.3(_ZN10YEFunction8evaluateEb+0x2df)[0x7fb1f805e4af]
+/usr/lib64/libycp.so.3(_ZN8YSAssign8evaluateEb+0x44)[0x7fb1f80720b4]
+/usr/lib64/libycp.so.3(_ZN6YBlock8evaluateEb+0x1d2)[0x7fb1f80842d2]
+/usr/lib64/libycp.so.3(_ZN8YSRepeat8evaluateEb+0xc3)[0x7fb1f8072ca3]
+/usr/lib64/libycp.so.3(_ZN6YBlock8evaluateEb+0x1d2)[0x7fb1f80842d2]
+/usr/lib64/libycp.so.3(_ZNK10YCPCodeRep8evaluateEb+0xfa)[0x7fb1f8054b0a]
+/usr/lib64/YaST2/plugin/libpy2wfm.so.2(_ZN14Y2WFMComponent12doActualWorkERK7YCPListP11Y2Component+0x5d3)[0x7fb1f853c8d3]
+/usr/lib64/liby2.so.2(main+0x101d)[0x7fb1f7dd9d4d]
+/lib64/libc.so.6(__libc_start_main+0xfd)[0x7fb1f5ec6b7d]
+/usr/lib/YaST2/bin/y2base[0x400679]
+=== 2011-02-11 14:51:47 +0100 ===
+YaST got signal 2 at YCP file /data/yast_trunk/ycp-ui-bindings/examples/Tree-Checkbox2.ycp:31
+Liberating suppressed debugging messages:
+End of suppressed debugging messages
+Backtrace: (use c++filt to demangle)
+/usr/lib64/liby2.so.2(_Z20signal_log_backtracev+0x1e)[0x7fa4f2429d6e]
+/usr/lib64/liby2.so.2(_Z14signal_handleri+0x157)[0x7fa4f2429f77]
+/lib64/libc.so.6(+0x32a60)[0x7fa4f052ca60]
+/lib64/libpthread.so.0(read+0x2b)[0x7fa4f173238b]
+/usr/lib64/libyui.so.3(_ZN3YUI15waitForUIThreadEv+0x2a)[0x7fa4ee1ac48a]
+/usr/lib64/YaST2/plugin/libpy2UI.so.2(_ZN11YUIFunction12evaluateCallEv+0xc0)[0x7fa4ee446a90]
+/usr/lib64/libycp.so.3(_ZN10YEFunction8evaluateEb+0x2df)[0x7fa4f26b04af]
+/usr/lib64/libycp.so.3(_ZN8YSAssign8evaluateEb+0x44)[0x7fa4f26c40b4]
+/usr/lib64/libycp.so.3(_ZN6YBlock8evaluateEb+0x1d2)[0x7fa4f26d62d2]
+/usr/lib64/libycp.so.3(_ZN8YSRepeat8evaluateEb+0xc3)[0x7fa4f26c4ca3]
+/usr/lib64/libycp.so.3(_ZN6YBlock8evaluateEb+0x1d2)[0x7fa4f26d62d2]
+/usr/lib64/libycp.so.3(_ZNK10YCPCodeRep8evaluateEb+0xfa)[0x7fa4f26a6b0a]
+/usr/lib64/YaST2/plugin/libpy2wfm.so.2(_ZN14Y2WFMComponent12doActualWorkERK7YCPListP11Y2Component+0x5d3)[0x7fa4f2b8e8d3]
+/usr/lib64/liby2.so.2(main+0x101d)[0x7fa4f242bd4d]
+/lib64/libc.so.6(__libc_start_main+0xfd)[0x7fa4f0518b7d]
+/usr/lib/YaST2/bin/y2base[0x400679]
+=== 2011-02-11 14:52:07 +0100 ===
+YaST got signal 2 at YCP file /data/yast_trunk/ycp-ui-bindings/examples/Tree-Checkbox2.ycp:31
+Liberating suppressed debugging messages:
+End of suppressed debugging messages
+Backtrace: (use c++filt to demangle)
+/usr/lib64/liby2.so.2(_Z20signal_log_backtracev+0x1e)[0x7fad7f2a9d6e]
+/usr/lib64/liby2.so.2(_Z14signal_handleri+0x157)[0x7fad7f2a9f77]
+/lib64/libc.so.6(+0x32a60)[0x7fad7d3aca60]
+/lib64/libpthread.so.0(read+0x2b)[0x7fad7e5b238b]
+/usr/lib64/libyui.so.3(_ZN3YUI15waitForUIThreadEv+0x2a)[0x7fad7b02c48a]
+/usr/lib64/YaST2/plugin/libpy2UI.so.2(_ZN11YUIFunction12evaluateCallEv+0xc0)[0x7fad7b2c6a90]
+/usr/lib64/libycp.so.3(_ZN10YEFunction8evaluateEb+0x2df)[0x7fad7f5304af]
+/usr/lib64/libycp.so.3(_ZN8YSAssign8evaluateEb+0x44)[0x7fad7f5440b4]
+/usr/lib64/libycp.so.3(_ZN6YBlock8evaluateEb+0x1d2)[0x7fad7f5562d2]
+/usr/lib64/libycp.so.3(_ZN8YSRepeat8evaluateEb+0xc3)[0x7fad7f544ca3]
+/usr/lib64/libycp.so.3(_ZN6YBlock8evaluateEb+0x1d2)[0x7fad7f5562d2]
+/usr/lib64/libycp.so.3(_ZNK10YCPCodeRep8evaluateEb+0xfa)[0x7fad7f526b0a]
+/usr/lib64/YaST2/plugin/libpy2wfm.so.2(_ZN14Y2WFMComponent12doActualWorkERK7YCPListP11Y2Component+0x5d3)[0x7fad7fa0e8d3]
+/usr/lib64/liby2.so.2(main+0x101d)[0x7fad7f2abd4d]
+/lib64/libc.so.6(__libc_start_main+0xfd)[0x7fad7d398b7d]
+/usr/lib/YaST2/bin/y2base[0x400679]
+=== 2011-02-11 14:52:35 +0100 ===
+YaST got signal 2 at YCP file /data/yast_trunk/ycp-ui-bindings/examples/Tree-Checkbox2.ycp:31
+Liberating suppressed debugging messages:
+End of suppressed debugging messages
+Backtrace: (use c++filt to demangle)
+/usr/lib64/liby2.so.2(_Z20signal_log_backtracev+0x1e)[0x7f75d5aead6e]
+/usr/lib64/liby2.so.2(_Z14signal_handleri+0x157)[0x7f75d5aeaf77]
+/lib64/libc.so.6(+0x32a60)[0x7f75d3beda60]
+/lib64/libpthread.so.0(read+0x2b)[0x7f75d4df338b]
+/usr/lib64/libyui.so.3(_ZN3YUI15waitForUIThreadEv+0x2a)[0x7f75d186d48a]
+/usr/lib64/YaST2/plugin/libpy2UI.so.2(_ZN11YUIFunction12evaluateCallEv+0xc0)[0x7f75d1b07a90]
+/usr/lib64/libycp.so.3(_ZN10YEFunction8evaluateEb+0x2df)[0x7f75d5d714af]
+/usr/lib64/libycp.so.3(_ZN8YSAssign8evaluateEb+0x44)[0x7f75d5d850b4]
+/usr/lib64/libycp.so.3(_ZN6YBlock8evaluateEb+0x1d2)[0x7f75d5d972d2]
+/usr/lib64/libycp.so.3(_ZN8YSRepeat8evaluateEb+0xc3)[0x7f75d5d85ca3]
+/usr/lib64/libycp.so.3(_ZN6YBlock8evaluateEb+0x1d2)[0x7f75d5d972d2]
+/usr/lib64/libycp.so.3(_ZNK10YCPCodeRep8evaluateEb+0xfa)[0x7f75d5d67b0a]
+/usr/lib64/YaST2/plugin/libpy2wfm.so.2(_ZN14Y2WFMComponent12doActualWorkERK7YCPListP11Y2Component+0x5d3)[0x7f75d624f8d3]
+/usr/lib64/liby2.so.2(main+0x101d)[0x7f75d5aecd4d]
+/lib64/libc.so.6(__libc_start_main+0xfd)[0x7f75d3bd9b7d]
+/usr/lib/YaST2/bin/y2base[0x400679]
+=== 2011-02-11 14:53:40 +0100 ===
+YaST got signal 2 at YCP file /data/yast_trunk/ycp-ui-bindings/examples/Tree-Checkbox2.ycp:31
+Liberating suppressed debugging messages:
+End of suppressed debugging messages
+Backtrace: (use c++filt to demangle)
+/usr/lib64/liby2.so.2(_Z20signal_log_backtracev+0x1e)[0x7fddb57acd6e]
+/usr/lib64/liby2.so.2(_Z14signal_handleri+0x157)[0x7fddb57acf77]
+/lib64/libc.so.6(+0x32a60)[0x7fddb38afa60]
+/lib64/libpthread.so.0(read+0x2b)[0x7fddb4ab538b]
+/usr/lib64/libyui.so.3(_ZN3YUI15waitForUIThreadEv+0x2a)[0x7fddb152f48a]
+/usr/lib64/YaST2/plugin/libpy2UI.so.2(_ZN11YUIFunction12evaluateCallEv+0xc0)[0x7fddb17c9a90]
+/usr/lib64/libycp.so.3(_ZN10YEFunction8evaluateEb+0x2df)[0x7fddb5a334af]
+/usr/lib64/libycp.so.3(_ZN8YSAssign8evaluateEb+0x44)[0x7fddb5a470b4]
+/usr/lib64/libycp.so.3(_ZN6YBlock8evaluateEb+0x1d2)[0x7fddb5a592d2]
+/usr/lib64/libycp.so.3(_ZN8YSRepeat8evaluateEb+0xc3)[0x7fddb5a47ca3]
+/usr/lib64/libycp.so.3(_ZN6YBlock8evaluateEb+0x1d2)[0x7fddb5a592d2]
+/usr/lib64/libycp.so.3(_ZNK10YCPCodeRep8evaluateEb+0xfa)[0x7fddb5a29b0a]
+/usr/lib64/YaST2/plugin/libpy2wfm.so.2(_ZN14Y2WFMComponent12doActualWorkERK7YCPListP11Y2Component+0x5d3)[0x7fddb5f118d3]
+/usr/lib64/liby2.so.2(main+0x101d)[0x7fddb57aed4d]
+/lib64/libc.so.6(__libc_start_main+0xfd)[0x7fddb389bb7d]
+/usr/lib/YaST2/bin/y2base[0x400679]
+=== 2011-02-11 14:54:06 +0100 ===
+YaST got signal 2 at YCP file /data/yast_trunk/ycp-ui-bindings/examples/Tree-Checkbox2.ycp:31
+Liberating suppressed debugging messages:
+End of suppressed debugging messages
+Backtrace: (use c++filt to demangle)
+/usr/lib64/liby2.so.2(_Z20signal_log_backtracev+0x1e)[0x7f3912f0ed6e]
+/usr/lib64/liby2.so.2(_Z14signal_handleri+0x157)[0x7f3912f0ef77]
+/lib64/libc.so.6(+0x32a60)[0x7f3911011a60]
+/lib64/libpthread.so.0(read+0x2b)[0x7f391221738b]
+/usr/lib64/libyui.so.3(_ZN3YUI15waitForUIThreadEv+0x2a)[0x7f390ec9148a]
+/usr/lib64/YaST2/plugin/libpy2UI.so.2(_ZN11YUIFunction12evaluateCallEv+0xc0)[0x7f390ef2ba90]
+/usr/lib64/libycp.so.3(_ZN10YEFunction8evaluateEb+0x2df)[0x7f39131954af]
+/usr/lib64/libycp.so.3(_ZN8YSAssign8evaluateEb+0x44)[0x7f39131a90b4]
+/usr/lib64/libycp.so.3(_ZN6YBlock8evaluateEb+0x1d2)[0x7f39131bb2d2]
+/usr/lib64/libycp.so.3(_ZN8YSRepeat8evaluateEb+0xc3)[0x7f39131a9ca3]
+/usr/lib64/libycp.so.3(_ZN6YBlock8evaluateEb+0x1d2)[0x7f39131bb2d2]
+/usr/lib64/libycp.so.3(_ZNK10YCPCodeRep8evaluateEb+0xfa)[0x7f391318bb0a]
+/usr/lib64/YaST2/plugin/libpy2wfm.so.2(_ZN14Y2WFMComponent12doActualWorkERK7YCPListP11Y2Component+0x5d3)[0x7f39136738d3]
+/usr/lib64/liby2.so.2(main+0x101d)[0x7f3912f10d4d]
+/lib64/libc.so.6(__libc_start_main+0xfd)[0x7f3910ffdb7d]
+/usr/lib/YaST2/bin/y2base[0x400679]
Modified: branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/package/yast2-ycp-ui-bindings.changes
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/ycp-u…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/package/yast2-ycp-ui-bindings.changes (original)
+++ branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/package/yast2-ycp-ui-bindings.changes Mon May 23 15:18:39 2011
@@ -1,4 +1,55 @@
-------------------------------------------------------------------
+Tue Apr 19 12:13:02 CEST 2011 - tgoettlicher(a)suse.de
+
+- version bump
+- V 2.21.1
+
+-------------------------------------------------------------------
+Fri Apr 15 16:18:41 CEST 2011 - tgoettlicher(a)suse.de
+
+- Added support for recursive selection in tree widgets
+- V 2.20.4
+
+-------------------------------------------------------------------
+Fri Feb 11 16:00:40 CET 2011 - tgoettlicher(a)suse.de
+
+- fixed segfault when calling currentItem()
+- V 2.20.3
+
+-------------------------------------------------------------------
+Tue Feb 8 12:17:41 CET 2011 - tgoettlicher(a)suse.de
+
+- Added support for currentItem to tree widget
+- V 2.20.2
+
+-------------------------------------------------------------------
+Sun Feb 6 10:00:59 UTC 2011 - coolo(a)novell.com
+
+- fix syntax error
+
+-------------------------------------------------------------------
+Fri Feb 4 14:58:29 CET 2011 - tgoettlicher(a)suse.de
+
+- Fixed selection of check boxes in tree widgets (bnc #669138)
+- V 2.20.1
+
+-------------------------------------------------------------------
+Thu Feb 3 15:09:13 CET 2011 - tgoettlicher(a)suse.de
+
+- V 2.20.0
+
+-------------------------------------------------------------------
+Mon Dec 20 16:51:52 CET 2010 - tgoettlicher(a)suse.de
+
+- Added support for check boxes in tree widgets
+- V 2.19.1
+
+-------------------------------------------------------------------
+Wed Feb 10 17:25:22 CET 2010 - tgoettlicher(a)suse.de
+
+- added license headers
+
+-------------------------------------------------------------------
Wed Mar 11 16:08:18 CET 2009 - kmachalkova(a)suse.cz
- Do not abort in DumpWidgetTree function if there is no dialog
@@ -173,3 +224,4 @@
- Package split off from yast2-core
- V 2.16.37
+-------------------------------------------------------------------
Modified: branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPBuiltinCaller.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/ycp-u…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPBuiltinCaller.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPBuiltinCaller.cc Mon May 23 15:18:39 2011
@@ -1,3 +1,25 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPBuiltinCaller.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/ycp-u…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPBuiltinCaller.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPBuiltinCaller.h Mon May 23 15:18:39 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPDialogParser.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/ycp-u…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPDialogParser.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPDialogParser.cc Mon May 23 15:18:39 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
@@ -2118,6 +2139,7 @@
* and opening subtrees. If the UI cannot handle this, all
* subtrees will always be open.
*
+ * @option multiSelection user can select multiple items at once
* @option immediate make `notify trigger immediately when the selected item changes
* @usage `Tree( `id( `treeID ), "treeLabel", [ "top1", "top2", "top3" ] );
* @examples Tree1.ycp
@@ -2151,7 +2173,7 @@
{
int numArgs = term->size() - argnr;
- if ( numArgs < 1 || numArgs > 2
+ if ( numArgs < 1 || numArgs > 3
|| ! term->value( argnr )->isString()
|| ( numArgs >= 2 && ! term->value( argnr+1 )->isList() ) )
{
@@ -2159,23 +2181,27 @@
}
bool immediate = false;
+ bool multiSelection = false;
+ bool recursiveSelection = false;
for ( int o=0; o < optList->size(); o++ )
{
- if ( optList->value(o)->isSymbol() && optList->value(o)->asSymbol()->symbol() == YUIOpt_immediate ) immediate = true;
+ if ( optList->value(o)->isSymbol() && optList->value(o)->asSymbol()->symbol() == YUIOpt_immediate ) immediate = true;
+ else if ( optList->value(o)->isSymbol() && optList->value(o)->asSymbol()->symbol() == YUIOpt_multiSelection ) multiSelection = true;
+ else if ( optList->value(o)->isSymbol() && optList->value(o)->asSymbol()->symbol() == YUIOpt_recursiveSelection ) recursiveSelection = true;
else logUnknownOption( term, optList->value(o) );
}
string label = term->value ( argnr )->asString()->value();
- YTree * tree = YUI::widgetFactory()->createTree( parent, label );
+ YTree * tree = YUI::widgetFactory()->createTree( parent, label, multiSelection, recursiveSelection );
if ( numArgs > 1 )
{
YCPList itemList = term->value( argnr+1 )->asList();
tree->addItems( YCPTreeItemParser::parseTreeItemList( itemList ) );
- if ( tree->hasItems() )
+ if ( tree->hasItems() && !multiSelection )
tree->selectItem( tree->firstItem() );
}
Modified: branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPDialogParser.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/ycp-u…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPDialogParser.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPDialogParser.h Mon May 23 15:18:39 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPErrorDialog.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/ycp-u…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPErrorDialog.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPErrorDialog.cc Mon May 23 15:18:39 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPErrorDialog.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/ycp-u…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPErrorDialog.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPErrorDialog.h Mon May 23 15:18:39 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPEvent.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/ycp-u…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPEvent.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPEvent.cc Mon May 23 15:18:39 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPEvent.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/ycp-u…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPEvent.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPEvent.h Mon May 23 15:18:39 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPItem.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/ycp-u…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPItem.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPItem.h Mon May 23 15:18:39 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPItemParser.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/ycp-u…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPItemParser.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPItemParser.cc Mon May 23 15:18:39 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPItemParser.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/ycp-u…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPItemParser.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPItemParser.h Mon May 23 15:18:39 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPItemWriter.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/ycp-u…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPItemWriter.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPItemWriter.cc Mon May 23 15:18:39 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPItemWriter.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/ycp-u…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPItemWriter.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPItemWriter.h Mon May 23 15:18:39 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPMacroPlayer.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/ycp-u…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPMacroPlayer.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPMacroPlayer.cc Mon May 23 15:18:39 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPMacroPlayer.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/ycp-u…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPMacroPlayer.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPMacroPlayer.h Mon May 23 15:18:39 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPMacroRecorder.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/ycp-u…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPMacroRecorder.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPMacroRecorder.cc Mon May 23 15:18:39 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPMacroRecorder.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/ycp-u…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPMacroRecorder.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPMacroRecorder.h Mon May 23 15:18:39 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPMenuItem.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/ycp-u…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPMenuItem.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPMenuItem.h Mon May 23 15:18:39 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPMenuItemParser.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/ycp-u…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPMenuItemParser.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPMenuItemParser.cc Mon May 23 15:18:39 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPMenuItemParser.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/ycp-u…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPMenuItemParser.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPMenuItemParser.h Mon May 23 15:18:39 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPMenuItemWriter.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/ycp-u…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPMenuItemWriter.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPMenuItemWriter.cc Mon May 23 15:18:39 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPMenuItemWriter.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/ycp-u…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPMenuItemWriter.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPMenuItemWriter.h Mon May 23 15:18:39 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPPropertyHandler.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/ycp-u…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPPropertyHandler.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPPropertyHandler.cc Mon May 23 15:18:39 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
@@ -117,6 +138,7 @@
{
if ( trySetMultiSelectionBoxSelectedItems( widget, val ) ) return true;
if ( trySetTableSelectedItems( widget, val ) ) return true;
+ if ( trySetTreeSelectedItems( widget, val ) ) return true;
}
y2error( "Can't handle property %s::%s - not changing anything",
@@ -170,7 +192,7 @@
else if ( propertyName == YUIProperty_CurrentItem )
{
val = tryGetSelectionBoxValue ( widget ); if ( ! val.isNull() ) return val;
- val = tryGetTreeValue ( widget ); if ( ! val.isNull() ) return val;
+ val = tryGetTreeCurrentItem ( widget ); if ( ! val.isNull() ) return val;
val = tryGetTableValue ( widget ); if ( ! val.isNull() ) return val;
val = tryGetComboBoxValue ( widget ); if ( ! val.isNull() ) return val;
val = tryGetDumbTabValue ( widget ); if ( ! val.isNull() ) return val;
@@ -186,6 +208,7 @@
{
val = tryGetMultiSelectionBoxSelectedItems( widget ); if ( ! val.isNull() ) return val;
val = tryGetTableSelectedItems( widget ); if ( ! val.isNull() ) return val;
+ val = tryGetTreeSelectedItems( widget ); if ( ! val.isNull() ) return val;
}
else if ( propertyName == YUIProperty_OpenItems )
{
@@ -663,6 +686,13 @@
bool
+YCPPropertyHandler::trySetTreeSelectedItems( YWidget * widget, const YCPValue & val )
+{
+ return trySetSelectionWidgetSelectedItems<YTree, YCPTreeItem>( widget, val );
+}
+
+
+bool
YCPPropertyHandler::trySetMultiSelectionBoxCurrentItem( YWidget * widget, const YCPValue & val )
{
YMultiSelectionBox * multiSelBox = dynamic_cast<YMultiSelectionBox *> (widget);
@@ -982,6 +1012,13 @@
return tryGetSelectionWidgetSelectedItems<YTable, YCPTableItem>( widget );
}
+YCPValue
+YCPPropertyHandler::tryGetTreeSelectedItems( YWidget * widget )
+{
+ return tryGetSelectionWidgetSelectedItems<YTree, YCPTreeItem>( widget );
+}
+
+
YCPValue
YCPPropertyHandler::tryGetMultiSelectionBoxCurrentItem( YWidget * widget )
@@ -1222,6 +1259,25 @@
return YCPTableItemWriter::itemList( table->itemsBegin(), table->itemsEnd() );
}
+YCPValue
+YCPPropertyHandler::tryGetTreeCurrentItem( YWidget * widget )
+{
+ YTree * tree = dynamic_cast<YTree *> (widget);
+
+ if ( ! tree )
+ return YCPNull();
+
+ YItem * currentItem = tree->currentItem();
+ YCPTreeItem * item = dynamic_cast<YCPTreeItem *> (currentItem);
+
+ if ( item )
+ return item->id();
+
+ return YCPVoid();
+
+}
+
+
YCPValue
YCPPropertyHandler::tryGetTreeItems( YWidget * widget )
Modified: branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPPropertyHandler.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/ycp-u…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPPropertyHandler.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPPropertyHandler.h Mon May 23 15:18:39 2011
@@ -1,3 +1,23 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
@@ -106,6 +126,7 @@
static bool trySetRadioButtonGroupCurrentButton ( YWidget * widget, const YCPValue & val );
static bool trySetMultiSelectionBoxSelectedItems ( YWidget * widget, const YCPValue & val );
static bool trySetTableSelectedItems ( YWidget * widget, const YCPValue & val );
+ static bool trySetTreeSelectedItems ( YWidget * widget, const YCPValue & val );
static bool trySetMultiSelectionBoxCurrentItem ( YWidget * widget, const YCPValue & val );
static bool trySetMultiProgressMeterValues ( YWidget * widget, const YCPValue & val );
static bool trySetBarGraphValues ( YWidget * widget, const YCPValue & val );
@@ -126,6 +147,7 @@
static YCPValue tryGetRadioButtonGroupCurrentButton ( YWidget * widget );
static YCPValue tryGetMultiSelectionBoxSelectedItems( YWidget * widget );
static YCPValue tryGetTableSelectedItems ( YWidget * widget );
+ static YCPValue tryGetTreeSelectedItems ( YWidget * widget );
static YCPValue tryGetMultiSelectionBoxCurrentItem ( YWidget * widget );
static YCPValue tryGetTreeOpenItems ( YWidget * widget );
static YCPValue tryGetTreeCurrentBranch ( YWidget * widget );
@@ -138,6 +160,8 @@
static YCPValue tryGetSelectionWidgetItems ( YWidget * widget );
static YCPValue tryGetBarGraphValues ( YWidget * widget );
static YCPValue tryGetBarGraphLabels ( YWidget * widget );
+ static YCPValue tryGetTreeCurrentItem ( YWidget * widget );
+
/**
Modified: branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPTableItem.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/ycp-u…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPTableItem.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPTableItem.h Mon May 23 15:18:39 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPTableItemParser.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/ycp-u…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPTableItemParser.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPTableItemParser.cc Mon May 23 15:18:39 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPTableItemParser.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/ycp-u…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPTableItemParser.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPTableItemParser.h Mon May 23 15:18:39 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPTableItemWriter.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/ycp-u…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPTableItemWriter.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPTableItemWriter.cc Mon May 23 15:18:39 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPTableItemWriter.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/ycp-u…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPTableItemWriter.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPTableItemWriter.h Mon May 23 15:18:39 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPTreeItem.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/ycp-u…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPTreeItem.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPTreeItem.h Mon May 23 15:18:39 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPTreeItemParser.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/ycp-u…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPTreeItemParser.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPTreeItemParser.cc Mon May 23 15:18:39 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPTreeItemParser.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/ycp-u…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPTreeItemParser.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPTreeItemParser.h Mon May 23 15:18:39 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPTreeItemWriter.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/ycp-u…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPTreeItemWriter.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPTreeItemWriter.cc Mon May 23 15:18:39 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPTreeItemWriter.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/ycp-u…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPTreeItemWriter.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPTreeItemWriter.h Mon May 23 15:18:39 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPValueWidgetID.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/ycp-u…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPValueWidgetID.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPValueWidgetID.cc Mon May 23 15:18:39 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPValueWidgetID.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/ycp-u…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPValueWidgetID.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPValueWidgetID.h Mon May 23 15:18:39 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPWizardCommandParser.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/ycp-u…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPWizardCommandParser.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPWizardCommandParser.cc Mon May 23 15:18:39 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPWizardCommandParser.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/ycp-u…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPWizardCommandParser.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPWizardCommandParser.h Mon May 23 15:18:39 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCP_UI.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/ycp-u…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCP_UI.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCP_UI.cc Mon May 23 15:18:39 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCP_UI.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/ycp-u…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCP_UI.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCP_UI.h Mon May 23 15:18:39 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCP_UI_Exception.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/ycp-u…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCP_UI_Exception.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCP_UI_Exception.h Mon May 23 15:18:39 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCP_util.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/ycp-u…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCP_util.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCP_util.cc Mon May 23 15:18:39 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCP_util.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/ycp-u…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCP_util.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCP_util.h Mon May 23 15:18:39 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YUIComponent.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/ycp-u…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YUIComponent.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YUIComponent.cc Mon May 23 15:18:39 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YUIComponent.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/ycp-u…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YUIComponent.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YUIComponent.h Mon May 23 15:18:39 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YUIComponentCreator.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/ycp-u…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YUIComponentCreator.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YUIComponentCreator.cc Mon May 23 15:18:39 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YUIComponentCreator.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/ycp-u…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YUIComponentCreator.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YUIComponentCreator.h Mon May 23 15:18:39 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YUINamespace.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/ycp-u…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YUINamespace.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YUINamespace.cc Mon May 23 15:18:39 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YUINamespace.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/ycp-u…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YUINamespace.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YUINamespace.h Mon May 23 15:18:39 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YWidgetOpt.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/ycp-u…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YWidgetOpt.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YWidgetOpt.h Mon May 23 15:18:39 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/yast2-ycp-ui-bindings.spec.in
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/ycp-u…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/yast2-ycp-ui-bindings.spec.in (original)
+++ branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/yast2-ycp-ui-bindings.spec.in Mon May 23 15:18:39 2011
@@ -21,8 +21,8 @@
# libycp includes crypto built-ins
BuildRequires: libxcrypt-devel
-Requires: yast2-libyui >= 2.18.7
-BuildRequires: yast2-libyui-devel >= 2.18.7
+Requires: yast2-libyui >= 2.21.1
+BuildRequires: yast2-libyui-devel >= 2.21.1
# libyui ImplPtr
BuildRequires: boost-devel
--
To unsubscribe, e-mail: yast-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: yast-commit+help(a)opensuse.org
1
0
[yast-commit] r64085 - in /branches/SuSE-Code-11-SP1-Branch: boot-server/ bootloader/ dhcp-server/ ftp-server/ http-server/ iscsi-client/ iscsi-server/ isns/ kdump/ network/ printer/ python-bindings/ slp-server/...
by locilka@svn2.opensuse.org 20 May '11
by locilka@svn2.opensuse.org 20 May '11
20 May '11
Author: locilka
Date: Fri May 20 16:32:32 2011
New Revision: 64085
URL: http://svn.opensuse.org/viewcvs/yast?rev=64085&view=rev
Log:
Fixing maintainer info
Modified:
branches/SuSE-Code-11-SP1-Branch/boot-server/MAINTAINER
branches/SuSE-Code-11-SP1-Branch/bootloader/MAINTAINER
branches/SuSE-Code-11-SP1-Branch/dhcp-server/MAINTAINER
branches/SuSE-Code-11-SP1-Branch/ftp-server/MAINTAINER
branches/SuSE-Code-11-SP1-Branch/http-server/MAINTAINER
branches/SuSE-Code-11-SP1-Branch/iscsi-client/MAINTAINER
branches/SuSE-Code-11-SP1-Branch/iscsi-server/MAINTAINER
branches/SuSE-Code-11-SP1-Branch/isns/MAINTAINER
branches/SuSE-Code-11-SP1-Branch/kdump/MAINTAINER
branches/SuSE-Code-11-SP1-Branch/network/MAINTAINER
branches/SuSE-Code-11-SP1-Branch/printer/MAINTAINER
branches/SuSE-Code-11-SP1-Branch/python-bindings/MAINTAINER
branches/SuSE-Code-11-SP1-Branch/slp-server/MAINTAINER
branches/SuSE-Code-11-SP1-Branch/support/MAINTAINER
branches/SuSE-Code-11-SP1-Branch/yast2/library/network/MAINTAINER
Modified: branches/SuSE-Code-11-SP1-Branch/boot-server/MAINTAINER
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/boot-…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/boot-server/MAINTAINER (original)
+++ branches/SuSE-Code-11-SP1-Branch/boot-server/MAINTAINER Fri May 20 16:32:32 2011
@@ -1 +1 @@
-Michal Zugec <mzugec(a)suse.cz>
+YaST2 Maintainers <yast2-maintainers(a)suse.de>
Modified: branches/SuSE-Code-11-SP1-Branch/bootloader/MAINTAINER
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/bootl…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/bootloader/MAINTAINER (original)
+++ branches/SuSE-Code-11-SP1-Branch/bootloader/MAINTAINER Fri May 20 16:32:32 2011
@@ -1 +1 @@
-Jozef Uhliarik <juhliarik(a)suse.cz>
+Steffen Winterfeldt <snwint(a)suse.de>
Modified: branches/SuSE-Code-11-SP1-Branch/dhcp-server/MAINTAINER
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/dhcp-…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/dhcp-server/MAINTAINER (original)
+++ branches/SuSE-Code-11-SP1-Branch/dhcp-server/MAINTAINER Fri May 20 16:32:32 2011
@@ -1 +1 @@
-Jozef Uhliarik <juhliarik(a)suse.cz>
+YaST2 Maintainers <yast2-maintainers(a)suse.de>
Modified: branches/SuSE-Code-11-SP1-Branch/ftp-server/MAINTAINER
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/ftp-s…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/ftp-server/MAINTAINER (original)
+++ branches/SuSE-Code-11-SP1-Branch/ftp-server/MAINTAINER Fri May 20 16:32:32 2011
@@ -1 +1 @@
-Jozef Uhliarik <juhliarik(a)suse.cz>
+YaST2 Maintainers <yast2-maintainers(a)suse.de>
Modified: branches/SuSE-Code-11-SP1-Branch/http-server/MAINTAINER
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/http-…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/http-server/MAINTAINER (original)
+++ branches/SuSE-Code-11-SP1-Branch/http-server/MAINTAINER Fri May 20 16:32:32 2011
@@ -1 +1 @@
-Michal Zugec <mzugec(a)suse.cz>
+YaST2 Maintainers <yast2-maintainers(a)suse.de>
Modified: branches/SuSE-Code-11-SP1-Branch/iscsi-client/MAINTAINER
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/iscsi…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/iscsi-client/MAINTAINER (original)
+++ branches/SuSE-Code-11-SP1-Branch/iscsi-client/MAINTAINER Fri May 20 16:32:32 2011
@@ -1 +1 @@
-Michal Zugec <mzugec(a)suse.cz>
+Thomas Fehr <fehr(a)suse.de>
Modified: branches/SuSE-Code-11-SP1-Branch/iscsi-server/MAINTAINER
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/iscsi…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/iscsi-server/MAINTAINER (original)
+++ branches/SuSE-Code-11-SP1-Branch/iscsi-server/MAINTAINER Fri May 20 16:32:32 2011
@@ -1 +1 @@
-Michal Zugec <mzugec(a)suse.cz>
+Thomas Fehr <fehr(a)suse.de>
Modified: branches/SuSE-Code-11-SP1-Branch/isns/MAINTAINER
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/isns/…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/isns/MAINTAINER (original)
+++ branches/SuSE-Code-11-SP1-Branch/isns/MAINTAINER Fri May 20 16:32:32 2011
@@ -1 +1 @@
-Michal Zugec <mzugec(a)novell.com>
+YaST2 Maintainers <yast2-maintainers(a)suse.de>
Modified: branches/SuSE-Code-11-SP1-Branch/kdump/MAINTAINER
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/kdump…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/kdump/MAINTAINER (original)
+++ branches/SuSE-Code-11-SP1-Branch/kdump/MAINTAINER Fri May 20 16:32:32 2011
@@ -1 +1 @@
-Jozef Uhliarik <juhliarik(a)suse.com>
+Steffen Winterfeldt <snwint(a)suse.de>
Modified: branches/SuSE-Code-11-SP1-Branch/network/MAINTAINER
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/netwo…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/network/MAINTAINER (original)
+++ branches/SuSE-Code-11-SP1-Branch/network/MAINTAINER Fri May 20 16:32:32 2011
@@ -1 +1 @@
-Michal Zugec <mzugec(a)suse.cz>
+Martin Vidner <mvidner(a)suse.cz>
Modified: branches/SuSE-Code-11-SP1-Branch/printer/MAINTAINER
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/print…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/printer/MAINTAINER (original)
+++ branches/SuSE-Code-11-SP1-Branch/printer/MAINTAINER Fri May 20 16:32:32 2011
@@ -1 +1 @@
-Michal Zugec <mzugec(a)novell.com>
+Johannes Meixner <jsmeix(a)novell.com>
Modified: branches/SuSE-Code-11-SP1-Branch/python-bindings/MAINTAINER
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/pytho…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/python-bindings/MAINTAINER (original)
+++ branches/SuSE-Code-11-SP1-Branch/python-bindings/MAINTAINER Fri May 20 16:32:32 2011
@@ -1 +1 @@
-Jozef Uhliarik <juhliarik(a)suse.cz>
+YaST2 Maintainers <yast2-maintainers(a)suse.de>
Modified: branches/SuSE-Code-11-SP1-Branch/slp-server/MAINTAINER
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/slp-s…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/slp-server/MAINTAINER (original)
+++ branches/SuSE-Code-11-SP1-Branch/slp-server/MAINTAINER Fri May 20 16:32:32 2011
@@ -1 +1 @@
-Michal Zugec <mzugec(a)suse.cz>
+Martin Vidner <mvidner(a)suse.cz>
Modified: branches/SuSE-Code-11-SP1-Branch/support/MAINTAINER
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/suppo…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/support/MAINTAINER (original)
+++ branches/SuSE-Code-11-SP1-Branch/support/MAINTAINER Fri May 20 16:32:32 2011
@@ -1 +1 @@
-Michal Zugec <mzugec(a)novell.com>
+YaST2 Maintainers <yast2-maintainers(a)suse.de>
Modified: branches/SuSE-Code-11-SP1-Branch/yast2/library/network/MAINTAINER
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/yast2…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/yast2/library/network/MAINTAINER (original)
+++ branches/SuSE-Code-11-SP1-Branch/yast2/library/network/MAINTAINER Fri May 20 16:32:32 2011
@@ -1 +1 @@
-Michal Zugec <mzugec(a)suse.cz>
+YaST2 Maintainers <yast2-maintainers(a)suse.de>
--
To unsubscribe, e-mail: yast-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: yast-commit+help(a)opensuse.org
1
0
[yast-commit] r64084 - in /branches/SuSE-Code-11-SP1-Branch/dns-server: package/yast2-dns-server.changes src/DnsServer.pm
by locilka@svn2.opensuse.org 20 May '11
by locilka@svn2.opensuse.org 20 May '11
20 May '11
Author: locilka
Date: Fri May 20 16:29:46 2011
New Revision: 64084
URL: http://svn.opensuse.org/viewcvs/yast?rev=64084&view=rev
Log:
Handling unknown error in LDAP initialization (BNC #679960).
Modified:
branches/SuSE-Code-11-SP1-Branch/dns-server/package/yast2-dns-server.changes
branches/SuSE-Code-11-SP1-Branch/dns-server/src/DnsServer.pm
Modified: branches/SuSE-Code-11-SP1-Branch/dns-server/package/yast2-dns-server.changes
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/dns-s…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/dns-server/package/yast2-dns-server.changes (original)
+++ branches/SuSE-Code-11-SP1-Branch/dns-server/package/yast2-dns-server.changes Fri May 20 16:29:46 2011
@@ -1,4 +1,9 @@
------------------------------------------------------------------
+Wed Mar 16 15:51:40 CET 2011 - locilka(a)suse.cz
+
+- Handling unknown error in LDAP initialization (BNC #679960).
+
+------------------------------------------------------------------
Fri Jan 7 14:51:00 CET 2011 - locilka(a)suse.cz
- Allowing wildcard '*' for some resource records (BNC #646895).
Modified: branches/SuSE-Code-11-SP1-Branch/dns-server/src/DnsServer.pm
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/dns-s…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/dns-server/src/DnsServer.pm (original)
+++ branches/SuSE-Code-11-SP1-Branch/dns-server/src/DnsServer.pm Fri May 20 16:29:46 2011
@@ -1798,6 +1798,9 @@
# connect to the LDAP server
my $ret = Ldap->LDAPInit ();
+ # BNC #679960
+ $ret = _("Unknown LDAP initialization error.") unless (defined $ret);
+
if ($ret ne "")
{
Ldap->LDAPErrorMessage ("init", $ret);
--
To unsubscribe, e-mail: yast-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: yast-commit+help(a)opensuse.org
1
0
[yast-commit] r64083 - in /branches/SuSE-Code-11-SP2-Branch: iscsi-client/MAINTAINER yast2/library/network/MAINTAINER
by locilka@svn2.opensuse.org 20 May '11
by locilka@svn2.opensuse.org 20 May '11
20 May '11
Author: locilka
Date: Fri May 20 16:23:40 2011
New Revision: 64083
URL: http://svn.opensuse.org/viewcvs/yast?rev=64083&view=rev
Log:
"Fixing" maintainer info
Modified:
branches/SuSE-Code-11-SP2-Branch/iscsi-client/MAINTAINER
branches/SuSE-Code-11-SP2-Branch/yast2/library/network/MAINTAINER
Modified: branches/SuSE-Code-11-SP2-Branch/iscsi-client/MAINTAINER
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP2-Branch/iscsi…
==============================================================================
--- branches/SuSE-Code-11-SP2-Branch/iscsi-client/MAINTAINER (original)
+++ branches/SuSE-Code-11-SP2-Branch/iscsi-client/MAINTAINER Fri May 20 16:23:40 2011
@@ -1 +1 @@
-Michal Zugec <mzugec(a)suse.cz>
+Thomas Fehr <fehr(a)suse.de>
Modified: branches/SuSE-Code-11-SP2-Branch/yast2/library/network/MAINTAINER
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP2-Branch/yast2…
==============================================================================
--- branches/SuSE-Code-11-SP2-Branch/yast2/library/network/MAINTAINER (original)
+++ branches/SuSE-Code-11-SP2-Branch/yast2/library/network/MAINTAINER Fri May 20 16:23:40 2011
@@ -1 +1 @@
-Michal Zugec <mzugec(a)suse.cz>
+YaST2 Maintainers <yast2-maintainers(a)suse.de>
--
To unsubscribe, e-mail: yast-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: yast-commit+help(a)opensuse.org
1
0
[yast-commit] r64082 - /trunk/autoinstallation/doc/ASKSection.xml
by ug@svn2.opensuse.org 20 May '11
by ug@svn2.opensuse.org 20 May '11
20 May '11
Author: ug
Date: Fri May 20 16:12:32 2011
New Revision: 64082
URL: http://svn.opensuse.org/viewcvs/yast?rev=64082&view=rev
Log:
docu update
Modified:
trunk/autoinstallation/doc/ASKSection.xml
Modified: trunk/autoinstallation/doc/ASKSection.xml
URL: http://svn.opensuse.org/viewcvs/yast/trunk/autoinstallation/doc/ASKSection.…
==============================================================================
--- trunk/autoinstallation/doc/ASKSection.xml (original)
+++ trunk/autoinstallation/doc/ASKSection.xml Fri May 20 16:12:32 2011
@@ -78,7 +78,7 @@
The filesystem in
the partition section is a symbol, while the "encrypted" element in the user configuration is a boolean.
You can see the type of that element if you look in your profile at the config:type="...." attribute.
- Since openSUSE 11.2 (not SLES11) you can use "static_text" as type too. A static_text is just a text that
+ Since openSUSE 11.2 and SLES11-SP2 you can use "static_text" as type too. A static_text is just a text that
does not require any user input and can be used to show information if it's not wanted in the help text.
<para><screen><type>symbol</type></screen></para></entry>
<entry>optional. The defaul is string. If type is "symbol" you must provide the selection element too (see below)</entry>
@@ -187,26 +187,26 @@
<entry>optional (default is no script)</entry>
</row>
<row>
- <entry>ok_label (available in openSUSE 11.2 (not SLES11)</entry>
+ <entry>ok_label (available since openSUSE 11.2 / SLES11 SP2</entry>
<entry>You can change the Label on the "Ok" button. The last element that specifies the label for a dialog wins.
<para><screen><ok_label>Finish</ok_label></screen></para></entry>
<entry>optional</entry>
</row>
<row>
- <entry>back_label (available in openSUSE 11.2 (not SLES11)</entry>
+ <entry>back_label (available since openSUSE 11.2 / SLES11 SP2</entry>
<entry>You can change the Label on the "Back" button. The last element that specifies the label for a dialog wins.
<para><screen><back_label>change values</back_label></screen></para></entry>
<entry>optional</entry>
</row>
<row>
- <entry>timeout (available in openSUSE 11.2 (not SLES11)</entry>
+ <entry>timeout (available since openSUSE 11.2 / SLES11-SP2</entry>
<entry>You can specify an integer here that is used as timeout in seconds. If the user does not answer the question before the timeout, the default value is taken as answer. When the user touches/changes any widget in the dialog, the timeout is turned off and the dialog has to be confirmed by the ok-button.
<para><screen><timeout config:type="integer">30</timeout></screen></para></entry>
<entry>optional. A missing value is interpreted as 0 which means that there is no timeout</entry>
</row>
<row>
- <entry>default_value_script (available since openSUSE 11.2 but not in SLES11)</entry>
- <entry>with 11.2 you can run scripts to set the default value for a question(see the table below for detailed instructions about default value scripts). It's useful if you can "calculate" a useful default value, especially in combination with the "timeout" option.
+ <entry>default_value_script (available since openSUSE 11.2 / SLES11-SP2)</entry>
+ <entry>you can run scripts to set the default value for a question(see the table below for detailed instructions about default value scripts). It's useful if you can "calculate" a useful default value, especially in combination with the "timeout" option.
<para><screen><default_value_script>...</default_value_script></screen></para></entry>
<entry>optional (default is no script)</entry>
</row>
@@ -217,7 +217,7 @@
</para>
<para>
- The following elements must be between the <ask-list config:type="list"><ask><default_value_script>...</default_value_script>...</ask></ask-list> tags in the <general> section. It's available since 11.2 (not SLES11).
+ The following elements must be between the <ask-list config:type="list"><ask><default_value_script>...</default_value_script>...</ask></ask-list> tags in the <general> section. It's available since 11.2 and SLES11-SP2
</para>
<para>
<table frame='top'>
--
To unsubscribe, e-mail: yast-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: yast-commit+help(a)opensuse.org
1
0