215 GtkWidget *vbox, *label, *sw;
216 GtkCellRenderer *rend;
218 shell = gtk_dialog_new_with_buttons(
_(
"Edit worklists"),
231 gtk_window_set_position(GTK_WINDOW(
shell), GTK_WIN_POS_MOUSE);
233 g_signal_connect(
shell,
"response",
235 g_signal_connect(
shell,
"destroy",
238 vbox = gtk_grid_new();
239 gtk_grid_set_row_spacing(GTK_GRID(vbox), 2);
240 gtk_orientable_set_orientation(GTK_ORIENTABLE(vbox),
241 GTK_ORIENTATION_VERTICAL);
242 gtk_container_add(GTK_CONTAINER(gtk_dialog_get_content_area(GTK_DIALOG(
shell))), vbox);
251 gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(
list),
FALSE);
255 rend = gtk_cell_renderer_text_new();
256 g_object_set(rend,
"editable",
TRUE, NULL);
257 g_signal_connect(rend,
"edited",
259 gtk_tree_view_insert_column_with_attributes(GTK_TREE_VIEW(
list), -1, NULL,
260 rend,
"text", 0, NULL);
262 sw = gtk_scrolled_window_new(NULL, NULL);
263 gtk_scrolled_window_set_min_content_height(GTK_SCROLLED_WINDOW(sw), 200);
264 gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(sw),
265 GTK_SHADOW_ETCHED_IN);
266 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw),
267 GTK_POLICY_NEVER, GTK_POLICY_ALWAYS);
268 gtk_container_add(GTK_CONTAINER(sw),
list);
270 label = g_object_new(GTK_TYPE_LABEL,
271 "use-underline",
TRUE,
272 "mnemonic-widget",
list,
273 "label",
_(
"_Worklists:"),
274 "xalign", 0.0,
"yalign", 0.5, NULL);
276 gtk_container_add(GTK_CONTAINER(vbox), label);
277 gtk_container_add(GTK_CONTAINER(vbox), sw);
278 gtk_widget_show_all(vbox);
1054 GtkWidget *
editor, *table, *sw, *bbox;
1055 GtkWidget *src_view, *dst_view, *label, *button;
1056 GtkWidget *menubar, *
item, *menu;
1057 GtkWidget *table2, *arrow, *check;
1058 GtkSizeGroup *group;
1059 GtkListStore *src_store, *dst_store;
1064 src_store = gtk_list_store_new(2, G_TYPE_INT, G_TYPE_STRING);
1065 dst_store = gtk_list_store_new(2, G_TYPE_INT, G_TYPE_STRING);
1069 ptr->
src = src_store;
1070 ptr->
dst = dst_store;
1075 gtk_grid_set_row_spacing(GTK_GRID(
editor), 6);
1076 gtk_orientable_set_orientation(GTK_ORIENTABLE(
editor),
1077 GTK_ORIENTATION_VERTICAL);
1079 g_object_set_data(G_OBJECT(
editor),
"data", ptr);
1084 table = gtk_grid_new();
1085 gtk_container_add(GTK_CONTAINER(
editor), table);
1087 group = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL);
1089 sw = gtk_scrolled_window_new(NULL, NULL);
1090 gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(sw),
1091 GTK_SHADOW_ETCHED_IN);
1092 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw),
1093 GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC);
1094 gtk_grid_attach(GTK_GRID(table), sw, 3, 1, 2, 1);
1096 src_view = gtk_tree_view_new_with_model(GTK_TREE_MODEL(src_store));
1099 g_object_unref(src_store);
1101 gtk_widget_set_name(
src_view,
"small_font");
1102 gtk_tree_view_set_tooltip_column(GTK_TREE_VIEW(
src_view), 1);
1105 gtk_container_add(GTK_CONTAINER(sw),
src_view);
1107 label = g_object_new(GTK_TYPE_LABEL,
1108 "use-underline",
TRUE,
1110 "label",
_(
"Source _Tasks:"),
1111 "xalign", 0.0,
"yalign", 0.5, NULL);
1112 gtk_grid_attach(GTK_GRID(table), label, 3, 0, 1, 1);
1114 check = gtk_check_button_new_with_mnemonic(
_(
"Show _Future Targets"));
1115 gtk_grid_attach(GTK_GRID(table), check, 4, 0, 1, 1);
1118 table2 = gtk_grid_new();
1119 gtk_grid_attach(GTK_GRID(table), table2, 2, 1, 1, 1);
1121 button = gtk_button_new();
1122 gtk_widget_set_margin_top(button, 24);
1123 gtk_widget_set_margin_bottom(button, 24);
1125 gtk_button_set_relief(GTK_BUTTON(button), GTK_RELIEF_NONE);
1126 gtk_grid_attach(GTK_GRID(table2), button, 0, 0, 1, 1);
1128 arrow = gtk_image_new_from_icon_name(
"pan-start-symbolic", GTK_ICON_SIZE_MENU);
1129 gtk_container_add(GTK_CONTAINER(button), arrow);
1130 g_signal_connect_swapped(button,
"clicked",
1134 button = gtk_button_new();
1136 gtk_button_set_relief(GTK_BUTTON(button), GTK_RELIEF_NONE);
1137 gtk_grid_attach(GTK_GRID(table2), button, 0, 1, 1, 1);
1139 arrow = gtk_image_new_from_icon_name(
"pan-up-symbolic", GTK_ICON_SIZE_MENU);
1140 gtk_container_add(GTK_CONTAINER(button), arrow);
1141 g_signal_connect_swapped(button,
"clicked",
1145 button = gtk_button_new();
1147 gtk_button_set_relief(GTK_BUTTON(button), GTK_RELIEF_NONE);
1148 gtk_grid_attach(GTK_GRID(table2), button, 0, 2, 1, 1);
1150 arrow = gtk_image_new_from_icon_name(
"pan-down-symbolic", GTK_ICON_SIZE_MENU);
1151 gtk_container_add(GTK_CONTAINER(button), arrow);
1152 g_signal_connect_swapped(button,
"clicked",
1156 button = gtk_button_new();
1157 gtk_widget_set_margin_top(button, 24);
1158 gtk_widget_set_margin_bottom(button, 24);
1160 gtk_button_set_relief(GTK_BUTTON(button), GTK_RELIEF_NONE);
1161 gtk_grid_attach(GTK_GRID(table2), button, 0, 3, 1, 1);
1163 arrow = gtk_image_new_from_icon_name(
"pan-start-symbolic", GTK_ICON_SIZE_MENU);
1164 gtk_container_add(GTK_CONTAINER(button), arrow);
1165 g_signal_connect_swapped(button,
"clicked",
1169 button = gtk_button_new();
1170 gtk_widget_set_margin_top(button, 24);
1171 gtk_widget_set_margin_bottom(button, 24);
1173 gtk_button_set_relief(GTK_BUTTON(button), GTK_RELIEF_NONE);
1174 gtk_grid_attach(GTK_GRID(table2), button, 0, 4, 1, 1);
1176 arrow = gtk_image_new_from_icon_name(
"pan-end-symbolic", GTK_ICON_SIZE_MENU);
1177 gtk_container_add(GTK_CONTAINER(button), arrow);
1178 g_signal_connect_swapped(button,
"clicked",
1182 sw = gtk_scrolled_window_new(NULL, NULL);
1183 gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(sw),
1184 GTK_SHADOW_ETCHED_IN);
1185 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw),
1186 GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC);
1187 gtk_grid_attach(GTK_GRID(table), sw, 0, 1, 2, 1);
1189 dst_view = gtk_tree_view_new_with_model(GTK_TREE_MODEL(dst_store));
1192 g_object_unref(dst_store);
1194 gtk_widget_set_name(
dst_view,
"small_font");
1195 gtk_tree_view_set_tooltip_column(GTK_TREE_VIEW(
dst_view), 1);
1198 gtk_container_add(GTK_CONTAINER(sw),
dst_view);
1200 label = g_object_new(GTK_TYPE_LABEL,
1201 "use-underline",
TRUE,
1203 "label",
_(
"Target _Worklist:"),
1204 "xalign", 0.0,
"yalign", 0.5, NULL);
1205 gtk_grid_attach(GTK_GRID(table), label, 0, 0, 1, 1);
1208 bbox = gtk_button_box_new(GTK_ORIENTATION_HORIZONTAL);
1209 gtk_button_box_set_layout(GTK_BUTTON_BOX(bbox), GTK_BUTTONBOX_END);
1210 gtk_box_set_spacing(GTK_BOX(bbox), 10);
1211 gtk_container_add(GTK_CONTAINER(
editor), bbox);
1214 gtk_container_add(GTK_CONTAINER(bbox), menubar);
1215 gtk_button_box_set_child_secondary(GTK_BUTTON_BOX(bbox), menubar,
TRUE);
1217 menu = gtk_menu_new();
1219 item = gtk_menu_item_new_with_mnemonic(
_(
"_Add Global Worklist"));
1220 gtk_menu_item_set_submenu(GTK_MENU_ITEM(
item),
menu);
1221 gtk_menu_shell_append(GTK_MENU_SHELL(menubar),
item);
1222 g_signal_connect(
menu,
"show",
1228 gtk_container_add(GTK_CONTAINER(bbox), button);
1229 g_signal_connect(button,
"clicked",
1234 button = gtk_button_new_with_mnemonic(
_(
"Change Prod_uction"));
1235 gtk_container_add(GTK_CONTAINER(bbox), button);
1236 g_signal_connect(button,
"clicked",
1245 gtk_tree_selection_set_mode(ptr->
dst_selection, GTK_SELECTION_MULTIPLE);
1248 gtk_tree_view_set_reorderable(GTK_TREE_VIEW(
dst_view),
TRUE);
1249 g_signal_connect(
dst_view,
"drag_end",
1252 g_signal_connect(
src_view,
"row_activated",
1254 g_signal_connect(
src_view,
"key_press_event",
1257 g_signal_connect(
dst_view,
"row_activated",
1259 g_signal_connect(
dst_view,
"key_press_event",
1268 gtk_widget_show_all(table);
1269 gtk_widget_show_all(bbox);
1330 int i, targets_used;
1336 GtkTreeModel *model;
1339 ptr = g_object_get_data(G_OBJECT(
editor),
"data");
1342 if (gtk_tree_selection_get_selected(ptr->
src_selection, NULL, &it)) {
1343 gtk_tree_model_get(GTK_TREE_MODEL(ptr->
src), &it, 0, &
id, -1);
1358 model = GTK_TREE_MODEL(ptr->
src);
1359 exists = gtk_tree_model_get_iter_first(model, &it);
1362 for (i = 0; i < targets_used; i++) {
1366 gtk_list_store_append(ptr->
src, &it);
1371 buf,
sizeof(buf)), -1);
1374 path = gtk_tree_model_get_path(GTK_TREE_MODEL(ptr->
src), &it);
1378 exists = gtk_tree_model_iter_next(model, &it);
1384 GtkTreeIter it_next;
1389 more = gtk_tree_model_iter_next(model, &it_next);
1391 gtk_list_store_remove(ptr->
src, &it);
1398 gtk_tree_view_set_cursor(GTK_TREE_VIEW(ptr->
src_view), path, NULL,
FALSE);
1399 gtk_tree_path_free(path);
1403 model = GTK_TREE_MODEL(ptr->
dst);
1404 exists = gtk_tree_model_get_iter_first(model, &it);
1407 if (ptr->
pcity != NULL) {
1424 gtk_list_store_append(ptr->
dst, &it);
1427 gtk_list_store_set(ptr->
dst, &it, 0, (gint)
cid_encode(target),
1429 buf,
sizeof(buf)), -1);
1432 exists = gtk_tree_model_iter_next(model, &it);
1437 GtkTreeIter it_next;
1442 more = gtk_tree_model_iter_next(model, &it_next);
1444 gtk_list_store_remove(ptr->
dst, &it);