Compare commits

..

72 commits
v1.0 ... main

Author SHA1 Message Date
247920c234 Update .forgejo/workflows/build.yml
All checks were successful
Test / Check syntax (push) Successful in 12s
Test / Build Debian Package (push) Successful in 20s
Test / Test the application (push) Successful in 1m10s
2025-01-20 19:10:13 -08:00
06dad0330c Update .forgejo/workflows/build.yml
All checks were successful
Test / Check syntax (push) Successful in 12s
Test / Build Debian Package (push) Successful in 19s
Test / Test the application (push) Successful in 43s
2025-01-20 19:01:41 -08:00
deea8a1bd6 Update .forgejo/workflows/build.yml
Some checks failed
Test / Check syntax (push) Successful in 10s
Test / Build Debian Package (push) Successful in 14s
Test / Test the application (push) Failing after 35s
2025-01-20 18:55:41 -08:00
dcd6df2382 Update .forgejo/workflows/build.yml
Some checks failed
Test / Test the application (push) Blocked by required conditions
Test / Build Debian Package (push) Blocked by required conditions
Test / Check syntax (push) Has been cancelled
2025-01-20 18:55:12 -08:00
dacbfd3bb0 Update .forgejo/workflows/build.yml
Some checks failed
Test / Check syntax (push) Successful in 12s
Test / Test the application (push) Failing after 39s
Test / Build Debian Package (push) Successful in 51s
2025-01-20 18:47:53 -08:00
32f51811c5 Update .forgejo/workflows/build.yml
All checks were successful
Test / Check syntax (push) Successful in 15s
Test / Build Debian Package (push) Successful in 44s
Test / Test the application (push) Successful in 1m18s
2025-01-20 18:13:33 -08:00
337ef45e17 Update .forgejo/workflows/build.yml
Some checks failed
Test / Check syntax (push) Failing after 12s
Test / Test the application (push) Has been skipped
Test / Build Debian Package (push) Has been skipped
2025-01-20 18:12:39 -08:00
381c763a3c Update .forgejo/workflows/build.yml
Some checks failed
Test / Check syntax (push) Failing after 3s
Test / Test the application (push) Has been skipped
Test / Build Debian Package (push) Has been skipped
2025-01-20 18:12:08 -08:00
a194a1fda2 Delete version
Some checks failed
Test / Build Debian Package (push) Has been cancelled
Test / Test the application (push) Has been cancelled
2025-01-20 18:11:43 -08:00
496233dcc5 Add version
All checks were successful
Test / Build Debian Package (push) Successful in 1m3s
Test / Test the application (push) Successful in 1m39s
2025-01-20 12:29:19 -08:00
0059ac99a8 Update .forgejo/workflows/build.yml
All checks were successful
Test / Build Debian Package (push) Successful in 1m23s
Test / Test the application (push) Successful in 1m48s
2025-01-20 11:28:55 -08:00
e4b7a88a60 Update .forgejo/workflows/build.yml
All checks were successful
Test / Build Debian Package (push) Successful in 1m1s
Test / Test the application (push) Successful in 1m45s
2025-01-19 14:06:26 -08:00
336df07b38 Update .forgejo/workflows/build.yml
Some checks failed
Test / Build Debian Package (push) Successful in 58s
Test / Test the application (push) Failing after 1m26s
2025-01-19 14:00:03 -08:00
7b63dac8e2 Update .forgejo/workflows/build.yml
Some checks failed
Test / Build Debian Package (push) Successful in 49s
Test / Test the application (push) Failing after 1m39s
2025-01-19 13:54:04 -08:00
11821b40ab Update .forgejo/workflows/build.yml
Some checks failed
Test / Build Debian Package (push) Successful in 47s
Test / Test the application (push) Failing after 1m24s
2025-01-19 13:48:42 -08:00
ce240ef672 Update .forgejo/workflows/build.yml
Some checks failed
Test / Build Debian Package (push) Successful in 43s
Test / Test the application (push) Failing after 1m19s
2025-01-19 13:44:45 -08:00
ec0570fd73 Update .forgejo/workflows/build.yml
Some checks failed
Test / Build Debian Package (push) Successful in 45s
Test / Test the application (push) Failing after 1m18s
2025-01-19 13:42:13 -08:00
a9b5c1b797 Update .forgejo/workflows/build.yml
Some checks failed
Test / Build Debian Package (push) Successful in 49s
Test / Test the application (push) Failing after 1m24s
2025-01-19 13:39:54 -08:00
d02b81c309 Update .forgejo/workflows/build.yml
Some checks failed
Test / Build Debian Package (push) Successful in 48s
Test / Test the application (push) Failing after 1m17s
2025-01-19 13:34:48 -08:00
d41bccb184 Update .forgejo/workflows/build.yml
Some checks failed
Test / Build Debian Package (push) Successful in 45s
Test / Test the application (push) Failing after 1m16s
2025-01-19 13:31:32 -08:00
2094d8da73 Update .forgejo/workflows/build.yml
Some checks failed
Test / Build Debian Package (push) Successful in 52s
Test / Test the application (push) Failing after 1m31s
2025-01-19 13:28:15 -08:00
4ab01b84e3 Update .forgejo/workflows/build.yml
Some checks failed
Test / Build Debian Package (push) Successful in 59s
Test / Test the application (push) Failing after 1m38s
2025-01-19 13:20:27 -08:00
bb856143fa Update .forgejo/workflows/build.yml
All checks were successful
Auto build / Build Debian Package (push) Successful in 38s
2025-01-19 13:03:25 -08:00
8bb8e9b238 Update .forgejo/workflows/build.yml
Some checks failed
Auto build / Build Debian Package (push) Failing after 1m15s
2025-01-19 12:58:35 -08:00
d0b16c7ff9 Delete generate-flatpak.py
Some checks failed
Auto build / Build Debian Package (push) Failing after 16s
2025-01-19 12:56:27 -08:00
9aca1b1e06 Delete flatpak.xml
Some checks failed
Auto build / Build Debian Package (push) Has been cancelled
2025-01-19 12:56:22 -08:00
3cd1e3418f Delete codes.swee.SweeCryptGTK.json
Some checks failed
Auto build / Build Debian Package (push) Has been cancelled
2025-01-19 12:56:17 -08:00
3b5b2b9e21 Delete flatpak.desktop
Some checks failed
Auto build / Build Debian Package (push) Has been cancelled
2025-01-19 12:56:05 -08:00
39a9c20bf1 Update .forgejo/workflows/build.yml
Some checks failed
Auto build / Build Debian Package (push) Has been cancelled
2025-01-19 12:55:58 -08:00
da799996ed Update .forgejo/workflows/build.yml
Some checks failed
Auto build / Build Debian Package (push) Successful in 41s
Auto build / Build Flatpak Package (push) Has been cancelled
2025-01-18 18:24:28 -08:00
cdfa79bccb Update .forgejo/workflows/build.yml
Some checks failed
Auto build / Build Debian Package (push) Successful in 41s
Auto build / Build Flatpak Package (push) Failing after 13s
2025-01-18 18:23:13 -08:00
4e85024b40 Update .forgejo/workflows/build.yml
Some checks failed
Auto build / Build Debian Package (push) Successful in 42s
Auto build / Build Flatpak Package (push) Failing after 12s
2025-01-18 18:21:55 -08:00
e13307ca5f Update .forgejo/workflows/build.yml
Some checks failed
Auto build / Build Debian Package (push) Failing after 32s
Auto build / Build Flatpak Package (push) Failing after 9s
2025-01-18 18:21:06 -08:00
d6cd6ebc3d Update flatpak.xml
All checks were successful
Auto build / Build Debian Package (push) Successful in 16s
Auto build / Build Flatpak Package (push) Successful in 24s
2024-12-30 20:21:23 -08:00
49f828ccf0 Update .forgejo/workflows/build.yml
All checks were successful
Auto build / Build Debian Package (push) Successful in 42s
Auto build / Build Flatpak Package (push) Successful in 1m5s
2024-12-27 21:55:10 -08:00
f15a14d470 Update .forgejo/workflows/build.yml
All checks were successful
Auto build / Build Debian Package (push) Successful in 45s
Auto build / Build Flatpak Package (push) Successful in 1m4s
2024-12-27 21:35:18 -08:00
147ebccfd8 Update .forgejo/workflows/build.yml
Some checks failed
Auto build / Build Flatpak Package (push) Failing after 43s
Auto build / Build Debian Package (push) Successful in 45s
2024-12-27 21:33:48 -08:00
ac5f5aad23 Update .forgejo/workflows/build.yml
All checks were successful
Auto build / Build Debian Package (push) Successful in 1m0s
Auto build / Build Flatpak Package (push) Successful in 1m4s
2024-12-27 21:01:50 -08:00
286dac970e Update generate-flatpak.py
Some checks failed
Auto build / Build Debian Package (push) Successful in 49s
Auto build / Build Flatpak Package (push) Failing after 44s
2024-12-27 18:15:39 -08:00
564821d707 Update generate-flatpak.py
Some checks failed
Auto build / Build Debian Package (push) Successful in 31s
Auto build / Build Flatpak Package (push) Failing after 27s
2024-12-27 18:02:40 -08:00
162388a1a9 Upload files to "/"
Some checks failed
Auto build / Build Debian Package (push) Successful in 42s
Auto build / Build Flatpak Package (push) Failing after 29s
2024-12-27 18:00:22 -08:00
1f0eb0e79d Update .forgejo/workflows/build.yml
Some checks failed
Auto build / Build Debian Package (push) Successful in 33s
Auto build / Build Flatpak Package (push) Failing after 5m0s
2024-12-27 17:34:44 -08:00
00be7e6206 Upload files to "/"
Some checks failed
Auto build / Build Debian Package (push) Successful in 53s
Auto build / Build Flatpak Package (push) Failing after 31s
2024-12-27 17:32:57 -08:00
27f248292e Update .forgejo/workflows/build.yml
All checks were successful
Auto build / Build Debian Package (push) Successful in 36s
Auto build / Build Flatpak Package (push) Successful in 52s
2024-12-27 00:25:32 -08:00
b499977e44 Update .forgejo/workflows/build.yml
Some checks failed
Auto build / Build Debian Package (push) Failing after 29s
Auto build / Build Flatpak Package (push) Successful in 50s
2024-12-27 00:22:43 -08:00
39f1c41a60 Update codes.swee.SweeCryptGTK.json
Some checks failed
Auto build / Build Debian Package (push) Successful in 37s
Auto build / Build Flatpak Package (push) Failing after 45s
2024-12-27 00:18:42 -08:00
2f8ab31ef5 Update .forgejo/workflows/build.yml
Some checks failed
Auto build / Build Debian Package (push) Successful in 34s
Auto build / Build Flatpak Package (push) Failing after 49s
2024-12-27 00:16:14 -08:00
12c1b69037 Update .forgejo/workflows/build.yml
Some checks failed
Auto build / Build Debian Package (push) Successful in 36s
Auto build / Build Flatpak Package (push) Failing after 38s
2024-12-27 00:11:32 -08:00
074a7287a1 Update .forgejo/workflows/build.yml
Some checks failed
Auto build / Build Debian Package (push) Successful in 37s
Auto build / Build Flatpak Package (push) Failing after 28s
2024-12-27 00:09:40 -08:00
6832d425e9 Update .forgejo/workflows/build.yml
Some checks failed
Sanity check / Build Debian Package (push) Successful in 49s
Sanity check / Build Flatpak Package (push) Failing after 34s
2024-12-26 21:09:07 -08:00
5671b9bf06 Update .forgejo/workflows/build.yml
Some checks failed
Sanity check / Build Debian Package (push) Successful in 9s
Sanity check / Build Flatpak Package (push) Failing after 7s
2024-12-26 21:07:39 -08:00
8d48ff43a9 Update generate-flatpak.py
All checks were successful
Sanity check / Build Debian Package (push) Successful in 10s
Sanity check / Build Flatpak Package (push) Successful in 8s
2024-12-26 21:06:21 -08:00
5a0aed251b Update .forgejo/workflows/build.yml
All checks were successful
Sanity check / Build Debian Package (push) Successful in 9s
Sanity check / Build Flatpak Package (push) Successful in 1m38s
2024-12-26 21:03:56 -08:00
0b1003b95d Update .forgejo/workflows/build.yml
Some checks failed
Sanity check / Build Debian Package (push) Successful in 8s
Sanity check / Build Flatpak Package (push) Has been cancelled
2024-12-26 21:02:38 -08:00
a67db6c024 Update .forgejo/workflows/build.yml
Some checks failed
Sanity check / Build Debian Package (push) Successful in 9s
Sanity check / Build Flatpak Package (push) Has been cancelled
2024-12-26 21:01:50 -08:00
63ccda61aa Update codes.swee.SweeCryptGTK.json
All checks were successful
Sanity check / Build Debian Package (push) Successful in 8s
Sanity check / Build Flatpak Package (push) Successful in 7s
2024-12-26 20:59:13 -08:00
bf77881cbe Update .forgejo/workflows/build.yml
All checks were successful
Sanity check / Build Debian Package (push) Successful in 9s
Sanity check / Build Flatpak Package (push) Successful in 8s
2024-12-26 20:58:23 -08:00
3e9950c3ca Update generate-flatpak.py
All checks were successful
Sanity check / Test Python file (push) Successful in 10s
2024-12-26 20:57:08 -08:00
c9a6f9120b Upload files to "/"
All checks were successful
Sanity check / Test Python file (push) Successful in 8s
2024-12-26 20:54:12 -08:00
948f7ffa94 Add generate-flatpak.py
All checks were successful
Sanity check / Test Python file (push) Successful in 12s
2024-12-26 20:52:45 -08:00
4233c29d58 Add SweeCrypt 1.1.0 feature
All checks were successful
Sanity check / Test Python file (push) Successful in 9s
2024-12-24 16:29:10 -08:00
80e5b89a61 Update dpkg/DEBIAN/control
All checks were successful
Sanity check / Test Python file (push) Successful in 10s
2024-12-23 15:18:36 -08:00
27f760cb79 UI refresh
All checks were successful
Sanity check / Test Python file (push) Successful in 13s
2024-12-23 15:15:06 -08:00
Admin
1b656964a7 Fix Window growing
All checks were successful
Sanity check / Test Python file (push) Successful in 14s
2024-12-23 15:00:49 -08:00
f8fe0a55e4 Update .forgejo/workflows/build.yml
All checks were successful
Sanity check / Test Python file (push) Successful in 8s
2024-12-18 15:44:54 -08:00
49596e4626 Update .forgejo/workflows/build.yml
Some checks failed
Sanity check / Test Python file (push) Has been cancelled
2024-12-18 15:44:30 -08:00
831038312b Update .forgejo/workflows/build.yml
All checks were successful
Sanity check / Test Python file (push) Successful in 18s
2024-10-12 22:58:09 -07:00
c7533e8637 Update .forgejo/workflows/sanity-check.yml
Some checks failed
Sanity check / Test Python file (push) Failing after 31s
2024-10-12 22:56:44 -07:00
caef7a2026 Update .forgejo/workflows/sanity-check.yml
Some checks failed
Sanity check / Test Python file (push) Failing after 16s
2024-10-12 22:33:00 -07:00
4764fdfdeb Add .forgejo/workflows/sanity-check.yml
Some checks failed
Sanity check / Test Python file (push) Failing after 1m11s
2024-10-12 22:31:21 -07:00
edef9018a8 Add requirements.txt 2024-10-12 22:30:39 -07:00
Nova Cat
0ea38937f9 Edited files on Android 2024-09-14 01:01:37 -07:00
6 changed files with 161 additions and 87 deletions

