33 #define AWAR_CL_SELECTED_CONFIGS "configuration_data/win%i/selected"
34 #define AWAR_CL_DISPLAY_CONFIG_MARKERS "configuration_data/win%i/display"
36 #define AWAR_CONFIG_COMMENT "tmp/configuration/comment"
37 #define AWAR_CONFIGURATION "focus/configuration"
51 for (
int c = 0; c<size(); ++c) {
55 for (
int area = 0; area<=1 && !
error; ++area) {
62 ConfigHits::iterator found = hits.find(item.
name);
63 if (found == hits.end()) {
64 string h(size(),
'0');
69 (found->second)[c] =
'1';
88 const char *
error = errors[markerIdx];
89 const char *name = (*config)[markerIdx];
94 ConfigHits::const_iterator found = hits.find(speciesName);
95 if (found != hits.end()) {
96 const string& hit = found->second;
98 for (
int c = 0; c<size(); ++c) {
99 if (hit[c] ==
'1')
node.incMarker(c);
107 const char *markerName = get_marker_name(markerIdx);
111 exports.request_structure_update();
119 #define CONFIG_SEPARATOR "\1"
171 ConfigMarkerDisplay *disp =
new ConfigMarkerDisplay(config, ntw->
gb_main);
177 if (selected_configs_list[ntw_id]) {
208 bool is_same_modification = gb_name == gb_lastname && (thiscall == lastcall || thiscall == (lastcall+1));
209 if (!is_same_modification) {
215 for (
size_t c = 0; c<config->
size(); ++c) {
216 if (strcmp((*config)[c], name) == 0) {
223 gb_lastname = gb_name;
227 #define CONFIG_BASE_PATH "/configuration_data/configuration"
230 static bool installed =
false;
250 awar_selCfgs->
touch();
255 #define MANAGED_CONFIGSET_SECTION "configmarkers"
256 #define MANAGED_CONFIGSET_ENTRY "selected_configs"
268 virtual const char *modify(
const char *old)
const = 0;
271 bool changed =
false;
272 for (
size_t i = 0; i<config.
size(); ++i) {
273 const char *newContent = modify(config[i]);
278 else if (strcmp(newContent, config[i]) != 0) {
289 const char *modify(
const char *name)
const OVERRIDE {
290 return strcmp(name, oldName) == 0 ? newName : name;
299 const char *toDelete;
300 const char *modify(
const char *name)
const OVERRIDE {
301 return strcmp(name, toDelete) == 0 ?
NULp : name;
305 : toDelete(toDelete_)
310 char *modified_value =
NULp;
319 return modified_value ? modified_value :
ARB_strdup(value);
334 AW_window_simple *aws =
new AW_window_simple;
339 aws->init(root,
id, title);
341 aws->load_xfig(
"mark_configs.fig");
343 aws->auto_space(10, 10);
347 aws->create_button(
"CLOSE",
"CLOSE",
"C");
351 aws->create_button(
"HELP",
"HELP",
"H");
363 selected_configs_list[ntw_id] = sub_sel;
368 aws->label(
"Display?");
373 aws->create_autosize_button(
"SETTINGS",
"Settings",
"S");
415 if (!existing_aws[ntw_id]) {
421 aws->
at(
"highlight");
426 existing_aws[ntw_id] = aws;
446 static AW_window_simple *aws =
NULp;
450 aws =
new AW_window_simple;
451 aws->init(awr,
"SELECT_CONFIGURATION",
"SELECT A CONFIGURATION");
453 aws->auto_space(0, 0);
458 aws->create_button(
"START",
"START");
461 aws->create_button(
"CLOSE",
"CLOSE",
"C");
501 if (imported_from_scratch) {
void NT_popup_configuration_admin(AW_window *aw_main, TREE_canvas *ntw)
GB_ERROR GBK_system(const char *system_command)
AWT_graphic_tree * get_graphic_tree() const
void set_marker_display(MarkerDisplay *display)
const char * get_toparea_SAIs() const
GBDATA * get_gb_main() const
static AW_selection * selected_configs_list[MAX_NT_WINDOWS]
void add(const char *awar_name, const char *config_name)
AW_window * NT_create_startEditorOnOldConfiguration_window(AW_root *awr)
static void selected_configs_display_awar_changed_cb(AW_root *root, TREE_canvas *ntw)
#define GB_USERFLAG_WASMARKED
void NT_create_config_after_import(TREE_canvas *ntw, bool imported_from_scratch)
GB_ERROR GB_add_hierarchy_callback(GBDATA *gb_main, const char *db_path, GB_CB_TYPE type, const DatabaseCallback &dbcb)
void speciesSelection_deleted_cb(const char *name) const
void AWT_insert_config_manager(AW_window *aww, AW_default default_file_, const char *id, const StoreConfigCallback &store_cb, const RestoreConfigCallback &load_or_reset_cb, const char *macro_id, const AWT_predefined_config *predef)
static AW_window * create_configuration_marker_window(AW_root *root, TREE_canvas *ntw)
#define ASSERT_NO_ERROR(errorExpr)
TreeNode * get_tree_root() const
void speciesSelection_renamed_cb(const char *old_name, const char *new_name) const
#define AWAR_CONFIG_COMMENT
#define AWAR_CL_DISPLAY_CONFIG_MARKERS
char * ARB_strdup(const char *str)
const char * get_selectionComment_awarname() const
const char * GBS_global_string(const char *templat,...)
void AW_POPDOWN(AW_window *window)
#define MANAGED_CONFIGSET_ENTRY
GBDATA * get_gbmain() const
void get_values(StrArray &intoArray)
bool modifyConfig(ConstStrArray &config) const
ConfigRenamer(const char *oldName_, const char *newName_)
GBDATA * GB_get_father(GBDATA *gbd)
AW_awar * get_config_awar(int canvas_id)
#define MAX_NT_WINDOWS_NULLINIT
ConfigDeleter(const char *toDelete_)
#define DEFAULT_CONFIGURATION
static SmartPtr< ConstStrArray > get_selected_configs_from_awar(int canvas_id)
#define DOWNCAST(totype, expr)
ConfigMarkerDisplay(SmartPtr< ConstStrArray > config_, GBDATA *gb_main_)
const char * suffixed_title(const char *primary_title) const
const char * ARB_dateTime_suffix()
AW_awar * add_callback(const RootCallback &cb)
void NT_start_editor_on_tree(AW_window *, int use_species_aside, TREE_canvas *ntw)
static struct aisc_static_set_mem md
#define AWAR_CL_SELECTED_CONFIGS
const char * read_char_pntr() const
bool GB_user_flag(GBDATA *gbd, unsigned char user_bit)
void AW_system(const char *command)
static AW_root * SINGLETON
AW_window * TREE_create_marker_settings_window(AW_root *root)
WindowCallback makeHelpCallback(const char *helpfile)
void AWT_modify_managed_configs(AW_default default_file, const char *id, ConfigModifyCallback mod_cb, AW_CL cl_user)
static char * correct_managed_configsets_cb(const char *key, const char *value, AW_CL cl_ConfigModifier)
const char * get_selection_awarname() const
static void config_modified_cb(GBDATA *gb_cfg_area)
void hide_marker_display()
bool displays_config_markers(MarkerDisplay *md)
static void selected_configs_awar_changed_cb(AW_root *aw_root, TREE_canvas *ntw)
GBT_CONFIG_ITEM_TYPE type
MarkerDisplay * get_marker_display()
static void modify_configurations(const ConfigModifier &mod)
TreeNode * get_tree_root_node() const
virtual ~ConfigModifier()
static void error(const char *msg)
#define AWAR_TREE_REFRESH
static void install_config_change_callbacks(GBDATA *gb_main)
static bool allow_selection2awar_update
GB_ULONG GB_time_of_day(void)
AW_DB_selection * awt_create_CONFIG_selection_list(GBDATA *gb_main, AW_window *aws, const char *varname)
static void init_config_awar(AW_root *root)
AW_awar * get_canvas_awar(const char *awar_name_format, int canvas_id)
AW_awar * get_display_toggle_awar(int canvas_id)
static void nt_start_editor_on_configuration(AW_window *aww)
map< string, string > ConfigHits
int GB_read_flag(GBDATA *gbd)
char * read_string() const
AW_awar * awar_no_error(const char *awar)
end timer stuff
const char * get_macro_suffix() const
AW_window * create_species_selection_window(AW_root *root, const SelectionAdmin *selection)
AW_awar * awar(const char *awar)
AW_selection * awt_create_subset_selection_list(AW_window *aww, AW_selection_list *parent_selection, const char *at_box, const char *at_add, const char *at_sort, bool autocorrect_subselection, SubsetChangedCb subChanged_cb, AW_CL cl_user)
GBDATA * GBT_find_configuration(GBDATA *gb_main, const char *name)
void create_autosize_button(const char *macro_name, AW_label label, const char *mnemonic=NULp, unsigned xtraSpace=1)
const char * get_marker_name(int markerIdx) const OVERRIDE
static void configs_selectionlist_changed_cb(AW_selection *selected_configs, bool interactive_change, AW_CL ntw_id)
void extract_species_selection(GBDATA *gb_main, const char *selectionName, SelectionExtractType ext_type)
NtSelectionAdmin(TREE_canvas *ntw_)
static void setup_configmarker_config_cb(AWT_config_definition &config, int ntw_id)
char * GBT_join_strings(const CharPtrArray &strings, char separator)
#define AWAR_TOPAREA_SAIS
AW_awar * awar_int(const char *var_name, long default_value=0, AW_default default_file=AW_ROOT_DEFAULT)
void NT_activate_configMarkers_display(TREE_canvas *ntw)
char * GBK_singlequote(const char *arg)
const char * get_window_title() const
void GB_write_flag(GBDATA *gbd, long flag)
void GB_write_user_flag(GBDATA *gbd, unsigned char user_bit, bool state)
const GBT_config_item & nextItem(GB_ERROR &error)
void nt_create_config_after_import(TREE_canvas *ntw)
void awt_set_subset_selection_content(AW_selection *subset_sel_, const CharPtrArray &values)
#define AWAR_CONFIGURATION
GBDATA * GBT_first_species(GBDATA *gb_main)
void GB_clear_user_flag(GBDATA *gbd, unsigned char user_bit)
#define MANAGED_CONFIGSET_SECTION
GBDATA * GBT_next_species(GBDATA *gb_species)
static void write_configs_to_awar(int canvas_id, const CharPtrArray &configs)
void retrieve_marker_state(const char *speciesName, NodeMarkers &node) OVERRIDE
GB_ERROR write_string(const char *aw_string)
void GBT_split_string(ConstStrArray &dest, const char *namelist, const char *separator, SplitMode mode)
#define GB_USERFLAG_QUERY
const char * get_name_of_tree() const
void handle_click(int markerIdx, AW_MouseButton button, AWT_graphic_exports &exports) OVERRIDE
GB_ERROR create_species_selection(const SelectionAdmin &selection, const char *conf_name, int use_species_aside, SelectionCreation creation)
GB_transaction ta(gb_var)
void callback(const WindowCallback &cb)
GB_CSTR GB_read_char_pntr(GBDATA *gbd)
AW_awar * awar_string(const char *var_name, const char *default_value="", AW_default default_file=AW_ROOT_DEFAULT)
void GBT_splitNdestroy_string(ConstStrArray &names, char *&namelist, const char *separator, SplitMode mode)
const char * replace(int i, const char *elem)
AW_awar * get_awar_tree() const
GBDATA * GB_entry(GBDATA *father, const char *key)
AW_selection_list * get_sellist()
void aw_message_if(GB_ERROR error)
char * GBS_global_string_copy(const char *templat,...)
static bool allow_to_activate_display