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