View file

@ -0,0 +1,58 @@
name: Test
on:
push:
workflow_dispatch:
pull_request:
jobs:
syntax:
name: Check syntax
runs-on: alpine
steps:
- uses: https://git.swee.codes/swee/setup-alpine@main
with:
additional: python3 libxml2-utils
- uses: actions/checkout@v4
- name: Check syntax of Python file
run: python3 -m py_compile sweecrypt-gtk.py
- name: Check syntax of XML file
run: xmllint --format sweecrypt-gtk.ui
x11:
name: Test the application
runs-on: alpine
needs: syntax
steps:
- uses: https://git.swee.codes/swee/setup-alpine@main
with:
additional: tigervnc py3-gobject3 py3-xdg py3-pip gtk+3.0 apk-gtk3 openbox scrot font-noto-all
- uses: actions/checkout@v4
- name: Install dependencies
run: pip install --break-system-packages sweecrypt
- name: Set VNC password
run: echo -e "sweecrypt\nsweecrypt\n" | vncpasswd
- name: Start an X11 server
run: USER=root vncserver :5 &
- name: Start the app
run: DISPLAY=:5 python3 sweecrypt-gtk.py &
- name: Wait 5 secs
run: sleep 5
- name: Take a screenshot
run: DISPLAY=:5 scrot screenshot.png
- name: Upload screenshot
uses: actions/upload-artifact@v3
with:
path: screenshot.png
apt:
name: Build Debian Package
runs-on: docker
needs: syntax
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
- name: Generate DEB
run: |
python3 generate-deb.py
- uses: actions/upload-artifact@v3
with:
path: sweecrypt-gtk.deb

View file

@ -1,5 +1,5 @@
Package: sweecrypt-gtk Package: sweecrypt-gtk
Version: 1.0 Version: 1.2
Section: utils Section: utils
Priority: optional Priority: optional
Architecture: all Architecture: all

View file

@ -1,8 +1,6 @@
#!/usr/bin/python3 #!/usr/bin/python3
import os import os
print("Creating Debian package...") print("Creating Debian package...")
if os.name != "posix":
print("WARNING: Machine is not running Linux (value of os.name is not \"posix\"), the script will not try to auto-build the .deb file. You might need to manually `chmod 1777` the binary.")
file = open("sweecrypt-gtk.py").read().split("\n") file = open("sweecrypt-gtk.py").read().split("\n")
open("dpkg/opt/sweecrypt-gtk.ui",'w').write(open("sweecrypt-gtk.ui").read()) open("dpkg/opt/sweecrypt-gtk.ui",'w').write(open("sweecrypt-gtk.ui").read())
file[3] = 'UI_FILE = "/opt/sweecrypt-gtk.ui"' file[3] = 'UI_FILE = "/opt/sweecrypt-gtk.ui"'
@ -10,5 +8,4 @@ file.insert(0, "#!/usr/bin/env python3")
file = "\n".join(file) file = "\n".join(file)
open("dpkg/usr/bin/sweecrypt-gtk",'w').write(file) open("dpkg/usr/bin/sweecrypt-gtk",'w').write(file)
os.system("chmod 1777 dpkg/usr/bin/sweecrypt-gtk") os.system("chmod 1777 dpkg/usr/bin/sweecrypt-gtk")
if os.name == "posix": os.system("dpkg-deb --root-owner-group --build dpkg sweecrypt-gtk.deb")
os.system("dpkg-deb --root-owner-group --build dpkg sweecrypt-gtk.deb")

