fltkhs-0.1.0.0: c-examples/tree-simple.c
#include <stdio.h>
#include "Fl_C.h"
#include "Fl_EnumerationsC.h"
#include "Fl_Types.h"
#include "Fl_WindowC.h"
#include "Fl_TreeC.h"
#include "Fl_Tree_ItemC.h"
void TreeCallback(fl_Widget w, void* data){
fl_Tree tree = (fl_Tree)w;
fl_Tree_Item item = (fl_Tree_Item)Fl_Tree_callback_item(tree);
if (! item ) return;
switch( Fl_Tree_callback_reason(tree)) {
case FL_TREE_REASON_SELECTED: {
char pathname[256];
Fl_Tree_item_pathname(tree,pathname, sizeof(pathname), item);
printf("TreeCallback: Item selected='%s', Full pathname='%s'\n", (const char*)(Fl_Tree_Item_label(item)), pathname);
break;
}
case FL_TREE_REASON_DESELECTED:
printf("TreeCallback: Item '%s' deselected\n", (const char*)(Fl_Tree_Item_label(item)));
break;
case FL_TREE_REASON_OPENED:
printf("TreeCallback: Item '%s' opened\n", (const char*)(Fl_Tree_Item_label(item)));
break;
case FL_TREE_REASON_CLOSED:
printf("TreeCallback: Item '%s' closed\n", (const char*)(Fl_Tree_Item_label(item)));
default:
break;
}
}
int main(int argc, char** argv) {
Fl_set_scheme("gtk+");
fl_Window window = (fl_Window)Fl_Window_New_WithLabel(250,400,"Simple Tree");
Fl_Window_begin(window);
fl_Tree tree = (fl_Tree)Fl_Tree_New(10,10,Fl_Window_w(window)-20,Fl_Window_h(window)-20);
Fl_Tree_set_showroot(tree,0);
Fl_Tree_add(tree,"Flintstones/Fred");
Fl_Tree_add(tree,"Flintstones/Wilma");
Fl_Tree_add(tree,"Flintstones/Pebbles");
Fl_Tree_add(tree,"Simpsons/Homer");
Fl_Tree_add(tree,"Simpsons/Marge");
Fl_Tree_add(tree,"Simpsons/Bart");
Fl_Tree_add(tree,"Simpsons/Lisa");
Fl_Tree_add(tree,"Pathnames/\\/bin"); // front slashes
Fl_Tree_add(tree,"Pathnames/\\/usr\\/sbin");
Fl_Tree_add(tree,"Pathnames/C:\\\\Program Files"); // backslashes
Fl_Tree_add(tree,"Pathnames/C:\\\\Documents and Settings");
Fl_Tree_close_with_path(tree,"Simpsons");
Fl_Tree_close_with_path(tree,"Pathnames");
Fl_Tree_set_callback(tree,TreeCallback);
Fl_Window_end(window);
Fl_Window_show(window);
return Fl_run();
}