void display_popup_win (INPUT_POPUP *ipu, const char* label) { widget_list *wok; widget_list *wno; if(ipu->popup_win < 0) { Uint32 flags = ELW_WIN_DEFAULT & ~ELW_CLOSE_BOX; ipu->popup_win = create_window (win_prompt, ipu->parent, 0, ipu->x, ipu->y, ipu->popup_x_len, ipu->popup_y_len, flags); // clear the buffer init_text_message (&ipu->popup_text, ipu->maxlen); set_text_message_color (&ipu->popup_text, 0.77f, 0.57f, 0.39f); // Label ipu->popup_label = label_add (ipu->popup_win, NULL, label, 5, 5); widget_set_color (ipu->popup_win, ipu->popup_label, 0.77f, 0.57f, 0.39f); // Input ipu->popup_field = text_field_add_extended (ipu->popup_win, 101, NULL, 5, 28, ipu->popup_x_len - 10, 28*ipu->rows, ipu->text_flags, 1.0f, 0.77f, 0.57f, 0.39f, &ipu->popup_text, 1, FILTER_ALL, 5, 5); widget_set_color (ipu->popup_win, ipu->popup_field, 0.77f, 0.57f, 0.39f); // Accept ipu->popup_ok = button_add (ipu->popup_win, NULL, button_okay, 0, 0); widget_set_OnClick (ipu->popup_win, ipu->popup_ok, popup_ok_button_handler); widget_set_color (ipu->popup_win, ipu->popup_ok, 0.77f, 0.57f, 0.39f); // Reject ipu->popup_no = button_add (ipu->popup_win, NULL, button_cancel, 0, 0); widget_set_OnClick (ipu->popup_win, ipu->popup_no, popup_cancel_button_handler); widget_set_color (ipu->popup_win, ipu->popup_no, 0.77f, 0.57f, 0.39f); // align the buttons wok = widget_find(ipu->popup_win, ipu->popup_ok); wno = widget_find(ipu->popup_win, ipu->popup_no); widget_move(ipu->popup_win, ipu->popup_ok, (ipu->popup_x_len - wok->len_x - wno->len_x)/3, ipu->popup_y_len - (wok->len_y + 5)); widget_move(ipu->popup_win, ipu->popup_no, wok->len_x + 2*(ipu->popup_x_len - wok->len_x - wno->len_x)/3, ipu->popup_y_len - (wno->len_y + 5)); set_window_handler (ipu->popup_win, ELW_HANDLER_KEYPRESS, popup_keypress_handler); if ((ipu->popup_win > -1) && (ipu->popup_win < windows_list.num_windows)) windows_list.window[ipu->popup_win].data = ipu; } else { if ((ipu->parent > -1) && (ipu->parent < windows_list.num_windows)) { window_info *win = &windows_list.window[ipu->parent]; move_window(ipu->popup_win, ipu->parent, 0, win->pos_x+ipu->x, win->pos_y+ipu->y); } text_field_clear(ipu->popup_win, ipu->popup_field); label_set_text (ipu->popup_win, ipu->popup_label, label); show_window (ipu->popup_win); select_window (ipu->popup_win); } }
void init_text_buffers () { int i; for (i = 0; i < DISPLAY_TEXT_BUFFER_SIZE; i++) init_text_message (display_text_buffer + i, 0); init_text_message (&input_text_line, MAX_TEXT_MESSAGE_LENGTH + 1); input_text_line.chan_idx = CHAT_ALL; set_text_message_color (&input_text_line, 1.0f, 1.0f, 1.0f); }
static void init_note (int id, const char* name, const char* content) { int nsize = MIN_NOTE_SIZE; if (content) { int len = strlen (content); while (nsize <= len) nsize += nsize; } init_text_message (&(note_list[id].text), nsize); set_text_message_data (&(note_list[id].text), content); set_text_message_color (&(note_list[id].text), 0.77f, 0.57f, 0.39f); note_list[id].button_id = -1; note_list[id].window = -1; safe_strncpy (note_list[id].name, name, sizeof (note_list[id].name)); }