home *** CD-ROM | disk | FTP | other *** search
/ Il CD di internet / CD.iso / SOURCE / XAP / XFM / XFM-1.3 / XFM-1 / xfm-1.3 / xfm / FmAwCb.c < prev    next >
Encoding:
C/C++ Source or Header  |  1994-05-10  |  3.0 KB  |  120 lines

  1. /*---------------------------------------------------------------------------
  2.   Module FmAwCb
  3.  
  4.   (c) S.Marlow 1990-92
  5.   (c) A.Graef 1994
  6.  
  7.   Callback routines for widgets in the application window
  8. ---------------------------------------------------------------------------*/
  9.  
  10. #include <stdio.h>
  11. #include <memory.h>
  12.  
  13. #include <X11/Intrinsic.h>
  14.  
  15. #include "Am.h"
  16.  
  17. /*---------------------------------------------------------------------------
  18.   PUBLIC FUNCTIONS
  19. ---------------------------------------------------------------------------*/
  20.  
  21. void appInstallCb(Widget w, FileWindowRec *fw, XtPointer call_data)
  22. {
  23.   installNewPopup();
  24. }
  25.  
  26. /*---------------------------------------------------------------------------*/
  27.  
  28. void appEditCb(Widget w, FileWindowRec *fw, XtPointer call_data)
  29. {
  30.   installExistingPopup();
  31. }
  32.  
  33. /*---------------------------------------------------------------------------*/
  34.  
  35. void appMoveCb(Widget w, FileWindowRec *fw, XtPointer call_data)
  36. {
  37.   int i;
  38.   for (i=0; i<aw.n_apps; i++)
  39.     if (aw.apps[i].selected) {
  40.       moveApplication(i);
  41.       break;
  42.     }
  43.   updateApplicationDisplay();
  44. }
  45.  
  46. /*---------------------------------------------------------------------------*/
  47.  
  48. void appCopyCb(Widget w, FileWindowRec *fw, XtPointer call_data)
  49. {
  50.   int i;
  51.   for (i=0; i<aw.n_apps; i++)
  52.     if (aw.apps[i].selected) {
  53.       installApplication(aw.apps[i].name, aw.apps[i].directory,
  54.              aw.apps[i].fname, aw.apps[i].icon,
  55.              aw.apps[i].push_action, aw.apps[i].drop_action);
  56.       break;
  57.     }
  58.   updateApplicationDisplay();
  59. }
  60.  
  61. /*---------------------------------------------------------------------------*/
  62.  
  63. void appRemoveCb(Widget w, FileWindowRec *fw, XtPointer call_data)
  64. {
  65.   char s[0xff];
  66.   int i;
  67.  
  68.   if (resources.confirm_deletes) {
  69.     sprintf(s, "Deleting %d item%s from", aw.n_selections,
  70.         aw.n_selections > 1 ? "s" : "" );
  71.     if (!confirm(s, "the applications window", ""))
  72.       return;
  73.   }
  74.  
  75.   for (i=0; i<aw.n_apps; i++)
  76.     if (aw.apps[i].selected) {
  77.       removeApplication(i);
  78.       i--;
  79.     }
  80.   updateApplicationDisplay();
  81. }
  82.  
  83. /*---------------------------------------------------------------------------*/
  84.  
  85. void appSaveCb(Widget w, FileWindowRec *fw, XtPointer call_data)
  86. {
  87.   writeApplicationData(resources.app_file);
  88. }
  89.  
  90. /*---------------------------------------------------------------------------*/
  91.  
  92. void appLoadCb(Widget w, FileWindowRec *fw, XtPointer call_data)
  93. {
  94.   int i;
  95.  
  96.   for(i=0; i<aw.n_apps; i++)
  97.     freeApplicationResources(&aw.apps[i]);
  98.   XTFREE(aw.apps);
  99.  
  100.   readApplicationData(resources.app_file);
  101.   updateApplicationDisplay();
  102. }
  103.  
  104. /*---------------------------------------------------------------------------*/
  105.  
  106. void appOpenCb(Widget w, FileWindowRec *fw, XtPointer call_data)
  107. {
  108.   newFileWindow(user.home,resources.initial_display_type,False);
  109. }
  110.  
  111. /*---------------------------------------------------------------------------*/
  112.  
  113. void appCloseCb(Widget w, FileWindowRec *fw, XtPointer call_data)
  114. {
  115.   if (resources.confirm_quit && !confirm("", "Exit file manager?", ""))
  116.     return;
  117.  
  118.   quit();
  119. }
  120.