**REGISTER_ACTIONS - REGISTER_FLAGS - REGISTER_ATTRIBUTES**
Every action file must register its actions in the HID.
The action file will have an #include "hid.h"
which define the REGISTER_* macros.
Then somewhere in the file you add:
REGISTER_ACTIONS(exampledo_action_list)
This will be expanded by the preprocessor into:
void register_exampledo_action_list()
{ hid_register_actions(exampledo_action_list,1); }
During the build process the files //**core_lists.h**// and //**gtk_lists.h**// are created. These files contain nothing more than a collection of REGISTER_* instructions it found in its source files.\\ So //**core_lists.h**// and //**gtk_lists.h**// will contain:
REGISTER_ACTION(exampledo_action_list)
In the file //**main.c**// around the __main__ functions we find the instruction:
#include "dolists.h"
And soon after that we find
#include "core_lists.h"
Because //**dolists.h**// redefines the REGISTER_* macros, the macros in //**core_lists.h**//
REGISTER_ACTIONS(exampledo_action_list)
will be expanded by the preprocessor into:
external void register_exampledo_action_list();
register_exampledo_action_list();
And therefore it will call all functions to register the actions at the beginning of the main function.
==== Options ====
|REGISTER_ACTIONS|These actions can be called though the user command window (start with ":" in the PCB program.|
|REGISTER_FLAGS|These flags initiate a functions when set or unset.\\ E.g. in file //**flags.c**// we find HID_Flag flags_flag_list[] = {
{"style", FlagCurrentStyle, NULL},
{"grid", FlagGrid, NULL},
The "grid" flags is associated with the menu flag: **View->enable visible grid** and makes the connection to the ''FlagGrid()'' function.\\ If you select **View->enable visible grid** the function ''FlagGrid'' will be called.|
|REGISTER_ATTRIBUTES|In //**main.c**// there is a call to this macro: ''REGISTER_ATTRIBUTES (main_attribute_list)''\\ The main_attribute_list defines the command-line options.\\ Most of the HID also use this macro, to add their command line options as well.|