Subversion Repositories Kolibri OS

Rev

Rev 7806 | Rev 8947 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

  1.  
  2. #define WIN_DIALOG_W 380
  3. #define WIN_DIALOG_H 100
  4. #define PR_LEFT 14
  5. #define PR_TOP  32
  6. #define PR_W  WIN_DIALOG_W-PR_LEFT-PR_LEFT
  7. #define PR_H  18
  8.  
  9. proc_info Dialog_Form;
  10. progress_bar copy_bar = {0,PR_LEFT,PR_TOP,PR_W,PR_H,0,0,1,0xFFFFFF,0x00FF00,0x555555};
  11.  
  12. enum {
  13.         REDRAW_FLAG,
  14.         COPY_FLAG,
  15.         MOVE_FLAG,
  16.         DELETE_FLAG,
  17.         OPERATION_END
  18. };
  19.  
  20. void DisplayOperationForm(int operation_flag)
  21. {
  22.         dword title;
  23.         if (operation_flag==COPY_FLAG) {
  24.                 title = T_COPY_WINDOW_TITLE;
  25.                 copy_bar.progress_color = 0x00FF00;
  26.                 copy_bar.value = 0;
  27.                 copy_bar.max = 0;
  28.         }
  29.         else if (operation_flag==MOVE_FLAG) {
  30.                 title = T_MOVE_WINDOW_TITLE;
  31.                 copy_bar.progress_color = 0x00FF00;
  32.                 copy_bar.value = 0;
  33.                 copy_bar.max = 0;
  34.         }
  35.         else if (operation_flag==DELETE_FLAG) {
  36.                 title = T_DELETE_WINDOW_TITLE;
  37.                 copy_bar.progress_color = 0xF17A65;
  38.                 copy_bar.value = 0;
  39.                 copy_bar.max = 0;
  40.         }
  41.         copy_bar.frame_color = sc.work_graph;
  42.         switch(CheckEvent())
  43.         {
  44.                  case evButton:
  45.                         notify(T_CANCEL_PASTE);
  46.                         DialogExit();
  47.                         break;
  48.                        
  49.                 case evReDraw:
  50.                         DefineAndDrawWindow(Form.left+Form.width-200, Form.top+90, WIN_DIALOG_W+9,
  51.                                 skin_height+WIN_DIALOG_H, 0x34, sc.work, title, 0);
  52.                         GetProcessInfo(#Dialog_Form, SelfInfo);
  53.                         DrawCaptButton(WIN_DIALOG_W-PR_LEFT-101, PR_TOP+PR_H+6, 100,26, 2,
  54.                                 sc.button, sc.button_text, T_ABORT_WINDOW_BUTTON);
  55.  
  56.                         DrawRectangle3D(PR_LEFT-1, PR_TOP-1, PR_W+1, PR_H+1, sc.work_dark, sc.work_light);
  57.         }
  58. }
  59.  
  60. void DialogExit() {
  61.         action_buf = OPERATION_END;
  62.         ActivateWindow(GetProcessSlot(Form.ID));
  63.         ExitProcess();
  64. }
  65.  
  66. void Operation_Draw_Progress(dword filename) {
  67.         if (Dialog_Form.cwidth==0)
  68.         {
  69.                 copy_bar.value++;
  70.                 return;
  71.         }
  72.         DisplayOperationForm(REDRAW_FLAG);
  73.         DrawBar(PR_LEFT, PR_TOP-20, WIN_DIALOG_W-PR_LEFT, 15, sc.work);
  74.         WriteText(PR_LEFT, PR_TOP-20, 0x90, sc.work_text, filename);
  75.  
  76.         progressbar_draw stdcall (#copy_bar);
  77.         progressbar_progress stdcall (#copy_bar);
  78.  
  79.         WriteTextWithBg(PR_LEFT, PR_TOP+PR_H+5, 0xD0, sc.work_text,
  80.                 sprintf(#param, "%i/%i", copy_bar.value, copy_bar.max), sc.work);
  81. }