diff options
author | attilamolnar <attilamolnar@hush.com> | 2013-09-02 12:25:54 +0200 |
---|---|---|
committer | attilamolnar <attilamolnar@hush.com> | 2013-09-12 14:44:17 +0200 |
commit | 52e4d9c96c83ca4bbbeb487966ac2897a384907d (patch) | |
tree | bf97357669eb566d1adab2b9824feeda75e71ad9 /include/mode.h | |
parent | e35772f19024fb12edda9cff19d3812272f444db (diff) |
Add ModeHandler::IsListModeBase() and MC_LIST
Diffstat (limited to 'include/mode.h')
-rw-r--r-- | include/mode.h | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/include/mode.h b/include/mode.h index e20815549..bfe4041b9 100644 --- a/include/mode.h +++ b/include/mode.h @@ -85,6 +85,7 @@ enum ParamSpec }; class PrefixMode; +class ListModeBase; /** Each mode is implemented by ONE ModeHandler class. * You must derive ModeHandler and add the child class to @@ -106,6 +107,7 @@ class CoreExport ModeHandler : public ServiceProvider enum Class { MC_PREFIX, + MC_LIST, MC_OTHER }; @@ -178,11 +180,18 @@ class CoreExport ModeHandler : public ServiceProvider bool IsListMode() const { return list; } /** - * Returns a PrefixMode* if this mode is a prefix mode, NULL otherwise + * Check whether this mode is a prefix mode + * @return non-NULL if this mode is a prefix mode, NULL otherwise */ PrefixMode* IsPrefixMode(); /** + * Check whether this mode handler inherits from ListModeBase + * @return non-NULL if this mode handler inherits from ListModeBase, NULL otherwise + */ + ListModeBase* IsListModeBase(); + + /** * Returns the mode's type */ inline ModeType GetModeType() const { return m_type; } @@ -678,3 +687,8 @@ inline PrefixMode* ModeHandler::IsPrefixMode() { return (this->type_id == MC_PREFIX ? static_cast<PrefixMode*>(this) : NULL); } + +inline ListModeBase* ModeHandler::IsListModeBase() +{ + return (this->type_id == MC_LIST ? reinterpret_cast<ListModeBase*>(this) : NULL); +} |