23 #define ta_assert(cond) arb_assert(cond)
25 #define AWAR_TREE_SOURCE "tmp/ad_tree/tree_source"
26 #define AWAR_TREE_DEST "tmp/ad_tree/tree_dest"
43 return awr->
awar(awar_selected_tree);
57 if (!gb_tree) error =
"Please select tree to delete";
63 error = ta.
close(error);
70 error = ta.
close(error);
91 new_remark.
cat(old_remark);
93 new_remark.
cat(add_to_remark);
109 if (!error && !dest[0]) error =
"Please enter new tree name";
152 int len = strlen(name);
154 for (
int p = len-1; p >= 0; --p) {
155 bool auto_modified = isdigit(name[p]) || name[p] ==
'_';
156 if (!auto_modified)
break;
169 for (
int i = 2; ; i++) {
183 AW_window_simple *aws =
new AW_window_simple;
184 aws->init(root, win_id, win_title);
187 aws->auto_space(10, 10);
190 aws->label(
"Current:");
192 aws->at_attach_to(
true,
false, -10, 25);
193 aws->create_button(
"use_current", spec->
tree_awar(aws->get_root())->awar_name);
197 aws->at_attach_to(
true,
false, -10, 30);
201 aws->callback(makeWindowCallback(go_cb, spec));
202 aws->create_autosize_button(
"GO", go_label,
"");
205 aws->create_autosize_button(
"CLOSE",
"Abort",
"A");
208 aws->create_autosize_button(
"UNIQUE",
"Unique name",
"U");
GB_ERROR GB_begin_transaction(GBDATA *gbd)
AW_awar * set_srt(const char *srt)
AW_window * create_rename_window(AW_root *root, const Spec *spec)
GB_ERROR GB_write_string(GBDATA *gbd, const char *s)
void AWT_registerTreeAwarSimple(AW_awar *awar)
GB_ERROR GB_end_transaction(GBDATA *gbd, GB_ERROR error)
void AWT_announce_tree_renamed(const char *oldname, const char *newname)
const char * GBS_global_string(const char *templat,...)
#define SRT_AUTOCORRECT_TREENAME
void AW_POPDOWN(AW_window *window)
static void tree_copy_cb(AW_window *aww, const Spec *spec)
void cat(const char *from)
AW_awar * tree_awar(AW_root *awr) const
GBDATA * get_gb_main() const
GB_ERROR GB_delete(GBDATA *&source)
const char * GBT_get_tree_name(GBDATA *gb_tree)
const char * read_char_pntr() const
GB_ERROR GB_await_error()
static GB_ERROR tree_append_remark(GBDATA *gb_tree, const char *add_to_remark)
GBDATA * GBT_find_next_tree(GBDATA *gb_tree)
AW_awar * dest_tree_awar(AW_root *root)
void create_awars(AW_root *root, AW_default aw_def, bool registerTreeAwar)
void delete_tree_cb(AW_window *aww, const Spec *spec)
void AWT_announce_tree_deleted(const char *name)
static void current_as_dest_treename_cb(AW_window *aww, const Spec *spec)
static void error(const char *msg)
GB_ERROR GBT_copy_tree(GBDATA *gb_main, const char *source_name, const char *dest_name)
GB_ERROR GBT_rename_tree(GBDATA *gb_main, const char *source_name, const char *dest_name)
char * read_string() const
AW_awar * awar(const char *awar)
static AW_window * create_copy_or_rename_window(AW_root *root, const char *win_id, const char *win_title, const char *go_label, void(*go_cb)(AW_window *, const Spec *), const Spec *spec)
GB_ERROR close(GB_ERROR error)
AW_awar * source_tree_awar(AW_root *root)
AW_window * create_copy_window(AW_root *root, const Spec *spec)
char * GB_read_string(GBDATA *gbd)
void aw_message(const char *msg)
static void tree_rename_cb(AW_window *aww, const Spec *spec)
static void make_dest_treename_unique_cb(AW_window *aww, const Spec *spec)
GB_ERROR write_string(const char *aw_string)
const char * get_data() const
GBDATA * GBT_find_tree(GBDATA *gb_main, const char *tree_name)
GB_transaction ta(gb_var)
static void tree_copy_or_rename_cb(AW_window *aww, bool do_copy, const Spec &spec)
AW_awar * awar_string(const char *var_name, const char *default_value="", AW_default default_file=AW_ROOT_DEFAULT)
GBDATA * GB_search(GBDATA *gbd, const char *fieldpath, GB_TYPES create)
void hide_or_notify(const char *error)