2
requirements.txt Normal file
View file

@ -0,0 +1,2 @@
sweecrypt>=1.0.4
PyGObject

View file

@ -3,33 +3,27 @@ gi.require_version("Gtk", "3.0")
from gi.repository import Gtk, GdkPixbuf, Gdk from gi.repository import Gtk, GdkPixbuf, Gdk
UI_FILE = os.path.dirname(os.path.realpath(__file__)) + "/sweecrypt-gtk.ui" UI_FILE = os.path.dirname(os.path.realpath(__file__)) + "/sweecrypt-gtk.ui"
class GUI: class GUI:
def __init__(self): def __init__(self):
self.builder = Gtk.Builder() self.builder = Gtk.Builder()
self.builder.add_from_file(UI_FILE) self.builder.add_from_file(UI_FILE)
self.builder.connect_signals(self) self.builder.connect_signals(self)
window = self.builder.get_object('window') window = self.builder.get_object('window')
window.show_all() window.show_all()
def toggle(self, e:bool): def on_window_destroy(self, window):Gtk.main_quit()
if e: def toggle(self, checkbox):
active = self.builder.get_object('encode').get_property("active") checkbox.set_property("label", "Encode" if checkbox.get_property("active") else "Decode")
self.builder.get_object('decode').set_property("active", not active) def start_clicked(self, start):
else: encode = self.builder.get_object('encode').get_property("active")
active = self.builder.get_object('decode').get_property("active") shift = int(self.builder.get_object('shift').get_property("value"))
self.builder.get_object('encode').set_property("active", not active) inputted = self.builder.get_object('text').get_property("text")
def on_window_destroy(self, window):Gtk.main_quit() if encode:
def encode_toggle(self, encode):self.toggle(True) self.builder.get_object('text').set_property("text", sc.encrypt(inputted, shift))
def decode_toggle(self, decode):self.toggle(False) self.builder.get_object('encode').set_property("active", False)
def start_clicked(self, start): else:
encode = self.builder.get_object('encode').get_property("active") self.builder.get_object('text').set_property("text", sc.decrypt(inputted, shift))
inputted = self.builder.get_object('text').get_property("text") self.builder.get_object('encode').set_property("active", True)
if encode:
self.builder.get_object('text').set_property("text", sc.encrypt(inputted))
self.builder.get_object('encode').set_property("active", False)
else:
self.builder.get_object('text').set_property("text", sc.decrypt(inputted))
self.builder.get_object('decode').set_property("active", False)
def main(): def main():
app = GUI() app = GUI()
Gtk.main() Gtk.main()
if __name__ == "__main__": if __name__ == "__main__":
sys.exit(main()) sys.exit(main())

