patch added by anonymous on Fri Oct 20 23:28:19 2017
diff -ur -x '*compile*' -x '*.setup' qt-light-0.991/main.cpp qt-light-0.991-1/main.cpp
--- qt-light-0.991/main.cpp 2017-10-20 20:50:21.625190966 +0200
+++ qt-light-0.991-1/main.cpp 2017-10-20 23:27:37.870270372 +0200
@@ -64,6 +64,7 @@
#define qtapplication QApplication *
#define qtreceiver SimpleReceiver *
#define qtwidget QWidget *
+#define qtlayout QLayout *
#define qtpixmap QPixmap *
#define qttimer QTimer *
#define qtsound QSound *
@@ -98,7 +99,6 @@
return w;
}
-
___bool qt_run(___bool once)
{
if(once) {
@@ -114,7 +114,7 @@
void qt_deleteobject(QObject *o) { delete o; }
void qt_deletepixmap(QPixmap *o) { delete o; }
___bool qt_connect(QWidget *w1, char *sig, QObject *w2, char *slot) { return QObject::connect(w1, sig, w2, slot); }
-QWidget *qt_find(QWidget *parent, char *name) { return parent->findChild(QString(name)); }
+QObject *qt_find(QObject *parent, char *name) { return parent->findChild(QString(name)); }
QObject *qt_receiver(char *name, C_word proc) { return new SimpleReceiver(name, proc); }
@@ -413,6 +413,7 @@
void qt_clearlistwidget(qtwidget w) { ((QListWidget *)w)->clear(); }
void qt_addcomboboxitem(qtwidget w, char *s) { ((QComboBox *)w)->addItem(s); }
void qt_addlistwidgetitem(qtwidget w, char *s) { ((QListWidget *)w)->addItem(s); }
+void qt_layoutaddwidget(qtlayout l, qtwidget w) { ((QLayout *)l)->addWidget(w); }
void qt_addtreewidgetitem(qtwidget w, char *s)
{
diff -ur -x '*compile*' -x '*.setup' qt-light-0.991/prototypes.h qt-light-0.991-1/prototypes.h
--- qt-light-0.991/prototypes.h 2017-10-20 20:50:21.625190966 +0200
+++ qt-light-0.991-1/prototypes.h 2017-10-20 23:27:29.739226833 +0200
@@ -10,7 +10,7 @@
void qt_deletepixmap(qtpixmap widget);
qtpixmap qt_pixmap(char *filename);
___bool qt_connect(qtwidget w1, char *sig, qtobject w2, char *slot);
-qtwidget qt_find(qtwidget parent, char *name);
+qtobject qt_find(qtobject parent, char *name);
qtobject qt_receiver(char *name, C_word proc);
int qt_message(char *caption, char *text, qtwidget parent, char *b0, char *b1, char *b2);
const char *qt_classname(qtobject w);
@@ -49,6 +49,7 @@
void qt_addcomboboxitem(qtwidget w, char *s);
void qt_addlistwidgetitem(qtwidget w, char *s);
void qt_addtreewidgetitem(qtwidget w, char *s);
+void qt_layoutaddwidget(qtlayout l, qtwidget w);
char *qt_listwidgetitem(qtwidget w, int i);
char *qt_getexistingdirectory(qtwidget p, char *cap, char *dir, int opts);
char *qt_getopenfilename(qtwidget p, char *cap, char *dir, char *filter, int opts);
diff -ur -x '*compile*' -x '*.setup' qt-light-0.991/qt-light.scm qt-light-0.991-1/qt-light.scm
--- qt-light-0.991/qt-light.scm 2017-10-20 20:50:21.625190966 +0200
+++ qt-light-0.991-1/qt-light.scm 2017-10-20 22:31:25.674833006 +0200
@@ -3,11 +3,11 @@
(module qt-light (qt:init
qt:widget qt:show qt:hide qt:run
- qt:delete qt:message qt:connect qt:find
+ qt:delete qt:message qt:connect qt:find-widget qt:find-layout qt:find qt:pointer->widget
qt:widget qt:receiver qt:pixmap qt:timer
qt:property qt:gl qt:update qt:start qt:stop
- qt:clear qt:add qt:item qt:classname
-
+ qt:clear qt:add qt:item qt:classname qt:layout-add-widget
+
qt:get-open-filename qt:get-save-filename qt:get-directory
@@ -33,6 +33,7 @@
(define (% (class 'qt-object)))
(define (% (class 'qt-sound)))
(define (% (class 'qt-widget)))
+(define (% (class 'qt-layout)))
(define (% (class 'qt-application)))
(define (% (class 'qt-pixmap)))
(define (% (class 'qt-receiver)))
@@ -42,6 +43,7 @@
(define (qt:->pointer i) (and i (? i pointer)))
(define (qt:pointer->widget p) (and p (% (pointer p))))
+(define (qt:pointer->layout p) (and p (% (pointer p))))
(define (qt:pointer->object p) (and p (% (pointer p))))
(define (qt:pointer->timer p) (and p (% (pointer p))))
(define (qt:pointer->application p) (and p (% (pointer p))))
@@ -54,6 +56,7 @@
#>?
___declare(substitute, "qt_;qt:")
___declare(type, "qtwidget;c-pointer;qt:->pointer;qt:pointer->widget")
+___declare(type, "qtlayout;c-pointer;qt:->pointer;qt:pointer->layout")
___declare(type, "qtapplication;c-pointer;qt:->pointer;qt:pointer->application")
___declare(type, "qtpixmap;c-pointer;qt:->pointer;qt:pointer->pixmap")
___declare(type, "qtobject;c-pointer;qt:->pointer;qt:pointer->object")
@@ -171,6 +174,19 @@
((string=? "QTreeWidget" (qt:classname w)) (qt:addtreewidgetitem w x))
(else (error 'qt:add "invalid widget" w x)) ) )
+(define (qt:layout-add-widget l w)
+ (if (string=? "QLayout" (qt:classname l))
+ (if (string=? "QWidget" (qt:classname w))
+ (qt:layoutaddwidget l w)
+ (error 'qt-layout-add-widget "invalid widget"))
+ (error 'qt:layout-add-widget "invalid layout") ) )
+
+(define (qt:find-layout o s)
+ (qt:pointer->layout (qt:find o s)) )
+
+(define (qt:find-widget o s)
+ (qt:pointer->widget (qt:find o s)) )
+
(define (qt:item w i) (and (positive? i) (qt:listwidgetitem w i)))
(define qt:clear qt:clearlistwidget)