source: branches/species/SL/MACROS/macros.hxx

Last change on this file was 19654, checked in by westram, 5 weeks ago
  • reintegrates 'macros' into 'trunk'
    • improves program termination (#867)
      • introduces MacroExitor classes
        • handles confirmation (to quit)
        • waits for macros to finish, then exits w/o confirmation
        • provides specialized termination for different programs via derived classes
          • has been implemented for "normal" arb and merge-tool.
      • introduces ARB_disconnect_from_db
        • generalizes code to terminate all interconnections between GUI, database and macro-ability
        • allow to install atdisconnect-callbacks
          • usable by modules operating on a database; allow to inform module that database will vanish.
        • now used by all arb applications to disconnect from all their database(s), except the properties.
    • fixes some broken behavior
      • merge-tool
        • crashed when quitting via macro
        • wrong restarts, if originally started with arguments,
      • importer
        • failed to record/playback macros
        • crashed in modules operating on the temporary import database
      • database browser
        • crashed on disappearing database
  • adds: log:branches/macros@19620:19653
File size: 1.5 KB
Line 
1// ============================================================= //
2//                                                               //
3//   File      : macros.hxx                                      //
4//   Purpose   : macro interface                                 //
5//                                                               //
6//   Coded by Ralf Westram (coder@reallysoft.de) in March 2013   //
7//   Institute of Microbiology (Technical University Munich)     //
8//   http://www.arb-home.de/                                     //
9//                                                               //
10// ============================================================= //
11
12#ifndef MACROS_HXX
13#define MACROS_HXX
14
15#ifndef ARB_CORE_H
16#include <arb_core.h>
17#endif
18#ifndef ATTRIBUTES_H
19#include <attributes.h>
20#endif
21
22class AW_window;
23class AW_root;
24class UserActionTracker;
25
26struct GBDATA;
27
28// tracker factory:
29UserActionTracker          *need_macro_ability();
30__ATTR__USERESULT GB_ERROR  configure_macro_recording(AW_root *aw_root, const char *client_id, GBDATA *gb_main); // replaces active tracker
31void                        shutdown_macro_recording_via_database(AW_root *aw_root, GBDATA *gb_main);
32
33bool got_macro_ability(AW_root *aw_root);
34
35// gui-interface:
36void insert_macro_menu_entry(AW_window *awm, bool prepend_separator);
37void execute_macro(AW_root *root, const char *macroname);
38
39bool is_executing_macro_as_server(AW_root *root);
40bool is_executing_macro(AW_root *root);
41
42#else
43#error macros.hxx included twice
44#endif // MACROS_HXX
Note: See TracBrowser for help on using the repository browser.