//
// CodeWiz.txt - Code Templates File
//
//
//  Teemu Ltti
//  codewiz@sohva.org
//  http://www.sohva.org/CodeWiz
//


// *** Introduction ***
//
// See file "ReadMe.html" for short introduction to code templates.
// Edit this file, if you want to customize the templates behaviour
// or add your own templates.
//
// - This file must be in the same directory as the DLL.
// - Select "CodeTemplates/Edit.." to quickly edit this file.
// - Select "CodeTemplates/Reload" to reload templates after editing.
//


// *** Code Template Format ***
//
// Format:
//
//      ##+ TemplateName\tkey           Template starts here, rest of line used as the name
//                                      ("key" is shortcut key, for example "CTRL+9")
//      template content                Template content which can be anything
//      ##- comment                     Template ends here, rest of line is ignored
//
// - All text outside these tags is ignored.
// - Empty templates create separators in the menu.
// - Templates inside templates create sub-menus.
// - TemplateName can contain &-character for keyboard shortcuts.
// - If the TemplateName ends to '/'-character the actual value
//   of the template will be used as the menu item if it can be
//   evaluated. Use this only with simple one-line templates.
//


// *** Environment Variables ***
//
// Environment variables will be replaced with their evaluated value.
//
// Format:
//
//		$$(env/else)		If the environment variable cannot be evaluated,
//							"else" will be inserted. You can add whitespaces
//							before and after the "env".
//


// *** Macros ***
//
// Macros will be replaced with their evaluated value.
//
// Format:
//
//		$(macro/else)		If the macro cannot be evaluated,
//							"else" will be inserted. You can add whitespaces
//							before and after the "macro".
//
//	General macros:
//
//		selection			Current selection
//		project				Project name
//		class				Class name at current point or file
//		access				Access at current point
//		author				Author (changeable from the Options)
//		time(format)		Time. "format" will be fed to CTime::Format()
//
//	These are commands:
//
//		cursor				Moves the cursor here after inserting the macro value
//
//      ask(name)/default   Asks the value from the user in a dialog.
//                          You can add multiple items in the same macro.
//                          Use the same name to insert the value to many places.
//
//  These transform the input (also work with other macros inside)
//
//		toupper(FooBar)		Upper case			("FOOBAR")
//		tolower(FooBar)		Lower case			("foobar")
//
//	These apply to currently open file:
//
//		file.name			File name with extension
//		file.short			File name without extension
//		file.ext			File extension
//		file.path			File path
//		file.full			File with path
//
//	These apply to a member copied previously with "Copy Members":
//
//		member.source		Source format		("/*static*/ BOOL* CMyClass::m_pbVariable")
//		member.header		Header format		("static BOOL* m_pbVariable")
//		member.name			Name				("m_pbVariable")
//      member.uname        Upper-case name     ("PbVariable")
//		member.short		Short name			("Variable")
//		member.paramname	Name as parameter	("pbVariable")
//		member.type			Type				("BOOL*")
//		member.typeshort	Short type			("BOOL")
//		member.prefix		Prefixes			("static")
//		member.access		Access				("public")
//		member.params		Parameters			("int a,int b")
//

//////////////////////////////////////////////////////////////////////////////////////////////////////

##+ Macro &Demo...
--- Macro Demo ---
cursor:				">>$(cursor)<< cursor here"
toupper:			"$(toupper($(author/FooBar)))"
tolower:			"$(tolower($(author/FooBar)))"
selection:			"$(selection/none)"
project:			"$(project/none)"
class:				"$(class/none)"
access:				"$(access/none)"
author:				"$(author/none)"
time:				"$(time(%c)/none)"
file.name:			"$(file.name/none)"
file.short:			"$(file.short/none)"
file.ext:			"$(file.ext/none)"
file.path:			"$(file.path/none)"
file.full:			"$(file.full/none)"
member.source:		"$(member.source/none)"
member.header:		"$(member.header/none)"
member.name:		"$(member.name/none)"
member.uname:       "$(member.uname/none)"
member.short:		"$(member.short/none)"
member.paramname:	"$(member.paramname/none)"
member.type:		"$(member.type/none)"
member.typeshort:	"$(member.typeshort/none)"
member.prefix:		"$(member.prefix/none)"
member.access:		"$(member.access/none)"
member.params:		"$(member.params/none)"
environment path:	"$$(path)"
ask user, first:    "$(ask(First Thing)/first)"
ask user, second:   "$(ask(Second Thing))"
--- Macro Demo ---
##-


##+ &File Header\tCTRL+9
//*******************************************************************
//              
//  FILE:       $(file.name/-)
//              
//  AUTHOR:     $(author/-)
//              
//  PROJECT:    $(project/-)
//              
//  COMPONENT:  $(class/-)
//              
//  DATE:       $(time(%d.%m.%Y)/-)
//              
//  COMMENTS:   -
//              
//              
//*******************************************************************





