2.2.4.13 Folderfolder-class 
 
 
Name
Folder
 
Remark
Project Explorer is a Windows Explorer like user interface inside Origin. It contains a folder/sub-folder structure used to organize and facilitate access to the graph, layout, matrix, note, and worksheet windows of an Origin project file.
 The Folder class is used to access the methods and properties of Project Explorer and contains collections of all Origin pages and Project Explorer folders. 
 An Origin C Folder object is a wrapper object that is a reference to an internal Origin project explorer object. Origin C wrapper objects do not actually exist in Origin and merely refer to the internal Origin object. Consequently, multiple Origin C wrapper objects can refer to the same internal Origin object.
 
Hierarchy
Examples
EX1
 
// List all page names in all first level subfolders of root folder
void    Folder_Folder_Ex1()
{
    Folder fld, fldSub;
    fld = Project.RootFolder;
    PageBase pb;
    foreach(fldSub in fld.Subfolders)
    {
        // Display the names of the subfolders of root
        printf( "Folder name = %s\n", fldSub.GetName() );
        foreach(pb in fldSub.Pages)
        {
            // Display the name of the page:
            printf( "\tPage name = %s\n", pb.GetName() );
        }
    }
}
EX2
 
// List all folders and windows in a heirachical structure with window details
// Note the additional support functions:
//        Folder_DisplayFolderAndPages
//        Folder_DisplayInfo
//        Folder_InfoDump
// variable (iLevel) and define (repeattab)
void    Folder_Folder_Ex2()
{
    Folder        fld = Project.RootFolder;
    printf( "%s\\\n", fld.GetName() );
    Folder_DisplayFolderAndPages(fld);
}
// This variable handles the indent level for printout
static    int    iLevel = 0;
// Macro that prints indent for each level - a sequence of four spaces here
#define    repeattab    for( int ii = 1 ; ii <= iLevel ; ii++) printf("    ");
// Function that is called recursively to walk the folder tree structure
void    Folder_DisplayFolderAndPages(Folder    fld)
{
    Folder        fldSub;
    PageBase    pb;
    iLevel++;
    foreach(pb in fld.Pages)
    {
        // Display the name of the page:
        repeattab;
        printf( "%s", pb.GetName() );
        Folder_DisplayInfo(pb);
    }
    foreach(fldSub in fld.Subfolders)
    {
        // Display the name of the current subfolder
        repeattab;
        printf( "%s\\\n", fldSub.GetName() );
        Folder_DisplayFolderAndPages(fldSub); // and recursively call
    }
    iLevel--;
}
// Display the window type
void    Folder_DisplayInfo(PageBase    pb)
{
    switch( pb.GetType() )
    {
    case 2:
        printf(" - Worksheet ");
        Folder_InfoDump(pb);
        break;
    case 3:
        printf(" - Graph ");
        Folder_InfoDump(pb);
        break;
    case 5:
        printf(" - Matrix ");
        Folder_InfoDump(pb);
        break;
    case 9:
        printf(" - Notes ");
        Folder_InfoDump(pb);
        break;
    case 11:
        printf(" - Layout ");
        Folder_InfoDump(pb);
        break;
    case 12:
        printf(" - Excel ");
        Folder_InfoDump(pb);
        break;
    default:
        printf(" - Unknown Type\n");
    }
}
// Display information about the window
void    Folder_InfoDump(PageBase    pb)
{
    PageSystemInfo    info; // Structure to receive page info
    bool    bVal = pb.GetPageSystemInfo(&info);
    if(pb.GetShow()) printf("(Hidden)"); else printf("(Visible)");
    printf(", Created %s", get_date_str(info.dCreated, LDF_YYMMDD_AND_HHMMSS_SEPARCOLON));
    printf(", Modified %s", get_date_str(info.dModified, LDF_YYMMDD_AND_HHMMSS_SEPARCOLON));
    printf(", Size %u", info.nSize);
    if( pb.GetType() != 9 && pb.GetType() != 11 ) printf(", %u Dependents", info.nDependents);
    printf("\n");
}
Header to Include
origin.h
 
Reference
Members
Property
             |