Mercurial > dwindows
comparison dwtest.c @ 2081:24875681eec5
Added htmlEngine to DWEnv
author | mhessling@81767d24-ef19-dc11-ae90-00e081727c95 |
---|---|
date | Sun, 31 May 2020 05:25:18 +0000 |
parents | 2c2530f8cbef |
children | 524cb235a555 |
comparison
equal
deleted
inserted
replaced
2080:8f08d4c9d3fc | 2081:24875681eec5 |
---|---|
568 int DWSIGNAL helpabout_callback(HWND window, void *data) | 568 int DWSIGNAL helpabout_callback(HWND window, void *data) |
569 { | 569 { |
570 DWEnv env; | 570 DWEnv env; |
571 | 571 |
572 dw_environment_query(&env); | 572 dw_environment_query(&env); |
573 dw_messagebox( "About dwindows", DW_MB_OK | DW_MB_INFORMATION, "dwindows test\n\nOS: %s %s %s Version: %d.%d.%d.%d\n\ndwindows Version: %d.%d.%d", | 573 dw_messagebox( "About dwindows", DW_MB_OK | DW_MB_INFORMATION, "dwindows test\n\nOS: %s %s %s Version: %d.%d.%d.%d HTML: %s\n\ndwindows Version: %d.%d.%d", |
574 env.osName, env.buildDate, env.buildTime, | 574 env.osName, env.buildDate, env.buildTime, |
575 env.MajorVersion, env.MinorVersion, env.MajorBuild, env.MinorBuild, | 575 env.MajorVersion, env.MinorVersion, env.MajorBuild, env.MinorBuild, |
576 env.htmlEngine, | |
576 env.DWMajorVersion, env.DWMinorVersion, env.DWSubVersion ); | 577 env.DWMajorVersion, env.DWMinorVersion, env.DWSubVersion ); |
577 return 0; | 578 return 0; |
578 } | 579 } |
579 | 580 |
580 int DWSIGNAL exit_callback(HWND window, void *data) | 581 int DWSIGNAL exit_callback(HWND window, void *data) |
591 char *tmp; | 592 char *tmp; |
592 tmp = dw_file_browse("Pick a file", "dwtest.c", "c", DW_FILE_OPEN ); | 593 tmp = dw_file_browse("Pick a file", "dwtest.c", "c", DW_FILE_OPEN ); |
593 if ( tmp ) | 594 if ( tmp ) |
594 { | 595 { |
595 HWND notification = dw_notification_new("New file loaded", NULL, "dwtest loaded \"%s\" into the file browser on the Render tab, with \"File Display\" selected from the drop down list.", tmp); | 596 HWND notification = dw_notification_new("New file loaded", NULL, "dwtest loaded \"%s\" into the file browser on the Render tab, with \"File Display\" selected from the drop down list.", tmp); |
596 | 597 |
597 if ( current_file ) | 598 if ( current_file ) |
598 { | 599 { |
599 dw_free( current_file ); | 600 dw_free( current_file ); |
600 } | 601 } |
601 current_file = tmp; | 602 current_file = tmp; |
1697 | 1698 |
1698 /* Handle web back navigation */ | 1699 /* Handle web back navigation */ |
1699 int DWSIGNAL web_back_clicked(HWND button, void *data) | 1700 int DWSIGNAL web_back_clicked(HWND button, void *data) |
1700 { | 1701 { |
1701 HWND html = (HWND)data; | 1702 HWND html = (HWND)data; |
1702 | 1703 |
1703 dw_html_action(html, DW_HTML_GOBACK); | 1704 dw_html_action(html, DW_HTML_GOBACK); |
1704 return FALSE; | 1705 return FALSE; |
1705 } | 1706 } |
1706 | 1707 |
1707 /* Handle web forward navigation */ | 1708 /* Handle web forward navigation */ |
1708 int DWSIGNAL web_forward_clicked(HWND button, void *data) | 1709 int DWSIGNAL web_forward_clicked(HWND button, void *data) |
1709 { | 1710 { |
1710 HWND html = (HWND)data; | 1711 HWND html = (HWND)data; |
1711 | 1712 |
1712 dw_html_action(html, DW_HTML_GOFORWARD); | 1713 dw_html_action(html, DW_HTML_GOFORWARD); |
1713 return FALSE; | 1714 return FALSE; |
1714 } | 1715 } |
1715 | 1716 |
1716 /* Handle web reload */ | 1717 /* Handle web reload */ |
1717 int DWSIGNAL web_reload_clicked(HWND button, void *data) | 1718 int DWSIGNAL web_reload_clicked(HWND button, void *data) |
1718 { | 1719 { |
1719 HWND html = (HWND)data; | 1720 HWND html = (HWND)data; |
1720 | 1721 |
1721 dw_html_action(html, DW_HTML_RELOAD); | 1722 dw_html_action(html, DW_HTML_RELOAD); |
1722 return FALSE; | 1723 return FALSE; |
1723 } | 1724 } |
1724 | 1725 |
1725 /* Handle web run */ | 1726 /* Handle web run */ |
1726 int DWSIGNAL web_run_clicked(HWND button, void *data) | 1727 int DWSIGNAL web_run_clicked(HWND button, void *data) |
1727 { | 1728 { |
1728 HWND html = (HWND)data; | 1729 HWND html = (HWND)data; |
1729 HWND javascript = (HWND)dw_window_get_data(button, "javascript"); | 1730 HWND javascript = (HWND)dw_window_get_data(button, "javascript"); |
1730 char *script = dw_window_get_text(javascript); | 1731 char *script = dw_window_get_text(javascript); |
1731 | 1732 |
1732 dw_html_javascript_run(html, script, NULL); | 1733 dw_html_javascript_run(html, script, NULL); |
1733 dw_free(script); | 1734 dw_free(script); |
1734 return FALSE; | 1735 return FALSE; |
1735 } | 1736 } |
1736 | 1737 |
1737 /* Handle web javascript result */ | 1738 /* Handle web javascript result */ |
1738 int DWSIGNAL web_html_result(HWND html, int status, char *result, void *script_data, void *user_data) | 1739 int DWSIGNAL web_html_result(HWND html, int status, char *result, void *script_data, void *user_data) |
1739 { | 1740 { |
1740 dw_messagebox("Javascript Result", DW_MB_OK | (status ? DW_MB_ERROR : DW_MB_INFORMATION), | 1741 dw_messagebox("Javascript Result", DW_MB_OK | (status ? DW_MB_ERROR : DW_MB_INFORMATION), |
1741 result ? result : "Javascript result is not a string value"); | 1742 result ? result : "Javascript result is not a string value"); |
1742 return TRUE; | 1743 return TRUE; |
1743 } | 1744 } |
1744 | 1745 |
1745 /* Handle web html changed */ | 1746 /* Handle web html changed */ |
1746 int DWSIGNAL web_html_changed(HWND html, int status, char *url, void *data) | 1747 int DWSIGNAL web_html_changed(HWND html, int status, char *url, void *data) |
1747 { | 1748 { |
1748 HWND hwndstatus = (HWND)data; | 1749 HWND hwndstatus = (HWND)data; |
1749 char *statusnames[] = { "none", "started", "redirect", "loading", "complete", NULL }; | 1750 char *statusnames[] = { "none", "started", "redirect", "loading", "complete", NULL }; |
1750 | 1751 |
1751 if(hwndstatus && url && status < 5) | 1752 if(hwndstatus && url && status < 5) |
1752 { | 1753 { |
1753 int length = (int)strlen(url) + (int)strlen(statusnames[status]) + 10; | 1754 int length = (int)strlen(url) + (int)strlen(statusnames[status]) + 10; |
1754 char *text = calloc(1, length+1); | 1755 char *text = calloc(1, length+1); |
1755 | 1756 |
1756 snprintf(text, length, "Status %s: %s", statusnames[status], url); | 1757 snprintf(text, length, "Status %s: %s", statusnames[status], url); |
1757 dw_window_set_text(hwndstatus, text); | 1758 dw_window_set_text(hwndstatus, text); |
1758 free(text); | 1759 free(text); |
1759 } | 1760 } |
1760 return FALSE; | 1761 return FALSE; |
1761 } | 1762 } |
1762 | 1763 |
1763 /* | 1764 /* |
1764 * Let's demonstrate the functionality of this library. :) | 1765 * Let's demonstrate the functionality of this library. :) |
1844 { | 1845 { |
1845 HWND htmlstatus; | 1846 HWND htmlstatus; |
1846 HWND hbox = dw_box_new(DW_HORZ, 0); | 1847 HWND hbox = dw_box_new(DW_HORZ, 0); |
1847 HWND item; | 1848 HWND item; |
1848 HWND javascript = dw_combobox_new("", 0); | 1849 HWND javascript = dw_combobox_new("", 0); |
1849 | 1850 |
1850 dw_listbox_append(javascript, "window.scrollTo(0,500);"); | 1851 dw_listbox_append(javascript, "window.scrollTo(0,500);"); |
1851 dw_listbox_append(javascript, "window.document.title;"); | 1852 dw_listbox_append(javascript, "window.document.title;"); |
1852 | 1853 |
1853 dw_box_pack_start( notebookbox7, rawhtml, 0, 100, TRUE, FALSE, 0); | 1854 dw_box_pack_start( notebookbox7, rawhtml, 0, 100, TRUE, FALSE, 0); |
1854 dw_html_raw(rawhtml, "<html><body><center><h1>dwtest</h1></center></body></html>"); | 1855 dw_html_raw(rawhtml, "<html><body><center><h1>dwtest</h1></center></body></html>"); |
1855 html = dw_html_new(1002); | 1856 html = dw_html_new(1002); |
1856 | 1857 |
1857 dw_box_pack_start(notebookbox7, hbox, 0, 0, TRUE, FALSE, 0); | 1858 dw_box_pack_start(notebookbox7, hbox, 0, 0, TRUE, FALSE, 0); |
1858 | 1859 |
1859 /* Add navigation buttons */ | 1860 /* Add navigation buttons */ |
1860 item = dw_button_new("Back", 0); | 1861 item = dw_button_new("Back", 0); |
1861 dw_box_pack_start(hbox, item, -1, -1, FALSE, FALSE, 0); | 1862 dw_box_pack_start(hbox, item, -1, -1, FALSE, FALSE, 0); |
1862 dw_signal_connect(item, DW_SIGNAL_CLICKED, DW_SIGNAL_FUNC(web_back_clicked), DW_POINTER(html)); | 1863 dw_signal_connect(item, DW_SIGNAL_CLICKED, DW_SIGNAL_FUNC(web_back_clicked), DW_POINTER(html)); |
1863 | 1864 |
1864 item = dw_button_new("Forward", 0); | 1865 item = dw_button_new("Forward", 0); |
1865 dw_box_pack_start(hbox, item, -1, -1, FALSE, FALSE, 0); | 1866 dw_box_pack_start(hbox, item, -1, -1, FALSE, FALSE, 0); |
1866 dw_signal_connect(item, DW_SIGNAL_CLICKED, DW_SIGNAL_FUNC(web_forward_clicked), DW_POINTER(html)); | 1867 dw_signal_connect(item, DW_SIGNAL_CLICKED, DW_SIGNAL_FUNC(web_forward_clicked), DW_POINTER(html)); |
1867 | 1868 |
1868 /* Put in some extra space */ | 1869 /* Put in some extra space */ |
1869 dw_box_pack_start(hbox, 0, 5, 1, FALSE, FALSE, 0); | 1870 dw_box_pack_start(hbox, 0, 5, 1, FALSE, FALSE, 0); |
1870 | 1871 |
1871 item = dw_button_new("Reload", 0); | 1872 item = dw_button_new("Reload", 0); |
1872 dw_box_pack_start(hbox, item, -1, -1, FALSE, FALSE, 0); | 1873 dw_box_pack_start(hbox, item, -1, -1, FALSE, FALSE, 0); |
1873 dw_signal_connect(item, DW_SIGNAL_CLICKED, DW_SIGNAL_FUNC(web_reload_clicked), DW_POINTER(html)); | 1874 dw_signal_connect(item, DW_SIGNAL_CLICKED, DW_SIGNAL_FUNC(web_reload_clicked), DW_POINTER(html)); |
1874 | 1875 |
1875 /* Put in some extra space */ | 1876 /* Put in some extra space */ |
1876 dw_box_pack_start(hbox, 0, 5, 1, FALSE, FALSE, 0); | 1877 dw_box_pack_start(hbox, 0, 5, 1, FALSE, FALSE, 0); |
1877 dw_box_pack_start(hbox, javascript, -1, -1, TRUE, FALSE, 0); | 1878 dw_box_pack_start(hbox, javascript, -1, -1, TRUE, FALSE, 0); |
1878 | 1879 |
1879 item = dw_button_new("Run", 0); | 1880 item = dw_button_new("Run", 0); |
1880 dw_window_set_data(item, "javascript", DW_POINTER(javascript)); | 1881 dw_window_set_data(item, "javascript", DW_POINTER(javascript)); |
1881 dw_box_pack_start(hbox, item, -1, -1, FALSE, FALSE, 0); | 1882 dw_box_pack_start(hbox, item, -1, -1, FALSE, FALSE, 0); |
1882 dw_signal_connect(item, DW_SIGNAL_CLICKED, DW_SIGNAL_FUNC(web_run_clicked), DW_POINTER(html)); | 1883 dw_signal_connect(item, DW_SIGNAL_CLICKED, DW_SIGNAL_FUNC(web_run_clicked), DW_POINTER(html)); |
1883 dw_window_click_default(javascript, item); | 1884 dw_window_click_default(javascript, item); |
1884 | 1885 |
1885 dw_box_pack_start( notebookbox7, html, 0, 100, TRUE, TRUE, 0); | 1886 dw_box_pack_start( notebookbox7, html, 0, 100, TRUE, TRUE, 0); |
1886 dw_html_url(html, "http://dwindows.netlabs.org"); | 1887 dw_html_url(html, "http://dwindows.netlabs.org"); |
1887 htmlstatus = dw_status_text_new("HTML status loading...", 0); | 1888 htmlstatus = dw_status_text_new("HTML status loading...", 0); |
1888 dw_box_pack_start( notebookbox7, htmlstatus, 100, -1, TRUE, FALSE, 1); | 1889 dw_box_pack_start( notebookbox7, htmlstatus, 100, -1, TRUE, FALSE, 1); |
1889 dw_signal_connect(html, DW_SIGNAL_HTML_CHANGED, DW_SIGNAL_FUNC(web_html_changed), DW_POINTER(htmlstatus)); | 1890 dw_signal_connect(html, DW_SIGNAL_HTML_CHANGED, DW_SIGNAL_FUNC(web_html_changed), DW_POINTER(htmlstatus)); |