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:
orientation and size support

===================================================================
RCS file: /cvs/e/e17/proto/exorcist/src/bin/etk_main_window.c,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -3 -r1.1 -r1.2
--- etk_main_window.c   21 Mar 2006 07:36:02 -0000      1.1
+++ etk_main_window.c   17 Apr 2006 08:50:48 -0000      1.2
@@ -26,16 +26,27 @@
   Etk_Widget *search_circular;
 };
 
-static void     _exo_etk_quit_cb            (Etk_Object *object, void *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_search_cb          (Etk_Object *object, void 
*user_data);
-static void     _exo_etk_search_response_cb (Etk_Object *object, int res, void 
*user_data);
+static void     _exo_etk_quit_cb                   (Etk_Object *object, void 
*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_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);
+static void     _exo_etk_index_show_cb             (Etk_Object *object, void 
*user_data);
+
+static void     _exo_etk_orientation_landscape_cb  (Etk_Object *object, void 
*user_data);
+static void     _exo_etk_orientation_upsidedown_cb (Etk_Object *object, void 
*user_data);
+static void     _exo_etk_orientation_seascape_cb   (Etk_Object *object, void 
*user_data);
+static void     _exo_etk_orientation_portrait_cb   (Etk_Object *object, void 
*user_data);
+
+static void     _exo_etk_size_150_cb               (Etk_Object *object, void 
*user_data);
+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
@@ -76,7 +87,8 @@
 
 static void
 _exo_etk_update_document (Exo_Etk      *data,
-                          Etk_Tree_Col *col)
+                          Etk_Tree_Col *col_pages,
+                          Etk_Tree_Col *col_index)
 {
   Evas_Poppler_Document   *document;
   Ecore_List              *index;
@@ -100,7 +112,7 @@
       Etk_Tree_Row *row;
       int          *num;
 
-      row = etk_tree_append (ETK_TREE (data->list_pages), col, i + 1, NULL);
+      row = etk_tree_append (ETK_TREE (data->list_pages), col_pages, i + 1, 
NULL);
       num = (int *)malloc (sizeof (int));
       *num = i;
       etk_tree_row_data_set (row, num);
@@ -110,7 +122,7 @@
   etk_tree_thaw (ETK_TREE (data->list_pages));
 
   index = etk_pdf_pdf_index_get (ETK_PDF (data->pdf));
-  _exo_etk_tree_fill (ETK_PDF (data->pdf), ETK_TREE (data->list_index), col, 
NULL, index);
+  _exo_etk_tree_fill (ETK_PDF (data->pdf), ETK_TREE (data->list_index), 
col_index, NULL, index);
 }
 
 void
@@ -124,7 +136,7 @@
   etk_window_title_set (ETK_WINDOW (data->win_index), title);
   etk_window_wmclass_set (ETK_WINDOW (data->win_index), title, title);
 
-  etk_tree_headers_visible_set (ETK_TREE (data->list_index), ETK_FALSE);
+/*   etk_tree_headers_visible_set (ETK_TREE (data->list_index), ETK_FALSE); */
   etk_container_add (ETK_CONTAINER (data->win_index), data->list_index);
   etk_widget_show (data->list_index);
 }
@@ -133,6 +145,7 @@
 _exo_etk_menu_options (Exo_Etk *data)
 {
   Etk_Widget *menu;
+  Etk_Widget *submenu;
   Etk_Widget *menu_item;
 
   menu = etk_menu_new ();
@@ -148,9 +161,58 @@
                      ETK_CALLBACK(_exo_etk_search_cb), data);
   etk_menu_shell_append (ETK_MENU_SHELL (menu), ETK_MENU_ITEM (menu_item));
 
