/* Do initializations that require datafiles */ static int load_data(void) { LDAT *graphics; graphics = ldat_open_file(getfullpath(DATA_DIRECTORY,"gfx.ldat")); if(graphics==NULL) return 1; init_critters(graphics); init_intro(graphics); init_game(graphics); init_selection(graphics); init_players(graphics); init_pilots(graphics); init_ships(graphics); init_specials(graphics); init_projectiles(graphics); ldat_free(graphics); return 0; }
static const char *format_misc_status(struct window *win) { static char misc_status[32]; if (special_input_misc_status(misc_status)) return misc_status; if (input_mode == INPUT_SEARCH) { snprintf(misc_status, sizeof(misc_status), "[case-sensitive = %s]", case_sensitive_search_enum[options.case_sensitive_search]); } else if (win->view->selection) { struct selection_info info; init_selection(win->view, &info); if (win->view->selection == SELECT_LINES) { snprintf(misc_status, sizeof(misc_status), "[%d lines]", get_nr_selected_lines(&info)); } else { snprintf(misc_status, sizeof(misc_status), "[%d chars]", get_nr_selected_chars(&info)); } } else { return NULL; } return misc_status; }
int ed_renz_reg (Tcl_Interp *interp, int seq_id, out_canvas_e *output, char *frame, char *names_win, char *re_win, char *inlist, int num_items, int start, int end, int text_offset, char *text_fill, tick_s *tick, int yoffset, ruler_s *ruler, cursor_s cursor) { editor_result *result; RENZYMES *r_enzyme; SELECTION *selection; EDITOR_RECORD *er; ed_renz_res *data; int id, ed_id, group_id, member_id; int seq_num, seq_type; seq_reg_cursor_notify cn; int line_width; char **sel = NULL; int num_sel; if (NULL == (result = (editor_result *)xmalloc(sizeof(editor_result)))) return -1; if (NULL == (data = (ed_renz_res *)xmalloc(sizeof(ed_renz_res)))) return -1; seq_num = GetEdenNum(seq_id); /* get position of the sequence in registration list */ seq_type = GetEdenType (seq_num); result->data = data; result->seq_id[HORIZONTAL] = seq_id; result->seq_id[VERTICAL] = -1; id = get_editor_reg_id(); result->id = id; result->output = (void *)output; result->pr_func = ed_nip_renz_print_func; result->op_func = ed_renz_callback; result->txt_func = ed_nip_renz_text_func; /* data structure */ strcpy(data->re_win, re_win); strcpy(data->frame, frame); strcpy(data->names_win, names_win); data->tick = tick; data->ruler = ruler; data->cursor = cursor; /* cursor_s */ data->sequence_len = GetEdenLength (seq_num); data->sequence_type = seq_type; /* create list of windows in the restriction enzyme display */ if (NULL == (data->win_list = (win **)xmalloc(MAX_NUM_WINS * sizeof(win*)))) return -1; data->num_wins = 0; addWindow(data->win_list, &data->num_wins, data->re_win, 'b', id); addWindow(data->win_list, &data->num_wins, data->ruler->window, 'x', id); addWindow(data->win_list, &data->num_wins, data->names_win, 'y', id); if (NULL == (data->canvas = (CanvasPtr *)xmalloc(sizeof(CanvasPtr)))) return -1; if (NULL == (data->world= (WorldPtr *)xmalloc(sizeof(WorldPtr)))) return -1; if (NULL == (data->world->visible = (d_box *)xmalloc(sizeof(d_box)))) return -1; if (NULL == (data->world->total = (d_box *)xmalloc(sizeof(d_box)))) return -1; initCanvas(interp, data->canvas, data->re_win); createZoom(&data->zoom); /* create selecing Renzyme name array */ if (Tcl_SplitList(interp, inlist, &num_sel, &sel) != TCL_OK) return -1; r_enzyme = get_selected_renzyme ( num_sel, sel); data->r_enzyme = r_enzyme; data->num_enzymes = num_sel; /* num_items = num_sel ? */; data->tick = tick; data->yoffset = yoffset; data->text_offset = text_offset; data->text_colour = strdup(text_fill); /*data->seq_id = seq_num;*/ data->seq_id = seq_id; data->match = NULL; data->num_match = 0; selection = init_selection (); data->sel = selection; line_width = get_default_int(interp, nip_defs, w("NIP.CURSOR.LINE_WIDTH")); /* private=0: share cursor for every plot */ output->cursor = editor_create_cursor(seq_num, 0, NULL, line_width, 1, HORIZONTAL); output->cursor_visible = 0; ed_id = GetEdIdFromSeqId (seq_id); member_id = GetMemberIdFromSeqId (seq_id); group_id = GetGroupIdFromSeqId (seq_id); er = GetEditor (ed_id); er->graphical = 1; output->cursor->frame_name = NULL; output->cursor->posy = member_id; set_editor_cursor (ed_id, output->cursor); /* move cursor to start position if this is our own cursor */ if (output->cursor->refs == 1) { output->cursor->abspos = start; output->cursor->posy = 1; } editor_register(seq_num, ed_renz_callback, (void *)result, SEQ_PLOT_TEMP, id); ed_renz_replot (interp, output, result, data); /* if above returns -1, may want to * to editor_renz_shutdown(interp, result, seq_num); ? */ cn.job = SEQ_CURSOR_NOTIFY; cn.cursor = output->cursor; cn.cursor->job = CURSOR_MOVE; cn.selection = selection; editor_notify(seq_num, (editor_reg_data *)&cn); return id; }