Skip to content

Instantly share code, notes, and snippets.

@mischnic
Last active July 20, 2018 14:17
Show Gist options
  • Save mischnic/77d549802492a3253f22c1bb08adbb5d to your computer and use it in GitHub Desktop.
Save mischnic/77d549802492a3253f22c1bb08adbb5d to your computer and use it in GitHub Desktop.
#include <stdio.h>
#include <string.h>
#include "ui.h"
double width = 0;
double height = 0;
static void handlerDraw(uiAreaHandler *a, uiArea *area, uiAreaDrawParams *p)
{
uiDrawBrush brush;
brush.Type = uiDrawBrushTypeSolid;
brush.R = 255;
brush.G = 0;
brush.B = 0;
brush.A = 1.0;
uiDrawPath *path = uiDrawNewPath(uiDrawFillModeWinding);
uiDrawPathAddRectangle(path, 0, 0, 1000, 1000);
uiDrawPathEnd(path);
uiDrawFill(p->Context, path, &brush);
uiDrawFreePath(path);
}
static void handlerMouseEvent(uiAreaHandler *a, uiArea *area, uiAreaMouseEvent *e) {
width = 2*e->X;
height = 2*e->Y;
printf("%d %d\n", (int)width, (int)height);
uiAreaSetSize(area, width, height);
uiAreaQueueRedrawAll(area);
}
static void handlerMouseCrossed(uiAreaHandler *ah, uiArea *a, int left) {}
static void handlerDragBroken(uiAreaHandler *ah, uiArea *a) {}
static int handlerKeyEvent(uiAreaHandler *ah, uiArea *a, uiAreaKeyEvent *e) {return 0;}
int main(void)
{
uiInitOptions o;
const char *err;
memset(&o, 0, sizeof (uiInitOptions));
err = uiInit(&o);
if (err != NULL) {
fprintf(stderr, "error initializing ui: %s\n", err);
uiFreeInitError(err);
return 1;
}
uiWindow *mainwin = uiNewWindow("test", 600, 600, 1);
uiAreaHandler handler;
handler.Draw = handlerDraw;
handler.MouseEvent = handlerMouseEvent;
handler.MouseCrossed = handlerMouseCrossed;
handler.DragBroken = handlerDragBroken;
handler.KeyEvent = handlerKeyEvent;
uiArea *area = uiNewScrollingArea(&handler, 400, 400);
uiWindowSetChild(mainwin, uiControl(area));
uiControlShow(uiControl(mainwin));
uiMain();
return 0;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment