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