Repository navigation
Expand file tree
/
Copy pathgui_form.py
More file actions
163 lines (129 loc) · 3.82 KB
/
Copy pathgui_form.py
File metadata and controls
163 lines (129 loc) · 3.82 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
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
# =============================================================================
# gui_form.py - GENERATED BY guicreator
# Layout source : <unsaved layout>
# Generated : 2026-09-23 23:08:25
#
# 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" 300x120 at (40,30)
# ---- window geometry ----
WIN_X = 40
WIN_Y = 30
WIN_W = 300
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
ID_LIST_1 = 4
# ---- string gadget buffer sizes (maxlen includes NUL) ----
EDIT_NAME_MAXLEN = 32
list_1_ITEMS = ["Item 1"]
GUI_PLUGIN = "SYS:Python68k/ext/gui_intuition.py68k"
# USER CODE BEGIN form.externs
import sys
sys.path.append("pythonami_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, 60, 20, 200, 14, "", EDIT_NAME_MAXLEN)
gui.add_button(ID_BTN_OK, 80, 88, 88, 18, "OK")
gui.add_list(ID_LIST_1, 60, 36, 160, 44, list_1_ITEMS, 0)
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_LIST:
running = on_list(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_list(gui, eid):
running = 1
if eid == ID_LIST_1:
selected = gui.get_list_selected(ID_LIST_1)
# USER CODE BEGIN list_1.on_select
# TODO: list "list_1" selected a row
# USER CODE END list_1.on_select
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())