1/*
2 * Copyright 2010, Ingo Weinhold, ingo_weinhold@gmx.de.
3 * Distributed under the terms of the MIT License.
4 */
5#ifndef TITLE_PLACEHOLDER_MAPPER_H
6#define TITLE_PLACEHOLDER_MAPPER_H
7
8
9#include "ActiveProcessInfo.h"
10#include "PatternEvaluator.h"
11#include "ShellInfo.h"
12
13
14/*! Class mapping the placeholders common for window and tab titles.
15 */
16class TitlePlaceholderMapper : public PatternEvaluator::PlaceholderMapper {
17public:
18								TitlePlaceholderMapper(
19									const ShellInfo& shellInfo,
20									const ActiveProcessInfo& processInfo);
21
22	virtual	bool				MapPlaceholder(char placeholder,
23									int64 number, bool numberGiven,
24									BString& _string);
25
26private:
27			ShellInfo			fShellInfo;
28			ActiveProcessInfo	fProcessInfo;
29};
30
31
32class WindowTitlePlaceholderMapper : public TitlePlaceholderMapper {
33public:
34								WindowTitlePlaceholderMapper(
35									const ShellInfo& shellInfo,
36									const ActiveProcessInfo& processInfo,
37									int32 windowIndex, const BString& tabTitle);
38
39	virtual	bool				MapPlaceholder(char placeholder,
40									int64 number, bool numberGiven,
41									BString& _string);
42
43private:
44			int32				fWindowIndex;
45			BString				fTabTitle;
46};
47
48
49class TabTitlePlaceholderMapper : public TitlePlaceholderMapper {
50public:
51								TabTitlePlaceholderMapper(
52									const ShellInfo& shellInfo,
53									const ActiveProcessInfo& processInfo,
54									int32 tabIndex);
55
56	virtual	bool				MapPlaceholder(char placeholder,
57									int64 number, bool numberGiven,
58									BString& _string);
59
60private:
61			int32				fTabIndex;
62};
63
64
65#endif	// TITLE_PLACEHOLDER_MAPPER_H
66