-  menu_item = etk_menu_item_new_with_label ("Index");
+  menu_item = etk_menu_item_check_new_with_label ("Index");
+  etk_signal_connect ("toggled", ETK_OBJECT (menu_item), ETK_CALLBACK 
(_exo_etk_index_show_cb), data);
+  etk_menu_shell_append (ETK_MENU_SHELL (menu), ETK_MENU_ITEM (menu_item));
+
+  menu_item = etk_menu_item_new_with_label ("Orientation");
+  etk_menu_shell_append (ETK_MENU_SHELL (menu), ETK_MENU_ITEM (menu_item));
+
+  submenu = etk_menu_new ();
+  etk_menu_item_submenu_set (ETK_MENU_ITEM (menu_item), ETK_MENU (submenu));
+
+  menu_item = etk_menu_item_radio_new_with_label_from_widget ("Portrait", 
NULL);
+  etk_signal_connect("activated", ETK_OBJECT(menu_item),
+                     ETK_CALLBACK(_exo_etk_orientation_portrait_cb), data);
+  etk_menu_shell_append (ETK_MENU_SHELL (submenu), ETK_MENU_ITEM (menu_item));
+
+  menu_item = etk_menu_item_radio_new_with_label_from_widget ("Landscape", 
ETK_MENU_ITEM_RADIO (menu_item));
+  etk_signal_connect("activated", ETK_OBJECT(menu_item),
+                     ETK_CALLBACK(_exo_etk_orientation_landscape_cb), data);
+  etk_menu_shell_append (ETK_MENU_SHELL (submenu), ETK_MENU_ITEM (menu_item));
+
+  menu_item = etk_menu_item_radio_new_with_label_from_widget ("Upside down", 
ETK_MENU_ITEM_RADIO (menu_item));
+  etk_signal_connect("activated", ETK_OBJECT(menu_item),
+                     ETK_CALLBACK(_exo_etk_orientation_upsidedown_cb), data);
+  etk_menu_shell_append (ETK_MENU_SHELL (submenu), ETK_MENU_ITEM (menu_item));
+
+  menu_item = etk_menu_item_radio_new_with_label_from_widget ("Seascape", 
ETK_MENU_ITEM_RADIO (menu_item));
+  etk_signal_connect("activated", ETK_OBJECT(menu_item),
+                     ETK_CALLBACK(_exo_etk_orientation_seascape_cb), data);
+  etk_menu_shell_append (ETK_MENU_SHELL (submenu), ETK_MENU_ITEM (menu_item));
+
+  menu_item = etk_menu_item_new_with_label ("Size");
   etk_menu_shell_append (ETK_MENU_SHELL (menu), ETK_MENU_ITEM (menu_item));
 
+  submenu = etk_menu_new ();
+  etk_menu_item_submenu_set (ETK_MENU_ITEM (menu_item), ETK_MENU (submenu));
+
+  menu_item = etk_menu_item_radio_new_with_label_from_widget ("150%%", NULL);
+  etk_signal_connect("activated", ETK_OBJECT(menu_item),
+                     ETK_CALLBACK(_exo_etk_size_150_cb), data);
+  etk_menu_shell_append (ETK_MENU_SHELL (submenu), ETK_MENU_ITEM (menu_item));
+
+  menu_item = etk_menu_item_radio_new_with_label_from_widget ("100%%", 
ETK_MENU_ITEM_RADIO (menu_item));
+  etk_menu_item_check_active_set (ETK_MENU_ITEM_CHECK (menu_item), TRUE);
+  etk_signal_connect("activated", ETK_OBJECT(menu_item),
+                     ETK_CALLBACK(_exo_etk_size_100_cb), data);
+  etk_menu_shell_append (ETK_MENU_SHELL (submenu), ETK_MENU_ITEM (menu_item));
+
+  menu_item = etk_menu_item_radio_new_with_label_from_widget ("50%%", 
ETK_MENU_ITEM_RADIO (menu_item));
+  etk_signal_connect("activated", ETK_OBJECT(menu_item),
+                     ETK_CALLBACK(_exo_etk_size_50_cb), data);
+  etk_menu_shell_append (ETK_MENU_SHELL (submenu), ETK_MENU_ITEM (menu_item));
+
   return menu;
 }
 
@@ -181,7 +243,13 @@
 /*   etk_signal_connect("selected", ETK_OBJECT(menu_item), */
 /*                      ETK_CALLBACK(_exo_etk_document_open_cb), data); */
 
-  menu_item = etk_menu_item_new_with_label ("Info");
+  menu_item = etk_menu_item_image_new_with_label ("Info");
+  {
+    Etk_Widget *image;
+
+    image = etk_image_new_from_stock (ETK_STOCK_DIALOG_INFORMATION, 
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_info_cb), data);
@@ -234,8 +302,10 @@
   Etk_Widget *menu_bar;
   Etk_Widget *popup;
   Etk_Widget *hbox;
+  Etk_Widget *scrollview;
   Exo_Etk    *data;
-  Etk_Tree_Col *col;
+  Etk_Tree_Col *col_pages;
+  Etk_Tree_Col *col_index;
 
   data = (Exo_Etk *)calloc (sizeof (Exo_Etk), 1);
   if (!data) return;
@@ -269,22 +339,32 @@
   etk_signal_connect ("row_selected", ETK_OBJECT (data->list_pages),
                       ETK_CALLBACK (_change_page_cb), data->pdf);
   etk_tree_mode_set (ETK_TREE (data->list_pages), ETK_TREE_MODE_LIST);
-  col = etk_tree_col_new (ETK_TREE (data->list_pages), "",
-                          etk_tree_model_int_new (ETK_TREE (data->list_pages)),
-                          60);
+  col_pages = etk_tree_col_new (ETK_TREE (data->list_pages), "",
+                                etk_tree_model_int_new (ETK_TREE 
(data->list_pages)),
+                                60);
   etk_tree_build (ETK_TREE (data->list_pages));
   etk_box_pack_start (ETK_BOX (hbox), data->list_pages, ETK_FALSE, ETK_FALSE, 
0);
   etk_widget_show (data->list_pages);
 
   popup = _exo_etk_menu_options (data);
 
-  etk_box_pack_start (ETK_BOX (hbox), data->pdf, ETK_FALSE, ETK_FALSE, 0);
+  scrollview = etk_scrolled_view_new ();
+  etk_box_pack_start (ETK_BOX (hbox), scrollview, ETK_FALSE, ETK_FALSE, 0);
+  etk_widget_show (scrollview);
+
+  etk_container_add (ETK_CONTAINER (scrollview), data->pdf);
   etk_signal_connect("mouse_down", ETK_OBJECT(data->pdf),
                      ETK_CALLBACK(_exo_etk_menu_popup_cb), popup);
   etk_widget_show (data->pdf);
 
+  etk_tree_headers_visible_set (ETK_TREE (data->list_index), ETK_FALSE);
+  etk_widget_size_request_set (data->list_index, 60, -1);
+  etk_tree_mode_set (ETK_TREE (data->list_index), ETK_TREE_MODE_TREE);
+  col_index = etk_tree_col_new (ETK_TREE (data->list_index), "",
+                                etk_tree_model_int_new (ETK_TREE 
(data->list_index)),
+                                60);
   if (data->filename)
-    _exo_etk_update_document (data, col);
+    _exo_etk_update_document (data, col_pages, col_index);
 
   etk_widget_show (window);
 
@@ -376,7 +456,7 @@
                       ETK_CALLBACK (_exo_etk_info_delete_cb), NULL);
 
   etk_dialog_button_add (ETK_DIALOG (dialog_info),
-                         etk_stock_label_get (ETK_STOCK_DIALOG_CANCEL), 
ETK_RESPONSE_CLOSE);
+                         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);
 
@@ -389,9 +469,7 @@
   etk_widget_show (label);
 
   entry = etk_entry_new ();
-  printf ("version %s\n", evas_poppler_version_get ());
-  etk_entry_text_set (ETK_ENTRY (entry), "toto");
-/*   etk_entry_text_set (ETK_ENTRY (entry), evas_poppler_version_get ()); */
+  etk_entry_text_set (ETK_ENTRY (entry), evas_poppler_version_get ());
   etk_table_attach_defaults (ETK_TABLE (table), entry, 1, 1, 0, 0);
   etk_widget_show (entry);
 
@@ -406,7 +484,7 @@
     char *text;
 
     list = etk_tree_new ();
-    etk_tree_headers_visible_set (ETK_TREE (list), ETK_FALSE);
+/*     etk_tree_headers_visible_set (ETK_TREE (list), ETK_FALSE); */
     etk_widget_size_request_set (list, 60, -1);
     etk_tree_mode_set (ETK_TREE (list), ETK_TREE_MODE_LIST);
     col_title = etk_tree_col_new (ETK_TREE (list), "",
@@ -620,6 +698,9 @@
     case EVAS_POPPLER_PAGE_ORIENTATION_PORTRAIT:
       text = "portrait";
       break;
+    default:
+      text = "landscape";
+      break;
     }
     etk_tree_append (ETK_TREE (list),
                      col_title, "Orientation",
@@ -646,16 +727,15 @@
 static void
 _exo_etk_info_response_cb (Etk_Object *object, int res, void *user_data 
__UNUSED__)
 {
-  printf ("res : %d\n", res, ETK_RESPONSE_CLOSE);
   switch (res) {
-  case ETK_RESPONSE_CLOSE:
+  case ETK_RESPONSE_OK:
     etk_object_destroy (object);
     break;
   }
 }
 
 static void
-_exo_etk_search_cb (Etk_Object *object, void *user_data)
+_exo_etk_search_cb (Etk_Object *object __UNUSED__, void *user_data)
 {
   Exo_Etk    *data;
   Etk_Widget *dialog_search;
@@ -669,11 +749,11 @@
   dialog_search = etk_dialog_new ();
   etk_window_title_set (ETK_WINDOW (dialog_search), "Exorcist - Search");
   etk_window_wmclass_set (ETK_WINDOW (dialog_search), "Exorcist - Search", 
"Exorcist - Search");
-/*   etk_signal_connect ("delete_event", ETK_OBJECT (dialog_search), */
-/*                       ETK_CALLBACK (_exo_etk_search_delete_cb), NULL); */
+  etk_signal_connect ("delete_event", ETK_OBJECT (dialog_search),
+                      ETK_CALLBACK (_exo_etk_search_delete_cb), NULL);
 
   etk_dialog_button_add (ETK_DIALOG (dialog_search),
-                         etk_stock_label_get (ETK_STOCK_DIALOG_CANCEL), 
ETK_RESPONSE_CLOSE);
+                         etk_stock_label_get (ETK_STOCK_DIALOG_CLOSE), 
ETK_RESPONSE_CLOSE);
   etk_dialog_button_add (ETK_DIALOG (dialog_search),
                          etk_stock_label_get (ETK_STOCK_GO_NEXT), 
ETK_RESPONSE_APPLY);
   etk_signal_connect ("response", ETK_OBJECT (dialog_search),
@@ -702,8 +782,140 @@
   etk_widget_show (dialog_search);
 }
 
+static Etk_Bool
+_exo_etk_search_delete_cb (Etk_Object *object, void *user_data __UNUSED__)
+{
+  etk_object_destroy (object);
+
+  return ETK_TRUE;
+}
+
 static void
 _exo_etk_search_response_cb (Etk_Object *object, int res, void *user_data)
 {
-  printf ("response !\n");
+  switch (res) {
+  case ETK_RESPONSE_CLOSE:
+    etk_object_destroy (object);
+    break;
+  case ETK_RESPONSE_APPLY: {
+    Exo_Etk    *data;
+    Etk_Pdf    *pdf;
+    const char *text;
+    int         is_case_sensitive;
+    int         is_circular;
+
+    data = (Exo_Etk *)user_data;
+    pdf =  ETK_PDF (data->pdf);
+    text = etk_entry_text_get (ETK_ENTRY (data->search_text));
+    if (!text || (text[0] == '\0'))
+      return;
+    is_case_sensitive = etk_toggle_button_active_get (ETK_TOGGLE_BUTTON 
(data->search_is_case_sensitive));
+    is_circular = etk_toggle_button_active_get (ETK_TOGGLE_BUTTON 
(data->search_circular));
+  etk_pdf_search_text_set (pdf, text);
+  etk_pdf_search_is_case_sensitive (pdf, is_case_sensitive);
+  printf ("we search...\n");
+  res = etk_pdf_search_next (pdf);
+
+  if (!res)
+    printf ("FIN\n");
+    break;
+  }
+  }
+}
+
+static void
+_exo_etk_index_show_cb (Etk_Object *object, void *user_data)
+{
+  Exo_Etk *data;
+
+  data = (Exo_Etk *)user_data;
+
+  if (etk_menu_item_check_active_get (ETK_MENU_ITEM_CHECK (object)))
+    etk_widget_show (data->win_index);
+  else
+    etk_widget_hide (data->win_index);
+}
+
+static void
+_exo_etk_orientation_landscape_cb (Etk_Object *object, void *user_data)
+{
+  Etk_Pdf         *pdf;
+
+  pdf =  ETK_PDF (((Exo_Etk *)user_data)->pdf);
+
+  if (etk_menu_item_check_active_get (ETK_MENU_ITEM_CHECK (object))) {
+    etk_pdf_orientation_set (pdf, EVAS_POPPLER_PAGE_ORIENTATION_LANDSCAPE);
+  }
+}
+
+static void
+_exo_etk_orientation_upsidedown_cb (Etk_Object *object, void *user_data)
+{
+  Etk_Pdf         *pdf;
+
+  pdf =  ETK_PDF (((Exo_Etk *)user_data)->pdf);
+
+  if (etk_menu_item_check_active_get (ETK_MENU_ITEM_CHECK (object))) {
+    etk_pdf_orientation_set (pdf, EVAS_POPPLER_PAGE_ORIENTATION_UPSIDEDOWN);
+  }
+}
+
+static void
+_exo_etk_orientation_seascape_cb (Etk_Object *object, void *user_data)
+{
+  Etk_Pdf         *pdf;
+
+  pdf =  ETK_PDF (((Exo_Etk *)user_data)->pdf);
+
+  if (etk_menu_item_check_active_get (ETK_MENU_ITEM_CHECK (object))) {
+    etk_pdf_orientation_set (pdf, EVAS_POPPLER_PAGE_ORIENTATION_SEASCAPE);
+  }
+}
+
+static void
+_exo_etk_orientation_portrait_cb (Etk_Object *object, void *user_data)
+{
+  Etk_Pdf         *pdf;
+
+  pdf =  ETK_PDF (((Exo_Etk *)user_data)->pdf);
+
+  if (etk_menu_item_check_active_get (ETK_MENU_ITEM_CHECK (object))) {
+    etk_pdf_orientation_set (pdf, EVAS_POPPLER_PAGE_ORIENTATION_PORTRAIT);
+  }
+}
+
+static void
+_exo_etk_size_150_cb (Etk_Object *object, void *user_data)
+{
+  Etk_Pdf         *pdf;
+
+  pdf =  ETK_PDF (((Exo_Etk *)user_data)->pdf);
+
+  if (etk_menu_item_check_active_get (ETK_MENU_ITEM_CHECK (object))) {
+    etk_pdf_scale_set (pdf, 1.5, 1.5);
+  }
+}
+
+static void
+_exo_etk_size_100_cb (Etk_Object *object, void *user_data)
+{
+  Etk_Pdf         *pdf;
+
+  pdf =  ETK_PDF (((Exo_Etk *)user_data)->pdf);
+
+  if (etk_menu_item_check_active_get (ETK_MENU_ITEM_CHECK (object))) {
+    etk_pdf_scale_set (pdf, 1.0, 1.0);
+  }
+}
+
+static void
+_exo_etk_size_50_cb (Etk_Object *object, void *user_data)
+{
+  Etk_Pdf         *pdf;
+
+  pdf =  ETK_PDF (((Exo_Etk *)user_data)->pdf);
+
+  if (etk_menu_item_check_active_get (ETK_MENU_ITEM_CHECK (object))) {
+    etk_pdf_scale_set (pdf, 0.5, 0.5);
+  }
 }
===================================================================
RCS file: /cvs/e/e17/proto/exorcist/src/bin/ewl_main_window.c,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -3 -r1.1 -r1.2
--- ewl_main_window.c   21 Mar 2006 07:36:02 -0000      1.1
+++ ewl_main_window.c   17 Apr 2006 08:50:48 -0000      1.2
@@ -29,42 +29,65 @@
 };
 
 
-static void _exo_ewl_change_page_cb    (Ewl_Widget *widget,
-                                        void       *ev_data,
-                                        void       *user_data);
-static void _exo_ewl_document_open_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);
-static void _exo_ewl_row_data_free_cb  (Ewl_Widget *widget,
-                                        void       *ev_data,
-                                        void       *user_data);
-static void _exo_ewl_index_show_cb     (Ewl_Widget *widget,
-                                        void       *ev_data,
-                                        void       *user_data);
-static void _exo_ewl_search_cb         (Ewl_Widget *widget,
-                                        void       *ev_data,
-                                        void       *user_data);
-static void _exo_ewl_exit_cb           (Ewl_Widget *widget,
-                                        void       *ev_data,
-                                        void       *user_data);
-static void _exo_ewl_search_destroy_cb (Ewl_Widget *widget,
-                                        void       *ev_data,
-                                        void       *user_data);
-static void _exo_ewl_search_next_cb    (Ewl_Widget *widget,
-                                        void       *ev_data,
-                                        void       *user_data);
-static void _exo_ewl_popup_cb          (Ewl_Widget *widget,
-                                        void       *ev_data,
-                                        void       *user_data);
-static void _exo_ewl_info_cb           (Ewl_Widget *widget,
-                                        void       *ev_data,
-                                        void       *user_data);
-static void _exo_ewl_info_destroy_cb   (Ewl_Widget *widget,
-                                        void       *ev_data,
-                                        void       *user_data);
+static void _exo_ewl_change_page_cb            (Ewl_Widget *widget,
+                                                void       *ev_data,
+                                                void       *user_data);
+static void _exo_ewl_document_open_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);
+static void _exo_ewl_row_data_free_cb          (Ewl_Widget *widget,
+                                                void       *ev_data,
+                                                void       *user_data);
+static void _exo_ewl_index_show_cb             (Ewl_Widget *widget,
+                                                void       *ev_data,
+                                                void       *user_data);
+static void _exo_ewl_search_cb                 (Ewl_Widget *widget,
+                                                void       *ev_data,
+                                                void       *user_data);
+static void _exo_ewl_exit_cb                   (Ewl_Widget *widget,
+                                                void       *ev_data,
+                                                void       *user_data);
+static void _exo_ewl_search_destroy_cb         (Ewl_Widget *widget,
+                                                void       *ev_data,
+                                                void       *user_data);
+static void _exo_ewl_search_next_cb            (Ewl_Widget *widget,
+                                                void       *ev_data,
+                                                void       *user_data);
+static void _exo_ewl_popup_cb                  (Ewl_Widget *widget,
+                                                void       *ev_data,
+                                                void       *user_data);
+static void _exo_ewl_info_cb                   (Ewl_Widget *widget,
+                                                void       *ev_data,
+                                                void       *user_data);
+static void _exo_ewl_info_destroy_cb           (Ewl_Widget *widget,
+                                                void       *ev_data,
+                                                void       *user_data);
+
+static void _exo_ewl_orientation_portrait_cb   (Ewl_Widget *widget,
+                                                void       *ev_data,
+                                                void       *user_data);
+static void _exo_ewl_orientation_landscape_cb  (Ewl_Widget *widget,
+                                                void       *ev_data,
+                                                void       *user_data);
+static void _exo_ewl_orientation_upsidedown_cb (Ewl_Widget *widget,
+                                                void       *ev_data,
+                                                void       *user_data);
+static void _exo_ewl_orientation_seascape_cb   (Ewl_Widget *widget,
+                                                void       *ev_data,
+                                                void       *user_data);
+
+static void _exo_ewl_size_150_cb               (Ewl_Widget *widget,
+                                                void       *ev_data,
+                                                void       *user_data);
+static void _exo_ewl_size_100_cb               (Ewl_Widget *widget,
+                                                void       *ev_data,
+                                                void       *user_data);
+static void _exo_ewl_size_50_cb                (Ewl_Widget *widget,
+                                                void       *ev_data,
+                                                void       *user_data);
 
 void
 _exo_ewl_tree_fill (Exo_Ewl *data, Ewl_Row *row, Ecore_List *items)
@@ -161,6 +184,14 @@
   Ewl_Widget *menu;
   Ewl_Widget *item;
   Ewl_Widget *check;
+  Ewl_Widget *radio1;
+  Ewl_Widget *radio2;
+  Ewl_Widget *radio3;
+  Ewl_Widget *radio4;
+  Ewl_Widget *size1;
+  Ewl_Widget *size2;
+  Ewl_Widget *size3;
+  Ewl_Widget *submenu;
 
   menu = ewl_menu_new ();
 
@@ -182,19 +213,93 @@
   ewl_container_child_append (EWL_CONTAINER (menu), item);
   ewl_widget_show (item);
 
-  item = ewl_menu_item_new ();
-  ewl_container_child_append (EWL_CONTAINER (menu), item);
-  ewl_widget_show (item);
-
   check = ewl_checkbutton_new ();
   ewl_button_label_set (EWL_BUTTON (check), "Index");
   ewl_checkbutton_checked_set (EWL_CHECKBUTTON (check), FALSE);
   ewl_callback_append (check,
                        EWL_CALLBACK_CLICKED,
                        _exo_ewl_index_show_cb, data);
-  ewl_container_child_append (EWL_CONTAINER (item), check);
+  ewl_container_child_append (EWL_CONTAINER (menu), check);
   ewl_widget_show (check);
 
