This commit is contained in:
Jaidyn Ann 2024-02-04 20:42:34 -06:00
commit b7aca5eba3
2 changed files with 288 additions and 0 deletions

47
contact.scm Normal file
View File

@ -0,0 +1,47 @@
;; Copyright © 2023, Jaidyn Ann <jadedctrl@posteo.at>
;;
;; This program is free software: you can redistribute it and/or
;; modify it under the terms of the GNU General Public License as
;; published by the Free Software Foundation, either version 3 of
;; the License, or (at your option) any later version.
;;
;; This program is distributed in the hope that it will be useful,
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;; GNU General Public License for more details.
;;
;; You should have received a copy of the GNU General Public License
;; along with this program. If not, see <https://www.gnu.org/licenses/>.
(import (chicken io)
qt-light)
;; Start & run the application.
(define (init)
(let ([qt-app (qt:init)]
[qt-win (create-window)])
(init-window qt-win)
(qt:run)))
;; Create the application window.
(define (create-window)
(qt:widget (window-contents)))
;; Return the UIs XML, read from “contacts.ui”.
;; We could generate this XML ourselves, and write a nice s-expr front-end,
;; maybe… `o`
(define (window-contents)
(call-with-input-file
"contact.ui"
(lambda (in-port) (read-string #f in-port))))
;; Initialize the window.
(define (init-window window)
(qt:show window))
(init)

241
contact.ui Normal file
View File

@ -0,0 +1,241 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>MainWindow</class>
<widget class="QMainWindow" name="MainWindow">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>338</width>
<height>449</height>
</rect>
</property>
<property name="windowTitle">
<string>Contact</string>
</property>
<widget class="QWidget" name="centralwidget">
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<layout class="QVBoxLayout" name="verticalLayout">
<property name="sizeConstraint">
<enum>QLayout::SetMinimumSize</enum>
</property>
<item>
<widget class="QGraphicsView" name="profilePicture">
<property name="enabled">
<bool>true</bool>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>50</width>
<height>50</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>100</width>
<height>100</height>
</size>
</property>
<property name="frameShape">
<enum>QFrame::NoFrame</enum>
</property>
</widget>
</item>
<item>
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
<item>
<layout class="QFormLayout" name="formLayout">
<property name="labelAlignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
<item row="0" column="0">
<widget class="QLabel" name="nameLabel">
<property name="text">
<string>Name</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QLineEdit" name="nameLineEdit"/>
</item>
<item row="1" column="0">
<widget class="QLabel" name="companyLabel">
<property name="text">
<string>Company</string>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QLineEdit" name="companyLineEdit"/>
</item>
<item row="2" column="0">
<widget class="QLabel" name="addressLabel">
<property name="text">
<string>Address</string>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QLineEdit" name="addressLineEdit"/>
</item>
<item row="3" column="0">
<widget class="QLabel" name="cityLabel">
<property name="text">
<string>City</string>
</property>
</widget>
</item>
<item row="3" column="1">
<widget class="QLineEdit" name="cityLineEdit"/>
</item>
<item row="4" column="0">
<widget class="QLabel" name="stateLabel">
<property name="text">
<string>State</string>
</property>
</widget>
</item>
<item row="4" column="1">
<widget class="QLineEdit" name="stateLineEdit"/>
</item>
<item row="5" column="0">
<widget class="QLabel" name="zipLabel">
<property name="text">
<string>Zip</string>
</property>
</widget>
</item>
<item row="5" column="1">
<widget class="QLineEdit" name="zipLineEdit"/>
</item>
<item row="6" column="0">
<widget class="QLabel" name="countryLabel">
<property name="text">
<string>Country</string>
</property>
</widget>
</item>
<item row="6" column="1">
<widget class="QLineEdit" name="countryLineEdit"/>
</item>
<item row="7" column="0">
<widget class="QLabel" name="eMailLabel">
<property name="text">
<string>E-mail</string>
</property>
</widget>
</item>
<item row="7" column="1">
<widget class="QLineEdit" name="eMailLineEdit"/>
</item>
<item row="8" column="0">
<widget class="QLabel" name="homePhoneLabel">
<property name="text">
<string>Home phone</string>
</property>
</widget>
</item>
<item row="8" column="1">
<widget class="QLineEdit" name="homePhoneLineEdit"/>
</item>
<item row="9" column="0">
<widget class="QLabel" name="workPhoneLabel">
<property name="text">
<string>Work phone</string>
</property>
</widget>
</item>
<item row="9" column="1">
<widget class="QLineEdit" name="workPhoneLineEdit"/>
</item>
<item row="10" column="0">
<widget class="QLabel" name="faxLabel">
<property name="text">
<string>Fax</string>
</property>
</widget>
</item>
<item row="10" column="1">
<widget class="QLineEdit" name="faxLineEdit"/>
</item>
<item row="11" column="0">
<widget class="QLabel" name="urlLabel">
<property name="text">
<string>URL</string>
</property>
</widget>
</item>
<item row="11" column="1">
<widget class="QLineEdit" name="urlLineEdit"/>
</item>
<item row="12" column="0">
<widget class="QLabel" name="nicknameLabel">
<property name="text">
<string>Nickname</string>
</property>
</widget>
</item>
<item row="12" column="1">
<widget class="QLineEdit" name="nicknameLineEdit"/>
</item>
<item row="13" column="0">
<widget class="QLabel" name="birthdayLabel">
<property name="text">
<string>Birthday</string>
</property>
</widget>
</item>
<item row="13" column="1">
<widget class="QDateTimeEdit" name="birthdayDateTimeEdit"/>
</item>
</layout>
</item>
</layout>
</widget>
<widget class="QMenuBar" name="menubar">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>338</width>
<height>20</height>
</rect>
</property>
<widget class="QMenu" name="menuFile">
<property name="title">
<string>File</string>
</property>
<addaction name="actionQuit"/>
</widget>
<addaction name="menuFile"/>
</widget>
<widget class="QStatusBar" name="statusbar"/>
<action name="actionQuit">
<property name="text">
<string>Exit</string>
</property>
</action>
</widget>
<resources/>
<connections/>
</ui>