Enlightenment CVS committal

Author  : doursse
Project : e17
Module  : proto

Dir     : e17/proto/exorcist/src/bin


Modified Files:
        etk_main_window.c ewl_main_window.c 


Log Message:
save to postscript file

===================================================================
RCS file: /cvs/e/e17/proto/exorcist/src/bin/etk_main_window.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -3 -r1.3 -r1.4
--- etk_main_window.c   17 Apr 2006 18:09:09 -0000      1.3
+++ etk_main_window.c   25 Apr 2006 07:07:07 -0000      1.4
@@ -26,14 +26,25 @@
   Etk_Widget *search_circular;
 };
 
-static void     _exo_etk_quit_cb                   (Etk_Object *object, void 
*data);
+typedef struct _Exo_Ps_Data Exo_Ps_Data;
+struct _Exo_Ps_Data {
+  Epdf_Document *pdf_doc;
+  Etk_Widget    *filename;
+  Etk_Widget    *first_page;
+  Etk_Widget    *last_page;
+  Etk_Widget    *width;
+  Etk_Widget    *height;
+  Etk_Widget    *duplex;
+};
+
+static void     _exo_etk_quit_cb                   (Etk_Object *object, void 
*user_data);
 static Etk_Bool _exo_etk_delete_cb                 (Etk_Object *object, void 
*user_data);
 static void     _exo_etk_menu_popup_cb             (Etk_Object *object, void 
*event_info, void *data);
 static void     _change_page_cb                    (Etk_Object *object, 
Etk_Tree_Row *row, void *data);
 static void     _exo_etk_row_data_free_cb          (Etk_Object *object);
-static void     _exo_etk_info_cb                   (Etk_Object *object, void 
*user_data);
-static Etk_Bool _exo_etk_info_delete_cb            (Etk_Object *object, void 
*user_data);
-static void     _exo_etk_info_response_cb          (Etk_Object *object, int 
res, void *user_data);
+static void     _exo_etk_document_info_cb          (Etk_Object *object, void 
*user_data);
+static Etk_Bool _exo_etk_document_info_delete_cb   (Etk_Object *object, void 
*user_data);
+static void     _exo_etk_document_info_response_cb (Etk_Object *object, int 
res, void *user_data);
 static void     _exo_etk_search_cb                 (Etk_Object *object, void 
*user_data);
 static Etk_Bool _exo_etk_search_delete_cb          (Etk_Object *object, void 
*user_data);
 static void     _exo_etk_search_response_cb        (Etk_Object *object, int 
res, void *user_data);
@@ -48,6 +59,11 @@
 static void     _exo_etk_size_100_cb               (Etk_Object *object, void 
*user_data);
 static void     _exo_etk_size_50_cb                (Etk_Object *object, void 
*user_data);
 
+static void     _exo_etk_document_open_cb          (Etk_Object *object, void 
*user_data);
+static void     _exo_etk_document_save_cb          (Etk_Object *object, void 
*user_data);
+static void     _exo_etk_document_save_response_cb (Etk_Object *object, int 
res, void *user_data);
+static Etk_Bool _exo_etk_document_save_delete_cb   (Etk_Object *object, void 
*user_data);
+
 
 static void
 _exo_etk_tree_fill (Etk_Pdf *pdf, Etk_Tree *tree, Etk_Tree_Col *col, 
Etk_Tree_Row *row, Ecore_List *items)
@@ -237,8 +253,19 @@
     etk_menu_item_image_set (ETK_MENU_ITEM_IMAGE (menu_item), ETK_IMAGE 
(image));
   }
   etk_menu_shell_append (ETK_MENU_SHELL (menu), ETK_MENU_ITEM (menu_item));
-/*   etk_signal_connect("selected", ETK_OBJECT(menu_item), */
-/*                      ETK_CALLBACK(_exo_etk_document_open_cb), data); */
+  etk_signal_connect("activated", ETK_OBJECT(menu_item),
+                     ETK_CALLBACK(_exo_etk_document_open_cb), data);
+
+  menu_item = etk_menu_item_image_new_with_label ("Save");
+  {
+    Etk_Widget *image;
+
+    image = etk_image_new_from_stock (ETK_STOCK_DOCUMENT_SAVE, 
ETK_STOCK_SMALL);
+    etk_menu_item_image_set (ETK_MENU_ITEM_IMAGE (menu_item), ETK_IMAGE 
(image));
+  }
+  etk_menu_shell_append (ETK_MENU_SHELL (menu), ETK_MENU_ITEM (menu_item));
+  etk_signal_connect("activated", ETK_OBJECT(menu_item),
+                     ETK_CALLBACK(_exo_etk_document_save_cb), data);
 
   menu_item = etk_menu_item_image_new_with_label ("Info");
   {
@@ -249,7 +276,7 @@
   }
   etk_menu_shell_append (ETK_MENU_SHELL (menu), ETK_MENU_ITEM (menu_item));
   etk_signal_connect("activated", ETK_OBJECT(menu_item),
-                     ETK_CALLBACK(_exo_etk_info_cb), data);
+                     ETK_CALLBACK(_exo_etk_document_info_cb), data);
 
   menu_item = etk_menu_item_separator_new();
   etk_menu_shell_append (ETK_MENU_SHELL (menu), ETK_MENU_ITEM (menu_item));
@@ -426,7 +453,7 @@
 }
 
 static void
-_exo_etk_info_cb (Etk_Object *object __UNUSED__, void *user_data)
+_exo_etk_document_info_cb (Etk_Object *object __UNUSED__, void *user_data)
 {
   Exo_Etk        *data;
   Etk_Widget     *dialog_info;
@@ -450,12 +477,12 @@
   etk_window_title_set (ETK_WINDOW (dialog_info), "Exorcist - Info");
   etk_window_wmclass_set (ETK_WINDOW (dialog_info), "Exorcist - Info", 
"Exorcist - Info");
   etk_signal_connect ("delete_event", ETK_OBJECT (dialog_info),
-                      ETK_CALLBACK (_exo_etk_info_delete_cb), NULL);
+                      ETK_CALLBACK (_exo_etk_document_info_delete_cb), NULL);
 
   etk_dialog_button_add (ETK_DIALOG (dialog_info),
                          etk_stock_label_get (ETK_STOCK_DIALOG_OK), 
ETK_RESPONSE_OK);
   etk_signal_connect ("response", ETK_OBJECT (dialog_info),
-                      ETK_CALLBACK (_exo_etk_info_response_cb), NULL);
+                      ETK_CALLBACK (_exo_etk_document_info_response_cb), NULL);
 
   table = etk_table_new (2, 2, ETK_FALSE);
   etk_dialog_pack_in_main_area (ETK_DIALOG (dialog_info), table, ETK_TRUE, 
ETK_TRUE, 0, ETK_FALSE);
@@ -714,7 +741,7 @@
 }
 
 static Etk_Bool
-_exo_etk_info_delete_cb (Etk_Object *object, void *user_data __UNUSED__)
+_exo_etk_document_info_delete_cb (Etk_Object *object, void *user_data 
__UNUSED__)
 {
   etk_object_destroy (object);
 
@@ -722,7 +749,7 @@
 }
 
 static void
-_exo_etk_info_response_cb (Etk_Object *object, int res, void *user_data 
__UNUSED__)
+_exo_etk_document_info_response_cb (Etk_Object *object, int res, void 
*user_data __UNUSED__)
 {
   switch (res) {
   case ETK_RESPONSE_OK:
@@ -915,4 +942,168 @@
   if (etk_menu_item_check_active_get (ETK_MENU_ITEM_CHECK (object))) {
     etk_pdf_scale_set (pdf, 0.5, 0.5);
   }
+}
+
+static void
+_exo_etk_document_open_cb (Etk_Object *object __UNUSED__, void *user_data)
+{
+  Etk_Pdf         *pdf;
+
+  pdf =  ETK_PDF (((Exo_Etk *)user_data)->pdf);
+}
+
+static void
+_exo_etk_document_save_cb (Etk_Object *object __UNUSED__, void *user_data)
+{
+  char         buf[128];
+  Exo_Etk     *data;
+  Etk_Pdf     *pdf;
+  Etk_Widget  *dialog_save;
+  Etk_Widget  *table;
+  Etk_Widget  *label;
+  char        *tmp;
+  char        *filename;
+  char        *psfilename;
+  int          l;
+  int          page_count;
+  Exo_Ps_Data *ps_data;
+
+  data = (Exo_Etk *)user_data;
+  pdf =  ETK_PDF (data->pdf);
+  filename = epdf_document_filename_get (pdf->pdf_document);
+  l = strlen (filename);
+  tmp = strstr (filename, ".pdf");
+  if (!tmp) {
+    psfilename = (char *)malloc (sizeof (char) * (l + 4));
+    memcpy (psfilename, filename, l);
+    psfilename[l + 0] = '.';
+    psfilename[l + 1] = 'p';
+    psfilename[l + 2] = 's';
+    psfilename[l + 3] = '\0';
+  }
+  else {
+    psfilename = (char *)malloc (sizeof (char) * l);
+    memcpy (psfilename, filename, l);
+    psfilename[l - 2] = 's';
+    psfilename[l - 1] = '\0';
+  }
+  page_count = epdf_document_page_count_get (pdf->pdf_document);
+
+  ps_data = (Exo_Ps_Data *)malloc (sizeof (Exo_Ps_Data));
+  ps_data->pdf_doc = pdf->pdf_document;
+
+  dialog_save = etk_dialog_new ();
+  etk_window_title_set (ETK_WINDOW (dialog_save), "Exorcist - Save");
+  etk_window_wmclass_set (ETK_WINDOW (dialog_save), "Exorcist - Save", 
"Exorcist - Save");
+  etk_signal_connect ("delete_event", ETK_OBJECT (dialog_save),
+                      ETK_CALLBACK (_exo_etk_document_save_delete_cb), NULL);
+
+  etk_dialog_button_add (ETK_DIALOG (dialog_save),
+                         etk_stock_label_get (ETK_STOCK_DIALOG_OK), 
ETK_RESPONSE_OK);
+
+  etk_dialog_button_add (ETK_DIALOG (dialog_save),
+                         etk_stock_label_get (ETK_STOCK_DIALOG_CANCEL), 
ETK_RESPONSE_CANCEL);
+  etk_signal_connect ("response", ETK_OBJECT (dialog_save),
+                      ETK_CALLBACK (_exo_etk_document_save_response_cb), 
ps_data);
+
+  table = etk_table_new (2, 6, ETK_FALSE);
+  etk_dialog_pack_in_main_area (ETK_DIALOG (dialog_save), table, ETK_TRUE, 
ETK_TRUE, 0, ETK_FALSE);
+  etk_widget_show (table);
+
+  label = etk_label_new ("File name");
+  etk_table_attach_defaults (ETK_TABLE (table), label, 0, 0, 0, 0);
+  etk_widget_show (label);
+
+  ps_data->filename = etk_entry_new ();
+  etk_entry_text_set (ETK_ENTRY (ps_data->filename), psfilename);
+  etk_table_attach_defaults (ETK_TABLE (table), ps_data->filename, 1, 1, 0, 0);
+  etk_widget_show (ps_data->filename);
+
+  label = etk_label_new ("First page");
+  etk_table_attach_defaults (ETK_TABLE (table), label, 0, 0, 1, 1);
+  etk_widget_show (label);
+
+  ps_data->first_page = etk_entry_new ();
+  etk_entry_text_set (ETK_ENTRY (ps_data->first_page), "1");
+  etk_table_attach_defaults (ETK_TABLE (table), ps_data->first_page, 1, 1, 1, 
1);
+  etk_widget_show (ps_data->first_page);
+
+  label = etk_label_new ("Last page");
+  etk_table_attach_defaults (ETK_TABLE (table), label, 0, 0, 2, 2);
+  etk_widget_show (label);
+
+  snprintf (buf, 128, "%d", page_count);
+  ps_data->last_page = etk_entry_new ();
+  etk_entry_text_set (ETK_ENTRY (ps_data->last_page), buf);
+  etk_table_attach_defaults (ETK_TABLE (table), ps_data->last_page, 1, 1, 2, 
2);
+  etk_widget_show (ps_data->last_page);
+
+  label = etk_label_new ("Width");
+  etk_table_attach_defaults (ETK_TABLE (table), label, 0, 0, 3, 3);
+  etk_widget_show (label);
+
+  ps_data->width = etk_entry_new ();
+  etk_entry_text_set (ETK_ENTRY (ps_data->width), "-1");
+  etk_table_attach_defaults (ETK_TABLE (table), ps_data->width, 1, 1, 3, 3);
+  etk_widget_show (ps_data->width);
+
+  label = etk_label_new ("Height");
+  etk_table_attach_defaults (ETK_TABLE (table), label, 0, 0, 4, 4);
+  etk_widget_show (label);
+
+  ps_data->height = etk_entry_new ();
+  etk_entry_text_set (ETK_ENTRY (ps_data->height), "-1");
+  etk_table_attach_defaults (ETK_TABLE (table), ps_data->height, 1, 1, 4, 4);
+  etk_widget_show (ps_data->height);
+
+  ps_data->duplex = etk_check_button_new_with_label ("Duplex");
+  etk_toggle_button_active_set (ETK_TOGGLE_BUTTON (ps_data->duplex), ETK_TRUE);
+  etk_table_attach_defaults (ETK_TABLE (table), ps_data->duplex, 0, 1, 5, 5);
+  etk_widget_show (ps_data->duplex);
+
+  etk_widget_show (dialog_save);
+
+  free (psfilename);
+}
+
+static Etk_Bool
+_exo_etk_document_save_delete_cb (Etk_Object *object, void *user_data 
__UNUSED__)
+{
+  etk_object_destroy (object);
+
+  return ETK_TRUE;
+}
+
+static void
+_exo_etk_document_save_response_cb (Etk_Object *object, int res, void 
*user_data)
+{
+switch (res) {
+  case ETK_RESPONSE_OK: {
+    Epdf_Postscript *eps;
+    Exo_Ps_Data     *ps_data = (Exo_Ps_Data *)user_data;
+    const char      *filename;
+    int              page_first;
+    int              page_last;
+    int              width;
+    int              height;
+    int              duplex;
+
+    filename = etk_entry_text_get (ETK_ENTRY (ps_data->filename));
+    page_first = atoi (etk_entry_text_get (ETK_ENTRY (ps_data->first_page)));
+    page_last = atoi (etk_entry_text_get (ETK_ENTRY (ps_data->last_page)));
+    width = atoi (etk_entry_text_get (ETK_ENTRY (ps_data->width)));
+    height = atoi (etk_entry_text_get (ETK_ENTRY (ps_data->height)));
+    duplex = etk_toggle_button_active_get (ETK_TOGGLE_BUTTON 
(ps_data->duplex));
+    eps = epdf_postscript_new (ps_data->pdf_doc, filename, page_first, 
page_last);
+    epdf_postscript_size_set (eps, width, height);
+    epdf_postscript_duplex_set (eps, duplex);
+    if (!eps) break;
+    epdf_postscript_print (eps);
+    epdf_postscript_delete (eps);
+    break;
+  }
+  case ETK_RESPONSE_CANCEL:
+    break;
+  }
+  etk_object_destroy (object);
 }
===================================================================
RCS file: /cvs/e/e17/proto/exorcist/src/bin/ewl_main_window.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -3 -r1.3 -r1.4
--- ewl_main_window.c   17 Apr 2006 18:09:09 -0000      1.3
+++ ewl_main_window.c   25 Apr 2006 07:07:07 -0000      1.4
@@ -28,6 +28,18 @@
   Ewl_Widget *search_circular;
 };
 
+typedef struct _Exo_Ps_Data Exo_Ps_Data;
+struct _Exo_Ps_Data {
+  Epdf_Document *pdf_doc;
+  Ewl_Widget    *dialog;
+  Ewl_Widget    *filename;
+  Ewl_Widget    *first_page;
+  Ewl_Widget    *last_page;
+  Ewl_Widget    *width;
+  Ewl_Widget    *height;
+  Ewl_Widget    *duplex;
+};
+
 
 static void _exo_ewl_change_page_cb            (Ewl_Widget *widget,
                                                 void       *ev_data,
@@ -35,6 +47,18 @@
 static void _exo_ewl_document_open_cb          (Ewl_Widget *widget,
                                                 void       *ev_data,
                                                 void       *user_data);
+static void _exo_ewl_document_save_cb          (Ewl_Widget *widget,
+                                                void       *ev_data,
+                                                void       *user_data);
+static void _exo_ewl_document_save_destroy_cb  (Ewl_Widget *widget,
+                                                void       *ev_data,
+                                                void       *user_data);
+static void _exo_ewl_document_save_quit_cb     (Ewl_Widget *widget,
+                                                void       *ev_data,
+                                                void       *user_data);
+static void _exo_ewl_document_save_ok_cb       (Ewl_Widget *widget,
+                                                void       *ev_data,
+                                                void       *user_data);
 static void _exo_ewl_filedialog_cb             (Ewl_Widget *widget,
                                                 void       *ev_data,
                                                 void       *user_data);
@@ -59,10 +83,10 @@
 static void _exo_ewl_popup_cb                  (Ewl_Widget *widget,
                                                 void       *ev_data,
                                                 void       *user_data);
-static void _exo_ewl_info_cb                   (Ewl_Widget *widget,
+static void _exo_ewl_document_info_cb          (Ewl_Widget *widget,
                                                 void       *ev_data,
                                                 void       *user_data);
-static void _exo_ewl_info_destroy_cb           (Ewl_Widget *widget,
+static void _exo_ewl_document_info_destroy_cb  (Ewl_Widget *widget,
                                                 void       *ev_data,
                                                 void       *user_data);
 
@@ -327,11 +351,19 @@
   ewl_widget_show (item);
 
   item = ewl_menu_item_new ();
+  ewl_button_stock_type_set (EWL_BUTTON (item), EWL_STOCK_SAVE);
+  ewl_container_child_append (EWL_CONTAINER (menu), item);
+  ewl_callback_append (item,
+                       EWL_CALLBACK_CLICKED,
+                       _exo_ewl_document_save_cb, data);
+  ewl_widget_show (item);
+
+  item = ewl_menu_item_new ();
   ewl_button_label_set (EWL_BUTTON (item), "Info");
   ewl_container_child_append (EWL_CONTAINER (menu), item);
   ewl_callback_append (item,
                        EWL_CALLBACK_CLICKED,
-                       _exo_ewl_info_cb, data);
+                       _exo_ewl_document_info_cb, data);
   ewl_widget_show (item);
 
   item = ewl_hseparator_new ();
@@ -619,6 +651,187 @@
 }
 
 static void
+_exo_ewl_document_save_cb (Ewl_Widget *widget __UNUSED__,
+                           void       *ev_data __UNUSED__,
+                           void       *user_data)
+{
+  char         buf[128];
+  Exo_Ewl     *data;
+  Ewl_Pdf     *pdf;
+  Ewl_Widget  *button;
+  Ewl_Widget  *table;
+  Ewl_Widget  *label;
+  Exo_Ps_Data *ps_data;
+  char        *tmp;
+  char        *filename;
+  char        *psfilename;
+  int          l;
+  int          page_count;
+
+  data = (Exo_Ewl *)user_data;
+  pdf =  EWL_PDF (data->pdf);
+  filename = epdf_document_filename_get (pdf->pdf_document);
+  l = strlen (filename);
+  tmp = strstr (filename, ".pdf");
+  if (!tmp) {
+    psfilename = (char *)malloc (sizeof (char) * (l + 4));
+    memcpy (psfilename, filename, l);
+    psfilename[l + 0] = '.';
+    psfilename[l + 1] = 'p';
+    psfilename[l + 2] = 's';
+    psfilename[l + 3] = '\0';
+  }
+  else {
+    psfilename = (char *)malloc (sizeof (char) * l);
+    memcpy (psfilename, filename, l);
+    psfilename[l - 2] = 's';
+    psfilename[l - 1] = '\0';
+  }
+  page_count = epdf_document_page_count_get (pdf->pdf_document);
+
+  ps_data = (Exo_Ps_Data *)malloc (sizeof (Exo_Ps_Data));
+  ps_data->pdf_doc = pdf->pdf_document;
+
+  ps_data->dialog = ewl_dialog_new ();
+  ewl_window_title_set (EWL_WINDOW (ps_data->dialog), "Exorcist - Save");
+  ewl_window_name_set (EWL_WINDOW (ps_data->dialog), "Exorcist - Save");
+  ewl_window_class_set (EWL_WINDOW (ps_data->dialog), "Exorcist - Save");
+  ewl_callback_append (ps_data->dialog,
+                       EWL_CALLBACK_DELETE_WINDOW,
+                       _exo_ewl_document_save_destroy_cb, NULL);
+
+  button = ewl_button_new ();
+  ewl_button_stock_type_set (EWL_BUTTON (button), EWL_STOCK_OK);
+  ewl_callback_append (EWL_WIDGET (button),
+                       EWL_CALLBACK_CLICKED,
+                       EWL_CALLBACK_FUNCTION (_exo_ewl_document_save_ok_cb),
+                       ps_data);
+  ewl_container_child_append (EWL_CONTAINER (ps_data->dialog), button);
+  ewl_widget_show (button);
+
+  button = ewl_button_new ();
+  ewl_button_stock_type_set (EWL_BUTTON (button), EWL_STOCK_CANCEL);
+  ewl_container_child_append (EWL_CONTAINER (ps_data->dialog), button);
+  ewl_callback_append (button,
+                       EWL_CALLBACK_CLICKED,
+                       _exo_ewl_document_save_quit_cb, ps_data->dialog);
+  ewl_widget_show (button);
+
+  table = ewl_table_new (2, 6, NULL);
+  ewl_table_vhomogeneous_set (EWL_TABLE (table), TRUE);
+  ewl_dialog_active_area_set (EWL_DIALOG (ps_data->dialog), EWL_POSITION_TOP);
+  ewl_container_child_append (EWL_CONTAINER (ps_data->dialog), table);
+  ewl_widget_show (table);
+
+  label = ewl_label_new ();
+  ewl_label_text_set (EWL_LABEL (label), "File name");
+  ewl_table_add (EWL_TABLE (table), label, 1, 1, 1, 1);
+  ewl_widget_show (label);
+
+  ps_data->filename = ewl_entry_new ();
+  ewl_text_text_set (EWL_TEXT (ps_data->filename), psfilename);
+  ewl_table_add (EWL_TABLE (table), ps_data->filename, 2, 2, 1, 1);
+  ewl_widget_show (ps_data->filename);
+
+  label = ewl_label_new ();
+  ewl_label_text_set (EWL_LABEL (label), "First page");
+  ewl_table_add (EWL_TABLE (table), label, 1, 1, 2, 2);
+  ewl_widget_show (label);
+
+  ps_data->first_page = ewl_entry_new ();
+  ewl_text_text_set (EWL_TEXT (ps_data->first_page), "1");
+  ewl_table_add (EWL_TABLE (table), ps_data->first_page, 2, 2, 2, 2);
+  ewl_widget_show (ps_data->first_page);
+
+  label = ewl_label_new ();
+  ewl_label_text_set (EWL_LABEL (label), "Last page");
+  ewl_table_add (EWL_TABLE (table), label, 1, 1, 3, 3);
+  ewl_widget_show (label);
+
+  snprintf (buf, 128, "%d", page_count);
+  ps_data->last_page = ewl_entry_new ();
+  ewl_text_text_set (EWL_TEXT (ps_data->last_page), buf);
+  ewl_table_add (EWL_TABLE (table), ps_data->last_page, 2, 2, 3, 3);
+  ewl_widget_show (ps_data->last_page);
+
+  label = ewl_label_new ();
+  ewl_label_text_set (EWL_LABEL (label), "Width");
+  ewl_table_add (EWL_TABLE (table), label, 1, 1, 4, 4);
+  ewl_widget_show (label);
+
+  ps_data->width = ewl_entry_new ();
+  ewl_text_text_set (EWL_TEXT (ps_data->width), "-1");
+  ewl_table_add (EWL_TABLE (table), ps_data->width, 2, 2, 4, 4);
+  ewl_widget_show (ps_data->width);
+
+  label = ewl_label_new ();
+  ewl_label_text_set (EWL_LABEL (label), "Height");
+  ewl_table_add (EWL_TABLE (table), label, 1, 1, 5, 5);
+  ewl_widget_show (label);
+
+  ps_data->height = ewl_entry_new ();
+  ewl_text_text_set (EWL_TEXT (ps_data->height), "-1");
+  ewl_table_add (EWL_TABLE (table), ps_data->height, 2, 2, 5, 5);
+  ewl_widget_show (ps_data->height);
+
+  ps_data->duplex = ewl_checkbutton_new ();
+  ewl_button_label_set (EWL_BUTTON (ps_data->duplex), "Duplex");
+  ewl_checkbutton_checked_set (EWL_CHECKBUTTON (ps_data->duplex), TRUE);
+  ewl_table_add (EWL_TABLE (table), ps_data->duplex, 1, 2, 6, 6);
+  ewl_widget_show (ps_data->duplex);
+
+  ewl_widget_show (ps_data->dialog);
+
+  free (psfilename);
+}
+
+static void
+_exo_ewl_document_save_destroy_cb (Ewl_Widget *widget,
+                                   void       *ev_data __UNUSED__,
+                                   void       *user_data __UNUSED__)
+{
+  ewl_widget_destroy (widget);
+}
+
+static void
+_exo_ewl_document_save_quit_cb (Ewl_Widget *widget __UNUSED__,
+                                void       *ev_data __UNUSED__,
+                                void       *user_data)
+{
+  ewl_widget_destroy (EWL_WIDGET (user_data));
+}
+
+static void
+_exo_ewl_document_save_ok_cb (Ewl_Widget *widget __UNUSED__,
+                              void       *ev_data __UNUSED__,
+                              void       *user_data)
+{
+  Epdf_Postscript *eps;
+  Exo_Ps_Data     *ps_data = (Exo_Ps_Data *)user_data;
+  const char      *filename;
+  int              page_first;
+  int              page_last;
+  int              width;
+  int              height;
+  int              duplex;
+
+  filename = ewl_text_text_get (EWL_TEXT (ps_data->filename));
+  page_first = atoi (ewl_text_text_get (EWL_TEXT (ps_data->first_page)));
+  page_last = atoi (ewl_text_text_get (EWL_TEXT (ps_data->last_page)));
+  width = atoi (ewl_text_text_get (EWL_TEXT (ps_data->width)));
+  height = atoi (ewl_text_text_get (EWL_TEXT (ps_data->height)));
+  duplex = ewl_checkbutton_is_checked (EWL_CHECKBUTTON (ps_data->duplex));
+  eps = epdf_postscript_new (ps_data->pdf_doc, filename, page_first, 
page_last);
+  epdf_postscript_size_set (eps, width, height);
+  epdf_postscript_duplex_set (eps, duplex);
+  if (!eps) return;
+  epdf_postscript_print (eps);
+  epdf_postscript_delete (eps);
+
+  ewl_widget_destroy (ps_data->dialog);
+}
+
+static void
 _exo_ewl_row_data_free_cb (Ewl_Widget *widget,
                            void       *ev_data __UNUSED__,
                            void       *user_data __UNUSED__)
@@ -703,9 +916,9 @@
 }
 
 static void