+  submenu = ewl_menu_new();
+  ewl_button_label_set(EWL_BUTTON(submenu), "Orientation");
+  ewl_container_child_append(EWL_CONTAINER(menu), submenu);
+  ewl_widget_show(submenu);
+
+  radio1 = ewl_radiobutton_new ();
+  ewl_button_label_set (EWL_BUTTON (radio1), "Portrait");
+  ewl_checkbutton_checked_set (EWL_CHECKBUTTON (radio1), TRUE);
+  ewl_callback_append (radio1,
+                       EWL_CALLBACK_CLICKED,
+                       _exo_ewl_orientation_portrait_cb, data);
+  ewl_container_child_append (EWL_CONTAINER (submenu), radio1);
+  ewl_widget_show (radio1);
+
+  radio2 = ewl_radiobutton_new ();
+  ewl_button_label_set (EWL_BUTTON (radio2), "Landscape");
+  ewl_checkbutton_checked_set (EWL_CHECKBUTTON (radio2), FALSE);
+  ewl_radiobutton_chain_set (EWL_RADIOBUTTON (radio2), EWL_RADIOBUTTON 
(radio1));
+  ewl_callback_append (radio2,
+                       EWL_CALLBACK_CLICKED,
+                       _exo_ewl_orientation_landscape_cb, data);
+  ewl_container_child_append (EWL_CONTAINER (submenu), radio2);
+  ewl_widget_show (radio2);
+
+  radio3 = ewl_radiobutton_new ();
+  ewl_button_label_set (EWL_BUTTON (radio3), "Upside down");
+  ewl_checkbutton_checked_set (EWL_CHECKBUTTON (radio3), FALSE);
+  ewl_radiobutton_chain_set (EWL_RADIOBUTTON (radio3), EWL_RADIOBUTTON 
(radio1));
+  ewl_callback_append (radio3,
+                       EWL_CALLBACK_CLICKED,
+                       _exo_ewl_orientation_upsidedown_cb, data);
+  ewl_container_child_append (EWL_CONTAINER (submenu), radio3);
+  ewl_widget_show (radio3);
+
+  radio4 = ewl_radiobutton_new ();
+  ewl_button_label_set (EWL_BUTTON (radio4), "Seascape");
+  ewl_checkbutton_checked_set (EWL_CHECKBUTTON (radio4), FALSE);
+  ewl_radiobutton_chain_set (EWL_RADIOBUTTON (radio4), EWL_RADIOBUTTON 
(radio1));
+  ewl_callback_append (radio4,
+                       EWL_CALLBACK_CLICKED,
+                       _exo_ewl_orientation_seascape_cb, data);
+  ewl_container_child_append (EWL_CONTAINER (submenu), radio4);
+  ewl_widget_show (radio4);
+
+  submenu = ewl_menu_new();
+  ewl_button_label_set(EWL_BUTTON(submenu), "Size");
+  ewl_container_child_append(EWL_CONTAINER(menu), submenu);
+  ewl_widget_show(submenu);
+
+  size1 = ewl_radiobutton_new ();
+  ewl_button_label_set (EWL_BUTTON (size1), "150%%");
+  ewl_checkbutton_checked_set (EWL_CHECKBUTTON (size1), FALSE);
+  ewl_callback_append (size1,
+                       EWL_CALLBACK_CLICKED,
+                       _exo_ewl_size_150_cb, data);
+  ewl_container_child_append (EWL_CONTAINER (submenu), size1);
+  ewl_widget_show (size1);
+
+  size2 = ewl_radiobutton_new ();
+  ewl_button_label_set (EWL_BUTTON (size2), "100%%");
+  ewl_checkbutton_checked_set (EWL_CHECKBUTTON (size2), TRUE);
+  ewl_radiobutton_chain_set (EWL_RADIOBUTTON (size2), EWL_RADIOBUTTON (size1));
+  ewl_callback_append (size2,
+                       EWL_CALLBACK_CLICKED,
+                       _exo_ewl_size_100_cb, data);
+  ewl_container_child_append (EWL_CONTAINER (submenu), size2);
+  ewl_widget_show (size2);
+
+  size3 = ewl_radiobutton_new ();
+  ewl_button_label_set (EWL_BUTTON (size3), "50%%");
+  ewl_checkbutton_checked_set (EWL_CHECKBUTTON (size3), FALSE);
+  ewl_radiobutton_chain_set (EWL_RADIOBUTTON (size3), EWL_RADIOBUTTON (size1));
+  ewl_callback_append (size3,
+                       EWL_CALLBACK_CLICKED,
+                       _exo_ewl_size_50_cb, data);
+  ewl_container_child_append (EWL_CONTAINER (submenu), size3);
+  ewl_widget_show (size3);
+
   return menu;
 }
 
@@ -477,10 +582,8 @@
   }
   data = (Exo_Ewl *)user_data;
   filedialog = ewl_filedialog_new ();
-  ewl_filedialog_type_set (EWL_FILEDIALOG (filedialog),
-                           EWL_FILEDIALOG_TYPE_OPEN);
   if (data->path)
