Skip to content

Instantly share code, notes, and snippets.

@anaselli
Created February 20, 2015 14:04
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save anaselli/1ca17b78ef619e42c22e to your computer and use it in GitHub Desktop.
Save anaselli/1ca17b78ef619e42c22e to your computer and use it in GitHub Desktop.
test file to show that sub tree item are not selected
/*
* Copyright (c) 2014 Angelo Naselli <anaselli@linux.it>
*
* Permission is hereby granted, free of charge, to any person obtaining
* a copy of this software and associated documentation files (the
* "Software"), to deal in the Software without restriction, including
* without limitation the rights to use, copy, modify, merge, publish,
* distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be
* included in all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT
* SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
* DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
* OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
* THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
// Click on link into RichText (ncurses problem)
//
// Compile with:
//
// g++ -I/usr/include/yui -lyui Test.cc -o Test
#include <yui/YUI.h>
#include <yui/YApplication.h>
#include <yui/YWidgetFactory.h>
#include <yui/YDialog.h>
#include <yui/YLayoutBox.h>
#include <yui/YAlignment.h>
#include <yui/YTree.h>
#include <yui/YPushButton.h>
#include <yui/YEvent.h>
int main( int argc, char **argv )
{
YDialog * dialog = YUI::widgetFactory()->createMainDialog();
YLayoutBox * vbox = YUI::widgetFactory()->createVBox( dialog );
YTree* tree = YUI::widgetFactory()->createTree( vbox, "Select:" );
tree->setNotify( true );
{
YItemCollection items;
YTreeItem *t = new YTreeItem( "Item 1" );
items.push_back( t );
items.push_back( (t = new YTreeItem( "Item 12\n Test information\n on more lines" )) );
new YTreeItem( t, "Item 1" );
items.push_back( (t = new YTreeItem( "Item 123" )) );
new YTreeItem( t, "Item 1" );
t = new YTreeItem( t, "Item 2" );
new YTreeItem( t, "Item 1" );
items.push_back( (t = new YTreeItem( "Item 1234" )) );
new YTreeItem( t, "Item 1" );
new YTreeItem( t, "Item 2" );
t = new YTreeItem( t, "Item 3" );
new YTreeItem( t, "Item 1" );
new YTreeItem( t, "Item 2" );
items.push_back( (t = new YTreeItem( "Item 12345" )) );
new YTreeItem( t, "Item 1" );
new YTreeItem( t, "Item 2" );
new YTreeItem( t, "Item 3" );
t = new YTreeItem( t, "Item 4" );
// comment next line to see that item2 is selected
t->setSelected(true); // selected item
new YTreeItem( t, "Item 1" );
YTreeItem * t2 = new YTreeItem( t, "Item 2" );
t2->setSelected(true); // this selection is discarded as it is a child of a selected item
t2 = new YTreeItem( t, "Item 3" );
t2->setSelected(true); // this selection is discarded as it is a child of a selected item
items.push_back( (t = new YTreeItem( "Item 123456" )) );
new YTreeItem( t, "Item 1" );
new YTreeItem( t, "Item 2" );
new YTreeItem( t, "Item 3" );
new YTreeItem( t, "Item 4" );
t = new YTreeItem( t, "Item 5" );
new YTreeItem( t, "Item 1" );
new YTreeItem( t, "Item 2" );
new YTreeItem( t, "Item 3" );
new YTreeItem( t, "Item 4" );
tree->addItems( items ); // This is more efficient than repeatedly calling cbox->addItem
}
YPushButton* quitButton = YUI::widgetFactory()->createPushButton( vbox, "&OK" );
while ( true )
{
YEvent * event = dialog->waitForEvent();
if ( event )
{
// window manager "close window" button
if ( event->eventType() == YEvent::CancelEvent || event->widget() == quitButton )
break; // leave event loop
}
}
dialog->destroy();
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment