Public Member Functions | Public Attributes

ExplorerCmd Struct Reference

Explorer command line parser. More...

#include <explorer.h>

Collaboration diagram for ExplorerCmd:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 ExplorerCmd ()
 ExplorerCmd (LPCTSTR url, bool mdi)
bool ParseCmdLine (LPCTSTR lpCmdLine)
bool EvaluateOption (LPCTSTR option)
bool IsValidPath () const

Public Attributes

String _path
int _flags
int _cmdShow
bool _mdi
bool _valid_path

Detailed Description

Explorer command line parser.

Definition at line 90 of file explorer.h.


Constructor & Destructor Documentation

ExplorerCmd::ExplorerCmd (  ) [inline]

Definition at line 92 of file explorer.h.

     :  _flags(0),
        _cmdShow(SW_SHOWNORMAL),
        _mdi(false),
        _valid_path(false)
    {
    }
ExplorerCmd::ExplorerCmd ( LPCTSTR  url,
bool  mdi 
) [inline]

Definition at line 100 of file explorer.h.

     :  _path(url),
        _flags(0),
        _cmdShow(SW_SHOWNORMAL),
        _mdi(mdi),
        _valid_path(true)   //@@
    {
    }

Member Function Documentation

bool ExplorerCmd::EvaluateOption ( LPCTSTR  option )

Definition at line 790 of file explorer.cpp.

References _flags, _mdi, _path, _tcsicmp, OWM_EXPLORE, OWM_ROOTED, and TEXT.

Referenced by ParseCmdLine().

{
    String opt_str;

     // Remove quote characters, as they are evaluated at this point.
    for(; *option; ++option)
        if (*option != '"')
            opt_str += *option;

    option = opt_str;

    if (option[0] == '/') {
        ++option;

         // option /e for windows in explorer mode
        if (!_tcsicmp(option, TEXT("e")))
            _flags |= OWM_EXPLORE;
         // option /root for rooted explorer windows
        else if (!_tcsicmp(option, TEXT("root")))
            _flags |= OWM_ROOTED;
         // non-standard options: /mdi, /sdi
        else if (!_tcsicmp(option, TEXT("mdi")))
            _mdi = true;
        else if (!_tcsicmp(option, TEXT("sdi")))
            _mdi = false;
        else
            return false;
    } else {
        if (!_path.empty())
            return false;

        _path = opt_str;
    }

    return true;
}

Here is the caller graph for this function:

bool ExplorerCmd::IsValidPath (  ) const

Definition at line 827 of file explorer.cpp.

References _path.

Referenced by MainFrameBase::Create().

{
    if (!_path.empty()) {
        DWORD attribs = GetFileAttributes(_path);

        if (attribs!=INVALID_FILE_ATTRIBUTES && (attribs&FILE_ATTRIBUTE_DIRECTORY))
            return true;    // file system path
        else if (*_path==':' && _path.at(1)==':')
            return true;    // text encoded IDL
    }

    return false;
}

Here is the caller graph for this function:

bool ExplorerCmd::ParseCmdLine ( LPCTSTR  lpCmdLine )

Definition at line 746 of file explorer.cpp.

References EvaluateOption().

Referenced by explorer_show_frame().

{
    bool ok = true;

    LPCTSTR b = lpCmdLine;
    LPCTSTR p = b;

    while(*b) {
         // remove leading space
        while(_istspace((unsigned)*b))
            ++b;

        p = b;

        bool quote = false;

         // options are separated by ','
        for(; *p; ++p) {
            if (*p == '"')  // Quote characters may appear at any position in the command line.
                quote = !quote;
            else if (*p==',' && !quote)
                break;
        }

        if (p > b) {
            int l = p - b;

             // remove trailing space
            while(l>0 && _istspace((unsigned)b[l-1]))
                --l;

            if (!EvaluateOption(String(b, l)))
                ok = false;

            if (*p)
                ++p;

            b = p;
        }
    }

    return ok;
}

Here is the call graph for this function:

Here is the caller graph for this function:


Member Data Documentation

Definition at line 115 of file explorer.h.

Referenced by MainFrameBase::Create(), and explorer_show_frame().

Definition at line 114 of file explorer.h.

Referenced by MainFrameBase::Create(), and EvaluateOption().

Definition at line 116 of file explorer.h.

Referenced by MainFrameBase::Create(), EvaluateOption(), and explorer_show_frame().

Definition at line 113 of file explorer.h.

Referenced by MainFrameBase::Create(), EvaluateOption(), and IsValidPath().

Definition at line 117 of file explorer.h.


The documentation for this struct was generated from the following files:

ROS Explorer Source Code Documentation
generated on 02.01.2013 by doxygen

ROS Explorer Homepage