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 }