// Includes
##-

##+ Fun&ction Header
//*******************************************************************
//              
//  FUNCTION:   $(member.name/-)
//              
//  RETURNS:    $(member.type/-)
//              
//  PARAMETERS: $(member.params/-)
//              
//  COMMENTS:   -
//              
//              
//*******************************************************************
##-

##+
##-

##+ &Misc

##+ #ifdef
#ifdef $(cursor)
$(selection)#endif
##-

##+ #if
#if $(cursor)
$(selection)#endif
##-

##-

##+ &Tags

##+ &Includes
// Includes
##-

##+ &Construct
	// Construct
##-

##+ &Destruct
	// Destruct
##-

##+
##-

##+ Public Functions
public:
	// Public functions
##-

##+ Public Data
public:
	// Public data
##-

##+ Protected Functions
protected:
	// Protected functions
##-

##+ Protected Data
protected:
	// Protected data
##-

##+ Private Functions
private:
	// Private functions
##-

##+ Private Data
private:
	// Private data
##-

##- End of tags

##+ &Operators

##+ Constructor
	$(class/CMyClass)();
##-

##+ Constructor Copy
	$(class/CMyClass)(const $(class/CMyClass)& right);
##-

##+ Destructor
	virtual ~$(class/CMyClass)();
##-

##+
##-

##+ =
	$(class/CMyClass)&		operator=(const $(class/CMyClass)& right);
##-

##+ ==
	BOOL		operator==(const $(class/CMyClass)& right) const;
##-

##+ !=
	BOOL		operator!=(const $(class/CMyClass)& right) const;
##-

##+ +
	$(class/CMyClass)		operator+(const $(class/CMyClass)& right);
##-

##+ -
	$(class/CMyClass)		operator-(const $(class/CMyClass)& right);
##-

##+ []
	char&		operator[](int i);
##-

##+ [] const
	const char&	operator[](int i) const;
##-

##- End of operators

##+ &Accessors

##+ Get inline const /
	$(member.prefix )inline $(member.type/void)		Get$(member.short)() const { return $(member.name); }
##-

##+ Get inline const /
	$(member.prefix )inline $(member.type/void)		Get$(member.uname)() const { return $(member.name); }
##-

##+ Set /
	$(member.prefix )void	Set$(member.short)($(member.type/void) $(member.paramname));
##-

##+ Set /
	$(member.prefix )void	Set$(member.uname)($(member.type/void) $(member.paramname));
##-

##+
##-

##+ Get /
	$(member.prefix )$(member.type/void)		Get$(member.short)();
##-

##+ Get const /
	$(member.prefix )$(member.type/void)		Get$(member.short)() const;
##-

##+ Get pointer /
	$(member.prefix )$(member.type/void)*		Get$(member.short)();
##-

##+ Get reference /
	$(member.prefix )$(member.type/void)&	Get$(member.short)();
##-

##+ Get reference const /
	$(member.prefix )const $(member.type/void)&		Get$(member.short)() const;
##-

##+ Get inline /
	$(member.prefix )inline $(member.type/void)		Get$(member.short)() { return $(member.name); }
##-

##+ Get reference inline /
	$(member.prefix )inline $(member.type/void)&		Get$(member.short)() { return $(member.name); }
##-

##+ Get reference inline const /
	$(member.prefix )inline const $(member.type/void)&		Get$(member.short)() const { return $(member.name); }
##-

##+ Get pointer inline /
	$(member.prefix )inline $(member.type/void)*		Get$(member.short)() { return &$(member.name); }
##-

##+
##-

##+ Set pointer /
	$(member.prefix )void	Set$(member.short)($(member.type/void)* p$(member.paramname));
##-

##+ Set reference /
	$(member.prefix )void	Set$(member.short)(const $(member.type/void)& $(member.paramname));
##-

##+ Set inline /
	$(member.prefix )inline void		Set$(member.short)($(member.type/void) $(member.paramname)) { $(member.name)=$(member.paramname); }
##-

##+ Set reference inline /
	$(member.prefix )inline void		Set$(member.short)(const $(member.type/void)& $(member.paramname)) { $(member.name)=$(member.paramname); }
##-

##- End of Accessors

##+ &Helpers

##+ Construct /
	, $(member.name)()
##-

##+ Assign /
	$(member.name)=;
##-

##+ Copy /
	$(member.name)	=right.$(member.name);
##-

##+ Copy CArray /
	$(member.name)	.Copy(right.$(member.name));
##-

##+ Create /
	$(member.name)	=new $(member.typeshort)();
##-

##+ Delete /
	delete $(member.name);
##-

##+
##-

##+ Compare /
	if ($(member.name)	!= right.$(member.name))	return FALSE;
##-

##- End of Helpers
