static void candwin_update(gchar **str) { int index, need_hilite; sscanf(str[1], "%d", &index); sscanf(str[2], "%d", &need_hilite); cwin->need_hilite = (need_hilite == 1) ? TRUE : FALSE; uim_cand_win_gtk_set_index(cwin, index); }
void uim_cand_win_horizontal_gtk_set_page(UIMCandWinHorizontalGtk *horizontal_cwin, gint page) { guint len, new_page; gint new_index; UIMCandWinGtk *cwin; g_return_if_fail(UIM_IS_CAND_WIN_HORIZONTAL_GTK(horizontal_cwin)); cwin = UIM_CAND_WIN_GTK(horizontal_cwin); g_return_if_fail(cwin->stores); len = cwin->stores->len; g_return_if_fail(len); if (page < 0) new_page = len - 1; else if (page >= (gint) len) new_page = 0; else new_page = page; update_table_button(horizontal_cwin, new_page); #if GTK_CHECK_VERSION(3, 4, 0) show_table(GTK_GRID(cwin->view), horizontal_cwin->buttons); #else show_table(GTK_TABLE(cwin->view), horizontal_cwin->buttons); #endif cwin->page_index = new_page; if (cwin->display_limit) { if (cwin->candidate_index >= 0) new_index = (new_page * cwin->display_limit) + (cwin->candidate_index % cwin->display_limit); else new_index = -1; } else { new_index = cwin->candidate_index; } if (new_index >= (gint) cwin->nr_candidates) new_index = cwin->nr_candidates - 1; /* check if (cwin->candidate_index != new_index) ?? */ uim_cand_win_gtk_set_index(cwin, new_index); }
/* copied from uim-cand-win-gtk.c */ static void uim_cand_win_gtk_set_page(UIMCandidateWindow *cwin, gint page) { guint len, new_page; gint new_index; g_return_if_fail(UIM_IS_CANDIDATE_WINDOW(cwin)); g_return_if_fail(cwin->stores); len = cwin->stores->len; g_return_if_fail(len); if (page < 0) new_page = len - 1; else if (page >= (gint) len) new_page = 0; else new_page = page; if (cwin->stores->pdata[new_page]) { gtk_tree_view_set_model(GTK_TREE_VIEW(cwin->view), GTK_TREE_MODEL(cwin->stores->pdata[new_page])); } cwin->page_index = new_page; if (cwin->display_limit) { if (cwin->candidate_index >= 0) new_index = (new_page * cwin->display_limit) + (cwin->candidate_index % cwin->display_limit); else new_index = -1; } else { new_index = cwin->candidate_index; } if (new_index >= (gint) cwin->nr_candidates) new_index = cwin->nr_candidates - 1; /* shrink the window */ gtk_window_resize(GTK_WINDOW(cwin), CANDWIN_DEFAULT_WIDTH, 1); cwin->need_page_update = FALSE; /* avoid infinite loop with set_index() */ uim_cand_win_gtk_set_index(cwin, new_index); }
static void uim_cand_win_gtk_real_set_page(UIMCandWinGtk *cwin, gint page) { guint len, new_page; gint new_index; g_return_if_fail(UIM_IS_CAND_WIN_GTK(cwin)); g_return_if_fail(cwin->stores); len = cwin->stores->len; g_return_if_fail(len); if (page < 0) new_page = len - 1; else if (page >= (gint) len) new_page = 0; else new_page = page; /* XXX: change to call virtual update_view() gtk_tree_view_set_model(GTK_TREE_VIEW(cwin->view), GTK_TREE_MODEL(cwin->stores->pdata[new_page])); */ cwin->page_index = new_page; if (cwin->display_limit) { if (cwin->candidate_index >= 0) new_index = (new_page * cwin->display_limit) + (cwin->candidate_index % cwin->display_limit); else new_index = -1; } else { new_index = cwin->candidate_index; } if (new_index >= (gint) cwin->nr_candidates) new_index = cwin->nr_candidates - 1; uim_cand_win_gtk_set_index(cwin, new_index); }
void uim_cand_win_vertical_gtk_set_page(UIMCandWinVerticalGtk *vertical_cwin, gint page) { guint len, new_page; gint new_index; UIMCandWinGtk *cwin; g_return_if_fail(UIM_IS_CAND_WIN_VERTICAL_GTK(vertical_cwin)); cwin = UIM_CAND_WIN_GTK(vertical_cwin); g_return_if_fail(cwin->stores); len = cwin->stores->len; g_return_if_fail(len); if (page < 0) new_page = len - 1; else if (page >= (gint) len) new_page = 0; else new_page = page; gtk_tree_view_set_model(GTK_TREE_VIEW(cwin->view), GTK_TREE_MODEL(cwin->stores->pdata[new_page])); cwin->page_index = new_page; if (cwin->display_limit) { if (cwin->candidate_index >= 0) new_index = (new_page * cwin->display_limit) + (cwin->candidate_index % cwin->display_limit); else new_index = -1; } else { new_index = cwin->candidate_index; } if (new_index >= (gint) cwin->nr_candidates) new_index = cwin->nr_candidates - 1; uim_cand_win_gtk_set_index(cwin, new_index); }