392
392
CD_APPLET_ON_BUILD_MENU_BEGIN
393
393
GtkWidget *pModuleSubMenu = CD_APPLET_CREATE_MY_SUB_MENU ();
395
CD_APPLET_ADD_IN_MENU (D_("Send the clipboard's content"), _send_clipboard, CD_APPLET_MY_MENU);
395
CD_APPLET_ADD_IN_MENU_WITH_STOCK (D_("Send the clipboard's content"), GTK_STOCK_PASTE, _send_clipboard, CD_APPLET_MY_MENU);
397
GtkWidget *pHistoryMenu = gtk_menu_new ();
398
GtkWidget *mi = gtk_image_menu_item_new_with_label (D_("History"));
400
GtkWidget *im = gtk_image_new_from_stock (GTK_STOCK_INDEX, GTK_ICON_SIZE_MENU);
401
gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (mi), im);
403
gtk_menu_shell_append (GTK_MENU_SHELL (CD_APPLET_MY_MENU), mi);
404
gtk_menu_item_set_submenu (GTK_MENU_ITEM (mi), pHistoryMenu);
406
//GtkWidget *pHistoryMenu = CD_APPLET_ADD_SUB_MENU_WITH_IMAGE (D_("History"), CD_APPLET_MY_MENU, GTK_STOCK_INDEX);
397
407
if (myData.pUpoadedItems != NULL)
398
CD_APPLET_ADD_IN_MENU_WITH_STOCK (D_("Clear History"), GTK_STOCK_CLEAR, _clear_history, CD_APPLET_MY_MENU);
400
CDSiteBackend *pBackend;
401
CDUploadedItem *pItem;
402
GtkWidget *pItemSubMenu;
404
gchar *cName = NULL, *cURI = NULL, *cIconName = NULL;
405
gboolean bIsDirectory;
410
for (it = myData.pUpoadedItems; it != NULL; it = it->next)
414
// on cherche une miniature a mettre dans le menu.
415
gchar *cPreview = NULL;
416
if (pItem->iFileType == CD_TYPE_IMAGE)
418
cPreview = g_strdup_printf ("%s/%s", myData.cWorkingDirPath, pItem->cItemName);
419
if (! g_file_test (cPreview, G_FILE_TEST_EXISTS))
422
cPreview = cairo_dock_search_icon_s_path ("image-x-generic");;
425
else if (pItem->iFileType == CD_TYPE_TEXT)
427
cPreview = cairo_dock_search_icon_s_path ("text-x-generic");
429
else if (pItem->iFileType == CD_TYPE_VIDEO)
431
cPreview = cairo_dock_search_icon_s_path ("video-x-generic");
433
if (cPreview == NULL)
435
cairo_dock_fm_get_file_info (pItem->cLocalPath, &cName, &cURI, &cPreview, &bIsDirectory, &iVolumeID, &fOrder, 0);
442
// on cree un sous-menu pour ce fichier.
443
str = strchr (pItem->cFileName, '\n');
446
pItemSubMenu = CD_APPLET_ADD_SUB_MENU_WITH_IMAGE (pItem->cFileName, pModuleSubMenu, cPreview);
451
// on le peuple avec les liens.
452
pBackend = &myData.backends[pItem->iFileType][pItem->iSiteID];
453
for (i = 0; i < pBackend->iNbUrls; i ++)
455
//g_print ("%d) %s : ", i, pBackend->cUrlLabels[i]);
456
//g_print (" + %s\n", pItem->cDistantUrls[i]);
457
if (pItem->cDistantUrls[i] != NULL) // peut etre null (par exemple la tiny url).
458
CD_APPLET_ADD_IN_MENU_WITH_DATA (pBackend->cUrlLabels[i], _copy_url_into_clipboard, pItemSubMenu, pItem->cDistantUrls[i]);
460
if (pItem->iFileType != CD_TYPE_TEXT)
461
CD_APPLET_ADD_IN_MENU_WITH_DATA (D_("Open file"), _show_local_file, pItemSubMenu, pItem);
463
CD_APPLET_ADD_IN_MENU_WITH_DATA (D_("Get text"), _show_local_file, pItemSubMenu, pItem);
465
CD_APPLET_ADD_IN_MENU_WITH_STOCK_AND_DATA (D_("Remove from history"), GTK_STOCK_REMOVE, _remove_from_history, pItemSubMenu, pItem);
409
CDSiteBackend *pBackend;
410
CDUploadedItem *pItem;
411
GtkWidget *pItemSubMenu;
413
gchar *cName = NULL, *cURI = NULL, *cIconName = NULL;
414
gboolean bIsDirectory;
419
for (it = myData.pUpoadedItems; it != NULL; it = it->next)
423
// on cherche une miniature a mettre dans le menu.
424
gchar *cPreview = NULL;
425
if (pItem->iFileType == CD_TYPE_IMAGE)
427
cPreview = g_strdup_printf ("%s/%s", myData.cWorkingDirPath, pItem->cItemName);
428
if (! g_file_test (cPreview, G_FILE_TEST_EXISTS))
431
cPreview = cairo_dock_search_icon_s_path ("image-x-generic");;
434
else if (pItem->iFileType == CD_TYPE_TEXT)
436
cPreview = cairo_dock_search_icon_s_path ("text-x-generic");
438
else if (pItem->iFileType == CD_TYPE_VIDEO)
440
cPreview = cairo_dock_search_icon_s_path ("video-x-generic");
442
if (cPreview == NULL)
444
cairo_dock_fm_get_file_info (pItem->cLocalPath, &cName, &cURI, &cPreview, &bIsDirectory, &iVolumeID, &fOrder, 0);
451
// on cree un sous-menu pour ce fichier.
452
str = strchr (pItem->cFileName, '\n');
455
pItemSubMenu = CD_APPLET_ADD_SUB_MENU_WITH_IMAGE (pItem->cFileName, pHistoryMenu, cPreview);
460
// on le peuple avec les liens.
461
pBackend = &myData.backends[pItem->iFileType][pItem->iSiteID];
462
for (i = 0; i < pBackend->iNbUrls; i ++)
464
//g_print ("%d) %s : ", i, pBackend->cUrlLabels[i]);
465
//g_print (" + %s\n", pItem->cDistantUrls[i]);
466
if (pItem->cDistantUrls[i] != NULL) // peut etre null (par exemple la tiny url).
467
CD_APPLET_ADD_IN_MENU_WITH_DATA (pBackend->cUrlLabels[i], _copy_url_into_clipboard, pItemSubMenu, pItem->cDistantUrls[i]);
469
if (pItem->iFileType != CD_TYPE_TEXT)
470
CD_APPLET_ADD_IN_MENU_WITH_DATA (D_("Open file"), _show_local_file, pItemSubMenu, pItem);
472
CD_APPLET_ADD_IN_MENU_WITH_DATA (D_("Get text"), _show_local_file, pItemSubMenu, pItem);
474
CD_APPLET_ADD_IN_MENU_WITH_STOCK_AND_DATA (D_("Remove from history"), GTK_STOCK_REMOVE, _remove_from_history, pItemSubMenu, pItem);
477
CD_APPLET_ADD_IN_MENU_WITH_STOCK (D_("Clear History"), GTK_STOCK_CLEAR, _clear_history, pHistoryMenu);
480
gtk_widget_set_sensitive (GTK_WIDGET (mi), FALSE);
468
CD_APPLET_ADD_ABOUT_IN_MENU (CD_APPLET_MY_MENU);
482
CD_APPLET_ADD_ABOUT_IN_MENU (pModuleSubMenu);
469
483
CD_APPLET_ON_BUILD_MENU_END