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);