-_exo_ewl_info_cb (Ewl_Widget *widget __UNUSED__,
-                  void       *ev_data __UNUSED__,
-                  void       *user_data)
+_exo_ewl_document_info_cb (Ewl_Widget *widget __UNUSED__,
+                           void       *ev_data __UNUSED__,
+                           void       *user_data)
 {
   Exo_Ewl        *data;
   Ewl_Widget     *dialog_info;
@@ -730,13 +943,13 @@
   ewl_window_class_set (EWL_WINDOW (dialog_info), "Exorcist - Info");
   ewl_callback_append (dialog_info,
                        EWL_CALLBACK_DELETE_WINDOW,
-                       _exo_ewl_info_destroy_cb, dialog_info);
+                       _exo_ewl_document_info_destroy_cb, dialog_info);
 
   button = ewl_button_new ();
   ewl_button_stock_type_set (EWL_BUTTON (button), EWL_STOCK_CANCEL);
   ewl_callback_append (button,
                        EWL_CALLBACK_CLICKED,
-                       _exo_ewl_info_destroy_cb, dialog_info);
+                       _exo_ewl_document_info_destroy_cb, dialog_info);
   ewl_container_child_append (EWL_CONTAINER (dialog_info), button);
   ewl_widget_show (button);
 
@@ -959,9 +1172,9 @@
 }
 
 static void
-_exo_ewl_info_destroy_cb (Ewl_Widget *widget __UNUSED__,
-                          void       *ev_data __UNUSED__,
-                          void       *user_data)
+_exo_ewl_document_info_destroy_cb (Ewl_Widget *widget __UNUSED__,
+                                   void       *ev_data __UNUSED__,
+                                   void       *user_data)
 {
   ewl_widget_destroy (EWL_WIDGET (user_data));
 }




-------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to