andlabs / andlabs/libui

ScrollingArea setSize does nothing on Windows

Abierto
#344 1 comentario 0 reacciones 0 asignados Ver en GitHub
Lenguaje dominante
C
Estrellas
10.9k
Forks
612
Métricas de merge de PR
Sin PR fusionados en 30 d

Descripción

It seems like `uiAreaSetSize` has no effect whatsoever on the area (at least on macOS and Windows 10):

```c
#include
#include
#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;
}
```

libui-node's issue: https://github.com/parro-it/libui-node/issues/91

Guía de contribución

Abrir la guía de contribución

Evaluación

Este issue todavía no se ha evaluado.

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.