ObjQt  Check-in [14dfe934b0]

Overview
Comment:Add QtPushButton
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA3-256: 14dfe934b0182db261348eb2db42e7b41ab0f67514b94c144bf5706159fe8983
User & Date: max-schander@freenet.de on 2017-04-18 19:21:23
Other Links: manifest | tags
Context
2017-04-30
11:41
Add -Wno-ignored-attributes flag (#5) check-in: 64b5d517f4 user: js tags: trunk
2017-04-18
19:21
Add QtPushButton check-in: 14dfe934b0 user: max-schander@freenet.de tags: trunk
02:27
Add QtAbstractButton check-in: 462c91f6d6 user: js tags: trunk
Changes

Modified src/QtWidgets/Makefile from [3c4d075d00] to [917c60f194].

1
2
3
4
5
6
7
8

9
10
11
12
13
include ../../extra.mk

STATIC_PIC_LIB_NOINST = ${QTWIDGETS_LIB_A}
STATIC_LIB_NOINST = ${QTWIDGETS_A}

SRCS = QtAbstractButton.mm	\
       QtAction.mm		\
       QtApplication.mm		\

       QtWidget.mm

include ../../buildsys.mk

CPPFLAGS += -I. -I../QtCore -I../QtGui -I../common








>





1
2
3
4
5
6
7
8
9
10
11
12
13
14
include ../../extra.mk

STATIC_PIC_LIB_NOINST = ${QTWIDGETS_LIB_A}
STATIC_LIB_NOINST = ${QTWIDGETS_A}

SRCS = QtAbstractButton.mm	\
       QtAction.mm		\
       QtApplication.mm		\
       QtPushButton.mm           \
       QtWidget.mm

include ../../buildsys.mk

CPPFLAGS += -I. -I../QtCore -I../QtGui -I../common

Added src/QtWidgets/QtPushButton.h version [7a67030b98].



















































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
/*
 * Copyright (c) 2017, Maximilian Schander <max-schander@freenet.de>
 * Copyright (c) 2017, Jonathan Schleifer <js@heap.zone>
 *
 * https://heap.zone/git/objqt.git
 *
 * Permission to use, copy, modify, and/or distribute this software for any
 * purpose with or without fee is hereby granted, provided that the above
 * copyright notice and this permission notice is present in all copies.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
 * POSSIBILITY OF SUCH DAMAGE.
 */

#import "QtAbstractButton.h"

#include <QMenu>
#include <QPushButton>

@interface QtPushButton: QtAbstractButton
@property (readonly) QPushButton *qPushButton;
@property QMenu* menu;
@property bool autoDefault;
@property (getter=isDefault, setter=setDefault:) bool default_;
@property (getter=isFlat) bool flat;

- initWithQPushButton: (QPushButton*)qPushButton;
- initWithText: (OFString*)text;
- initWithIcon: (QIcon)icon
	  text: (OFString*)text;
@end

namespace ObjQt {

static OF_INLINE QtPushButton*
toOF(QPushButton *qPushButton)
{
	return [[[QtPushButton alloc]
	    initWithQPushButton: qPushButton] autorelease];
}

static OF_INLINE QPushButton*
toQt(QtPushButton *pushButton)
{
	return [pushButton qPushButton];
}

}

Added src/QtWidgets/QtPushButton.mm version [9e8bdaad72].



















































































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
/*
 * Copyright (c) 2017, Maximilian Schander <max-schander@freenet.de>
 * Copyright (c) 2017, Jonathan Schleifer <js@heap.zone>
 *
 * https://heap.zone/git/objqt.git
 *
 * Permission to use, copy, modify, and/or distribute this software for any
 * purpose with or without fee is hereby granted, provided that the above
 * copyright notice and this permission notice is present in all copies.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
 * POSSIBILITY OF SUCH DAMAGE.
 */

#import "QtPushButton.h"
#import "OFString+QString.h"

#import "helpers.h"

using ObjQt::toOF;
using ObjQt::toQt;

@implementation QtPushButton

- initWithQAbstractButton: (QAbstractButton*)qAbstractButton
{
	OF_INVALID_INIT_METHOD
}

- initWithQPushButton: (QPushButton*)qPushButton
{
	return [super initWithQAbstractButton: qPushButton];
}

- initWithText: (OFString*)text
{
	try {
		self = [self initWithQPushButton:
		    new QPushButton(toQt(text))];

		[self takeOwnership];

		return self;
	} catch (const std::bad_alloc &e) {
		self = [super initWithQAbstractButton: NULL];
		[self release];
		throw;
	}
}

- initWithIcon: (QIcon)icon
	  text: (OFString*)text
{
	try {
		self = [self initWithQPushButton:
		    new QPushButton(icon, toQt(text))];

		[self takeOwnership];

		return self;
	} catch (const std::bad_alloc &e) {
		self = [super initWithQAbstractButton: NULL];
		[self release];
		throw;
	}
}

- (QPushButton*)qPushButton
{
	return qobject_cast<QPushButton*>(_qObject);
}

- (QMenu*)menu
{
	return toQt(self)->menu();
}

- (void)setMenu: (QMenu*)menu
{
	toQt(self)->setMenu(menu);
}

- (bool)autoDefault
{
	return toQt(self)->autoDefault();
}

- (void)setAutoDefault: (bool)autodefault
{
	toQt(self)->setAutoDefault(autodefault);
}

- (bool)isDefault
{
	return toQt(self)->isDefault();
}

- (void)setDefault: (bool)def
{
	toQt(self)->setDefault(def);
}

- (bool)isFlat
{
	return toQt(self)->isFlat();
}

- (void)setFlat: (bool)flat
{
	toQt(self)->setFlat(flat);
}
@end