Audacity  2.2.0
MacroMagic.h File Reference
#include "Theme.h"

Go to the source code of this file.

Macros

#define THEME_EXTERNS
 
#define DEFINE_IMAGE(name, initialiser, textual_name)   extern AUDACITY_DLL_API teBmps name;
 
#define DEFINE_COLOUR(name, initialiser, textual_name)   extern AUDACITY_DLL_API int name;
 
#define DEFINE_FONT(name, initialiser, textual_name)   extern AUDACITY_DLL_API int name;
 
#define SET_THEME_FLAGS(flags)
 
#define THEME_EXTERNS
 
#define DEFINE_IMAGE(name, initialiser, textual_name)   theTheme.RegisterImage( name, initialiser, textual_name );
 
#define DEFINE_COLOUR(name, initialiser, textual_name)   theTheme.RegisterColour( name, initialiser, textual_name );
 
#define DEFINE_FONT(name, initialiser, textual_name)   theTheme.RegisterFont( name, initialiser, textual_name );
 
#define SET_THEME_FLAGS(flags)   theTheme.SetFlags( flags );
 

Detailed Description

This file allows the same macros to do multiple duty by undefining and redefining the macros.

For example DEFINE_IMAGE will generate:

  • extern int name;
  • int name = -1;
  • RegisterImage( name, initiialiser, textual_name);

On three different passes. We control which by defining one of THEME_INITS or THEME_DECLARATIONS or neither of these.

Macro Definition Documentation

#define DEFINE_COLOUR (   name,
  initialiser,
  textual_name 
)    theTheme.RegisterColour( name, initialiser, textual_name );
#define DEFINE_COLOUR (   name,
  initialiser,
  textual_name 
)    extern AUDACITY_DLL_API int name;
#define DEFINE_FONT (   name,
  initialiser,
  textual_name 
)    theTheme.RegisterFont( name, initialiser, textual_name );
#define DEFINE_FONT (   name,
  initialiser,
  textual_name 
)    extern AUDACITY_DLL_API int name;
#define DEFINE_IMAGE (   name,
  initialiser,
  textual_name 
)    theTheme.RegisterImage( name, initialiser, textual_name );
#define DEFINE_IMAGE (   name,
  initialiser,
  textual_name 
)    extern AUDACITY_DLL_API teBmps name;
#define SET_THEME_FLAGS (   flags)    theTheme.SetFlags( flags );
#define SET_THEME_FLAGS (   flags)
#define THEME_EXTERNS
#define THEME_EXTERNS