您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ str_term_width1函数代码示例

51自学网 2021-06-03 08:26:45
  C++
这篇教程C++ str_term_width1函数代码示例写得很实用,希望能帮到您。

本文整理汇总了C++中str_term_width1函数的典型用法代码示例。如果您正苦于以下问题:C++ str_term_width1函数的具体用法?C++ str_term_width1怎么用?C++ str_term_width1使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。

在下文中一共展示了str_term_width1函数的25个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: setup_cmdline

voidsetup_cmdline (void){    int prompt_width;    int y;    char *tmp_prompt = (char *) mc_prompt;#ifdef ENABLE_SUBSHELL    if (mc_global.tty.use_subshell)    {        tmp_prompt = g_string_free (subshell_prompt, FALSE);        (void) strip_ctrl_codes (tmp_prompt);    }#endif    prompt_width = str_term_width1 (tmp_prompt);    /* Check for prompts too big */    if (COLS > 8 && prompt_width > COLS - 8)    {        int prompt_len;        prompt_width = COLS - 8;        prompt_len = str_offset_to_pos (tmp_prompt, prompt_width);        tmp_prompt[prompt_len] = '/0';    }#ifdef ENABLE_SUBSHELL    if (mc_global.tty.use_subshell)    {        subshell_prompt = g_string_new (tmp_prompt);        g_free (tmp_prompt);        mc_prompt = subshell_prompt->str;    }#endif    y = LINES - 1 - mc_global.keybar_visible;    widget_set_size (WIDGET (the_prompt), y, 0, 1, prompt_width);    label_set_text (the_prompt, mc_prompt);    widget_set_size (WIDGET (cmdline), y, prompt_width, 1, COLS - prompt_width);}
开发者ID:iNode,项目名称:mc,代码行数:42,


示例2: edit_get_title

static char *edit_get_title (const WDialog * h, size_t len){    const WEdit *edit = find_editor (h);    const char *modified = edit->modified ? "(*) " : "    ";    const char *file_label;    char *filename;    len -= 4;    if (edit->filename_vpath == NULL)        filename = g_strdup (_("[NoName]"));    else        filename = g_strdup (vfs_path_as_str (edit->filename_vpath));    file_label = str_term_trim (filename, len - str_term_width1 (_("Edit: ")));    g_free (filename);    return g_strconcat (_("Edit: "), modified, file_label, (char *) NULL);}
开发者ID:MidnightCommander,项目名称:mc,代码行数:20,


示例3: help_print_word

static voidhelp_print_word (WDialog * h, GString * word, int *col, int *line, gboolean add_space){    if (*line >= help_lines)        g_string_set_size (word, 0);    else    {        int w;        w = str_term_width1 (word->str);        if (*col + w >= HELP_WINDOW_WIDTH)        {            *col = 0;            (*line)++;        }        if (*line >= help_lines)            g_string_set_size (word, 0);        else        {            widget_move (h, *line + 2, *col + 2);            tty_print_string (word->str);            g_string_set_size (word, 0);            *col += w;        }    }    if (add_space)    {        if (*col < HELP_WINDOW_WIDTH - 1)        {            tty_print_char (' ');            (*col)++;        }        else        {            *col = 0;            (*line)++;        }    }}
开发者ID:GarothLongint,项目名称:mc,代码行数:41,


示例4: common_dialog_repaint

/** Clean the dialog area, draw the frame and the title */voidcommon_dialog_repaint (Dlg_head * h){    int space;    if (h->state != DLG_ACTIVE)        return;    space = (h->flags & DLG_COMPACT) ? 0 : 1;    tty_setcolor (h->color[DLG_COLOR_NORMAL]);    dlg_erase (h);    draw_box (h, space, space, h->lines - 2 * space, h->cols - 2 * space, FALSE);    if (h->title != NULL)    {        tty_setcolor (h->color[DLG_COLOR_TITLE]);        dlg_move (h, space, (h->cols - str_term_width1 (h->title)) / 2);        tty_print_string (h->title);    }}
开发者ID:ryanlee,项目名称:mc,代码行数:22,


示例5: editcmd_dialog_raw_key_query

inteditcmd_dialog_raw_key_query (const char *heading, const char *query, int cancel){    int w = str_term_width1 (query) + 7;    struct Dlg_head *raw_dlg =        create_dlg (0, 0, 7, w, dialog_colors, editcmd_dialog_raw_key_query_cb,                    NULL, heading,                    DLG_CENTER | DLG_TRYUP | DLG_WANT_TAB);    add_widget (raw_dlg,                input_new (3 - cancel, w - 5, INPUT_COLOR, 2, "", 0, INPUT_COMPLETE_DEFAULT));    add_widget (raw_dlg, label_new (3 - cancel, 2, query));    if (cancel)        add_widget (raw_dlg, button_new (4, w / 2 - 5, B_CANCEL, NORMAL_BUTTON, _("Cancel"), 0));    w = run_dlg (raw_dlg);    destroy_dlg (raw_dlg);    if (cancel) {        if (w == XCTRL ('g') || w == XCTRL ('c') || w == ESC_CHAR || w == B_CANCEL)            return 0;    }    return w;}
开发者ID:sfionov,项目名称:mc-dev,代码行数:22,


示例6: str_msg_term_size

voidstr_msg_term_size (const char *text, int *lines, int *columns){    char *p, *tmp;    char *q;    char c = '/0';    *lines = 1;    *columns = 0;    tmp = g_strdup (text);    p = tmp;    while (TRUE)    {        int width;        q = strchr (p, '/n');        if (q != NULL)        {            c = q[0];            q[0] = '/0';        }        width = str_term_width1 (p);        if (width > *columns)            *columns = width;        if (q == NULL)            break;        q[0] = c;        p = q + 1;        (*lines)++;    }    g_free (tmp);}
开发者ID:CTU-OSP,项目名称:mc,代码行数:38,


示例7: dlg_default_repaint

/** Clean the dialog area, draw the frame and the title */voiddlg_default_repaint (WDialog * h){    Widget *wh = WIDGET (h);    int space;    if (h->state != DLG_ACTIVE)        return;    space = (h->flags & DLG_COMPACT) ? 0 : 1;    tty_setcolor (h->color[DLG_COLOR_NORMAL]);    dlg_erase (h);    tty_draw_box (wh->y + space, wh->x + space, wh->lines - 2 * space, wh->cols - 2 * space, FALSE);    if (h->title != NULL)    {        tty_setcolor (h->color[DLG_COLOR_TITLE]);        widget_move (h, space, (wh->cols - str_term_width1 (h->title)) / 2);        tty_print_string (h->title);    }}
开发者ID:GalaxyTab4,项目名称:workbench,代码行数:24,


示例8: tree_frame

static voidtree_frame (Dlg_head * h, WTree * tree){    tty_setcolor (NORMAL_COLOR);    widget_erase ((Widget *) tree);    if (tree->is_panel)    {        const char *title = _("Directory tree");        const int len = str_term_width1 (title);        draw_box (h, tree->widget.y, tree->widget.x, tree->widget.lines, tree->widget.cols, FALSE);        widget_move (&tree->widget, 0, (tree->widget.cols - len - 2) / 2);        tty_printf (" %s ", title);        if (panels_options.show_mini_info)            widget_move (&tree->widget, tlines (tree) + 1, 0);        tty_print_alt_char (ACS_LTEE, FALSE);        widget_move (&tree->widget, tlines (tree) + 1, tree->widget.cols - 1);        tty_print_alt_char (ACS_RTEE, FALSE);        tty_draw_hline (tree->widget.y + tlines (tree) + 1,                        tree->widget.x + 1, ACS_HLINE, tree->widget.cols - 2);    }}
开发者ID:ryanlee,项目名称:mc,代码行数:24,


示例9: menu_arrange

static voidmenu_arrange (menu_t * menu, dlg_shortcut_str get_shortcut){    if (menu != NULL)    {        GList *i;        size_t max_shortcut_len = 0;        menu->max_entry_len = 1;        menu->max_hotkey_len = 1;        for (i = menu->entries; i != NULL; i = g_list_next (i))        {            menu_entry_t *entry = MENUENTRY (i->data);            if (entry != NULL)            {                size_t len;                len = (size_t) hotkey_width (entry->text);                menu->max_hotkey_len = max (menu->max_hotkey_len, len);                if (get_shortcut != NULL)                    entry->shortcut = get_shortcut (entry->command);                if (entry->shortcut != NULL)                {                    len = (size_t) str_term_width1 (entry->shortcut);                    max_shortcut_len = max (max_shortcut_len, len);                }            }        }        menu->max_entry_len = menu->max_hotkey_len + max_shortcut_len;    }}
开发者ID:BpArCuCTeMbI,项目名称:mc,代码行数:36,


示例10: dlg_default_repaint

/** Clean the dialog area, draw the frame and the title */voiddlg_default_repaint (WDialog * h){    Widget *wh = WIDGET (h);    int space;    if (!widget_get_state (wh, WST_ACTIVE))        return;    space = h->compact ? 0 : 1;    tty_setcolor (h->color[DLG_COLOR_NORMAL]);    dlg_erase (h);    tty_draw_box (wh->y + space, wh->x + space, wh->lines - 2 * space, wh->cols - 2 * space, FALSE);    if (h->title != NULL)    {        /* TODO: truncate long title */        tty_setcolor (h->color[DLG_COLOR_TITLE]);        widget_move (h, space, (wh->cols - str_term_width1 (h->title)) / 2);        tty_print_string (h->title);    }}
开发者ID:MidnightCommander,项目名称:mc,代码行数:25,


示例11: jobs_cmd

voidjobs_cmd (void){    struct    {        const char *name;        int flags;        int value;        int len;        bcback_fn callback;    }    job_but[] =    {        /* *INDENT-OFF* */        { N_("&Stop"), NORMAL_BUTTON, B_STOP, 0, task_cb },        { N_("&Resume"), NORMAL_BUTTON, B_RESUME, 0, task_cb },        { N_("&Kill"), NORMAL_BUTTON, B_KILL, 0, task_cb },        { N_("&OK"), DEFPUSH_BUTTON, B_CANCEL, 0, NULL }        /* *INDENT-ON* */    };    size_t i;    const size_t n_but = G_N_ELEMENTS (job_but);    WDialog *jobs_dlg;    int cols = 60;    int lines = 15;    int x = 0;    for (i = 0; i < n_but; i++)    {#ifdef ENABLE_NLS        job_but[i].name = _(job_but[i].name);#endif /* ENABLE_NLS */        job_but[i].len = str_term_width1 (job_but[i].name) + 3;        if (job_but[i].flags == DEFPUSH_BUTTON)            job_but[i].len += 2;        x += job_but[i].len;    }    x += (int) n_but - 1;    cols = max (cols, x + 6);    jobs_dlg = dlg_create (TRUE, 0, 0, lines, cols, dialog_colors, NULL, NULL,                           "[Background jobs]", _("Background jobs"), DLG_CENTER);    bg_list = listbox_new (2, 2, lines - 6, cols - 6, FALSE, NULL);    jobs_fill_listbox (bg_list);    add_widget (jobs_dlg, bg_list);    add_widget (jobs_dlg, hline_new (lines - 4, -1, -1));    x = (cols - x) / 2;    for (i = 0; i < n_but; i++)    {        add_widget (jobs_dlg,                    button_new (lines - 3, x, job_but[i].value, job_but[i].flags, job_but[i].name,                                job_but[i].callback));        x += job_but[i].len + 1;    }    (void) dlg_run (jobs_dlg);    dlg_destroy (jobs_dlg);}
开发者ID:ActionLuzifer,项目名称:mc,代码行数:65,


示例12: quick_dialog_skip

intquick_dialog_skip (quick_dialog_t * quick_dlg, int nskip){    int len;    int blen = 0;    int x, y;                   /* current positions */    int y1 = 0;                 /* bottom of 1st column in case of two columns */    int y2 = -1;                /* start of two columns */    int width1 = 0;             /* width of single column */    int width2 = 0;             /* width of each of two columns */    gboolean have_groupbox = FALSE;    gboolean two_columns = FALSE;    gboolean put_buttons = FALSE;    /* x position of 1st column is 3 */    const int x1 = 3;    /* x position of 2nd column is 4 and it will be fixed later, after creation of all widgets */    int x2 = 4;    GArray *widgets;    size_t i;    quick_widget_t *quick_widget;    WGroupbox *g = NULL;    WDialog *dd;    int return_val;    len = str_term_width1 (I18N (quick_dlg->title)) + 6;    quick_dlg->cols = max (quick_dlg->cols, len);    y = 1;    x = x1;    /* create widgets */    widgets = g_array_sized_new (FALSE, FALSE, sizeof (quick_widget_item_t), 8);    for (quick_widget = quick_dlg->widgets; quick_widget->widget_type != quick_end; quick_widget++)    {        quick_widget_item_t item = { NULL, quick_widget };        int width = 0;        switch (quick_widget->widget_type)        {        case quick_checkbox:            item.widget =                WIDGET (check_new                        (++y, x, *quick_widget->u.checkbox.state,                         I18N (quick_widget->u.checkbox.text)));            g_array_append_val (widgets, item);            width = item.widget->cols;            if (g != NULL)                width += 2;            if (two_columns)                width2 = max (width2, width);            else                width1 = max (width1, width);            break;        case quick_button:            /* single button */            item.widget = WIDGET (button_new (++y, x, quick_widget->u.button.action,                                              quick_widget->u.button.action == B_ENTER ?                                              DEFPUSH_BUTTON : NORMAL_BUTTON,                                              I18N (quick_widget->u.button.text),                                              quick_widget->u.button.callback));            g_array_append_val (widgets, item);            width = item.widget->cols;            if (g != NULL)                width += 2;            if (two_columns)                width2 = max (width2, width);            else                width1 = max (width1, width);            break;        case quick_input:            *quick_widget->u.input.result = NULL;            y++;            if (quick_widget->u.input.label_location != input_label_none)                quick_create_labeled_input (widgets, &y, x, quick_widget, &width);            else            {                item.widget = WIDGET (quick_create_input (y, x, quick_widget));                g_array_append_val (widgets, item);                width = item.widget->cols;            }            if (g != NULL)                width += 2;            if (two_columns)                width2 = max (width2, width);            else                width1 = max (width1, width);            break;        case quick_label:            item.widget = WIDGET (label_new (++y, x, I18N (quick_widget->u.label.text)));            g_array_append_val (widgets, item);            y += item.widget->lines - 1;            width = item.widget->cols;            if (g != NULL)                width += 2;//.........这里部分代码省略.........
开发者ID:rutsky,项目名称:mc,代码行数:101,


示例13: init_learn

static voidinit_learn (void){    const int dlg_width = 78;    const int dlg_height = 23;    /* buttons */    int bx0, bx1;    const char *b0 = N_("&Save");    const char *b1 = N_("&Cancel");    int bl0, bl1;    int x, y, i;    const key_code_name_t *key;#ifdef ENABLE_NLS    static gboolean i18n_flag = FALSE;    if (!i18n_flag)    {        learn_title = _(learn_title);        i18n_flag = TRUE;    }    b0 = _(b0);    b1 = _(b1);#endif /* ENABLE_NLS */    do_refresh ();    learn_dlg =        dlg_create (TRUE, 0, 0, dlg_height, dlg_width, WPOS_CENTER, FALSE, dialog_colors,                    learn_callback, NULL, "[Learn keys]", learn_title);    /* find first unshown button */    for (key = key_name_conv_tab, learn_total = 0;         key->name != NULL && strcmp (key->name, "kpleft") != 0; key++, learn_total++)        ;    learnok = 0;    learnchanged = FALSE;    learnkeys = g_new (learnkey_t, learn_total);    x = UX;    y = UY;    /* add buttons and "OK" labels */    for (i = 0; i < learn_total; i++)    {        char buffer[BUF_TINY];        const char *label;        int padding;        learnkeys[i].ok = FALSE;        learnkeys[i].sequence = NULL;        label = _(key_name_conv_tab[i].longname);        padding = 16 - str_term_width1 (label);        padding = MAX (0, padding);        g_snprintf (buffer, sizeof (buffer), "%s%*s", label, padding, "");        learnkeys[i].button =            WIDGET (button_new (y, x, B_USER + i, NARROW_BUTTON, buffer, learn_button));        learnkeys[i].label = WIDGET (label_new (y, x + 19, ""));        add_widget (learn_dlg, learnkeys[i].button);        add_widget (learn_dlg, learnkeys[i].label);        y++;        if (y == UY + ROWS)        {            x += COLSHIFT;            y = UY;        }    }    add_widget (learn_dlg, hline_new (dlg_height - 8, -1, -1));    add_widget (learn_dlg,                label_new (dlg_height - 7, 5,                           _("Press all the keys mentioned here. After you have done it, check/n"                             "which keys are not marked with OK. Press space on the missing/n"                             "key, or click with the mouse to define it. Move around with Tab.")));    add_widget (learn_dlg, hline_new (dlg_height - 4, -1, -1));    /* buttons */    bl0 = str_term_width1 (b0) + 5;     /* default button */    bl1 = str_term_width1 (b1) + 3;     /* normal button */    bx0 = (dlg_width - (bl0 + bl1 + 1)) / 2;    bx1 = bx0 + bl0 + 1;    add_widget (learn_dlg, button_new (dlg_height - 3, bx0, B_ENTER, DEFPUSH_BUTTON, b0, NULL));    add_widget (learn_dlg, button_new (dlg_height - 3, bx1, B_CANCEL, NORMAL_BUTTON, b1, NULL));}
开发者ID:MidnightCommander,项目名称:mc,代码行数:90,


示例14: file_mask_dialog

char *file_mask_dialog (file_op_context_t * ctx, FileOperation operation,                  gboolean only_one,                  const char *format, const void *text, const char *def_text, gboolean * do_bg){    size_t fmd_xlen;    vfs_path_t *vpath;    int source_easy_patterns = easy_patterns;    char fmd_buf[BUF_MEDIUM];    char *dest_dir, *tmp;    char *def_text_secure;    if (ctx == NULL)        return NULL;    /* unselect checkbox if target filesystem don't support attributes */    ctx->op_preserve = filegui__check_attrs_on_fs (def_text);    ctx->stable_symlinks = FALSE;    *do_bg = FALSE;    /* filter out a possible password from def_text */    vpath = vfs_path_from_str_flags (def_text, only_one ? VPF_NO_CANON : VPF_NONE);    tmp = vfs_path_to_str_flags (vpath, 0, VPF_STRIP_PASSWORD);    vfs_path_free (vpath);    if (source_easy_patterns)        def_text_secure = strutils_glob_escape (tmp);    else        def_text_secure = strutils_regex_escape (tmp);    g_free (tmp);    if (only_one)    {        int format_len, text_len;        int max_len;        format_len = str_term_width1 (format);        text_len = str_term_width1 (text);        max_len = COLS - 2 - 6;        if (format_len + text_len <= max_len)        {            fmd_xlen = format_len + text_len + 6;            fmd_xlen = max (fmd_xlen, 68);        }        else        {            text = str_trunc ((const char *) text, max_len - format_len);            fmd_xlen = max_len + 6;        }        g_snprintf (fmd_buf, sizeof (fmd_buf), format, (const char *) text);    }    else    {        fmd_xlen = COLS * 2 / 3;        fmd_xlen = max (fmd_xlen, 68);        g_snprintf (fmd_buf, sizeof (fmd_buf), format, *(const int *) text);    }    {        char *source_mask, *orig_mask;        int val;        struct stat buf;        quick_widget_t quick_widgets[] = {            /* *INDENT-OFF* */            QUICK_LABELED_INPUT (fmd_buf, input_label_above,                                 easy_patterns ? "*" : "^(.*)$", "input-def", &source_mask,                                 NULL, FALSE, FALSE, INPUT_COMPLETE_FILENAMES),            QUICK_START_COLUMNS,                QUICK_SEPARATOR (FALSE),            QUICK_NEXT_COLUMN,                QUICK_CHECKBOX (N_("&Using shell patterns"), &source_easy_patterns, NULL),            QUICK_STOP_COLUMNS,            QUICK_LABELED_INPUT (N_("to:"), input_label_above,                                 def_text_secure, "input2", &dest_dir, NULL, FALSE, FALSE, INPUT_COMPLETE_FILENAMES),            QUICK_SEPARATOR (TRUE),            QUICK_START_COLUMNS,                QUICK_CHECKBOX (N_("Follow &links"), &ctx->follow_links, NULL),                QUICK_CHECKBOX (N_("Preserve &attributes"), &ctx->op_preserve, NULL),            QUICK_NEXT_COLUMN,                QUICK_CHECKBOX (N_("Di&ve into subdir if exists"), &ctx->dive_into_subdirs, NULL),                QUICK_CHECKBOX (N_("&Stable symlinks"), &ctx->stable_symlinks, NULL),            QUICK_STOP_COLUMNS,            QUICK_START_BUTTONS (TRUE, TRUE),                QUICK_BUTTON (N_("&OK"), B_ENTER, NULL, NULL),#ifdef ENABLE_BACKGROUND                QUICK_BUTTON (N_("&Background"), B_USER, NULL, NULL),#endif /* ENABLE_BACKGROUND */                QUICK_BUTTON (N_("&Cancel"), B_CANCEL, NULL, NULL),            QUICK_END            /* *INDENT-ON* */        };        quick_dialog_t qdlg = {            -1, -1, fmd_xlen,            op_names[operation], "[Mask Copy/Rename]",            quick_widgets, NULL, NULL        };//.........这里部分代码省略.........
开发者ID:CTU-OSP,项目名称:mc,代码行数:101,


示例15: file_op_context_create_ui_without_init

voidfile_op_context_create_ui_without_init (FileOpContext * ctx, gboolean with_eta,                                        filegui_dialog_type_t dialog_type){    FileOpContextUI *ui;    int minus = 0, total_reserve = 0;    const char *abort_button_label = N_("&Abort");    const char *skip_button_label = N_("&Skip");    int abort_button_width, skip_button_width, buttons_width;    int dlg_width;    g_return_if_fail (ctx != NULL);    g_return_if_fail (ctx->ui == NULL);#ifdef ENABLE_NLS    abort_button_label = _(abort_button_label);    skip_button_label = _(skip_button_label);#endif    abort_button_width = str_term_width1 (abort_button_label) + 3;    skip_button_width = str_term_width1 (skip_button_label) + 3;    buttons_width = abort_button_width + skip_button_width + 2;    dlg_width = max (WX, buttons_width + 6);    ui = g_new0 (FileOpContextUI, 1);    ctx->ui = ui;    ctx->dialog_type = dialog_type;    switch (dialog_type)    {    case FILEGUI_DIALOG_ONE_ITEM:        total_reserve = 0;        minus = verbose ? 0 : 2;        break;    case FILEGUI_DIALOG_MULTI_ITEM:        total_reserve = 5;        minus = verbose ? 0 : 7;        break;    case FILEGUI_DIALOG_DELETE_ITEM:        total_reserve = -5;        minus = 0;        break;    }    ctx->recursive_result = RECURSIVE_YES;    ui->replace_result = REPLACE_YES;    ui->showing_eta = with_eta;    ui->showing_bps = with_eta;    ui->op_dlg =        create_dlg (TRUE, 0, 0, WY - minus + 1 + total_reserve, dlg_width,                    dialog_colors, NULL, NULL, op_names[ctx->operation], DLG_CENTER | DLG_REVERSE);    add_widget (ui->op_dlg,                button_new (WY - minus - 2 + total_reserve,                            dlg_width / 2 + 1, FILE_ABORT,                            NORMAL_BUTTON, abort_button_label, NULL));    add_widget (ui->op_dlg,                button_new (WY - minus - 2 + total_reserve,                            dlg_width / 2 - 1 - skip_button_width, FILE_SKIP,                            NORMAL_BUTTON, skip_button_label, NULL));    if (verbose && dialog_type == FILEGUI_DIALOG_MULTI_ITEM)    {        add_widget (ui->op_dlg, hline_new (8, 1, dlg_width - 2));        add_widget (ui->op_dlg, ui->total_bytes_label = label_new (8, FCOPY_LABEL_X + 15, ""));        add_widget (ui->op_dlg, ui->progress_total_gauge =                    gauge_new (9, FCOPY_LABEL_X + 3, 0, 100, 0));        add_widget (ui->op_dlg, ui->total_files_processed_label =                    label_new (11, FCOPY_LABEL_X, ""));        add_widget (ui->op_dlg, ui->time_label = label_new (12, FCOPY_LABEL_X, ""));    }    add_widget (ui->op_dlg, ui->progress_file_label = label_new (7, FCOPY_LABEL_X, ""));    add_widget (ui->op_dlg, ui->progress_file_gauge = gauge_new (6, FCOPY_LABEL_X + 3, 0, 100, 0));    add_widget (ui->op_dlg, ui->file_string[1] = label_new (5, FCOPY_LABEL_X, ""));    add_widget (ui->op_dlg, ui->file_label[1] = label_new (4, FCOPY_LABEL_X, ""));    add_widget (ui->op_dlg, ui->file_string[0] = label_new (3, FCOPY_LABEL_X, ""));    add_widget (ui->op_dlg, ui->file_label[0] = label_new (2, FCOPY_LABEL_X, ""));    if ((right_panel == current_panel) && !classic_progressbar)    {        ui->progress_file_gauge->from_left_to_right = FALSE;        if (verbose && dialog_type == FILEGUI_DIALOG_MULTI_ITEM)            ui->progress_total_gauge->from_left_to_right = FALSE;    }}
开发者ID:artzub,项目名称:mc,代码行数:98,


示例16: help_show

static voidhelp_show (WDialog * h, const char *paint_start){    const char *p, *n;    int col, line, c;    gboolean painting = TRUE;    gboolean acs;               /* Flag: Alternate character set active? */    gboolean repeat_paint;    int active_col, active_line;        /* Active link position */    char buff[MB_LEN_MAX + 1];    GString *word;    word = g_string_sized_new (32);    tty_setcolor (HELP_NORMAL_COLOR);    do    {        line = col = active_col = active_line = 0;        repeat_paint = FALSE;        acs = FALSE;        clear_link_areas ();        if ((int) (selected_item - paint_start) < 0)            selected_item = NULL;        p = paint_start;        n = paint_start;        while ((n[0] != '/0') && (n[0] != CHAR_NODE_END) && (line < help_lines))        {            p = n;            n = str_cget_next_char (p);            memcpy (buff, p, n - p);            buff[n - p] = '/0';            c = (unsigned char) buff[0];            switch (c)            {            case CHAR_LINK_START:                if (selected_item == NULL)                    selected_item = p;                if (p != selected_item)                    tty_setcolor (HELP_LINK_COLOR);                else                {                    tty_setcolor (HELP_SLINK_COLOR);                    /* Store the coordinates of the link */                    active_col = col + 2;                    active_line = line + 2;                }                start_link_area (col, line, p);                break;            case CHAR_LINK_POINTER:                painting = FALSE;                break;            case CHAR_LINK_END:                painting = TRUE;                help_print_word (h, word, &col, &line, FALSE);                end_link_area (col - 1, line);                tty_setcolor (HELP_NORMAL_COLOR);                break;            case CHAR_ALTERNATE:                acs = TRUE;                break;            case CHAR_NORMAL:                acs = FALSE;                break;            case CHAR_VERSION:                widget_move (h, line + 2, col + 2);                tty_print_string (VERSION);                col += str_term_width1 (VERSION);                break;            case CHAR_FONT_BOLD:                tty_setcolor (HELP_BOLD_COLOR);                break;            case CHAR_FONT_ITALIC:                tty_setcolor (HELP_ITALIC_COLOR);                break;            case CHAR_FONT_NORMAL:                help_print_word (h, word, &col, &line, FALSE);                tty_setcolor (HELP_NORMAL_COLOR);                break;            case '/n':                if (painting)                    help_print_word (h, word, &col, &line, FALSE);                line++;                col = 0;                break;            case '/t':                col = (col / 8 + 1) * 8;                if (col >= HELP_WINDOW_WIDTH)                {                    line++;                    col = 8;                }                break;            case ' ':                /* word delimiter */                if (painting)                    help_print_word (h, word, &col, &line, TRUE);//.........这里部分代码省略.........
开发者ID:GarothLongint,项目名称:mc,代码行数:101,


示例17: init_chown_advanced

static voidinit_chown_advanced (void){    int i;    int dlg_h = 12;    int dlg_w = 74;    int y;    static gboolean i18n = FALSE;    if (!i18n)    {        for (i = BUTTONS_PERM; i < BUTTONS; i++)        {#ifdef ENABLE_NLS            chown_advanced_but[i].text = _(chown_advanced_but[i].text);#endif /* ENABLE_NLS */            chown_advanced_but[i].len = str_term_width1 (chown_advanced_but[i].text) + 3;            if (chown_advanced_but[i].flags == DEFPUSH_BUTTON)                chown_advanced_but[i].len += 2; /* "<>" */        }        i18n = TRUE;    }    do_refresh ();    sf_stat = g_new (struct stat, 1);    current_file = 0;    end_chown = need_update = FALSE;    single_set = (current_panel->marked < 2);    memset (ch_flags, '=', 11);    flag_pos = 0;    x_toggle = 070;    if (!single_set)        dlg_h += 2;    ch_dlg =        dlg_create (TRUE, 0, 0, dlg_h, dlg_w, WPOS_CENTER, FALSE, dialog_colors,                    advanced_chown_callback, NULL, "[Advanced Chown]", _("Chown advanced command"));    l_filename = label_new (2, 3, "");    add_widget (ch_dlg, l_filename);    add_widget (ch_dlg, hline_new (3, -1, -1));#define XTRACT(i,y) y, BX+chown_advanced_but[i].x, /        chown_advanced_but[i].ret_cmd, chown_advanced_but[i].flags, /        (chown_advanced_but[i].text), NULL    b_att[0] = button_new (XTRACT (0, BY));    chown_advanced_but[0].id = add_widget (ch_dlg, b_att[0]);    b_att[1] = button_new (XTRACT (1, BY));    chown_advanced_but[1].id = add_widget (ch_dlg, b_att[1]);    b_att[2] = button_new (XTRACT (2, BY));    chown_advanced_but[2].id = add_widget (ch_dlg, b_att[2]);    b_user = button_new (XTRACT (3, BY));    chown_advanced_but[3].id = add_widget (ch_dlg, b_user);    b_group = button_new (XTRACT (4, BY));    chown_advanced_but[4].id = add_widget (ch_dlg, b_group);#undef XTRACT    l_mode = label_new (BY + 2, 3, "");    add_widget (ch_dlg, l_mode);    y = BY + 3;    if (!single_set)    {        i = BUTTONS_PERM;        add_widget (ch_dlg, hline_new (y++, -1, -1));        chown_advanced_but[i].id = add_widget (ch_dlg,                                               button_new (y,                                                           WIDGET (ch_dlg)->cols / 2 -                                                           chown_advanced_but[i].len,                                                           chown_advanced_but[i].ret_cmd,                                                           chown_advanced_but[i].flags,                                                           chown_advanced_but[i].text, NULL));        i++;        chown_advanced_but[i].id = add_widget (ch_dlg,                                               button_new (y, WIDGET (ch_dlg)->cols / 2 + 1,                                                           chown_advanced_but[i].ret_cmd,                                                           chown_advanced_but[i].flags,                                                           chown_advanced_but[i].text, NULL));        y++;    }    i = BUTTONS_PERM + 2;    add_widget (ch_dlg, hline_new (y++, -1, -1));    chown_advanced_but[i].id = add_widget (ch_dlg,                                           button_new (y,                                                       WIDGET (ch_dlg)->cols / 2 -                                                       chown_advanced_but[i].len,                                                       chown_advanced_but[i].ret_cmd,                                                       chown_advanced_but[i].flags,                                                       chown_advanced_but[i].text, NULL));    i++;    chown_advanced_but[i].id = add_widget (ch_dlg,                                           button_new (y, WIDGET (ch_dlg)->cols / 2 + 1,//.........这里部分代码省略.........
开发者ID:jskDr,项目名称:mc,代码行数:101,


示例18: overwrite_query_dialog

//.........这里部分代码省略.........    char buffer[BUF_SMALL];    char fsize_buffer[BUF_SMALL];    Widget *label1, *label2;    const char *title;    vfs_path_t *stripped_vpath;    const char *stripped_name;    char *stripped_name_orig;    int result;    widgets_len = g_new0 (int, num);    if (mode == Foreground)        title = _("File exists");    else        title = _("Background process: File exists");    stripped_vpath = vfs_path_from_str (ui->replace_filename);    stripped_name = stripped_name_orig =        vfs_path_to_str_flags (stripped_vpath, 0, VPF_STRIP_HOME | VPF_STRIP_PASSWORD);    vfs_path_free (stripped_vpath);    {        size_t i;        int l1, l2, l, row;        int stripped_name_len;        for (i = 0; i < num; i++)        {#ifdef ENABLE_NLS            if (i != 1)         /* skip filename */                rd_widgets[i].text = _(rd_widgets[i].text);#endif /* ENABLE_NLS */            widgets_len[i] = str_term_width1 (rd_widgets[i].text);        }        /*         * longest of "Overwrite..." labels         * (assume "Target date..." are short enough)         */        l1 = max (widgets_len[9], widgets_len[4]);        /* longest of button rows */        l = l2 = 0;        row = 0;        for (i = 1; i < num - 1; i++)            if (rd_widgets[i].value != 0)            {                if (row != rd_widgets[i].ypos)                {                    row = rd_widgets[i].ypos;                    l2 = max (l2, l);                    l = 0;                }                l += widgets_len[i] + 4;            }        l2 = max (l2, l);       /* last row */        rd_xlen = max (rd_xlen, l1 + l2 + 8);        /* rd_xlen = max (rd_xlen, str_term_width1 (title) + 2); */        stripped_name_len = str_term_width1 (stripped_name);        rd_xlen = max (rd_xlen, min (COLS, stripped_name_len + 8));        /* Now place widgets */        l1 += 5;                /* start of first button in the row */        l = l1;
开发者ID:CTU-OSP,项目名称:mc,代码行数:67,


示例19: mcview_dialog_goto

gbooleanmcview_dialog_goto (mcview_t * view, off_t * offset){    typedef enum    {        MC_VIEW_GOTO_LINENUM = 0,        MC_VIEW_GOTO_PERCENT = 1,        MC_VIEW_GOTO_OFFSET_DEC = 2,        MC_VIEW_GOTO_OFFSET_HEX = 3    } mcview_goto_type_t;    const char *mc_view_goto_str[] = {        N_("&Line number (decimal)"),        N_("Pe&rcents"),        N_("&Decimal offset"),        N_("He&xadecimal offset")    };    const int goto_dlg_height = 12;    int goto_dlg_width = 40;    static mcview_goto_type_t current_goto_type = MC_VIEW_GOTO_LINENUM;    size_t i;    size_t num_of_types = sizeof (mc_view_goto_str) / sizeof (mc_view_goto_str[0]);    char *exp = NULL;    int qd_result;    gboolean res = FALSE;    QuickWidget quick_widgets[] = {        QUICK_BUTTON (6, 10, goto_dlg_height - 3, goto_dlg_height, N_("&Cancel"), B_CANCEL, NULL),        QUICK_BUTTON (2, 10, goto_dlg_height - 3, goto_dlg_height, N_("&OK"), B_ENTER, NULL),        QUICK_RADIO (3, goto_dlg_width, 4, goto_dlg_height,                     num_of_types, (const char **) mc_view_goto_str, (int *) &current_goto_type),        QUICK_INPUT (3, goto_dlg_width, 2, goto_dlg_height,                     INPUT_LAST_TEXT, goto_dlg_width - 6, 0, MC_HISTORY_VIEW_GOTO, &exp),        QUICK_END    };    QuickDialog Quick_input = {        goto_dlg_width, goto_dlg_height, -1, -1,        N_("Goto"), "[Input Line Keys]",        quick_widgets, NULL, NULL, FALSE    };#ifdef ENABLE_NLS    for (i = 0; i < num_of_types; i++)        mc_view_goto_str[i] = _(mc_view_goto_str[i]);    quick_widgets[0].u.button.text = _(quick_widgets[0].u.button.text);    quick_widgets[1].u.button.text = _(quick_widgets[1].u.button.text);#endif    /* calculate widget coordinates */    {        int b0_len, b1_len, len;        const int button_gap = 2;        /* preliminary dialog width */        goto_dlg_width = max (goto_dlg_width, str_term_width1 (Quick_input.title) + 4);        /* length of radiobuttons */        for (i = 0; i < num_of_types; i++)            goto_dlg_width = max (goto_dlg_width, str_term_width1 (mc_view_goto_str[i]) + 10);        /* length of buttons */        b0_len = str_term_width1 (quick_widgets[0].u.button.text) + 3;        b1_len = str_term_width1 (quick_widgets[1].u.button.text) + 5;  /* default button */        len = b0_len + b1_len + button_gap * 2;        /* dialog width */        Quick_input.xlen = max (goto_dlg_width, len + 6);        /* correct widget coordinates */        for (i = sizeof (quick_widgets) / sizeof (quick_widgets[0]); i > 0; i--)            quick_widgets[i - 1].x_divisions = Quick_input.xlen;        /* input length */        quick_widgets[3].u.input.len = Quick_input.xlen - 6;        /* button positions */        quick_widgets[1].relative_x = Quick_input.xlen / 2 - len / 2;        quick_widgets[0].relative_x = quick_widgets[1].relative_x + b1_len + button_gap;    }    /* run dialog */    qd_result = quick_dialog (&Quick_input);    *offset = -1;    /* check input line value */    if ((qd_result != B_CANCEL) && (exp != NULL) && (exp[0] != '/0'))    {        int base = (current_goto_type == MC_VIEW_GOTO_OFFSET_HEX) ? 16 : 10;        off_t addr;        char *error;        res = TRUE;//.........这里部分代码省略.........
开发者ID:BrEacK,项目名称:mc,代码行数:101,


示例20: va_start

    if (count > 0)    {        va_start (ap, count);        for (i = 0; i < count; i++)        {            char *cp = va_arg (ap, char *);            win_len += str_term_width1 (cp) + 6;            if (strchr (cp, '&') != NULL)                win_len--;        }        va_end (ap);    }    /* count coordinates */    str_msg_term_size (text, &lines, &cols);    cols = 6 + max (win_len, max (str_term_width1 (header), cols));    lines += 4 + (count > 0 ? 2 : 0);    /* prepare dialog */    query_dlg =        create_dlg (TRUE, 0, 0, lines, cols, query_colors, default_query_callback,                    "[QueryBox]", header, dlg_flags);    if (count > 0)    {        cols = (cols - win_len - 2) / 2 + 2;        va_start (ap, count);        for (i = 0; i < count; i++)        {            int xpos;
开发者ID:ryanlee,项目名称:mc,代码行数:30,


示例21: init_panelize

static voidinit_panelize (void){    struct    {        int ret_cmd;        button_flags_t flags;        const char *text;    } panelize_but[] =    {        /* *INDENT-OFF* */        { B_ENTER, DEFPUSH_BUTTON, N_("Pane&lize") },        { B_REMOVE, NORMAL_BUTTON, N_("&Remove") },        { B_ADD, NORMAL_BUTTON, N_("&Add new") },        { B_CANCEL, NORMAL_BUTTON, N_("&Cancel") }        /* *INDENT-ON* */    };    size_t i;    int blen;    int panelize_cols;    struct panelize *current;    int x, y;    last_listitem = 0;    do_refresh ();    i = G_N_ELEMENTS (panelize_but);    blen = i - 1;               /* gaps between buttons */    while (i-- != 0)    {#ifdef ENABLE_NLS        panelize_but[i].text = _(panelize_but[i].text);#endif        blen += str_term_width1 (panelize_but[i].text) + 3 + 1;        if (panelize_but[i].flags == DEFPUSH_BUTTON)            blen += 2;    }    panelize_cols = COLS - 6;    panelize_cols = max (panelize_cols, blen + 4);    panelize_dlg =        dlg_create (TRUE, 0, 0, 20, panelize_cols, dialog_colors, panelize_callback, NULL,                    "[External panelize]", _("External panelize"), DLG_CENTER);    /* add listbox to the dialogs */    y = UY;    add_widget (panelize_dlg, groupbox_new (y++, UX, 12, panelize_cols - UX * 2, ""));    l_panelize = listbox_new (y, UX + 1, 10, panelize_cols - UX * 2 - 2, FALSE, NULL);    for (current = panelize; current != NULL; current = current->next)        listbox_add_item (l_panelize, LISTBOX_APPEND_AT_END, 0, current->label, current);    listbox_select_entry (l_panelize, listbox_search_text (l_panelize, _("Other command")));    add_widget (panelize_dlg, l_panelize);    y += WIDGET (l_panelize)->lines + 1;    add_widget (panelize_dlg, label_new (y++, UX, _("Command")));    pname =        input_new (y++, UX, input_colors, panelize_cols - UX * 2, "", "in",                   INPUT_COMPLETE_FILENAMES | INPUT_COMPLETE_HOSTNAMES | INPUT_COMPLETE_COMMANDS |                   INPUT_COMPLETE_VARIABLES | INPUT_COMPLETE_USERNAMES | INPUT_COMPLETE_CD |                   INPUT_COMPLETE_SHELL_ESC);    add_widget (panelize_dlg, pname);    add_widget (panelize_dlg, hline_new (y++, -1, -1));    x = (panelize_cols - blen) / 2;    for (i = 0; i < G_N_ELEMENTS (panelize_but); i++)    {        WButton *b;        b = button_new (y, x,                        panelize_but[i].ret_cmd, panelize_but[i].flags, panelize_but[i].text, NULL);        add_widget (panelize_dlg, b);        x += button_get_len (b) + 1;    }    dlg_select_widget (l_panelize);}
开发者ID:andi5,项目名称:mc,代码行数:84,


示例22: overwrite_query_dialog

/* * FIXME: probably it is better to replace this with quick dialog machinery, * but actually I'm not familiar with it and have not much time :( *   alex */static replace_action_toverwrite_query_dialog (FileOpContext * ctx, enum OperationMode mode){#define ADD_RD_BUTTON(i) /    add_widget (ui->replace_dlg, /            button_new (rd_widgets [i].ypos, rd_widgets [i].xpos, rd_widgets [i].value, /                        NORMAL_BUTTON, rd_widgets [i].text, 0))#define ADD_RD_LABEL(i, p1, p2) /    g_snprintf (buffer, sizeof (buffer), rd_widgets [i].text, p1, p2); /    add_widget (ui->replace_dlg, label_new (rd_widgets [i].ypos, rd_widgets [i].xpos, buffer))    /* dialog sizes */    const int rd_ylen = 17;    int rd_xlen = 60;    struct    {        const char *text;        int ypos, xpos;        int value;              /* 0 for labels */    } rd_widgets[] =    {    /* *INDENT-OFF* */        /*  0 */        { N_("Target file already exists!"), 3, 4, 0 },        /*  1 */        { "%s", 4, 4, 0 },        /*  2 */ /* cannot use PRIuMAX here; %llu is used instead */        { N_("Source date: %s, size %llu"), 6, 4, 0 },        /*  3 */  /* cannot use PRIuMAX here; %llu is used instead */        { N_("Target date: %s, size %llu"), 7, 4, 0 },        /*  4 */        { N_("&Abort"), 14, 25, REPLACE_ABORT },        /*  5 */        { N_("If &size differs"), 12, 28, REPLACE_SIZE },        /*  6 */        { N_("Non&e"), 11, 47, REPLACE_NEVER },        /*  7 */        { N_("&Update"), 11, 36, REPLACE_UPDATE },        /*  8 */        { N_("A&ll"), 11, 28, REPLACE_ALWAYS },        /*  9 */        { N_("Overwrite all targets?"), 11, 4, 0 },        /* 10 */        { N_("&Reget"), 10, 28, REPLACE_REGET },        /* 11 */        { N_("A&ppend"), 9, 45, REPLACE_APPEND },        /* 12 */        { N_("&No"), 9, 37, REPLACE_NO },        /* 13 */        { N_("&Yes"), 9, 28, REPLACE_YES },        /* 14 */        { N_("Overwrite this target?"), 9, 4, 0 }    /* *INDENT-ON* */    };    const int num = sizeof (rd_widgets) / sizeof (rd_widgets[0]);    int *widgets_len;    FileOpContextUI *ui = ctx->ui;    char buffer[BUF_SMALL];    const char *title;    const char *stripped_name = strip_home_and_password (ui->replace_filename);    int stripped_name_len;    int result;    widgets_len = g_new0 (int, num);    if (mode == Foreground)        title = _("File exists");    else        title = _("Background process: File exists");    stripped_name_len = str_term_width1 (stripped_name);    {        int i, l1, l2, l, row;        for (i = 0; i < num; i++)        {#ifdef ENABLE_NLS            if (i != 1)         /* skip filename */                rd_widgets[i].text = _(rd_widgets[i].text);#endif /* ENABLE_NLS */            widgets_len[i] = str_term_width1 (rd_widgets[i].text);        }        /*         * longest of "Overwrite..." labels         * (assume "Target date..." are short enough)         */        l1 = max (widgets_len[9], widgets_len[14]);//.........这里部分代码省略.........
开发者ID:artzub,项目名称:mc,代码行数:101,


示例23: fg_input_dialog_help

/** * Show dialog, not background safe. * * If the arguments "header" and "text" should be translated, * that MUST be done by the caller of fg_input_dialog_help(). * * The argument "history_name" holds the name of a section * in the history file. Data entered in the input field of * the dialog box will be stored there. * */static char *fg_input_dialog_help (const char *header, const char *text, const char *help,                      const char *history_name, const char *def_text, gboolean strip_password){    char *my_str;    int flags = (strip_password) ? 4 : 0;    QuickWidget quick_widgets[] = {        /* 0 */ QUICK_BUTTON (6, 64, 1, 0, N_("&Cancel"), B_CANCEL, NULL),        /* 1 */ QUICK_BUTTON (3, 64, 1, 0, N_("&OK"), B_ENTER, NULL),        /* 2 */ QUICK_INPUT (3, 64, 0, 0, def_text, 58, flags, NULL, &my_str),        /* 3 */ QUICK_LABEL (3, 64, 2, 0, ""),        QUICK_END    };    int b0_len, b1_len, b_len, gap;    char histname[64] = "inp|";    int lines, cols;    int len;    int i;    char *p_text;    int ret;    /* buttons */#ifdef ENABLE_NLS    quick_widgets[0].u.button.text = _(quick_widgets[0].u.button.text);    quick_widgets[1].u.button.text = _(quick_widgets[1].u.button.text);#endif /* ENABLE_NLS */    b0_len = str_term_width1 (quick_widgets[0].u.button.text) + 3;    b1_len = str_term_width1 (quick_widgets[1].u.button.text) + 5;      /* default button */    b_len = b0_len + b1_len + 2;        /* including gap */    /* input line */    if (history_name != NULL && *history_name != '/0')    {        g_strlcpy (histname + 3, history_name, sizeof (histname) - 3);        quick_widgets[2].u.input.histname = histname;    }    /* The special value of def_text is used to identify password boxes       and hide characters with "*".  Don't save passwords in history! */    if (def_text == INPUT_PASSWORD)    {        quick_widgets[2].u.input.flags = 1;        histname[3] = '/0';        quick_widgets[2].u.input.text = "";    }    /* text */    p_text = g_strstrip (g_strdup (text));    str_msg_term_size (p_text, &lines, &cols);    quick_widgets[3].u.label.text = p_text;    /* dialog width */    len = str_term_width1 (header);    len = max (max (len, cols) + 4, 64);    len = min (max (len, b_len + 6), COLS);    /* button locations */    gap = (len - 8 - b_len) / 3;    quick_widgets[1].relative_x = 3 + gap;    quick_widgets[0].relative_x = quick_widgets[1].relative_x + b1_len + gap + 2;    {        QuickDialog Quick_input = {            len, lines + 6, -1, -1, header,            help, quick_widgets, NULL, TRUE        };        for (i = 0; i < 4; i++)        {            quick_widgets[i].x_divisions = Quick_input.xlen;            quick_widgets[i].y_divisions = Quick_input.ylen;        }        for (i = 0; i < 3; i++)            quick_widgets[i].relative_y += 2 + lines;        /* input line length */        quick_widgets[2].u.input.len = Quick_input.xlen - 6;        ret = quick_dialog (&Quick_input);    }    g_free (p_text);    return (ret != B_CANCEL) ? my_str : NULL;}
开发者ID:ryanlee,项目名称:mc,代码行数:99,


示例24: file_mask_dialog

char *file_mask_dialog (FileOpContext * ctx, FileOperation operation,                  gboolean only_one,                  const char *format, const void *text,                  const char *def_text, gboolean * do_bg){    const size_t FMDY = 13;    const size_t FMDX = 68;    size_t fmd_xlen;    /* buttons */    const size_t gap = 1;    size_t b0_len, b2_len;    size_t b1_len = 0;    int source_easy_patterns = easy_patterns;    size_t i, len;    char fmd_buf[BUF_MEDIUM];    char *source_mask, *orig_mask, *dest_dir, *tmp;    char *def_text_secure;    int val;    QuickWidget fmd_widgets[] = {        /* 0 */ QUICK_BUTTON (42, 64, 10, FMDY, N_("&Cancel"), B_CANCEL, NULL),#ifdef WITH_BACKGROUND        /* 1 */ QUICK_BUTTON (25, 64, 10, FMDY, N_("&Background"), B_USER, NULL),#define OFFSET 0#else#define OFFSET 1#endif /* WITH_BACKGROUND */        /*  2 - OFFSET */        QUICK_BUTTON (14, FMDX, 10, FMDY, N_("&OK"), B_ENTER, NULL),        /*  3 - OFFSET */        QUICK_CHECKBOX (42, FMDX, 8, FMDY, N_("&Stable Symlinks"), &ctx->stable_symlinks),        /*  4 - OFFSET */        QUICK_CHECKBOX (31, FMDX, 7, FMDY, N_("Di&ve into subdir if exists"),                        &ctx->dive_into_subdirs),        /*  5 - OFFSET */        QUICK_CHECKBOX (3, FMDX, 8, FMDY, N_("Preserve &attributes"), &ctx->op_preserve),        /*  6 - OFFSET */        QUICK_CHECKBOX (3, FMDX, 7, FMDY, N_("Follow &links"), &ctx->follow_links),        /*  7 - OFFSET */        QUICK_INPUT (3, FMDX, 6, FMDY, "", 58, 0, "input2", &dest_dir),        /*  8 - OFFSET */        QUICK_LABEL (3, FMDX, 5, FMDY, N_("to:")),        /*  9 - OFFSET */        QUICK_CHECKBOX (37, FMDX, 4, FMDY, N_("&Using shell patterns"), &source_easy_patterns),        /* 10 - OFFSET */        QUICK_INPUT (3, FMDX, 3, FMDY, easy_patterns ? "*" : "^(.*)$", 58, 0, "input-def",                     &source_mask),        /* 11 - OFFSET */        QUICK_LABEL (3, FMDX, 2, FMDY, fmd_buf),        QUICK_END    };    g_return_val_if_fail (ctx != NULL, NULL);#ifdef ENABLE_NLS    /* buttons */    for (i = 0; i <= 2 - OFFSET; i++)        fmd_widgets[i].u.button.text = _(fmd_widgets[i].u.button.text);    /* checkboxes */    for (i = 3 - OFFSET; i <= 9 - OFFSET; i++)        if (i != 7 - OFFSET)            fmd_widgets[i].u.checkbox.text = _(fmd_widgets[i].u.checkbox.text);#endif /* !ENABLE_NLS */    fmd_xlen = max (FMDX, (size_t) COLS * 2 / 3);    len = str_term_width1 (fmd_widgets[6 - OFFSET].u.checkbox.text)        + str_term_width1 (fmd_widgets[4 - OFFSET].u.checkbox.text) + 15;    fmd_xlen = max (fmd_xlen, len);    len = str_term_width1 (fmd_widgets[5 - OFFSET].u.checkbox.text)        + str_term_width1 (fmd_widgets[3 - OFFSET].u.checkbox.text) + 15;    fmd_xlen = max (fmd_xlen, len);    /* buttons */    b2_len = str_term_width1 (fmd_widgets[2 - OFFSET].u.button.text) + 6 + gap; /* OK */#ifdef WITH_BACKGROUND    b1_len = str_term_width1 (fmd_widgets[1].u.button.text) + 4 + gap;  /* Background */#endif    b0_len = str_term_width1 (fmd_widgets[0].u.button.text) + 4;        /* Cancel */    len = b0_len + b1_len + b2_len;    fmd_xlen = min (max (fmd_xlen, len + 6), (size_t) COLS);    if (only_one)    {        int flen;        flen = str_term_width1 (format);        i = fmd_xlen - flen - 4;        /* FIXME */        g_snprintf (fmd_buf, sizeof (fmd_buf), format, str_trunc ((const char *) text, i));    }    else    {        g_snprintf (fmd_buf, sizeof (fmd_buf), format, *(const int *) text);        fmd_xlen = max (fmd_xlen, (size_t) str_term_width1 (fmd_buf) + 6);    }//.........这里部分代码省略.........
开发者ID:artzub,项目名称:mc,代码行数:101,


示例25: compare_word_to_right

static longcompare_word_to_right (WEdit * edit, long i, const char *text,                       const char *whole_left, const char *whole_right, int line_start){    const unsigned char *p, *q;    int c, d, j;    if (*text == '/0')        return -1;    c = xx_tolower (edit, edit_get_byte (edit, i - 1));    if (line_start != 0 && c != '/n')        return -1;    if (whole_left != NULL && strchr (whole_left, c) != NULL)        return -1;    for (p = (unsigned char *) text, q = p + str_term_width1 ((char *) p); p < q; p++, i++)    {        switch (*p)        {        case SYNTAX_TOKEN_STAR:            if (++p > q)                return -1;            for (;;)            {                c = xx_tolower (edit, edit_get_byte (edit, i));                if (*p == '/0' && whole_right != NULL && strchr (whole_right, c) == NULL)                    break;                if (c == *p)                    break;                if (c == '/n')                    return -1;                i++;            }            break;        case SYNTAX_TOKEN_PLUS:            if (++p > q)                return -1;            j = 0;            for (;;)            {                c = xx_tolower (edit, edit_get_byte (edit, i));                if (c == *p)                {                    j = i;                    if (*p == *text && p[1] == '/0')    /* handle eg '+' and @[email
C++ str_to_int函数代码示例
C++ str_sprintf函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。