View file

@ -2,20 +2,11 @@
<!-- Generated with glade 3.40.0 --> <!-- Generated with glade 3.40.0 -->
<interface> <interface>
<requires lib="gtk+" version="3.24"/> <requires lib="gtk+" version="3.24"/>
<object class="GtkImage" id="image1"> <object class="GtkAdjustment" id="database-shift">
<property name="visible">True</property> <property name="lower">-100</property>
<property name="can-focus">False</property> <property name="upper">100</property>
<property name="icon-name">edit-copy</property> <property name="step-increment">1</property>
</object> <property name="page-increment">10</property>
<object class="GtkImage" id="image2">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="icon-name">document-revert</property>
</object>
<object class="GtkImage" id="start">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="icon-name">document-properties</property>
</object> </object>
<object class="GtkTextBuffer" id="text"> <object class="GtkTextBuffer" id="text">
<property name="text" translatable="yes">replace this text with anything <property name="text" translatable="yes">replace this text with anything
@ -24,6 +15,8 @@ you want to encode or decode.</property>
<object class="GtkWindow" id="window"> <object class="GtkWindow" id="window">
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="title" translatable="yes">SweeCrypt GTK</property> <property name="title" translatable="yes">SweeCrypt GTK</property>
<property name="default-width">250</property>
<property name="default-height">128</property>
<property name="icon-name">sweecrypt</property> <property name="icon-name">sweecrypt</property>
<signal name="destroy" handler="on_window_destroy" swapped="no"/> <signal name="destroy" handler="on_window_destroy" swapped="no"/>
<child> <child>
@ -32,11 +25,18 @@ you want to encode or decode.</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="orientation">vertical</property> <property name="orientation">vertical</property>
<child> <child>
<object class="GtkTextView" id="input"> <object class="GtkScrolledWindow">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">True</property> <property name="can-focus">True</property>
<property name="buffer">text</property> <property name="shadow-type">in</property>
<property name="monospace">True</property> <child>
<object class="GtkTextView" id="input">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="buffer">text</property>
<property name="monospace">True</property>
</object>
</child>
</object> </object>
<packing> <packing>
<property name="expand">True</property> <property name="expand">True</property>
@ -45,29 +45,67 @@ you want to encode or decode.</property>
</packing> </packing>
</child> </child>
<child> <child>
<object class="GtkToggleButton" id="encode"> <object class="GtkBox">
<property name="label" translatable="yes">Encode</property>
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">True</property> <property name="can-focus">False</property>
<property name="receives-default">True</property> <child>
<property name="image">image1</property> <object class="GtkToggleButton" id="encode">
<property name="active">True</property> <property name="label" translatable="yes">Encode</property>
<signal name="toggled" handler="encode_toggle" swapped="no"/> <property name="visible">True</property>
</object> <property name="can-focus">True</property>
<packing> <property name="receives-default">True</property>
<property name="expand">False</property> <property name="active">True</property>
<property name="fill">True</property> <signal name="toggled" handler="toggle" swapped="no"/>
<property name="position">1</property> </object>
</packing> <packing>
</child> <property name="expand">False</property>
<child> <property name="fill">True</property>
<object class="GtkToggleButton" id="decode"> <property name="position">0</property>
<property name="label" translatable="yes">Decode</property> </packing>
<property name="visible">True</property> </child>
<property name="can-focus">True</property> <child>
<property name="receives-default">True</property> <object class="GtkLabel">
<property name="image">image2</property> <property name="visible">True</property>
<signal name="toggled" handler="decode_toggle" swapped="no"/> <property name="can-focus">False</property>
<property name="label" translatable="yes">Database shift: </property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkButton" id="star">
<property name="label" translatable="yes">Start</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
<signal name="clicked" handler="start_clicked" swapped="no"/>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="pack-type">end</property>
<property name="position">2</property>
</packing>
</child>
<child>
<object class="GtkSpinButton" id="shift">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="caps-lock-warning">False</property>
<property name="primary-icon-tooltip-text" translatable="yes">Database shift</property>
<property name="adjustment">database-shift</property>
<property name="climb-rate">1</property>
<property name="numeric">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">3</property>
</packing>
</child>
</object> </object>
<packing> <packing>
<property name="expand">False</property> <property name="expand">False</property>
@ -75,21 +113,6 @@ you want to encode or decode.</property>
<property name="position">2</property> <property name="position">2</property>
</packing> </packing>
</child> </child>
<child>
<object class="GtkButton" id="star">
<property name="label" translatable="yes">Start</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
<property name="image">start</property>
<signal name="clicked" handler="start_clicked" swapped="no"/>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">4</property>
</packing>
</child>
</object> </object>
</child> </child>
</object> </object>