Skip to content

Instantly share code, notes, and snippets.

C:/msys64/mingw64/bin/c++.exe -D_UI_STATIC -Dlibui_EXPORTS @CMakeFiles/libui.dir/includes_CXX.rsp --std=c++11 -Wall -Wextra -pedantic -Wno-unused-parameter -Wno-switch -fvisibility=hidden -o CMakeFiles/libui.dir/windows/areadraw.cpp.obj -c E:/github.com/andlabs/libui/windows/areadraw.cpp
C:/msys64/mingw64/bin/ar.exe qc out/libui.a CMakeFiles/libui.dir/common/areaevents.c.obj CMakeFiles/libui.dir/common/control.c.obj CMakeFiles/libui.dir/common/debug.c.obj CMakeFiles/libui.dir/common/matrix.c.obj CMakeFiles/libui.dir/common/shouldquit.c.obj CMakeFiles/libui.dir/common/userbugs.c.obj CMakeFiles/libui.dir/windows/alloc.cpp.obj CMakeFiles/libui.dir/windows/area.cpp.obj CMakeFiles/libui.dir/windows/areadraw.cpp.obj CMakeFiles/libui.dir/windows/areaevents.cpp.obj CMakeFiles/libui.dir/windows/areascroll.cpp.obj CMakeFiles/libui.dir/windows/areautil.cpp.obj CMakeFiles/libui.dir/windows/box.cpp.obj CMakeFiles/libui.dir/windows/button.cpp.obj CMakeFiles/libui.dir/windows/checkbox.cpp.obj CMakeFiles/libui.dir/windo
macro(_add_static _name)
add_library(${_name}_uncombined STATIC EXCLUDE_FROM_ALL "${ARGN}")
# or alternatively
# add_custom_target(${_name}_uncombined SOURCES "${ARGN}")
get_target_property(_objs ${_name}_uncombined SOURCES)
string(REPLACE ";" " " _objs "${_objs}")
add_custom_command(
OUTPUT ${_name}_combined.o
COMMAND
ld -r ${_objs} -o ${_name}_combined.o
cmake
1 kainjow
13
1 sekrause
5
1 waddlesplash
4
1 rotseisermho
1 soloe
8
@andlabs
andlabs / libuibuild.md
Created May 31, 2016 23:17
libui Build System Requirements

libui Build System Requirements

Source Tree Layout

The libui source tree has a simple layout:

common/
    common sources and headers, .c and .h
darwin/
# 30 may 2016
from waflib import Utils
top = '.'
out = '_build'
def _platform(ctx):
plat = Utils.unversioned_sys_platform()
if plat == 'win32':
diff --git a/windows/alloc.c b/windows/alloc.c
index 1360e7f..15caf3c 100644
--- a/windows/alloc.c
+++ b/windows/alloc.c
@@ -1,89 +1,62 @@
// 4 december 2014
-#include "uipriv_windows.h"
+#include "uipriv_windows.hpp"
-// wrappers for allocator of choice
# 2 january 2015
# usage: ./e4jexamine summary file | awk -f fulllog.awk file
# TODO pass options to e4jexamine
# TODO check for errors
BEGIN {
# TODO make sure this is sufficient to alter ARGC/ARGV
file = ARGV[1]
ARGC = 1
}
{ print }
# testmain
00000000 24 37 00 00 2e 74 65 78 74 2e 75 6e 6c 69 6b 65
00000016 6c 79 00 2e 72 64 61 74 61 24 7a 7a 7a 00 2e 72
00000032 64 61 74 61 24 2e 72 65 66 70 74 72 2e 5f 63 67
00000048 6f 65 78 70 5f 63 30 32 30 65 33 61 37 32 64 36
00000064 62 5f 77 69 6e 64 6f 77 43 6c 6f 73 69 6e 67 00
00000080 2e 72 64 61 74 61 24 2e 72 65 66 70 74 72 2e 5f
00000096 63 67 6f 65 78 70 5f 63 30 32 30 65 33 61 37 32
00000112 64 36 62 5f 77 69 6e 64 6f 77 52 65 73 69 7a 65

ui

-- import "github.com/andlabs/ui/redo"

Usage

var Do = make(Doer)
@andlabs
andlabs / gist:740e742a28f41b81a7af
Last active August 29, 2015 14:03
Maybe we can salvage concurrent UI after all...

New proposal: rather than have methods do things, have methods create requests to do things.

At the top level, there is a channel ui.Do which accepts the results of setter methods:

ui.Do <- label.SetText("Hello")
ui.Do <- checkbox.SetChecked(true)

Getters, however, are a bit more work. Not only do we need to send a request, we need to get something back from it. So getters will require three lines: