Mercurial > godwindows
changeset 118:5962894873f1 3.2
Add new constants introduced in dwindows 3.2 to the go bindings.
Switch to using dw.SIZE_AUTO instead of -1 when packing boxes.
Update dwib/dwibtest with the same changes as the core dw/dwtest/dwootest:
Switch to using C.uinptr_t to save handles instead of unsafe.Pointer.
We can't use C.uintptr_t between dw and dwib packages... so use uintptr type
to convert between the two C.uinptr_t subtypes. Hopefully this is safe.
author | Brian Smith <brian@dbsoft.org> |
---|---|
date | Mon, 20 Dec 2021 07:57:52 -0600 |
parents | 8727f47ee3ce |
children | b9082c35aef3 |
files | dw/dw.go dwib/dwib.go dwib/dwibglue.c dwibtest/dwibtest.go dwootest/dwootest.go dwtest/dwtest.go |
diffstat | 6 files changed, 100 insertions(+), 90 deletions(-) [+] |
line wrap: on
line diff
--- a/dw/dw.go Fri Nov 12 06:54:27 2021 -0600 +++ b/dw/dw.go Mon Dec 20 07:57:52 2021 -0600 @@ -237,8 +237,13 @@ var MENU_AUTO uint = C.DW_MENU_AUTO var MENU_POPUP uint = ^uint(0) +/* Miscellanseous constants */ var PERCENT_INDETERMINATE uint = ^uint(0) +var SIZE_AUTO = C.DW_SIZE_AUTO + +var DIR_SEPARATOR = C.DW_DIR_SEPARATOR + /* Return value error codes */ var ERROR_NONE = C.DW_ERROR_NONE var ERROR_GENERAL = C.DW_ERROR_GENERAL @@ -485,6 +490,11 @@ return h.Value().(HANDLE) } +// Convert a uintptr to a HWND (use with care) +func UINTPTR_TO_HWND(ptr uintptr) HWND { + return HWND{C.uintptr_t(ptr)} +} + // Convert a HANDLE to a UINTPTR, mostly used for display purposes func HANDLE_TO_UINTPTR(handle HANDLE) uintptr { return uintptr(handle.GetHandle())
--- a/dwib/dwib.go Fri Nov 12 06:54:27 2021 -0600 +++ b/dwib/dwib.go Mon Dec 20 07:57:52 2021 -0600 @@ -13,14 +13,14 @@ import "unsafe" import "hg.code.sf.net/p/godwindows/code.hg/dw" -type DWIB unsafe.Pointer +type DWIB C.uintptr_t // Loads a window with the specified name from an XML tree. func Load(handle DWIB, name string) dw.HWND { cname := C.CString(name) defer C.free(unsafe.Pointer(cname)) - return dw.HANDLE_TO_HWND(dw.POINTER_TO_HANDLE(dw.POINTER(C.goib_load(unsafe.Pointer(handle), cname)))) + return dw.UINTPTR_TO_HWND(uintptr(C.goib_load(C.uintptr_t(handle), cname))) } // Loads a part of a window layout specified by dataname with the specified window name from an XML tree and packs it into box at index. @@ -30,7 +30,7 @@ cdataname := C.CString(dataname) defer C.free(unsafe.Pointer(cdataname)) - return int(C.goib_load_at_index(unsafe.Pointer(handle), cname, cdataname, unsafe.Pointer(dw.HANDLE_TO_POINTER(window)), unsafe.Pointer(dw.HANDLE_TO_POINTER(box)), C.int(index))) + return int(C.goib_load_at_index(C.uintptr_t(handle), cname, cdataname, C.uintptr_t(dw.HANDLE_TO_UINTPTR(window)), C.uintptr_t(dw.HANDLE_TO_UINTPTR(box)), C.int(index))) } // Loads a part of a window layout specified by dataname with the specified window name from an XML tree and packs it into box at index. @@ -40,7 +40,7 @@ // Shows a window loaded with dwib.Load() using the stored settings. func Show(handle dw.HANDLE) { - C.goib_show(unsafe.Pointer(dw.HANDLE_TO_POINTER(handle))) + C.goib_show(C.uintptr_t(dw.HANDLE_TO_UINTPTR(handle))) } // Loads an XML templates and returns a handle to the XML tree. @@ -53,7 +53,7 @@ // Closes a handle to an XML tree returned by dwib.Open*() and frees the memory associated with the tree. func Close(handle DWIB) { - C.goib_close(unsafe.Pointer(handle)) + C.goib_close(C.uintptr_t(handle)) } // Update the location of the image root for locating image files. @@ -87,7 +87,7 @@ cdataname := C.CString(dataname) defer C.free(unsafe.Pointer(cdataname)) - return dw.POINTER_TO_HANDLE(dw.POINTER(C.goib_window_get_handle(unsafe.Pointer(dw.HANDLE_TO_POINTER(handle)), cdataname))) + return dw.UINTPTR_TO_HWND(uintptr(C.goib_window_get_handle(C.uintptr_t(dw.HANDLE_TO_UINTPTR(handle)), cdataname))) } // Gets the window handle for a named widget.
--- a/dwib/dwibglue.c Fri Nov 12 06:54:27 2021 -0600 +++ b/dwib/dwibglue.c Mon Dec 20 07:57:52 2021 -0600 @@ -2,27 +2,27 @@ #include <stdlib.h> #include <string.h> -static void *goib_load(void *handle, char *name) +static uintptr_t goib_load(uintptr_t handle, char *name) { - return (void *)dwib_load((DWIB)handle, name); + return (uintptr_t)dwib_load((DWIB)handle, name); } -static int goib_load_at_index(void *handle, char *name, char *dataname, void *window, void *box, int index) +static int goib_load_at_index(uintptr_t handle, char *name, char *dataname, uintptr_t window, uintptr_t box, int index) { return dwib_load_at_index((DWIB)handle, name, dataname, (HWND)window, (HWND)box, index); } -static void goib_show(void *window) +static void goib_show(uintptr_t window) { dwib_show((HWND)window); } -static void *goib_open(char *filename) +static uintptr_t goib_open(char *filename) { - return (void *)dwib_open(filename); + return (uintptr_t)dwib_open(filename); } -static void goib_close(void *handle) +static void goib_close(uintptr_t handle) { dwib_close((DWIB)handle); } @@ -37,7 +37,7 @@ return dwib_locale_set(loc); } -static void *goib_window_get_handle(void *handle, char *dataname) +static uintptr_t goib_window_get_handle(uintptr_t handle, char *dataname) { - return (void *)dwib_window_get_handle((HWND)handle, dataname); + return (uintptr_t)dwib_window_get_handle((HWND)handle, dataname); }
--- a/dwibtest/dwibtest.go Fri Nov 12 06:54:27 2021 -0600 +++ b/dwibtest/dwibtest.go Mon Dec 20 07:57:52 2021 -0600 @@ -39,12 +39,12 @@ /* Load the interface XML file */ handle := dwib.Open("example.xml") - if handle == nil && len(SRCROOT) > 0 { + if handle == 0 && len(SRCROOT) > 0 { handle = dwib.Open(fmt.Sprintf("%s/example.xml", SRCROOT)) } /* Show an error if it fails to load */ - if handle == nil { + if handle == 0 { dw.MessageBox(APP_NAME, dw.MB_OK|dw.MB_ERROR, "Unable to load the interface XML.") return }
--- a/dwootest/dwootest.go Fri Nov 12 06:54:27 2021 -0600 +++ b/dwootest/dwootest.go Mon Dec 20 07:57:52 2021 -0600 @@ -670,15 +670,15 @@ copypastefield.SetLimit(260) - browsebox.PackStart(copypastefield, -1, -1, dw.TRUE, dw.FALSE, 4) + browsebox.PackStart(copypastefield, dw.SIZE_AUTO, dw.SIZE_AUTO, dw.TRUE, dw.FALSE, 4) copybutton := dw.ButtonNew("Copy", 0) - browsebox.PackStart(copybutton, -1, -1, dw.FALSE, dw.FALSE, 0) + browsebox.PackStart(copybutton, dw.SIZE_AUTO, dw.SIZE_AUTO, dw.FALSE, dw.FALSE, 0) pastebutton := dw.ButtonNew("Paste", 0) - browsebox.PackStart(pastebutton, -1, -1, dw.FALSE, dw.FALSE, 0) + browsebox.PackStart(pastebutton, dw.SIZE_AUTO, dw.SIZE_AUTO, dw.FALSE, dw.FALSE, 0) /* Archive Name */ stext := dw.TextNew("File to browse", 0) @@ -808,9 +808,9 @@ hbox := dw.BoxNew(dw.HORZ, 1) notebookbox2.PackStart(hbox, 100, 20, dw.TRUE, dw.FALSE, 1) status1 = dw.StatusTextNew("", 0) - hbox.PackStart(status1, 100, -1, dw.TRUE, dw.FALSE, 1) + hbox.PackStart(status1, 100, dw.SIZE_AUTO, dw.TRUE, dw.FALSE, 1) status2 = dw.StatusTextNew("", 0) - hbox.PackStart(status2, 100, -1, dw.TRUE, dw.FALSE, 1) + hbox.PackStart(status2, 100, dw.SIZE_AUTO, dw.TRUE, dw.FALSE, 1) /* a box with combobox and button */ hbox = dw.BoxNew(dw.HORZ, 1) notebookbox2.PackStart(hbox, 100, 25, dw.TRUE, dw.FALSE, 1) @@ -821,12 +821,12 @@ rendcombo.Append("File Display") label := dw.TextNew("Image X:", 100) label.SetStyle(dw.DT_VCENTER|dw.DT_CENTER, dw.DT_VCENTER|dw.DT_CENTER) - hbox.PackStart(label, -1, 25, dw.FALSE, dw.TRUE, 0) + hbox.PackStart(label, dw.SIZE_AUTO, 25, dw.FALSE, dw.TRUE, 0) imagexspin = dw.SpinButtonNew("20", 1021) hbox.PackStart(imagexspin, 25, 25, dw.TRUE, dw.TRUE, 0) label = dw.TextNew("Y:", 100) label.SetStyle(dw.DT_VCENTER|dw.DT_CENTER, dw.DT_VCENTER|dw.DT_CENTER) - hbox.PackStart(label, -1, 25, dw.FALSE, dw.TRUE, 0) + hbox.PackStart(label, dw.SIZE_AUTO, 25, dw.FALSE, dw.TRUE, 0) imageyspin = dw.SpinButtonNew("20", 1021) hbox.PackStart(imageyspin, 25, 25, dw.TRUE, dw.TRUE, 0) imagexspin.SetLimits(2000, 0) @@ -834,12 +834,12 @@ imagexspin.SetPos(20) imageyspin.SetPos(20) imagestretchcheck = dw.CheckButtonNew("Stretch", 1021) - hbox.PackStart(imagestretchcheck, -1, 25, dw.FALSE, dw.TRUE, 0) + hbox.PackStart(imagestretchcheck, dw.SIZE_AUTO, 25, dw.FALSE, dw.TRUE, 0) button1 := dw.ButtonNew("Refresh", 1223) - hbox.PackStart(button1, -1, 25, dw.FALSE, dw.TRUE, 0) + hbox.PackStart(button1, dw.SIZE_AUTO, 25, dw.FALSE, dw.TRUE, 0) button2 := dw.ButtonNew("Print", 1224) - hbox.PackStart(button2, -1, 25, dw.FALSE, dw.TRUE, 0) + hbox.PackStart(button2, dw.SIZE_AUTO, 25, dw.FALSE, dw.TRUE, 0) /* Pre-create the scrollbars so we can query their sizes */ vscrollbar = dw.ScrollbarNew(dw.VERT, 50) @@ -879,11 +879,11 @@ textboxA.PackStart(textbox2, 10, 10, dw.TRUE, dw.TRUE, 0) textbox2.SetFont(FIXEDFONT) /* create horizonal scrollbar */ - textboxA.PackStart(hscrollbar, -1, -1, dw.TRUE, dw.FALSE, 0) + textboxA.PackStart(hscrollbar, dw.SIZE_AUTO, dw.SIZE_AUTO, dw.TRUE, dw.FALSE, 0) /* create vertical scrollbar */ vscrollbox = dw.BoxNew(dw.VERT, 0) - vscrollbox.PackStart(vscrollbar, -1, -1, dw.FALSE, dw.TRUE, 0) + vscrollbox.PackStart(vscrollbar, dw.SIZE_AUTO, dw.SIZE_AUTO, dw.FALSE, dw.TRUE, 0) /* Pack an area of empty space 14x14 pixels */ vscrollbox.PackStart(dw.NOHWND, vscrollbarwidth, hscrollbarheight, dw.FALSE, dw.FALSE, 0) pagebox.PackStart(vscrollbox, 0, 0, dw.FALSE, dw.TRUE, 0) @@ -1007,7 +1007,7 @@ /* and a status area to see whats going on */ tree_status := dw.StatusTextNew("", 0) - notebookbox3.PackStart(tree_status, 100, -1, dw.TRUE, dw.FALSE, 1) + notebookbox3.PackStart(tree_status, 100, dw.SIZE_AUTO, dw.TRUE, dw.FALSE, 1) /* set up our signal trappers... */ tree.ConnectItemContext(func(window dw.HTREE, text string, x int, y int, itemdata dw.POINTER) int { @@ -1050,23 +1050,23 @@ hbox := dw.BoxNew(dw.HORZ, 0) checkbox := dw.CheckButtonNew("Word wrap", 0) - hbox.PackStart(checkbox, -1, -1, dw.FALSE, dw.TRUE, 1) + hbox.PackStart(checkbox, dw.SIZE_AUTO, dw.SIZE_AUTO, dw.FALSE, dw.TRUE, 1) text := dw.TextNew("Foreground:", 0) text.SetStyle(dw.DT_VCENTER, dw.DT_VCENTER) - hbox.PackStart(text, -1, -1, dw.FALSE, dw.TRUE, 1) + hbox.PackStart(text, dw.SIZE_AUTO, dw.SIZE_AUTO, dw.FALSE, dw.TRUE, 1) mlefore := color_combobox() - hbox.PackStart(mlefore, 150, -1, dw.TRUE, dw.FALSE, 1) + hbox.PackStart(mlefore, 150, dw.SIZE_AUTO, dw.TRUE, dw.FALSE, 1) text = dw.TextNew("Background:", 0) text.SetStyle(dw.DT_VCENTER, dw.DT_VCENTER) - hbox.PackStart(text, -1, -1, dw.FALSE, dw.TRUE, 1) + hbox.PackStart(text, dw.SIZE_AUTO, dw.SIZE_AUTO, dw.FALSE, dw.TRUE, 1) mleback := color_combobox() - hbox.PackStart(mleback, 150, -1, dw.TRUE, dw.FALSE, 1) + hbox.PackStart(mleback, 150, dw.SIZE_AUTO, dw.TRUE, dw.FALSE, 1) checkbox.Set(dw.TRUE) text = dw.TextNew("Font:", 0) text.SetStyle(dw.DT_VCENTER, dw.DT_VCENTER) - hbox.PackStart(text, -1, -1, dw.FALSE, dw.TRUE, 1) + hbox.PackStart(text, dw.SIZE_AUTO, dw.SIZE_AUTO, dw.FALSE, dw.TRUE, 1) fontsize := dw.SpinButtonNew("9", 0) - hbox.PackStart(fontsize, -1, -1, dw.FALSE, dw.FALSE, 1) + hbox.PackStart(fontsize, dw.SIZE_AUTO, dw.SIZE_AUTO, dw.FALSE, dw.FALSE, 1) fontsize.SetLimits(100, 5) fontsize.SetPos(9) fontname := dw.ComboboxNew("Default", 0) @@ -1080,8 +1080,8 @@ fontname.Append("Times New Roman Bold") fontname.Append("Times New Roman Italic") fontname.Append("Times New Roman Bold Italic") - hbox.PackStart(fontname, 150, -1, dw.TRUE, dw.FALSE, 1) - notebookbox4.PackStart(hbox, -1, -1, dw.TRUE, dw.FALSE, 1) + hbox.PackStart(fontname, 150, dw.SIZE_AUTO, dw.TRUE, dw.FALSE, 1) + notebookbox4.PackStart(hbox, dw.SIZE_AUTO, dw.SIZE_AUTO, dw.TRUE, dw.FALSE, 1) /* now a container area under this box */ container := dw.ContainerNew(100, dw.TRUE) @@ -1089,7 +1089,7 @@ /* and a status area to see whats going on */ container_status := dw.StatusTextNew("", 0) - notebookbox4.PackStart(container_status, 100, -1, dw.TRUE, dw.FALSE, 1) + notebookbox4.PackStart(container_status, 100, dw.SIZE_AUTO, dw.TRUE, dw.FALSE, 1) container.SetColumnTitle("Test") container.FileSystemSetup(flags, titles) @@ -1305,10 +1305,10 @@ notebookbox5.PackStart(combox, 25, 200, dw.TRUE, dw.FALSE, 0) combobox1 := dw.ComboboxNew("fred", 0) /* no point in specifying an initial value */ combobox1.Append("fred") - combox.PackStart(combobox1, -1, -1, dw.TRUE, dw.FALSE, 0) + combox.PackStart(combobox1, dw.SIZE_AUTO, dw.SIZE_AUTO, dw.TRUE, dw.FALSE, 0) combobox2 := dw.ComboboxNew("joe", 0) /* no point in specifying an initial value */ - combox.PackStart(combobox2, -1, -1, dw.TRUE, dw.FALSE, 0) + combox.PackStart(combobox2, dw.SIZE_AUTO, dw.SIZE_AUTO, dw.TRUE, dw.FALSE, 0) /* add LOTS of items */ fmt.Printf("before appending 500 items to combobox using dw_listbox_list_append()\n") text := make([]string, 500) @@ -1322,16 +1322,16 @@ combobox2.Insert("inserted item 5", 5) /* make a spinbutton */ spinbutton := dw.SpinButtonNew("", 0) /* no point in specifying text */ - combox.PackStart(spinbutton, -1, -1, dw.TRUE, dw.FALSE, 0) + combox.PackStart(spinbutton, dw.SIZE_AUTO, dw.SIZE_AUTO, dw.TRUE, dw.FALSE, 0) spinbutton.SetLimits(100, 1) spinbutton.SetPos(30) /* make a slider */ slider := dw.SliderNew(dw.FALSE, 11, 0) /* no point in specifying text */ - combox.PackStart(slider, -1, -1, dw.TRUE, dw.FALSE, 0) + combox.PackStart(slider, dw.SIZE_AUTO, dw.SIZE_AUTO, dw.TRUE, dw.FALSE, 0) /* Pack the percent */ - combox.PackStart(percent, -1, -1, dw.TRUE, dw.FALSE, 0) + combox.PackStart(percent, dw.SIZE_AUTO, dw.SIZE_AUTO, dw.TRUE, dw.FALSE, 0) /* Connect the handlers */ abutton1.ConnectClicked(func(window dw.HBUTTON) int { button_callback(combobox1, combobox2, spinbutton, cal); return dw.TRUE }) @@ -1397,14 +1397,14 @@ /* Add navigation buttons */ item := dw.ButtonNew("Back", 0) - hbox.PackStart(item, -1, -1, dw.FALSE, dw.FALSE, 0) + hbox.PackStart(item, dw.SIZE_AUTO, dw.SIZE_AUTO, dw.FALSE, dw.FALSE, 0) item.ConnectClicked(func(window dw.HBUTTON) int { html.Action(dw.HTML_GOBACK) return dw.FALSE }) item = dw.ButtonNew("Forward", 0) - hbox.PackStart(item, -1, -1, dw.FALSE, dw.FALSE, 0) + hbox.PackStart(item, dw.SIZE_AUTO, dw.SIZE_AUTO, dw.FALSE, dw.FALSE, 0) item.ConnectClicked(func(window dw.HBUTTON) int { html.Action(dw.HTML_GOFORWARD) return dw.FALSE @@ -1414,7 +1414,7 @@ hbox.PackStart(dw.NOHWND, 5, 1, dw.FALSE, dw.FALSE, 0) item = dw.ButtonNew("Reload", 0) - hbox.PackStart(item, -1, -1, dw.FALSE, dw.FALSE, 0) + hbox.PackStart(item, dw.SIZE_AUTO, dw.SIZE_AUTO, dw.FALSE, dw.FALSE, 0) item.ConnectClicked(func(window dw.HBUTTON) int { html.Action(dw.HTML_RELOAD) return dw.FALSE @@ -1422,10 +1422,10 @@ /* Put in some extra space */ hbox.PackStart(dw.NOHWND, 5, 1, dw.FALSE, dw.FALSE, 0) - hbox.PackStart(javascript, -1, -1, dw.TRUE, dw.FALSE, 0) + hbox.PackStart(javascript, dw.SIZE_AUTO, dw.SIZE_AUTO, dw.TRUE, dw.FALSE, 0) item = dw.ButtonNew("Run", 0) - hbox.PackStart(item, -1, -1, dw.FALSE, dw.FALSE, 0) + hbox.PackStart(item, dw.SIZE_AUTO, dw.SIZE_AUTO, dw.FALSE, dw.FALSE, 0) item.ConnectClicked(func(window dw.HBUTTON) int { script := dw.Window_get_text(javascript) html.JavascriptRun(script, nil) @@ -1435,7 +1435,7 @@ notebookbox7.PackStart(html, 0, 100, dw.TRUE, dw.TRUE, 0) htmlstatus := dw.StatusTextNew("HTML status loading...", 0) - notebookbox7.PackStart(htmlstatus, 100, -1, dw.TRUE, dw.FALSE, 1) + notebookbox7.PackStart(htmlstatus, 100, dw.SIZE_AUTO, dw.TRUE, dw.FALSE, 1) html.ConnectChanged(func(window dw.HHTML, status int, url string) int { statusnames := []string{"none", "started", "redirect", "loading", "complete"} @@ -1474,7 +1474,7 @@ notebookbox8.PackStart(scrollbox, 0, 0, dw.TRUE, dw.TRUE, 1) abutton1 := dw.ButtonNew("Show Adjustments", 0) - scrollbox.PackStart(abutton1, -1, 30, dw.FALSE, dw.FALSE, 0) + scrollbox.PackStart(abutton1, dw.SIZE_AUTO, 30, dw.FALSE, dw.FALSE, 0) abutton1.ConnectClicked(func(window dw.HBUTTON) int { _, pos := scrollbox.GetPos() _, rng := scrollbox.GetRange() @@ -1511,7 +1511,7 @@ notebookbox9.PackStart(tmpbox, 0, 0, dw.TRUE, dw.TRUE, 1) startbutton = dw.ButtonNew("Start Threads", 0) - tmpbox.PackStart(startbutton, -1, 30, dw.FALSE, dw.FALSE, 0) + tmpbox.PackStart(startbutton, dw.SIZE_AUTO, 30, dw.FALSE, dw.FALSE, 0) /* Create the base threading components */ threadmle = dw.MLENew(0) tmpbox.PackStart(threadmle, 1, 1, dw.TRUE, dw.TRUE, 0)
--- a/dwtest/dwtest.go Fri Nov 12 06:54:27 2021 -0600 +++ b/dwtest/dwtest.go Mon Dec 20 07:57:52 2021 -0600 @@ -907,7 +907,7 @@ statline := dw.POINTER_TO_HANDLE(data) dw.Window_set_text(statline, fmt.Sprintf("DW_SIGNAL_CLICKED: Menu: %x Container context menu clicked", dw.HANDLE_TO_UINTPTR(hwnd))) - return FALSE; + return FALSE } func item_context_menu_new(text string, data dw.POINTER) dw.HMENUI { @@ -1290,15 +1290,15 @@ dw.Entryfield_set_limit(copypastefield, 260) - dw.Box_pack_start(browsebox, copypastefield, -1, -1, dw.TRUE, dw.FALSE, 4) + dw.Box_pack_start(browsebox, copypastefield, dw.SIZE_AUTO, dw.SIZE_AUTO, dw.TRUE, dw.FALSE, 4) copybutton := dw.Button_new("Copy", 0) - dw.Box_pack_start(browsebox, copybutton, -1, -1, dw.FALSE, dw.FALSE, 0) + dw.Box_pack_start(browsebox, copybutton, dw.SIZE_AUTO, dw.SIZE_AUTO, dw.FALSE, dw.FALSE, 0) pastebutton := dw.Button_new("Paste", 0) - dw.Box_pack_start(browsebox, pastebutton, -1, -1, dw.FALSE, dw.FALSE, 0) + dw.Box_pack_start(browsebox, pastebutton, dw.SIZE_AUTO, dw.SIZE_AUTO, dw.FALSE, dw.FALSE, 0) /* Archive Name */ stext := dw.Text_new("File to browse", 0) @@ -1375,9 +1375,9 @@ hbox := dw.Box_new(dw.HORZ, 1) dw.Box_pack_start(notebookbox2, hbox, 100, 20, dw.TRUE, dw.FALSE, 1) status1 = dw.Status_text_new("", 0) - dw.Box_pack_start(hbox, status1, 100, -1, dw.TRUE, dw.FALSE, 1) + dw.Box_pack_start(hbox, status1, 100, dw.SIZE_AUTO, dw.TRUE, dw.FALSE, 1) status2 = dw.Status_text_new("", 0) - dw.Box_pack_start(hbox, status2, 100, -1, dw.TRUE, dw.FALSE, 1) + dw.Box_pack_start(hbox, status2, 100, dw.SIZE_AUTO, dw.TRUE, dw.FALSE, 1) /* a box with combobox and button */ hbox = dw.Box_new(dw.HORZ, 1) dw.Box_pack_start(notebookbox2, hbox, 100, 25, dw.TRUE, dw.FALSE, 1) @@ -1388,12 +1388,12 @@ dw.Listbox_append(rendcombo, "File Display") label := dw.Text_new("Image X:", 100) dw.Window_set_style(label, dw.DT_VCENTER|dw.DT_CENTER, dw.DT_VCENTER|dw.DT_CENTER) - dw.Box_pack_start(hbox, label, -1, 25, dw.FALSE, dw.TRUE, 0) + dw.Box_pack_start(hbox, label, dw.SIZE_AUTO, 25, dw.FALSE, dw.TRUE, 0) imagexspin = dw.Spinbutton_new("20", 1021) dw.Box_pack_start(hbox, imagexspin, 25, 25, dw.TRUE, dw.TRUE, 0) label = dw.Text_new("Y:", 100) dw.Window_set_style(label, dw.DT_VCENTER|dw.DT_CENTER, dw.DT_VCENTER|dw.DT_CENTER) - dw.Box_pack_start(hbox, label, -1, 25, dw.FALSE, dw.TRUE, 0) + dw.Box_pack_start(hbox, label, dw.SIZE_AUTO, 25, dw.FALSE, dw.TRUE, 0) imageyspin = dw.Spinbutton_new("20", 1021) dw.Box_pack_start(hbox, imageyspin, 25, 25, dw.TRUE, dw.TRUE, 0) dw.Spinbutton_set_limits(imagexspin, 2000, 0) @@ -1401,12 +1401,12 @@ dw.Spinbutton_set_pos(imagexspin, 20) dw.Spinbutton_set_pos(imageyspin, 20) imagestretchcheck = dw.Checkbox_new("Stretch", 1021) - dw.Box_pack_start(hbox, imagestretchcheck, -1, 25, dw.FALSE, dw.TRUE, 0) + dw.Box_pack_start(hbox, imagestretchcheck, dw.SIZE_AUTO, 25, dw.FALSE, dw.TRUE, 0) button1 := dw.Button_new("Refresh", 1223) - dw.Box_pack_start(hbox, button1, -1, 25, dw.FALSE, dw.TRUE, 0) + dw.Box_pack_start(hbox, button1, dw.SIZE_AUTO, 25, dw.FALSE, dw.TRUE, 0) button2 := dw.Button_new("Print", 1224) - dw.Box_pack_start(hbox, button2, -1, 25, dw.FALSE, dw.TRUE, 0) + dw.Box_pack_start(hbox, button2, dw.SIZE_AUTO, 25, dw.FALSE, dw.TRUE, 0) /* Pre-create the scrollbars so we can query their sizes */ vscrollbar = dw.Scrollbar_new(dw.VERT, 50) @@ -1446,11 +1446,11 @@ dw.Box_pack_start(textboxA, textbox2, 10, 10, dw.TRUE, dw.TRUE, 0) dw.Window_set_font(textbox2, FIXEDFONT) /* create horizonal scrollbar */ - dw.Box_pack_start(textboxA, hscrollbar, -1, -1, dw.TRUE, dw.FALSE, 0) + dw.Box_pack_start(textboxA, hscrollbar, dw.SIZE_AUTO, dw.SIZE_AUTO, dw.TRUE, dw.FALSE, 0) /* create vertical scrollbar */ vscrollbox = dw.Box_new(dw.VERT, 0) - dw.Box_pack_start(vscrollbox, vscrollbar, -1, -1, dw.FALSE, dw.TRUE, 0) + dw.Box_pack_start(vscrollbox, vscrollbar, dw.SIZE_AUTO, dw.SIZE_AUTO, dw.FALSE, dw.TRUE, 0) /* Pack an area of empty space 14x14 pixels */ dw.Box_pack_start(vscrollbox, dw.NOHWND, vscrollbarwidth, hscrollbarheight, dw.FALSE, dw.FALSE, 0) dw.Box_pack_start(pagebox, vscrollbox, 0, 0, dw.FALSE, dw.TRUE, 0) @@ -1502,7 +1502,7 @@ /* and a status area to see whats going on */ tree_status := dw.Status_text_new("", 0) - dw.Box_pack_start(notebookbox3, tree_status, 100, -1, TRUE, FALSE, 1) + dw.Box_pack_start(notebookbox3, tree_status, 100, dw.SIZE_AUTO, TRUE, FALSE, 1) /* set up our signal trappers... */ dw.Signal_connect(tree, dw.SIGNAL_ITEM_CONTEXT, dw.SIGNAL_FUNC(item_context_cb), dw.HANDLE_TO_POINTER(tree_status)) @@ -1537,23 +1537,23 @@ hbox := dw.Box_new(dw.HORZ, 0) checkbox := dw.Checkbox_new("Word wrap", 0) - dw.Box_pack_start(hbox, checkbox, -1, -1, FALSE, TRUE, 1) + dw.Box_pack_start(hbox, checkbox, dw.SIZE_AUTO, dw.SIZE_AUTO, FALSE, TRUE, 1) text := dw.Text_new("Foreground:", 0) dw.Window_set_style(text, dw.DT_VCENTER, dw.DT_VCENTER) - dw.Box_pack_start(hbox, text, -1, -1, FALSE, TRUE, 1) + dw.Box_pack_start(hbox, text, dw.SIZE_AUTO, dw.SIZE_AUTO, FALSE, TRUE, 1) mlefore := color_combobox() - dw.Box_pack_start(hbox, mlefore, 150, -1, TRUE, FALSE, 1) + dw.Box_pack_start(hbox, mlefore, 150, dw.SIZE_AUTO, TRUE, FALSE, 1) text = dw.Text_new("Background:", 0) dw.Window_set_style(text, dw.DT_VCENTER, dw.DT_VCENTER) - dw.Box_pack_start(hbox, text, -1, -1, FALSE, TRUE, 1) + dw.Box_pack_start(hbox, text, dw.SIZE_AUTO, dw.SIZE_AUTO, FALSE, TRUE, 1) mleback := color_combobox() - dw.Box_pack_start(hbox, mleback, 150, -1, TRUE, FALSE, 1) + dw.Box_pack_start(hbox, mleback, 150, dw.SIZE_AUTO, TRUE, FALSE, 1) dw.Checkbox_set(checkbox, TRUE) text = dw.Text_new("Font:", 0) dw.Window_set_style(text, dw.DT_VCENTER, dw.DT_VCENTER) - dw.Box_pack_start(hbox, text, -1, -1, FALSE, TRUE, 1) + dw.Box_pack_start(hbox, text, dw.SIZE_AUTO, dw.SIZE_AUTO, FALSE, TRUE, 1) fontsize := dw.Spinbutton_new("9", 0) - dw.Box_pack_start(hbox, fontsize, -1, -1, FALSE, FALSE, 1) + dw.Box_pack_start(hbox, fontsize, dw.SIZE_AUTO, dw.SIZE_AUTO, FALSE, FALSE, 1) dw.Spinbutton_set_limits(fontsize, 100, 5) dw.Spinbutton_set_pos(fontsize, 9) fontname := dw.Combobox_new("Default", 0) @@ -1567,8 +1567,8 @@ dw.Listbox_append(fontname, "Times New Roman Bold") dw.Listbox_append(fontname, "Times New Roman Italic") dw.Listbox_append(fontname, "Times New Roman Bold Italic") - dw.Box_pack_start(hbox, fontname, 150, -1, TRUE, FALSE, 1) - dw.Box_pack_start(notebookbox4, hbox, -1, -1, TRUE, FALSE, 1) + dw.Box_pack_start(hbox, fontname, 150, dw.SIZE_AUTO, TRUE, FALSE, 1) + dw.Box_pack_start(notebookbox4, hbox, dw.SIZE_AUTO, dw.SIZE_AUTO, TRUE, FALSE, 1) dw.Window_set_data(hbox, "mlefore", dw.HANDLE_TO_POINTER(mlefore)) dw.Window_set_data(hbox, "mleback", dw.HANDLE_TO_POINTER(mleback)) @@ -1581,7 +1581,7 @@ /* and a status area to see whats going on */ container_status := dw.Status_text_new("", 0) - dw.Box_pack_start(notebookbox4, container_status, 100, -1, TRUE, FALSE, 1) + dw.Box_pack_start(notebookbox4, container_status, 100, dw.SIZE_AUTO, TRUE, FALSE, 1) dw.Filesystem_set_column_title(container, "Test") dw.Filesystem_setup(container, flags, titles) @@ -1678,14 +1678,14 @@ dw.Box_pack_start(notebookbox5, combox, 25, 200, TRUE, FALSE, 0) combobox1 = dw.Combobox_new("fred", 0) /* no point in specifying an initial value */ dw.Listbox_append(combobox1, "fred") - dw.Box_pack_start(combox, combobox1, -1, -1, TRUE, FALSE, 0) + dw.Box_pack_start(combox, combobox1, dw.SIZE_AUTO, dw.SIZE_AUTO, TRUE, FALSE, 0) /* dw_window_set_text( combobox, "initial value"); */ dw.Signal_connect(combobox1, dw.SIGNAL_LIST_SELECT, dw.SIGNAL_FUNC(combobox_select_event_callback), nil) combobox2 = dw.Combobox_new("joe", 0) /* no point in specifying an initial value */ - dw.Box_pack_start(combox, combobox2, -1, -1, TRUE, FALSE, 0) + dw.Box_pack_start(combox, combobox2, dw.SIZE_AUTO, dw.SIZE_AUTO, TRUE, FALSE, 0) /* dw_window_set_text( combobox, "initial value"); */ @@ -1703,17 +1703,17 @@ dw.Listbox_insert(combobox2, "inserted item 5", 5) /* make a spinbutton */ spinbutton = dw.Spinbutton_new("", 0) /* no point in specifying text */ - dw.Box_pack_start(combox, spinbutton, -1, -1, TRUE, FALSE, 0) + dw.Box_pack_start(combox, spinbutton, dw.SIZE_AUTO, dw.SIZE_AUTO, TRUE, FALSE, 0) dw.Spinbutton_set_limits(spinbutton, 100, 1) dw.Spinbutton_set_pos(spinbutton, 30) dw.Signal_connect(spinbutton, dw.SIGNAL_VALUE_CHANGED, dw.SIGNAL_FUNC(spinbutton_valuechanged_callback), nil) /* make a slider */ slider = dw.Slider_new(FALSE, 11, 0) /* no point in specifying text */ - dw.Box_pack_start(combox, slider, -1, -1, TRUE, FALSE, 0) + dw.Box_pack_start(combox, slider, dw.SIZE_AUTO, dw.SIZE_AUTO, TRUE, FALSE, 0) dw.Signal_connect(slider, dw.SIGNAL_VALUE_CHANGED, dw.SIGNAL_FUNC(slider_valuechanged_callback), nil) /* make a percent */ percent = dw.Percent_new(0) - dw.Box_pack_start(combox, percent, -1, -1, TRUE, FALSE, 0) + dw.Box_pack_start(combox, percent, dw.SIZE_AUTO, dw.SIZE_AUTO, TRUE, FALSE, 0) } func create_button(redraw bool) { @@ -1761,34 +1761,34 @@ /* Add navigation buttons */ item := dw.Button_new("Back", 0) - dw.Box_pack_start(hbox, item, -1, -1, FALSE, FALSE, 0) + dw.Box_pack_start(hbox, item, dw.SIZE_AUTO, dw.SIZE_AUTO, FALSE, FALSE, 0) dw.Signal_connect(item, dw.SIGNAL_CLICKED, dw.SIGNAL_FUNC(web_back_clicked), dw.HANDLE_TO_POINTER(html)) item = dw.Button_new("Forward", 0) - dw.Box_pack_start(hbox, item, -1, -1, FALSE, FALSE, 0) + dw.Box_pack_start(hbox, item, dw.SIZE_AUTO, dw.SIZE_AUTO, FALSE, FALSE, 0) dw.Signal_connect(item, dw.SIGNAL_CLICKED, dw.SIGNAL_FUNC(web_forward_clicked), dw.HANDLE_TO_POINTER(html)) /* Put in some extra space */ dw.Box_pack_start(hbox, dw.NOHWND, 5, 1, FALSE, FALSE, 0) item = dw.Button_new("Reload", 0) - dw.Box_pack_start(hbox, item, -1, -1, FALSE, FALSE, 0) + dw.Box_pack_start(hbox, item, dw.SIZE_AUTO, dw.SIZE_AUTO, FALSE, FALSE, 0) dw.Signal_connect(item, dw.SIGNAL_CLICKED, dw.SIGNAL_FUNC(web_reload_clicked), dw.HANDLE_TO_POINTER(html)) /* Put in some extra space */ dw.Box_pack_start(hbox, dw.NOHWND, 5, 1, FALSE, FALSE, 0) - dw.Box_pack_start(hbox, javascript, -1, -1, TRUE, FALSE, 0) + dw.Box_pack_start(hbox, javascript, dw.SIZE_AUTO, dw.SIZE_AUTO, TRUE, FALSE, 0) item = dw.Button_new("Run", 0) dw.Window_set_data(item, "javascript", dw.HANDLE_TO_POINTER(javascript)) - dw.Box_pack_start(hbox, item, -1, -1, FALSE, FALSE, 0) + dw.Box_pack_start(hbox, item, dw.SIZE_AUTO, dw.SIZE_AUTO, FALSE, FALSE, 0) dw.Signal_connect(item, dw.SIGNAL_CLICKED, dw.SIGNAL_FUNC(web_run_clicked), dw.HANDLE_TO_POINTER(html)) dw.Window_click_default(javascript, item) dw.Box_pack_start(notebookbox7, html, 0, 100, TRUE, TRUE, 0) dw.Html_url(html, "https://dbsoft.org/dw_help.php") htmlstatus := dw.Status_text_new("HTML status loading...", 0) - dw.Box_pack_start(notebookbox7, htmlstatus, 100, -1, TRUE, FALSE, 1) + dw.Box_pack_start(notebookbox7, htmlstatus, 100, dw.SIZE_AUTO, TRUE, FALSE, 1) dw.Signal_connect(html, dw.SIGNAL_HTML_CHANGED, dw.SIGNAL_FUNC(web_html_changed), dw.HANDLE_TO_POINTER(htmlstatus)) dw.Signal_connect(html, dw.SIGNAL_HTML_RESULT, dw.SIGNAL_FUNC(web_html_result), dw.HANDLE_TO_POINTER(javascript)) } else { @@ -1806,7 +1806,7 @@ dw.Box_pack_start(notebookbox8, scrollbox, 0, 0, TRUE, TRUE, 1) abutton1 := dw.Button_new("Show Adjustments", 0) - dw.Box_pack_start(scrollbox, abutton1, -1, 30, FALSE, FALSE, 0) + dw.Box_pack_start(scrollbox, abutton1, dw.SIZE_AUTO, 30, FALSE, FALSE, 0) dw.Signal_connect(abutton1, dw.SIGNAL_CLICKED, dw.SIGNAL_FUNC(scrollbox_button_callback), nil) for i = 0; i < MAX_WIDGETS; i++ { @@ -1838,7 +1838,7 @@ dw.Box_pack_start(notebookbox9, tmpbox, 0, 0, dw.TRUE, dw.TRUE, 1) startbutton = dw.Button_new("Start Threads", 0) - dw.Box_pack_start(tmpbox, startbutton, -1, 30, dw.FALSE, dw.FALSE, 0) + dw.Box_pack_start(tmpbox, startbutton, dw.SIZE_AUTO, 30, dw.FALSE, dw.FALSE, 0) dw.Signal_connect(startbutton, dw.SIGNAL_CLICKED, dw.SIGNAL_FUNC(start_threads_button_callback), nil) /* Create the base threading components */