-    ewl_filedialog_path_set (EWL_FILEDIALOG (filedialog), data->path);
+    ewl_filedialog_directory_set (EWL_FILEDIALOG (filedialog), data->path);
   ewl_callback_append (filedialog,
                        EWL_CALLBACK_VALUE_CHANGED,
                        EWL_CALLBACK_FUNCTION (_exo_ewl_filedialog_cb),
@@ -506,8 +609,8 @@
       free (data->path);
     if (data->filename)
       free (data->filename);
-    data->path = ewl_filedialog_path_get (filedialog);
-    data->filename = ewl_filedialog_file_get (filedialog);
+    data->path = (char *)ewl_filedialog_directory_get (filedialog);
+    data->filename = ewl_filedialog_selected_file_get (filedialog);
     _exo_ewl_update_document (data);
     ewl_widget_destroy (widget);
     break;
@@ -552,7 +655,7 @@
   int      res;
 
   data = (Exo_Ewl *)user_data;
-  pdf =  EWL_PDF (((Exo_Ewl *)user_data)->pdf);
+  pdf =  EWL_PDF (data->pdf);
 
   text = ewl_text_text_get (EWL_TEXT (data->search_text));
   if (!text || (text[0] == '\0'))
@@ -864,4 +967,123 @@
                           void       *user_data)
 {
   ewl_widget_destroy (EWL_WIDGET (user_data));
+}
+
+static void
+_exo_ewl_orientation_landscape_cb (Ewl_Widget *widget,
+                                   void       *ev_data __UNUSED__,
+                                   void       *user_data)
+{
+  Ewl_Radiobutton *r;
+  Ewl_Pdf         *pdf;
+
+  r = EWL_RADIOBUTTON (widget);
+  pdf =  EWL_PDF (((Exo_Ewl *)user_data)->pdf);
+
+  if (ewl_radiobutton_is_checked (r)) {
+    ewl_pdf_orientation_set (pdf, EVAS_POPPLER_PAGE_ORIENTATION_LANDSCAPE);
+    ewl_callback_call (EWL_WIDGET (pdf), EWL_CALLBACK_REVEAL);
+  }
+}
+
+static void
+_exo_ewl_orientation_upsidedown_cb (Ewl_Widget *widget,
+                                   void       *ev_data __UNUSED__,
+                                   void       *user_data)
+{
+  Ewl_Radiobutton *r;
+  Ewl_Pdf         *pdf;
+
+  r = EWL_RADIOBUTTON (widget);
+  pdf =  EWL_PDF (((Exo_Ewl *)user_data)->pdf);
+
+  if (ewl_radiobutton_is_checked (r)) {
+    ewl_pdf_orientation_set (pdf, EVAS_POPPLER_PAGE_ORIENTATION_UPSIDEDOWN);
+    ewl_callback_call (EWL_WIDGET (pdf), EWL_CALLBACK_REVEAL);
+  }
+}
+
+static void
+_exo_ewl_orientation_seascape_cb (Ewl_Widget *widget,
+                                   void       *ev_data __UNUSED__,
+                                   void       *user_data)
+{
+  Ewl_Radiobutton *r;
+  Ewl_Pdf         *pdf;
+
+  r = EWL_RADIOBUTTON (widget);
+  pdf =  EWL_PDF (((Exo_Ewl *)user_data)->pdf);
+
+  if (ewl_radiobutton_is_checked (r)) {
+    ewl_pdf_orientation_set (pdf, EVAS_POPPLER_PAGE_ORIENTATION_SEASCAPE);
+    ewl_callback_call (EWL_WIDGET (pdf), EWL_CALLBACK_REVEAL);
+  }
+}
+
+static void
+_exo_ewl_orientation_portrait_cb (Ewl_Widget *widget,
+                                   void       *ev_data __UNUSED__,
+                                   void       *user_data)
+{
+  Ewl_Radiobutton *r;
+  Ewl_Pdf         *pdf;
+
+  r = EWL_RADIOBUTTON (widget);
+  pdf =  EWL_PDF (((Exo_Ewl *)user_data)->pdf);
+
+  if (ewl_radiobutton_is_checked (r)) {
+    ewl_pdf_orientation_set (pdf, EVAS_POPPLER_PAGE_ORIENTATION_PORTRAIT);
+    ewl_callback_call (EWL_WIDGET (pdf), EWL_CALLBACK_REVEAL);
+  }
+}
+
+static void
+_exo_ewl_size_150_cb (Ewl_Widget *widget,
+                      void       *ev_data __UNUSED__,
+                      void       *user_data)
+{
+  Ewl_Radiobutton *r;
+  Ewl_Pdf         *pdf;
+
+  r = EWL_RADIOBUTTON (widget);
+  pdf =  EWL_PDF (((Exo_Ewl *)user_data)->pdf);
+
+  if (ewl_radiobutton_is_checked (r)) {
+    ewl_pdf_scale_set (pdf, 1.5, 1.5);
+    ewl_callback_call (EWL_WIDGET (pdf), EWL_CALLBACK_REVEAL);
+  }
+}
+
+static void
+_exo_ewl_size_100_cb (Ewl_Widget *widget,
+                      void       *ev_data __UNUSED__,
+                      void       *user_data)
+{
+  Ewl_Radiobutton *r;
+  Ewl_Pdf         *pdf;
+
+  r = EWL_RADIOBUTTON (widget);
+  pdf =  EWL_PDF (((Exo_Ewl *)user_data)->pdf);
+
+  if (ewl_radiobutton_is_checked (r)) {
+    ewl_pdf_scale_set (pdf, 1.0, 1.0);
+    ewl_callback_call (EWL_WIDGET (pdf), EWL_CALLBACK_REVEAL);
+  }
+}
+
+static void
+_exo_ewl_size_50_cb (Ewl_Widget *widget,
+                     void       *ev_data __UNUSED__,
+                     void       *user_data)
+{
+  Ewl_Radiobutton *r;
+  Ewl_Pdf         *pdf;
+
+  r = EWL_RADIOBUTTON (widget);
+  pdf =  EWL_PDF (((Exo_Ewl *)user_data)->pdf);
+
+  if (ewl_radiobutton_is_checked (r)) {
+    ewl_pdf_scale_set (pdf, 0.5, 0.5);
+    ewl_callback_call (EWL_WIDGET (pdf), EWL_CALLBACK_REVEAL);
+  }
 }




-------------------------------------------------------
This SF.Net email is sponsored by xPML, a groundbreaking scripting language
that extends applications into web and mobile media. Attend the live webcast
and join the prime developer group breaking into this new coding territory!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to