📄 addressbook_edit.c
字号:
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 + -