aboutsummaryrefslogtreecommitdiffstats
path: root/pugl/detail
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2019-08-04 19:28:22 +0200
committerDavid Robillard <d@drobilla.net>2019-09-03 08:34:39 +0200
commite7ccbec8f5f0097ca54b8d7ea27e0815b069b57c (patch)
tree9b8cfba48e3078a15b5c68f70a1e8a442b84025e /pugl/detail
parentf98e804c5f844f2dd78e94f7a1c9db15b7332fbb (diff)
downloadpugl-e7ccbec8f5f0097ca54b8d7ea27e0815b069b57c.tar.gz
pugl-e7ccbec8f5f0097ca54b8d7ea27e0815b069b57c.tar.bz2
pugl-e7ccbec8f5f0097ca54b8d7ea27e0815b069b57c.zip
Replace size and aspect ratio init functions with dynamic ones
Diffstat (limited to 'pugl/detail')
-rw-r--r--pugl/detail/implementation.c20
-rw-r--r--pugl/detail/mac.m34
-rw-r--r--pugl/detail/win.c22
-rw-r--r--pugl/detail/x11.c38
4 files changed, 94 insertions, 20 deletions
diff --git a/pugl/detail/implementation.c b/pugl/detail/implementation.c
index d6e4b86..f971284 100644
--- a/pugl/detail/implementation.c
+++ b/pugl/detail/implementation.c
@@ -128,26 +128,6 @@ puglInitWindowHint(PuglView* view, PuglWindowHint hint, int value)
}
void
-puglInitWindowMinSize(PuglView* view, int width, int height)
-{
- view->minWidth = width;
- view->minHeight = height;
-}
-
-void
-puglInitWindowAspectRatio(PuglView* view,
- int minX,
- int minY,
- int maxX,
- int maxY)
-{
- view->minAspectX = minX;
- view->minAspectY = minY;
- view->maxAspectX = maxX;
- view->maxAspectY = maxY;
-}
-
-void
puglInitWindowClass(PuglView* view, const char* name)
{
const size_t len = strlen(name);
diff --git a/pugl/detail/mac.m b/pugl/detail/mac.m
index ea55c0f..6d156c6 100644
--- a/pugl/detail/mac.m
+++ b/pugl/detail/mac.m
@@ -966,3 +966,37 @@ puglSetFrame(PuglView* view, const PuglRect frame)
return PUGL_SUCCESS;
}
+
+PuglStatus
+puglSetMinSize(PuglView* const view, const int width, const int height)
+{
+ view->minWidth = width;
+ view->minHeight = height;
+
+ if (view->impl->window && (view->minWidth || view->minHeight)) {
+ [view->impl->window
+ setContentMinSize:NSMakeSize(view->minWidth, view->minHeight)];
+ }
+
+ return PUGL_SUCCESS;
+}
+
+PuglStatus
+puglSetAspectRatio(PuglView* const view,
+ const int minX,
+ const int minY,
+ const int maxX,
+ const int maxY)
+{
+ view->minAspectX = minX;
+ view->minAspectY = minY;
+ view->maxAspectX = maxX;
+ view->maxAspectY = maxY;
+
+ if (view->impl->window && view->minAspectX && view->minAspectY) {
+ [view->impl->window setContentAspectRatio:NSMakeSize(view->minAspectX,
+ view->minAspectY)];
+ }
+
+ return PUGL_SUCCESS;
+}
diff --git a/pugl/detail/win.c b/pugl/detail/win.c
index 2c4074c..96642cc 100644
--- a/pugl/detail/win.c
+++ b/pugl/detail/win.c
@@ -804,3 +804,25 @@ puglSetFrame(PuglView* view, const PuglRect frame)
return PUGL_SUCCESS;
}
+
+PuglStatus
+puglSetMinSize(PuglView* const view, const int width, const int height)
+{
+ view->minWidth = width;
+ view->minHeight = height;
+ return PUGL_SUCCESS;
+}
+
+PuglStatus
+puglSetAspectRatio(PuglView* const view,
+ const int minX,
+ const int minY,
+ const int maxX,
+ const int maxY)
+{
+ view->minAspectX = minX;
+ view->minAspectY = minY;
+ view->maxAspectX = maxX;
+ view->maxAspectY = maxY;
+ return PUGL_SUCCESS;
+}
diff --git a/pugl/detail/x11.c b/pugl/detail/x11.c
index 1e1f96f..d7b7677 100644
--- a/pugl/detail/x11.c
+++ b/pugl/detail/x11.c
@@ -723,3 +723,41 @@ puglSetFrame(PuglView* view, const PuglRect frame)
return PUGL_SUCCESS;
}
+
+PuglStatus
+puglSetMinSize(PuglView* const view, const int width, const int height)
+{
+ Display* display = view->world->impl->display;
+
+ view->minWidth = width;
+ view->minHeight = height;
+
+ if (view->impl->win) {
+ XSizeHints sizeHints = getSizeHints(view);
+ XSetNormalHints(display, view->impl->win, &sizeHints);
+ }
+
+ return PUGL_SUCCESS;
+}
+
+PuglStatus
+puglSetAspectRatio(PuglView* const view,
+ const int minX,
+ const int minY,
+ const int maxX,
+ const int maxY)
+{
+ Display* display = view->world->impl->display;
+
+ view->minAspectX = minX;
+ view->minAspectY = minY;
+ view->maxAspectX = maxX;
+ view->maxAspectY = maxY;
+
+ if (view->impl->win) {
+ XSizeHints sizeHints = getSizeHints(view);
+ XSetNormalHints(display, view->impl->win, &sizeHints);
+ }
+
+ return PUGL_SUCCESS;
+}