/*
* Copyright (c) Cangjie Library Team 2022-2022. All rights resvered.
*/
/**
* @file
*
*/
package cjqt.widgets
foreign func nativePushButtonCreate(parentPtr: Int64): Int64
foreign func nativePushButtonSetText(ptr: Int64, text: CString): Unit
foreign func nativePushButtonConnect(ptr: Int64, code: Int64, callback: CFunc<(Int64, CPointer<Unit>) -> Unit>): Unit
foreign func nativePushButtonDelete(ptr: Int64): Unit
/**
* The class is QPushButton inherited from QWidget
* @author wathinst
*/
public class QPushButton <: QWidget {
/** let member clicked type is QPushButtonClickedSignal */
public let clicked: QPushButtonClickedSignal<Unit>
/**
* The Function is init constructor
*
*/
public init() {
super(
unsafe {
nativePushButtonCreate(0)
}
)
clicked = QPushButtonClickedSignal<Unit>(ptr)
}
/**
* The Function is init constructor
*
* @param text of String
*/
public init(text: String) {
super(
unsafe {
nativePushButtonCreate(0)
}
)
clicked = QPushButtonClickedSignal<Unit>(ptr)
setText(text)
}
/**
* The Function is init constructor
*
* @param parent of QWidget
*/
public init(parent: QWidget) {
super(
unsafe {
nativePushButtonCreate(parent.ptr)
}
)
clicked = QPushButtonClickedSignal<Unit>(ptr)
}
public init(ptr: Int64) {
super(
unsafe {
nativePushButtonCreate(ptr)
}
)
clicked = QPushButtonClickedSignal<Unit>(ptr)
}
/**
* The Function is setText
*
* @param text of String
*/
public func setText(text: String) {
unsafe {
let t=LibC.mallocCString(text)
nativePushButtonSetText(ptr, t)
LibC.free(t)
}
}
/**
* The Function is delete
*
*/
public override func delete() {
clicked.remove()
unsafe {
nativePushButtonDelete(ptr)
}
}
}
/**
* The class is QPushButtonClickedSignal inherited from QWidgetSignal<T>
* @author wathinst
*/
public class QPushButtonClickedSignal<T> <: QWidgetSignal<T> {
/*
* The Function is init constructor
*
* @param ptr of Int64
*/
init(ptr: Int64) {
super("clicked", ptr)
}
/**
* The Function is nativeConnect
*
* @param code of Int64
* @param cb of CFunc<(Int64,CPointer<Unit>)->Unit>
*/
public override func nativeConnect(code: Int64, cb: CFunc<(Int64, CPointer<Unit>) -> Unit>) {
unsafe {
nativePushButtonConnect(ptr, code, cb)
}
}
}