Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
C
cpython
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
cpython
Commits
1c4d96fd
Commit
1c4d96fd
authored
Jan 21, 1999
by
Jack Jansen
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Added examples/testcode for the Icn module.
parent
a0fcd258
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
374 additions
and
1 deletion
+374
-1
Mac/Demo/PICTbrowse/ICONbrowse.py
Mac/Demo/PICTbrowse/ICONbrowse.py
+186
-0
Mac/Demo/PICTbrowse/cicnbrowse.py
Mac/Demo/PICTbrowse/cicnbrowse.py
+186
-0
Mac/Demo/index.html
Mac/Demo/index.html
+2
-1
No files found.
Mac/Demo/PICTbrowse/ICONbrowse.py
0 → 100644
View file @
1c4d96fd
"""browsepict - Display all "ICON" resources found"""
import
FrameWork
import
EasyDialogs
import
Res
import
Qd
import
Win
import
List
import
sys
import
struct
import
Icn
#
# Resource definitions
ID_MAIN
=
512
MAIN_LIST
=
1
MAIN_SHOW
=
2
# Where is the picture window?
LEFT
=
200
TOP
=
64
MINWIDTH
=
32
MINHEIGHT
=
32
MAXWIDTH
=
320
MAXHEIGHT
=
320
def
main
():
try
:
dummy
=
Res
.
GetResource
(
'DLOG'
,
ID_MAIN
)
except
Res
.
Error
:
try
:
Res
.
OpenResFile
(
"PICTbrowse.rsrc"
)
except
Res
.
Error
,
arg
:
EasyDialogs
.
Message
(
"Cannot open PICTbrowse.rsrc: "
+
arg
[
1
])
sys
.
exit
(
1
)
ICONbrowse
()
class
ICONbrowse
(
FrameWork
.
Application
):
def
__init__
(
self
):
# First init menus, etc.
FrameWork
.
Application
.
__init__
(
self
)
# Next create our dialog
self
.
main_dialog
=
MyDialog
(
self
)
# Now open the dialog
contents
=
self
.
findICONresources
()
self
.
main_dialog
.
open
(
ID_MAIN
,
contents
)
# Finally, go into the event loop
self
.
mainloop
()
def
makeusermenus
(
self
):
self
.
filemenu
=
m
=
FrameWork
.
Menu
(
self
.
menubar
,
"File"
)
self
.
quititem
=
FrameWork
.
MenuItem
(
m
,
"Quit"
,
"Q"
,
self
.
quit
)
def
quit
(
self
,
*
args
):
self
.
_quit
()
def
showICON
(
self
,
resid
):
w
=
ICONwindow
(
self
)
w
.
open
(
resid
)
#EasyDialogs.Message('Show ICON '+`resid`)
def
findICONresources
(
self
):
num
=
Res
.
CountResources
(
'ICON'
)
rv
=
[]
for
i
in
range
(
1
,
num
+
1
):
Res
.
SetResLoad
(
0
)
try
:
r
=
Res
.
GetIndResource
(
'ICON'
,
i
)
finally
:
Res
.
SetResLoad
(
1
)
id
,
type
,
name
=
r
.
GetResInfo
()
rv
.
append
(
id
,
name
)
return
rv
class
ICONwindow
(
FrameWork
.
Window
):
def
open
(
self
,
(
resid
,
resname
)):
if
not
resname
:
resname
=
'#'
+
`resid`
self
.
resid
=
resid
self
.
picture
=
Icn
.
GetIcon
(
self
.
resid
)
l
,
t
,
r
,
b
=
0
,
0
,
32
,
32
self
.
pictrect
=
(
l
,
t
,
r
,
b
)
width
=
r
-
l
height
=
b
-
t
if
width
<
MINWIDTH
:
width
=
MINWIDTH
elif
width
>
MAXWIDTH
:
width
=
MAXWIDTH
if
height
<
MINHEIGHT
:
height
=
MINHEIGHT
elif
height
>
MAXHEIGHT
:
height
=
MAXHEIGHT
bounds
=
(
LEFT
,
TOP
,
LEFT
+
width
,
TOP
+
height
)
self
.
wid
=
Win
.
NewWindow
(
bounds
,
resname
,
1
,
0
,
-
1
,
1
,
0
)
self
.
do_postopen
()
def
do_update
(
self
,
*
args
):
currect
=
self
.
fitrect
()
Icn
.
PlotIcon
(
currect
,
self
.
picture
)
def
fitrect
(
self
):
"""Return self.pictrect scaled to fit in window"""
graf
=
self
.
wid
.
GetWindowPort
()
screenrect
=
graf
.
portRect
picwidth
=
self
.
pictrect
[
2
]
-
self
.
pictrect
[
0
]
picheight
=
self
.
pictrect
[
3
]
-
self
.
pictrect
[
1
]
if
picwidth
>
screenrect
[
2
]
-
screenrect
[
0
]:
factor
=
float
(
picwidth
)
/
float
(
screenrect
[
2
]
-
screenrect
[
0
])
picwidth
=
picwidth
/
factor
picheight
=
picheight
/
factor
if
picheight
>
screenrect
[
3
]
-
screenrect
[
1
]:
factor
=
float
(
picheight
)
/
float
(
screenrect
[
3
]
-
screenrect
[
1
])
picwidth
=
picwidth
/
factor
picheight
=
picheight
/
factor
return
(
screenrect
[
0
],
screenrect
[
1
],
screenrect
[
0
]
+
int
(
picwidth
),
screenrect
[
1
]
+
int
(
picheight
))
class
MyDialog
(
FrameWork
.
DialogWindow
):
"Main dialog window for ICONbrowse"
def
open
(
self
,
id
,
contents
):
self
.
id
=
id
FrameWork
.
DialogWindow
.
open
(
self
,
ID_MAIN
)
self
.
wid
.
SetDialogDefaultItem
(
MAIN_SHOW
)
tp
,
h
,
rect
=
self
.
wid
.
GetDialogItem
(
MAIN_LIST
)
rect2
=
rect
[
0
]
+
1
,
rect
[
1
]
+
1
,
rect
[
2
]
-
17
,
rect
[
3
]
-
17
# Scroll bar space
self
.
list
=
List
.
LNew
(
rect2
,
(
0
,
0
,
1
,
len
(
contents
)),
(
0
,
0
),
0
,
self
.
wid
,
0
,
1
,
1
,
1
)
self
.
contents
=
contents
self
.
setlist
()
def
setlist
(
self
):
self
.
list
.
LDelRow
(
0
,
0
)
self
.
list
.
LSetDrawingMode
(
0
)
if
self
.
contents
:
self
.
list
.
LAddRow
(
len
(
self
.
contents
),
0
)
for
i
in
range
(
len
(
self
.
contents
)):
v
=
`self.contents[i][0]`
if
self
.
contents
[
i
][
1
]:
v
=
v
+
'"'
+
self
.
contents
[
i
][
1
]
+
'"'
self
.
list
.
LSetCell
(
v
,
(
0
,
i
))
self
.
list
.
LSetDrawingMode
(
1
)
self
.
list
.
LUpdate
(
self
.
wid
.
GetWindowPort
().
visRgn
)
def
do_listhit
(
self
,
event
):
(
what
,
message
,
when
,
where
,
modifiers
)
=
event
Qd
.
SetPort
(
self
.
wid
)
where
=
Qd
.
GlobalToLocal
(
where
)
if
self
.
list
.
LClick
(
where
,
modifiers
):
self
.
do_show
()
def
getselection
(
self
):
items
=
[]
point
=
(
0
,
0
)
while
1
:
ok
,
point
=
self
.
list
.
LGetSelect
(
1
,
point
)
if
not
ok
:
break
items
.
append
(
point
[
1
])
point
=
point
[
0
],
point
[
1
]
+
1
values
=
[]
for
i
in
items
:
values
.
append
(
self
.
contents
[
i
])
return
values
def
do_show
(
self
,
*
args
):
selection
=
self
.
getselection
()
for
resid
in
selection
:
self
.
parent
.
showICON
(
resid
)
def
do_rawupdate
(
self
,
window
,
event
):
tp
,
h
,
rect
=
self
.
wid
.
GetDialogItem
(
MAIN_LIST
)
Qd
.
SetPort
(
self
.
wid
)
Qd
.
FrameRect
(
rect
)
self
.
list
.
LUpdate
(
self
.
wid
.
GetWindowPort
().
visRgn
)
def
do_activate
(
self
,
activate
,
event
):
self
.
list
.
LActivate
(
activate
)
def
do_close
(
self
):
self
.
close
()
def
do_itemhit
(
self
,
item
,
event
):
if
item
==
MAIN_LIST
:
self
.
do_listhit
(
event
)
if
item
==
MAIN_SHOW
:
self
.
do_show
()
main
()
Mac/Demo/PICTbrowse/cicnbrowse.py
0 → 100644
View file @
1c4d96fd
"""browsepict - Display all "cicn" resources found"""
import
FrameWork
import
EasyDialogs
import
Res
import
Qd
import
Win
import
List
import
sys
import
struct
import
Icn
#
# Resource definitions
ID_MAIN
=
512
MAIN_LIST
=
1
MAIN_SHOW
=
2
# Where is the picture window?
LEFT
=
200
TOP
=
64
MINWIDTH
=
32
MINHEIGHT
=
32
MAXWIDTH
=
320
MAXHEIGHT
=
320
def
main
():
try
:
dummy
=
Res
.
GetResource
(
'DLOG'
,
ID_MAIN
)
except
Res
.
Error
:
try
:
Res
.
OpenResFile
(
"PICTbrowse.rsrc"
)
except
Res
.
Error
,
arg
:
EasyDialogs
.
Message
(
"Cannot open PICTbrowse.rsrc: "
+
arg
[
1
])
sys
.
exit
(
1
)
CIconbrowse
()
class
CIconbrowse
(
FrameWork
.
Application
):
def
__init__
(
self
):
# First init menus, etc.
FrameWork
.
Application
.
__init__
(
self
)
# Next create our dialog
self
.
main_dialog
=
MyDialog
(
self
)
# Now open the dialog
contents
=
self
.
findcicnresources
()
self
.
main_dialog
.
open
(
ID_MAIN
,
contents
)
# Finally, go into the event loop
self
.
mainloop
()
def
makeusermenus
(
self
):
self
.
filemenu
=
m
=
FrameWork
.
Menu
(
self
.
menubar
,
"File"
)
self
.
quititem
=
FrameWork
.
MenuItem
(
m
,
"Quit"
,
"Q"
,
self
.
quit
)
def
quit
(
self
,
*
args
):
self
.
_quit
()
def
showCIcon
(
self
,
resid
):
w
=
CIconwindow
(
self
)
w
.
open
(
resid
)
#EasyDialogs.Message('Show cicn '+`resid`)
def
findcicnresources
(
self
):
num
=
Res
.
CountResources
(
'cicn'
)
rv
=
[]
for
i
in
range
(
1
,
num
+
1
):
Res
.
SetResLoad
(
0
)
try
:
r
=
Res
.
GetIndResource
(
'cicn'
,
i
)
finally
:
Res
.
SetResLoad
(
1
)
id
,
type
,
name
=
r
.
GetResInfo
()
rv
.
append
(
id
,
name
)
return
rv
class
CIconwindow
(
FrameWork
.
Window
):
def
open
(
self
,
(
resid
,
resname
)):
if
not
resname
:
resname
=
'#'
+
`resid`
self
.
resid
=
resid
self
.
picture
=
Icn
.
GetCIcon
(
self
.
resid
)
l
,
t
,
r
,
b
=
0
,
0
,
32
,
32
self
.
pictrect
=
(
l
,
t
,
r
,
b
)
width
=
r
-
l
height
=
b
-
t
if
width
<
MINWIDTH
:
width
=
MINWIDTH
elif
width
>
MAXWIDTH
:
width
=
MAXWIDTH
if
height
<
MINHEIGHT
:
height
=
MINHEIGHT
elif
height
>
MAXHEIGHT
:
height
=
MAXHEIGHT
bounds
=
(
LEFT
,
TOP
,
LEFT
+
width
,
TOP
+
height
)
self
.
wid
=
Win
.
NewWindow
(
bounds
,
resname
,
1
,
0
,
-
1
,
1
,
0
)
self
.
do_postopen
()
def
do_update
(
self
,
*
args
):
currect
=
self
.
fitrect
()
Icn
.
PlotCIcon
(
currect
,
self
.
picture
)
def
fitrect
(
self
):
"""Return self.pictrect scaled to fit in window"""
graf
=
self
.
wid
.
GetWindowPort
()
screenrect
=
graf
.
portRect
picwidth
=
self
.
pictrect
[
2
]
-
self
.
pictrect
[
0
]
picheight
=
self
.
pictrect
[
3
]
-
self
.
pictrect
[
1
]
if
picwidth
>
screenrect
[
2
]
-
screenrect
[
0
]:
factor
=
float
(
picwidth
)
/
float
(
screenrect
[
2
]
-
screenrect
[
0
])
picwidth
=
picwidth
/
factor
picheight
=
picheight
/
factor
if
picheight
>
screenrect
[
3
]
-
screenrect
[
1
]:
factor
=
float
(
picheight
)
/
float
(
screenrect
[
3
]
-
screenrect
[
1
])
picwidth
=
picwidth
/
factor
picheight
=
picheight
/
factor
return
(
screenrect
[
0
],
screenrect
[
1
],
screenrect
[
0
]
+
int
(
picwidth
),
screenrect
[
1
]
+
int
(
picheight
))
class
MyDialog
(
FrameWork
.
DialogWindow
):
"Main dialog window for cicnbrowse"
def
open
(
self
,
id
,
contents
):
self
.
id
=
id
FrameWork
.
DialogWindow
.
open
(
self
,
ID_MAIN
)
self
.
wid
.
SetDialogDefaultItem
(
MAIN_SHOW
)
tp
,
h
,
rect
=
self
.
wid
.
GetDialogItem
(
MAIN_LIST
)
rect2
=
rect
[
0
]
+
1
,
rect
[
1
]
+
1
,
rect
[
2
]
-
17
,
rect
[
3
]
-
17
# Scroll bar space
self
.
list
=
List
.
LNew
(
rect2
,
(
0
,
0
,
1
,
len
(
contents
)),
(
0
,
0
),
0
,
self
.
wid
,
0
,
1
,
1
,
1
)
self
.
contents
=
contents
self
.
setlist
()
def
setlist
(
self
):
self
.
list
.
LDelRow
(
0
,
0
)
self
.
list
.
LSetDrawingMode
(
0
)
if
self
.
contents
:
self
.
list
.
LAddRow
(
len
(
self
.
contents
),
0
)
for
i
in
range
(
len
(
self
.
contents
)):
v
=
`self.contents[i][0]`
if
self
.
contents
[
i
][
1
]:
v
=
v
+
'"'
+
self
.
contents
[
i
][
1
]
+
'"'
self
.
list
.
LSetCell
(
v
,
(
0
,
i
))
self
.
list
.
LSetDrawingMode
(
1
)
self
.
list
.
LUpdate
(
self
.
wid
.
GetWindowPort
().
visRgn
)
def
do_listhit
(
self
,
event
):
(
what
,
message
,
when
,
where
,
modifiers
)
=
event
Qd
.
SetPort
(
self
.
wid
)
where
=
Qd
.
GlobalToLocal
(
where
)
if
self
.
list
.
LClick
(
where
,
modifiers
):
self
.
do_show
()
def
getselection
(
self
):
items
=
[]
point
=
(
0
,
0
)
while
1
:
ok
,
point
=
self
.
list
.
LGetSelect
(
1
,
point
)
if
not
ok
:
break
items
.
append
(
point
[
1
])
point
=
point
[
0
],
point
[
1
]
+
1
values
=
[]
for
i
in
items
:
values
.
append
(
self
.
contents
[
i
])
return
values
def
do_show
(
self
,
*
args
):
selection
=
self
.
getselection
()
for
resid
in
selection
:
self
.
parent
.
showCIcon
(
resid
)
def
do_rawupdate
(
self
,
window
,
event
):
tp
,
h
,
rect
=
self
.
wid
.
GetDialogItem
(
MAIN_LIST
)
Qd
.
SetPort
(
self
.
wid
)
Qd
.
FrameRect
(
rect
)
self
.
list
.
LUpdate
(
self
.
wid
.
GetWindowPort
().
visRgn
)
def
do_activate
(
self
,
activate
,
event
):
self
.
list
.
LActivate
(
activate
)
def
do_close
(
self
):
self
.
close
()
def
do_itemhit
(
self
,
item
,
event
):
if
item
==
MAIN_LIST
:
self
.
do_listhit
(
event
)
if
item
==
MAIN_SHOW
:
self
.
do_show
()
main
()
Mac/Demo/index.html
View file @
1c4d96fd
...
...
@@ -98,7 +98,8 @@ The Python distribution contains a few more examples, all unexplained:
<LI>
<I>
PICTbrowse
</I>
is an application that locates PICT
resources and displays them, it demonstrates some quickdraw and the
resource and list managers.
resource and list managers. In the same folder you will find the very
similar scripts ICONbrowse and cicnbrowse.
<LI>
<I>
Imgbrowse
</I>
displays image files in
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment