⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 addressbook_edit.c

📁 在uclinux下写的一个 address book 程序
💻 C
📖 第 1 页 / 共 2 页
字号:
        emtk_clist_append_label_new(summary_clist, lookupFont("en_US", SMALL_FONT), FALSE, address->business->city);    }        if (!strEmpty(address->business->country)) {        emtk_clist_append_label_new(summary_clist, lookupFont("en_US", SMALL_FONT), FALSE, address->business->country);    }        if (!strEmpty(address->business->phone)) {        str = g_strconcat(_("Phone: "), address->business->phone, NULL);        emtk_clist_append_label_new(summary_clist, lookupFont("en_US", SMALL_FONT), FALSE, str);        g_free(str);    }        if (!strEmpty(address->business->mobile)) {        str = g_strconcat(_("Mobile: "), address->business->phone, NULL);        emtk_clist_append_label_new(summary_clist, lookupFont("en_US", SMALL_FONT), FALSE, str);        g_free(str);    }}static void tab_click(int id, void *data) {        int action;        action = (int) data;        emtk_button_set_toggle_state(last_btn, FALSE);    emtk_button_set_toggle_state(id, TRUE);        emtk_object_hide(last_table);        last_btn = id;        switch(action) {        case PERSONAL:            emtk_table_show(personal_table);            last_table = personal_table;            break;        case BUSINESS:            emtk_table_show(business_table);            last_table = business_table;            break;        case SUMMARY:            construct_summary();            emtk_clist_show(summary_clist);            last_table = summary_clist;            break;        default:            g_warning("%s: Unknown action is invoked\n", __FUNCTION__);    }}#define add_entry_personal(field) \    eid = emtk_entry_new(window, 0, 12, 0, KEY_TYPE_ANY, (clientRect->w - 90 - SCROLLBAR_WIDTH), 100, lookupFont("en_US", SMALL_FONT), lookupFont("en_US", SMALL_FONT), NULL); \    emtk_entry_set_value(eid, field, strlen(field)); \    emtk_entry_set_value_change_callback(eid, personalChangeCb, NULL); \    emtk_table_append_entry(personal_table, eid, 1); \#define add_entry_business(field) \    eid = emtk_entry_new(window, 0, 12, 0, KEY_TYPE_ANY, (clientRect->w - 85 - SCROLLBAR_WIDTH), 100, lookupFont("en_US", SMALL_FONT), lookupFont("en_US", SMALL_FONT), NULL); \    emtk_entry_set_value(eid, field, strlen(field)); \    emtk_entry_set_value_change_callback(eid, businessChangeCb, NULL); \    emtk_table_append_entry(business_table, eid, 1); \    static void drawWnd(int window, WindowRect *clientRect) {        int eid;        done_id   = emtk_button_new(window, 0,  clientRect->h - 19, 60, 18, lookupFont("en_US", SMALL_FONT), _("Done"),      0, doneBtnHandler, NULL);    delete_id = emtk_button_new(window, 65, clientRect->h - 19, 60, 18, lookupFont("en_US", SMALL_FONT), _("Delete..."), 0, showConfirmDialog, NULL);        emtk_window_add_object(window, done_id);    emtk_window_add_object(window, delete_id);        personal_id = emtk_button_new(window, 20, 2, 60, 18, lookupFont("en_US", SMALL_FONT), _("Personal"), 0, tab_click, (void *) PERSONAL);    business_id = emtk_button_new(window, 80, 2, 60, 18, lookupFont("en_US", SMALL_FONT), _("Business"), 0, tab_click, (void *) BUSINESS);    summary_id =  emtk_button_new(window, 140, 2, 60, 18, lookupFont("en_US", SMALL_FONT), _("Summary"), 0, tab_click, (void *) SUMMARY);        last_btn = personal_id;        emtk_button_set_type_toggle(personal_id, TRUE);    emtk_button_set_type_toggle(business_id, TRUE);    emtk_button_set_type_toggle(summary_id, TRUE);        emtk_button_set_toggle_state(personal_id, TRUE);        emtk_window_add_object(window, emtk_line_new(window, 0, 20, clientRect->w, 20));        emtk_window_add_object(window, personal_id);    emtk_window_add_object(window, business_id);    emtk_window_add_object(window, summary_id);        personal_table = emtk_table_new(window, 0, 21, clientRect->w - SCROLLBAR_WIDTH, ADDRESSBOOK_LIST_HEIGHT, 2, ADDRESSBOOK_LIST_SIZE, 0);    emtk_table_add_column_new(personal_table, 75);    emtk_table_add_column_new(personal_table, clientRect->w - 85 - SCROLLBAR_WIDTH);        personal_labels[0] = emtk_table_append_label_new(personal_table, lookupFont("en_US", SMALL_FONT), FALSE, _("Last name:"),     0);    personal_labels[1] = emtk_table_append_label_new(personal_table, lookupFont("en_US", SMALL_FONT), FALSE, _("First name:"),    0);    personal_labels[2] = emtk_table_append_label_new(personal_table, lookupFont("en_US", SMALL_FONT), FALSE, _("Nickname:"),      0);    personal_labels[3] = emtk_table_append_label_new(personal_table, lookupFont("en_US", SMALL_FONT), FALSE, _("Phone:"),         0);    personal_labels[4] = emtk_table_append_label_new(personal_table, lookupFont("en_US", SMALL_FONT), FALSE, _("Mobile:"),        0);    personal_labels[5] = emtk_table_append_label_new(personal_table, lookupFont("en_US", SMALL_FONT), FALSE, _("Fax:"),           0);    personal_labels[6] = emtk_table_append_label_new(personal_table, lookupFont("en_US", SMALL_FONT), FALSE, _("E-mail 1:"),      0);    personal_labels[7] = emtk_table_append_label_new(personal_table, lookupFont("en_US", SMALL_FONT), FALSE, _("E-mail 2:"),      0);    personal_labels[8] = emtk_table_append_label_new(personal_table, lookupFont("en_US", SMALL_FONT), FALSE, _("E-mail 3:"),      0);    personal_labels[9] = emtk_table_append_label_new(personal_table, lookupFont("en_US", SMALL_FONT), FALSE, _("Address:"),       0);    personal_labels[10] = emtk_table_append_label_new(personal_table, lookupFont("en_US", SMALL_FONT), FALSE, _("City:"),          0);        last_personal_label = personal_labels[0];    //emtk_label_set_background_color(personal_labels[0], emtk_app_get_hl_color());    //emtk_table_set_focus_change_callback(personal_table, personalTableFocusChange, NULL);        emtk_table_set_highlight_color(personal_table, emtk_app_get_hl_color());        add_entry_personal(address->personal->lastName);    add_entry_personal(address->personal->firstName);    add_entry_personal(address->personal->nickName);    add_entry_personal(address->personal->phone);    add_entry_personal(address->personal->mobile);    add_entry_personal(address->personal->fax);    add_entry_personal(address->personal->email1);    add_entry_personal(address->personal->email2);    add_entry_personal(address->personal->email3);    add_entry_personal(address->personal->address);    add_entry_personal(address->personal->city);        emtk_window_add_object(window, personal_table);    emtk_table_add_vscrollbar_new(personal_table, SCROLLBAR_WIDTH, VSCROLLBAR_ALIGN_RIGHT);            last_table = personal_table;        business_table = emtk_table_new(window, 0, 21, clientRect->w - SCROLLBAR_WIDTH, ADDRESSBOOK_LIST_HEIGHT, 2, ADDRESSBOOK_LIST_SIZE, 0);        emtk_table_add_column_new(business_table, 70);    emtk_table_add_column_new(business_table, clientRect->w - 70 - SCROLLBAR_WIDTH);        emtk_table_append_label_new(business_table, lookupFont("en_US", SMALL_FONT), FALSE, _("Company:"),       0);    emtk_table_append_label_new(business_table, lookupFont("en_US", SMALL_FONT), FALSE, _("Job title:"),     0);    emtk_table_append_label_new(business_table, lookupFont("en_US", SMALL_FONT), FALSE, _("Address:"),       0);    emtk_table_append_label_new(business_table, lookupFont("en_US", SMALL_FONT), FALSE, _("City:"),          0);    emtk_table_append_label_new(business_table, lookupFont("en_US", SMALL_FONT), FALSE, _("Country:"),       0);    emtk_table_append_label_new(business_table, lookupFont("en_US", SMALL_FONT), FALSE, _("Phone:"),         0);    emtk_table_append_label_new(business_table, lookupFont("en_US", SMALL_FONT), FALSE, _("Mobile:"),        0);    emtk_table_append_label_new(business_table, lookupFont("en_US", SMALL_FONT), FALSE, _("Fax:"),           0);    emtk_table_append_label_new(business_table, lookupFont("en_US", SMALL_FONT), FALSE, _("E-mail:"),        0);    emtk_table_append_label_new(business_table, lookupFont("en_US", SMALL_FONT), FALSE, _("Ast name:"),      0);    emtk_table_append_label_new(business_table, lookupFont("en_US", SMALL_FONT), FALSE, _("Ast phone:"),     0);                add_entry_business(address->business->company);    add_entry_business(address->business->jobTitle);    add_entry_business(address->business->address);    add_entry_business(address->business->city);    add_entry_business(address->business->country);    add_entry_business(address->business->phone);    add_entry_business(address->business->mobile);    add_entry_business(address->business->fax);    add_entry_business(address->business->email);    add_entry_business(address->business->assistantName);    add_entry_business(address->business->assistantPhone);        emtk_window_add_object(window, business_table);        emtk_table_add_vscrollbar_new(business_table, SCROLLBAR_WIDTH, VSCROLLBAR_ALIGN_RIGHT);        emtk_table_set_highlight_color(business_table, emtk_app_get_hl_color());        emtk_table_hide(business_table);        edit_client_window = window;}static void ime_message(int code) {        DESKTOP_CHANNEL channel;    MSG msg;    int msgLen;        msgLen = msg_command_input(code, &msg);    desktop_channel_connect(&channel);    desktop_channel_send(&channel, &msg, msgLen);    desktop_channel_disconnect(&channel);}static void toolbar_handler(int button, int action, void *data) {        switch(action) {    case SHORTCUT_HANDWRITE:        return;    case SHORTCUT_KEYBOARD:        return;    case SHORTCUT_ENGLISH:        if ((ime_state & INPUT_LANG_MASK) == INPUT_ENGLISH) {            ime_state = 0;            last_ime = 0;        } else {            ime_state = INPUT_ENGLISH | KEYBOARD | LAYOUT2;            if (last_ime)                emtk_app_set_shortcut_button_toggle_state(last_ime, FALSE);            last_ime = button;        }        break;    case SHORTCUT_CHINESE:                return;    case SHORTCUT_THAI:        if ((ime_state & INPUT_LANG_MASK) == INPUT_THAI) {            ime_state = 0;            last_ime = 0;        } else {            ime_state = INPUT_THAI | KEYBOARD | LAYOUT2;            if (last_ime)                emtk_app_set_shortcut_button_toggle_state(last_ime, FALSE);            last_ime = button;        }                break;    }        ime_message(ime_state);}int addressbook_edit_window(Address *addr, AddressbookCallback callback) {        char *wnd_title;    char *name;    WindowRect shortcut_dim = { APP_WIN_W - 90, 0, 70, 18 };        address = addr;        updateView = callback;        if (!strEmpty(addr->personal->nickName)) {                name = g_strdup(addr->personal->nickName);            } else if (!strEmpty(addr->personal->nickName)) {                name = g_strdup(addr->personal->firstName);            } else if (!strEmpty(addr->personal->lastName)) {                name = g_strdup(addr->personal->lastName);            } else if (!strEmpty(addr->business->company)) {                name = g_strdup(addr->business->company);            } else {        name = g_strdup(_("-Unnamed-"));    }        wnd_title = g_strconcat(_("Address of "), name, NULL);        edit_window = emtk_app_window_new(wnd_title, lookupFont("en_US", SMALL_FONT), drawWnd, closeWnd, menuHandler);        record_menu = emtk_app_window_menu_add(edit_window, _("Record"), 0);    emtk_app_window_menu_item_add(record_menu, _("Delete Address..."), ACTION_ADDRESS_DELETE);        toolbar_id = emtk_app_window_add_shortcut_bar(edit_window, &shortcut_dim, toolbar_handler, SHORTCUT_BAR_HORIZONTAL);    ime_keyboard = emtk_app_append_shortcut_button(toolbar_id, SHORTCUT_BUTTON_TOGGLE, "key02.jpg",      "key01.jpg",   25, 18, 0, SHORTCUT_KEYBOARD, NULL);    ime_thai     = emtk_app_append_shortcut_button(toolbar_id, SHORTCUT_BUTTON_TOGGLE, "thaikbd_on.png", "thaikbd.png", 18, 18, 0, SHORTCUT_THAI,     NULL);    ime_english  = emtk_app_append_shortcut_button(toolbar_id, SHORTCUT_BUTTON_TOGGLE, "engkbd_on.png",  "engkbd.png",  18, 18, 0, SHORTCUT_ENGLISH,  NULL);        g_free(wnd_title);    g_free(name);        return edit_window;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -