comparison src/view_file_icon.c @ 635:eaca3e910ecd

Move a part of pop up menu common code to view_file.[ch].
author zas_
date Sun, 11 May 2008 23:47:59 +0000
parents 92208e71673b
children 8a1202efa51e
comparison
equal deleted inserted replaced
634:92208e71673b 635:eaca3e910ecd
174 } 174 }
175 175
176 return g_list_append(NULL, file_data_ref(VFICON_INFO(vf, click_id)->fd)); 176 return g_list_append(NULL, file_data_ref(VFICON_INFO(vf, click_id)->fd));
177 } 177 }
178 178
179 static void vficon_pop_menu_edit_cb(GtkWidget *widget, gpointer data)
180 {
181 ViewFile *vf;
182 gint n;
183 GList *list;
184
185 vf = submenu_item_get_data(widget);
186 n = GPOINTER_TO_INT(data);
187
188 if (!vf) return;
189
190 list = vf_pop_menu_file_list(vf);
191 start_editor_from_filelist(n, list);
192 filelist_free(list);
193 }
194
195 static void vficon_pop_menu_info_cb(GtkWidget *widget, gpointer data)
196 {
197 ViewFile *vf = data;
198
199 info_window_new(NULL, vf_pop_menu_file_list(vf), NULL);
200 }
201
202 static void vficon_pop_menu_view_cb(GtkWidget *widget, gpointer data) 179 static void vficon_pop_menu_view_cb(GtkWidget *widget, gpointer data)
203 { 180 {
204 ViewFile *vf = data; 181 ViewFile *vf = data;
205 182
206 if (!VFICON_INFO(vf, click_id)) return; 183 if (!VFICON_INFO(vf, click_id)) return;
217 { 194 {
218 view_window_new(VFICON_INFO(vf, click_id)->fd); 195 view_window_new(VFICON_INFO(vf, click_id)->fd);
219 } 196 }
220 } 197 }
221 198
222 static void vficon_pop_menu_copy_cb(GtkWidget *widget, gpointer data) 199 static void vficon_pop_menu_rename_cb(GtkWidget *widget, gpointer data)
223 { 200 {
224 ViewFile *vf = data; 201 ViewFile *vf = data;
225 202
226 file_util_copy(NULL, vf_pop_menu_file_list(vf), NULL, vf->listview);
227 }
228
229 static void vficon_pop_menu_move_cb(GtkWidget *widget, gpointer data)
230 {
231 ViewFile *vf = data;
232
233 file_util_move(NULL, vf_pop_menu_file_list(vf), NULL, vf->listview);
234 }
235
236 static void vficon_pop_menu_rename_cb(GtkWidget *widget, gpointer data)
237 {
238 ViewFile *vf = data;
239
240 file_util_rename(NULL, vf_pop_menu_file_list(vf), vf->listview); 203 file_util_rename(NULL, vf_pop_menu_file_list(vf), vf->listview);
241 }
242
243 static void vficon_pop_menu_delete_cb(GtkWidget *widget, gpointer data)
244 {
245 ViewFile *vf = data;
246
247 file_util_delete(NULL, vf_pop_menu_file_list(vf), vf->listview);
248 }
249
250 static void vficon_pop_menu_copy_path_cb(GtkWidget *widget, gpointer data)
251 {
252 ViewFile *vf = data;
253
254 file_util_copy_path_list_to_clipboard(vf_pop_menu_file_list(vf));
255 }
256
257 static void vficon_pop_menu_sort_cb(GtkWidget *widget, gpointer data)
258 {
259 ViewFile *vf;
260 SortType type;
261
262 if (!gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(widget))) return;
263
264 vf = submenu_item_get_data(widget);
265 if (!vf) return;
266
267 type = (SortType)GPOINTER_TO_INT(data);
268
269 if (vf->layout)
270 {
271 layout_sort_set(vf->layout, type, vf->sort_ascend);
272 }
273 else
274 {
275 vf_sort_set(vf, type, vf->sort_ascend);
276 }
277 }
278
279 static void vficon_pop_menu_sort_ascend_cb(GtkWidget *widget, gpointer data)
280 {
281 ViewFile *vf = data;
282
283 if (vf->layout)
284 {
285 layout_sort_set(vf->layout, vf->sort_method, !vf->sort_ascend);
286 }
287 else
288 {
289 vf_sort_set(vf, vf->sort_method, !vf->sort_ascend);
290 }
291 }
292
293 static void vficon_pop_menu_list_cb(GtkWidget *widget, gpointer data)
294 {
295 ViewFile *vf = data;
296
297 if (vf->layout) layout_views_set(vf->layout, vf->layout->dir_view_type, FALSE);
298 } 204 }
299 205
300 static void vficon_pop_menu_show_names_cb(GtkWidget *widget, gpointer data) 206 static void vficon_pop_menu_show_names_cb(GtkWidget *widget, gpointer data)
301 { 207 {
302 ViewFile *vf = data; 208 ViewFile *vf = data;
328 menu = popup_menu_short_lived(); 234 menu = popup_menu_short_lived();
329 235
330 g_signal_connect(G_OBJECT(menu), "destroy", 236 g_signal_connect(G_OBJECT(menu), "destroy",
331 G_CALLBACK(vficon_popup_destroy_cb), vf); 237 G_CALLBACK(vficon_popup_destroy_cb), vf);
332 238
333 submenu_add_edit(menu, &item, G_CALLBACK(vficon_pop_menu_edit_cb), vf); 239 submenu_add_edit(menu, &item, G_CALLBACK(vf_pop_menu_edit_cb), vf);
334 gtk_widget_set_sensitive(item, active); 240 gtk_widget_set_sensitive(item, active);
335 241
336 menu_item_add_stock_sensitive(menu, _("_Properties"), GTK_STOCK_PROPERTIES, active, 242 menu_item_add_stock_sensitive(menu, _("_Properties"), GTK_STOCK_PROPERTIES, active,
337 G_CALLBACK(vficon_pop_menu_info_cb), vf); 243 G_CALLBACK(vf_pop_menu_info_cb), vf);
338 244
339 menu_item_add_stock_sensitive(menu, _("View in _new window"), GTK_STOCK_NEW, active, 245 menu_item_add_stock_sensitive(menu, _("View in _new window"), GTK_STOCK_NEW, active,
340 G_CALLBACK(vficon_pop_menu_view_cb), vf); 246 G_CALLBACK(vficon_pop_menu_view_cb), vf);
341 menu_item_add_divider(menu); 247 menu_item_add_divider(menu);
342 248
343 menu_item_add_stock_sensitive(menu, _("_Copy..."), GTK_STOCK_COPY, active, 249 menu_item_add_stock_sensitive(menu, _("_Copy..."), GTK_STOCK_COPY, active,
344 G_CALLBACK(vficon_pop_menu_copy_cb), vf); 250 G_CALLBACK(vf_pop_menu_copy_cb), vf);
345 menu_item_add_sensitive(menu, _("_Move..."), active, 251 menu_item_add_sensitive(menu, _("_Move..."), active,
346 G_CALLBACK(vficon_pop_menu_move_cb), vf); 252 G_CALLBACK(vf_pop_menu_move_cb), vf);
347 menu_item_add_sensitive(menu, _("_Rename..."), active, 253 menu_item_add_sensitive(menu, _("_Rename..."), active,
348 G_CALLBACK(vficon_pop_menu_rename_cb), vf); 254 G_CALLBACK(vficon_pop_menu_rename_cb), vf);
349 menu_item_add_stock_sensitive(menu, _("_Delete..."), GTK_STOCK_DELETE, active, 255 menu_item_add_stock_sensitive(menu, _("_Delete..."), GTK_STOCK_DELETE, active,
350 G_CALLBACK(vficon_pop_menu_delete_cb), vf); 256 G_CALLBACK(vf_pop_menu_delete_cb), vf);
351 if (options->show_copy_path) 257 if (options->show_copy_path)
352 menu_item_add_sensitive(menu, _("_Copy path"), active, 258 menu_item_add_sensitive(menu, _("_Copy path"), active,
353 G_CALLBACK(vficon_pop_menu_copy_path_cb), vf); 259 G_CALLBACK(vf_pop_menu_copy_path_cb), vf);
354 menu_item_add_divider(menu); 260 menu_item_add_divider(menu);
355 261
356 submenu = submenu_add_sort(NULL, G_CALLBACK(vficon_pop_menu_sort_cb), vf, 262 submenu = submenu_add_sort(NULL, G_CALLBACK(vf_pop_menu_sort_cb), vf,
357 FALSE, FALSE, TRUE, vf->sort_method); 263 FALSE, FALSE, TRUE, vf->sort_method);
358 menu_item_add_divider(submenu); 264 menu_item_add_divider(submenu);
359 menu_item_add_check(submenu, _("Ascending"), vf->sort_ascend, 265 menu_item_add_check(submenu, _("Ascending"), vf->sort_ascend,
360 G_CALLBACK(vficon_pop_menu_sort_ascend_cb), vf); 266 G_CALLBACK(vf_pop_menu_sort_ascend_cb), vf);
361 267
362 item = menu_item_add(menu, _("_Sort"), NULL, NULL); 268 item = menu_item_add(menu, _("_Sort"), NULL, NULL);
363 gtk_menu_item_set_submenu(GTK_MENU_ITEM(item), submenu); 269 gtk_menu_item_set_submenu(GTK_MENU_ITEM(item), submenu);
364 270
365 menu_item_add_check(menu, _("View as _icons"), TRUE, 271 menu_item_add_check(menu, _("View as _icons"), TRUE,
366 G_CALLBACK(vficon_pop_menu_list_cb), vf); 272 G_CALLBACK(vf_pop_menu_toggle_view_type_cb), vf);
367 menu_item_add_check(menu, _("Show filename _text"), VFICON_INFO(vf, show_text), 273 menu_item_add_check(menu, _("Show filename _text"), VFICON_INFO(vf, show_text),
368 G_CALLBACK(vficon_pop_menu_show_names_cb), vf); 274 G_CALLBACK(vficon_pop_menu_show_names_cb), vf);
369 menu_item_add_stock(menu, _("Re_fresh"), GTK_STOCK_REFRESH, G_CALLBACK(vficon_pop_menu_refresh_cb), vf); 275 menu_item_add_stock(menu, _("Re_fresh"), GTK_STOCK_REFRESH, G_CALLBACK(vficon_pop_menu_refresh_cb), vf);
370 276
371 return menu; 277 return menu;