Skip to content

Instantly share code, notes, and snippets.

@mvidner
Last active October 13, 2016 14:28
Show Gist options
  • Save mvidner/c4562f7d982f1d4d3c40fb657f0e9d22 to your computer and use it in GitHub Desktop.
Save mvidner/c4562f7d982f1d4d3c40fb657f0e9d22 to your computer and use it in GitHub Desktop.
/*
* Copyright (c) 2014 Angelo Naselli <[email protected]>
*
* 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.
*/
// Compile with:
//
// g++ -I/usr/include/yui -lyui Test-YTree-selection.cpp -o Test-YTree-selection
#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( "Alice" );
items.push_back( t );
items.push_back( (t = new YTreeItem( "Other" )) );
new YTreeItem( t, "Other 1" );
t = new YTreeItem( t, "Other 2" );
new YTreeItem( t, "Other 21" );
items.push_back( (t = new YTreeItem( "Bob" )) );
new YTreeItem( t, "Item 1" );
new YTreeItem( t, "Item 2" );
new YTreeItem( t, "Item 3" );
t = new YTreeItem( t, "Dylan" );
// comment next line to see that item2 is selected
t->setSelected(true); // selected item
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