-
-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathgui_form.py
More file actions
147 lines (116 loc) · 3.38 KB
/
Copy pathgui_form.py
File metadata and controls
147 lines (116 loc) · 3.38 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
# =============================================================================
# gui_form.py - GENERATED BY guicreator
# Layout source : <unsaved layout>
# Generated : 2026-09-23 12:14:39
#
# pythonami (Python68K) Intuition form. Calls Layer 1 of
# docs/GUI_PYTHONAMI_API.md via load_library.
#
# Only the bodies between USER CODE BEGIN/END markers survive regeneration.
#
# Amiga:
# pythonami gui_form.py
# (requires PROGDIR:ext/gui_intuition/gui_intuition.py68k)
# =============================================================================
# Window: "Login" 320x120 at (40,30)
# ---- window geometry ----
WIN_X = 40
WIN_Y = 30
WIN_W = 320
WIN_H = 120
WIN_TITLE = "Login"
# ---- IDCMP mask and window flags ----
FORM_IDCMP = 2097772
FORM_FLAGS = 4110
# ---- event classes (must match HAS / GUI_PYTHONAMI_API.md) ----
GUI_EVT_NONE = 0
GUI_EVT_CLOSE = 1
GUI_EVT_BUTTON = 2
GUI_EVT_PRESS = 3
GUI_EVT_STRING = 4
GUI_EVT_KEY = 5
GUI_EVT_MOUSE = 6
GUI_EVT_REFRESH = 7
GUI_EVT_CHECKBOX = 8
GUI_EVT_LIST = 9
# ---- widget ActionIDs ----
ID_LBL_NAME = 1
ID_EDIT_NAME = 2
ID_BTN_OK = 3
# ---- string gadget buffer sizes (maxlen includes NUL) ----
EDIT_NAME_MAXLEN = 32
GUI_PLUGIN = "PROGDIR:ext/gui_intuition/gui_intuition.py68k"
# USER CODE BEGIN form.externs
import sys
sys.path.append("lib")
import gui_dialog
# USER CODE END form.externs
def main():
gui = load_library(GUI_PLUGIN)
status = gui.init()
if status != 0:
return -1
status = gui.begin_window(WIN_TITLE, WIN_X, WIN_Y, WIN_W, WIN_H, FORM_IDCMP, FORM_FLAGS)
if status != 0:
gui.shutdown()
return -1
gui.add_label(ID_LBL_NAME, 12, 24, "Name:")
gui.add_editbox(ID_EDIT_NAME, 92, 22, 200, 14, "", EDIT_NAME_MAXLEN)
gui.add_button(ID_BTN_OK, 116, 64, 88, 18, "OK")
win = gui.show()
if win == 0:
gui.shutdown()
return -1
if win == -1:
gui.shutdown()
return -1
# USER CODE BEGIN main.after_show
# TODO: custom initialisation once the window is up
# USER CODE END main.after_show
event_loop(gui)
gui.close_window()
gui.shutdown()
return 0
def event_loop(gui):
running = 1
while running != 0:
evt = gui.wait_event()
eid = gui.get_event_id()
if evt == GUI_EVT_CLOSE:
running = on_close(gui)
if evt == GUI_EVT_BUTTON:
running = on_button(gui, eid)
if evt == GUI_EVT_STRING:
running = on_string(gui, eid)
if evt == GUI_EVT_KEY:
running = on_key(gui, gui.get_event_code())
def on_button(gui, eid):
running = 1
if eid == ID_BTN_OK:
pass
# USER CODE BEGIN btn_ok.on_click
# TODO: button "OK" clicked
# USER CODE END btn_ok.on_click
return running
def on_string(gui, eid):
running = 1
if eid == ID_EDIT_NAME:
text = gui.get_edit_text(ID_EDIT_NAME)
# USER CODE BEGIN edit_name.on_change
# TODO: edit box "edit_name" committed
# USER CODE END edit_name.on_change
return running
def on_key(gui, code):
running = 1
# USER CODE BEGIN form.on_key
# TODO: keyboard shortcuts go here
# USER CODE END form.on_key
return running
def on_close(gui):
running = 0
# USER CODE BEGIN form.on_close
# TODO: confirm-before-exit logic goes here
# USER CODE END form.on_close
return running
if __name__ == "__main__":
exit(main())