18 #ifndef DB_SCANNER_HXX
27 #ifndef ARB_UNORDERED_MAP_H
43 const char *itemname()
const {
return getSelector().
item_name; }
47 void update_window_title()
const {
74 detach_id(detach_id_),
97 return itemtype() == other.itemtype();
107 scanner->
Map(gb_item, getSelector().change_key_path);
112 update_window_title();
136 typedef arb_unordered_map<AW_window*, InfoWindow::Ptr> WinMap;
150 win[aww] =
new InfoWindow(aww, scanner, detach_id);
156 WinMap::iterator found = win.find(aww);
157 return found == win.end() ?
NULp : &*found->second;
164 for (WinMap::iterator i = win.begin(); i != win.end(); ++i) {
166 if (info->handlesSameItemtypeAs(other)) {
167 maxUsedID =
std::max(maxUsedID, info->getDetachID());
173 for (WinMap::iterator i = win.begin(); i != win.end(); ++i) {
175 if (info->handlesSameItemtypeAs(other) && !info->is_used())
return &*info;
180 for (WinMap::iterator i = win.begin(); i != win.end(); ++i) {
182 if (info->handlesSameItemtypeAs(other) && info->is_used() && info->is_maininfo())
return &*info;
203 #error info_window.h included twice
204 #endif // INFO_WINDOW_H
const InfoWindow * find_reusable_of_same_type_as(const InfoWindow &other)
const InfoWindow * find_maininfo_of_same_type_as(const InfoWindow &other)
void bind_to_selected_item() const
static const int MAIN_WINDOW
int allocate_detach_id(const InfoWindow &other)
GBDATA * get_gb_main() const
bool handlesSameItemtypeAs(const InfoWindow &other) const
const char * GBS_global_string(const char *templat,...)
void set_window_title(const char *title)
char * get_mapped_item_id() const
bool mapsOrganism() const
GBDATA *(* get_selected_item)(GBDATA *gb_main, AW_root *aw_root)
void(* detached_uppopper)(AW_window *, const InfoWindow *)
GBDATA * get_gbmain() const
void map_selected_item() const
static InfoWindowRegistry infowin
static void reactivate(AW_window *aww)
void attach_selected_item() const
const InfoWindow * find(AW_window *aww)
void detach_selected_item(detached_uppopper popup_detached_cb) const
InfoWindow(AW_window *aww_, DbScanner *scanner_, int detach_id_)
const ItemSelector & get_selector() const
SmartPtr< InfoWindow > Ptr
void Map(GBDATA *gb_new_item, const char *key_path)
void add_detach_area(detached_uppopper popup_detached_cb) const
GBDATA * get_selected_item() const
GB_transaction ta(gb_var)
static int info[maxsites+1]
void display_selected_item() const
const InfoWindow & registerInfoWindow(AW_window *aww, DbScanner *scanner, int detach_id)
char * GBS_global_string_copy(const char *templat,...)
void map_item(GBDATA *gb_item) const
static const char * localize_scanner_id(const char *scanner_id, int detach_id)
void set_used(bool used_) const