├── libui.dll ├── .gitmodules ├── screenshot_nix.png ├── screenshot_osx.png ├── screenshot_win.png ├── .gitignore ├── .travis.yml ├── README.md ├── dub.json ├── LICENSE ├── source └── derelict │ └── libui │ ├── types.d │ ├── libui.d │ └── funcs.d └── test └── app.d /libui.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/extrawurst/DerelictLibui/HEAD/libui.dll -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "libui"] 2 | path = libui 3 | url = https://github.com/andlabs/libui 4 | -------------------------------------------------------------------------------- /screenshot_nix.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/extrawurst/DerelictLibui/HEAD/screenshot_nix.png -------------------------------------------------------------------------------- /screenshot_osx.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/extrawurst/DerelictLibui/HEAD/screenshot_osx.png -------------------------------------------------------------------------------- /screenshot_win.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/extrawurst/DerelictLibui/HEAD/screenshot_win.png -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Compiled Object files 2 | *.o 3 | *.obj 4 | 5 | # Compiled Dynamic libraries 6 | *.so 7 | *.dylib 8 | 9 | # Compiled Static libraries 10 | *.a 11 | *.lib 12 | 13 | # Executables 14 | *.exe 15 | 16 | # DUB 17 | .dub 18 | docs.json 19 | __dummy.html 20 | DerelictLibui 21 | dub.selections.json 22 | Thumbs.db 23 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: d 2 | 3 | sudo: false 4 | 5 | d: 6 | - dmd #-2.070.1 7 | - dmd-2.069.2 8 | - dmd-2.068.2 9 | - dmd-2.067.0 10 | - dmd-2.066.1 11 | - dmd-2.065.0 12 | - ldc-1.0.0-alpha1 13 | - ldc #-0.17.0 14 | - ldc-0.16.1 15 | - ldc-0.15.1 16 | - ldc-0.14.0 17 | - gdc #gdc-4.9.2 18 | - gdc-4.9.0 19 | 20 | script: 21 | - dub build --compiler=$DC || exit 1 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # DerelictLibui [![Build Status](https://travis-ci.org/Extrawurst/DerelictLibui.svg)](https://travis-ci.org/Extrawurst/DerelictLibui) 2 | Dynamic Binding for libui (https://github.com/andlabs/libui) in D 3 | 4 | to build/run the test app: 5 | ``` 6 | dub --config=test 7 | ``` 8 | 9 | # Screenshots of test app 10 | ![screenshot osx](https://raw.github.com/extrawurst/DerelictLibui/master/screenshot_osx.png) 11 | ![screenshot win](https://raw.github.com/extrawurst/DerelictLibui/master/screenshot_win.png) 12 | ![screenshot nix](https://raw.github.com/extrawurst/DerelictLibui/master/screenshot_nix.png) -------------------------------------------------------------------------------- /dub.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "derelict-libui", 3 | "description": "A dynamic binding to the libui library.", 4 | "homepage": "https://github.com/Extrawurst/DerelictLibui", 5 | "license": "MIT", 6 | "authors": [ 7 | "Stephan Dilly" 8 | ], 9 | 10 | "targetName": "DerelictLibui", 11 | "targetPath": "lib", 12 | "targetType": "library", 13 | 14 | "dependencies": { 15 | "derelict-util": ">=2.0.6" 16 | }, 17 | 18 | "configurations":[ 19 | { 20 | "name": "lib", 21 | }, 22 | { 23 | "name": "test", 24 | "targetType": "executable", 25 | "mainSourceFile": "test/app.d", 26 | } 27 | ] 28 | } 29 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2016 Stephan Dilly 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /source/derelict/libui/types.d: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2016 Derelict Developers 3 | * All rights reserved. 4 | * 5 | * Redistribution and use in source and binary forms, with or without 6 | * modification, are permitted provided that the following conditions are 7 | * met: 8 | * 9 | * * Redistributions of source code must retain the above copyright 10 | * notice, this list of conditions and the following disclaimer. 11 | * 12 | * * Redistributions in binary form must reproduce the above copyright 13 | * notice, this list of conditions and the following disclaimer in the 14 | * documentation and/or other materials provided with the distribution. 15 | * 16 | * * Neither the names 'Derelict', 'DerelictLibui', nor the names of its contributors 17 | * may be used to endorse or promote products derived from this software 18 | * without specific prior written permission. 19 | * 20 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 21 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED 22 | * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 23 | * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR 24 | * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 25 | * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 26 | * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 27 | * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 28 | * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 29 | * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 30 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 31 | */ 32 | module derelict.libui.types; 33 | 34 | align(1): 35 | 36 | alias cstring = const(char)*; 37 | 38 | alias uintptr_t = uint*; 39 | alias uint32_t = uint; 40 | 41 | alias uintmax_t = size_t; 42 | alias intmax_t = ptrdiff_t; 43 | 44 | struct uiInitOptions { 45 | size_t Size; 46 | } 47 | 48 | struct uiWindow {} 49 | struct uiControl {} 50 | struct uiColorButton {} 51 | struct uiMenu {} 52 | struct uiMenuItem {} 53 | struct uiButton {} 54 | struct uiBox {} 55 | struct uiEntry {} 56 | struct uiCheckbox {} 57 | struct uiLabel {} 58 | struct uiTab {} 59 | struct uiGroup {} 60 | struct uiSpinbox {} 61 | struct uiProgressBar {} 62 | struct uiSlider {} 63 | struct uiSeparator {} 64 | struct uiCombobox {} 65 | struct uiRadioButtons {} 66 | struct uiDateTimePicker {} 67 | struct uiMultilineEntry {} 68 | 69 | struct uiArea {} 70 | struct uiAreaHandler {} 71 | struct uiAreaDrawParams {} 72 | struct uiAreaMouseEvent {} 73 | struct uiAreaKeyEvent {} 74 | 75 | struct uiDrawContext {} 76 | struct uiDrawPath {} 77 | struct uiDrawBrush {} 78 | struct uiDrawStrokeParams {} 79 | struct uiDrawMatrix {} 80 | struct uiDrawBrushGradientStop {} 81 | struct uiDrawFontFamilies {} 82 | struct uiDrawTextLayout {} 83 | struct uiDrawTextFont {} 84 | struct uiDrawTextFontDescriptor {} 85 | struct uiDrawTextFontMetrics {} 86 | struct uiFontButton {} 87 | 88 | alias uiDrawBrushType = int; 89 | enum { 90 | uiDrawBrushTypeSolid, 91 | uiDrawBrushTypeLinearGradient, 92 | uiDrawBrushTypeRadialGradient, 93 | uiDrawBrushTypeImage, 94 | } 95 | 96 | alias uiDrawLineCap = int; 97 | enum { 98 | uiDrawLineCapFlat, 99 | uiDrawLineCapRound, 100 | uiDrawLineCapSquare, 101 | } 102 | 103 | alias uiDrawLineJoin = int; 104 | enum { 105 | uiDrawLineJoinMiter, 106 | uiDrawLineJoinRound, 107 | uiDrawLineJoinBevel, 108 | } 109 | 110 | alias uiDrawFillMode = int; 111 | enum { 112 | uiDrawFillModeWinding, 113 | uiDrawFillModeAlternate, 114 | } 115 | 116 | alias uiDrawTextWeight = int; 117 | enum { 118 | uiDrawTextWeightThin, 119 | uiDrawTextWeightUltraLight, 120 | uiDrawTextWeightLight, 121 | uiDrawTextWeightBook, 122 | uiDrawTextWeightNormal, 123 | uiDrawTextWeightMedium, 124 | uiDrawTextWeightSemiBold, 125 | uiDrawTextWeightBold, 126 | uiDrawTextWeightUtraBold, 127 | uiDrawTextWeightHeavy, 128 | uiDrawTextWeightUltraHeavy, 129 | } 130 | 131 | alias uiDrawTextItalic = int; 132 | enum { 133 | uiDrawTextItalicNormal, 134 | uiDrawTextItalicOblique, 135 | uiDrawTextItalicItalic, 136 | } 137 | 138 | alias uiDrawTextStretch = int; 139 | enum { 140 | uiDrawTextStretchUltraCondensed, 141 | uiDrawTextStretchExtraCondensed, 142 | uiDrawTextStretchCondensed, 143 | uiDrawTextStretchSemiCondensed, 144 | uiDrawTextStretchNormal, 145 | uiDrawTextStretchSemiExpanded, 146 | uiDrawTextStretchExpanded, 147 | uiDrawTextStretchExtraExpanded, 148 | uiDrawTextStretchUltraExpanded, 149 | } 150 | 151 | alias uiModifiers = int; 152 | enum { 153 | uiModifierCtrl = 1 << 0, 154 | uiModifierAlt = 1 << 1, 155 | uiModifierShift = 1 << 2, 156 | uiModifierSuper = 1 << 3, 157 | } 158 | 159 | alias uiExtKey = int; 160 | enum { 161 | uiExtKeyEscape = 1, 162 | uiExtKeyInsert, // equivalent to "Help" on Apple keyboards 163 | uiExtKeyDelete, 164 | uiExtKeyHome, 165 | uiExtKeyEnd, 166 | uiExtKeyPageUp, 167 | uiExtKeyPageDown, 168 | uiExtKeyUp, 169 | uiExtKeyDown, 170 | uiExtKeyLeft, 171 | uiExtKeyRight, 172 | uiExtKeyF1, // F1..F12 are guaranteed to be consecutive 173 | uiExtKeyF2, 174 | uiExtKeyF3, 175 | uiExtKeyF4, 176 | uiExtKeyF5, 177 | uiExtKeyF6, 178 | uiExtKeyF7, 179 | uiExtKeyF8, 180 | uiExtKeyF9, 181 | uiExtKeyF10, 182 | uiExtKeyF11, 183 | uiExtKeyF12, 184 | uiExtKeyN0, // numpad keys; independent of Num Lock state 185 | uiExtKeyN1, // N0..N9 are guaranteed to be consecutive 186 | uiExtKeyN2, 187 | uiExtKeyN3, 188 | uiExtKeyN4, 189 | uiExtKeyN5, 190 | uiExtKeyN6, 191 | uiExtKeyN7, 192 | uiExtKeyN8, 193 | uiExtKeyN9, 194 | uiExtKeyNDot, 195 | uiExtKeyNEnter, 196 | uiExtKeyNAdd, 197 | uiExtKeyNSubtract, 198 | uiExtKeyNMultiply, 199 | uiExtKeyNDivide, 200 | } 201 | 202 | static immutable uiDrawDefaultMiterLimit = 10.0; 203 | -------------------------------------------------------------------------------- /test/app.d: -------------------------------------------------------------------------------- 1 | module app; 2 | 3 | import derelict.libui.libui; 4 | 5 | uiWindow* mainwin; 6 | uiSpinbox* spinbox; 7 | uiSlider* slider; 8 | uiProgressBar* progressbar; 9 | 10 | extern(C) nothrow { 11 | 12 | int shouldQuit(void *data) 13 | { 14 | uiControlDestroy(cast(uiControl*)(mainwin)); 15 | return 1; 16 | } 17 | 18 | void openClicked(uiMenuItem *item, uiWindow *w, void *data) 19 | { 20 | auto filename = uiOpenFile(mainwin); 21 | if (filename is null) { 22 | uiMsgBoxError(mainwin, "No file selected", "Don't be alarmed!"); 23 | return; 24 | } 25 | uiMsgBox(mainwin, "File selected", filename); 26 | uiFreeText(filename); 27 | } 28 | 29 | void saveClicked(uiMenuItem *item, uiWindow *w, void *data) 30 | { 31 | auto filename = uiSaveFile(mainwin); 32 | if (filename is null) { 33 | uiMsgBoxError(mainwin, "No file selected", "Don't be alarmed!"); 34 | return; 35 | } 36 | uiMsgBox(mainwin, "File selected (don't worry, it's still there)", filename); 37 | uiFreeText(filename); 38 | } 39 | 40 | int onClosing(uiWindow* w, void* data) 41 | { 42 | uiControlDestroy(cast(uiControl*)mainwin); 43 | uiQuit(); 44 | return 0; 45 | } 46 | 47 | void onSpinboxChanged(uiSpinbox *s, void *data) 48 | { 49 | update(uiSpinboxValue(spinbox)); 50 | } 51 | 52 | void onSliderChanged(uiSlider *s, void *data) 53 | { 54 | update(uiSliderValue(slider)); 55 | } 56 | } 57 | 58 | void update(intmax_t value) nothrow 59 | { 60 | uiSpinboxSetValue(spinbox, value); 61 | uiSliderSetValue(slider, value); 62 | uiProgressBarSetValue(progressbar, cast(int)value); 63 | } 64 | 65 | void main() 66 | { 67 | DerelictLibui.load(); 68 | 69 | uiInitOptions o; 70 | 71 | //memset(&o, 0, sizeof (uiInitOptions)); 72 | auto err = uiInit(&o); 73 | assert(err is null); 74 | 75 | auto menu = uiNewMenu("File"); 76 | auto item = uiMenuAppendItem(menu, "Open"); 77 | uiMenuItemOnClicked(item, &openClicked, null); 78 | item = uiMenuAppendItem(menu, "Save"); 79 | uiMenuItemOnClicked(item, &saveClicked, null); 80 | item = uiMenuAppendQuitItem(menu); 81 | uiOnShouldQuit(&shouldQuit, null); 82 | 83 | menu = uiNewMenu("Edit"); 84 | item = uiMenuAppendCheckItem(menu, "Checkable Item"); 85 | uiMenuAppendSeparator(menu); 86 | item = uiMenuAppendItem(menu, "Disabled Item"); 87 | uiMenuItemDisable(item); 88 | item = uiMenuAppendPreferencesItem(menu); 89 | 90 | menu = uiNewMenu("Help"); 91 | item = uiMenuAppendItem(menu, "Help"); 92 | item = uiMenuAppendAboutItem(menu); 93 | 94 | mainwin = uiNewWindow("libui Control Gallery", 640, 480, 1); 95 | uiWindowSetMargined(mainwin, 1); 96 | uiWindowOnClosing(mainwin, &onClosing, null); 97 | 98 | auto box = uiNewVerticalBox(); 99 | uiBoxSetPadded(box, 1); 100 | uiWindowSetChild(mainwin, cast(uiControl*)(box)); 101 | 102 | auto hbox = uiNewHorizontalBox(); 103 | uiBoxSetPadded(hbox, 1); 104 | uiBoxAppend(box, cast(uiControl*)(hbox), 1); 105 | 106 | auto group = uiNewGroup("Basic Controls"); 107 | uiGroupSetMargined(group, 1); 108 | uiBoxAppend(hbox, cast(uiControl*)(group), 0); 109 | 110 | auto inner = uiNewVerticalBox(); 111 | uiBoxSetPadded(inner, 1); 112 | uiGroupSetChild(group, cast(uiControl*)(inner)); 113 | 114 | uiBoxAppend(inner, 115 | cast(uiControl*)(uiNewButton("Button")), 116 | 0); 117 | uiBoxAppend(inner, 118 | cast(uiControl*)(uiNewCheckbox("Checkbox")), 119 | 0); 120 | auto entry = uiNewEntry(); 121 | uiEntrySetText(entry, "Entry"); 122 | uiBoxAppend(inner, 123 | cast(uiControl*)(entry), 124 | 0); 125 | uiBoxAppend(inner, 126 | cast(uiControl*)(uiNewLabel("Label")), 127 | 0); 128 | 129 | uiBoxAppend(inner, 130 | cast(uiControl*)(uiNewHorizontalSeparator()), 131 | 0); 132 | 133 | uiBoxAppend(inner, 134 | cast(uiControl*)(uiNewDatePicker()), 135 | 0); 136 | uiBoxAppend(inner, 137 | cast(uiControl*)(uiNewTimePicker()), 138 | 0); 139 | uiBoxAppend(inner, 140 | cast(uiControl*)(uiNewDateTimePicker()), 141 | 0); 142 | 143 | uiBoxAppend(inner, 144 | cast(uiControl*)(uiNewFontButton()), 145 | 0); 146 | 147 | uiBoxAppend(inner, 148 | cast(uiControl*)(uiNewColorButton()), 149 | 0); 150 | 151 | auto inner2 = uiNewVerticalBox(); 152 | uiBoxSetPadded(inner2, 1); 153 | uiBoxAppend(hbox, cast(uiControl*)(inner2), 1); 154 | 155 | group = uiNewGroup("Numbers"); 156 | uiGroupSetMargined(group, 1); 157 | uiBoxAppend(inner2, cast(uiControl*)(group), 0); 158 | 159 | inner = uiNewVerticalBox(); 160 | uiBoxSetPadded(inner, 1); 161 | uiGroupSetChild(group, cast(uiControl*)(inner)); 162 | 163 | spinbox = uiNewSpinbox(0, 100); 164 | uiSpinboxOnChanged(spinbox, &onSpinboxChanged, null); 165 | uiBoxAppend(inner, cast(uiControl*)(spinbox), 0); 166 | 167 | slider = uiNewSlider(0, 100); 168 | uiSliderOnChanged(slider, &onSliderChanged, null); 169 | uiBoxAppend(inner, cast(uiControl*)(slider), 0); 170 | 171 | progressbar = uiNewProgressBar(); 172 | uiBoxAppend(inner, cast(uiControl*)(progressbar), 0); 173 | 174 | group = uiNewGroup("Lists"); 175 | uiGroupSetMargined(group, 1); 176 | uiBoxAppend(inner2, cast(uiControl*)(group), 0); 177 | 178 | inner = uiNewVerticalBox(); 179 | uiBoxSetPadded(inner, 1); 180 | uiGroupSetChild(group, cast(uiControl*)(inner)); 181 | 182 | auto cbox = uiNewCombobox(); 183 | uiComboboxAppend(cbox, "Combobox Item 1"); 184 | uiComboboxAppend(cbox, "Combobox Item 2"); 185 | uiComboboxAppend(cbox, "Combobox Item 3"); 186 | uiBoxAppend(inner, cast(uiControl*)(cbox), 0); 187 | 188 | cbox = uiNewEditableCombobox(); 189 | uiComboboxAppend(cbox, "Editable Item 1"); 190 | uiComboboxAppend(cbox, "Editable Item 2"); 191 | uiComboboxAppend(cbox, "Editable Item 3"); 192 | uiBoxAppend(inner, cast(uiControl*)(cbox), 0); 193 | 194 | auto rb = uiNewRadioButtons(); 195 | uiRadioButtonsAppend(rb, "Radio Button 1"); 196 | uiRadioButtonsAppend(rb, "Radio Button 2"); 197 | uiRadioButtonsAppend(rb, "Radio Button 3"); 198 | uiBoxAppend(inner, cast(uiControl*)(rb), 1); 199 | 200 | auto tab = uiNewTab(); 201 | uiTabAppend(tab, "Page 1", cast(uiControl*)uiNewHorizontalBox()); 202 | uiTabAppend(tab, "Page 2", cast(uiControl*)uiNewHorizontalBox()); 203 | uiTabAppend(tab, "Page 3", cast(uiControl*)uiNewHorizontalBox()); 204 | uiBoxAppend(inner2, cast(uiControl*)(tab), 1); 205 | 206 | uiControlShow(cast(uiControl*)(mainwin)); 207 | uiMain(); 208 | //note: on osx this leads to a crash in the end of the app 209 | //uiUninit(); 210 | 211 | DerelictLibui.unload(); 212 | } 213 | -------------------------------------------------------------------------------- /source/derelict/libui/libui.d: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2016 Derelict Developers 3 | * All rights reserved. 4 | * 5 | * Redistribution and use in source and binary forms, with or without 6 | * modification, are permitted provided that the following conditions are 7 | * met: 8 | * 9 | * * Redistributions of source code must retain the above copyright 10 | * notice, this list of conditions and the following disclaimer. 11 | * 12 | * * Redistributions in binary form must reproduce the above copyright 13 | * notice, this list of conditions and the following disclaimer in the 14 | * documentation and/or other materials provided with the distribution. 15 | * 16 | * * Neither the names 'Derelict', 'DerelictLibui', nor the names of its contributors 17 | * may be used to endorse or promote products derived from this software 18 | * without specific prior written permission. 19 | * 20 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 21 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED 22 | * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 23 | * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR 24 | * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 25 | * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 26 | * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 27 | * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 28 | * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 29 | * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 30 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 31 | */ 32 | module derelict.libui.libui; 33 | 34 | public 35 | { 36 | import derelict.libui.types; 37 | import derelict.libui.funcs; 38 | } 39 | 40 | private 41 | { 42 | import derelict.util.loader; 43 | import derelict.util.system; 44 | 45 | static if(Derelict_OS_Windows) 46 | enum libNames = "libui.dll"; 47 | else static if (Derelict_OS_Mac) 48 | enum libNames = "libui.dylib, libui.A.dylib"; 49 | else static if (Derelict_OS_Linux) 50 | enum libNames = "libui.so.0, libui.so"; 51 | else 52 | static assert(0, "Need to implement libui libNames for this operating system."); 53 | } 54 | 55 | class DerelictLibuiLoader : SharedLibLoader 56 | { 57 | 58 | protected 59 | { 60 | override void loadSymbols() 61 | { 62 | bindFunc(cast(void**)&uiInit, "uiInit"); 63 | bindFunc(cast(void**)&uiUninit, "uiUninit"); 64 | 65 | bindFunc(cast(void**)&uiFreeInitError, "uiFreeInitError"); 66 | bindFunc(cast(void**)&uiMain, "uiMain"); 67 | bindFunc(cast(void**)&uiQuit, "uiQuit"); 68 | 69 | bindFunc(cast(void**)&uiQueueMain, "uiQueueMain"); 70 | bindFunc(cast(void**)&uiOnShouldQuit, "uiOnShouldQuit"); 71 | bindFunc(cast(void**)&uiFreeText, "uiFreeText"); 72 | 73 | bindFunc(cast(void**)&uiControlDestroy, "uiControlDestroy"); 74 | bindFunc(cast(void**)&uiControlHandle, "uiControlHandle"); 75 | bindFunc(cast(void**)&uiControlParent, "uiControlParent"); 76 | bindFunc(cast(void**)&uiControlSetParent, "uiControlSetParent"); 77 | bindFunc(cast(void**)&uiControlToplevel, "uiControlToplevel"); 78 | bindFunc(cast(void**)&uiControlVisible, "uiControlVisible"); 79 | bindFunc(cast(void**)&uiControlShow, "uiControlShow"); 80 | bindFunc(cast(void**)&uiControlHide, "uiControlHide"); 81 | bindFunc(cast(void**)&uiControlEnabled, "uiControlEnabled"); 82 | bindFunc(cast(void**)&uiControlEnable, "uiControlEnable"); 83 | bindFunc(cast(void**)&uiControlDisable, "uiControlDisable"); 84 | 85 | bindFunc(cast(void**)&uiAllocControl, "uiAllocControl"); 86 | bindFunc(cast(void**)&uiFreeControl, "uiFreeControl"); 87 | 88 | bindFunc(cast(void**)&uiControlVerifyDestroy, "uiControlVerifyDestroy"); 89 | bindFunc(cast(void**)&uiControlVerifySetParent, "uiControlVerifySetParent"); 90 | bindFunc(cast(void**)&uiControlEnabledToUser, "uiControlEnabledToUser"); 91 | 92 | bindFunc(cast(void**)&uiWindowTitle, "uiWindowTitle"); 93 | bindFunc(cast(void**)&uiWindowSetTitle, "uiWindowSetTitle"); 94 | bindFunc(cast(void**)&uiWindowOnClosing, "uiWindowOnClosing"); 95 | bindFunc(cast(void**)&uiWindowSetChild, "uiWindowSetChild"); 96 | bindFunc(cast(void**)&uiWindowMargined, "uiWindowMargined"); 97 | bindFunc(cast(void**)&uiWindowSetMargined, "uiWindowSetMargined"); 98 | bindFunc(cast(void**)&uiNewWindow, "uiNewWindow"); 99 | 100 | bindFunc(cast(void**)&uiButtonText, "uiButtonText"); 101 | bindFunc(cast(void**)&uiButtonSetText, "uiButtonSetText"); 102 | bindFunc(cast(void**)&uiButtonOnClicked, "uiButtonOnClicked"); 103 | bindFunc(cast(void**)&uiNewButton, "uiNewButton"); 104 | 105 | bindFunc(cast(void**)&uiBoxAppend, "uiBoxAppend"); 106 | bindFunc(cast(void**)&uiBoxDelete, "uiBoxDelete"); 107 | bindFunc(cast(void**)&uiBoxPadded, "uiBoxPadded"); 108 | bindFunc(cast(void**)&uiBoxSetPadded, "uiBoxSetPadded"); 109 | bindFunc(cast(void**)&uiNewHorizontalBox, "uiNewHorizontalBox"); 110 | bindFunc(cast(void**)&uiNewVerticalBox, "uiNewVerticalBox"); 111 | 112 | bindFunc(cast(void**)&uiEntryText, "uiEntryText"); 113 | bindFunc(cast(void**)&uiEntrySetText, "uiEntrySetText"); 114 | bindFunc(cast(void**)&uiEntryOnChanged, "uiEntryOnChanged"); 115 | bindFunc(cast(void**)&uiEntryReadOnly, "uiEntryReadOnly"); 116 | bindFunc(cast(void**)&uiEntrySetReadOnly, "uiEntrySetReadOnly"); 117 | bindFunc(cast(void**)&uiNewEntry, "uiNewEntry"); 118 | 119 | bindFunc(cast(void**)&uiCheckboxText, "uiCheckboxText"); 120 | bindFunc(cast(void**)&uiCheckboxSetText, "uiCheckboxSetText"); 121 | bindFunc(cast(void**)&uiCheckboxOnToggled, "uiCheckboxOnToggled"); 122 | bindFunc(cast(void**)&uiCheckboxChecked, "uiCheckboxChecked"); 123 | bindFunc(cast(void**)&uiCheckboxSetChecked, "uiCheckboxSetChecked"); 124 | bindFunc(cast(void**)&uiNewCheckbox, "uiNewCheckbox"); 125 | 126 | bindFunc(cast(void**)&uiLabelText, "uiLabelText"); 127 | bindFunc(cast(void**)&uiLabelSetText, "uiLabelSetText"); 128 | bindFunc(cast(void**)&uiNewLabel, "uiNewLabel"); 129 | 130 | bindFunc(cast(void**)&uiTabAppend, "uiTabAppend"); 131 | bindFunc(cast(void**)&uiTabInsertAt, "uiTabInsertAt"); 132 | bindFunc(cast(void**)&uiTabDelete, "uiTabDelete"); 133 | bindFunc(cast(void**)&uiTabNumPages, "uiTabNumPages"); 134 | bindFunc(cast(void**)&uiTabMargined, "uiTabMargined"); 135 | bindFunc(cast(void**)&uiTabSetMargined, "uiTabSetMargined"); 136 | bindFunc(cast(void**)&uiNewTab, "uiNewTab"); 137 | 138 | bindFunc(cast(void**)&uiGroupTitle, "uiGroupTitle"); 139 | bindFunc(cast(void**)&uiGroupSetTitle, "uiGroupSetTitle"); 140 | bindFunc(cast(void**)&uiGroupSetChild, "uiGroupSetChild"); 141 | bindFunc(cast(void**)&uiGroupMargined, "uiGroupMargined"); 142 | bindFunc(cast(void**)&uiGroupSetMargined, "uiGroupSetMargined"); 143 | bindFunc(cast(void**)&uiNewGroup, "uiNewGroup"); 144 | 145 | bindFunc(cast(void**)&uiSpinboxValue, "uiSpinboxValue"); 146 | bindFunc(cast(void**)&uiSpinboxSetValue, "uiSpinboxSetValue"); 147 | bindFunc(cast(void**)&uiSpinboxOnChanged, "uiSpinboxOnChanged"); 148 | bindFunc(cast(void**)&uiNewSpinbox, "uiNewSpinbox"); 149 | 150 | bindFunc(cast(void**)&uiProgressBarSetValue, "uiProgressBarSetValue"); 151 | bindFunc(cast(void**)&uiNewProgressBar, "uiNewProgressBar"); 152 | 153 | bindFunc(cast(void**)&uiSliderValue, "uiSliderValue"); 154 | bindFunc(cast(void**)&uiSliderSetValue, "uiSliderSetValue"); 155 | bindFunc(cast(void**)&uiSliderOnChanged, "uiSliderOnChanged"); 156 | bindFunc(cast(void**)&uiNewSlider, "uiNewSlider"); 157 | 158 | bindFunc(cast(void**)&uiNewHorizontalSeparator, "uiNewHorizontalSeparator"); 159 | 160 | bindFunc(cast(void**)&uiComboboxAppend, "uiComboboxAppend"); 161 | bindFunc(cast(void**)&uiComboboxSelected, "uiComboboxSelected"); 162 | bindFunc(cast(void**)&uiComboboxSetSelected, "uiComboboxSetSelected"); 163 | bindFunc(cast(void**)&uiComboboxOnSelected, "uiComboboxOnSelected"); 164 | bindFunc(cast(void**)&uiNewCombobox, "uiNewCombobox"); 165 | bindFunc(cast(void**)&uiNewEditableCombobox, "uiNewEditableCombobox"); 166 | 167 | bindFunc(cast(void**)&uiRadioButtonsAppend, "uiRadioButtonsAppend"); 168 | bindFunc(cast(void**)&uiNewRadioButtons, "uiNewRadioButtons"); 169 | 170 | bindFunc(cast(void**)&uiNewDateTimePicker, "uiNewDateTimePicker"); 171 | bindFunc(cast(void**)&uiNewDatePicker, "uiNewDatePicker"); 172 | bindFunc(cast(void**)&uiNewTimePicker, "uiNewTimePicker"); 173 | 174 | bindFunc(cast(void**)&uiMultilineEntryText, "uiMultilineEntryText"); 175 | bindFunc(cast(void**)&uiMultilineEntrySetText, "uiMultilineEntrySetText"); 176 | bindFunc(cast(void**)&uiMultilineEntryAppend, "uiMultilineEntryAppend"); 177 | bindFunc(cast(void**)&uiMultilineEntryOnChanged, "uiMultilineEntryOnChanged"); 178 | bindFunc(cast(void**)&uiMultilineEntryReadOnly, "uiMultilineEntryReadOnly"); 179 | bindFunc(cast(void**)&uiMultilineEntrySetReadOnly, "uiMultilineEntrySetReadOnly"); 180 | bindFunc(cast(void**)&uiNewMultilineEntry, "uiNewMultilineEntry"); 181 | 182 | bindFunc(cast(void**)&uiMenuItemEnable, "uiMenuItemEnable"); 183 | bindFunc(cast(void**)&uiMenuItemDisable, "uiMenuItemDisable"); 184 | bindFunc(cast(void**)&uiMenuItemOnClicked, "uiMenuItemOnClicked"); 185 | bindFunc(cast(void**)&uiMenuItemChecked, "uiMenuItemChecked"); 186 | bindFunc(cast(void**)&uiMenuItemSetChecked, "uiMenuItemSetChecked"); 187 | 188 | bindFunc(cast(void**)&uiMenuAppendItem, "uiMenuAppendItem"); 189 | bindFunc(cast(void**)&uiMenuAppendCheckItem, "uiMenuAppendCheckItem"); 190 | bindFunc(cast(void**)&uiMenuAppendQuitItem, "uiMenuAppendQuitItem"); 191 | bindFunc(cast(void**)&uiMenuAppendPreferencesItem, "uiMenuAppendPreferencesItem"); 192 | bindFunc(cast(void**)&uiMenuAppendAboutItem, "uiMenuAppendAboutItem"); 193 | bindFunc(cast(void**)&uiMenuAppendSeparator, "uiMenuAppendSeparator"); 194 | bindFunc(cast(void**)&uiNewMenu, "uiNewMenu"); 195 | 196 | bindFunc(cast(void**)&uiOpenFile, "uiOpenFile"); 197 | bindFunc(cast(void**)&uiSaveFile, "uiSaveFile"); 198 | bindFunc(cast(void**)&uiMsgBox, "uiMsgBox"); 199 | bindFunc(cast(void**)&uiMsgBoxError, "uiMsgBoxError"); 200 | 201 | bindFunc(cast(void**)&uiAreaSetSize, "uiAreaSetSize"); 202 | bindFunc(cast(void**)&uiAreaQueueRedrawAll, "uiAreaQueueRedrawAll"); 203 | bindFunc(cast(void**)&uiAreaScrollTo, "uiAreaScrollTo"); 204 | bindFunc(cast(void**)&uiNewArea, "uiNewArea"); 205 | bindFunc(cast(void**)&uiNewScrollingArea, "uiNewScrollingArea"); 206 | 207 | bindFunc(cast(void**)&uiDrawNewPath, "uiDrawNewPath"); 208 | bindFunc(cast(void**)&uiDrawFreePath, "uiDrawFreePath"); 209 | 210 | bindFunc(cast(void**)&uiDrawPathNewFigure, "uiDrawPathNewFigure"); 211 | bindFunc(cast(void**)&uiDrawPathNewFigureWithArc, "uiDrawPathNewFigureWithArc"); 212 | bindFunc(cast(void**)&uiDrawPathLineTo, "uiDrawPathLineTo"); 213 | bindFunc(cast(void**)&uiDrawPathArcTo, "uiDrawPathArcTo"); 214 | bindFunc(cast(void**)&uiDrawPathBezierTo, "uiDrawPathBezierTo"); 215 | bindFunc(cast(void**)&uiDrawPathCloseFigure, "uiDrawPathCloseFigure"); 216 | bindFunc(cast(void**)&uiDrawPathAddRectangle, "uiDrawPathAddRectangle"); 217 | bindFunc(cast(void**)&uiDrawPathEnd, "uiDrawPathEnd"); 218 | 219 | bindFunc(cast(void**)&uiDrawStroke, "uiDrawStroke"); 220 | bindFunc(cast(void**)&uiDrawFill, "uiDrawFill"); 221 | 222 | bindFunc(cast(void**)&uiDrawMatrixSetIdentity, "uiDrawMatrixSetIdentity"); 223 | bindFunc(cast(void**)&uiDrawMatrixTranslate, "uiDrawMatrixTranslate"); 224 | bindFunc(cast(void**)&uiDrawMatrixScale, "uiDrawMatrixScale"); 225 | bindFunc(cast(void**)&uiDrawMatrixRotate, "uiDrawMatrixRotate"); 226 | bindFunc(cast(void**)&uiDrawMatrixSkew, "uiDrawMatrixSkew"); 227 | bindFunc(cast(void**)&uiDrawMatrixMultiply, "uiDrawMatrixMultiply"); 228 | bindFunc(cast(void**)&uiDrawMatrixInvertible, "uiDrawMatrixInvertible"); 229 | bindFunc(cast(void**)&uiDrawMatrixInvert, "uiDrawMatrixInvert"); 230 | bindFunc(cast(void**)&uiDrawMatrixTransformPoint, "uiDrawMatrixTransformPoint"); 231 | bindFunc(cast(void**)&uiDrawMatrixTransformSize, "uiDrawMatrixTransformSize"); 232 | 233 | bindFunc(cast(void**)&uiDrawTransform, "uiDrawTransform"); 234 | 235 | bindFunc(cast(void**)&uiDrawClip, "uiDrawClip"); 236 | 237 | bindFunc(cast(void**)&uiDrawSave, "uiDrawSave"); 238 | bindFunc(cast(void**)&uiDrawRestore, "uiDrawRestore"); 239 | 240 | bindFunc(cast(void**)&uiDrawListFontFamilies, "uiDrawListFontFamilies"); 241 | bindFunc(cast(void**)&uiDrawFontFamiliesNumFamilies, "uiDrawFontFamiliesNumFamilies"); 242 | bindFunc(cast(void**)&uiDrawFontFamiliesFamily, "uiDrawFontFamiliesFamily"); 243 | bindFunc(cast(void**)&uiDrawFreeFontFamilies, "uiDrawFreeFontFamilies"); 244 | 245 | bindFunc(cast(void**)&uiDrawLoadClosestFont, "uiDrawLoadClosestFont"); 246 | bindFunc(cast(void**)&uiDrawFreeTextFont, "uiDrawFreeTextFont"); 247 | bindFunc(cast(void**)&uiDrawTextFontHandle, "uiDrawTextFontHandle"); 248 | bindFunc(cast(void**)&uiDrawTextFontDescribe, "uiDrawTextFontDescribe"); 249 | bindFunc(cast(void**)&uiDrawTextFontGetMetrics, "uiDrawTextFontGetMetrics"); 250 | 251 | bindFunc(cast(void**)&uiDrawNewTextLayout, "uiDrawNewTextLayout"); 252 | bindFunc(cast(void**)&uiDrawFreeTextLayout, "uiDrawFreeTextLayout"); 253 | 254 | bindFunc(cast(void**)&uiDrawTextLayoutSetWidth, "uiDrawTextLayoutSetWidth"); 255 | bindFunc(cast(void**)&uiDrawTextLayoutExtents, "uiDrawTextLayoutExtents"); 256 | bindFunc(cast(void**)&uiDrawTextLayoutSetColor, "uiDrawTextLayoutSetColor"); 257 | bindFunc(cast(void**)&uiDrawText, "uiDrawText"); 258 | 259 | bindFunc(cast(void**)&uiFontButtonFont, "uiFontButtonFont"); 260 | bindFunc(cast(void**)&uiFontButtonOnChanged, "uiFontButtonOnChanged"); 261 | bindFunc(cast(void**)&uiNewFontButton, "uiNewFontButton"); 262 | 263 | bindFunc(cast(void**)&uiColorButtonColor, "uiColorButtonColor"); 264 | bindFunc(cast(void**)&uiColorButtonSetColor, "uiColorButtonSetColor"); 265 | bindFunc(cast(void**)&uiColorButtonOnChanged, "uiColorButtonOnChanged"); 266 | bindFunc(cast(void**)&uiNewColorButton, "uiNewColorButton"); 267 | } 268 | } 269 | 270 | public 271 | { 272 | this() 273 | { 274 | super(libNames); 275 | } 276 | } 277 | } 278 | 279 | __gshared DerelictLibuiLoader DerelictLibui; 280 | 281 | shared static this() 282 | { 283 | DerelictLibui = new DerelictLibuiLoader(); 284 | } 285 | -------------------------------------------------------------------------------- /source/derelict/libui/funcs.d: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2016 Derelict Developers 3 | * All rights reserved. 4 | * 5 | * Redistribution and use in source and binary forms, with or without 6 | * modification, are permitted provided that the following conditions are 7 | * met: 8 | * 9 | * * Redistributions of source code must retain the above copyright 10 | * notice, this list of conditions and the following disclaimer. 11 | * 12 | * * Redistributions in binary form must reproduce the above copyright 13 | * notice, this list of conditions and the following disclaimer in the 14 | * documentation and/or other materials provided with the distribution. 15 | * 16 | * * Neither the names 'Derelict', 'DerelictLibui', nor the names of its contributors 17 | * may be used to endorse or promote products derived from this software 18 | * without specific prior written permission. 19 | * 20 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 21 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED 22 | * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 23 | * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR 24 | * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 25 | * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 26 | * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 27 | * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 28 | * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 29 | * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 30 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 31 | */ 32 | module derelict.libui.funcs; 33 | 34 | private 35 | { 36 | import derelict.util.system; 37 | import derelict.libui.types; 38 | } 39 | 40 | extern(C) nothrow 41 | { 42 | alias da_uiInit = cstring function(uiInitOptions *options); 43 | alias da_uiUninit = void function(); 44 | 45 | alias da_uiFreeInitError = void function(cstring err); 46 | 47 | alias da_uiMain = void function(); 48 | alias da_uiQuit = void function(); 49 | 50 | alias da_uiQueueMain = void function(void function(void *data) f, void *data); 51 | alias da_uiOnShouldQuit = void function(int function(void *data) f, void *data); 52 | alias da_uiFreeText = void function(cstring text); 53 | 54 | alias da_uiControlDestroy = void function(uiControl *); 55 | alias da_uiControlHandle = uintptr_t function(uiControl *); 56 | alias da_uiControlParent = uiControl* function(uiControl *); 57 | alias da_uiControlSetParent = void function(uiControl *, uiControl *); 58 | alias da_uiControlToplevel = int function(uiControl *); 59 | alias da_uiControlVisible = int function(uiControl *); 60 | alias da_uiControlShow = void function(uiControl *); 61 | alias da_uiControlHide = void function(uiControl *); 62 | alias da_uiControlEnabled = int function(uiControl *); 63 | alias da_uiControlEnable = void function(uiControl *); 64 | alias da_uiControlDisable = void function(uiControl *); 65 | 66 | alias da_uiAllocControl = uiControl* function(size_t n, uint32_t OSsig, uint32_t typesig, cstring typenamestr); 67 | alias da_uiFreeControl = void function(uiControl *); 68 | 69 | alias da_uiControlVerifyDestroy = void function(uiControl *); 70 | alias da_uiControlVerifySetParent = void function(uiControl *, uiControl *); 71 | alias da_uiControlEnabledToUser = int function(uiControl *); 72 | 73 | alias onWindowClosingFunction = int function(uiWindow* w, void* data); 74 | 75 | alias da_uiWindowTitle = cstring function(uiWindow *w); 76 | alias da_uiWindowSetTitle = void function(uiWindow *w, cstring title); 77 | alias da_uiWindowOnClosing = void function(uiWindow *w, onWindowClosingFunction f, void* data); 78 | alias da_uiWindowSetChild = void function(uiWindow *w, uiControl *child); 79 | alias da_uiWindowMargined = int function(uiWindow *w); 80 | alias da_uiWindowSetMargined = void function(uiWindow *w, int margined); 81 | alias da_uiNewWindow = uiWindow* function(cstring title, int width, int height, int hasMenubar); 82 | 83 | alias da_uiButtonText = cstring function(uiButton *b); 84 | alias da_uiButtonSetText = void function(uiButton *b, cstring text); 85 | alias da_uiButtonOnClicked = void function(uiButton *b, void function(uiButton *b, void *data) f, void *data); 86 | alias da_uiNewButton = uiButton* function(cstring text); 87 | 88 | alias da_uiBoxAppend = void function(uiBox *b, uiControl *child, int stretchy); 89 | alias da_uiBoxDelete = void function(uiBox *b, uintmax_t index); 90 | alias da_uiBoxPadded = int function(uiBox *b); 91 | alias da_uiBoxSetPadded = void function(uiBox *b, int padded); 92 | alias da_uiNewHorizontalBox = uiBox* function(); 93 | alias da_uiNewVerticalBox = uiBox* function(); 94 | 95 | alias da_uiEntryText = cstring function(uiEntry *e); 96 | alias da_uiEntrySetText = void function(uiEntry *e, cstring text); 97 | alias da_uiEntryOnChanged = void function(uiEntry *e, void function(uiEntry *e, void *data) f, void *data); 98 | alias da_uiEntryReadOnly = int function(uiEntry *e); 99 | alias da_uiEntrySetReadOnly = void function(uiEntry *e, int readonly); 100 | alias da_uiNewEntry = uiEntry* function(); 101 | 102 | alias da_uiCheckboxText = cstring function(uiCheckbox *c); 103 | alias da_uiCheckboxSetText = void function(uiCheckbox *c, cstring text); 104 | alias da_uiCheckboxOnToggled = void function(uiCheckbox *c, void function(uiCheckbox *c, void *data) f, void *data); 105 | alias da_uiCheckboxChecked = int function(uiCheckbox *c); 106 | alias da_uiCheckboxSetChecked = void function(uiCheckbox *c, int checked); 107 | alias da_uiNewCheckbox = uiCheckbox* function(cstring text); 108 | 109 | alias da_uiLabelText = cstring function(uiLabel *l); 110 | alias da_uiLabelSetText = void function(uiLabel *l, cstring text); 111 | alias da_uiNewLabel = uiLabel* function(cstring text); 112 | 113 | alias da_uiTabAppend = void function(uiTab *t, cstring name, uiControl *c); 114 | alias da_uiTabInsertAt = void function(uiTab *t, cstring name, uintmax_t before, uiControl *c); 115 | alias da_uiTabDelete = void function(uiTab *t, uintmax_t index); 116 | alias da_uiTabNumPages = uintmax_t function(uiTab *t); 117 | alias da_uiTabMargined = int function(uiTab *t, uintmax_t page); 118 | alias da_uiTabSetMargined = void function(uiTab *t, uintmax_t page, int margined); 119 | alias da_uiNewTab = uiTab* function(); 120 | 121 | alias da_uiGroupTitle = cstring function(uiGroup *g); 122 | alias da_uiGroupSetTitle = void function(uiGroup *g, cstring title); 123 | alias da_uiGroupSetChild = void function(uiGroup *g, uiControl *c); 124 | alias da_uiGroupMargined = int function(uiGroup *g); 125 | alias da_uiGroupSetMargined = void function(uiGroup *g, int margined); 126 | alias da_uiNewGroup = uiGroup* function(cstring title); 127 | 128 | alias da_uiSpinboxValue = intmax_t function(uiSpinbox *s); 129 | alias da_uiSpinboxSetValue = void function(uiSpinbox *s, intmax_t value); 130 | alias da_uiSpinboxOnChanged = void function(uiSpinbox *s, void function(uiSpinbox *s, void *data) f, void *data); 131 | alias da_uiNewSpinbox = uiSpinbox* function(intmax_t min, intmax_t max); 132 | 133 | alias da_uiProgressBarSetValue = void function(uiProgressBar *p, int n); 134 | alias da_uiNewProgressBar = uiProgressBar* function(); 135 | 136 | alias da_uiSliderValue = intmax_t function(uiSlider *s); 137 | alias da_uiSliderSetValue = void function(uiSlider *s, intmax_t value); 138 | alias da_uiSliderOnChanged = void function(uiSlider *s, void function(uiSlider *s, void *data) f, void *data); 139 | alias da_uiNewSlider = uiSlider* function(intmax_t min, intmax_t max); 140 | 141 | alias da_uiNewHorizontalSeparator = uiSeparator* function(); 142 | 143 | alias da_uiComboboxAppend = void function(uiCombobox *c, cstring text); 144 | alias da_uiComboboxSelected = intmax_t function(uiCombobox *c); 145 | alias da_uiComboboxSetSelected = void function(uiCombobox *c, intmax_t n); 146 | alias da_uiComboboxOnSelected = void function(uiCombobox *c, void function(uiCombobox *c, void *data) f, void *data); 147 | alias da_uiNewCombobox = uiCombobox* function(); 148 | alias da_uiNewEditableCombobox = uiCombobox* function(); 149 | 150 | alias da_uiRadioButtonsAppend = void function(uiRadioButtons *r, cstring text); 151 | alias da_uiNewRadioButtons = uiRadioButtons* function(); 152 | 153 | alias da_uiNewDateTimePicker = uiDateTimePicker* function(); 154 | alias da_uiNewDatePicker = uiDateTimePicker* function(); 155 | alias da_uiNewTimePicker = uiDateTimePicker* function(); 156 | 157 | alias da_uiMultilineEntryText = cstring function(uiMultilineEntry *e); 158 | alias da_uiMultilineEntrySetText = void function(uiMultilineEntry *e, cstring text); 159 | alias da_uiMultilineEntryAppend = void function(uiMultilineEntry *e, cstring text); 160 | alias da_uiMultilineEntryOnChanged = void function(uiMultilineEntry *e, void function(uiMultilineEntry *e, void *data) f, void *data); 161 | alias da_uiMultilineEntryReadOnly = int function(uiMultilineEntry *e); 162 | alias da_uiMultilineEntrySetReadOnly = void function(uiMultilineEntry *e, int readonly); 163 | alias da_uiNewMultilineEntry = uiMultilineEntry* function(); 164 | 165 | alias da_uiMenuItemEnable = void function(uiMenuItem *m); 166 | alias da_uiMenuItemDisable = void function(uiMenuItem *m); 167 | alias da_uiMenuItemOnClicked = void function(uiMenuItem *m, void function(uiMenuItem *sender, uiWindow *window, void *data) f, void *data); 168 | alias da_uiMenuItemChecked = int function(uiMenuItem *m); 169 | alias da_uiMenuItemSetChecked = void function(uiMenuItem *m, int checked); 170 | 171 | alias da_uiMenuAppendItem = uiMenuItem* function(uiMenu *m, cstring name); 172 | alias da_uiMenuAppendCheckItem = uiMenuItem* function(uiMenu *m, cstring name); 173 | alias da_uiMenuAppendQuitItem = uiMenuItem* function(uiMenu *m); 174 | alias da_uiMenuAppendPreferencesItem = uiMenuItem* function(uiMenu *m); 175 | alias da_uiMenuAppendAboutItem = uiMenuItem* function(uiMenu *m); 176 | alias da_uiMenuAppendSeparator = void function(uiMenu *m); 177 | alias da_uiNewMenu = uiMenu* function(cstring name); 178 | 179 | alias da_uiOpenFile = cstring function(uiWindow *parent); 180 | alias da_uiSaveFile = cstring function(uiWindow *parent); 181 | alias da_uiMsgBox = void function(uiWindow *parent, cstring title, cstring description); 182 | alias da_uiMsgBoxError = void function(uiWindow *parent, cstring title, cstring description); 183 | 184 | alias da_uiAreaSetSize = void function(uiArea *a, intmax_t width, intmax_t height); 185 | alias da_uiAreaQueueRedrawAll = void function(uiArea *a); 186 | alias da_uiAreaScrollTo = void function(uiArea *a, double x, double y, double width, double height); 187 | alias da_uiNewArea = uiArea* function(uiAreaHandler *ah); 188 | alias da_uiNewScrollingArea = uiArea* function(uiAreaHandler *ah, intmax_t width, intmax_t height); 189 | 190 | alias da_uiDrawNewPath = uiDrawPath* function(uiDrawFillMode fillMode); 191 | alias da_uiDrawFreePath = void function(uiDrawPath *p); 192 | 193 | alias da_uiDrawPathNewFigure = void function(uiDrawPath *p, double x, double y); 194 | alias da_uiDrawPathNewFigureWithArc = void function(uiDrawPath *p, double xCenter, double yCenter, double radius, double startAngle, double sweep, int negative); 195 | alias da_uiDrawPathLineTo = void function(uiDrawPath *p, double x, double y); 196 | alias da_uiDrawPathArcTo = void function(uiDrawPath *p, double xCenter, double yCenter, double radius, double startAngle, double sweep, int negative); 197 | alias da_uiDrawPathBezierTo = void function(uiDrawPath *p, double c1x, double c1y, double c2x, double c2y, double endX, double endY); 198 | alias da_uiDrawPathCloseFigure = void function(uiDrawPath *p); 199 | alias da_uiDrawPathAddRectangle = void function(uiDrawPath *p, double x, double y, double width, double height); 200 | alias da_uiDrawPathEnd = void function(uiDrawPath *p); 201 | 202 | alias da_uiDrawStroke = void function(uiDrawContext *c, uiDrawPath *path, uiDrawBrush *b, uiDrawStrokeParams *p); 203 | alias da_uiDrawFill = void function(uiDrawContext *c, uiDrawPath *path, uiDrawBrush *b); 204 | 205 | alias da_uiDrawMatrixSetIdentity = void function(uiDrawMatrix *m); 206 | alias da_uiDrawMatrixTranslate = void function(uiDrawMatrix *m, double x, double y); 207 | alias da_uiDrawMatrixScale = void function(uiDrawMatrix *m, double xCenter, double yCenter, double x, double y); 208 | alias da_uiDrawMatrixRotate = void function(uiDrawMatrix *m, double x, double y, double amount); 209 | alias da_uiDrawMatrixSkew = void function(uiDrawMatrix *m, double x, double y, double xamount, double yamount); 210 | alias da_uiDrawMatrixMultiply = void function(uiDrawMatrix *dest, uiDrawMatrix *src); 211 | alias da_uiDrawMatrixInvertible = int function(uiDrawMatrix *m); 212 | alias da_uiDrawMatrixInvert = int function(uiDrawMatrix *m); 213 | alias da_uiDrawMatrixTransformPoint = void function(uiDrawMatrix *m, double *x, double *y); 214 | alias da_uiDrawMatrixTransformSize = void function(uiDrawMatrix *m, double *x, double *y); 215 | 216 | alias da_uiDrawTransform = void function(uiDrawContext *c, uiDrawMatrix *m); 217 | 218 | alias da_uiDrawClip = void function(uiDrawContext *c, uiDrawPath *path); 219 | 220 | alias da_uiDrawSave = void function(uiDrawContext *c); 221 | alias da_uiDrawRestore = void function(uiDrawContext *c); 222 | 223 | alias da_uiDrawListFontFamilies = uiDrawFontFamilies* function(); 224 | alias da_uiDrawFontFamiliesNumFamilies = uintmax_t function(uiDrawFontFamilies *ff); 225 | alias da_uiDrawFontFamiliesFamily = cstring function(uiDrawFontFamilies *ff, uintmax_t n); 226 | alias da_uiDrawFreeFontFamilies = void function(uiDrawFontFamilies *ff); 227 | 228 | alias da_uiDrawLoadClosestFont = uiDrawTextFont* function(const uiDrawTextFontDescriptor *desc); 229 | alias da_uiDrawFreeTextFont = void function(uiDrawTextFont *font); 230 | alias da_uiDrawTextFontHandle = uintptr_t function(uiDrawTextFont *font); 231 | alias da_uiDrawTextFontDescribe = void function(uiDrawTextFont *font, uiDrawTextFontDescriptor *desc); 232 | alias da_uiDrawTextFontGetMetrics = void function(uiDrawTextFont *font, uiDrawTextFontMetrics *metrics); 233 | 234 | alias da_uiDrawNewTextLayout = uiDrawTextLayout* function(cstring text, uiDrawTextFont *defaultFont, double width); 235 | alias da_uiDrawFreeTextLayout = void function(uiDrawTextLayout *layout); 236 | 237 | alias da_uiDrawTextLayoutSetWidth = void function(uiDrawTextLayout *layout, double width); 238 | alias da_uiDrawTextLayoutExtents = void function(uiDrawTextLayout *layout, double *width, double *height); 239 | alias da_uiDrawTextLayoutSetColor = void function(uiDrawTextLayout *layout, intmax_t startChar, intmax_t endChar, double r, double g, double b, double a); 240 | alias da_uiDrawText = void function(uiDrawContext *c, double x, double y, uiDrawTextLayout *layout); 241 | 242 | alias da_uiFontButtonFont = uiDrawTextFont* function(uiFontButton *b); 243 | alias da_uiFontButtonOnChanged = void function(uiFontButton *b, void function(uiFontButton *, void *) f, void *data); 244 | alias da_uiNewFontButton = uiFontButton* function(); 245 | 246 | alias da_uiColorButtonColor = void function(uiColorButton *b, double *r, double *g, double *bl, double *a); 247 | alias da_uiColorButtonSetColor = void function(uiColorButton *b, double r, double g, double bl, double a); 248 | alias da_uiColorButtonOnChanged = void function(uiColorButton *b, void function(uiColorButton *, void *) f, void *data); 249 | alias da_uiNewColorButton = uiColorButton* function(); 250 | } 251 | 252 | __gshared 253 | { 254 | da_uiInit uiInit; 255 | da_uiUninit uiUninit; 256 | 257 | da_uiFreeInitError uiFreeInitError; 258 | da_uiMain uiMain; 259 | da_uiQuit uiQuit; 260 | 261 | da_uiQueueMain uiQueueMain; 262 | da_uiOnShouldQuit uiOnShouldQuit; 263 | da_uiFreeText uiFreeText; 264 | 265 | da_uiControlDestroy uiControlDestroy; 266 | da_uiControlHandle uiControlHandle; 267 | da_uiControlParent uiControlParent; 268 | da_uiControlSetParent uiControlSetParent; 269 | da_uiControlToplevel uiControlToplevel; 270 | da_uiControlVisible uiControlVisible; 271 | da_uiControlShow uiControlShow; 272 | da_uiControlHide uiControlHide; 273 | da_uiControlEnabled uiControlEnabled; 274 | da_uiControlEnable uiControlEnable; 275 | da_uiControlDisable uiControlDisable; 276 | 277 | da_uiAllocControl uiAllocControl; 278 | da_uiFreeControl uiFreeControl; 279 | 280 | da_uiControlVerifyDestroy uiControlVerifyDestroy; 281 | da_uiControlVerifySetParent uiControlVerifySetParent; 282 | da_uiControlEnabledToUser uiControlEnabledToUser; 283 | 284 | da_uiWindowTitle uiWindowTitle; 285 | da_uiWindowSetTitle uiWindowSetTitle; 286 | da_uiWindowOnClosing uiWindowOnClosing; 287 | da_uiWindowSetChild uiWindowSetChild; 288 | da_uiWindowMargined uiWindowMargined; 289 | da_uiWindowSetMargined uiWindowSetMargined; 290 | da_uiNewWindow uiNewWindow; 291 | 292 | da_uiButtonText uiButtonText; 293 | da_uiButtonSetText uiButtonSetText; 294 | da_uiButtonOnClicked uiButtonOnClicked; 295 | da_uiNewButton uiNewButton; 296 | 297 | da_uiBoxAppend uiBoxAppend; 298 | da_uiBoxDelete uiBoxDelete; 299 | da_uiBoxPadded uiBoxPadded; 300 | da_uiBoxSetPadded uiBoxSetPadded; 301 | da_uiNewHorizontalBox uiNewHorizontalBox; 302 | da_uiNewVerticalBox uiNewVerticalBox; 303 | 304 | da_uiEntryText uiEntryText; 305 | da_uiEntrySetText uiEntrySetText; 306 | da_uiEntryOnChanged uiEntryOnChanged; 307 | da_uiEntryReadOnly uiEntryReadOnly; 308 | da_uiEntrySetReadOnly uiEntrySetReadOnly; 309 | da_uiNewEntry uiNewEntry; 310 | 311 | da_uiCheckboxText uiCheckboxText; 312 | da_uiCheckboxSetText uiCheckboxSetText; 313 | da_uiCheckboxOnToggled uiCheckboxOnToggled; 314 | da_uiCheckboxChecked uiCheckboxChecked; 315 | da_uiCheckboxSetChecked uiCheckboxSetChecked; 316 | da_uiNewCheckbox uiNewCheckbox; 317 | 318 | da_uiLabelText uiLabelText; 319 | da_uiLabelSetText uiLabelSetText; 320 | da_uiNewLabel uiNewLabel; 321 | 322 | da_uiTabAppend uiTabAppend; 323 | da_uiTabInsertAt uiTabInsertAt; 324 | da_uiTabDelete uiTabDelete; 325 | da_uiTabNumPages uiTabNumPages; 326 | da_uiTabMargined uiTabMargined; 327 | da_uiTabSetMargined uiTabSetMargined; 328 | da_uiNewTab uiNewTab; 329 | 330 | da_uiGroupTitle uiGroupTitle; 331 | da_uiGroupSetTitle uiGroupSetTitle; 332 | da_uiGroupSetChild uiGroupSetChild; 333 | da_uiGroupMargined uiGroupMargined; 334 | da_uiGroupSetMargined uiGroupSetMargined; 335 | da_uiNewGroup uiNewGroup; 336 | 337 | da_uiSpinboxValue uiSpinboxValue; 338 | da_uiSpinboxSetValue uiSpinboxSetValue; 339 | da_uiSpinboxOnChanged uiSpinboxOnChanged; 340 | da_uiNewSpinbox uiNewSpinbox; 341 | 342 | da_uiProgressBarSetValue uiProgressBarSetValue; 343 | da_uiNewProgressBar uiNewProgressBar; 344 | 345 | da_uiSliderValue uiSliderValue; 346 | da_uiSliderSetValue uiSliderSetValue; 347 | da_uiSliderOnChanged uiSliderOnChanged; 348 | da_uiNewSlider uiNewSlider; 349 | 350 | da_uiNewHorizontalSeparator uiNewHorizontalSeparator; 351 | 352 | da_uiComboboxAppend uiComboboxAppend; 353 | da_uiComboboxSelected uiComboboxSelected; 354 | da_uiComboboxSetSelected uiComboboxSetSelected; 355 | da_uiComboboxOnSelected uiComboboxOnSelected; 356 | da_uiNewCombobox uiNewCombobox; 357 | da_uiNewEditableCombobox uiNewEditableCombobox; 358 | 359 | da_uiRadioButtonsAppend uiRadioButtonsAppend; 360 | da_uiNewRadioButtons uiNewRadioButtons; 361 | 362 | da_uiNewDateTimePicker uiNewDateTimePicker; 363 | da_uiNewDatePicker uiNewDatePicker; 364 | da_uiNewTimePicker uiNewTimePicker; 365 | 366 | da_uiMultilineEntryText uiMultilineEntryText; 367 | da_uiMultilineEntrySetText uiMultilineEntrySetText; 368 | da_uiMultilineEntryAppend uiMultilineEntryAppend; 369 | da_uiMultilineEntryOnChanged uiMultilineEntryOnChanged; 370 | da_uiMultilineEntryReadOnly uiMultilineEntryReadOnly; 371 | da_uiMultilineEntrySetReadOnly uiMultilineEntrySetReadOnly; 372 | da_uiNewMultilineEntry uiNewMultilineEntry; 373 | 374 | da_uiMenuItemEnable uiMenuItemEnable; 375 | da_uiMenuItemDisable uiMenuItemDisable; 376 | da_uiMenuItemOnClicked uiMenuItemOnClicked; 377 | da_uiMenuItemChecked uiMenuItemChecked; 378 | da_uiMenuItemSetChecked uiMenuItemSetChecked; 379 | 380 | da_uiMenuAppendItem uiMenuAppendItem; 381 | da_uiMenuAppendCheckItem uiMenuAppendCheckItem; 382 | da_uiMenuAppendQuitItem uiMenuAppendQuitItem; 383 | da_uiMenuAppendPreferencesItem uiMenuAppendPreferencesItem; 384 | da_uiMenuAppendAboutItem uiMenuAppendAboutItem; 385 | da_uiMenuAppendSeparator uiMenuAppendSeparator; 386 | da_uiNewMenu uiNewMenu; 387 | 388 | da_uiOpenFile uiOpenFile; 389 | da_uiSaveFile uiSaveFile; 390 | da_uiMsgBox uiMsgBox; 391 | da_uiMsgBoxError uiMsgBoxError; 392 | 393 | da_uiAreaSetSize uiAreaSetSize; 394 | da_uiAreaQueueRedrawAll uiAreaQueueRedrawAll; 395 | da_uiAreaScrollTo uiAreaScrollTo; 396 | da_uiNewArea uiNewArea; 397 | da_uiNewScrollingArea uiNewScrollingArea; 398 | 399 | da_uiDrawNewPath uiDrawNewPath; 400 | da_uiDrawFreePath uiDrawFreePath; 401 | 402 | da_uiDrawPathNewFigure uiDrawPathNewFigure; 403 | da_uiDrawPathNewFigureWithArc uiDrawPathNewFigureWithArc; 404 | da_uiDrawPathLineTo uiDrawPathLineTo; 405 | da_uiDrawPathArcTo uiDrawPathArcTo; 406 | da_uiDrawPathBezierTo uiDrawPathBezierTo; 407 | da_uiDrawPathCloseFigure uiDrawPathCloseFigure; 408 | da_uiDrawPathAddRectangle uiDrawPathAddRectangle; 409 | da_uiDrawPathEnd uiDrawPathEnd; 410 | 411 | da_uiDrawStroke uiDrawStroke; 412 | da_uiDrawFill uiDrawFill; 413 | 414 | da_uiDrawMatrixSetIdentity uiDrawMatrixSetIdentity; 415 | da_uiDrawMatrixTranslate uiDrawMatrixTranslate; 416 | da_uiDrawMatrixScale uiDrawMatrixScale; 417 | da_uiDrawMatrixRotate uiDrawMatrixRotate; 418 | da_uiDrawMatrixSkew uiDrawMatrixSkew; 419 | da_uiDrawMatrixMultiply uiDrawMatrixMultiply; 420 | da_uiDrawMatrixInvertible uiDrawMatrixInvertible; 421 | da_uiDrawMatrixInvert uiDrawMatrixInvert; 422 | da_uiDrawMatrixTransformPoint uiDrawMatrixTransformPoint; 423 | da_uiDrawMatrixTransformSize uiDrawMatrixTransformSize; 424 | 425 | da_uiDrawTransform uiDrawTransform; 426 | 427 | da_uiDrawClip uiDrawClip; 428 | 429 | da_uiDrawSave uiDrawSave; 430 | da_uiDrawRestore uiDrawRestore; 431 | 432 | da_uiDrawListFontFamilies uiDrawListFontFamilies; 433 | da_uiDrawFontFamiliesNumFamilies uiDrawFontFamiliesNumFamilies; 434 | da_uiDrawFontFamiliesFamily uiDrawFontFamiliesFamily; 435 | da_uiDrawFreeFontFamilies uiDrawFreeFontFamilies; 436 | 437 | da_uiDrawLoadClosestFont uiDrawLoadClosestFont; 438 | da_uiDrawFreeTextFont uiDrawFreeTextFont; 439 | da_uiDrawTextFontHandle uiDrawTextFontHandle; 440 | da_uiDrawTextFontDescribe uiDrawTextFontDescribe; 441 | da_uiDrawTextFontGetMetrics uiDrawTextFontGetMetrics; 442 | 443 | da_uiDrawNewTextLayout uiDrawNewTextLayout; 444 | da_uiDrawFreeTextLayout uiDrawFreeTextLayout; 445 | 446 | da_uiDrawTextLayoutSetWidth uiDrawTextLayoutSetWidth; 447 | da_uiDrawTextLayoutExtents uiDrawTextLayoutExtents; 448 | da_uiDrawTextLayoutSetColor uiDrawTextLayoutSetColor; 449 | da_uiDrawText uiDrawText; 450 | 451 | da_uiFontButtonFont uiFontButtonFont; 452 | da_uiFontButtonOnChanged uiFontButtonOnChanged; 453 | da_uiNewFontButton uiNewFontButton; 454 | 455 | da_uiColorButtonColor uiColorButtonColor; 456 | da_uiColorButtonSetColor uiColorButtonSetColor; 457 | da_uiColorButtonOnChanged uiColorButtonOnChanged; 458 | da_uiNewColorButton uiNewColorButton; 459 | } 460 | --------------------------------------------------------------------------------