55module FF.Qt.EDSL where
66
77import Data.Foldable (for_ )
8+ import Graphics.UI.Qtah.Core.QObject qualified as QObject
89import Graphics.UI.Qtah.Core.Types qualified as Qt
10+ import Graphics.UI.Qtah.Widgets.QAbstractButton qualified as QAbstractButton
911import Graphics.UI.Qtah.Widgets.QBoxLayout (QBoxLayoutPtr )
1012import Graphics.UI.Qtah.Widgets.QBoxLayout qualified as QBoxLayout
1113import Graphics.UI.Qtah.Widgets.QFormLayout qualified as QFormLayout
@@ -15,7 +17,9 @@ import Graphics.UI.Qtah.Widgets.QHBoxLayout (QHBoxLayout)
1517import Graphics.UI.Qtah.Widgets.QHBoxLayout qualified as QHBoxLayout
1618import Graphics.UI.Qtah.Widgets.QLabel (QLabel )
1719import Graphics.UI.Qtah.Widgets.QLabel qualified as QLabel
18- import Graphics.UI.Qtah.Widgets.QLayout (QLayoutPtr (toQLayout ))
20+ import Graphics.UI.Qtah.Widgets.QLayout (QLayoutPtr , toQLayout )
21+ import Graphics.UI.Qtah.Widgets.QPushButton (QPushButton )
22+ import Graphics.UI.Qtah.Widgets.QPushButton qualified as QPushButton
1923import Graphics.UI.Qtah.Widgets.QScrollArea (QScrollArea )
2024import Graphics.UI.Qtah.Widgets.QScrollArea qualified as QScrollArea
2125import Graphics.UI.Qtah.Widgets.QSizePolicy (QSizePolicyPolicy )
@@ -38,15 +42,20 @@ data Layout
3842 = QFormLayout [QFormLayoutItem ]
3943 | QVBoxLayout [QBoxLayoutItem ]
4044
41- qFrame :: Layout -> IO QFrame
42- qFrame lo = do
45+ qFrame :: " objectName " :? String -> Layout -> IO QFrame
46+ qFrame ( ArgF objectName) lo = do
4347 obj <- QFrame. new
48+ for_ objectName $ QObject. setObjectName obj
4449 case lo of
4550 QFormLayout items -> do
4651 form <- QFormLayout. newWithParent obj
52+ for_ objectName \ oname ->
53+ QObject. setObjectName form $ oname <> " .form"
4754 for_ items $ addRow form
4855 QVBoxLayout items -> do
4956 box <- QVBoxLayout. newWithParent obj
57+ for_ objectName \ oname ->
58+ QObject. setObjectName box $ oname <> " .box"
5059 for_ items $ addBoxLayoutItem box
5160 pure obj
5261 where
@@ -68,24 +77,31 @@ hline = do
6877 QFrame. setFrameShape obj QFrame. HLine
6978 pure obj
7079
71- qHBoxLayout :: [QBoxLayoutItem ] -> IO QHBoxLayout
72- qHBoxLayout items = do
80+ qHBoxLayout ::
81+ " objectName" :? String ->
82+ " spacing" :? Int ->
83+ [QBoxLayoutItem ] ->
84+ IO QHBoxLayout
85+ qHBoxLayout (ArgF objectName) (ArgF spacing) items = do
7386 obj <- QHBoxLayout. new
87+ for_ objectName $ QObject. setObjectName obj
88+ for_ spacing $ QBoxLayout. setSpacing obj
7489 for_ items $ addBoxLayoutItem obj
7590 pure obj
7691
7792qLabel ::
78- (Qt. IsQtTextInteractionFlags textInteractionFlags ) =>
7993 " alignment" :? Qt. QtAlignmentFlag ->
94+ " objectName" :? String ->
8095 " openExternalLinks" :? Bool ->
8196 " sizePolicy" :? (QSizePolicyPolicy , QSizePolicyPolicy ) ->
8297 " text" :? String ->
8398 " textFormat" :? Qt. QtTextFormat ->
84- " textInteractionFlags" :? textInteractionFlags ->
99+ " textInteractionFlags" :? Qt. QtTextInteractionFlags ->
85100 " wordWrap" :? Bool ->
86101 IO QLabel
87102qLabel
88103 (ArgF alignment)
104+ (ArgF objectName)
89105 (ArgF openExternalLinks)
90106 (ArgF sizePolicy)
91107 (ArgF text)
@@ -94,6 +110,7 @@ qLabel
94110 (ArgF wordWrap) = do
95111 obj <- QLabel. new
96112 for_ alignment $ QLabel. setAlignment obj
113+ for_ objectName $ QObject. setObjectName obj
97114 for_ openExternalLinks $ QLabel. setOpenExternalLinks obj
98115 for_ sizePolicy \ (sp1, sp2) -> QWidget. setSizePolicyRaw obj sp1 sp2
99116 for_ text $ QLabel. setText obj
@@ -102,6 +119,13 @@ qLabel
102119 for_ wordWrap $ QLabel. setWordWrap obj
103120 pure obj
104121
122+ qPushButton :: " objectName" :? String -> " text" :? String -> IO QPushButton
123+ qPushButton (ArgF objectName) (ArgF text) = do
124+ obj <- QPushButton. new
125+ for_ objectName $ QObject. setObjectName obj
126+ for_ text $ QAbstractButton. setText obj
127+ pure obj
128+
105129qScrollArea :: (QWidgetPtr widget ) => widget -> IO QScrollArea
106130qScrollArea w = do
107131 obj <- QScrollArea. new
0 commit comments