Files
PyUIBuilder/src/frameworks/tkinter/widgets/frame.js

62 lines
1.6 KiB
JavaScript
Raw Normal View History

2024-09-22 22:24:35 +05:30
import Widget from "../../../canvas/widgets/base"
2024-09-27 16:04:03 +05:30
import {TkinterBase} from "./base"
2024-09-22 22:24:35 +05:30
2024-09-25 17:27:12 +05:30
class Frame extends TkinterBase{
2024-09-22 22:24:35 +05:30
static widgetType = "frame"
2025-03-11 07:23:17 +05:30
static displayName = "Frame"
2024-09-22 22:24:35 +05:30
constructor(props) {
super(props)
this.droppableTags = {
2024-09-26 11:59:24 +05:30
exclude: ["image", "video", "media", "toplevel", "main_window"]
2024-09-22 22:24:35 +05:30
}
2024-09-27 16:04:03 +05:30
this.state = {
...this.state,
fitContent: {width: true, height: true},
2024-09-27 16:04:03 +05:30
widgetName: "Frame"
}
}
componentDidMount(){
super.componentDidMount()
this.setAttrValue("styling.backgroundColor", "#EDECEC")
2024-09-26 23:16:43 +05:30
}
2024-09-22 22:24:35 +05:30
2024-09-26 23:16:43 +05:30
generateCode(variableName, parent){
2024-09-22 22:24:35 +05:30
2024-09-26 23:16:43 +05:30
const bg = this.getAttrValue("styling.backgroundColor")
return [
`${variableName} = tk.Frame(master=${parent})`,
`${variableName}.config(bg="${bg}")`,
2025-03-24 15:50:46 +05:30
`${variableName}.${this.getLayoutCode()}`,
...this.getGridLayoutConfigurationCode(variableName)
2024-09-26 23:16:43 +05:30
]
2024-09-22 22:24:35 +05:30
}
2024-09-27 16:04:03 +05:30
2024-09-22 22:24:35 +05:30
renderContent(){
// console.log("bounding rect: ", this.getBoundingRect())
2024-09-25 17:27:12 +05:30
// console.log("widget styling: ", this.state.widgetInnerStyling)
2024-09-22 22:24:35 +05:30
return (
<div className="tw-w-flex tw-flex-col tw-w-full tw-h-full tw-relative tw-rounded-md tw-overflow-hidden">
2025-03-22 11:11:19 +05:30
<div className="tw-p-2 tw-w-full tw-h-full tw-content-start"
ref={this.styleAreaRef}
style={this.getInnerRenderStyling()}>
2024-09-22 22:24:35 +05:30
{this.props.children}
</div>
</div>
)
}
}
export default Frame