From b4392d3cb551c6b1468319ab8bbc3e5b150f9f14 Mon Sep 17 00:00:00 2001 From: Elliott Sales de Andrade Date: Wed, 17 Nov 2021 21:08:09 -0500 Subject: [PATCH] Use standard subplot window in macosx backend Fixes #21648 --- src/_macosx.m | 111 ++++---------------------------------------------- 1 file changed, 8 insertions(+), 103 deletions(-) diff --git a/src/_macosx.m b/src/_macosx.m index b1c296bc16c0..366b786cf60a 100755 --- a/src/_macosx.m +++ b/src/_macosx.m @@ -212,14 +212,6 @@ - (BOOL)closeButtonPressed; - (void)dealloc; @end -@interface ToolWindow : NSWindow -{ -} -- (ToolWindow*)initWithContentRect:(NSRect)rect master:(NSWindow*)window; -- (void)masterCloses:(NSNotification*)notification; -- (void)close; -@end - @interface View : NSView { PyObject* canvas; NSRect rubberband; @@ -959,74 +951,17 @@ -(void)zoom:(id)sender } -(void)configure_subplots:(id)sender -{ PyObject* canvas; - View* view; - PyObject* size; - NSRect rect; - int width, height; - - rect.origin.x = 100; - rect.origin.y = 350; - PyGILState_STATE gstate = PyGILState_Ensure(); - PyObject* master = PyObject_GetAttrString(toolbar, "canvas"); - if (master==nil) - { - PyErr_Print(); - PyGILState_Release(gstate); - return; - } - canvas = PyObject_CallMethod(toolbar, "prepare_configure_subplots", ""); - if (!canvas) - { - PyErr_Print(); - Py_DECREF(master); - PyGILState_Release(gstate); - return; - } - - view = ((FigureCanvas*)canvas)->view; - if (!view) /* Something really weird going on */ - { - PyErr_SetString(PyExc_RuntimeError, "NSView* is NULL"); - PyErr_Print(); - Py_DECREF(canvas); - Py_DECREF(master); - PyGILState_Release(gstate); - return; - } - - size = PyObject_CallMethod(canvas, "get_width_height", ""); - Py_DECREF(canvas); - if (!size) - { - PyErr_Print(); - Py_DECREF(master); - PyGILState_Release(gstate); - return; - } - - int ok = PyArg_ParseTuple(size, "ii", &width, &height); - Py_DECREF(size); - if (!ok) - { +{ + PyObject* result; + PyGILState_STATE gstate; + gstate = PyGILState_Ensure(); + result = PyObject_CallMethod(toolbar, "configure_subplots", NULL); + if (result) { + Py_DECREF(result); + } else { PyErr_Print(); - Py_DECREF(master); - PyGILState_Release(gstate); - return; } - - NSWindow* mw = [((FigureCanvas*)master)->view window]; - Py_DECREF(master); PyGILState_Release(gstate); - - rect.size.width = width; - rect.size.height = height; - - ToolWindow* window = [ [ToolWindow alloc] initWithContentRect: rect - master: mw]; - [window setContentView: view]; - [view release]; - [window makeKeyAndOrderFront: nil]; } -(void)save_figure:(id)sender @@ -1455,36 +1390,6 @@ - (void)dealloc } @end -@implementation ToolWindow -- (ToolWindow*)initWithContentRect:(NSRect)rect master:(NSWindow*)window -{ - [self initWithContentRect: rect - styleMask: NSWindowStyleMaskTitled - | NSWindowStyleMaskClosable - | NSWindowStyleMaskResizable - | NSWindowStyleMaskMiniaturizable - backing: NSBackingStoreBuffered - defer: YES]; - [self setTitle: @"Subplot Configuration Tool"]; - [[NSNotificationCenter defaultCenter] addObserver: self - selector: @selector(masterCloses:) - name: NSWindowWillCloseNotification - object: window]; - return self; -} - -- (void)masterCloses:(NSNotification*)notification -{ - [self close]; -} - -- (void)close -{ - [[NSNotificationCenter defaultCenter] removeObserver: self]; - [super close]; -} -@end - @implementation View - (BOOL)isFlipped { pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy