Page 1 of 1

intento de treeview

Posted: Wed Jul 21, 2010 1:54 pm
by mastintin
Como Máximo queria la Clase treeview empecé a mirar su documentación . Como era una clase heredada de tableview pensé que podría ser muy similar ,pero parece que el datasource no tiene mucho que ver . He visto unos cuantos ejemplos de código por internet y la verdad que lian aun mas mis conceptos .Parece que la mejor omas facil solución pasa por usar una clase que se llama NStreeController y asociarla al nsoutlineview . Esa clase parece que se puede cargar desee un array ,pero sinceramente estoy muy perdido .
pongo la parte de codigo que tengo que permite carga la clase en pantalla y definirlas columnas ( son las mismas que las de browse ) , pero el datasource no esta empezado a implementar y tampoco se muy bien como funciona su clase correspondiente en fw para windows.

Code: Select all





HB_FUNC( TREECREATE ) 
{
    NSScrollView * sv = [ [ NSScrollView alloc ] 
                         initWithFrame : NSMakeRect( hb_parnl( 2 ), hb_parnl( 1 ), hb_parnl( 3 ), hb_parnl( 4 ) ) ];
    NSOutlineView  * browse;
    NSWindow * window = ( NSWindow * ) hb_parnl( 5 );

    
    
    // while( [ [ data->hWnd className ] isEqual : @"NSTabViewItem"  ] )
    //   data->hWnd = [ [ ( ( NSTabViewItem * ) data->hWnd ) tabView ] window ];           
    
    [ sv setAutoresizingMask : NSViewWidthSizable | NSViewHeightSizable ];
    [ sv setHasVerticalScroller : YES ];
    [ sv setHasHorizontalScroller : YES ];
    [ sv setBorderType : NSBezelBorder ];
    
    browse = [ [ NSOutlineView alloc ] 
              initWithFrame : [ [ sv contentView ] frame ] ];
    // [ browse setAllowsColumnSelection : YES ];
    
    [ sv setDocumentView : browse ];           
    [ GetView( window ) addSubview : sv ];
    // esto es añadido 
    
    
    
    
    hb_retnl( ( LONG ) browse );
}  

HB_FUNC( TREEADDCOLUM ) 
{
    
    NSOutlineView * browse = ( NSOutlineView * ) hb_parnl( 1 );
    NSString * string = [ [ [ NSString alloc ] initWithCString: ISCHAR( 2 ) ? hb_parc( 2 ) : "" ] autorelease ];
    TableColumn * column = [ [ TableColumn alloc ] init ];
    
    column->id = [ browse numberOfColumns ]; 
    
    [ column setWidth : 100 ];
    // [column setEditable: YES];
    // [ column setResizable: YES ];
    [ [ column headerCell ] setStringValue: string ];
    [ browse addTableColumn : column ];
}