Mercurial > dwindows
comparison dwtest.c @ 2009:8577d533b371
Added controls to the test HTML widget, with a field to run javascript.
author | bsmith@81767d24-ef19-dc11-ae90-00e081727c95 |
---|---|
date | Thu, 07 Nov 2019 01:39:52 +0000 |
parents | 74facb490f5a |
children | 617a78dc70aa |
comparison
equal
deleted
inserted
replaced
2008:74facb490f5a | 2009:8577d533b371 |
---|---|
1694 dw_event_close(&controlevent); | 1694 dw_event_close(&controlevent); |
1695 update_mle("Control thread finished.\r\n", TRUE); | 1695 update_mle("Control thread finished.\r\n", TRUE); |
1696 dw_window_enable(startbutton); | 1696 dw_window_enable(startbutton); |
1697 } | 1697 } |
1698 | 1698 |
1699 /* Handle web back navigation */ | |
1700 int DWSIGNAL web_back_clicked(HWND button, void *data) | |
1701 { | |
1702 HWND html = (HWND)data; | |
1703 | |
1704 dw_html_action(html, DW_HTML_GOBACK); | |
1705 return FALSE; | |
1706 } | |
1707 | |
1708 /* Handle web forward navigation */ | |
1709 int DWSIGNAL web_forward_clicked(HWND button, void *data) | |
1710 { | |
1711 HWND html = (HWND)data; | |
1712 | |
1713 dw_html_action(html, DW_HTML_GOFORWARD); | |
1714 return FALSE; | |
1715 } | |
1716 | |
1717 /* Handle web reload */ | |
1718 int DWSIGNAL web_reload_clicked(HWND button, void *data) | |
1719 { | |
1720 HWND html = (HWND)data; | |
1721 | |
1722 dw_html_action(html, DW_HTML_RELOAD); | |
1723 return FALSE; | |
1724 } | |
1725 | |
1726 /* Handle web run */ | |
1727 int DWSIGNAL web_run_clicked(HWND button, void *data) | |
1728 { | |
1729 HWND html = (HWND)data; | |
1730 HWND javascript = (HWND)dw_window_get_data(button, "javascript"); | |
1731 char *script = dw_window_get_text(javascript); | |
1732 | |
1733 dw_html_javascript_run(html, script, NULL); | |
1734 dw_free(script); | |
1735 return FALSE; | |
1736 } | |
1737 | |
1738 /* Handle web javascript result */ | |
1739 int DWSIGNAL web_html_result(HWND html, int status, char *result, void *user_data, void *script_data) | |
1740 { | |
1741 dw_messagebox("Javascript Result", DW_MB_OK | (status ? DW_MB_ERROR : DW_MB_INFORMATION), result); | |
1742 return TRUE; | |
1743 } | |
1744 | |
1699 /* Handle web html changed */ | 1745 /* Handle web html changed */ |
1700 int DWSIGNAL web_html_changed(HWND html, int status, char *url, void *data) | 1746 int DWSIGNAL web_html_changed(HWND html, int status, char *url, void *data) |
1701 { | 1747 { |
1702 HWND hwndstatus = (HWND)data; | 1748 HWND hwndstatus = (HWND)data; |
1703 char *statusnames[] = { "none", "started", "redirect", "loading", "complete", NULL }; | 1749 char *statusnames[] = { "none", "started", "redirect", "loading", "complete", NULL }; |
1795 | 1841 |
1796 rawhtml = dw_html_new(1001); | 1842 rawhtml = dw_html_new(1001); |
1797 if(rawhtml) | 1843 if(rawhtml) |
1798 { | 1844 { |
1799 HWND htmlstatus; | 1845 HWND htmlstatus; |
1800 | 1846 HWND hbox = dw_box_new(DW_HORZ, 0); |
1847 HWND item; | |
1848 HWND javascript = dw_entryfield_new("window.scrollTo(0,500);", 0); | |
1849 | |
1801 dw_box_pack_start( notebookbox7, rawhtml, 0, 100, TRUE, FALSE, 0); | 1850 dw_box_pack_start( notebookbox7, rawhtml, 0, 100, TRUE, FALSE, 0); |
1802 dw_html_raw(rawhtml, "<html><body><center><h1>dwtest</h1></center></body></html>"); | 1851 dw_html_raw(rawhtml, "<html><body><center><h1>dwtest</h1></center></body></html>"); |
1803 html = dw_html_new(1002); | 1852 html = dw_html_new(1002); |
1853 | |
1854 dw_box_pack_start(notebookbox7, hbox, 0, 0, TRUE, FALSE, 0); | |
1855 | |
1856 /* Add navigation buttons */ | |
1857 item = dw_button_new("Back", 0); | |
1858 dw_box_pack_start(hbox, item, -1, -1, FALSE, FALSE, 0); | |
1859 dw_signal_connect(item, DW_SIGNAL_CLICKED, DW_SIGNAL_FUNC(web_back_clicked), DW_POINTER(html)); | |
1860 | |
1861 item = dw_button_new("Forward", 0); | |
1862 dw_box_pack_start(hbox, item, -1, -1, FALSE, FALSE, 0); | |
1863 dw_signal_connect(item, DW_SIGNAL_CLICKED, DW_SIGNAL_FUNC(web_forward_clicked), DW_POINTER(html)); | |
1864 | |
1865 /* Put in some extra space */ | |
1866 dw_box_pack_start(hbox, 0, 5, 1, FALSE, FALSE, 0); | |
1867 | |
1868 item = dw_button_new("Reload", 0); | |
1869 dw_box_pack_start(hbox, item, -1, -1, FALSE, FALSE, 0); | |
1870 dw_signal_connect(item, DW_SIGNAL_CLICKED, DW_SIGNAL_FUNC(web_reload_clicked), DW_POINTER(html)); | |
1871 | |
1872 /* Put in some extra space */ | |
1873 dw_box_pack_start(hbox, 0, 5, 1, FALSE, FALSE, 0); | |
1874 dw_box_pack_start(hbox, javascript, -1, -1, TRUE, FALSE, 0); | |
1875 | |
1876 item = dw_button_new("Run", 0); | |
1877 dw_window_set_data(item, "javascript", DW_POINTER(javascript)); | |
1878 dw_box_pack_start(hbox, item, -1, -1, FALSE, FALSE, 0); | |
1879 dw_signal_connect(item, DW_SIGNAL_CLICKED, DW_SIGNAL_FUNC(web_run_clicked), DW_POINTER(html)); | |
1880 dw_window_click_default(javascript, item); | |
1881 | |
1804 dw_box_pack_start( notebookbox7, html, 0, 100, TRUE, TRUE, 0); | 1882 dw_box_pack_start( notebookbox7, html, 0, 100, TRUE, TRUE, 0); |
1805 dw_html_url(html, "http://dwindows.netlabs.org"); | 1883 dw_html_url(html, "http://dwindows.netlabs.org"); |
1806 htmlstatus = dw_status_text_new("HTML status loading...", 0); | 1884 htmlstatus = dw_status_text_new("HTML status loading...", 0); |
1807 dw_box_pack_start( notebookbox7, htmlstatus, 100, -1, TRUE, FALSE, 1); | 1885 dw_box_pack_start( notebookbox7, htmlstatus, 100, -1, TRUE, FALSE, 1); |
1808 dw_signal_connect(html, DW_SIGNAL_HTML_CHANGED, DW_SIGNAL_FUNC(web_html_changed), DW_POINTER(htmlstatus)); | 1886 dw_signal_connect(html, DW_SIGNAL_HTML_CHANGED, DW_SIGNAL_FUNC(web_html_changed), DW_POINTER(htmlstatus)); |
1887 dw_signal_connect(html, DW_SIGNAL_HTML_RESULT, DW_SIGNAL_FUNC(web_html_result), DW_POINTER(javascript)); | |
1809 } | 1888 } |
1810 else | 1889 else |
1811 { | 1890 { |
1812 html = dw_text_new("HTML widget not available.", 0); | 1891 html = dw_text_new("HTML widget not available.", 0); |
1813 dw_box_pack_start( notebookbox7, html, 0, 100, TRUE, TRUE, 0); | 1892 dw_box_pack_start( notebookbox7, html, 0, 100, TRUE, TRUE, 0); |